CP/M用hexローダーの製作 [Z80]
CP/M-80 用のプログラムをアセンブリ言語で書く場合、パソコン上のエディタを使ってソースを編集したいものです。従来は、パソコンで編集したアセンブラソースを Z80 ボードに XMODEM で転送して動かしていました。
しかし、パソコン上で CP/M エミュレータを使ってアセンブル&リンクして作成した HEX ファイルを TeraTerm 上にドラッグ&ドロップして実行できたらより効率的です。
そこで CP/M 上で動作する HEX ローダーを作成してみました。このローダーの機能(特徴)は下記の通りです。
CP/M 側でこのローダーを起動後に、普通に作成した HEX ファイルを TeraTerm にドラッグ&ドロップすればロード後に自動的に実行されるので転送作業がかなり楽になりました。
下記のリンクに公開しました。商用利用以外であれば自由に使用可能とします。
[history]
2023/05/15 Ver 0.03 set 00h to 0080H by skyriver
2023/03/26 Ver 0.02 can break by ^C
2023/03/26 Ver 0.01 published
ソースも貼っておきます。
しかし、パソコン上で CP/M エミュレータを使ってアセンブル&リンクして作成した HEX ファイルを TeraTerm 上にドラッグ&ドロップして実行できたらより効率的です。
そこで CP/M 上で動作する HEX ローダーを作成してみました。このローダーの機能(特徴)は下記の通りです。
- コンソールから入力されるインテル HEX 形式のデータをメモリ上に展開します
- ロード完了後にHEX ファイルの先頭行のアドレスにジャンプします(ロードプログラムが自動起動します)
- CP/M の標準プログラムである 0100H から始まるものもダウンロードできるようにするために自身のコードを 0080H に移動してから実行します
- 高速化のために BIOS の機能を直にコールしています
CP/M 側でこのローダーを起動後に、普通に作成した HEX ファイルを TeraTerm にドラッグ&ドロップすればロード後に自動的に実行されるので転送作業がかなり楽になりました。
下記のリンクに公開しました。商用利用以外であれば自由に使用可能とします。
[history]
2023/05/15 Ver 0.03 set 00h to 0080H by skyriver
2023/03/26 Ver 0.02 can break by ^C
2023/03/26 Ver 0.01 published
ソースも貼っておきます。
CP/M-80 用 HEX ローダー(アセンブラ) |
|