; 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
conbuf:\r
db CONBUF_SIZE\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
+ 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
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
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
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
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
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
+ ld hl,msg_symbols\r
+ call pstr\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
p_max_high:\r
call out_hl ;1187 cd 13 02 . . .\r
jp crlf ;118a c3 a3 02 . . .\r
\r
+msg_symbols:\r
+ db 'SYMBOLS',CR,LF+80h\r
msg_high:\r
DC 'High = '\r
msg_max:\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
\r
EXX\r
LD HL,(BDOS+1)\r
- LD (ldr_end+1),HL\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
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
\r