CPU実験室

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

初コーディング

TLCS-900の初コーディング、内容は例によってJUMP $からです。

アセンブラではASTLCS-900をサポートしているのでまずこれを使ってみました。先頭のターゲット指定は96C141になっていますがTMP96C141は厳密にはTLCS-900(無印)シリーズのようです。ただしコードは上位コンパチみたいなのでこれでOKでしょう。2行目のMAXMODE ONは16Mbyte空間にコードを配置する宣言で、これがないとしょっぱなからプログラム領域をオーバーしている旨のワーニングが出てしまいます

f:id:O3I:20220412224207j:plain

 

その次からが実際のコードです。CPUはリセット後にFFFF00H番地から3バイトをプログラムカウンタにロードするとあるのでDD疑似命令を使いリトルエンディアンでエントリーポイントFFFF80H番地をセットし、そこにプログラム本体JR $を置きました

これをASアセンブル、ユーティリティP2BINでバイナリに変換します

f:id:O3I:20220412224218j:plain

 

リスティングをみると想定通りのコードが生成されています

f:id:O3I:20220412224235j:plain

 

変換されたバイナリコードです。意味のあるコードは6バイトだけですがアドレスの隙間はFFでパディングされて130バイトのファイルができました

f:id:O3I:20220412224443j:plain