復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第187回]
●ブレークプログラム(CP/M互換DOSのための変更その2)
前回はブレークポイントの設定(BPコマンド)プログラムについて説明をしました。
今回はブレークポイントアドレスに仕掛けられたトラップ(FFコード)によって0038H番地からジャンプして実行されるブレーク処理プログラムについて説明をします。
CP/M互換DOSのための変更を行なう前のプログラムリストは[第182回]でお見せしています。
下は変更後のリストです。
;;;
;;;BREAK ENTRY
1B53 F3 BROUT:DI
1B54 E3 EX (SP),HL
1B55 2B DEC HL
1B56 229BF0 LD (PCL),HL
1B59 E1 POP HL
1B5A ED7399F0 BROUT1:LD (SPBF),SP;from ZBDOS
1B5E 3198F0 LD SP,IREG
1B61 DDE5 PUSH IX
1B63 FDE5 PUSH IY
1B65 F5 PUSH AF
1B66 C5 PUSH BC
1B67 D5 PUSH DE
1B68 E5 PUSH HL
1B69 08 EX AF,AF'
1B6A F5 PUSH AF
1B6B D9 EXX
1B6C C5 PUSH BC
1B6D D5 PUSH DE
1B6E E5 PUSH HL
1B6F ED57 LD A,I
1B71 3298F0 LD (IREG),A
1B74 2100F5 LD HL,STC
1B77 1100ED LD DE,STCWK
1B7A 010003 LD BC,$0300
1B7D EDB0 LDIR
1B7F 3100F8 LD SP,SPTOP
1B82 3AE6FE LD A,(EIMK)
1B85 B7 OR A
1B86 CA891B JP Z,BROUT2
1B89 2A80F0 BROUT2:LD HL,(BRKAD)
1B8C 3A82F0 LD A,(BRKBF)
1B8F CDE11C CALL MEMWR2
1B92 CD0E1B CALL RGDSP
1B95 C3181C JP BPST5
|
;;;
1800 C35418 JP START
1803 C3A418 JP ENTRY
1806 C35519 JP SDTIN
1809 C31510 JP ADISP
180C C3AE10 JP SIN
180F C37F19 JP ASOUT
1812 C31D19 JP LNSRC
1815 C3F918 JP ENT4
1818 C38F19 JP AUTO
181B C3DD19 JP MVDBI
181E C3F519 JP DM
1821 C3651A JP CM
1824 C3D11B JP BP
1827 C3981B JP RT
182A C3F71A JP IN
182D C3D41A JP OUT
1830 C3AE1C JP LCDOT
1833 C3B01C JP LINIT
1836 C3B11C JP JPIN
1839 C3AF1C JP LCDINSB
183C C3C31C JP RRCOPYSB
183F C30E1B JP RGDSP
1842 C3AE10 JP SIN; from INPUT$
1845 C3A21C JP SIN_NODTRT; from INKEY$,INPUT$
1848 C3741C JP LD
184B C38B1C JP SV
184E C30B1A JP DMSB
1851 C35A1B JP BROUT1
;;;
|
;
;BIOS ROUTINE
;
D277 3100F8 SETENTRY:LD SP,SPTOP
D27A AF XOR A
D27B 3204D6 LD (CURDRV),A
;here,dos system reload
D27E 3100F8 WBOOTJ:LD SP,SPTOP
D281 3EFF LD A,FF
D283 D39C OUT (9C),A
D285 213800 LD HL,RST7
D288 3EC3 LD A,C3
D28A 77 LD (HL),A
D28B 23 INC HL
D28C 11CAD2 LD DE,RST7BRK
D28F 73 LD (HL),E
D290 23 INC HL
D291 72 LD (HL),D
;
|
D2CA F3 RST7BRK:DI D2CB 3278D5 LD (BRKWK),A D2CE E3 EX (SP),HL D2CF 2B DEC HL D2D0 229BF0 LD (PCL),HL D2D3 E1 POP HL D2D4 3E00 LD A,00;can't use XOR A! D2D6 D39C OUT (9C),A;select 0-7fff ROM D2D8 3A78D5 LD A,(BRKWK) D2DB C35118 JP BROUT1 |