ページへ戻る

 印刷 

hideyosi​/abcd17ドキュメント原文 :: OSASK計画

osaskwiki:hideyosi/abcd17ドキュメント原文

・abcdw017アーカイブについて                      2009.10.05  川合秀実

  このソフトウェアはバイナリもソースもドキュメントもすべて川合に最終的な著作権
があり、ライセンスはKL-01です。

---

  abcdw017の(abcdw016に対しての)バージョンアップ点は、mandel59さんが指摘した
問題を解決したこと(POSIX環境で画面消去がうまく行かない場合がある、関数load_g01
の変数宣言に問題がある)、そして乱数の種を提供するAPIを用意したことです。

  なおPOSIX周りについては、mandel59さんによるバグ修正をほぼそのまま使わせてもら
っています。

  今回も仕様の拡張のみで仕様変更は無いので、abcdw009以降対応のすべてのアプリが
そのまま動きます(バイナリ互換)。

  なお、コンパイル方法が少し変わりました。普通にmakeで作ると、キー入力などが有
効になりません。これは GO の標準ライブラリに windows.h などが無いためです。それ
でもしこれらの機能を有効にしたバージョンをmakeしたければ、以下のようにしてくだ
さい。

Windowsの場合:
    (MinGWを使って)
    >gcc -Os -DUSE_WIN32 -o efg01 efg01.c tek.c _gasfunc.s
    >strip efg01.exe
    >upx -9 efg01.exe

Linuxなどの場合:
	(gccの3.x系で)
    >gcc -Os -DUSE_POSIX -o efg01 efg01.c tek.c gasfunc.s
    >strip efg01
    >upx -9 efg01

Linuxなどの場合:
	(gccの4.x系で:gcc-4.xはif文の最適化コンパイルにバグがある模様)
    >gcc -O0 -DUSE_POSIX -o efg01 efg01.c tek.c gasfunc.s
    >strip efg01
    >upx -9 efg01

---

  guigui01.hは書き足りないところを補いました。guigui01フォルダのほかのものは
abcdw009のものを使ってください。

---

  以下は簡単なアプリの説明です。このアーカイブに入っていないものもあります。

<非tolsetアプリ>
アプリ名  サイズ  最新      ソース    説明
hello         16  abcdw012  abcdw012  "hello, world\n"を表示する
helloc1       67  abcdw012  abcdw012  helloのC版
helloc        68  abcdw009  abcdw009  ソースが普通のhelloc1
chars         13  abcdw009  abcdw009  キャラクタコード0x20から0x7eを出力
echo           6  abcdw009  なし      コマンドライン引数のエコーバック
echoc         50  abcdw009  abcdw009  echoのC版
pi           189  abcdw014  abcdw009  円周率算出(高負荷テスト用)
calc       1,503  abcdw014  abcdw009  コマンドライン計算機(.hrbベンチマーク用)
calc1         86  abcdw012  abcdw012  calcを.g01向けに作り直したもの
cpyc         119  abcdw014  abcdw009  tolsetのcpyのC版
makefntc     188  abcdw014  abcdw009  tolsetのmakefontのC版
dmparg     1,082  abcdw014  abcdw009  コマンドライン引数のテスト
calendar     358  abcdw014  abcdw014  カレンダー表示
calendrc     538  abcdw014  abcdw014  calendarのC版
cntup0       997  abcdw016  abcdw016  数を数える(sleep1のテスト)
testkey0     995  abcdw016  abcdw016  キー入力のテスト・C版
testkey1     118  abcdw016  abcdw016  キー入力のテスト・C版
cclsc         65  abcdw016  abcdw016  コンソールのcls・C版
ccolorc      120  abcdw016  abcdw016  コンソールのカラー設定・C版
tcns00       206  abcdw017  abcdw017  コンソールの色見本・C版
tcns01       232  abcdw016  abcdw016  テンキーで@が歩く・C版
tcns02       484  abcdw017  abcdw017  一人テニスゲーム・C版
tcns03       467  abcdw017  abcdw017  文字早うちゲーム・C版
tcns04       595  abcdw017  abcdw017  走って星を集めるゲーム・C版

(註)pi.hrbは229バイト。calc.hrbは1668バイト。
      tcns01は、テンキーの2468で動く。スペースで色変わる。Enterで終了。
      tcns02は、テンキーの46で動く。
      tcns03は、落ちてくる文字を入力する。大文字小文字の区別なし。だんだん速く
        なって難しくなる。誤入力すると減点。1とIや0とOの区別が難しい。フォント
        によっては見分けられず、両方押してみるしかないかもしれない。
      tcns04は、テンキーの2468で動く。壁にぶつかるか、自分の軌跡にぶつかると
        終了。バックすれば即死。


<tolsetアプリ>
アプリ名  サイズ  最新      ソース    説明
cpy           45  abcdw009  abcdw009  ファイルのコピーと連結とtek圧縮解除
bim2g01    1,542  abcdw014  abcdw009  .g01用リンカ
nask      22,824  abcdw014  abcdw009  NASM風アセンブラ
gas2nask   4,559  abcdw014  abcdw009  cc1の出力をnask用に変換
obj2bim    6,272  abcdw014  abcdw009  OSASK/.hrb/.g01共用リンカ
naskcnv0   1,491  abcdw014  abcdw009  ASKAの出力をnask用に変換
sjisconv     376  abcdw014  abcdw009  cc1やccp0の前に使うプリプリプロセッサ
golib00    2,386  abcdw014  abcdw009  ライブラリアン
bim2hrb      384  abcdw014  abcdw009  .hrb用リンカ
makefont      72  abcdw009  abcdw009  テキストデータからフォントデータを作る
bin2obj      477  abcdw014  abcdw009  ファイルの.obj化(char配列化)
aksa       4,700  abcdw014  abcdw009  逆ASKA(逆アセンブラ)
bin2ucc      436  abcdw014  abcdw011  ファイルのCソース化(char配列化)
hexdump      168  abcdw014  abcdw014  ファイルの16進ダンプ表示
rjcg01       225  abcdw014  abcdw014  .g01ファイルにrjcをかける(普通は使わない)
tekmin0      174  abcdw014  abcdw014  mini-tek5生成ツール(前処理)
tekmin1      497  abcdw014  abcdw014  mini-tek5生成ツール(後処理)
mtek2org     534  abcdw014  abcdw014  tek圧縮解除(mini-tek5にも対応)

---

  次回予告

  おやすみ中。春が来たらまた再開予定。

---

・リンク

    http://osask.jp/boyaki04.html
    http://wiki.osask.jp/?GUIGUI01/man0000
    http://wiki.osask.jp/?GUIGUI01/memo02
    http://wiki.osask.jp/?GUIGUI01/memo04
    http://wiki.osask.jp/?GUIGUI01/memo14
    http://wiki.osask.jp/?GUIGUI01/memo22
    http://wiki.osask.jp/?OSASK-HB
    http://wiki.osask.jp/?OSASK-HB/0001
    http://community.osdev.info/?GO

Last-modified: 2009-11-22 (日) 00:00:00 (JST) (319d) by lina