CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ライブラリ化

1文字入出力などの汎用処理を切り出してライブラリ化しました。

作った関数はまだ少ないですがヘッダファイルはこんな感じ。

c92lib.h

統合環境cmpldrvにもCコンパイルの環境を登録。ライブラリ関数を使ってLチカを書き直しました。

コンパイル結果はこのような感じ。ソース自体が単純なので効率の良いコードを生成しています。特徴的なのは引数のスタックへの積み方で、関数を呼ぶたびに引数をプッシュしていきますがスタックの調整は最後にまとめてやるようです

            stack pointer

PUSHW 0x1      -2

PUSH  XWA     -4

PUSHW 0x0      -2

PUSH  XWA     -4

LDA  XSP,XSP+0xC  +12