cseg\r
.phase TPA\r
\r
- LD SP,ldr_end+(stack-ddtz_base)\r
- LD DE,ldr_end+(expr_buf-ddtz_base)\r
- LD C,BDOS_PSTR\r
- CALL BDOS\r
-\r
- LD HL,ldr_end+ddtz_size ;start of reloc bitmap\r
- ld bc,0108h ;init bit counter\r
-\r
- EXX\r
- LD HL,(BDOS+1)\r
- LD (ldr_end+1),HL\r
- LD BC,ddtz_size-1\r
- LD D,B\r
- LD E,0FFH\r
- INC DE ;size rounded up to next page boundary\r
- INC BC ;ddtz_size\r
- OR A\r
- SBC HL,DE ;BDOS - size\r
- LD (BDOS+1),HL ;-> new BDOS entry\r
-\r
- push hl\r
- PUSH BC\r
- ld de,ldr_end\r
- sbc hl,de\r
- EX DE,HL ;-> DE\r
- LD HL,ldr_size\r
- add hl,bc\r
- ld b,h\r
- ld c,l\r
- LD HL,TPA\r
-reloc_lp:\r
- EXX\r
- djnz reloc_nl\r
- ld b,c ;reload bit counter\r
- LD e,(HL) ;get next 8 relocation bits\r
- INC HL\r
-reloc_nl:\r
- sla e\r
- EXX\r
- JR NC,reloc_next\r
- DEC HL\r
- LD A,(HL)\r
- ADD A,E\r
- LD (HL),A\r
- INC HL\r
- LD A,(HL)\r
- ADC A,D\r
- LD (HL),A\r
-reloc_next:\r
- cpi\r
- jp pe,reloc_lp\r
- dec hl\r
-\r
- POP BC\r
- pop de\r
- EX DE,HL\r
- ADD HL,BC\r
- EX DE,HL\r
- DEC DE\r
- LDDR\r
- LD HL,conbuf+2-ddtz_base\r
- ADD HL,DE\r
- JP (HL)\r
+ jp start\r
\r
ldr_end:\r
ldr_size equ $ - TPA\r
+current_phase defl $\r
\r
.dephase\r
+current_cseg defl $\r
+\r
;-------------------------------------------------------------------------------\r
; DDT/Z core\r
;\r
; CP/M memory layout\r
\r
BDOS equ 5\r
-FCB equ 05ch\r
-FCB2 equ 06ch\r
+dfcb1 equ 05ch\r
+dfcb2 equ 06ch\r
DMA_BUF equ 080h\r
TPA equ 0100h\r
\r
;-------------------------------------------------------------------------------\r
\r
ddtz_base:\r
- jp 0 ;0000 c3 00 00 . . .\r
+ jp ddtz_bdos\r
l0003h:\r
- rst 30h ;0003 f7 .\r
+ rst 30h\r
sub_0004h:\r
- nop ;0004 00 .\r
- ret ;0005 c9 .\r
+ nop\r
+ ret\r
+ddtz_bdos:\r
+ jp 0\r
+\r
+current_cseg defl $ - current_cseg\r
+ .phase current_phase + current_cseg\r
+signon:\r
+ db 'DDT/180',TAB\r
+ db '[8101] 002',CR,LF,'$'\r
+msgz80:\r
+ db 'Z80 or better required!',cr,lf,'$'\r
+\r
+current_phase defl $\r
+ .dephase\r
+current_cseg defl $\r
+ ds STACK_SIZE - (current_phase - signon)\r
\r
- ds STACK_SIZE\r
\r
stack:\r
-reg.l2: db 000h ;0046 00 .\r
-reg.h2: db 000h ;0047 00 .\r
-reg.e2: db 000h ;0048 00 .\r
-reg.d2: db 000h ;0049 00 .\r
-reg.c2: db 000h ;004a 00 .\r
-reg.b2: db 000h ;004b 00 .\r
-reg.f2: db 000h ;004c 00 .\r
-reg.a2: db 000h ;004d 00 .\r
-l004eh: db 000h ;004e 00 .\r
-reg.i: db 000h ;004f 00 .\r
-reg.iy: dw 0000h ;0050 00 .\r
-reg.ix: dw 0000h ;0052 00 .\r
-reg.f: db 000h ;0054 00 .\r
-reg.a: db 000h ;0055 00 .\r
-reg.c: db 000h ;0056 00 .\r
-reg.b: db 000h ;0057 00 .\r
-reg.e: db 000h ;0058 00 .\r
-reg.d: db 000h ;0059 00 .\r
-reg.l: db 000h ;005a 00 .\r
-reg.h: db 000h ;005b 00 .\r
-reg_sp: dw TPA ;005c 00 01 .\r
+reg.l2: db 000h\r
+reg.h2: db 000h\r
+reg.e2: db 000h\r
+reg.d2: db 000h\r
+reg.c2: db 000h\r
+reg.b2: db 000h\r
+reg.f2: db 000h\r
+reg.a2: db 000h\r
+l004eh: db 000h\r
+reg.i: db 000h\r
+reg.iy: dw 0000h\r
+reg.ix: dw 0000h\r
+reg.f: db 000h\r
+reg.a: db 000h\r
+reg.c: db 000h\r
+reg.b: db 000h\r
+reg.e: db 000h\r
+reg.d: db 000h\r
+reg.l: db 000h\r
+reg.h: db 000h\r
+reg_sp: dw TPA\r
reg.iff:\r
- db 0f3h ;005e f3 .\r
- db 0c3h ;005f c3 .\r
-REG.PC: dw TPA ;0060 00 01 .\r
-l0062h: dw 0000h ;0062 00 00 .\r
-offs.@: dw 0 ;0064 00 00 .\r
+ db 0f3h\r
+ db 0c3h\r
+REG.PC: dw TPA\r
+l0062h: dw 0000h\r
+offs.@: dw 0\r
\r
-CMD_ERR:dw l0146h ;0066 46 01 F .\r
-cmd_rpt:dw mainloop ;0068 bd 00 . .\r
+CMD_ERR:dw l0146h\r
+cmd_rpt:dw mainloop\r
\r
conbuf:\r
- db CONBUF_SIZE ;006a 50 P\r
-\r
- ld sp,stack ;006b 31 46 00 1 F .\r
- exx ;006e d9 .\r
- ld de,ddtz_base ;006f 11 00 00 . . .\r
- or a ;0072 b7 .\r
- sbc hl,de ;0073 ed 52 . R\r
- add hl,de ;0075 19 .\r
- jr c,l0079h ;0076 38 01 8 .\r
- ex de,hl ;0078 eb .\r
+ db CONBUF_SIZE\r
+\r
+ ld sp,stack\r
+ exx\r
+ ld de,ddtz_base\r
+ or a\r
+ sbc hl,de\r
+ add hl,de\r
+ jr c,l0079h\r
+ ex de,hl\r
l0079h:\r
- ld de,TPA ;0079 11 00 01 . . .\r
+ ld de,TPA\r
l007ch:\r
- dec hl ;007c 2b +\r
- ld (hl),000h ;007d 36 00 6 .\r
- ld a,h ;007f 7c |\r
- sub d ;0080 92 .\r
- ld b,a ;0081 47 G\r
- ld a,l ;0082 7d }\r
- sub e ;0083 93 .\r
- or b ;0084 b0 .\r
- jr nz,l007ch ;0085 20 f5 .\r
- ld a,i ;0087 ed 57 . W\r
- ld (reg.i),a ;0089 32 4f 00 2 O .\r
- ld a,0f3h ;008c 3e f3 > .\r
- jp po,l0093h ;008e e2 93 00 . . .\r
- ld a,0fbh ;0091 3e fb > .\r
+ dec hl\r
+ ld (hl),000h\r
+ ld a,h\r
+ sub d\r
+ ld b,a\r
+ ld a,l\r
+ sub e\r
+ or b\r
+ jr nz,l007ch\r
+ ld a,i\r
+ ld (reg.i),a\r
+ ld a,0f3h\r
+ jp po,l0093h\r
+ ld a,0fbh\r
l0093h:\r
- ld (reg.iff),a ;0093 32 5e 00 2 ^ .\r
- call sub_0004h ;0096 cd 04 00 . . .\r
- ld hl,ddtz_base ;0099 21 00 00 ! . .\r
- ld l,000h ;009c 2e 00 . .\r
- ld (reg_sp),hl ;009e 22 5c 00 " \ .\r
- ld a,(FCB+1) ;00a1 3a 5d 00 : ] .\r
- cp ' ' ;00a4 fe 20 .\r
- ld hl,0 ;00a6 21 00 00 ! . .\r
- call nz,read_file ;00a9 c4 68 10 . h .\r
- jr mainloop ;00ac 18 0f . .\r
+ ld (reg.iff),a\r
+ call sub_0004h\r
+ ld hl,ddtz_base\r
+ ld l,000h\r
+ ld (reg_sp),hl\r
+ call cpy_fcb2\r
+ ld a,(dfcb1+1)\r
+ cp ' '\r
+ ld hl,0\r
+ call nz,read_file\r
+ jr mainloop\r
\r
ds CONBUF_SIZE + 3 - ($ - conbuf)\r
\r
jr mainloop ;010d 18 ae . .\r
\r
CMDTAB:\r
- defw cmd_@ ;0110 92 0d . .\r
- defw cmd_A ;0112 fe 11 . .\r
- defw cmd_B ;0114 6d 07 m .\r
- defw cmd_C ;0116 17 21 . !\r
- defw cmd_D ;0118 48 0f H .\r
- defw ERROR ;011a 07 01 . .\r
- defw cmd_F ;011c af 0f . .\r
- defw cmd_G ;011e 31 07 1 .\r
- defw cmd_H ;0120 3d 0e = .\r
- defw cmd_I ;0122 a3 0d . .\r
- defw ERROR ;0124 07 01 . .\r
- defw ERROR ;0126 07 01 . .\r
- defw cmd_L ;0128 cd 18 . .\r
- defw cmd_M ;012a 19 0e . .\r
- defw ERROR ;012c 07 01 . .\r
- defw cmd_O ;012e c7 0d . .\r
- defw ERROR ;0130 07 01 . .\r
- defw cmd_Q ;0132 84 0e . .\r
- defw cmd_R ;0134 62 10 b .\r
- defw cmd_S ;0136 5a 0d Z .\r
- defw cmd_T ;0138 1e 21 . !\r
- defw ERROR ;013a 07 01 . .\r
- defw cmd_V ;013c ea 0d . .\r
- defw cmd_W ;013e a0 11 . .\r
- defw cmd_X ;0140 f1 0b . .\r
- defw cmd_Y ;0142 b2 0b . .\r
- defw cmd_Z ;0144 ba 0e . .\r
+ dw cmd_@ ;0110 92 0d . .\r
+ dw cmd_A ;0112 fe 11 . .\r
+ dw cmd_B ;0114 6d 07 m .\r
+ dw cmd_C ;0116 17 21 . !\r
+ dw cmd_D ;0118 48 0f H .\r
+ dw ERROR ;011a 07 01 . .\r
+ dw cmd_F ;011c af 0f . .\r
+ dw cmd_G ;011e 31 07 1 .\r
+ dw cmd_H ;0120 3d 0e = .\r
+ dw cmd_I ;0122 a3 0d . .\r
+ dw ERROR ;0124 07 01 . .\r
+ dw ERROR ;0126 07 01 . .\r
+ dw cmd_L ;0128 cd 18 . .\r
+ dw cmd_M ;012a 19 0e . .\r
+ dw ERROR ;012c 07 01 . .\r
+ dw cmd_O ;012e c7 0d . .\r
+ dw ERROR ;0130 07 01 . .\r
+ dw cmd_Q ;0132 84 0e . .\r
+ dw cmd_R ;0134 62 10 b .\r
+ dw cmd_S ;0136 5a 0d Z .\r
+ dw cmd_T ;0138 1e 21 . !\r
+ dw ERROR ;013a 07 01 . .\r
+ dw cmd_V ;013c ea 0d . .\r
+ dw cmd_W ;013e a0 11 . .\r
+ dw cmd_X ;0140 f1 0b . .\r
+ dw cmd_Y ;0142 b2 0b . .\r
+ dw cmd_Z ;0144 ba 0e . .\r
\r
l0146h:\r
ld a,'?' ;0146 3e 3f > ?\r
push hl ;014e e5 .\r
ld de,conbuf ;014f 11 6a 00 . j .\r
ld c,BDOS_CBUF ;0152 0e 0a . .\r
- call ddtz_base ;0154 cd 00 00 . . .\r
+ call ddtz_bdos ;0154 cd 00 00 . . .\r
call crlf ;0157 cd a3 02 . . .\r
ld de,conbuf+1 ;015a 11 6b 00 . k .\r
ld a,(de) ;015d 1a .\r
and 07fh ;0261 e6 7f . \7f\r
ld e,a ;0263 5f _\r
ld c,BDOS_COUT ;0264 0e 02 . .\r
- call ddtz_base ;0266 cd 00 00 . . .\r
+ call ddtz_bdos ;0266 cd 00 00 . . .\r
ld hl,con_col ;0269 21 72 02 ! r .\r
inc (hl) ;026c 34 4\r
pop af ;026d f1 .\r
pop de ;026f d1 .\r
pop hl ;0270 e1 .\r
ret ;0271 c9 .\r
-con_col:\r
- db 0 ;0272 00 .\r
+\r
inchar:\r
push hl ;0273 e5 .\r
push de ;0274 d5 .\r
push bc ;0275 c5 .\r
ld c,BDOS_CSTAT ;0276 0e 0b . .\r
- call ddtz_base ;0278 cd 00 00 . . .\r
+ call ddtz_bdos ;0278 cd 00 00 . . .\r
and a ;027b a7 .\r
jr z,l0284h ;027c 28 06 ( .\r
ld c,BDOS_CIN ;027e 0e 01 . .\r
- call ddtz_base ;0280 cd 00 00 . . .\r
+ call ddtz_bdos ;0280 cd 00 00 . . .\r
scf ;0283 37 7\r
l0284h:\r
pop bc ;0284 c1 .\r
ld c,0 ;0288 0e 00 . .\r
l028ah:\r
ld a,(hl) ;028a 7e ~\r
+ inc hl ;0291 23 #\r
and a ;028b a7 .\r
ret z ;028c c8 .\r
call outchar ;028d cd 5d 02 . ] .\r
inc c ;0290 0c .\r
- inc hl ;0291 23 #\r
and a ;0292 a7 .\r
ret m ;0293 f8 .\r
jr l028ah ;0294 18 f4 . .\r
\r
+pstr_inl:\r
+ ex (sp),hl\r
+ call pstr\r
+ ex (sp),hl\r
+ ret\r
+\r
outbl6:\r
call outbl2 ;0296 cd 9c 02 . . .\r
outbl4:\r
ld (con_col),a ;02b2 32 72 02 2 r .\r
jp c,mainloop ;02b5 da bd 00 . . .\r
ret ;02b8 c9 .\r
+\r
add_hl_a:\r
add a,l ;02b9 85 .\r
ld l,a ;02ba 6f o\r
db '=<>',0\r
\r
tab_func_eqlege:\r
- defw do_op_eq ;0423 da 03 . .\r
- defw do_op_lt ;0425 e4 03 . .\r
- defw do_op_gt ;0427 e8 03 . .\r
- defw do_op_le ;0429 e2 03 . .\r
- defw do_op_ge ;042b ea 03 . .\r
- defw do_op_ne ;042d de 03 . .\r
+ dw do_op_eq ;0423 da 03 . .\r
+ dw do_op_lt ;0425 e4 03 . .\r
+ dw do_op_gt ;0427 e8 03 . .\r
+ dw do_op_le ;0429 e2 03 . .\r
+ dw do_op_ge ;042b ea 03 . .\r
+ dw do_op_ne ;042d de 03 . .\r
\r
do_subexpr:\r
call do_factor ;042f cd e4 04 . . .\r
DB '+-*/%&!#',0\r
\r
tblf_opa:\r
- defw doop_add ;04cb 4c 04 L .\r
- defw doop_sub ;04cd 50 04 P .\r
- defw doop_mlt ;04cf 55 04 U .\r
- defw doop_div ;04d1 6a 04 j .\r
- defw doop_mod ;04d3 6f 04 o .\r
- defw doop_and ;04d5 96 04 . .\r
- defw doop_or ;04d7 9e 04 . .\r
- defw doop_xor ;04d9 a6 04 . .\r
- defw 0 ;04db 00 00 . .\r
+ dw doop_add ;04cb 4c 04 L .\r
+ dw doop_sub ;04cd 50 04 P .\r
+ dw doop_mlt ;04cf 55 04 U .\r
+ dw doop_div ;04d1 6a 04 j .\r
+ dw doop_mod ;04d3 6f 04 o .\r
+ dw doop_and ;04d5 96 04 . .\r
+ dw doop_or ;04d7 9e 04 . .\r
+ dw doop_xor ;04d9 a6 04 . .\r
+ dw 0 ;04db 00 00 . .\r
\r
fact_factor:\r
call do_factor ;04dd cd e4 04 . . .\r
call get.number ;04e7 cd aa 05 . . .\r
ret nc ;04ea d0 .\r
inc de ;04eb 13 .\r
- ld hl,ddtz_base-1 ;04ec 21 ff ff ! . .\r
+ ld hl,(BDOS+1) ;04ec 21 ff ff ! . .\r
cp 'T' ;04ef fe 54 . T\r
ret z ;04f1 c8 .\r
ld hl,(high_load) ;04f2 2a 9c 11 * . .\r
jr l0614h ;060f 18 03 . .\r
\r
get.hexdigit:\r
- ld a,(de) ;0611 1a .\r
+ ld a,(de)\r
hex_digit:\r
- cp 'F'+1 ;0612 fe 47 . G\r
+ cp 'F'+1\r
l0614h:\r
- ccf ;0614 3f ?\r
- ret c ;0615 d8 .\r
- cp 'A' ;0616 fe 41 . A\r
- jr c,l061eh ;0618 38 04 8 .\r
- sub 'A'-10 ;061a d6 37 . 7\r
- ret ;061c c9 .\r
+ ccf\r
+ ret c\r
+ cp 'A'\r
+ jr c,l061eh\r
+ sub 'A'-10\r
+ ret\r
\r
get.decdigit:\r
- ld a,(de) ;061d 1a .\r
+ ld a,(de)\r
l061eh:\r
- cp '9'+1 ;061e fe 3a . :\r
- jr l0625h ;0620 18 03 . .\r
+ cp '9'+1\r
+ jr l0625h\r
\r
get.bindigit:\r
- ld a,(de) ;0622 1a .\r
- cp '1'+1 ;0623 fe 32 . 2\r
+ ld a,(de)\r
+ cp '1'+1\r
l0625h:\r
- ccf ;0625 3f ?\r
- ret c ;0626 d8 .\r
- cp '0' ;0627 fe 30 . 0\r
- ret c ;0629 d8 .\r
- sub '0' ;062a d6 30 . 0\r
- ret ;062c c9 .\r
+ ccf\r
+ ret c\r
+ cp '0'\r
+ ret c\r
+ sub '0'\r
+ ret\r
\r
p_cpustat0:\r
call assert_eol ;062d cd d6 02 . . .\r
DC 'HL '\r
DC 'SP'\r
DC 'PC'\r
- DC 'A'''\r
- DC 'BC'''\r
- DC 'DE'''\r
- DC 'HL'''\r
+ DC 'a'''\r
+ DC 'bc'''\r
+ DC 'de'''\r
+ DC 'hl'''\r
DC 'IX'\r
DC 'IY'\r
DC 'I'\r
DB 0\r
\r
b_0709_start:\r
- defw reg.a ;0709 55 00 U .\r
- defb 000h ;070b 00 .\r
- defw reg.c ;070c 56 00 V .\r
- defb 001h ;070e 01 .\r
- defw reg.e ;070f 58 00 X .\r
- defb 001h ;0711 01 .\r
- defw reg.l ;0712 5a 00 Z .\r
- defb 001h ;0714 01 .\r
- defw reg_sp ;0715 5c 00 \ .\r
- defb 001h ;0717 01 .\r
- defw REG.PC ;0718 60 00 ` .\r
- defb 002h ;071a 02 .\r
- defw reg.a2 ;071b 4d 00 M .\r
- defb 000h ;071d 00 .\r
- defw reg.c2 ;071e 4a 00 J .\r
- defb 001h ;0720 01 .\r
- defw reg.e2 ;0721 48 00 H .\r
- defb 001h ;0723 01 .\r
- defw reg.l2 ;0724 46 00 F .\r
- defb 001h ;0726 01 .\r
- defw reg.ix ;0727 52 00 R .\r
- defb 001h ;0729 01 .\r
- defw reg.iy ;072a 50 00 P .\r
- defb 001h ;072c 01 .\r
- defw reg.i ;072d 4f 00 O .\r
- defb 000h ;072f 00 .\r
- defb 000h ;0730 00 .\r
+ dw reg.a ;0709 55 00 U .\r
+ db 000h ;070b 00 .\r
+ dw reg.c ;070c 56 00 V .\r
+ db 001h ;070e 01 .\r
+ dw reg.e ;070f 58 00 X .\r
+ db 001h ;0711 01 .\r
+ dw reg.l ;0712 5a 00 Z .\r
+ db 001h ;0714 01 .\r
+ dw reg_sp ;0715 5c 00 \ .\r
+ db 001h ;0717 01 .\r
+ dw REG.PC ;0718 60 00 ` .\r
+ db 002h ;071a 02 .\r
+ dw reg.a2 ;071b 4d 00 M .\r
+ db 000h ;071d 00 .\r
+ dw reg.c2 ;071e 4a 00 J .\r
+ db 001h ;0720 01 .\r
+ dw reg.e2 ;0721 48 00 H .\r
+ db 001h ;0723 01 .\r
+ dw reg.l2 ;0724 46 00 F .\r
+ db 001h ;0726 01 .\r
+ dw reg.ix ;0727 52 00 R .\r
+ db 001h ;0729 01 .\r
+ dw reg.iy ;072a 50 00 P .\r
+ db 001h ;072c 01 .\r
+ dw reg.i ;072d 4f 00 O .\r
+ db 000h ;072f 00 .\r
+ db 000h ;0730 00 .\r
\r
cmd_G:\r
sub a ;0731 97 .\r
ex af,af' ;093f 08 .\r
ret ;0940 c9 .\r
\r
-l0941h:\r
- db 0 ;0941 00 .\r
-\r
sub_0942h:\r
ex af,af' ;0942 08 .\r
res 7,a ;0943 cb bf . .\r
ld (iy+007h),d ;0ab4 fd 72 07 . r .\r
ret ;0ab7 c9 .\r
\r
-bp_tab:\r
- rept BP_CNT\r
- rept BP_SIZE\r
- db 0\r
- endm\r
- endm\r
-\r
-expr_p1:\r
- defw expr_buf ;0b18 1c 0b . .\r
-expr_p2:\r
- defw expr_buf ;0b1a 1c 0b . .\r
-\r
-expr_buf:\r
- db 'DDT/180',TAB\r
- db '[8101] 001',CR,LF,'$'\r
-\r
- ds EXPR_BUF_SIZE - ($ - expr_buf)\r
-expr_bufe:\r
-\r
-msg_Y:\r
- dc 'Yn' ;0b9c 59 ee Y n.\r
-reg_Y:\r
- rept YREG_CNT\r
- dw 0\r
- endm\r
-\r
cmd_Y:\r
call get.decdigit ;0bb2 cd 1d 06 . . .\r
jr c,l0bc3h ;0bb5 38 0c 8 .\r
pop af ;0c30 f1 .\r
pop hl ;0c31 e1 .\r
ret ;0c32 c9 .\r
+\r
l0c33h:\r
ld b,c ;0c33 41 A\r
call pstr ;0c34 cd 88 02 . . .\r
DB 0\r
\r
b_0cfa_start:\r
- defb 003h ;0cfa 03 .\r
- defw reg.c2 ;0cfb 4a 00 J .\r
- defb 003h ;0cfd 03 .\r
- defw reg.e2 ;0cfe 48 00 H .\r
- defb 003h ;0d00 03 .\r
- defw reg.l2 ;0d01 46 00 F .\r
- defb 003h ;0d03 03 .\r
- defw reg.c ;0d04 56 00 V .\r
- defb 003h ;0d06 03 .\r
- defw reg.e ;0d07 58 00 X .\r
- defb 003h ;0d09 03 .\r
- defw reg.l ;0d0a 5a 00 Z .\r
- defb 000h ;0d0c 00 .\r
- defw reg.a2 ;0d0d 4d 00 M .\r
- defb 000h ;0d0f 00 .\r
- defw reg.b2 ;0d10 4b 00 K .\r
- defb 000h ;0d12 00 .\r
- defw reg.c2 ;0d13 4a 00 J .\r
- defb 000h ;0d15 00 .\r
- defw reg.d2 ;0d16 49 00 I .\r
- defb 000h ;0d18 00 .\r
- defw reg.e2 ;0d19 48 00 H .\r
- defb 000h ;0d1b 00 .\r
- defw reg.h2 ;0d1c 47 00 G .\r
- defb 000h ;0d1e 00 .\r
- defw reg.l2 ;0d1f 46 00 F .\r
- defb 000h ;0d21 00 .\r
- defw reg.a ;0d22 55 00 U .\r
- defb 000h ;0d24 00 .\r
- defw reg.b ;0d25 57 00 W .\r
- defb 000h ;0d27 00 .\r
- defw reg.c ;0d28 56 00 V .\r
- defb 000h ;0d2a 00 .\r
- defw reg.d ;0d2b 59 00 Y .\r
- defb 000h ;0d2d 00 .\r
- defw reg.e ;0d2e 58 00 X .\r
- defb 000h ;0d30 00 .\r
- defw reg.h ;0d31 5b 00 [ .\r
- defb 000h ;0d33 00 .\r
- defw reg.l ;0d34 5a 00 Z .\r
- defb 003h ;0d36 03 .\r
- defw reg.ix ;0d37 52 00 R .\r
- defb 003h ;0d39 03 .\r
- defw reg.iy ;0d3a 50 00 P .\r
- defb 003h ;0d3c 03 .\r
- defw reg_sp ;0d3d 5c 00 \ .\r
- defb 003h ;0d3f 03 .\r
- defw REG.PC ;0d40 60 00 ` .\r
- defb 003h ;0d42 03 .\r
- defw reg.ix ;0d43 52 00 R .\r
- defb 003h ;0d45 03 .\r
- defw reg.iy ;0d46 50 00 P .\r
- defb 003h ;0d48 03 .\r
- defw reg_sp ;0d49 5c 00 \ .\r
- defb 003h ;0d4b 03 .\r
- defw REG.PC ;0d4c 60 00 ` .\r
- defb 000h ;0d4e 00 .\r
- defw reg.i ;0d4f 4f 00 O .\r
- defb 003h ;0d51 03 .\r
- defw l004eh ;0d52 4e 00 N .\r
- defb 000h ;0d54 00 .\r
- defw reg.f2 ;0d55 4c 00 L .\r
- defb 000h ;0d57 00 .\r
- defw reg.f ;0d58 54 00 T .\r
+ db 003h ;0cfa 03 .\r
+ dw reg.c2 ;0cfb 4a 00 J .\r
+ db 003h ;0cfd 03 .\r
+ dw reg.e2 ;0cfe 48 00 H .\r
+ db 003h ;0d00 03 .\r
+ dw reg.l2 ;0d01 46 00 F .\r
+ db 003h ;0d03 03 .\r
+ dw reg.c ;0d04 56 00 V .\r
+ db 003h ;0d06 03 .\r
+ dw reg.e ;0d07 58 00 X .\r
+ db 003h ;0d09 03 .\r
+ dw reg.l ;0d0a 5a 00 Z .\r
+ db 000h ;0d0c 00 .\r
+ dw reg.a2 ;0d0d 4d 00 M .\r
+ db 000h ;0d0f 00 .\r
+ dw reg.b2 ;0d10 4b 00 K .\r
+ db 000h ;0d12 00 .\r
+ dw reg.c2 ;0d13 4a 00 J .\r
+ db 000h ;0d15 00 .\r
+ dw reg.d2 ;0d16 49 00 I .\r
+ db 000h ;0d18 00 .\r
+ dw reg.e2 ;0d19 48 00 H .\r
+ db 000h ;0d1b 00 .\r
+ dw reg.h2 ;0d1c 47 00 G .\r
+ db 000h ;0d1e 00 .\r
+ dw reg.l2 ;0d1f 46 00 F .\r
+ db 000h ;0d21 00 .\r
+ dw reg.a ;0d22 55 00 U .\r
+ db 000h ;0d24 00 .\r
+ dw reg.b ;0d25 57 00 W .\r
+ db 000h ;0d27 00 .\r
+ dw reg.c ;0d28 56 00 V .\r
+ db 000h ;0d2a 00 .\r
+ dw reg.d ;0d2b 59 00 Y .\r
+ db 000h ;0d2d 00 .\r
+ dw reg.e ;0d2e 58 00 X .\r
+ db 000h ;0d30 00 .\r
+ dw reg.h ;0d31 5b 00 [ .\r
+ db 000h ;0d33 00 .\r
+ dw reg.l ;0d34 5a 00 Z .\r
+ db 003h ;0d36 03 .\r
+ dw reg.ix ;0d37 52 00 R .\r
+ db 003h ;0d39 03 .\r
+ dw reg.iy ;0d3a 50 00 P .\r
+ db 003h ;0d3c 03 .\r
+ dw reg_sp ;0d3d 5c 00 \ .\r
+ db 003h ;0d3f 03 .\r
+ dw REG.PC ;0d40 60 00 ` .\r
+ db 003h ;0d42 03 .\r
+ dw reg.ix ;0d43 52 00 R .\r
+ db 003h ;0d45 03 .\r
+ dw reg.iy ;0d46 50 00 P .\r
+ db 003h ;0d48 03 .\r
+ dw reg_sp ;0d49 5c 00 \ .\r
+ db 003h ;0d4b 03 .\r
+ dw REG.PC ;0d4c 60 00 ` .\r
+ db 000h ;0d4e 00 .\r
+ dw reg.i ;0d4f 4f 00 O .\r
+ db 003h ;0d51 03 .\r
+ dw l004eh ;0d52 4e 00 N .\r
+ db 000h ;0d54 00 .\r
+ dw reg.f2 ;0d55 4c 00 L .\r
+ db 000h ;0d57 00 .\r
+ dw reg.f ;0d58 54 00 T .\r
\r
cmd_S:\r
ld hl,(last_S) ;0d5a 2a 90 0d * . .\r
call sub_0ef8h ;0d8b cd f8 0e . . .\r
jr l0d60h ;0d8e 18 d0 . .\r
\r
-last_S:\r
- defw TPA ;0d90 00 01 . .\r
cmd_@:\r
call assert_eol ;0d92 cd d6 02 . . .\r
ld hl,msg_offset ;0d95 21 a0 0d ! . .\r
msg_offset:\r
dc '@' ;0da0 c0 .\r
\r
-last_I:\r
- defw 0 ;0da1 00 00 . .\r
cmd_I:\r
ld hl,cmd_I ;0da3 21 a3 0d ! . .\r
ld (cmd_rpt),hl ;0da6 22 68 00 " h .\r
call out.bin.b ;0dbe cd c7 01 . . .\r
jp crlf ;0dc1 c3 a3 02 . . .\r
\r
-last_O_addr:\r
- dw 0 ;0dc4 00 .\r
-last_O_val:\r
- db 0 ;0dc6 00 .\r
cmd_O:\r
ld hl,cmd_O ;0dc7 21 c7 0d ! . .\r
ld (cmd_rpt),hl ;0dca 22 68 00 " h .\r
call out.ascii ;0e7d cd 34 02 . 4 .\r
jp crlf ;0e80 c3 a3 02 . . .\r
\r
-cmd_Q_jopt:\r
- db -1 ;0e83 ff .\r
-\r
cmd_Q:\r
ld a,(de) ;0e84 1a .\r
sub 'J' ;0e85 d6 4a . J\r
pop hl ;0ed3 e1 .\r
ret ;0ed4 c9 .\r
\r
-last_D:\r
- dw TPA\r
-\r
sub_0ed7h:\r
push hl ;0ed7 e5 d5 . .\r
push de\r
ret ;0fae c9 .\r
\r
cmd_F:\r
- push de ;0faf d5 .\r
- ld hl,DMA_BUF+1 ;0fb0 21 81 00 ! . .\r
- ld (hl),' ' ;0fb3 36 20 6\r
- inc hl ;0fb5 23 #\r
+ push de\r
+ ld hl,DMA_BUF+1\r
+ ld (hl),' '\r
+ inc hl\r
l0fb6h:\r
- ld a,(de) ;0fb6 1a .\r
- ld (hl),a ;0fb7 77 w\r
- inc hl ;0fb8 23 #\r
- inc de ;0fb9 13 .\r
- and a ;0fba a7 .\r
- jr nz,l0fb6h ;0fbb 20 f9 .\r
- ld a,l ;0fbd 7d }\r
- sub DMA_BUF+2 ;0fbe d6 82 . .\r
- ld (DMA_BUF),a ;0fc0 32 80 00 2 . .\r
- pop hl ;0fc3 e1 .\r
- ld de,FCB ;0fc4 11 5c 00 . \ .\r
- call parse_filename ;0fc7 cd cd 0f . . .\r
- ld de,FCB2 ;0fca 11 6c 00 . l .\r
+ ld a,(de)\r
+ ld (hl),a\r
+ inc hl\r
+ inc de\r
+ and a\r
+ jr nz,l0fb6h\r
+ ld a,l\r
+ sub DMA_BUF+2\r
+ ld (DMA_BUF),a\r
+ pop hl\r
+ ld de,dfcb1\r
+ call parse_filename\r
+ ld de,dfcb2\r
+ call parse_filename\r
+ ;fall thru\r
+\r
+cpy_fcb2:\r
+ ld hl,dfcb2\r
+ ld de,fcbsym\r
+ ld bc,16\r
+ ldir\r
+ ret\r
\r
parse_filename:\r
call sub_102ch ;0fcd cd 2c 10 . , .\r
cp ',' ;1049 fe 2c . ,\r
ret ;104b c9 .\r
\r
-fcb_clear_rc:\r
- xor a ;104c af .\r
- ld hl,FCB+12 ;104d 21 68 00 ! h .\r
- ld b,21 ;1050 06 15 . .\r
+setup_fcb:\r
+ push de\r
+ ld hl,12\r
+ add hl,de\r
+ xor a\r
+ ld b,21\r
l1052h:\r
- ld (hl),a ;1052 77 w\r
- inc hl ;1053 23 #\r
- djnz l1052h ;1054 10 fc . .\r
- ld de,DMA_BUF ;1056 11 80 00 . . .\r
- ld c,BDOS_SETDMA ;1059 0e 1a . .\r
- call ddtz_base ;105b cd 00 00 . . .\r
- ld de,FCB ;105e 11 5c 00 . \ .\r
- ret ;1061 c9 .\r
+ ld (hl),a\r
+ inc hl\r
+ djnz l1052h\r
+ ld de,DMA_BUF\r
+ ld c,BDOS_SETDMA\r
+ call ddtz_bdos\r
+ pop de\r
+ ret\r
\r
-cmd_R:\r
- ld hl,0 ;1062 21 00 00 ! . .\r
- call get_lastarg_def ;1065 cd 69 03 . i .\r
-read_file:\r
- push hl ;1068 e5 .\r
- ld hl,0 ;1069 21 00 00 ! . .\r
- ld (high_load),hl ;106c 22 9c 11 " . .\r
- call fcb_clear_rc ;106f cd 4c 10 . L .\r
+file_open:\r
+ ld (cur_fcb),de\r
+ call setup_fcb ;106f cd 4c 10 . L .\r
ld c,BDOS_OPEN ;1072 0e 0f . .\r
- call ddtz_base ;1074 cd 00 00 . . .\r
+ call ddtz_bdos ;1074 cd 00 00 . . .\r
inc a ;1077 3c <\r
jp z,ERROR ;1078 ca 07 01 . . .\r
- ld hl,FCB+9 ;107b 21 65 00 ! e .\r
- ld de,str_hex ;107e 11 a5 10 . . .\r
- ld b,3 ;1081 06 03 . .\r
- call strncmp ;1083 cd 67 11 . g .\r
- pop hl ;1086 e1 .\r
- jr z,read_hexfile ;1087 28 1f ( .\r
- ld de,TPA ;1089 11 00 01 . . .\r
- add hl,de ;108c 19 .\r
- push hl ;108d e5 .\r
-l108eh:\r
- call read_sector ;108e cd 21 11 . ! .\r
- pop hl ;1091 e1 .\r
- jp z,p_max_high ;1092 ca 72 11 . r .\r
- ld de,DMA_BUF ;1095 11 80 00 . . .\r
- ld b,080h ;1098 06 80 . .\r
-l109ah:\r
- ld a,(de) ;109a 1a .\r
- call cmdR_storebyte ;109b cd 36 11 . 6 .\r
- inc de ;109e 13 .\r
- inc hl ;109f 23 #\r
- djnz l109ah ;10a0 10 f8 . .\r
- push hl ;10a2 e5 .\r
- jr l108eh ;10a3 18 e9 . .\r
-\r
-str_hex:\r
- db 'HEX' ;10a5 48 H E X\r
-\r
-read_hexfile:\r
- push hl ;10a8 e5 .\r
ld a,080h ;10a9 3e 80 > .\r
ld (cmdR_rindex),a ;10ab 32 20 11 2 .\r
-l10aeh:\r
- call read_byte ;10ae cd 05 11 . . .\r
- jr z,rdhex_done ;10b1 28 31 ( 1\r
- cp ':' ;10b3 fe 3a . :\r
- jr nz,l10aeh ;10b5 20 f7 .\r
- ld c,0 ;10b7 0e 00 . .\r
- call read_hexchar ;10b9 cd e8 10 . . .\r
- ld b,a ;10bc 47 G\r
- call read_hexchar ;10bd cd e8 10 . . .\r
- ld h,a ;10c0 67 g\r
- call read_hexchar ;10c1 cd e8 10 . . .\r
- ld l,a ;10c4 6f o\r
- ld a,b ;10c5 78 x\r
- and a ;10c6 a7 .\r
- jr z,rdhex_done ;10c7 28 1b ( .\r
- call read_hexchar ;10c9 cd e8 10 . . .\r
-l10cch:\r
- call read_hexchar ;10cc cd e8 10 . . .\r
- pop de ;10cf d1 .\r
- push de ;10d0 d5 .\r
- push hl ;10d1 e5 .\r
- add hl,de ;10d2 19 .\r
- call cmdR_storebyte ;10d3 cd 36 11 . 6 .\r
- pop hl ;10d6 e1 .\r
- inc hl ;10d7 23 #\r
- djnz l10cch ;10d8 10 f2 . .\r
- call read_hexchar ;10da cd e8 10 . . .\r
- ld a,c ;10dd 79 y\r
- and a ;10de a7 .\r
- jp nz,ERROR ;10df c2 07 01 . . .\r
- jr l10aeh ;10e2 18 ca . .\r
-rdhex_done:\r
- pop hl ;10e4 e1 .\r
- jp p_max_high ;10e5 c3 72 11 . r .\r
-\r
-read_hexchar:\r
- call read_hexdigit ;10e8 cd f9 10 . . .\r
- rlca ;10eb 07 .\r
- rlca ;10ec 07 .\r
- rlca ;10ed 07 .\r
- rlca ;10ee 07 .\r
- ld d,a ;10ef 57 W\r
- call read_hexdigit ;10f0 cd f9 10 . . .\r
- add a,d ;10f3 82 .\r
- ld d,a ;10f4 57 W\r
- add a,c ;10f5 81 .\r
- ld c,a ;10f6 4f O\r
- ld a,d ;10f7 7a z\r
- ret ;10f8 c9 .\r
-\r
-read_hexdigit:\r
- call read_byte ;10f9 cd 05 11 . . .\r
- jr z,l1102h ;10fc 28 04 ( .\r
- call hex_digit ;10fe cd 12 06 . . .\r
- ret nc ;1101 d0 .\r
-l1102h:\r
- jp ERROR ;1102 c3 07 01 . . .\r
+ ret\r
\r
read_byte:\r
ld a,(cmdR_rindex) ;1105 3a 20 11 : .\r
cp 01ah ;111d fe 1a . .\r
ret ;111f c9 .\r
\r
-cmdR_rindex:\r
- db 0 ;1120 00 .\r
-\r
read_sector:\r
push hl ;1121 e5 .\r
push de ;1122 d5 .\r
push bc ;1123 c5 .\r
- ld de,FCB ;1124 11 5c 00 . \ .\r
+ ld de,(cur_fcb) ;1124 11 5c 00 . \ .\r
ld c,BDOS_READ ;1127 0e 14 . .\r
- call ddtz_base ;1129 cd 00 00 . . .\r
+ call ddtz_bdos ;1129 cd 00 00 . . .\r
dec a ;112c 3d =\r
jr z,l1132h ;112d 28 03 ( .\r
jp p,ERROR ;112f f2 07 01 . . .\r
djnz strncmp ;116c 10 f9 . .\r
ret ;116e c9 .\r
\r
+str_hex:\r
+ db 'HEX'\r
+\r
+read_hexchar:\r
+ call read_hexdigit\r
+ rlca\r
+ rlca\r
+ rlca\r
+ rlca\r
+ ld d,a\r
+ call read_hexdigit\r
+ add a,d\r
+ ld d,a\r
+ add a,c\r
+ ld c,a\r
+ ld a,d\r
+ ret\r
+\r
+read_hexdigit:\r
+ call read_byte\r
+ jr z,error8\r
+hex_digit_v:\r
+ call hex_digit\r
+ ret nc\r
+error8:\r
+ jp ERROR\r
+\r
+read_hexbyte:\r
+ call read_byte\r
+read_hexbyte0:\r
+ push bc\r
+ call hex_digit_v\r
+ rlca\r
+ rlca\r
+ rlca\r
+ rlca\r
+ ld c,a\r
+ call read_byte\r
+ call hex_digit_v\r
+ or c\r
+ pop bc\r
+ ret\r
+\r
+cmd_R:\r
+ ld hl,0 ;1062 21 00 00 ! . .\r
+ call get_lastarg_def ;1065 cd 69 03 . i .\r
+read_file:\r
+ ld de,dfcb1+1\r
+ ld a,(de)\r
+ cp '?'\r
+ jr z,read_symfile\r
+ dec de\r
+ push hl ;1068 e5 .\r
+ ld hl,0 ;1069 21 00 00 ! . .\r
+ ld (high_load),hl ;106c 22 9c 11 " . .\r
+ call file_open\r
+ ld hl,dfcb1+9 ;107b 21 65 00 ! e .\r
+ ld de,str_hex ;107e 11 a5 10 . . .\r
+ ld b,3 ;1081 06 03 . .\r
+ call strncmp ;1083 cd 67 11 . g .\r
+ pop hl ;1086 e1 .\r
+ jr z,read_hexfile ;1087 28 1f ( .\r
+ ld de,TPA ;1089 11 00 01 . . .\r
+ add hl,de ;108c 19 .\r
+ push hl ;108d e5 .\r
+l108eh:\r
+ call read_sector ;108e cd 21 11 . ! .\r
+ pop hl ;1091 e1 .\r
+ jr z,read_symfile ;1092 ca 72 11 . r .\r
+ ld de,DMA_BUF ;1095 11 80 00 . . .\r
+ ld b,080h ;1098 06 80 . .\r
+l109ah:\r
+ ld a,(de) ;109a 1a .\r
+ call cmdR_storebyte ;109b cd 36 11 . 6 .\r
+ inc de ;109e 13 .\r
+ inc hl ;109f 23 #\r
+ djnz l109ah ;10a0 10 f8 . .\r
+ push hl ;10a2 e5 .\r
+ jr l108eh ;10a3 18 e9 . .\r
+\r
+read_hexfile:\r
+ push hl ;10a8 e5 .\r
+l10aeh:\r
+ call read_byte ;10ae cd 05 11 . . .\r
+ jr z,rdhex_done ;10b1 28 31 ( 1\r
+ cp ':' ;10b3 fe 3a . :\r
+ jr nz,l10aeh ;10b5 20 f7 .\r
+ ld c,0 ;10b7 0e 00 . .\r
+ call read_hexchar ;10b9 cd e8 10 . . .\r
+ ld b,a ;10bc 47 G\r
+ call read_hexchar ;10bd cd e8 10 . . .\r
+ ld h,a ;10c0 67 g\r
+ call read_hexchar ;10c1 cd e8 10 . . .\r
+ ld l,a ;10c4 6f o\r
+ ld a,b ;10c5 78 x\r
+ and a ;10c6 a7 .\r
+ jr z,rdhex_done ;10c7 28 1b ( .\r
+ call read_hexchar ;10c9 cd e8 10 . . .\r
+l10cch:\r
+ call read_hexchar ;10cc cd e8 10 . . .\r
+ pop de ;10cf d1 .\r
+ push de ;10d0 d5 .\r
+ push hl ;10d1 e5 .\r
+ add hl,de ;10d2 19 .\r
+ call cmdR_storebyte ;10d3 cd 36 11 . 6 .\r
+ pop hl ;10d6 e1 .\r
+ inc hl ;10d7 23 #\r
+ djnz l10cch ;10d8 10 f2 . .\r
+ call read_hexchar ;10da cd e8 10 . . .\r
+ ld a,c ;10dd 79 y\r
+ and a ;10de a7 .\r
+ jr nz,error9 ;10df c2 07 01 . . .\r
+ jr l10aeh ;10e2 18 ca . .\r
+rdhex_done:\r
+ pop hl ;10e4 e1 .\r
+ jr read_symfile ;10e5 c3 72 11 . r .\r
+\r
+read_symfile:\r
+ ld de,fcbsym+1\r
+ ld a,(de)\r
+ cp ' '\r
+ jp z,p_max_high\r
+\r
+ call pstr_inl\r
+ db 'SYMBOLS',CR,LF+80h\r
+\r
+ dec de\r
+ call file_open\r
+;------------------------------------------------------------------------\r
+rs_1:\r
+ call read_byte\r
+rs_2:\r
+ cp 1ah\r
+ jr z,p_max_high\r
+ cp '!'\r
+ jr c,rs_1\r
+ call read_hexbyte0\r
+ ld d,a\r
+ call read_hexbyte ; symval\r
+ ld e,a\r
+ push de ; symval\r
+ call read_byte\r
+ cp ' '\r
+ jr z,rs_4\r
+ pop hl ; discard symval\r
+rs_3: call read_byte\r
+ cp ' '\r
+ jr c,rs_2\r
+ jr rs_3\r
+;\r
+rs_4: ld hl,(BDOS+1) ;\r
+ ld e,0 ; setup symlen\r
+rs_5: dec hl ;\r
+ call read_byte ;\r
+ cp TAB ;\r
+ jr z,rs_6 ;\r
+ cp CR ;\r
+ jr z,rs_6 ;\r
+ cp '!' ;\r
+ jr c,error9 ;\r
+ ld (hl),a ;\r
+ inc e ; symlen++\r
+ ld a,e ;\r
+ cp 10h+1 ;\r
+ jr c,rs_5 ;\r
+error9:\r
+ jp ERROR ;\r
+;\r
+rs_6: push de ; symlen\r
+ push hl ;\r
+ ex de,hl ;\r
+ ld hl,(BDOS+1) ;\r
+ inc hl ;\r
+ ld e,(hl) ;\r
+ inc hl ;\r
+ ld d,(hl) ;\r
+ pop hl ;\r
+ ld (hl),d ;\r
+ dec hl ;\r
+ ld (hl),e ;\r
+ dec hl ;\r
+ ld (hl),0c3h ;\r
+\r
+ ld de,(max_load) ;\r
+ call cp_hl_de ;\r
+ jr c,error9 ;\r
+\r
+ ld de,(reg_sp) ;\r
+ call cp_hl_de ;\r
+ jr nc,rs_61 ;\r
+ ld (reg_sp),hl ;\r
+rs_61:\r
+\r
+ ld de,(BDOS+1) ;\r
+ ld (BDOS+1),hl ;\r
+ ex de,hl ;\r
+ pop de ;\r
+ ld (hl),e ; symlen\r
+ inc hl ;\r
+ pop de ; symval\r
+ ld (hl),e ;\r
+ inc hl ;\r
+ ld (hl),d ;\r
+ jp rs_1 ;\r
+;------------------------------------------------------------------------\r
+\r
p_max_high0:\r
- call assert_eol ;116f cd d6 02 . . .\r
+ call assert_eol\r
p_max_high:\r
- ld hl,msg_high ;1172 21 8d 11 ! . .\r
- call pstr ;1175 cd 88 02 . . .\r
- ld hl,(high_load) ;1178 2a 9c 11 * . .\r
- call out_hl ;117b cd 13 02 . . .\r
- ld hl,msg_max ;117e 21 94 11 ! . .\r
- call pstr ;1181 cd 88 02 . . .\r
- ld hl,(max_load) ;1184 2a 9e 11 * . .\r
- call out_hl ;1187 cd 13 02 . . .\r
- jp crlf ;118a c3 a3 02 . . .\r
-\r
-msg_high:\r
+ call pstr_inl\r
DC 'High = '\r
-msg_max:\r
+ ld hl,(high_load)\r
+ call out_hl\r
+ call pstr_inl\r
DC ' Max = '\r
-\r
-high_load:\r
- defw TPA ;119c 00 01 . .\r
-max_load:\r
- defw TPA ;119e 00 01 . .\r
+ ld hl,(max_load)\r
+ call out_hl\r
+ jp crlf\r
\r
cmd_W:\r
call get_arg_range ;11a0 cd 7d 03 . } .\r
and 080h ;11ad e6 80 . .\r
ld c,a ;11af 4f O\r
push bc ;11b0 c5 .\r
- ld a,(FCB+1) ;11b1 3a 5d 00 : ] .\r
+ ld a,(dfcb1+1) ;11b1 3a 5d 00 : ] .\r
cp ' ' ;11b4 fe 20 .\r
jr z,error5 ;11b6 28 3b ( ;\r
- call fcb_clear_rc ;11b8 cd 4c 10 . L .\r
+ ld de,dfcb1\r
+ call setup_fcb ;11b8 cd 4c 10 . L .\r
push de ;11bb d5 .\r
ld c,BDOS_DELETE ;11bc 0e 13 . .\r
- call ddtz_base ;11be cd 00 00 . . .\r
+ call ddtz_bdos ;11be cd 00 00 . . .\r
pop de ;11c1 d1 .\r
ld c,BDOS_CREATE ;11c2 0e 16 . .\r
- call ddtz_base ;11c4 cd 00 00 . . .\r
+ call ddtz_bdos ;11c4 cd 00 00 . . .\r
inc a ;11c7 3c <\r
jr z,error5 ;11c8 28 29 ( )\r
pop bc ;11ca c1 .\r
\r
write_sector:\r
push hl ;11e4 e5 .\r
- ld de,FCB ;11e5 11 5c 00 . \ .\r
+ ld de,dfcb1 ;11e5 11 5c 00 . \ .\r
ld c,BDOS_WRITE ;11e8 0e 15 . .\r
- call ddtz_base ;11ea cd 00 00 . . .\r
+ call ddtz_bdos ;11ea cd 00 00 . . .\r
pop hl ;11ed e1 .\r
and a ;11ee a7 .\r
ret z ;11ef c8 .\r
jp ERROR ;11f3 c3 07 01 . . .\r
\r
close_file:\r
- ld de,FCB ;11f6 11 5c 00 . \ .\r
+ ld de,dfcb1 ;11f6 11 5c 00 . \ .\r
ld c,BDOS_CLOSE ;11f9 0e 10 . .\r
- jp ddtz_base ;11fb c3 00 00 . . .\r
+ jp ddtz_bdos ;11fb c3 00 00 . . .\r
\r
cmd_A:\r
ld hl,(last_A) ;11fe 2a 64 12 * d .\r
ld sp,(l1262h) ;125c ed 7b 62 12 . { b .\r
jr l1211h ;1260 18 af . .\r
\r
-l1262h:\r
- dw 0 ;1262 00 00 .\r
-last_A:\r
- dw TPA ;1264 00 01 .\r
-cmd_A_prev:\r
- dw TPA ;1266 00 01 . .\r
-\r
sub_1268h:\r
call skipbl ;1268 cd bf 02 . . .\r
ld hl,t_MNEMONICS ;126b 21 c6 1e ! . .\r
jp (hl) ;1288 e9 .\r
\r
b_1289_start:\r
- defw as.ADC_SBC ;ADC 1289 51 15 Q .\r
- defb 088h ; 128b 88 .\r
- defw as.ADD ;ADD 128c 71 15 q .\r
- defb 080h ; 128e 80 .\r
- defw as.AND_CP_OR_SUB_XOR ;AND 128f a8 15 . .\r
- defb 0a0h ; 1291 a0 .\r
- defw as.BITOP ;BIT 1292 09 16 . .\r
- defb 040h ; 1294 40 @\r
- defw as.CALL ;CALL 1295 2d 16 - .\r
- defb 0c4h ; 1297 c4 .\r
- defw as.opc.noarg ;CCF 1298 3b 15 ; .\r
- defb 03fh ; 129a 3f ?\r
- defw as.AND_CP_OR_SUB_XOR ;CP 129b a8 15 . .\r
- defb 0b8h ; 129d b8 .\r
- defw gen.opc.ED2 ;CPD 129e 44 15 D .\r
- defb 0a9h ; 12a0 a9 .\r
- defw gen.opc.ED2 ;CPDR 12a1 44 15 D .\r
- defb 0b9h ; 12a3 b9 .\r
- defw gen.opc.ED2 ;CPI 12a4 44 15 D .\r
- defb 0a1h ; 12a6 a1 .\r
- defw gen.opc.ED2 ;CPIR 12a7 44 15 D .\r
- defb 0b1h ; 12a9 b1 .\r
- defw as.opc.noarg ;CPL 12aa 3b 15 ; .\r
- defb 02fh ; 12ac 2f /\r
- defw as.opc.noarg ;DAA 12ad 3b 15 ; .\r
- defb 027h ; 12af 27 '\r
- defw as.DEC_INC ;DEC 12b0 98 17 . .\r
- defb 005h ; 12b2 05 .\r
- defw as.opc.noarg ;DI 12b3 3b 15 ; .\r
- defb 0f3h ; 12b5 f3 .\r
- defw as.DJNZ ;DJNZ 12b6 99 16 . .\r
- defb 010h ; 12b8 10 .\r
- defw as.opc.noarg ;EI 12b9 3b 15 ; .\r
- defb 0fbh ; 12bb fb .\r
- defw as.EX ;EX 12bc 49 17 I .\r
- defb 0e3h ; 12be e3 .\r
- defw as.opc.noarg ;EXX 12bf 3b 15 ; .\r
- defb 0d9h ; 12c1 d9 .\r
- defw as.opc.noarg ;HALT 12c2 3b 15 ; .\r
- defb 076h ; 12c4 76 v\r
- defw as.IM ;IM 12c5 b4 16 . .\r
- defb 046h ; 12c7 46 F\r
- defw as.IN ;IN 12c8 ed 16 . .\r
- defb 040h ; 12ca 40 @\r
- defw as.DEC_INC ;INC 12cb 98 17 . .\r
- defb 004h ; 12cd 04 .\r
- defw gen.opc.ED2 ;IND 12ce 44 15 D .\r
- defb 0aah ; 12d0 aa .\r
- defw gen.opc.ED2 ;INDR 12d1 44 15 D .\r
- defb 0bah ; 12d3 ba .\r
- defw gen.opc.ED2 ;INI 12d4 44 15 D .\r
- defb 0a2h ; 12d6 a2 .\r
- defw gen.opc.ED2 ;INIR 12d7 44 15 D .\r
- defb 0b2h ; 12d9 b2 .\r
- defw as.JP ;JP 12da 53 16 S .\r
- defb 0c2h ; 12dc c2 .\r
- defw as.JR ;JR 12dd a0 16 . .\r
- defb 020h ; 12df 20\r
- defw as.LD ;LD 12e0 52 13 R .\r
- defb 040h ; 12e2 40 @\r
- defw gen.opc.ED2 ;LDD 12e3 44 15 D .\r
- defb 0a8h ; 12e5 a8 .\r
- defw gen.opc.ED2 ;LDDR 12e6 44 15 D .\r
- defb 0b8h ; 12e8 b8 .\r
- defw gen.opc.ED2 ;LDI 12e9 44 15 D .\r
- defb 0a0h ; 12eb a0 .\r
- defw gen.opc.ED2 ;LDIR 12ec 44 15 D .\r
- defb 0b0h ; 12ee b0 .\r
- defw gen.opc.ED2 ;NEG 12ef 44 15 D .\r
- defb 044h ; 12f1 44 D\r
- defw as.opc.noarg ;NOP 12f2 3b 15 ; .\r
- defb 000h ; 12f4 00 .\r
- defw as.AND_CP_OR_SUB_XOR ;OR 12f5 a8 15 . .\r
- defb 0b0h ; 12f7 b0 .\r
- defw gen.opc.ED2 ;OTDR 12f8 44 15 D .\r
- defb 0bbh ; 12fa bb .\r
- defw gen.opc.ED2 ;OTIR 12fb 44 15 D .\r
- defb 0b3h ; 12fd b3 .\r
- defw as.OUT ;OUT 12fe 21 17 ! .\r
- defb 041h ; 1300 41 A\r
- defw gen.opc.ED2 ;OUTD 1301 44 15 D .\r
- defb 0abh ; 1303 ab .\r
- defw gen.opc.ED2 ;OUTI 1304 44 15 D .\r
- defb 0a3h ; 1306 a3 .\r
- defw as.POP_PUSH ;POP 1307 d9 16 . .\r
- defb 0c1h ; 1309 c1 .\r
- defw as.POP_PUSH ;PUSH 130a d9 16 . .\r
- defb 0c5h ; 130c c5 .\r
- defw as.BITOP ;RES 130d 09 16 . .\r
- defb 080h ; 130f 80 .\r
- defw as.RET ;RET 1310 45 16 E .\r
- defb 0c0h ; 1312 c0 .\r
- defw gen.opc.ED2 ;RETI 1313 44 15 D .\r
- defb 04dh ; 1315 4d M\r
- defw gen.opc.ED2 ;RETN 1316 44 15 D .\r
- defb 045h ; 1318 45 E\r
- defw as.SHIFTOP ;RL 1319 d5 15 . .\r
- defb 010h ; 131b 10 .\r
- defw as.opc.noarg ;RLA 131c 3b 15 ; .\r
- defb 017h ; 131e 17 .\r
- defw as.SHIFTOP ;RLC 131f d5 15 . .\r
- defb 000h ; 1321 00 .\r
- defw as.opc.noarg ;RLCA 1322 3b 15 ; .\r
- defb 007h ; 1324 07 .\r
- defw gen.opc.ED2 ;RLD 1325 44 15 D .\r
- defb 06fh ; 1327 6f o\r
- defw as.SHIFTOP ;RR 1328 d5 15 . .\r
- defb 018h ; 132a 18 .\r
- defw as.opc.noarg ;RRA 132b 3b 15 ; .\r
- defb 01fh ; 132d 1f .\r
- defw as.SHIFTOP ;RRC 132e d5 15 . .\r
- defb 008h ; 1330 08 .\r
- defw as.opc.noarg ;RRCA 1331 3b 15 ; .\r
- defb 00fh ; 1333 0f .\r
- defw gen.opc.ED2 ;RRD 1334 44 15 D .\r
- defb 067h ; 1336 67 g\r
- defw as.RST ;RST 1337 ca 16 . .\r
- defb 0c7h ; 1339 c7 .\r
- defw as.ADC_SBC ;SBC 133a 51 15 Q .\r
- defb 098h ; 133c 98 .\r
- defw as.opc.noarg ;SCF 133d 3b 15 ; .\r
- defb 037h ; 133f 37 7\r
- defw as.BITOP ;SET 1340 09 16 . .\r
- defb 0c0h ; 1342 c0 .\r
- defw as.SHIFTOP ;SLA 1343 d5 15 . .\r
- defb 020h ; 1345 20\r
- defw as.SHIFTOP ;SRA 1346 d5 15 . .\r
- defb 028h ; 1348 28 (\r
- defw as.SHIFTOP ;SRL 1349 d5 15 . .\r
- defb 038h ; 134b 38 8\r
- defw as.AND_CP_OR_SUB_XOR ;SUB 134c a8 15 . .\r
- defb 090h ; 134e 90 .\r
- defw as.AND_CP_OR_SUB_XOR ;XOR 134f a8 15 . .\r
- defb 0a8h ; 1351 a8 .\r
-\r
- defw as.IN0 ;IN0\r
- defb 000h ;\r
- defw as.MLT ;MLT\r
- defb 04ch ;\r
- defw gen.opc.ED2 ;OTDM\r
- defb 08bh ;\r
- defw gen.opc.ED2 ;OTDMR\r
- defb 09bh ;\r
- defw gen.opc.ED2 ;OTIM\r
- defb 083h ;\r
- defw gen.opc.ED2 ;OTIMR\r
- defb 093h ;\r
- defw as.OUTO ;OUT0\r
- defb 001h ;\r
- defw gen.opc.ED2 ;SLP\r
- defb 076h ;\r
- defw as.TST ;TST\r
- defb 004h ;\r
- defw as.TSTIO ;TSTIO\r
- defb 074h ;\r
+ dw as.ADC_SBC ;ADC 1289 51 15 Q .\r
+ db 088h ; 128b 88 .\r
+ dw as.ADD ;ADD 128c 71 15 q .\r
+ db 080h ; 128e 80 .\r
+ dw as.AND_CP_OR_SUB_XOR ;AND 128f a8 15 . .\r
+ db 0a0h ; 1291 a0 .\r
+ dw as.BITOP ;BIT 1292 09 16 . .\r
+ db 040h ; 1294 40 @\r
+ dw as.CALL ;CALL 1295 2d 16 - .\r
+ db 0c4h ; 1297 c4 .\r
+ dw as.opc.noarg ;CCF 1298 3b 15 ; .\r
+ db 03fh ; 129a 3f ?\r
+ dw as.AND_CP_OR_SUB_XOR ;CP 129b a8 15 . .\r
+ db 0b8h ; 129d b8 .\r
+ dw gen.opc.ED2 ;CPD 129e 44 15 D .\r
+ db 0a9h ; 12a0 a9 .\r
+ dw gen.opc.ED2 ;CPDR 12a1 44 15 D .\r
+ db 0b9h ; 12a3 b9 .\r
+ dw gen.opc.ED2 ;CPI 12a4 44 15 D .\r
+ db 0a1h ; 12a6 a1 .\r
+ dw gen.opc.ED2 ;CPIR 12a7 44 15 D .\r
+ db 0b1h ; 12a9 b1 .\r
+ dw as.opc.noarg ;CPL 12aa 3b 15 ; .\r
+ db 02fh ; 12ac 2f /\r
+ dw as.opc.noarg ;DAA 12ad 3b 15 ; .\r
+ db 027h ; 12af 27 '\r
+ dw as.DEC_INC ;DEC 12b0 98 17 . .\r
+ db 005h ; 12b2 05 .\r
+ dw as.opc.noarg ;DI 12b3 3b 15 ; .\r
+ db 0f3h ; 12b5 f3 .\r
+ dw as.DJNZ ;DJNZ 12b6 99 16 . .\r
+ db 010h ; 12b8 10 .\r
+ dw as.opc.noarg ;EI 12b9 3b 15 ; .\r
+ db 0fbh ; 12bb fb .\r
+ dw as.EX ;EX 12bc 49 17 I .\r
+ db 0e3h ; 12be e3 .\r
+ dw as.opc.noarg ;EXX 12bf 3b 15 ; .\r
+ db 0d9h ; 12c1 d9 .\r
+ dw as.opc.noarg ;HALT 12c2 3b 15 ; .\r
+ db 076h ; 12c4 76 v\r
+ dw as.IM ;IM 12c5 b4 16 . .\r
+ db 046h ; 12c7 46 F\r
+ dw as.IN ;IN 12c8 ed 16 . .\r
+ db 040h ; 12ca 40 @\r
+ dw as.DEC_INC ;INC 12cb 98 17 . .\r
+ db 004h ; 12cd 04 .\r
+ dw gen.opc.ED2 ;IND 12ce 44 15 D .\r
+ db 0aah ; 12d0 aa .\r
+ dw gen.opc.ED2 ;INDR 12d1 44 15 D .\r
+ db 0bah ; 12d3 ba .\r
+ dw gen.opc.ED2 ;INI 12d4 44 15 D .\r
+ db 0a2h ; 12d6 a2 .\r
+ dw gen.opc.ED2 ;INIR 12d7 44 15 D .\r
+ db 0b2h ; 12d9 b2 .\r
+ dw as.JP ;JP 12da 53 16 S .\r
+ db 0c2h ; 12dc c2 .\r
+ dw as.JR ;JR 12dd a0 16 . .\r
+ db 020h ; 12df 20\r
+ dw as.LD ;LD 12e0 52 13 R .\r
+ db 040h ; 12e2 40 @\r
+ dw gen.opc.ED2 ;LDD 12e3 44 15 D .\r
+ db 0a8h ; 12e5 a8 .\r
+ dw gen.opc.ED2 ;LDDR 12e6 44 15 D .\r
+ db 0b8h ; 12e8 b8 .\r
+ dw gen.opc.ED2 ;LDI 12e9 44 15 D .\r
+ db 0a0h ; 12eb a0 .\r
+ dw gen.opc.ED2 ;LDIR 12ec 44 15 D .\r
+ db 0b0h ; 12ee b0 .\r
+ dw gen.opc.ED2 ;NEG 12ef 44 15 D .\r
+ db 044h ; 12f1 44 D\r
+ dw as.opc.noarg ;NOP 12f2 3b 15 ; .\r
+ db 000h ; 12f4 00 .\r
+ dw as.AND_CP_OR_SUB_XOR ;OR 12f5 a8 15 . .\r
+ db 0b0h ; 12f7 b0 .\r
+ dw gen.opc.ED2 ;OTDR 12f8 44 15 D .\r
+ db 0bbh ; 12fa bb .\r
+ dw gen.opc.ED2 ;OTIR 12fb 44 15 D .\r
+ db 0b3h ; 12fd b3 .\r
+ dw as.OUT ;OUT 12fe 21 17 ! .\r
+ db 041h ; 1300 41 A\r
+ dw gen.opc.ED2 ;OUTD 1301 44 15 D .\r
+ db 0abh ; 1303 ab .\r
+ dw gen.opc.ED2 ;OUTI 1304 44 15 D .\r
+ db 0a3h ; 1306 a3 .\r
+ dw as.POP_PUSH ;POP 1307 d9 16 . .\r
+ db 0c1h ; 1309 c1 .\r
+ dw as.POP_PUSH ;PUSH 130a d9 16 . .\r
+ db 0c5h ; 130c c5 .\r
+ dw as.BITOP ;RES 130d 09 16 . .\r
+ db 080h ; 130f 80 .\r
+ dw as.RET ;RET 1310 45 16 E .\r
+ db 0c0h ; 1312 c0 .\r
+ dw gen.opc.ED2 ;RETI 1313 44 15 D .\r
+ db 04dh ; 1315 4d M\r
+ dw gen.opc.ED2 ;RETN 1316 44 15 D .\r
+ db 045h ; 1318 45 E\r
+ dw as.SHIFTOP ;RL 1319 d5 15 . .\r
+ db 010h ; 131b 10 .\r
+ dw as.opc.noarg ;RLA 131c 3b 15 ; .\r
+ db 017h ; 131e 17 .\r
+ dw as.SHIFTOP ;RLC 131f d5 15 . .\r
+ db 000h ; 1321 00 .\r
+ dw as.opc.noarg ;RLCA 1322 3b 15 ; .\r
+ db 007h ; 1324 07 .\r
+ dw gen.opc.ED2 ;RLD 1325 44 15 D .\r
+ db 06fh ; 1327 6f o\r
+ dw as.SHIFTOP ;RR 1328 d5 15 . .\r
+ db 018h ; 132a 18 .\r
+ dw as.opc.noarg ;RRA 132b 3b 15 ; .\r
+ db 01fh ; 132d 1f .\r
+ dw as.SHIFTOP ;RRC 132e d5 15 . .\r
+ db 008h ; 1330 08 .\r
+ dw as.opc.noarg ;RRCA 1331 3b 15 ; .\r
+ db 00fh ; 1333 0f .\r
+ dw gen.opc.ED2 ;RRD 1334 44 15 D .\r
+ db 067h ; 1336 67 g\r
+ dw as.RST ;RST 1337 ca 16 . .\r
+ db 0c7h ; 1339 c7 .\r
+ dw as.ADC_SBC ;SBC 133a 51 15 Q .\r
+ db 098h ; 133c 98 .\r
+ dw as.opc.noarg ;SCF 133d 3b 15 ; .\r
+ db 037h ; 133f 37 7\r
+ dw as.BITOP ;SET 1340 09 16 . .\r
+ db 0c0h ; 1342 c0 .\r
+ dw as.SHIFTOP ;SLA 1343 d5 15 . .\r
+ db 020h ; 1345 20\r
+ dw as.SHIFTOP ;SRA 1346 d5 15 . .\r
+ db 028h ; 1348 28 (\r
+ dw as.SHIFTOP ;SRL 1349 d5 15 . .\r
+ db 038h ; 134b 38 8\r
+ dw as.AND_CP_OR_SUB_XOR ;SUB 134c a8 15 . .\r
+ db 090h ; 134e 90 .\r
+ dw as.AND_CP_OR_SUB_XOR ;XOR 134f a8 15 . .\r
+ db 0a8h ; 1351 a8 .\r
+\r
+ dw as.IN0 ;IN0\r
+ db 000h ;\r
+ dw as.MLT ;MLT\r
+ db 04ch ;\r
+ dw gen.opc.ED2 ;OTDM\r
+ db 08bh ;\r
+ dw gen.opc.ED2 ;OTDMR\r
+ db 09bh ;\r
+ dw gen.opc.ED2 ;OTIM\r
+ db 083h ;\r
+ dw gen.opc.ED2 ;OTIMR\r
+ db 093h ;\r
+ dw as.OUTO ;OUT0\r
+ db 001h ;\r
+ dw gen.opc.ED2 ;SLP\r
+ db 076h ;\r
+ dw as.TST ;TST\r
+ db 004h ;\r
+ dw as.TSTIO ;TSTIO\r
+ db 074h ;\r
\r
as.TST:\r
call arg.r_HL_A ;\r
jp z,ERROR ;13e9 ca 07 01 . . .\r
l13ech:\r
ld b,a ;13ec 47 G\r
- jp as.opc.noarg ;13ed c3 3b 15 . ; .\r
+ jp as.opc.noarg ;13ed c3 3b 15 . ; .\r
l13f0h:\r
call arg.IDX_displcmnt ;13f0 cd 55 18 . U .\r
jr nc,l1413h ;13f3 30 1e 0 .\r
inc de ;18ca 13 .\r
ret ;18cb c9 .\r
\r
-prefix_ixiy:\r
- db 0 ;18cc 00 .\r
-\r
cmd_L:\r
ld hl,cmd_L ;18cd 21 cd 18 ! . .\r
ld (cmd_rpt),hl ;18d0 22 68 00 " h .\r
ret ;197e c9 .\r
\r
l197fh:\r
- ld hl,msg_undef_opcode ;197f 21 89 19 ! . .\r
- call pstr ;1982 cd 88 02 . . .\r
- ld b,001h ;1985 06 01 . .\r
- sub a ;1987 97 .\r
- ret ;1988 c9 .\r
-\r
-msg_undef_opcode:\r
+ call pstr_inl\r
DC '???'\r
+ ld b,001h\r
+ sub a\r
+ ret\r
\r
disas_get_instrlen:\r
sub a ;198c 97 .\r
\r
; DD/FD 3 byte (ix+d)/(iy+d)\r
b_19ef_start:\r
- defb 034h ;19ef 34 4\r
- defb 035h ;19f0 35 5\r
- defb 036h ;19f1 36 6\r
- defb 046h ;19f2 46 F\r
- defb 04eh ;19f3 4e N\r
- defb 056h ;19f4 56 V\r
- defb 05eh ;19f5 5e ^\r
- defb 066h ;19f6 66 f\r
- defb 06eh ;19f7 6e n\r
- defb 070h ;19f8 70 p\r
- defb 071h ;19f9 71 q\r
- defb 072h ;19fa 72 r\r
- defb 073h ;19fb 73 s\r
- defb 074h ;19fc 74 t\r
- defb 075h ;19fd 75 u\r
- defb 077h ;19ff 77 w\r
- defb 07eh ;1a00 7e ~\r
- defb 086h ;1a01 86 .\r
- defb 08eh ;1a02 8e .\r
- defb 096h ;1a03 96 .\r
- defb 09eh ;1a04 9e .\r
- defb 0a6h ;1a05 a6 .\r
- defb 0aeh ;1a06 ae .\r
- defb 0b6h ;1a07 b6 .\r
- defb 0beh ;1a08 be .\r
- defb 0 ;1a09 00 .\r
+ db 034h ;19ef 34 4\r
+ db 035h ;19f0 35 5\r
+ db 036h ;19f1 36 6\r
+ db 046h ;19f2 46 F\r
+ db 04eh ;19f3 4e N\r
+ db 056h ;19f4 56 V\r
+ db 05eh ;19f5 5e ^\r
+ db 066h ;19f6 66 f\r
+ db 06eh ;19f7 6e n\r
+ db 070h ;19f8 70 p\r
+ db 071h ;19f9 71 q\r
+ db 072h ;19fa 72 r\r
+ db 073h ;19fb 73 s\r
+ db 074h ;19fc 74 t\r
+ db 075h ;19fd 75 u\r
+ db 077h ;19ff 77 w\r
+ db 07eh ;1a00 7e ~\r
+ db 086h ;1a01 86 .\r
+ db 08eh ;1a02 8e .\r
+ db 096h ;1a03 96 .\r
+ db 09eh ;1a04 9e .\r
+ db 0a6h ;1a05 a6 .\r
+ db 0aeh ;1a06 ae .\r
+ db 0b6h ;1a07 b6 .\r
+ db 0beh ;1a08 be .\r
+ db 0 ;1a09 00 .\r
\r
; DD/FD 2 byte\r
l1a0ah:\r
- defb 009h ;1a0a 09 .\r
- defb 019h ;1a0b 19 .\r
- defb 021h ;1a0c 21 !\r
- defb 022h ;1a0d 22 "\r
- defb 023h ;1a0e 23 #\r
- defb 029h ;1a0f 29 )\r
- defb 02ah ;1a10 2a *\r
- defb 02bh ;1a11 2b +\r
- defb 039h ;1a12 39 9\r
- defb 0e1h ;1a13 e1 .\r
- defb 0e3h ;1a14 e3 .\r
- defb 0e5h ;1a15 e5 .\r
- defb 0e9h ;1a16 e9 .\r
- defb 0f9h ;1a17 f9 .\r
- defb 0 ;1a18 00 .\r
+ db 009h ;1a0a 09 .\r
+ db 019h ;1a0b 19 .\r
+ db 021h ;1a0c 21 !\r
+ db 022h ;1a0d 22 "\r
+ db 023h ;1a0e 23 #\r
+ db 029h ;1a0f 29 )\r
+ db 02ah ;1a10 2a *\r
+ db 02bh ;1a11 2b +\r
+ db 039h ;1a12 39 9\r
+ db 0e1h ;1a13 e1 .\r
+ db 0e3h ;1a14 e3 .\r
+ db 0e5h ;1a15 e5 .\r
+ db 0e9h ;1a16 e9 .\r
+ db 0f9h ;1a17 f9 .\r
+ db 0 ;1a18 00 .\r
\r
disas_pfx.ED:\r
inc iy ;1a19 fd 23 . #\r
jp out_hex ;1c9d c3 18 02 . . .\r
\r
l1ca0h:\r
- ld hl,b_1ca9_start ;1ca0 21 a9 1c ! . .\r
- call pstr ;1ca3 cd 88 02 . . .\r
- jp p_arg_hlixiy ;1ca6 c3 7e 1e . ~ .\r
-\r
-b_1ca9_start:\r
+ call pstr_inl ;1ca3 cd 88 02 . . .\r
DC '(SP),'\r
+ jp p_arg_hlixiy ;1ca6 c3 7e 1e . ~ .\r
\r
l1caeh:\r
call p_char_lparen ;1cb0 cd 5d 02 . ] .\r
jp pstr ;1cbe c3 88 02 . . .\r
\r
l1cc1h:\r
- ld hl,b_1cca_start ;1cc1 21 ca 1c ! . .\r
- call pstr ;1cc4 cd 88 02 . . .\r
- jp p_arg_hlixiy ;1cc7 c3 7e 1e . ~ .\r
-\r
-b_1cca_start:\r
+ call pstr_inl\r
DC 'SP,'\r
+ jp p_arg_hlixiy\r
\r
p_arg_ex_afaf:\r
ld hl,b_176d_start ;1ccd 21 6d 17 ! m .\r
DC '(C)'\r
DB 0\r
\r
-isprefix_ixiy:\r
- db 0 ;1ff8 00 .\r
-last_L:\r
- dw TPA ;1ff9 00 01 .\r
-l1ffbh:\r
- dw 0 ;1ffb 00 00 .\r
-l1ffdh:\r
- db 0 ;1ffd 00 .\r
-\r
sub_1ffeh:\r
ld hl,(REG.PC) ;1ffe 2a 60 00 * ` .\r
ld a,h ;2001 7c |\r
ret ;21e1 c9 .\r
\r
b_21e2_start:\r
- db 0 ;21e2 00 .\r
+ db 0\r
trace_call_flag:\r
- db 0 ;1=call, 0=trace 21e3 00 .\r
+ db 0 ;1=call, 0=trace\r
trace_UW_flag:\r
- db 0 ;0 or 'U' or 'W' 21e4 00 .\r
+ db 0 ;0 or 'U' or 'W'\r
trace_count:\r
- dw 0 ;21e5 00 00 .\r
+ dw 0\r
trace_N_flag:\r
- db 0 ;0 if 'N' 21e7 00 .\r
+ db 0 ;0 if 'N'\r
trace_J_flag:\r
- db 0 ;0 if 'J' 21e8 00 .\r
+ db 0 ;0 if 'J'\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+con_col:\r
+ db 0\r
+\r
+l0941h:\r
+ db 0\r
+\r
+bp_tab:\r
+ rept BP_CNT\r
+ rept BP_SIZE\r
+ db 0\r
+ endm\r
+ endm\r
+\r
+expr_p1:\r
+ dw expr_buf\r
+expr_p2:\r
+ dw expr_buf\r
+\r
+expr_buf:\r
+current_cseg defl $ - current_cseg\r
+ .phase current_phase + current_cseg\r
+\r
+start:\r
+ LD SP,ldr_end+(stack-ddtz_base)\r
+ LD DE,signon ;ldr_end+(expr_buf-ddtz_base)\r
+ LD C,BDOS_PSTR\r
+ CALL BDOS\r
+\r
+ xor a\r
+ dec a\r
+ jp po,reloc\r
+ ld de,msgz80\r
+ LD C,BDOS_PSTR\r
+ CALL BDOS\r
+ jp 0\r
+\r
+reloc:\r
+ LD HL,ldr_end+ddtz_size ;start of reloc bitmap\r
+ ld bc,0108h ;init bit counter\r
+\r
+ EXX\r
+ LD HL,(BDOS+1)\r
+ LD (ldr_end+(ddtz_bdos+1-ddtz_base)),HL\r
+ LD BC,ddtz_size-1\r
+ LD D,B\r
+ LD E,0FFH\r
+ INC DE ;size rounded up to next page boundary\r
+ INC BC ;ddtz_size\r
+ OR A\r
+ SBC HL,DE ;BDOS - size\r
+ LD (BDOS+1),HL ;-> new BDOS entry\r
+\r
+ push hl\r
+ PUSH BC\r
+ ld de,ldr_end\r
+ sbc hl,de\r
+ EX DE,HL ;-> DE\r
+ LD HL,ldr_size\r
+ add hl,bc\r
+ ld b,h\r
+ ld c,l\r
+ LD HL,TPA\r
+reloc_lp:\r
+ EXX\r
+ djnz reloc_nl\r
+ ld b,c ;reload bit counter\r
+ LD e,(HL) ;get next 8 relocation bits\r
+ INC HL\r
+reloc_nl:\r
+ sla e\r
+ EXX\r
+ JR NC,reloc_next\r
+ DEC HL\r
+ LD A,(HL)\r
+ ADD A,E\r
+ LD (HL),A\r
+ INC HL\r
+ LD A,(HL)\r
+ ADC A,D\r
+ LD (HL),A\r
+reloc_next:\r
+ cpi\r
+ jp pe,reloc_lp\r
+ dec hl\r
+\r
+ POP BC\r
+ pop de\r
+ EX DE,HL\r
+ ADD HL,BC\r
+ EX DE,HL\r
+ DEC DE\r
+ LDDR\r
+ LD HL,conbuf+2-ddtz_base\r
+ ADD HL,DE\r
+ JP (HL)\r
+\r
+current_phase defl $\r
+ .dephase\r
+current_cseg defl $\r
+\r
+ ds EXPR_BUF_SIZE - ($ - expr_buf)\r
+expr_bufe:\r
+\r
+msg_Y:\r
+ dc 'Yn'\r
+reg_Y:\r
+ rept YREG_CNT\r
+ dw 0\r
+ endm\r
+\r
+last_S:\r
+ dw TPA\r
+\r
+last_I:\r
+ dw 0\r
+\r
+last_O_addr:\r
+ dw 0\r
+last_O_val:\r
+ db 0\r
+\r
+cmd_Q_jopt:\r
+ db -1\r
+\r
+last_D:\r
+ dw TPA\r
+\r
+cmdR_rindex:\r
+ db 0\r
+\r
+high_load:\r
+ dw TPA\r
+max_load:\r
+ dw TPA\r
+\r
+l1262h:\r
+ dw 0\r
+last_A:\r
+ dw TPA\r
+cmd_A_prev:\r
+ dw TPA\r
+\r
+prefix_ixiy:\r
+ db 0\r
+\r
+isprefix_ixiy:\r
+ db 0\r
+last_L:\r
+ dw TPA\r
+l1ffbh:\r
+ dw 0\r
+l1ffdh:\r
+ db 0\r
+\r
+cur_fcb:\r
+ dw 0\r
+fcbsym:\r
+ ds 33\r
\r
ddtz_size equ $-ddtz_base\r
ddtz_end:\r