3チップ構成68Kマイコンの構想(その7)CP/Mのリロケート [68K]
前回の記事「3チップ構成68Kマイコンの構想(その6)CPM400.SRの問題」でダウンロードしたCP/M-68Kのアーカイブファイルに入っていた0x0400から始まるCP/M本体のSレコードファイルであるCPM400.SRに問題があることを書きました。
今回は3チップ構成68Kボード用に作成済みのBIOSとリンクすることでCP/Mのアドレスを変更し、CPM.SYSファイルを作成してみます。
今回作成した3チップ構成68K基板用のCP/MのBIOSはアセンブラで作成済み(まだ変更する部分はありますが)なので、CP/Mのアセンブラでアセンブルし、リンカーでリンクします。
その後、リロケータで物理アドレスに変換します。
biosのアセンブルとCPMとのリンク
これでリロケータブルなCP/Mファイルが出来ました。
次にリロケータを使って実アドレス(前回記事で失敗した0x0400)用のファイルに変換します。
★追記 2022/01/25 {
アセンブラは最初に下記のコマンドで初期化する必要があります。
B>as68.rel -I AS68INIT
68000 assembler initialized
}
cpm.relファイルから実アドレスにリロケート
このファイル内容を「3チップ構成68Kマイコンの構想(その3)Sレコード簡易ローダーの製作」の記事で書いたSレコードローダを使って68KボードにロードしてCP/Mを立ち上げるためには、上で作った cpm.sys のSレコードファイルをパソコン上に準備する必要があります。
CP/M上のファイルをパソコンに持ってくるためにはcpmtoolで可能ですが、SDカードの抜き差しが必要となり面倒です。
今回はCP/M上のダンプリスト表示内容をバイナリファイルに変換するツールを作りました。
CP/M-68Kのファイルにはヘッダ情報があり、ヘッダの構成は下図のようになっています。
上で書いた操作ログにあるsize68コマンドはヘッダ情報を表示するツールです。
上記の操作で作成したcpm.sysのダンプ表示の最初の方のキャプチャが下図で、赤枠部分がヘッダ部です。
今回作成した Dump2Bin ツールは赤枠の次のデータ以降の値を読み取り、バイナリファイルとして書き出すものです。
尚、バイナリ to Sレコード変換はネットを探すと色々あるので自作していませんw
★2018/09/30 追記 {
「3チップ構成68Kマイコンの構想(その10)XMODEMアプリの作成」の記事に追記したようにCP/Mに標準で含まれている sendc68コマンドでCP/M上のヘッダ付きファイルをSレコードに変換できます。
}
具体的な操作としては
従来は CPM15000.SR と biosのSレコードファイルをSレコードローダで68Kボードにダウンロードしていましたが、今回作った CPM0400.SRだけをダウンロードすればCP/Mが立ち上がります(下記で'1'の連続部分がCPM0400.SRのダウンロード部です)
作成したCPM0400.SRによるCP/Mの起動
この流れだと次回はCP/Mローダのことを書くことになると思いますw
[TOP] [ 前へ ] 連載記事 [ 次へ ]
今回は3チップ構成68Kボード用に作成済みのBIOSとリンクすることでCP/Mのアドレスを変更し、CPM.SYSファイルを作成してみます。
今回作成した3チップ構成68K基板用のCP/MのBIOSはアセンブラで作成済み(まだ変更する部分はありますが)なので、CP/Mのアセンブラでアセンブルし、リンカーでリンクします。
その後、リロケータで物理アドレスに変換します。
|
これでリロケータブルなCP/Mファイルが出来ました。
次にリロケータを使って実アドレス(前回記事で失敗した0x0400)用のファイルに変換します。
★追記 2022/01/25 {
アセンブラは最初に下記のコマンドで初期化する必要があります。
B>as68.rel -I AS68INIT
68000 assembler initialized
}
|
このファイル内容を「3チップ構成68Kマイコンの構想(その3)Sレコード簡易ローダーの製作」の記事で書いたSレコードローダを使って68KボードにロードしてCP/Mを立ち上げるためには、上で作った cpm.sys のSレコードファイルをパソコン上に準備する必要があります。
CP/M上のファイルをパソコンに持ってくるためにはcpmtoolで可能ですが、SDカードの抜き差しが必要となり面倒です。
今回はCP/M上のダンプリスト表示内容をバイナリファイルに変換するツールを作りました。
CP/M-68Kのファイルにはヘッダ情報があり、ヘッダの構成は下図のようになっています。
CP/M-68Kファイル内ヘッダ情報 |
|
上で書いた操作ログにあるsize68コマンドはヘッダ情報を表示するツールです。
上記の操作で作成したcpm.sysのダンプ表示の最初の方のキャプチャが下図で、赤枠部分がヘッダ部です。
今回作成した Dump2Bin ツールは赤枠の次のデータ以降の値を読み取り、バイナリファイルとして書き出すものです。
尚、バイナリ to Sレコード変換はネットを探すと色々あるので自作していませんw
★2018/09/30 追記 {
「3チップ構成68Kマイコンの構想(その10)XMODEMアプリの作成」の記事に追記したようにCP/Mに標準で含まれている sendc68コマンドでCP/M上のヘッダ付きファイルをSレコードに変換できます。
}
cpm.sysファイルのヘッダ情報 |
|
具体的な操作としては
- PCへ持っていきたいファイルをCP/M上でダンプ表示する。
- TeraTermの画面表示からコピーしてパソコン上にダンプ表示部分のテキストファイルを作成する。
- Dump2Binツールでバイナリファイルに変換する。
- ネット上に公開されている バイナリファイルをSレコードファイルに変換するツールを使用してSレコード化(CPM0400.SR)する。
- Sレコードダウンローダを起動した状態で、上記で作成したCP/MとBIOSが一体化したSレコードファイルをTeraTerm画面にコピペする(ファイル送信操作でも可)。
従来は CPM15000.SR と biosのSレコードファイルをSレコードローダで68Kボードにダウンロードしていましたが、今回作った CPM0400.SRだけをダウンロードすればCP/Mが立ち上がります(下記で'1'の連続部分がCPM0400.SRのダウンロード部です)
|
この流れだと次回はCP/Mローダのことを書くことになると思いますw
[TOP] [ 前へ ] 連載記事 [ 次へ ]