CPU実験室

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

メモリ読み書き

トランスピュータは自身でROMブートせずにリンクからプログラムを注入して起動するブートストラップの機能があります。そのためROMが無い構成(オンチップRAMだけで済めば外付けRAMも無し)も可能でその機能も確認しておきました

まずブートストラップを機能させるためにCPUのBootFromROMピンに接続されたDIPswをONしてLOWに落とすとROMブートが禁止されてCPUはリセット後にリンクの口を開けて待っている状態になります

最初にTransputer1がリンク先のTransputer2のメモリを読み書きする動作を見てみます。マニュアルにはこの説明だけでコーディング例はないのですが

書いてある通りに操作してみます。メモリ読取りPEEKは最初に制御コマンド0x01を任意のリンクチャネルに出力し、続けて対象アドレス32bitを4byteに分割して出力すると同じリンクチャネルにそのメモリアドレス上のデータが4byte(32bit)で返ってくるとあります。サブルーチンとして使用するために引数をスタック渡しする処理を入れています。

 

同様にメモリ書込みPOKEは最初に制御コマンド0x00を出力し、続けて対象アドレス32bitとそこに書き込むデータ32bitを4byteに分割して出力する処理にしています