超小型コンパイラTTC  Oh!X 1989年 6月号掲載 マシン語 03000H-0394FH S:03000H 起動方法 S-OS"SWOD"を起動、本プログラムをロード J3000 TTCはアセブラより小さなコンパイラです。 変数は原則として8ビット長のみという大胆な仕様により、超小型化を実現しました。 さすがに低機能(?)ですが、簡易開発ツールとして、コンパイラの入門として使用してみてください。 [ Tiny Tiny Compiler ]  TTC(TinyTinyCompiler)はS−OS”SWORD”上で動作する  1バイト型(変数は1バイト整数)のコンパイラです。  すでにS−OS上にはFuzzyBASICコンパイラやSLANGといった  立派なコンパイラが発表されています。  いまとなってはお恥ずかしいものですが、  とにかくコンパクトですので、ちょっとしたプログラムの作成に利用してください。  TTCの特徴としては、とにかくコンパクトなことがあげられます。  ランタイムルーチンを含めでも2Kバイト強しかない小さなコンパイラです。  言語仕様としては、tiny BASICを思い浮かべてもらえればいいでしょう。  ただし、変数は8ビット無符号で変数名にはアルファベット1文字のみ有効です(使用できる変数は26個)。  1パスでオブジェクトを出力しますので、非常に高速にコンパイルします。  演算の優先順位はなく、式の最適化は一切しないというとんでもないプログラムですが、  1バイト型のため生成されるオブジェクトはそれほど大きくないです。  また、機械語のプログラムを混在することができるようになっています。  プログラム中にラベルを使用することができますが、それには数値しか使えません。  GOTO、GOSUBでのラベルとコマンドのあいだには必ず1個のスペースを入れてください。 [ 使用法 ]  プログラムをロード後、本プログラムを起動してください(スタートアドレスは3000HH番地)。  コンパイラは次のような質問をしてくるので、16進4桁で答えてください。   TEXT ADDRESS:          ソースプログラムの格納番地   RUNTIME ADDRESS:          ランタイムル=チンの発生開始番地   VARIABLE TOP:          変数領域の先頭番地。変数Aがこの番地になります   OBJECT ADDRESS:          オブジェクトプログラムの発生開始番地   OFFSET ADDRESS:          オフセットです。通常は0000とします  以上でコンパイルが開始されます。  しばらくすると、オブジェクトの終了アドレスを表示してS−OSに戻ります。  なお、このアドレスはオフセットを含めた値なので注意してください。  エラーが出た場合は、エラーコード表を参照してエディタで修正して、  再度コンパイルしてください。  無事コンパイルが終了したら、ランタイムルーチン、オブジェクトが含まれる範囲でセーブしてください。  なお、ソースとオブジェクトは重ならないようにしてください。  また、ランタイムルーチンは273バイト、変数領域は26バイトですので、  オブジェクトと重ならないようアドレスを決めてください。 [ サンプル プログラム ]  リファンレスだけではわかりにくいので、サンプルプログラムを作ってみました。  内容はよくあるモグラたたきです。  1〜8のキーでたたいてください。ただし、頭が^のモグラをたたくと減点です。  得点になるモグタが50匹終わったときと、  ^のモグラをたたきすぎて点数がなくなった場合がゲームオーバーです。  ソースが4E00Hに入っていると仮定して(あらかじめエディタで読み込んでおく)コンパイルの手順を示します。  TTCを起動し、   TEXT ADDRESS :4E00   RUNTIME ADDRESS:6000   VARIABLE TOP :6120   OBJECT ADDRESS :6200   OFFSET ADDRESS :0000  と入力すると、OBJECT ENDのアドレスを表示して終了します。  6000HからOBJECT ENDのアドレスの範囲で、  ジャンプアドレス6200Hとしてセーブしてください。  実行はS−OSのモニタからJ6200です。