\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
+ db CONBUF_SIZE\r
\r
ld sp,stack ;006b 31 46 00 1 F .\r
exx ;006e d9 .\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
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
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
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
-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+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
-\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' ;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
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
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
msg_max:\r
DC ' Max = '\r
\r
-high_load:\r
- defw TPA ;119c 00 01 . .\r
-max_load:\r
- defw TPA ;119e 00 01 . .\r
-\r
cmd_W:\r
call get_arg_range ;11a0 cd 7d 03 . } .\r
call assert_eol ;11a3 cd d6 02 . . .\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
\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
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+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
+\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
ddtz_size equ $-ddtz_base\r
ddtz_end:\r