Last Updated on 2021年7月20日 by kabekin
韋駄天のZ80Hカードは完成したので、old68funさんのブログを参考にソフトの作成に入ります。
こちらは自分で作るわけではなく、書籍のコードをそのまま利用させて頂くので私が作ったポンコツソフトとは違い高性能なCP/M80環境になりそう^^
記事中のメモリマップを見るとRAMディスクやディスクキャッシュ、シリアルのバッファなど強力なBIOSを持っており市販のCP/M80を超えているようにも見えます。
6809活用研究に掲載のソフトはDraco C付属のアセンブラ用だそうなので、普通のクロスアセンブラでアセンブルできるように少し手直しがが必要そうです。
私はアセンブル済みバイナリを頂いたのでディスクイメージに合体させるだけでシステムディスクを作りました^^;;;
CPM.SYSはS1-CP/M80用に使ったZ80版を60K CP/Mに変更してそのまま使用しています。
システムディスクの作成手順メモ
① IPL,BIOSはCygwinのddコマンドで合体
こちらはsamさん作成のS1-CP/M80作成用makefileを改造
# Makefile of FM-77AV IDATEN SYSTEM DISK Lv.1 # 韋駄天用CP/M80 フロッピーロケーション # SIDEB SCT 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 # # 6809 IPL $0000-$00FF TRK:0 SCT01 # Z80 CPM60K $0100-$16FF TRK:0 SCT02-23(SIDE A02-B07) # Z80 BIOS14 $1700-$1CFF TRK:0 SCT24-29(SIDE B08-B13) # DATA CONFIG $1D00-$1EFF TRK:0 SCT30-31(SIDE B14-B15) # 6809 KER14 $2000-$3BFF TRK:1 SCT01-28 (IOCS.S, PUN.S, DSK5.S LST.S CON.S) # 上記結合イメージの$1CFFの値を$3C(60d)に変更 60KCP/M #FD SCT1~ #$0000 $C000 # IPL #$00FF $C0FF #$0100 $C100 # CPM.SYS #$16FF $D6FF #$1700 $D700 # BIOS80 #$1CFF $DCFF #$1D00 $DD00 # CONFIG #$1EFF $DEFF #$1F00 $DF00 # 空き #$1FFF $DFFF #$2000 $E000 ←KER14 ENTRY # BIOS09 #$3BFF $FBFF #$3C00 $FC00 # 空き #$3FFF $FFFF # 60K CP/Mの先頭アドレス #BIAS = (MEM-20)*1024 = $A000 #CCP = $3400+BIAS = $3400+$A000 = $D400 #BDOS = CCP+$806 = $D400+$806 = $DC06 #BIOSs = CCP+$1600 = $EA00 #BIOS = $FA00 #FDイメージファイルを置くディレクトリ(環境異存) DIR_FDIMG ?= C:/Users/fe/Desktop/FD_Img #CP/M-80 システムディスクの元ネタイメージへのパス FDIMG_BASE ?= CPM_BASE_2DSys.2D #最終的に出力する2Dイメージファイルへのパス FDIMG_FILE ?= $(DIR_FDIMG)/FM7/CPM-80/IDATEN.2D # IPL (1セクタ) IPLPARAMS = ORG=$(IPLORG) #CPM80本体 (5683バイト=22セクタ:1)*256 OFSCPM22 = 256 # BIOS80 (6セクタ:1+22)*256 OFS80 = 5888 #($1700) # CONFIG (2セクタ:1+22+6)*256=SCT OFSCF = 7424 #($1D00) # BIOS09 (28セクタ:TRK1SCT1=33)*256 OFS09=8192 #($2000) .PHONY: all help help: @echo "Usage:" @echo "TARGET = all, help" @echo "DIR_FDIMG = $(DIR_FDIMG)" @echo "FDIMG_FILE = $(FDIMG_FILE)" @echo "OFSCPM22 = $(OFSCPM22)" @echo "OFS80 = $(OFS80)" @echo "OFSCF = $(OFSCF)" @echo "OFS09 = $(OFS09)" all: img # FDイメージへのBIN配置 img: cp $(FDIMG_BASE) $(FDIMG_FILE) dd if=IPL20.bin of=$(FDIMG_FILE) conv=notrunc dd if=CPM22.bin of=$(FDIMG_FILE) conv=notrunc obs=1 seek=$(OFSCPM22) dd if=bios14.bin of=$(FDIMG_FILE) conv=notrunc obs=1 seek=$(OFS80) dd if=config.bin of=$(FDIMG_FILE) conv=notrunc obs=1 seek=$(OFSCF) dd if=ker14.bin of=$(FDIMG_FILE) conv=notrunc obs=1 seek=$(OFS09)
② 結合したファイルの内容はこんな感じなので、この通りになっているかバイナリエディタで確認
③ 合体したファイルの先頭から$1CFFの値を$3Cに変更
(60K CP/Mの表示用らしい)
④ ここで作成したシステムディスクイメージをDITTで扱えるようにD77形式に変換
( XM7の「2D→D77変換」を使いD77形式への変換)
⑤ D77形式に変換したファイルをDITTで5インチFDに書き込み
⑥ FM77AVで扱うために5インチから3.5インチ2Dフロッピに変換
(コピーにはF-BASICのVOLCOPYユーティリティを使いました)
XM7のエミュ上なのでZ80Hカードの動作はテストできませんが、取りあえず起動させてみたところ
IPL→BIOS09のカードチェックまで進みました。
おおっ! これはうまくいっている予感。
FM77AVは自宅に持ち込めず、実家にあるので次回実家に行ったときに実機で動作確認してみます^^
そんな韋駄天用CP/M80移植の記録・・・
FM-7の情報をお探しの方は是非こちらからどうぞ → Amazon