ハードの準備がほぼ完了したので、通例だとこのあとの手順は
メモリの動作確認→シリアル入出力の確認→原始モニタの搭載→テストプログラムでハードウェア各部の詳細動作確認→高機能モニタの搭載
と進めるのですが486CPUに関しては既に動作実績のあるボードがあってモニタも完成していることと、ROMの抜き差しをあまりしたくないというのもあって途中すっ飛ばして一気に高機能モニタの移植をしてしまいます。
8086/V50/V53/80286/80386ボードで共通のモニタのソースコードの本体はCで書かれていて、シリアルコントローラがi8251から今回Am85C30に変わったので初期化ルーチンと1文字入出力ルーチンの差し替えのみ。実メモリへのリロケーションは同じなのでリンケージ指示は手直し無しでLSI-C86でコンパイルできました
で、出来上がった1本のHEXファイル。これをROMに焼こうとしてハタと困りました。HEXファイルをバッファに展開したメモリイメージを以下のように2個のROMに分割しなければなりません
ROMライタのファイル読取りアライメント指定はプルダウンで選択できるように作っていて現状
ALL: 全て(8ビットバスに8ビット幅ROMを配置)
WORD(H/L): 16ビットバスを8ビット幅ROMで偶奇で分割
DWORD(0/1/2/3): 32ビットバスを8ビット幅ROMでmod4で分割
でしたがこれでは対応できないので新たに
DWORD(H/L): 32ビットバスを16ビット幅ROMで1wordづつ分割
を加えました
これでモニタのコードをROMの0x00000番地(システム側からは0x00080000)に配置、リセットベクタであるROMの0x1FFFC番地(システム側からは0xFFFFFFF0)にセグメント間ジャンプコードJMP far ptr 8000:000(EA/00/00/00/80)を埋め込んで2個のROMにスプリットさせました