-b_1289_start:\r
- dw as.ADC_SBC ;ADC\r
- db 088h ;\r
- dw as.ADD ;ADD\r
- db 080h ;\r
- dw as.AND_CP_OR_SUB_XOR ;AND\r
- db 0a0h ;\r
- dw as.BITOP ;BIT\r
- db 040h ;\r
- dw as.CALL ;CALL\r
- db 0c4h ;\r
- dw as.opc.noarg ;CCF\r
- db 03fh ;\r
- dw as.AND_CP_OR_SUB_XOR ;CP\r
- db 0b8h ;\r
- dw gen.opc.ED2 ;CPD\r
- db 0a9h ;\r
- dw gen.opc.ED2 ;CPDR\r
- db 0b9h ;\r
- dw gen.opc.ED2 ;CPI\r
- db 0a1h ;\r
- dw gen.opc.ED2 ;CPIR\r
- db 0b1h ;\r
- dw as.opc.noarg ;CPL\r
- db 02fh ;\r
- dw as.opc.noarg ;DAA\r
- db 027h ;\r
- dw as.DEC_INC ;DEC\r
- db 005h ;\r
- dw as.opc.noarg ;DI\r
- db 0f3h ;\r
- dw as.DJNZ ;DJNZ\r
- db 010h ;\r
- dw as.opc.noarg ;EI\r
- db 0fbh ;\r
- dw as.EX ;EX\r
- db 0e3h ;\r
- dw as.opc.noarg ;EXX\r
- db 0d9h ;\r
- dw as.opc.noarg ;HALT\r
- db 076h ;\r
- dw as.IM ;IM\r
- db 046h ;\r
- dw as.IN ;IN\r
- db 040h ;\r
- dw as.DEC_INC ;INC\r
- db 004h ;\r
- dw gen.opc.ED2 ;IND\r
- db 0aah ;\r
- dw gen.opc.ED2 ;INDR\r
- db 0bah ;\r
- dw gen.opc.ED2 ;INI\r
- db 0a2h ;\r
- dw gen.opc.ED2 ;INIR\r
- db 0b2h ;\r
- dw as.JP ;JP\r
- db 0c2h ;\r
- dw as.JR ;JR\r
- db 020h ;\r
- dw as.LD ;LD\r
- db 040h ;\r
- dw gen.opc.ED2 ;LDD\r
- db 0a8h ;\r
- dw gen.opc.ED2 ;LDDR\r
- db 0b8h ;\r
- dw gen.opc.ED2 ;LDI\r
- db 0a0h ;\r
- dw gen.opc.ED2 ;LDIR\r
- db 0b0h ;\r
- dw gen.opc.ED2 ;NEG\r
- db 044h ;\r
- dw as.opc.noarg ;NOP\r
- db 000h ;\r
- dw as.AND_CP_OR_SUB_XOR ;OR\r
- db 0b0h ;\r
- dw gen.opc.ED2 ;OTDR\r
- db 0bbh ;\r
- dw gen.opc.ED2 ;OTIR\r
- db 0b3h ;\r
- dw as.OUT ;OUT\r
- db 041h ;\r
- dw gen.opc.ED2 ;OUTD\r
- db 0abh ;\r
- dw gen.opc.ED2 ;OUTI\r
- db 0a3h ;\r
- dw as.POP_PUSH ;POP\r
- db 0c1h ;\r
- dw as.POP_PUSH ;PUSH\r
- db 0c5h ;\r
- dw as.BITOP ;RES\r
- db 080h ;\r
- dw as.RET ;RET\r
- db 0c0h ;\r
- dw gen.opc.ED2 ;RETI\r
- db 04dh ;\r
- dw gen.opc.ED2 ;RETN\r
- db 045h ;\r
- dw as.SHIFTOP ;RL\r
- db 010h ;\r
- dw as.opc.noarg ;RLA\r
- db 017h ;\r
- dw as.SHIFTOP ;RLC\r
- db 000h ;\r
- dw as.opc.noarg ;RLCA\r
- db 007h ;\r
- dw gen.opc.ED2 ;RLD\r
- db 06fh ;\r
- dw as.SHIFTOP ;RR\r
- db 018h ;\r
- dw as.opc.noarg ;RRA\r
- db 01fh ;\r
- dw as.SHIFTOP ;RRC\r
- db 008h ;\r
- dw as.opc.noarg ;RRCA\r
- db 00fh ;\r
- dw gen.opc.ED2 ;RRD\r
- db 067h ;\r
- dw as.RST ;RST\r
- db 0c7h ;\r
- dw as.ADC_SBC ;SBC\r
- db 098h ;\r
- dw as.opc.noarg ;SCF\r
- db 037h ;\r
- dw as.BITOP ;SET\r
- db 0c0h ;\r
- dw as.SHIFTOP ;SLA\r
- db 020h ;\r
- dw as.SHIFTOP ;SRA\r
- db 028h ;\r
- dw as.SHIFTOP ;SRL\r
- db 038h ;\r
- dw as.AND_CP_OR_SUB_XOR ;SUB\r
- db 090h ;\r
- dw as.AND_CP_OR_SUB_XOR ;XOR\r
- db 0a8h ;\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
-;-------------------------------------------------------------------------------\r
-\r
-as.TST:\r
- call arg.r_HL_A ;\r
- jr nc,as.tst_0\r
- rlca\r
- rlca\r
- rlca\r
- add a,b\r
- ld b,a\r
- jp gen.opc.ED2\r
-as.tst_0:\r
- ld b,064h\r
-as.TSTIO:\r
- call arg.imm_8bit ;\r
- jr as.store_io0\r
-\r
-as.IN0:\r
- call arg.r_HL_A ;\r
- jr nc,error5\r
- cp 006h\r
- jr z,error5\r
- rlca\r
- rlca\r
- rlca\r
- add a,b\r
- ld b,a\r
- call assert_comma ;\r
- call arg.addr_8bit ;\r
- jr as.store_io0\r
-\r
-as.OUTO:\r
- call arg.addr_8bit ;\r
- call assert_comma ;\r
- call arg.r_HL_A ;\r
- jr nc,error5\r
- cp 006h\r
- jr z,error5\r
- rlca\r
- rlca\r
- rlca\r
- add a,b\r
- ld b,a\r
-\r
-as.store_io0:\r
- call assert_eol\r
- ld (iy+000h),0edh\r
- ld (iy+001h),b\r
- ld (iy+002h),l\r
- ld c,003h\r
- ret\r
-\r
-as.MLT:\r
- call arg.ww ;\r
- jr nc,error5\r
- add a,b\r
- ld b,a\r
- jp gen.opc.ED2\r
-\r
-error5:\r
- jp ERROR\r
-\r
-as.LD:\r
- call arg.r_HL_A\r
- jr c,l13d4h\r
- call arg.IDX_displcmnt\r
- jp c,l1471h\r
- call arg.ww\r
- jp c,l149ch\r
- call arg.IX_IY\r
- jp c,l14f5h\r
- call get_char_upper\r
- cp 'I'\r
- jp z,l1511h\r
- cp 'R'\r
- jp z,l1519h\r
- cp '('\r
- jr nz,error5\r
- inc de\r
- call arg.ww\r
- jp c,l1528h\r
- call test_expr\r
- call test_paren_close\r
- call assert_comma\r
- call arg.ww\r
- jr c,l13c2h\r
- call arg.IX_IY\r
- jr nc,l13aah\r
- ld b,022h\r
-l1395h:\r
- call assert_eol\r
- ld a,(prefix_ixiy)\r
-l139bh:\r
- ld (iy+000h),a\r
- ld (iy+001h),b\r
- ld (iy+002h),l\r
- ld (iy+003h),h\r
- ld c,004h\r
- ret\r
-\r
-l13aah:\r
- call get_char_upper\r
- cp 'A'\r
- jr nz,error5\r
- inc de\r
- ld b,032h\r
-\r
-as.store_3:\r
- call assert_eol\r
- ld (iy+000h),b\r
- ld (iy+001h),l\r
- ld (iy+002h),h\r
- ld c,003h\r
- ret\r
-\r
-l13c2h:\r
- cp 020h\r
- jr z,l13d0h\r
- add a,043h\r
- ld b,a\r
-l13c9h:\r
- call assert_eol\r
- ld a,0edh\r
- jr l139bh\r
-l13d0h:\r
- ld b,022h\r
- jr as.store_3\r
-\r
-l13d4h:\r
- ld b,a\r
- call assert_comma\r
- call arg.r_HL_A\r
- jr nc,l13f0h\r
- push af\r
- ld a,b\r
- rlca\r
- rlca\r
- rlca\r
- ld b,a\r
- pop af\r
- add a,b\r
- add a,040h\r
- cp 076h\r
- jr z,error60\r
-l13ech:\r
- ld b,a\r
- jp as.opc.noarg\r
-\r
-l13f0h:\r
- call arg.IDX_displcmnt\r
- jr nc,l1413h\r
- ld a,b\r
- rlca\r
- rlca\r
- rlca\r
- add a,046h\r
- cp 076h\r
- jr z,error60\r
-\r
-l1400h:\r
- ld b,a\r
- call assert_eol\r
- ld (iy+001h),b\r
- ld (iy+002h),c\r
- ld a,(prefix_ixiy)\r
- ld (iy+000h),a\r
- ld c,003h\r
- ret\r
-\r
-l1413h:\r
- call get_char_upper\r
- cp 'I'\r
- jr z,l1426h\r
- cp 'R'\r
- jr nz,l1432h\r
- ld a,b\r
- cp 007h\r
- jr nz,error60\r
- ld b,05fh\r
- jr l142eh\r
-\r
-l1426h:\r
- ld a,b\r
- cp 007h\r
- jr nz,error60\r
- ld b,057h\r
-l142eh:\r
- inc de\r
- jp gen.opc.ED2\r
-l1432h:\r
- cp '('\r
- jr z,l144ch\r
- call arg.imm_8bit\r
- ld a,b\r
- rlca\r
- rlca\r
- rlca\r
- add a,006h\r
-l143fh:\r
- ld b,a\r
-as.store_2:\r
- call assert_eol\r
- ld (iy+000h),b\r
- ld (iy+001h),l\r
- ld c,002h\r
- ret\r
-l144ch:\r
- inc de\r
- ld a,b\r
- cp 007h\r
- jr nz,error60\r
- call arg.ww\r
- jr nc,l1466h\r
- cp 030h\r
- jr nc,error60\r
- add a,00ah\r
- ld b,a\r
- call test_paren_close\r
- jp as.opc.noarg\r
-\r
-error60:\r
- jp error\r
-\r
-l1466h:\r
- call test_expr\r
- call test_paren_close\r
- ld b,03ah\r
- jp as.store_3\r
-\r
-l1471h:\r
- call assert_comma\r
- call arg.r_HL_A\r
- jr nc,l1483h\r
- cp 006h\r
- jr z,error60\r
- add a,070h\r
- jp l1400h\r
-\r
-l1483h:\r
- call arg.imm_8bit\r
- call assert_eol\r
- ld a,(prefix_ixiy)\r
- ld (iy+000h),a\r
- ld (iy+001h),036h\r
- ld (iy+002h),c\r
- ld (iy+003h),l\r
- ld c,004h\r
- ret\r
-l149ch:\r
- ld b,a\r
- call assert_comma\r
- ld hl,t_HL.AF\r
- call sub_0318h\r
- jr c,l14c3h\r
- call arg.IX_IY\r
- jr nc,l14cch\r
- ld a,b\r
- cp 030h\r
- jr nz,error6\r
- ld b,0f9h\r
-l14b4h:\r
- call assert_eol\r
- ld a,(prefix_ixiy)\r
- ld (iy+000h),a\r
- ld (iy+001h),b\r
- ld c,002h\r
- ret\r
-\r
-l14c3h:\r
- ld a,b\r
- cp 030h\r
- jr nz,error6\r
- ld b,0f9h\r
- jr as.opc.noarg ;14ca\r
-\r
-l14cch:\r
- call get_char_upper\r
- cp '('\r
- jr nz,l14e8h\r
- inc de\r
- call test_expr\r
- call test_paren_close\r
- ld a,b\r
- cp 020h\r
- jr z,l14e3h\r
- add a,04bh\r
- ld b,a\r
- jp l13c9h\r
-\r
-l14e3h:\r
- ld b,02ah\r
- jp as.store_3\r
-\r
-l14e8h:\r
- call test_expr\r
- call assert_eol\r
- ld a,001h\r
- add a,b\r
- ld b,a\r
- jp as.store_3\r
-l14f5h:\r
- call assert_comma\r
- call get_char_upper\r
- cp '('\r
- jr nz,l1509h\r
- inc de\r
- call test_expr\r
- call test_paren_close\r
- ld b,02ah\r
- jp l1395h\r
-\r
-l1509h:\r
- call test_expr\r
- ld b,021h\r
- jp l1395h\r
-\r
-l1511h:\r
- inc de\r
- call assert_comma\r
- ld b,047h\r
- jr l151fh\r
-\r
-l1519h:\r
- inc de\r
- call assert_comma\r
- ld b,04fh\r
-l151fh:\r
- call get_char_upper\r
- inc de\r
- cp 'A'\r
- jr z,gen.opc.ED2\r
-error6:\r
- jp ERROR\r
-\r
-l1528h:\r
- cp 020h\r
- jr nc,error6\r
- add a,002h\r
- ld b,a\r
- call test_paren_close\r
- call assert_comma\r
- call get_char_upper\r
- cp 'A'\r
- jr nz,error6\r
- inc de\r
-as.opc.noarg:\r
- call assert_eol\r
- ld (iy+000h),b\r
- ld c,001h\r
- ret\r
-\r
-gen.opc.ED2:\r
- call assert_eol\r
- ld (iy+000h),0edh\r
- ld (iy+001h),b\r
- ld c,002h\r
- ret\r
-\r
-as.ADC_SBC:\r
- ld hl,t_HL.AF\r
- call sub_0318h\r
- jr nc,as.AND_CP_OR_SUB_XOR\r
- call assert_comma\r
- call arg.ww\r
- jr nc,error6\r
- push af\r
- ld a,b\r
- cp 088h\r
- ld b,04ah\r
- jr z,l156ch\r
- ld b,042h\r
-l156ch:\r
- pop af\r
- add a,b\r
-l156eh:\r
- ld b,a\r
- jr gen.opc.ED2\r
-\r
-as.ADD:\r
- ld hl,t_HL.AF\r
- call sub_0318h\r
- jr c,l159ah\r
- call arg.IX_IY\r
- jr nc,as.AND_CP_OR_SUB_XOR\r
- call assert_comma\r
- ld hl,t_BC.DE.IX.SP\r
- ld a,(prefix_ixiy)\r
- cp 0fdh\r
- jr nz,l158eh\r
- ld hl,t_BC.DE.IY.SP\r
-l158eh:\r
- call arg.reg_16bit\r
- jr nc,error6\r
- add a,009h\r
-l1596h:\r
- ld b,a\r
- jp l14b4h\r
-l159ah:\r
- call assert_comma\r
- call arg.ww\r
-error61nc:\r
- jr nc,error6\r
- add a,009h\r
- jp l13ech\r
-as.AND_CP_OR_SUB_XOR:\r
- call get_char_upper\r
- cp 'A'\r
- jr nz,l15b8h\r
- push de\r
- inc de\r
- call next_arg\r
- jr z,l15b7h\r
- pop de\r
- jr l15b8h\r
-l15b7h:\r
- pop af\r
-l15b8h:\r
- call arg.r_HL_A\r
- jr c,l15cbh\r
- call arg.IDX_displcmnt\r
- jr c,l15cfh\r
- call arg.imm_8bit\r
- ld a,b\r
- add a,046h\r
- jp l143fh\r
-l15cbh:\r
- add a,b\r
- jp l13ech\r
-l15cfh:\r
- ld a,b\r
- add a,006h\r
- jp l1400h\r
-\r
-as.SHIFTOP:\r
- call arg.r_HL_A\r
- jr c,l15fah\r
- call arg.IDX_displcmnt\r
- jr nc,error61nc\r
- ld a,b\r
- add a,006h\r
- ld b,a\r
-l15e4h:\r
- call assert_eol\r
- ld a,(prefix_ixiy)\r
- ld (iy+000h),a\r
- ld (iy+001h),0cbh\r
- ld (iy+002h),c\r
- ld (iy+003h),b\r
- ld c,004h\r
- ret\r
-\r
-l15fah:\r
- add a,b\r
-l15fbh:\r
- ld b,a\r
- call assert_eol\r
- ld (iy+001h),b\r
- ld (iy+000h),0cbh\r
- ld c,002h\r
- ret\r
-\r
-as.BITOP:\r
- call arg.bit\r
- call assert_comma\r
- call arg.r_HL_A\r
- jr c,l1624h\r
- call arg.IDX_displcmnt\r
- jr nc,error61nc\r
- ld a,l\r
- rlca\r
- rlca\r
- rlca\r
- add a,006h\r
- add a,b\r
- ld b,a\r
- jr l15e4h\r
-l1624h:\r
- add a,b\r
- ld b,a\r
- ld a,l\r
- rlca\r
- rlca\r
- rlca\r
- add a,b\r
- jr l15fbh\r
-\r
-as.CALL:\r
- push de\r
- call arg.cc_ZCPS\r
- jr nc,l163ch\r
- add a,b\r
- ld b,a\r
- call next_arg\r
- jr z,l163eh\r
- pop de\r
- push de\r
-l163ch:\r
- ld b,0cdh\r
-l163eh:\r
- pop af\r
- call test_expr\r
- jp as.store_3\r
-\r
-as.RET:\r
- call arg.cc_ZCPS\r
- jr nc,l164eh\r
- add a,b\r
- ld b,a\r
- jr l1650h\r
-l164eh:\r
- ld b,0c9h\r
-l1650h:\r
- jp as.opc.noarg\r
-\r
-as.JP:\r
- push de\r
- call arg.cc_ZCPS\r
- jr c,l1666h\r
-l1659h:\r
- pop de\r
- ld hl,l168ch\r
- call sub_030ah\r
- jr c,l1674h\r
- ld b,0c3h\r
- jr l166eh\r
-\r
-l1666h:\r
- add a,b\r
- ld b,a\r
- call next_arg\r
- jr nz,l1659h\r
- pop af\r
-l166eh:\r
- call test_expr\r
- jp as.store_3\r
-l1674h:\r
- call assert_eol\r
- ld a,b\r
- and a\r
- jr nz,l1680h\r
- ld b,0e9h\r
- jp as.opc.noarg\r
-l1680h:\r
- ld b,0ddh\r
- dec a\r
- jr z,l1687h\r
- ld b,0fdh\r
-l1687h:\r
- ld l,0e9h\r
- jp as.store_2\r
-\r
-l168ch:\r
- DC '(HL)'\r
- DC '(IX)'\r
- DC '(IY)'\r
- DB 0\r
-\r
-as.DJNZ:\r
- call next_arg\r
- ld b,010h\r
- jr l16aeh\r
-as.JR:\r
- call arg.cc_ZC\r
- jr c,l16a9h\r
- ld b,018h\r
- jr l16aeh\r
-l16a9h:\r
- add a,b\r
- ld b,a\r
- call assert_comma\r
-l16aeh:\r
- call arg.j_displ\r
- jp as.store_2\r