CPU実験室

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

最小ループ

いよいよトランスピュータ上で動作するプログラムを作成してみます。いつものようにコードは一番簡単な最小ループ「j $」、リセットベクタはメモリ空間の最後の2バイトを指すので開始番地を0x7FFFFFFEにしてアセンブルします

 

アセンブルは瞬時に終わって実行可能コード”600E”が得られました。

さてこの2バイトのコードを32bitデータバスにどのように配置すればよいのでしょうか。マニュアルをみるとトランスピュータはIntel80x86と同じリトルエンディアンであるとあります

ボード上にある4個のROMソケットは左からD0-D7、D8-D15、D16-D23、D24-D31のデータバスに接続されています。リトルエンディアンならばLSBが低アドレス、すなわちソケットの最終番地は左から0x7FFFFFFC,0x7FFFFFFD,0x7FFFFFFE,0x7FFFFFFFになります

一方、最終番地に0xFF,0xFF,0x60,0x0Eの1バイトをそれぞれ書いた4個のROMを用意しました。”600E”が16ビット定数であればROMの差し込みは以下のようになります

 

これでお膳立てがすべて整ったので電源ON・・・・