CPU実験室

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

初プログラミング

バスの動きを見るため有意なコードを実行させてみます。まず最初は毎度のことながらこの永久ループです

f:id:O3I:20210613090305j:plain

 

アセンブラがまだ見つかっていないので取り急ぎハンドアセンブルで何とかします。ADSP-2101のマニュアルでインストラクションの説明でJUMP命令について記載を見つけました。飛び先の絶対アドレス指定を即値でできるようです。

 

f:id:O3I:20210613085913j:plain

それにしてもアセンブラ書式が一風変わってます。条件分岐のIF condition JUMP ~とかほとんどBASICか、という感じです。

 

さてこれをマシン語に落としますが条件分岐JUMPのフォーマットはこの通り。

f:id:O3I:20210613085925j:plain

f:id:O3I:20210613085939j:plain

Sフィールドは通常のJUMPなので「0」、ADDRフィールドは14ビットでプログラム空間16kword全域をダイレクトに指定できますがここでは先頭番地「0000h」、condフィールドは無条件ジャンプのためalways「1111」となり、結局24ビット1ワードのバイナリコード「18000Fh」が得られます