SSブログ
English Version

レトロマイコンZ80ボードの構想(その9)CP/M80 BIOS検討 [Z80]

 ebayで注文したブレッドボード用の接続コードがまだ届かず Z80 と PIC24FJ64GA004 のインターフェース部分の実験ができず待ちの状態なのでCP/MのBIOS部分の検討を少しやってみました。

 インテル系のニーモニックはあまり好きじゃないのでザイログ系のニーモニックがフルに使えるMACRO-80(m80.com)をCP/Mエミュ上で使うことに決めました。

 何十年かぶりの m80・・・^^
 avrCPM用のbios.asmを基にしてザイログニーモニックへの変換はすぐにできましたが、ディスクパラメータ生成のためのmac.com用のマクロがそのままでは動かず、自力でm80用に変換しようかとも思ったけどネットで探したら見つかった^^

bios.macの先頭部分抜粋
MSIZE EQU 62 ;size of available RAM in k BIAS EQU (MSIZE-20) * 1024 CCP EQU 3400H+BIAS ;base of cpm ccp BDOS EQU CCP+806H ;base of bdos BIOS EQU CCP+1600H ;base of bios CDISK EQU 0004H ;current disk number (0 ... 15) IOBYTE EQU 0003H ;intel iobyte BUFF EQU 0080H ;default buffer address RETRY EQU 3 ;max retries on disk i/o before error CR EQU 13 LF EQU 10 NSECTS EQU ($-CCP)/128 ;warm start sector count ASEG ORG 100H .PHASE BIOS .Z80 JP BOOT WBOOTE: JP WBOOT JP CONST JP CONIN JP CONOUT JP LIST JP PUNCH JP READER JP HOME JP SELDSK JP SETTRK JP SETSEC JP SETDMA JP READ JP WRITE JP LISTST JP SECTRAN SIGNON: DB CR,LF DB MSIZE/10+'0' DB (MSIZE mod 10) + '0' DB 'k CP/M Version 2.2 COPYRIGHT (C) 1979, DIGITAL RESEARCH' DB CR,LF,0 BOOT: LD SP,BUFF LD HL,SIGNON CALL PRMSG XOR A LD (IOBYTE),A LD (CDISK),A JP GOCPM


 あちこちいじっていますが、アセンブルが通りました。

超久々にm80でザイログニーモニックソースのアセンブル

 ディスクパラメータも想定通りに展開されています。^^

ディスクパラメータ生成
; Name spt bls dks dir cks off dpb dpb_A, 64, 2048, 972, 256, 0, 1 F38B + dpb_A: ddw %64,<;sec per track> F38B 0040 + dw 64 ;sec per track F38D 04 + db 4 ;block shift F38E 0F + db 15 ;block mask F38F 00 + db 0 ;extnt mask F390 03CB + dw 971 ;disk size-1 F392 00FF + dw 255 ;directory max F394 F0 + db 240 ;alloc0 F395 00 + db 0 ;alloc1 F396 0000 + dw 0 ;check size F398 0001 + dw 1 ;offset dpb dpb_B, 64, 2048, 976, 256, 0, 244 F39A + dpb_B: ddw %64,<;sec per track> F39A 0040 + dw 64 ;sec per track F39C 04 + db 4 ;block shift F39D 0F + db 15 ;block mask F39E 00 + db 0 ;extnt mask F39F 03CF + dw 975 ;disk size-1 F3A1 00FF + dw 255 ;directory max F3A3 F0 + db 240 ;alloc0 F3A4 00 + db 0 ;alloc1 F3A5 0000 + dw 0 ;check size F3A7 00F4 + dw 244 ;offset


 Z80とPIC24FJ64GA004とのインターフェースに関してはこれから細かく考えますが、boot時のシステム読込みはSDカードからではなく、PIC内のフラッシュから展開した方が良さそう。

 あと、Z80とPIC間のインターフェースでZ80側のNMIもリセットも使わない方法を実験予定です。うまく行けばI/Oが1bit節約できる ^^


[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。