home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Emulatoren / amigacpe.lzh / cpe2.asm < prev    next >
Encoding:
Assembly Source File  |  1995-02-14  |  72.8 KB  |  4,165 lines

  1. **************************************************************************
  2. *                                     *
  3. *    Z-80 emulation routines for Amstrad CPC-Emulator         *
  4. *    Originally based on Simcpm's Z-80 emulator by Charlie Gibbs      *
  5. *    Left over from the original code are (as far as I can tell)     *
  6. *    the general source layout, most of the labels, DAA emulation,     *
  7. *    probably most of the macros, and most of the tables at the end     *
  8. *    of the file.                             *
  9. *    The emulation code was rewritten to make better use of the     *
  10. *    68000 registers, support the banking hardware and video refresh, *
  11. *    and to emulate undocumented features as well             *
  12. *                                     *
  13. **************************************************************************
  14.  
  15.     XDEF simz80,sz80l,calcpca,daasp
  16.     XDEF wword,wbyte,gword,gbyte
  17.  
  18.     XREF amsdos,basic,rambase,sysstat,scrbase,stack,xh,xl,ix,yh,yl,iy
  19.     XREF DoScr,outp,inp,service,memmap
  20.     XREF inthandler,intena,ffly,codecheck
  21.     XREF RedrawArea,cleanup,crux
  22.  
  23.     INCLUDE "cpe.inc"
  24.  
  25. illegl    rts
  26.  
  27. calcpca move.w    d7,d5
  28.     and.w    #$C000,d5
  29.     rol.w    #4,d5
  30.     move.l    0(a2,d5.w),a5
  31.  ;     jsr     codecheck  ; DISABLED! Read the other files
  32.     rts
  33.  
  34. gbyte    move.w    d5,d6
  35.     rol.w    #4,d6
  36.     and.w    #$C,d6
  37.     move.l    0(a2,d6.w),a0
  38.     move.b    0(a0,d5.w),d6
  39.     rts
  40.  
  41. gword    move.w    d5,d6
  42.     rol.w    #4,d6
  43.     and.w    #$c,d6
  44.     move.l    0(a2,d6.w),a0
  45.     move.b    1(a0,d5.w),d6
  46.     lsl.w    #8,d6
  47.     move.b    0(a0,d5.w),d6
  48.     rts
  49.  
  50. wbyte    move.b    d6,0(a4,d5.w)
  51.  
  52. testvideoram:              ; also belongs to wbyte
  53.     move.w    d5,d6
  54.     and.w    #$C000,d6
  55.     cmp.w    scrbase,d6
  56.     bne    1$
  57.     jmp    DoScr
  58. 1$    rts
  59.  
  60. wword    move.b    d6,0(a4,d5.w)
  61.     rol.w    #8,d6
  62.     move.b    d6,1(a4,d5.w)
  63.     move.w    d5,d6
  64.     and.w    #$C000,d6
  65.     cmp.w    scrbase,d6
  66.     bne    1$
  67.     move.w    d5,-(sp)
  68.     jsr    DoScr
  69.     move.w    (sp)+,d5
  70.     addq.w    #1,d5
  71.     jmp    DoScr
  72. 1$    rts
  73.  
  74. gbpc    MACRO
  75.     moveq.l #0,d6
  76.     move.b    0(sPCA,sPC.w),d6
  77.     addq.w    #1,sPC
  78.     ENDM
  79.  
  80. gbhl    MACRO
  81.     move.w    sHL,d6
  82.     rol.w    #4,d6
  83.     and.w    #$C,d6
  84.     move.l    0(a2,d6.w),a0
  85.     move.b    0(a0,sHL.w),\1
  86.     ENDM
  87.  
  88. gwpc    MACRO
  89.     move.b    1(sPCA,sPC.w),\1
  90.     rol.w    #8,\1
  91.     move.b    0(sPCA,sPC.w),\1
  92.     addq.w    #2,sPC
  93.     ENDM
  94.  
  95. jrd0    macro            ;Jump relative (add D6 to program counter).
  96.     ext.w    d6
  97.     add.w    d6,sPC
  98.     jmp    (return)
  99.     endm
  100.  
  101. setflag macro            ;Set Z-80 flags from 68000 flags.
  102.     ifeq    x680x0
  103.     move    sr,d5
  104.     endc
  105.     ifne    x680x0
  106.     dc.w    $42C5
  107.     endc
  108.     and.w    #$F,d5
  109.     move.b    0(flagptr,d5.w),sF
  110.     ifc    '\1','SETONLY'
  111.     mexit
  112.     endc
  113.     ifnc    '\1',''
  114.     move.b    d5,\1
  115.     endc
  116.     jmp    (return)
  117.     endm
  118.  
  119. inrflag macro            ;Set flags after increment or decrement.
  120.     ifeq    x680x0
  121.     move    sr,d5
  122.     endc
  123.     ifne    x680x0
  124.     dc.w    $42C5
  125.     endc
  126.     and.w    #$E,d5
  127.     and.w    #$1,sF
  128.     or.b    0(flagptr,d5.w),sF
  129.     endm
  130.  
  131. addflag macro            ;Add and set flags.
  132.     move.b    d6,daaop1
  133.     move.b    sA,daaop2
  134.     clr.b    daaop3
  135.     add.b    d6,sA
  136.     setflag
  137.     endm
  138.  
  139. adcflag macro            ;Add with carry and set flags.
  140.     and.w    #1,sF
  141.     move.b    sF,daaop3
  142.     move.b    sA,daaop1
  143.     move.b    d6,daaop2
  144.     asr.w    #1,sF
  145.     moveq.l #0,d5
  146.     addx.b    d6,sA
  147.     setflag
  148.     endm
  149.  
  150. sbbflag macro            ;Subtract with borrow and set flags.
  151.     move.b    sA,daaop1
  152.     move.b    d6,daaop2
  153.     and.w    #1,sF
  154.     move.b    sF,d6
  155.     nbcd.b    d6
  156.     move.b    d6,daaop3
  157.     asr.w    #1,sF
  158.     moveq.l #0,d6
  159.     subx.b    d5,sA
  160.     setflag
  161.     endm
  162.  
  163. ashl    macro            ;16-bit add to or subtract from HL, set flags
  164.     asr.b    #1,sF
  165.     ori    #4,ccr
  166.     \1x.w    \2,sHL
  167.     ifeq    x680x0
  168.     move    sr,d5
  169.     endc
  170.     ifne    x680x0
  171.     dc.w    $42C5
  172.     endc
  173.     and.w    #$F,d5
  174.     move.b    0(flagptr,d5.w),sF
  175.     jmp    (return)
  176.     endm
  177.  
  178. ret80    macro            ;Return from subroutine.
  179.     move.w    stack,d5
  180.     bsr    gword
  181.     addq.w    #2,stack
  182.     subq.l    #4,daasp
  183.     move.w    d6,sPC
  184.     bsr    calcpca
  185.     jmp    (return)
  186.     endm
  187.  
  188. call80    macro            ;Call a Z-80 subroutine.
  189.     move.w    d6,-(sp)
  190.     subq.w    #2,stack
  191.     addq.l    #4,daasp
  192.     move.w    stack,d5
  193.     move.w    sPC,d6
  194.     bsr    wword
  195.     move.w    (sp)+,sPC
  196.     bsr    calcpca
  197.  
  198.     jmp    (return)
  199.     endm
  200.  
  201. rst80    macro            ;Z-80 RST instruction
  202.     subq.w    #2,stack
  203.     addq.l    #4,daasp
  204.     move.w    stack,d5
  205.     move.w    sPC,d6
  206.     bsr    wword
  207.     move.w    #\1,sPC
  208.     bsr    calcpca
  209.     jmp    (return)
  210.     endm
  211.  
  212. docyf    macro            ;Copy 68000's carry flag to Z-80.
  213.     bcs.s    1$
  214.     bclr    #0,sF
  215.     jmp    (return)
  216. 1$    bset    #0,sF
  217.     jmp    (return)
  218.     endm
  219.  
  220. dozf    macro            ;Copy 68000's zero flag to Z-80.
  221.     beq.s    1$
  222.     and.w    #$3f,sF ; clear Z & M
  223.     jmp    (return)
  224. 1$    and.w    #$3F,sF
  225.     bset    #6,sF
  226.     jmp    (return)
  227.     endm
  228.  
  229. dozmf    macro            ;Copy 68000's zero flag to Z-80.
  230.     beq.s    1$
  231.     bclr    #6,sF     ; clear Z, Set M
  232.     bset    #7,sF
  233.     jmp    (return)
  234. 1$    bset    #6,sF
  235.     bclr    #7,sF
  236.     jmp    (return)
  237.     endm
  238.  
  239. calcind macro            ;Calculate (IX+d) or (IY+d).
  240.     moveq.l #0,d5
  241.     move.b    0(sPCA,sPC.w),d5
  242.     ext.w    d5
  243.     addq.w    #1,sPC
  244.     add.w    \1,d5
  245.     endm
  246.  
  247. simz80    lea    memmap,a2
  248.     lea    rambase,a4
  249.     lea    optabl,a3
  250.     lea    flags,flagptr
  251.     lea    sz80l,return
  252.     move.l    #daastmid,daasp
  253.     clr.l    d5
  254.     and.w    #$FF,sA
  255.     bsr    calcpca
  256.  
  257.  ; The inthandler currently is *STUPID*
  258.  ; it only counts instructions, and when a certain number is reached
  259.  ; (300) it generates an interrupt. This is bad. The code in the PC
  260.  ; version is *MUCH* more elaborate.
  261.  
  262. sz80l    jsr    inthandler
  263. sz80gb    gbpc
  264.     addq.b    #2,sRF+1
  265.     add.w    d6,d6
  266.     add.w    d6,d6
  267.     move.l    0(a3,d6.w),a0
  268.     jmp    (a0)
  269.  
  270. *************************************************************************
  271. *                                    *
  272. *    Opcode simulation routines                    *
  273. *                                    *
  274. *************************************************************************
  275.  
  276. nop00    jmp    (return)        ;00 NOP
  277.  
  278. lxib    gwpc    sBC            ;01 LD BC,nnnn
  279.     jmp    (return)
  280.  
  281. staxb    move.w    sBC,d5            ;02 LD (BC),A
  282.     move.b    sA,0(a4,d5.w)
  283.     bsr    testvideoram
  284.     jmp    (return)
  285.  
  286. inxb    addq.w    #1,sBC            ;03 INC BC
  287.     jmp    (return)
  288.  
  289. inrb    rol.w    #8,sBC            ;04 INC B
  290.     addq.b    #1,sBC
  291.     inrflag
  292.     rol.w    #8,sBC
  293.     jmp    (return)
  294.  
  295. dcrb    rol.w    #8,sBC            ;05 DEC B
  296.     subq.b    #1,sBC
  297.     inrflag
  298.     rol.w    #8,sBC
  299.     jmp    (return)
  300.  
  301. mvib    rol.w    #8,sBC            ;06 LD B,nn
  302.     move.b    0(sPCA,sPC.w),sBC
  303.     addq.w    #1,sPC
  304.     rol.w    #8,sBC
  305.     jmp    (return)
  306.  
  307. rlc    rol.b    #1,sA            ;07 RLCA
  308.     docyf
  309.  
  310. exaf    swap    sA            ;08 EX AF,AF'
  311.     swap    sF
  312.     move.l    daaop1,d5
  313.     move.l    daaop1b,daaop1
  314.     move.l    d5,daaop1b
  315.     jmp    (return)
  316.  
  317. dadb    add.w    sBC,sHL         ;09 ADD HL,BC
  318.     docyf
  319.  
  320. ldaxb    move.w    sBC,d5            ;0A LD A,(BC)
  321.     bsr    gbyte
  322.     move.b    d6,sA
  323.     jmp    (return)
  324.  
  325. dcxb    subq.w    #1,sBC            ;0B DEC BC
  326.     jmp    (return)
  327.  
  328. inrc    addq.b    #1,sBC            ;0C INC C
  329.     inrflag
  330.     jmp    (return)
  331.  
  332. dcrc    subq.b    #1,sBC            ;0D DEC C
  333.     inrflag
  334.     jmp    (return)
  335.  
  336. mvic    move.b    0(sPCA,sPC.w),sBC    ;0E LD C,nn
  337.     addq.w    #1,sPC
  338.     jmp    (return)
  339.  
  340. rrc    ror.b    #1,sA            ;0F RRCA
  341.     docyf
  342.  
  343. djnz    gbpc                ;10 DJNZ dd
  344.     sub.w    #$100,sBC
  345.     move.w    sBC,d5
  346.     and.w    #$FF00,d5
  347.     beq.s    lxidx
  348.     jrd0
  349.  
  350. lxid    gwpc    sDE            ;11 LD DE,nnnn
  351. lxidx    jmp    (return)
  352.  
  353. staxd    move.w    sDE,d5            ;12 LD (DE),A
  354.     move.b    sA,0(a4,d5.w)
  355.     bsr    testvideoram
  356.     jmp    (return)
  357.  
  358. inxd    addq.w    #1,sDE            ;13 INC DE
  359.     jmp    (return)
  360.  
  361. inrd    rol.w    #8,sDE            ;14 INC D
  362.     addq.b    #$1,sDE
  363.     inrflag
  364.     rol.w    #8,sDE
  365.     jmp    (return)
  366.  
  367. dcrd    rol.w    #8,sDE            ;15 DEC D
  368.     subq.b    #1,sDE
  369.     inrflag
  370.     rol.w    #8,sDE
  371.     jmp    (return)
  372.  
  373. mvid    rol.w    #8,sDE            ;16 LD D,nn
  374.     move.b    0(sPCA,sPC.w),sDE
  375.     addq.w    #1,sPC
  376.     rol.w    #8,sDE
  377.     jmp    (return)
  378.  
  379. ral    roxr.b    #1,sF            ;17 RLA
  380.     roxl.b    #1,sA
  381.     roxl.b    #1,sF
  382.     jmp    (return)
  383.  
  384. jr    gbpc                ;18 JR dd
  385.     jrd0
  386.  
  387. dadd    add.w    sDE,sHL         ;19 ADD HL,DE
  388.     docyf
  389.  
  390. ldaxd    move.w    sDE,d5            ;1A LD A,(DE)
  391.     bsr    gbyte
  392.     move.b    d6,sA
  393.     jmp    (return)
  394.  
  395. dcxd    subq.w    #1,sDE            ;1B DEC DE
  396.     jmp    (return)
  397.  
  398. inre    addq.b    #1,sDE            ;1C INC E
  399.     inrflag
  400.     jmp    (return)
  401.  
  402. dcre    subq.b    #1,sDE            ;1D DEC E
  403.     inrflag
  404.     jmp    (return)
  405.  
  406. mvie    move.b    0(sPCA,sPC.w),sDE    ;1E LD E,nn
  407.     addq.w    #1,sPC
  408.     jmp    (return)
  409.  
  410. rar    roxr.b    #1,sF            ;1F RRA
  411.     roxr.b    #1,sA
  412.     roxl.b    #1,sF
  413.     jmp    (return)
  414.  
  415. jrnz    gbpc                ;20 JR NZ,dd
  416.     btst    #6,sF
  417.     bne.s    lxihx
  418.     jrd0
  419.  
  420. lxih    gwpc    sHL            ;21 LD HL,nnnn
  421. lxihx    jmp    (return)
  422.  
  423. shld    gwpc    d5            ;22 LD (nnnn),HL
  424.     move.w    sHL,d6
  425.     bsr    wword
  426.     jmp    (return)
  427.  
  428. inxh    addq.w    #1,sHL            ;23 INC HL
  429.     jmp    (return)
  430.  
  431. inrh    rol.w    #8,sHL            ;24 INC H
  432.     addq.b    #1,sHL
  433.     inrflag
  434.     rol.w    #8,sHL
  435.     jmp    (return)
  436.  
  437. dcrh    rol.w    #8,sHL            ;25 DEC H
  438.     subq.b    #1,sHL
  439.     inrflag
  440.     rol.w    #8,sHL
  441.     jmp    (return)
  442.  
  443. mvih    rol.w    #8,sHL            ;26 LD H,nn
  444.     move.b    0(sPCA,sPC.w),sHL
  445.     addq.w    #1,sPC
  446.     rol.w    #8,sHL
  447.     jmp    (return)
  448.  
  449.  ; This is my favourite bug. Try
  450.  ; 10 WHILE 1=1
  451.  ; 20 PRINT PI;
  452.  ; 30 WEND
  453.  ; See what happens.
  454.  ; The problem: We have no half-carry on the 68000, because it has commands
  455.  ; like ABCD and SBCD. This makes it difficult to emulate this flag.
  456.  ; In the SimCPM code, the operands as well as the flag register of the
  457.  ; previous ADD/SUB instruction were saved in daaop?. I didn't change this,
  458.  ; but this lead to the strange problem mentioned above. The cause:
  459.  ; Interrupts. So, I now have set up a small extra stack for the daaop?
  460.  ; variables, which get saved on every PUSH/POP AX. An ugly kluge, I agree.
  461.  ; That's why you're reading the source, to FIX IT IMMEDIATELY (I hope :-)
  462.  
  463. daa    move.b    daaop2,sA        ;27 DAA       FIXME!!!!
  464.     move.b    daaop1,d6
  465.     move.b    daaop3,d5
  466.     tst.b    d5
  467.     beq    daa_nocarry
  468.     cmp.b    #1,d5
  469.     bne    daa_minus
  470.     move    #4,ccr
  471.     abcd    d5,sA
  472.     setflag SETONLY
  473. daa_op2:
  474.     move.b    sF,-(sp)
  475.     move    #4,ccr
  476.     abcd    d6,sA
  477.     setflag SETONLY
  478.     move.b    (sp)+,d5
  479.     and.b    #1,d5
  480.     or.b    d5,sF        ; quite a complicated mechanism to get the
  481.     jmp    (return)    ; carry flag
  482.  
  483. daa_minus:
  484.     moveq    #1,d5
  485.     move    #4,ccr
  486.     sbcd    d5,sA
  487.     setflag SETONLY
  488.     bra    daa_op2
  489.  
  490. daa_nocarry:
  491.     move    #4,ccr
  492.     abcd    d6,sA
  493.     setflag
  494.  
  495. jrz    gbpc                ;28 JR Z,dd
  496.     btst    #6,sF
  497.     beq.s    lhldx
  498.     jrd0
  499.  
  500. dadh    add.w    sHL,sHL         ;29 ADD HL,HL
  501.     docyf
  502.  
  503. lhld    gwpc    d5            ;2A LD HL,(nnnn)
  504.     bsr    gword
  505.     move.w    d6,sHL
  506. lhldx    jmp    (return)
  507.  
  508. dcxh    subq.w    #1,sHL            ;2B DEC HL
  509.     jmp    (return)
  510.  
  511. inrl    addq.b    #1,sHL            ;2C INC L
  512.     inrflag
  513.     jmp    (return)
  514.  
  515. dcrl    subq.b    #1,sHL            ;2D DEC L
  516.     inrflag
  517.     jmp    (return)
  518.  
  519. mvil    move.b    0(sPCA,sPC.w),sHL      ;2E LD L,nn
  520.     addq.w    #1,sPC
  521.     jmp    (return)
  522.  
  523. cma    not.b    sA            ;2F CPL
  524.     jmp    (return)
  525.  
  526. jrnc    gbpc                ;30 JR NC,dd
  527.     btst    #0,sF
  528.     bne.s    lxisx
  529.     jrd0
  530.  
  531. lxis    gwpc    d6            ;31 LD SP,nnnn
  532.     move.w    d6,stack
  533.     move.l    #daastmid,daasp
  534. lxisx    jmp    (return)
  535.  
  536. sta    gwpc    d5            ;32 LD (nnnn),A
  537.     move.b    sA,d6
  538.     bsr    wbyte
  539.     jmp    (return)
  540.  
  541. inxs    addq.w    #1,stack        ;33 INC SP
  542.     subq.l    #2,daasp
  543.     jmp    (return)
  544.  
  545. inrm    gbhl    d6            ;34 INC (HL)
  546.     addq.b    #1,d6
  547.     inrflag
  548.     move.w    sHL,d5
  549.     bsr    wbyte
  550.     jmp    (return)
  551.  
  552. dcrm    gbhl    d6            ;35 DEC (HL)
  553.     subq.b    #1,d6
  554.     inrflag
  555.     move.w    sHL,d5
  556.     bsr    wbyte
  557.     jmp    (return)
  558.  
  559. mvim    gbpc                ;36 LD (HL),nn
  560.     move.w    sHL,d5
  561.     bsr    wbyte
  562.     jmp    (return)
  563.  
  564. stc    bset    #0,sF            ;37 SCF
  565.     jmp    (return)
  566.  
  567. jrc    gbpc                ;38 JR C,dd
  568.     btst    #0,sF
  569.     beq.s    ldax
  570.     jrd0
  571.  
  572. dads    add.w    stack,sHL        ;39 ADD HL,SP
  573.     docyf
  574.  
  575. lda    gwpc    d5            ;3A LD A,(nnnn)
  576.     bsr    gbyte
  577.     move.b    d6,sA
  578. ldax    jmp    (return)
  579.  
  580. dcxs    subq.w    #1,stack        ;3B DEC SP
  581.     addq.l    #2,daasp
  582.     jmp    (return)
  583.  
  584. inra    addq.b    #1,sA            ;3C INC A
  585.     inrflag
  586.     jmp    (return)
  587.  
  588. dcra    subq.b    #1,sA            ;3D DEC A
  589.     inrflag
  590.     jmp    (return)
  591.  
  592. mvia    move.b    0(sPCA,sPC.w),sA    ;3E LD A,nn
  593.     addq.w    #1,sPC
  594.     jmp    (return)
  595.  
  596. cmc    bchg    #0,sF            ;3F CCF
  597.     jmp    (return)
  598.  
  599. movebb    jmp    (return)        ;40 LD B,B
  600.  
  601. movebc    move.w    sBC,d5            ;41 LD B,C
  602.     rol.w    #8,sBC
  603.     move.b    d5,sBC
  604.     jmp    (return)
  605.  
  606. movebd    move.w    sDE,d5            ;42 LD B,D
  607.     move.b    sBC,d5
  608.     move.w    d5,sBC
  609.     jmp    (return)
  610.  
  611. movebe    move.w    sDE,d5            ;43 LD B,E
  612.     rol.w    #8,d5
  613.     move.b    sBC,d5
  614.     move.w    d5,sBC
  615.     jmp    (return)
  616.  
  617. movebh    move.w    sHL,d5            ;44 LD B,H
  618.     move.b    sBC,d5
  619.     move.w    d5,sBC
  620.     jmp    (return)
  621.  
  622. movebl    rol.w    #8,sBC            ;45 LD B,L
  623.     move.b    sHL,sBC
  624.     rol.w    #8,sBC
  625.     jmp    (return)
  626.  
  627. movebm    rol.w    #8,sBC            ;46 LD B,(HL)
  628.     gbhl    sBC
  629.     rol.w    #8,sBC
  630.     jmp    (return)
  631.  
  632. moveba    rol.w    #8,sBC            ;47 LD B,A
  633.     move.b    sA,sBC
  634.     rol.w    #8,sBC
  635.     jmp    (return)
  636.  
  637. movecb    move.w    sBC,d5            ;48 LD C,B
  638.     rol.w    #8,d5
  639.     move.b    d5,sBC
  640.     jmp    (return)
  641.  
  642. movecc    jmp    (return)        ;49 LD C,C
  643.  
  644. movecd    move.w    sDE,d5            ;4A LD C,D
  645.     rol.w    #8,d5
  646.     move.b    d5,sBC
  647.     jmp    (return)
  648.  
  649. movece    move.b    sDE,sBC         ;4B LD C,E
  650.     jmp    (return)
  651.  
  652. movech    move.w    sHL,d5            ;4C LD C,H
  653.     rol.w    #8,d5
  654.     move.b    d5,sBC
  655.     jmp    (return)
  656.  
  657. movecl    move.b    sHL,sBC         ;4D LD C,L
  658.     jmp    (return)
  659.  
  660. movecm    gbhl    sBC            ;4E LD C,(HL)
  661.     jmp    (return)
  662.  
  663. moveca    move.b    sA,sBC            ;4F LD C,A
  664.     jmp    (return)
  665.  
  666. movedb    move.w    sBC,d5            ;50 LD D,B
  667.     move.b    sDE,d5
  668.     move.w    d5,sDE
  669.     jmp    (return)
  670.  
  671. movedc    rol.w    #8,sDE            ;51 LD D,C
  672.     move.b    sBC,sDE
  673.     rol.w    #8,sDE
  674.     jmp    (return)
  675.  
  676. movedd    jmp    (return)        ;52 LD D,D
  677.  
  678. movede    move.b    sDE,d5            ;53 LD D,E
  679.     rol.w    #8,sDE
  680.     move.b    d5,sDE
  681.     jmp    (return)
  682.  
  683. movedh    move.w    sHL,d5            ;54 LD D,H
  684.     move.b    sDE,d5
  685.     move.w    d5,sDE
  686.     jmp    (return)
  687.  
  688. movedl    rol.w    #8,sDE            ;55 LD D,L
  689.     move.b    sHL,sDE
  690.     rol.w    #8,sDE
  691.     jmp    (return)
  692.  
  693. movedm    rol.w    #8,sDE            ;56 LD D,(HL)
  694.     gbhl    sDE
  695.     rol.w    #8,sDE
  696.     jmp    (return)
  697.  
  698. moveda    rol.w    #8,sDE            ;57 LD D,A
  699.     move.b    sA,sDE
  700.     rol.w    #8,sDE
  701.     jmp    (return)
  702.  
  703. moveeb    move.w    sBC,d5            ;58 LD E,B
  704.     rol.w    #8,d5
  705.     move.b    d5,sDE
  706.     jmp    (return)
  707.  
  708. moveec    move.b    sBC,sDE         ;59 LD E,C
  709.     jmp    (return)
  710.  
  711. moveed    move.w    sDE,d5            ;5A LD E,D
  712.     rol.w    #8,d5
  713.     move.b    d5,sDE
  714.     jmp    (return)
  715.  
  716. moveee    move.b    sDE,sDE         ;5B LD E,E
  717.     jmp    (return)
  718.  
  719. moveeh    move.w    sHL,d5            ;5C LD E,H
  720.     rol.w    #8,d5
  721.     move.b    d5,sDE
  722.     jmp    (return)
  723.  
  724. moveel    move.b    sHL,sDE         ;5D LD E,L
  725.     jmp    (return)
  726.  
  727. moveem    gbhl    sDE            ;5E LD E,(HL)
  728.     jmp    (return)
  729.  
  730. moveea    move.b    sA,sDE            ;5F LD E,A
  731.     jmp    (return)
  732.  
  733. movehb    move.w    sBC,d5            ;60 LD H,B
  734.     move.b    sHL,d5
  735.     move.w    d5,sHL
  736.     jmp    (return)
  737.  
  738. movehc    rol.w    #8,sHL            ;61 LD H,C
  739.     move.b    sBC,sHL
  740.     rol.w    #8,sHL
  741.     jmp    (return)
  742.  
  743. movehd    move.w    sDE,d5            ;62 LD H,D
  744.     move.b    sHL,d5
  745.     move.w    d5,sHL
  746.     jmp    (return)
  747.  
  748. movehe    rol.w    #8,sHL            ;63 LD H,E
  749.     move.b    sDE,sHL
  750.     rol.w    #8,sHL
  751.     jmp    (return)
  752.  
  753. movehh    jmp    (return)        ;64 LD H,H
  754.  
  755. movehl    move.w    sHL,d5            ;65 LD H,L
  756.     rol.w    #8,sHL
  757.     move.b    d5,sHL
  758.     jmp    (return)
  759.  
  760. movehm    gbhl    d6            ;66 LD H,(HL)
  761.     rol.w    #8,sHL
  762.     move.b    d6,sHL
  763.     rol.w    #8,sHL
  764.     jmp    (return)
  765.  
  766. moveha    rol.w    #8,sHL            ;67 LD H,A
  767.     move.b    sA,sHL
  768.     rol.w    #8,sHL
  769.     jmp    (return)
  770.  
  771. movelb    move.w    sBC,d5            ;68 LD L,B
  772.     rol.w    #8,d5
  773.     move.b    d5,sHL
  774.     jmp    (return)
  775.  
  776. movelc    move.b    sBC,sHL         ;69 LD L,C
  777.     jmp    (return)
  778.  
  779. moveld    move.w    sDE,d5            ;6A LD L,D
  780.     rol.w    #8,d5
  781.     move.b    d5,sHL
  782.     jmp    (return)
  783.  
  784. movele    move.b    sDE,sHL         ;6B LD L,E
  785.     jmp    (return)
  786.  
  787. movelh    move.w    sHL,d5            ;6C LD L,H
  788.     rol.w    #8,d5
  789.     move.b    d5,sHL
  790.     jmp    (return)
  791.  
  792. movell    move.b    sHL,sHL         ;6D LD L,L
  793.     jmp    (return)
  794.  
  795. movelm    gbhl    sHL            ;6E LD L,(HL)
  796.     jmp    (return)
  797.  
  798. movela    move.b    sA,sHL            ;6F LD L,A
  799.     jmp    (return)
  800.  
  801. movemb    move.w    sHL,d5            ;70 LD (HL),B
  802.     move.w    sBC,d6
  803.     rol.w    #8,d6
  804.     bsr    wbyte
  805.     jmp    (return)
  806.  
  807. movemc    move.w    sHL,d5            ;71 LD (HL),C
  808.     move.b    sBC,d6
  809.     bsr    wbyte
  810.     jmp    (return)
  811.  
  812. movemd    move.w    sHL,d5            ;72 LD (HL),D
  813.     move.w    sDE,d6
  814.     rol.w    #8,d6
  815.     bsr    wbyte
  816.     jmp    (return)
  817.  
  818. moveme    move.w    sHL,d5            ;73 LD (HL),E
  819.     move.b    sDE,d6
  820.     bsr    wbyte
  821.     jmp    (return)
  822.  
  823. movemh    move.w    sHL,d5            ;74 LD (HL),H
  824.     move.w    sHL,d6
  825.     rol.w    #8,d6
  826.     bsr    wbyte
  827.     jmp    (return)
  828.  
  829. moveml    move.w    sHL,d5            ;75 LD (HL),L
  830.     move.b    sHL,d6
  831.     bsr    wbyte
  832.     jmp    (return)
  833.  
  834. halt    jsr    service         ;76 HALT
  835.     jmp    (return)
  836.  
  837. movema    move.w    sHL,d5            ;77 LD (HL),A
  838.     move.b    sA,d6
  839.     bsr    wbyte
  840.     jmp    (return)
  841.  
  842. moveab    move.w    sBC,d5            ;78 LD A,B
  843.     rol.w    #8,d5
  844.     move.b    d5,sA
  845.     jmp    (return)
  846.  
  847. moveac    move.b    sBC,sA            ;79 LD A,C
  848.     jmp    (return)
  849.  
  850. movead    move.w    sDE,d5            ;7A LD A,D
  851.     rol.w    #8,d5
  852.     move.b    d5,sA
  853.     jmp    (return)
  854.  
  855. moveae    move.b    sDE,sA            ;7B LD A,E
  856.     jmp    (return)
  857.  
  858. moveah    move.w    sHL,d5            ;7C LD A,H
  859.     rol.w    #8,d5
  860.     move.b    d5,sA
  861.     jmp    (return)
  862.  
  863. moveal    move.b    sHL,sA            ;7D LD A,L
  864.     jmp    (return)
  865.  
  866. moveam    gbhl    sA            ;7E LD A,(HL)
  867.     jmp    (return)
  868.  
  869. moveaa    jmp    (return)        ;7F LD A,A
  870.  
  871. addb    move.w    sBC,d6            ;80 ADD A,B
  872.     rol.w    #8,d6
  873.     addflag
  874.  
  875. addc    move.b    sBC,daaop1        ;81 ADD A,C
  876.     move.b    sA,daaop2
  877.     clr.b    daaop3
  878.     add.b    sBC,sA
  879.     setflag
  880.  
  881. addd    move.w    sDE,d6            ;82 ADD A,D
  882.     rol.w    #8,d6
  883.     addflag
  884.  
  885. adde    move.b    sDE,daaop1        ;83 ADD A,E
  886.     move.b    sA,daaop2
  887.     clr.b    daaop3
  888.     add.b    sDE,sA
  889.     setflag
  890.  
  891. addh    move.w    sHL,d6            ;84 ADD A,H
  892.     rol.w    #8,d6
  893.     addflag
  894.  
  895. addl    move.b    sHL,daaop1        ;85 ADD A,L
  896.     move.b    sA,daaop2
  897.     clr.b    daaop3
  898.     add.b    sHL,sA
  899.     setflag
  900.  
  901. addm    gbhl    d6            ;86 ADD A,(HL)
  902.     addflag
  903.  
  904. adda    move.b    sA,daaop1        ;87 ADD A,A
  905.     move.b    sA,daaop2
  906.     clr.b    daaop3
  907.     add.b    sA,sA
  908.     setflag
  909.  
  910. adcb    move.w    sBC,d6            ;88 ADC A,B
  911.     rol.w    #8,d6
  912.     adcflag
  913.  
  914. adcc    move.b    sBC,d6            ;89 ADC A,C
  915.     adcflag
  916.  
  917. adcd    move.w    sDE,d6            ;8A ADC A,D
  918.     rol.w    #8,d6
  919.     adcflag
  920.  
  921. adce    move.b    sDE,d6            ;8B ADC A,E
  922.     adcflag
  923.  
  924. adch    move.w    sHL,d6            ;8C ADC A,H
  925.     rol.w    #8,d6
  926.     adcflag
  927.  
  928. adcl    move.b    sHL,d6            ;8D ADC A,L
  929.     adcflag
  930.  
  931. adcm    gbhl    d6            ;8E ADC A,(HL)
  932.     adcflag
  933.  
  934. adca    move.b    sA,d6            ;8F ADC A,A
  935.     adcflag
  936.  
  937. subb    move.w    sBC,d5            ;90 SUB A,B
  938.     rol.w    #8,d5
  939.     move.b    d5,d6
  940.     nbcd    d6
  941.     move.b    d6,daaop1
  942.     move.b    sA,daaop2
  943.     clr.b    daaop3
  944.     sub.b    d5,sA
  945.     setflag
  946.  
  947. subc    move.b    sBC,d6            ;91 SUB A,C
  948.     nbcd    d6
  949.     move.b    d6,daaop1
  950.     move.b    sA,daaop2
  951.     clr.b    daaop3
  952.     sub.b    sBC,sA
  953.     setflag
  954.  
  955. subd    move.w    sDE,d5            ;92 SUB A,D
  956.     rol.w    #8,d5
  957.     move.b    d5,d6
  958.     nbcd    d6
  959.     move.b    d6,daaop1
  960.     move.b    sA,daaop2
  961.     clr.b    daaop3
  962.     sub.b    d5,sA
  963.     setflag
  964.  
  965. sube    move.b    sDE,d6            ;93 SUB A,E
  966.     nbcd    d6
  967.     move.b    d6,daaop1
  968.     move.b    sA,daaop2
  969.     clr.b    daaop3
  970.     sub.b    sDE,sA
  971.     setflag
  972.  
  973. subh    move.w    sHL,d5            ;94 SUB A,H
  974.     rol.w    #8,d5
  975.     move.b    d5,d6
  976.     nbcd    d6
  977.     move.b    d6,daaop1
  978.     move.b    sA,daaop2
  979.     clr.b    daaop3
  980.     sub.b    d5,sA
  981.     setflag
  982.  
  983. subl    move.b    sHL,d6            ;95 SUB A,L
  984.     nbcd    d6
  985.     move.b    d6,daaop1
  986.     move.b    sA,daaop2
  987.     clr.b    daaop3
  988.     sub.b    sHL,sA
  989.     setflag
  990.  
  991. subm    gbhl    d6            ;96 SUB A,(HL)
  992.     move.b    d6,d5
  993.     nbcd    d6
  994.     move.b    d6,daaop1
  995.     move.b    sA,daaop2
  996.     clr.b    daaop3
  997.     sub.b    d5,sA
  998.     setflag
  999.  
  1000. suba    move.b    sA,daaop2        ;97 SUB A,A
  1001.     move.b    sA,d6
  1002.     nbcd    d6
  1003.     move.b    d6,daaop1
  1004.     clr.b    daaop3
  1005.     sub.b    sA,sA
  1006.     setflag
  1007.  
  1008. sbbb    move.w    sBC,d5            ;98 SBC A,B
  1009.     rol.w    #8,d5
  1010.     move.b    d5,d6
  1011.     nbcd    d6
  1012.     sbbflag
  1013.  
  1014. sbbc    move.b    sBC,d5            ;99 SBC A,C
  1015.     move.b    d5,d6
  1016.     nbcd    d6
  1017.     sbbflag
  1018.  
  1019. sbbd    move.w    sDE,d5            ;9A SBC A,D
  1020.     rol.w    #8,d5
  1021.     move.b    d5,d6
  1022.     nbcd    d6
  1023.     sbbflag
  1024.  
  1025. sbbe    move.b    sDE,d5            ;9B SBC A,E
  1026.     move.b    d5,d6
  1027.     nbcd    d6
  1028.     sbbflag
  1029.  
  1030. sbbh    move.w    sHL,d5            ;9C SBC A,H
  1031.     rol.w    #8,d5
  1032.     move.b    d5,d6
  1033.     nbcd    d6
  1034.     sbbflag
  1035.  
  1036. sbbl    move.b    sHL,d5            ;9D SBC A,L
  1037.     move.b    d5,d6
  1038.     nbcd    d6
  1039.     sbbflag
  1040.  
  1041. sbbm    gbhl    d6            ;9E SBC A,(HL)
  1042.     move.b    d6,d5
  1043.     nbcd    d6
  1044.     sbbflag
  1045.  
  1046. sbba    move.b    sA,d5            ;9F SBC A,A
  1047.     move.b    d5,d6
  1048.     nbcd    d6
  1049.     sbbflag
  1050.  
  1051. andb    move.w    sBC,d5            ;A0 AND A,B
  1052.     rol.w    #8,d5
  1053.     and.b    d5,sA
  1054.     move.b    16(flagptr,sA.w),sF
  1055.     jmp    (return)
  1056.  
  1057. andc    and.b    sBC,sA            ;A1 AND A,C
  1058.     move.b    16(flagptr,sA.w),sF
  1059.     jmp    (return)
  1060.  
  1061. andd    move.w    sDE,d5            ;A2 AND A,D
  1062.     rol.w    #8,d5
  1063.     and.b    d5,sA
  1064.     move.b    16(flagptr,sA.w),sF
  1065.     jmp    (return)
  1066.  
  1067. ande    and.b    sDE,sA            ;A3 AND A,E
  1068.     move.b    16(flagptr,sA.w),sF
  1069.     jmp    (return)
  1070.  
  1071. andh    move.w    sHL,d5            ;A4 AND A,H
  1072.     rol.w    #8,d5
  1073.     and.b    d5,sA
  1074.     move.b    16(flagptr,sA.w),sF
  1075.     jmp    (return)
  1076.  
  1077. andl    and.b    sHL,sA            ;A5 AND A,L
  1078.     move.b    16(flagptr,sA.w),sF
  1079.     jmp    (return)
  1080.  
  1081. andm    gbhl    d6            ;A6 AND A,(HL)
  1082.     and.b    d6,sA
  1083.     move.b    16(flagptr,sA.w),sF
  1084.     jmp    (return)
  1085.  
  1086. anda    and.b    sA,sA
  1087.     move.b    16(flagptr,sA.w),sF    ;A7 AND A,A
  1088.     jmp    (return)
  1089.  
  1090. xrab    move.w    sBC,d5            ;A8 XOR A,B
  1091.     rol.w    #8,d5
  1092.     eor.b    d5,sA
  1093.     move.b    16(flagptr,sA.w),sF
  1094.     jmp    (return)
  1095.  
  1096. xrac    eor.b    sBC,sA            ;A9 XOR A,C
  1097.     move.b    16(flagptr,sA.w),sF
  1098.     jmp    (return)
  1099.  
  1100. xrad    move.w    sDE,d5            ;AA XOR A,D
  1101.     rol.w    #8,d5
  1102.     eor.b    d5,sA
  1103.     move.b    16(flagptr,sA.w),sF
  1104.     jmp    (return)
  1105.  
  1106. xrae    eor.b    sDE,sA            ;AB XOR A,E
  1107.     move.b    16(flagptr,sA.w),sF
  1108.     jmp    (return)
  1109.  
  1110. xrah    move.w    sHL,d5            ;AC XOR A,H
  1111.     rol.w    #8,d5
  1112.     eor.b    d5,sA
  1113.     move.b    16(flagptr,sA.w),sF
  1114.     jmp    (return)
  1115.  
  1116. xral    eor.b    sHL,sA            ;AD XOR A,L
  1117.     move.b    16(flagptr,sA.w),sF
  1118.     jmp    (return)
  1119.  
  1120. xram    gbhl    d6            ;AE XOR A,(HL)
  1121.     eor.b    d6,sA
  1122.     move.b    16(flagptr,sA.w),sF
  1123.     jmp    (return)
  1124.  
  1125. xraa    eor.w    sA,sA            ;AF XOR A,A
  1126.     move.b    16(flagptr),sF
  1127.     jmp    (return)
  1128.  
  1129. orab    move.w    sBC,d5            ;B0 OR A,B
  1130.     rol.w    #8,d5
  1131.     or.b    d5,sA
  1132.     move.b    sA,daaop1
  1133.     clr.b    daaop2
  1134.     clr.b    daaop3
  1135.     move.b    16(flagptr,sA.w),sF
  1136.     jmp    (return)
  1137.  
  1138. orac    or.b    sBC,sA            ;B1 OR A,C
  1139.     move.b    sA,daaop1
  1140.     clr.b    daaop2
  1141.     clr.b    daaop3
  1142.     move.b    16(flagptr,sA.w),sF
  1143.     jmp    (return)
  1144.  
  1145. orad    move.w    sDE,d5            ;B2 OR A,D
  1146.     rol.w    #8,d5
  1147.     or.b    d5,sA
  1148.     move.b    sA,daaop1
  1149.     clr.b    daaop2
  1150.     clr.b    daaop3
  1151.     move.b    16(flagptr,sA.w),sF
  1152.     jmp    (return)
  1153.  
  1154. orae    or.b    sDE,sA            ;B3 OR A,E
  1155.     move.b    sA,daaop1
  1156.     clr.b    daaop2
  1157.     clr.b    daaop3
  1158.     move.b    16(flagptr,sA.w),sF
  1159.     jmp    (return)
  1160.  
  1161. orah    move.w    sHL,d5            ;B4 OR A,H
  1162.     rol.w    #8,d5
  1163.     or.b    d5,sA
  1164.     move.b    sA,daaop1
  1165.     clr.b    daaop2
  1166.     clr.b    daaop3
  1167.     move.b    16(flagptr,sA.w),sF
  1168.     jmp    (return)
  1169.  
  1170. oral    or.b    sHL,sA            ;B5 OR A,L
  1171.     move.b    sA,daaop1
  1172.     clr.b    daaop2
  1173.     clr.b    daaop3
  1174.     move.b    16(flagptr,sA.w),sF
  1175.     jmp    (return)
  1176.  
  1177. oram    gbhl    d6            ;B6 OR A,(HL)
  1178.     or.b    d6,sA
  1179.     move.b    sA,daaop1
  1180.     clr.b    daaop2
  1181.     clr.b    daaop3
  1182.     move.b    16(flagptr,sA.w),sF
  1183.     jmp    (return)
  1184.  
  1185. oraa    or.b    sA,sA
  1186.     move.b    sA,daaop1
  1187.     clr.b    daaop2
  1188.     clr.b    daaop3
  1189.     move.b    16(flagptr,sA.w),sF    ;B7 OR A,A
  1190.     jmp    (return)
  1191.  
  1192. cmpb    move.w    sBC,d5            ;B8 CP B
  1193.     rol.w    #8,d5
  1194.     cmp.b    d5,sA
  1195.     setflag
  1196.  
  1197. cmpc    cmp.b    sBC,sA            ;B9 CP C
  1198.     setflag
  1199.  
  1200. cmpd    move.w    sDE,d5            ;BA CP D
  1201.     rol.w    #8,d5
  1202.     cmp.b    d5,sA
  1203.     setflag
  1204.  
  1205. cmpe    cmp.b    sDE,sA            ;BB CP E
  1206.     setflag
  1207.  
  1208. cmph    move.w    sHL,d5            ;BC CP H
  1209.     rol.w    #8,d5
  1210.     cmp.b    d5,sA
  1211.     setflag
  1212.  
  1213. cmpl    cmp.b    sHL,sA            ;BD CP L
  1214.     setflag
  1215.  
  1216. cmpam    gbhl    d6            ;BE CP (HL)
  1217.     cmp.b    d6,sA
  1218.     setflag
  1219.  
  1220. cmpaa    cmp.b    sA,sA            ;BF CP A
  1221.     setflag
  1222.  
  1223. rnz    btst    #6,sF            ;C0 RET NZ
  1224.     bne.s    popbx
  1225.     ret80
  1226.  
  1227. popb    move.w    stack,d5        ;C1 POP BC
  1228.     bsr    gword
  1229.     addq.w    #2,stack
  1230.     move.w    d6,sBC
  1231.     subq.l    #4,daasp
  1232. popbx    jmp    (return)
  1233.  
  1234. jnz    gwpc    d6            ;C2 JP NZ,addr
  1235.     btst    #6,sF
  1236.     bne.s    jnzx
  1237.     move.w    d6,sPC
  1238.     bsr    calcpca
  1239. jnzx    jmp    (return)
  1240.  
  1241. jmpa    gwpc    d6            ;C3 JP addr
  1242.     move.w    d6,sPC
  1243.     bsr    calcpca
  1244.     jmp    (return)
  1245.  
  1246. cnz    gwpc    d6            ;C4 CALL NZ,addr
  1247.     btst    #6,sF
  1248.     bne.s    jnzx
  1249.     call80
  1250.  
  1251. pushb    move.w    stack,d5        ;C5 PUSH BC
  1252.     subq.w    #2,d5
  1253.     move.w    d5,stack
  1254.     move.w    sBC,d6
  1255.     bsr    wword
  1256.     addq.l    #4,daasp
  1257.     jmp    (return)
  1258.  
  1259. adi    gbpc                ;C6 ADD A,nn
  1260.     addflag
  1261.  
  1262. rst0    rst80    $0            ;C7 RST 0
  1263.  
  1264. rz    btst    #6,sF            ;C8 RET Z
  1265.     beq.s    jzx
  1266. ret    ret80                ;C9 RET
  1267.  
  1268. jz    gwpc    d6            ;CA JP Z,addr
  1269.     btst    #6,sF
  1270.     beq.s    jzx
  1271.     move.w    d6,sPC
  1272.     bsr    calcpca
  1273. jzx    jmp    (return)
  1274.  
  1275. cz    gwpc    d6            ;CC CALL Z,addr
  1276.     btst    #6,sF
  1277.     beq.s    jzx
  1278.     call80
  1279.  
  1280. call    gwpc    d6            ;CD CALL addr
  1281.     call80
  1282.  
  1283. aci    gbpc                ;CE ADC A,nn
  1284.     adcflag
  1285.  
  1286. rst1    rst80    $8            ;CF RST 1
  1287.  
  1288. rnc    btst    #0,sF            ;D0 RET NC
  1289.     bne.s    jncx
  1290.     ret80
  1291.  
  1292. popd    move.w    stack,d5        ;D1 POP DE
  1293.     bsr    gword
  1294.     move.w    d6,sDE
  1295.     addq.w    #2,stack
  1296.     subq.l    #4,daasp
  1297.     jmp    (return)
  1298.  
  1299. jnc    gwpc    d6            ;D2 JP NC,addr
  1300.     btst    #0,sF
  1301.     bne.s    jncx
  1302.     move.w    d6,sPC
  1303.     bsr    calcpca
  1304. jncx    jmp    (return)
  1305.  
  1306. out    gbpc                ;D3 OUT (nn),A
  1307.     move.b    d6,d5
  1308.     move.b    sA,d6
  1309.     jsr    outp
  1310.     jmp    (return)
  1311.  
  1312. cnc    gwpc    d6            ;D4 CALL NC,addr
  1313.     btst    #0,sF
  1314.     bne.s    jncx
  1315.     call80
  1316.  
  1317. pushd    move.w    stack,d5        ;D5 PUSH DE
  1318.     subq.w    #2,d5
  1319.     move.w    d5,stack
  1320.     move.w    sDE,d6
  1321.     bsr    wword
  1322.     addq.l    #4,daasp
  1323.     jmp    (return)
  1324.  
  1325. sui    gbpc                ;D6 SUB A,nn
  1326.     move.b    d6,d5
  1327.     nbcd    d6
  1328.     move.b    d6,daaop1
  1329.     move.b    sA,daaop2
  1330.     clr.b    daaop3
  1331.     sub.b    d5,sA
  1332.     setflag
  1333.  
  1334. rst2    rst80    $10            ;D7 RST 2
  1335.  
  1336. rc    btst    #0,sF            ;D8 RET C
  1337.     beq.s    jcx
  1338.     ret80
  1339.  
  1340. exx    swap    sBC            ;D9 EXX
  1341.     swap    sHL
  1342.     swap    sDE
  1343.     jmp    (return)
  1344.  
  1345. jc    gwpc    d6            ;DA JP C,addr
  1346.     btst    #0,sF
  1347.     beq.s    jcx
  1348.     move.w    d6,sPC
  1349.     bsr    calcpca
  1350. jcx    jmp    (return)
  1351.  
  1352. in    gbpc                ;DB IN A,(nn)
  1353.     move.b    d6,d5
  1354.     jsr    inp
  1355.     move.b    d6,sA
  1356.     jmp    (return)
  1357.  
  1358. cc    gwpc    d6            ;DC CALL C,addr
  1359.     btst    #0,sF
  1360.     beq    jpox
  1361.     call80
  1362.  
  1363. sbi    gbpc                ;DE SBC A,nn
  1364.     move.b    d6,d5
  1365.     nbcd    d6
  1366.     sbbflag
  1367.  
  1368. rst3    rst80    $18            ;DF RST 3
  1369.  
  1370. rpo    btst    #2,sF            ;E0 RET PO
  1371.     bne.s    jpox
  1372.     ret80
  1373.  
  1374. poph    move.w    stack,d5        ;E1 POP HL
  1375.     bsr    gword
  1376.     move.w    d6,sHL
  1377.     addq.w    #2,stack
  1378.     subq.l    #4,daasp
  1379.     jmp    (return)
  1380.  
  1381. jpo    gwpc    d6            ;E2 JP PO,addr
  1382.     btst    #2,sF
  1383.     bne.s    jpox
  1384.     move.w    d6,sPC
  1385.     bsr    calcpca
  1386. jpox    jmp    (return)
  1387.  
  1388. xthl    move.w    stack,d5        ;E3 EX (SP),HL
  1389.     bsr    gword
  1390.     move.w    d6,-(sp)
  1391.     move.w    stack,d5
  1392.     move.w    sHL,d6
  1393.     bsr    wword
  1394.     move.w    (sp)+,sHL
  1395.     jmp    (return)
  1396.  
  1397. cpo    gwpc    d6            ;E4 CALL PO,addr
  1398.     btst    #2,sF
  1399.     bne.s    jpox
  1400.     call80
  1401.  
  1402. pushh    subq.w    #2,stack        ;E5 PUSH HL
  1403.     move.w    stack,d5
  1404.     move.w    sHL,d6
  1405.     bsr    wword
  1406.     addq.l    #4,daasp
  1407.     jmp    (return)
  1408.  
  1409. ani    gbpc                ;E6 AND nn
  1410.     and.b    d6,sA
  1411.     move.b    16(flagptr,sA.w),sF
  1412.     jmp    (return)
  1413.  
  1414. rst4    rst80    $20            ;E7 RST 4
  1415.  
  1416. rpe    btst    #2,sF            ;E8 RET PE
  1417.     beq.s    jpex
  1418.     ret80
  1419.  
  1420. pchl    move.w    sHL,sPC         ;E9 JP (HL)
  1421.     bsr    calcpca
  1422.     jmp    (return)
  1423.  
  1424. jpe    gwpc    d6            ;EA JP PE,addr
  1425.     btst    #2,sF
  1426.     beq.s    jpex
  1427.     move.w    d6,sPC
  1428.     bsr    calcpca
  1429. jpex    jmp    (return)
  1430.  
  1431. xchg    move.w    sHL,d6            ;EB EX DE,HL
  1432.     move.w    sDE,sHL         ;exg.w DOESN'T work!
  1433.     move.w    d6,sDE
  1434.     jmp    (return)
  1435.  
  1436. cpe    gwpc    d6            ;EC CALL PE,addr
  1437.     btst    #2,sF
  1438.     beq.s    jpex
  1439.     call80
  1440.  
  1441. xri    gbpc                ;EE XOR nn
  1442.     eor.b    d6,sA
  1443.     move.b    16(flagptr,sA.w),sF
  1444.     jmp    (return)
  1445.  
  1446. rst5    rst80    $28            ;EF RST 5
  1447.  
  1448. rp    btst    #7,sF            ;F0 RET P
  1449.     bne    jpx
  1450.     ret80
  1451.  
  1452.  ; Ugh! This is ugly. Read the comment for DAA as well.
  1453.  
  1454. popp    move.w    stack,d5        ;F1 POP AF
  1455.     bsr    gbyte
  1456.     move.b    d6,sF
  1457.     addq.w    #1,d5
  1458.     bsr    gbyte
  1459.     move.b    d6,sA
  1460.     addq.w    #2,stack
  1461.     move.l    daasp,a0
  1462.     move.l    -(a0),daaop1
  1463.     move.l    a0,daasp
  1464.     jmp    (return)
  1465.  
  1466. jp    gwpc    d6            ;F2 JP P,addr
  1467.     btst    #7,sF
  1468.     bne.s    jpx
  1469.     move.w    d6,sPC
  1470.     bsr    calcpca
  1471. jpx    jmp    (return)
  1472.  
  1473. di    clr.w    intena
  1474.     jmp    (return)        ;F3 DI
  1475.  
  1476. cp    gwpc    d6            ;F4 CALL P,addr
  1477.     btst    #7,sF
  1478.     bne.s    jpx
  1479.     call80
  1480.  
  1481.  ; Ugh! This is ugly. Read the comment for DAA as well.
  1482.  
  1483. pushp    move.w    stack,d5        ;F5 PUSH AF
  1484.     subq.w    #1,d5
  1485.     move.b    sA,d6
  1486.     bsr    wbyte
  1487.     subq.w    #2,stack
  1488.     move.w    stack,d5
  1489.     move.b    sF,d6
  1490.     bsr    wbyte
  1491.     move.l    daasp,a0
  1492.     cmp.l    #daastack,a0
  1493.     bcs    pushp_stackerr
  1494.     cmp.l    #daastackend,a0
  1495.     bcc    pushp_stackerr
  1496.     move.l    daaop1,(a0)+
  1497.     move.l    a0,daasp
  1498.     jmp    (return)
  1499. pushp_stackerr
  1500.     jmp    (return)
  1501.  
  1502. oria    gbpc                ;F6 OR nn
  1503.     or.b    d6,sA
  1504.     move.b    sA,daaop1
  1505.     clr.b    daaop2
  1506.     clr.b    daaop3
  1507.     move.b    16(flagptr,sA.w),sF
  1508.     jmp    (return)
  1509.  
  1510. rst6    rst80    $30            ;F7 RST 6
  1511.  
  1512. rm    btst    #7,sF            ;F8 RET M
  1513.     beq.s    jmx
  1514.     ret80
  1515.  
  1516. sphl    move.w    sHL,stack        ;F9 LD SP,HL
  1517.     move.l    #daastmid,daasp
  1518.     jmp    (return)
  1519.  
  1520. jm    gwpc    d6            ;FA JP M,addr
  1521.     btst    #7,sF
  1522.     beq.s    jmx
  1523.     move.w    d6,sPC
  1524.     bsr    calcpca
  1525. jmx    jmp    (return)
  1526.  
  1527. ei    move.w    #2,intena
  1528.     jmp    (return)        ;FB EI
  1529.  
  1530. cm    gwpc    d6            ;FC CALL M,addr
  1531.     btst    #7,sF
  1532.     beq.s    jmx
  1533.     call80
  1534.  
  1535. cpi    gbpc                ;FE CP nn
  1536.     cmp.b    d6,sA
  1537.     setflag
  1538.  
  1539. rst7    rst80    $38            ;FF RST 7
  1540.  
  1541. *************************************************************************
  1542. *                                    *
  1543. *    Z-80 opcode simulation routines                 *
  1544. *                                    *
  1545. *************************************************************************
  1546.  
  1547. preCB    gbpc
  1548.     addq.b    #2,sRF+1
  1549.     add.w    d6,d6
  1550.     add.w    d6,d6
  1551.     lea    CBoptab,a0
  1552.     move.l    0(a0,d6.w),a0
  1553.     jmp    (a0)
  1554.  
  1555. preDD    moveq    #0,d6
  1556.     gbpc
  1557.     addq.b    #2,sRF+1
  1558.     add.w    d6,d6
  1559.     add.w    d6,d6
  1560.     lea    DDoptab,a0
  1561.     move.l    0(a0,d6.w),a0
  1562.     jmp    (a0)
  1563.  
  1564. prDDCB    calcind ix
  1565. prDDCBs move.w    d5,-(sp)
  1566.     gbpc
  1567.     addq.b    #2,sRF+1
  1568.     move.b    d6,d5
  1569.     and.b    #7,d6
  1570.     cmp.b    #6,d6
  1571.     bne    ilgDDCB
  1572.     move.b    d5,d6
  1573.     lsr.b    #3,d6
  1574.     lsl.w    #2,d6
  1575.     lea    DDCBopt,a0
  1576.     move.w    (sp)+,d5
  1577.     move.l    0(a0,d6.w),a0
  1578.     jmp    (a0)
  1579.  
  1580. preED    gbpc
  1581.     addq.b    #2,sRF+1
  1582.     add.w    d6,d6
  1583.     add.w    d6,d6
  1584.     lea    EDoptab,a0
  1585.     move.l    0(a0,d6.w),a0
  1586.     jmp    (a0)
  1587.  
  1588. preFD    gbpc
  1589.     addq.b    #2,sRF+1
  1590.     add.w    d6,d6
  1591.     add.w    d6,d6
  1592.     lea    FDoptab,a0
  1593.     move.l    0(a0,d6.w),a0
  1594.     jmp    (a0)
  1595.  
  1596. prFDCB    calcind iy
  1597.     bra    prDDCBs
  1598.  
  1599. ilgDDCB move.w    (sp)+,d5
  1600. illgED    jmp    (return)
  1601.  
  1602. rlcb    rol.w    #8,sBC            ;CB00 RLC B
  1603.     rol.b    #1,sBC
  1604.     setflag SETONLY
  1605.     rol.w    #8,sBC
  1606.     jmp    (return)
  1607.  
  1608. rlcc    rol.b    #1,sBC            ;CB01 RLC C
  1609.     setflag
  1610.  
  1611. rlcd    rol.w    #8,sDE            ;CB02 RLC D
  1612.     rol.b    #1,sDE
  1613.     setflag SETONLY
  1614.     rol.w    #8,sDE
  1615.     jmp    (return)
  1616.  
  1617. rlce    rol.b    #1,sDE            ;CB03 RLC E
  1618.     setflag
  1619.  
  1620. rlch    rol.w    #8,sHL            ;CB04 RLC H
  1621.     rol.b    #1,sHL
  1622.     setflag SETONLY
  1623.     rol.w    #8,sHL
  1624.     jmp    (return)
  1625.  
  1626. rlcl    rol.b    #1,sHL            ;CB05 RLC L
  1627.     setflag
  1628.  
  1629. rlcm    gbhl    d6            ;CB06 RLC (HL)
  1630.     rol.b    #1,d6
  1631.     setflag SETONLY
  1632.     move.w    sHL,d5
  1633.     bsr    wbyte
  1634.     jmp    (return)
  1635.  
  1636. rlca    rol.b    #1,sA            ;CB07 RLC A
  1637.     setflag
  1638.  
  1639. rrcb    rol.w    #8,sBC            ;CB08 RRC B
  1640.     ror.b    #1,sBC
  1641.     setflag SETONLY
  1642.     rol.w    #8,sBC
  1643.     jmp    (return)
  1644.  
  1645. rrcc    ror.b    #1,sBC            ;CB09 RRC C
  1646.     setflag
  1647.  
  1648. rrcd    rol.w    #8,sDE            ;CB0A RRC D
  1649.     ror.b    #1,sDE
  1650.     setflag SETONLY
  1651.     rol.w    #8,sDE
  1652.     jmp    (return)
  1653.  
  1654. rrce    ror.b    #1,sDE            ;CB0B RRC E
  1655.     setflag
  1656.  
  1657. rrch    rol.w    #8,sHL            ;CB0C RRC H
  1658.     ror.b    #1,sHL
  1659.     setflag SETONLY
  1660.     rol.w    #8,sHL
  1661.     jmp    (return)
  1662.  
  1663. rrcl    ror.b    #1,sHL            ;CB0D RRC L
  1664.     setflag
  1665.  
  1666. rrcm    gbhl    d6            ;CB0E RRC (HL)
  1667.     ror.b    #1,d6
  1668.     setflag SETONLY
  1669.     move.w    sHL,d5
  1670.     bsr    wbyte
  1671.     jmp    (return)
  1672.  
  1673. rrca    ror.b    #1,sA            ;CB0F RRC A
  1674.     setflag
  1675.  
  1676. rlrb    rol.w    #8,sBC            ;CB10 RL B
  1677.     roxr.b    #1,sF
  1678.     roxl.b    #1,sBC
  1679.     setflag SETONLY
  1680.     rol.w    #8,sBC
  1681.     jmp    (return)
  1682.  
  1683. rlrc    roxr.b    #1,sF            ;CB11 RL C
  1684.     roxl.b    #1,sBC
  1685.     setflag
  1686.  
  1687. rlrd    rol.w    #8,sDE            ;CB12 RL D
  1688.     roxr.b    #1,sF
  1689.     roxl.b    #1,sDE
  1690.     setflag SETONLY
  1691.     rol.w    #8,sDE
  1692.     jmp    (return)
  1693.  
  1694. rlre    roxr.b    #1,sF            ;CB13 RL E
  1695.     roxl.b    #1,sDE
  1696.     setflag
  1697.  
  1698. rlrh    rol.w    #8,sHL            ;CB14 RL H
  1699.     roxr.b    #1,sF
  1700.     roxl.b    #1,sHL
  1701.     setflag SETONLY
  1702.     rol.w    #8,sHL
  1703.     jmp    (return)
  1704.  
  1705. rlrl    roxr.b    #1,sF            ;CB15 RL L
  1706.     roxl.b    #1,sHL
  1707.     setflag
  1708.  
  1709. rlrm    gbhl    d6            ;CB16 RL (HL)
  1710.     roxr.b    #1,sF
  1711.     roxl.b    #1,d6
  1712.     setflag SETONLY
  1713.     move.w    sHL,d5
  1714.     bsr    wbyte
  1715.     jmp    (return)
  1716.  
  1717. rlra    roxr.b    #1,sF            ;CB17 RL A
  1718.     roxl.b    #1,sA
  1719.     setflag
  1720.  
  1721. rrrb    rol.w    #8,sBC            ;CB18 RR B
  1722.     roxr.b    #1,sF
  1723.     roxr.b    #1,sBC
  1724.     setflag SETONLY
  1725.     rol.w    #8,sBC
  1726.     jmp    (return)
  1727.  
  1728. rrrc    roxr.b    #1,sF            ;CB19 RR C
  1729.     roxr.b    #1,sBC
  1730.     setflag
  1731.  
  1732. rrrd    rol.w    #8,sDE            ;CB1A RR D
  1733.     roxr.b    #1,sF
  1734.     roxr.b    #1,sDE
  1735.     setflag SETONLY
  1736.     rol.w    #8,sDE
  1737.     jmp    (return)
  1738.  
  1739. rrre    roxr.b    #1,sF            ;CB1B RR E
  1740.     roxr.b    #1,sDE
  1741.     setflag
  1742.  
  1743. rrrh    rol.w    #8,sHL            ;CB1C RR H
  1744.     roxr.b    #1,sF
  1745.     roxr.b    #1,sHL
  1746.     setflag SETONLY
  1747.     rol.w    #8,sHL
  1748.     jmp    (return)
  1749.  
  1750. rrrl    roxr.b    #1,sF            ;CB1D RR L
  1751.     roxr.b    #1,sHL
  1752.     setflag
  1753.  
  1754. rrrm    gbhl    d6            ;CB1E RR (HL)
  1755.     roxr.b    #1,sF
  1756.     roxr.b    #1,d6
  1757.     setflag SETONLY
  1758.     move.w    sHL,d5
  1759.     bsr    wbyte
  1760.     jmp    (return)
  1761.  
  1762. rrra    roxr.b    #1,sF            ;CB1F RR A
  1763.     roxr.b    #1,sA
  1764.     setflag
  1765.  
  1766. slab    rol.w    #8,sBC            ;CB20 SLA B
  1767.     asl.b    #1,sBC
  1768.     setflag SETONLY
  1769.     rol.w    #8,sBC
  1770.     jmp    (return)
  1771.  
  1772. slac    asl.b    #1,sBC            ;CB21 SLA C
  1773.     setflag
  1774.  
  1775. slad    rol.w    #8,sDE            ;CB22 SLA D
  1776.     asl.b    #1,sDE
  1777.     setflag SETONLY
  1778.     rol.w    #8,sDE
  1779.     jmp    (return)
  1780.  
  1781. slae    asl.b    #1,sDE            ;CB23 SLA E
  1782.     setflag
  1783.  
  1784. slah    rol.w    #8,sHL            ;CB24 SLA H
  1785.     asl.b    #1,sHL
  1786.     setflag SETONLY
  1787.     rol.w    #8,sHL
  1788.     jmp    (return)
  1789.  
  1790. slal    asl.b    #1,sHL            ;CB25 SLA L
  1791.     setflag
  1792.  
  1793. slam    gbhl    d6            ;CB26 SLA (HL)
  1794.     asl.b    #1,d6
  1795.     setflag SETONLY
  1796.     move.w    sHL,d5
  1797.     bsr    wbyte
  1798.     jmp    (return)
  1799.  
  1800. slaa    asl.b    #1,sA            ;CB27 SLA A
  1801.     setflag
  1802.  
  1803. srab    rol.w    #8,sBC            ;CB28 SRA B
  1804.     asr.b    #1,sBC
  1805.     setflag SETONLY
  1806.     rol.w    #8,sBC
  1807.     jmp    (return)
  1808.  
  1809. srac    asr.b    #1,sBC            ;CB29 SRA C
  1810.     setflag
  1811.  
  1812. srad    rol.w    #8,sDE            ;CB2A SRA D
  1813.     asr.b    #1,sDE
  1814.     setflag SETONLY
  1815.     rol.w    #8,sDE
  1816.     jmp    (return)
  1817.  
  1818. srae    asr.b    #1,sDE            ;CB2B SRA E
  1819.     setflag
  1820.  
  1821. srah    rol.w    #8,sHL            ;CB2C SRA H
  1822.     asr.b    #1,sHL
  1823.     setflag SETONLY
  1824.     rol.w    #8,sHL
  1825.     jmp    (return)
  1826.  
  1827. sral    asr.b    #1,sHL            ;CB2D SRA L
  1828.     setflag
  1829.  
  1830. sram    gbhl    d6            ;CB2E SRA (HL)
  1831.     asr.b    #1,d6
  1832.     setflag SETONLY
  1833.     move.w    sHL,d5
  1834.     bsr    wbyte
  1835.     jmp    (return)
  1836.  
  1837. sraa    asr.b    #1,sA            ;CB2F SRA A
  1838.     setflag
  1839.  
  1840. srlb    rol.w    #8,sBC            ;CB38 SRL B
  1841.     lsr.b    #1,sBC
  1842.     setflag SETONLY
  1843.     rol.w    #8,sBC
  1844.     jmp    (return)
  1845.  
  1846. srlc    lsr.b    #1,sBC            ;CB39 SRL C
  1847.     setflag
  1848.  
  1849. srld    rol.w    #8,sDE            ;CB3A SRL D
  1850.     lsr.b    #1,sDE
  1851.     setflag SETONLY
  1852.     rol.w    #8,sDE
  1853.     jmp    (return)
  1854.  
  1855. srle    lsr.b    #1,sDE            ;CB3B SRL E
  1856.     setflag
  1857.  
  1858. srlh    rol.w    #8,sHL            ;CB3C SRL H
  1859.     lsr.b    #1,sHL
  1860.     setflag SETONLY
  1861.     rol.w    #8,sHL
  1862.     jmp    (return)
  1863.  
  1864. srll    lsr.b    #1,sHL            ;CB3D SRL L
  1865.     setflag
  1866.  
  1867. srlm    gbhl    d6            ;CB3E SRL (HL)
  1868.     lsr.b    #1,d6
  1869.     setflag SETONLY
  1870.     move.w    sHL,d5
  1871.     bsr    wbyte
  1872.     jmp    (return)
  1873.  
  1874. srla    lsr.b    #1,sA            ;CB3F SRL A
  1875.     setflag
  1876.  
  1877. bit0b    moveq    #8,d6            ;CB40 BIT 0,B
  1878.     btst    d6,sBC
  1879.     dozf
  1880.  
  1881. bit0c    btst    #0,sBC            ;CB41 BIT 0,C
  1882.     dozf
  1883.  
  1884. bit0d    moveq    #8,d6            ;CB42 BIT 0,D
  1885.     btst    d6,sDE
  1886.     dozf
  1887.  
  1888. bit0e    btst    #0,sDE            ;CB43 BIT 0,E
  1889.     dozf
  1890.  
  1891. bit0h    moveq    #8,d6            ;CB44 BIT 0,H
  1892.     btst    d6,sHL
  1893.     dozf
  1894.  
  1895. bit0l    btst    #0,sHL            ;CB45 BIT 0,L
  1896.     dozf
  1897.  
  1898. bit0m    gbhl    d6            ;CB46 BIT 0,(HL)
  1899.     btst    #0,d6
  1900.     dozf
  1901.  
  1902. bit0a    btst    #0,sA            ;CB47 BIT 0,A
  1903.     dozf
  1904.  
  1905. bit1b    moveq    #9,d6            ;CB48 BIT 1,B
  1906.     btst    d6,sBC
  1907.     dozf
  1908.  
  1909. bit1c    btst    #1,sBC            ;CB49 BIT 1,C
  1910.     dozf
  1911.  
  1912. bit1d    moveq    #9,d6            ;CB4A BIT 1,D
  1913.     btst    d6,sDE
  1914.     dozf
  1915.  
  1916. bit1e    btst    #1,sDE            ;CB4B BIT 1,E
  1917.     dozf
  1918.  
  1919. bit1h    moveq    #9,d6            ;CB4C BIT 1,H
  1920.     btst    d6,sHL
  1921.     dozf
  1922.  
  1923. bit1l    btst    #1,sHL            ;CB4D BIT 1,L
  1924.     dozf
  1925.  
  1926. bit1m    gbhl    d6            ;CB4E BIT 1,(HL)
  1927.     btst    #1,d6
  1928.     dozf
  1929.  
  1930. bit1a    btst    #1,sA            ;CB4F BIT 1,A
  1931.     dozf
  1932.  
  1933. bit2b    moveq    #10,d6            ;CB50 BIT 2,B
  1934.     btst    d6,sBC
  1935.     dozf
  1936.  
  1937. bit2c    btst    #2,sBC            ;CB51 BIT 2,C
  1938.     dozf
  1939.  
  1940. bit2d    moveq    #10,d6            ;CB52 BIT 2,D
  1941.     btst    d6,sDE
  1942.     dozf
  1943.  
  1944. bit2e    btst    #2,sDE            ;CB53 BIT 2,E
  1945.     dozf
  1946.  
  1947. bit2h    moveq    #10,d6            ;CB54 BIT 2,H
  1948.     btst    d6,sHL
  1949.     dozf
  1950.  
  1951. bit2l    btst    #2,sHL            ;CB55 BIT 2,L
  1952.     dozf
  1953.  
  1954. bit2m    gbhl    d6            ;CB56 BIT 2,(HL)
  1955.     btst    #2,d6
  1956.     dozf
  1957.  
  1958. bit2a    btst    #2,sA            ;CB57 BIT 2,A
  1959.     dozf
  1960.  
  1961. bit3b    moveq    #11,d6            ;CB58 BIT 3,B
  1962.     btst    d6,sBC
  1963.     dozf
  1964.  
  1965. bit3c    btst    #3,sBC            ;CB59 BIT 3,C
  1966.     dozf
  1967.  
  1968. bit3d    moveq    #11,d6            ;CB5A BIT 3,D
  1969.     btst    d6,sDE
  1970.     dozf
  1971.  
  1972. bit3e    btst    #3,sDE            ;CB5B BIT 3,E
  1973.     dozf
  1974.  
  1975. bit3h    moveq    #11,d6            ;CB5C BIT 3,H
  1976.     btst    d6,sHL
  1977.     dozf
  1978.  
  1979. bit3l    btst    #3,sHL            ;CB5D BIT 3,L
  1980.     dozf
  1981.  
  1982. bit3m    gbhl    d6            ;CB5E BIT 3,(HL)
  1983.     btst    #3,d6
  1984.     dozf
  1985.  
  1986. bit3a    btst    #3,sA            ;CB5F BIT 3,A
  1987.     dozf
  1988.  
  1989. bit4b    moveq    #12,d6            ;CB60 BIT 4,B
  1990.     btst    d6,sBC
  1991.     dozf
  1992.  
  1993. bit4c    btst    #4,sBC            ;CB61 BIT 4,C
  1994.     dozf
  1995.  
  1996. bit4d    moveq    #12,d6            ;CB62 BIT 4,D
  1997.     btst    d6,sDE
  1998.     dozf
  1999.  
  2000. bit4e    btst    #4,sDE            ;CB63 BIT 4,E
  2001.     dozf
  2002.  
  2003. bit4h    moveq    #12,d6            ;CB64 BIT 4,H
  2004.     btst    d6,sHL
  2005.     dozf
  2006.  
  2007. bit4l    btst    #4,sHL            ;CB65 BIT 4,L
  2008.     dozf
  2009.  
  2010. bit4m    gbhl    d6            ;CB66 BIT 4,(HL)
  2011.     btst    #4,d6
  2012.     dozf
  2013.  
  2014. bit4a    btst    #4,sA            ;CB67 BIT 4,A
  2015.     dozf
  2016.  
  2017. bit5b    moveq    #13,d6            ;CB68 BIT 5,B
  2018.     btst    d6,sBC
  2019.     dozf
  2020.  
  2021. bit5c    btst    #5,sBC            ;CB69 BIT 5,C
  2022.     dozf
  2023.  
  2024. bit5d    moveq    #13,d6            ;CB6A BIT 5,D
  2025.     btst    d6,sDE
  2026.     dozf
  2027.  
  2028. bit5e    btst    #5,sDE            ;CB6B BIT 5,E
  2029.     dozf
  2030.  
  2031. bit5h    moveq    #13,d6            ;CB6C BIT 5,H
  2032.     btst    d6,sHL
  2033.     dozf
  2034.  
  2035. bit5l    btst    #5,sHL            ;CB6D BIT 5,L
  2036.     dozf
  2037.  
  2038. bit5m    gbhl    d6            ;CB6E BIT 5,(HL)
  2039.     btst    #5,d6
  2040.     dozf
  2041.  
  2042. bit5a    btst    #5,sA            ;CB6F BIT 5,A
  2043.     dozf
  2044.  
  2045. bit6b    moveq    #14,d6            ;CB70 BIT 6,B
  2046.     btst    d6,sBC
  2047.     dozf
  2048.  
  2049. bit6c    btst    #6,sBC            ;CB71 BIT 6,C
  2050.     dozf
  2051.  
  2052. bit6d    moveq    #14,d6            ;CB72 BIT 6,D
  2053.     btst    d6,sDE
  2054.     dozf
  2055.  
  2056. bit6e    btst    #6,sDE            ;CB73 BIT 6,E
  2057.     dozf
  2058.  
  2059. bit6h    moveq    #14,d6            ;CB74 BIT 6,H
  2060.     btst    d6,sHL
  2061.     dozf
  2062.  
  2063. bit6l    btst    #6,sHL            ;CB75 BIT 6,L
  2064.     dozf
  2065.  
  2066. bit6m    gbhl    d6            ;CB76 BIT 6,(HL)
  2067.     btst    #6,d6
  2068.     dozf
  2069.  
  2070. bit6a    btst    #6,sA            ;CB77 BIT 6,A
  2071.     dozf
  2072.  
  2073. bit7b    moveq    #15,d6            ;CB78 BIT 7,B
  2074.     btst    d6,sBC
  2075.     dozmf
  2076.  
  2077. bit7c    btst    #7,sBC            ;CB79 BIT 7,C
  2078.     dozmf
  2079.  
  2080. bit7d    moveq    #15,d6            ;CB7A BIT 7,D
  2081.     btst    d6,sDE
  2082.     dozmf
  2083.  
  2084. bit7e    btst    #7,sDE            ;CB7B BIT 7,E
  2085.     dozmf
  2086.  
  2087. bit7h    moveq    #15,d6            ;CB7C BIT 7,H
  2088.     btst    d6,sHL
  2089.     dozmf
  2090.  
  2091. bit7l    btst    #7,sHL            ;CB7D BIT 7,L
  2092.     dozmf
  2093.  
  2094. bit7m    gbhl    d6            ;CB7E BIT 7,(HL)
  2095.     btst    #7,d6
  2096.     dozmf
  2097.  
  2098. bit7a    btst    #7,sA            ;CB7F BIT 7,A
  2099.     dozf
  2100.  
  2101. res0b    and.w    #$FEFF,sBC        ;CB80 RES 0,B
  2102.     jmp    (return)
  2103.  
  2104. res0c    bclr    #0,sBC            ;CB81 RES 0,C
  2105.     jmp    (return)
  2106.  
  2107. res0d    and.w    #$FEFF,sDE        ;CB82 RES 0,D
  2108.     jmp    (return)
  2109.  
  2110. res0e    bclr    #0,sDE            ;CB83 RES 0,E
  2111.     jmp    (return)
  2112.  
  2113. res0h    and.w    #$FEFF,sHL        ;CB84 RES 0,H
  2114.     jmp    (return)
  2115.  
  2116. res0l    bclr    #0,sHL            ;CB85 RES 0,L
  2117.     jmp    (return)
  2118.  
  2119. res0m    gbhl    d6            ;CB86 RES 0,(HL)
  2120.     bclr    #0,d6
  2121.     move.w    sHL,d5
  2122.     bsr    wbyte
  2123.     jmp    (return)
  2124.  
  2125. res0a    bclr    #0,sA            ;CB87 RES 0,A
  2126.     jmp    (return)
  2127.  
  2128. res1b    and.w    #$FDFF,sBC        ;CB88 RES 1,B
  2129.     jmp    (return)
  2130.  
  2131. res1c    bclr    #1,sBC            ;CB89 RES 1,C
  2132.     jmp    (return)
  2133.  
  2134. res1d    and.w    #$FDFF,sDE        ;CB8A RES 1,D
  2135.     jmp    (return)
  2136.  
  2137. res1e    bclr    #1,sDE            ;CB8B RES 1,E
  2138.     jmp    (return)
  2139.  
  2140. res1h    and.w    #$FDFF,sHL        ;CB8C RES 1,H
  2141.     jmp    (return)
  2142.  
  2143. res1l    bclr    #1,sHL            ;CB8D RES 1,L
  2144.     jmp    (return)
  2145.  
  2146. res1m    move.w    sHL,d5            ;CB8E RES 1,(HL)
  2147.     bsr    gbyte
  2148.     bclr    #1,d6
  2149.     bsr    wbyte
  2150.     jmp    (return)
  2151.  
  2152. res1a    bclr    #1,sA            ;CB8F RES 1,A
  2153.     jmp    (return)
  2154.  
  2155. res2b    and.w    #$FBFF,sBC        ;CB90 RES 2,B
  2156.     jmp    (return)
  2157.  
  2158. res2c    bclr    #2,sBC            ;CB91 RES 2,C
  2159.     jmp    (return)
  2160.  
  2161. res2d    and.w    #$FBFF,sDE        ;CB92 RES 2,D
  2162.     jmp    (return)
  2163.  
  2164. res2e    bclr    #2,sDE            ;CB93 RES 2,E
  2165.     jmp    (return)
  2166.  
  2167. res2h    and.w    #$FBFF,sHL        ;CB94 RES 2,H
  2168.     jmp    (return)
  2169.  
  2170. res2l    bclr    #2,sHL            ;CB95 RES 2,L
  2171.     jmp    (return)
  2172.  
  2173. res2m    move.w    sHL,d5            ;CB96 RES 2,(HL)
  2174.     bsr    gbyte
  2175.     bclr    #2,d6
  2176.     bsr    wbyte
  2177.     jmp    (return)
  2178.  
  2179. res2a    bclr    #2,sA            ;CB97 RES 2,A
  2180.     jmp    (return)
  2181.  
  2182. res3b    and.w    #$F7FF,sBC        ;CB98 RES 3,B
  2183.     jmp    (return)
  2184.  
  2185. res3c    bclr    #3,sBC            ;CB99 RES 3,C
  2186.     jmp    (return)
  2187.  
  2188. res3d    and.w    #$F7FF,sDE        ;CB9A RES 3,D
  2189.     jmp    (return)
  2190.  
  2191. res3e    bclr    #3,sDE            ;CB9B RES 3,E
  2192.     jmp    (return)
  2193.  
  2194. res3h    and.w    #$F7FF,sHL        ;CB9C RES 3,H
  2195.     jmp    (return)
  2196.  
  2197. res3l    bclr    #3,sHL            ;CB9D RES 3,L
  2198.     jmp    (return)
  2199.  
  2200. res3m    move.w    sHL,d5            ;CB9E RES 3,(HL)
  2201.     bsr    gbyte
  2202.     bclr    #3,d6
  2203.     bsr    wbyte
  2204.     jmp    (return)
  2205.  
  2206. res3a    bclr    #3,sA            ;CB9F RES 3,A
  2207.     jmp    (return)
  2208.  
  2209. res4b    and.w    #$EFFF,sBC        ;CBA0 RES 4,B
  2210.     jmp    (return)
  2211.  
  2212. res4c    bclr    #4,sBC            ;CBA1 RES 4,C
  2213.     jmp    (return)
  2214.  
  2215. res4d    and.w    #$EFFF,sDE        ;CBA2 RES 4,D
  2216.     jmp    (return)
  2217.  
  2218. res4e    bclr    #4,sDE            ;CBA3 RES 4,E
  2219.     jmp    (return)
  2220.  
  2221. res4h    and.w    #$EFFF,sHL        ;CBA4 RES 4,H
  2222.     jmp    (return)
  2223.  
  2224. res4l    bclr    #4,sHL            ;CBA5 RES 4,L
  2225.     jmp    (return)
  2226.  
  2227. res4m    move.w    sHL,d5            ;CBA6 RES 4,(HL)
  2228.     bsr    gbyte
  2229.     bclr    #4,d6
  2230.     bsr    wbyte
  2231.     jmp    (return)
  2232.  
  2233. res4a    bclr    #4,sA            ;CBA7 RES 4,A
  2234.     jmp    (return)
  2235.  
  2236. res5b    and.w    #$DFFF,sBC        ;CBA8 RES 5,B
  2237.     jmp    (return)
  2238.  
  2239. res5c    bclr    #5,sBC            ;CBA9 RES 5,C
  2240.     jmp    (return)
  2241.  
  2242. res5d    and.w    #$DFFF,sDE        ;CBAA RES 5,D
  2243.     jmp    (return)
  2244.  
  2245. res5e    bclr    #5,sDE            ;CBAB RES 5,E
  2246.     jmp    (return)
  2247.  
  2248. res5h    and.w    #$DFFF,sHL        ;CBAC RES 5,H
  2249.     jmp    (return)
  2250.  
  2251. res5l    bclr    #5,sHL            ;CBAD RES 5,L
  2252.     jmp    (return)
  2253.  
  2254. res5m    move.w    sHL,d5            ;CBAE RES 5,(HL)
  2255.     bsr    gbyte
  2256.     bclr    #5,d6
  2257.     bsr    wbyte
  2258.     jmp    (return)
  2259.  
  2260. res5a    bclr    #5,sA            ;CBAF RES 5,A
  2261.     jmp    (return)
  2262.  
  2263. res6b    and.w    #$BFFF,sBC        ;CBB0 RES 6,B
  2264.     jmp    (return)
  2265.  
  2266. res6c    bclr    #6,sBC            ;CBB1 RES 6,C
  2267.     jmp    (return)
  2268.  
  2269. res6d    and.w    #$BFFF,sDE        ;CBB2 RES 6,D
  2270.     jmp    (return)
  2271.  
  2272. res6e    bclr    #6,sDE            ;CBB3 RES 6,E
  2273.     jmp    (return)
  2274.  
  2275. res6h    and.w    #$BFFF,sHL        ;CBB4 RES 6,H
  2276.     jmp    (return)
  2277.  
  2278. res6l    bclr    #6,sHL            ;CBB5 RES 6,L
  2279.     jmp    (return)
  2280.  
  2281. res6m    move.w    sHL,d5            ;CBB6 RES 6,(HL)
  2282.     bsr    gbyte
  2283.     bclr    #6,d6
  2284.     bsr    wbyte
  2285.     jmp    (return)
  2286.  
  2287. res6a    bclr    #6,sA            ;CBB7 RES 6,A
  2288.     jmp    (return)
  2289.  
  2290. res7b    and.w    #$7FFF,sBC        ;CBB8 RES 7,B
  2291.     jmp    (return)
  2292.  
  2293. res7c    bclr    #7,sBC            ;CBB9 RES 7,C
  2294.     jmp    (return)
  2295.  
  2296. res7d    and.w    #$7FFF,sDE        ;CBBA RES 7,D
  2297.     jmp    (return)
  2298.  
  2299. res7e    bclr    #7,sDE            ;CBBB RES 7,E
  2300.     jmp    (return)
  2301.  
  2302. res7h    and.w    #$7FFF,sHL        ;CBBC RES 7,H
  2303.     jmp    (return)
  2304.  
  2305. res7l    bclr    #7,sHL            ;CBBD RES 7,L
  2306.     jmp    (return)
  2307.  
  2308. res7m    move.w    sHL,d5            ;CBBE RES 7,(HL)
  2309.     bsr    gbyte
  2310.     bclr    #7,d6
  2311.     bsr    wbyte
  2312.     jmp    (return)
  2313.  
  2314. res7a    bclr    #7,sA            ;CBBF RES 7,A
  2315.     jmp    (return)
  2316.  
  2317. set0b    or.w    #$100,sBC        ;CBC0 SET 0,B
  2318.     jmp    (return)
  2319.  
  2320. set0c    bset    #0,sBC            ;CBC1 SET 0,C
  2321.     jmp    (return)
  2322.  
  2323. set0d    or.w    #$0100,sDE        ;CBC2 SET 0,D
  2324.     jmp    (return)
  2325.  
  2326. set0e    bset    #0,sDE            ;CBC3 SET 0,E
  2327.     jmp    (return)
  2328.  
  2329. set0h    or.w    #$0100,sHL        ;CBC4 SET 0,H
  2330.     jmp    (return)
  2331.  
  2332. set0l    bset    #0,sHL            ;CBC5 SET 0,L
  2333.     jmp    (return)
  2334.  
  2335. set0m    move.w    sHL,d5            ;CBC6 SET 0,(HL)
  2336.     bsr    gbyte
  2337.     bset    #0,d6
  2338.     bsr    wbyte
  2339.     jmp    (return)
  2340.  
  2341. set0a    bset    #0,sA            ;CBC7 SET 0,A
  2342.     jmp    (return)
  2343.  
  2344. set1b    or.w    #$200,sBC        ;CBC8 SET 1,B
  2345.     jmp    (return)
  2346.  
  2347. set1c    bset    #1,sBC            ;CBC9 SET 1,C
  2348.     jmp    (return)
  2349.  
  2350. set1d    or.w    #$200,sDE        ;CBCA SET 1,D
  2351.     jmp    (return)
  2352.  
  2353. set1e    bset    #1,sDE            ;CBCB SET 1,E
  2354.     jmp    (return)
  2355.  
  2356. set1h    or.w    #$200,sHL        ;CBCC SET 1,H
  2357.     jmp    (return)
  2358.  
  2359. set1l    bset    #1,sHL            ;CBCD SET 1,L
  2360.     jmp    (return)
  2361.  
  2362. set1m    move.w    sHL,d5            ;CBCE SET 1,(HL)
  2363.     bsr    gbyte
  2364.     bset    #1,d6
  2365.     bsr    wbyte
  2366.     jmp    (return)
  2367.  
  2368. set1a    bset    #1,sA            ;CBCF SET 1,A
  2369.     jmp    (return)
  2370.  
  2371. set2b    or.w    #$400,sBC        ;CBD0 SET 2,B
  2372.     jmp    (return)
  2373.  
  2374. set2c    bset    #2,sBC            ;CBD1 SET 2,C
  2375.     jmp    (return)
  2376.  
  2377. set2d    or.w    #$400,sDE        ;CBD2 SET 2,D
  2378.     jmp    (return)
  2379.  
  2380. set2e    bset    #2,sDE            ;CBD3 SET 2,E
  2381.     jmp    (return)
  2382.  
  2383. set2h    or.w    #$400,sHL        ;CBD4 SET 2,H
  2384.     jmp    (return)
  2385.  
  2386. set2l    bset    #2,sHL            ;CBD5 SET 2,L
  2387.     jmp    (return)
  2388.  
  2389. set2m    move.w    sHL,d5            ;CBD6 SET 2,(HL)
  2390.     bsr    gbyte
  2391.     bset    #2,d6
  2392.     bsr    wbyte
  2393.     jmp    (return)
  2394.  
  2395. set2a    bset    #2,sA            ;CBD7 SET 2,A
  2396.     jmp    (return)
  2397.  
  2398. set3b    or.w    #$800,sBC        ;CBD8 SET 3,B
  2399.     jmp    (return)
  2400.  
  2401. set3c    bset    #3,sBC            ;CBD9 SET 3,C
  2402.     jmp    (return)
  2403.  
  2404. set3d    or.w    #$800,sDE        ;CBDA SET 3,D
  2405.     jmp    (return)
  2406.  
  2407. set3e    bset    #3,sDE            ;CBDB SET 3,E
  2408.     jmp    (return)
  2409.  
  2410. set3h    or.w    #$800,sHL        ;CBDC SET 3,H
  2411.     jmp    (return)
  2412.  
  2413. set3l    bset    #3,sHL            ;CBDD SET 3,L
  2414.     jmp    (return)
  2415.  
  2416. set3m    move.w    sHL,d5            ;CBDE SET 3,(HL)
  2417.     bsr    gbyte
  2418.     bset    #3,d6
  2419.     bsr    wbyte
  2420.     jmp    (return)
  2421.  
  2422. set3a    bset    #3,sA            ;CBDF SET 3,A
  2423.     jmp    (return)
  2424.  
  2425. set4b    or.w    #$1000,sBC        ;CBE0 SET 4,B
  2426.     jmp    (return)
  2427.  
  2428. set4c    bset    #4,sBC            ;CBE1 SET 4,C
  2429.     jmp    (return)
  2430.  
  2431. set4d    or.w    #$1000,sDE        ;CBE2 SET 4,D
  2432.     jmp    (return)
  2433.  
  2434. set4e    bset    #4,sDE            ;CBE3 SET 4,E
  2435.     jmp    (return)
  2436.  
  2437. set4h    or.w    #$1000,sHL        ;CBE4 SET 4,H
  2438.     jmp    (return)
  2439.  
  2440. set4l    bset    #4,sHL            ;CBE5 SET 4,L
  2441.     jmp    (return)
  2442.  
  2443. set4m    move.w    sHL,d5            ;CBE6 SET 4,(HL)
  2444.     bsr    gbyte
  2445.     bset    #4,d6
  2446.     bsr    wbyte
  2447.     jmp    (return)
  2448.  
  2449. set4a    bset    #4,sA            ;CBE7 SET 4,A
  2450.     jmp    (return)
  2451.  
  2452. set5b    or.w    #$2000,sBC        ;CBE8 SET 5,B
  2453.     jmp    (return)
  2454.  
  2455. set5c    bset    #5,sBC            ;CBE9 SET 5,C
  2456.     jmp    (return)
  2457.  
  2458. set5d    or.w    #$2000,sDE        ;CBEA SET 5,D
  2459.     jmp    (return)
  2460.  
  2461. set5e    bset    #5,sDE            ;CBEB SET 5,E
  2462.     jmp    (return)
  2463.  
  2464. set5h    or.w    #$2000,sHL        ;CBEC SET 5,H
  2465.     jmp    (return)
  2466.  
  2467. set5l    bset    #5,sHL            ;CBED SET 5,L
  2468.     jmp    (return)
  2469.  
  2470. set5m    move.w    sHL,d5            ;CBEE SET 5,(HL)
  2471.     bsr    gbyte
  2472.     bset    #5,d6
  2473.     bsr    wbyte
  2474.     jmp    (return)
  2475.  
  2476. set5a    bset    #5,sA            ;CBEF SET 5,A
  2477.     jmp    (return)
  2478.  
  2479. set6b    or.w    #$4000,sBC        ;CBF0 SET 6,B
  2480.     jmp    (return)
  2481.  
  2482. set6c    bset    #6,sBC            ;CBF1 SET 6,C
  2483.     jmp    (return)
  2484.  
  2485. set6d    or.w    #$4000,sDE        ;CBF2 SET 6,D
  2486.     jmp    (return)
  2487.  
  2488. set6e    bset    #6,sDE            ;CBF3 SET 6,E
  2489.     jmp    (return)
  2490.  
  2491. set6h    or.w    #$4000,sHL        ;CBF4 SET 6,H
  2492.     jmp    (return)
  2493.  
  2494. set6l    bset    #6,sHL            ;CBF5 SET 6,L
  2495.     jmp    (return)
  2496.  
  2497. set6m    move.w    sHL,d5            ;CBF6 SET 6,(HL)
  2498.     bsr    gbyte
  2499.     bset    #6,d6
  2500.     bsr    wbyte
  2501.     jmp    (return)
  2502.  
  2503. set6a    bset    #6,sA            ;CBF7 SET 6,A
  2504.     jmp    (return)
  2505.  
  2506. set7b    or.w    #$8000,sBC        ;CBF8 SET 7,B
  2507.     jmp    (return)
  2508.  
  2509. set7c    bset    #7,sBC            ;CBF9 SET 7,C
  2510.     jmp    (return)
  2511.  
  2512. set7d    or.w    #$8000,sDE        ;CBFA SET 7,D
  2513.     jmp    (return)
  2514.  
  2515. set7e    bset    #7,sDE            ;CBFB SET 7,E
  2516.     jmp    (return)
  2517.  
  2518. set7h    or.w    #$8000,sHL        ;CBFC SET 7,H
  2519.     jmp    (return)
  2520.  
  2521. set7l    bset    #7,sHL            ;CBFD SET 7,L
  2522.     jmp    (return)
  2523.  
  2524. set7m    move.w    sHL,d5            ;CBFE SET 7,(HL)
  2525.     bsr    gbyte
  2526.     bset    #7,d6
  2527.     bsr    wbyte
  2528.     jmp    (return)
  2529.  
  2530. set7a    bset    #7,sA            ;CBFF SET 7,A
  2531.     jmp    (return)
  2532.  
  2533. dadixb    add.w    sBC,ix            ;DD09 DAD IX,B
  2534.     docyf
  2535.  
  2536. dadixd    add.w    sDE,ix            ;DD19 DAD IX,D
  2537.     docyf
  2538.  
  2539. lxiix    gwpc    d6            ;DD21 LXI IX,nnnn
  2540.     move.w    d6,ix
  2541.     jmp    (return)
  2542.  
  2543. sixd    gwpc    d5            ;DD22 SIXD addr
  2544.     move.w    ix,d6
  2545.     bsr    wword
  2546.     jmp    (return)
  2547.  
  2548. inxix    addq.w    #1,ix            ;DD23 INX IX
  2549.     jmp    (return)
  2550.  
  2551. inrxh    addq.b    #1,xh            ;DD24 INR XH (undocumented)
  2552.     inrflag
  2553.     jmp    (return)
  2554.  
  2555. dcrxh    subq.b    #1,xh            ;DD25 DCR XH (undocumented)
  2556.     inrflag
  2557.     jmp    (return)
  2558.  
  2559. mvixh    gbpc                ;DD26 MVI XH,nn (undocumented)
  2560.     move.b    d6,xh
  2561.     jmp    (return)
  2562.  
  2563. dadixx    asl.w    ix            ;DD29 DAD IX,IX (multiply by 2)
  2564.     docyf
  2565.  
  2566. lixd    gwpc    d5            ;DD2A LIXD addr
  2567.     bsr    gword
  2568.     move.w    d6,ix
  2569.     jmp    (return)
  2570.  
  2571. dcxix    subq.w    #1,ix            ;DD2B DCX IX
  2572.     jmp    (return)
  2573.  
  2574. inrxl    addq.b    #1,xl            ;DD2C INR XL (undocumented)
  2575.     inrflag
  2576.     jmp    (return)
  2577.  
  2578. dcrxl    subq.b    #1,xl            ;DD2D DCR XL (undocumented)
  2579.     inrflag
  2580.     jmp    (return)
  2581.  
  2582. mvixl    gbpc                ;DD2E MVI XL,nn (undocumented)
  2583.     move.b    d6,xl
  2584.     jmp    (return)
  2585.  
  2586. inrix    calcind ix            ;DD34 INR (IX+d)
  2587.     bsr    gbyte
  2588.     move.w    d5,-(sp)
  2589.     addq.b    #1,d6
  2590.     inrflag
  2591.     move.w    (sp)+,d5
  2592.     bsr    wbyte
  2593.     jmp    (return)
  2594.  
  2595. dcrix    calcind ix            ;DD35 DCR (IX+d)
  2596.     bsr    gbyte
  2597.     move.w    d5,-(sp)
  2598.     subq.b    #1,d6
  2599.     inrflag
  2600.     move.w    (sp)+,d5
  2601.     bsr    wbyte
  2602.     jmp    (return)
  2603.  
  2604. mviix    calcind ix            ;DD36 MVI (IX+d),nn
  2605.     move.w    d5,-(sp)
  2606.     gbpc
  2607.     move.w    (sp)+,d5
  2608.     bsr    wbyte
  2609.     jmp    (return)
  2610.  
  2611. dadixs    move.w    stack,d5        ;DD39 DAD IX,SP
  2612.     add.w    d5,ix
  2613.     docyf
  2614.  
  2615. movbxh    rol.w    #8,sBC            ;DD44 LD B,XH (undocumented)
  2616.     move.b    xh,sBC
  2617.     rol.w    #8,sBC
  2618.     jmp    (return)
  2619.  
  2620. movbxl    rol.w    #8,sBC            ;DD45 LD B,XL (undocumented)
  2621.     move.w    xl,sBC
  2622.     rol.w    #8,sBC
  2623.     jmp    (return)
  2624.  
  2625. movbix    calcind ix            ;DD46 LD B,(IX+d)
  2626.     bsr    gbyte
  2627.     rol.w    #8,sBC
  2628.     move.b    d6,sBC
  2629.     rol.w    #8,sBC
  2630.     jmp    (return)
  2631.  
  2632. movcxh    move.b    xh,sBC            ;DD4C LD C,XH (undocumented)
  2633.     jmp    (return)
  2634.  
  2635. movcxl    move.b    xl,sBC            ;DD4D LD C,XL (undocumented)
  2636.     jmp    (return)
  2637.  
  2638. movcix    calcind ix            ;DD4E LD C,(IX+d)
  2639.     bsr    gbyte
  2640.     move.b    d6,sBC
  2641.     jmp    (return)
  2642.  
  2643. movdxh    rol.w    #8,sDE            ;DD54 LD D,XH (undocumented)
  2644.     move.b    xh,sDE
  2645.     rol.w    #8,sDE
  2646.     jmp    (return)
  2647.  
  2648. movdxl    rol.w    #8,sDE            ;DD55 LD D,XL (undocumented)
  2649.     move.b    xl,sDE
  2650.     rol.w    #8,sDE
  2651.     jmp    (return)
  2652.  
  2653. movdix    calcind ix            ;DD56 LD D,(IX+d)
  2654.     bsr    gbyte
  2655.     rol.w    #8,sDE
  2656.     move.b    d6,sDE
  2657.     rol.w    #8,sDE
  2658.     jmp    (return)
  2659.  
  2660. movexh    move.b    xh,sDE            ;DD5C LD E,XH (undocumented)
  2661.     jmp    (return)
  2662.  
  2663. movexl    move.b    xl,sDE            ;DD5D LD E,XL (undocumented)
  2664.     jmp    (return)
  2665.  
  2666. moveix    calcind ix            ;DD5E LD E,(IX+d)
  2667.     bsr    gbyte
  2668.     move.b    d6,sDE
  2669.     jmp    (return)
  2670.  
  2671. movxhb    move.w    sBC,d6            ;DD60 LD XH,B (undocumented)
  2672.     rol.w    #8,d6
  2673.     move.b    d6,xh
  2674.     jmp    (return)
  2675.  
  2676. movxhc    move.b    sBC,xh            ;DD61 LD XH,C (undocumented)
  2677.     jmp    (return)
  2678.  
  2679. movxhd    move.w    sDE,d6            ;DD62 LD XH,D (undocumented)
  2680.     rol.w    #8,d6
  2681.     move.b    d6,xh
  2682.     jmp    (return)
  2683.  
  2684. movxhe    move.b    sDE,xh            ;DD63 LD XH,E (undocumented)
  2685.     jmp    (return)
  2686.  
  2687. mvxhxh    jmp    (return)        ;DD64 LD XH,XH (undocumented)
  2688.  
  2689. mvxhxl    move.b    xl,xh            ;DD65 LD XH,XL (undocumented)
  2690.     jmp    (return)
  2691.  
  2692. movhix    calcind ix            ;DD66 LD H,(IX+d)
  2693.     bsr    gbyte
  2694.     rol.w    #8,sHL
  2695.     move.b    d6,sHL
  2696.     rol.w    #8,sHL
  2697.     jmp    (return)
  2698.  
  2699. movxha    move.b    sA,xh            ;DD67 LD XH,A
  2700.     jmp    (return)
  2701.  
  2702. movxlb    move.w    sBC,d6            ;DD68 LD XL,B (undocumented)
  2703.     rol.w    #8,d6
  2704.     move.b    d6,xl
  2705.     jmp    (return)
  2706.  
  2707. movxlc    move.b    sBC,d6            ;DD69 LD XL,C (undocumented)
  2708.     jmp    (return)
  2709.  
  2710. movxld    move.w    sDE,d6            ;DD6A LD XL,D (undocumented)
  2711.     rol.w    #8,d6
  2712.     move.b    d6,xl
  2713.     jmp    (return)
  2714.  
  2715. movxle    move.b    sDE,xl            ;DD6B LD XL,E (undocumented)
  2716.     jmp    (return)
  2717.  
  2718. mvxlxh    move.b    xh,xl            ;DD6C LD XL,XH (undocumented)
  2719.     jmp    (return)
  2720.  
  2721. mvxlxl    jmp    (return)        ;DD6D LD XL,XL (undocumented)
  2722.  
  2723. movlix    calcind ix            ;DD6E LD L,(IX+d)
  2724.     bsr    gbyte
  2725.     move.b    d6,sHL
  2726.     jmp    (return)
  2727.  
  2728. movxla    move.b    sA,xl            ;DD6F LD XL,A
  2729.     jmp    (return)
  2730.  
  2731. movixb    calcind ix            ;DD70 LD (IX+d),B
  2732.     move.w    sBC,d6
  2733.     rol.w    #8,d6
  2734.     bsr    wbyte
  2735.     jmp    (return)
  2736.  
  2737. movixc    calcind ix            ;DD71 LD (IX+d),C
  2738.     move.b    sBC,d6
  2739.     bsr    wbyte
  2740.     jmp    (return)
  2741.  
  2742. movixd    calcind ix            ;DD72 LD (IX+d),D
  2743.     move.w    sDE,d6
  2744.     rol.w    #8,d6
  2745.     bsr    wbyte
  2746.     jmp    (return)
  2747.  
  2748. movixe    calcind ix            ;DD73 LD (IX+d),E
  2749.     move.b    sDE,d6
  2750.     bsr    wbyte
  2751.     jmp    (return)
  2752.  
  2753. movixh    calcind ix            ;DD74 LD (IX+d),H
  2754.     move.w    sHL,d6
  2755.     rol.w    #8,d6
  2756.     bsr    wbyte
  2757.     jmp    (return)
  2758.  
  2759. movixl    calcind ix            ;DD75 LD (IX+d),L
  2760.     move.b    sHL,d6
  2761.     bsr    wbyte
  2762.     jmp    (return)
  2763.  
  2764. movixa    calcind ix            ;DD77 LD (IX+d),A
  2765.     move.b    sA,d6
  2766.     bsr    wbyte
  2767.     jmp    (return)
  2768.  
  2769. movaxh    move.b    xh,sA            ;DD7C LD A,XH (undocumented)
  2770.     jmp    (return)
  2771.  
  2772. movaxl    move.b    xl,sA            ;DD7D LD A,XL (undocumented)
  2773.     jmp    (return)
  2774.  
  2775. movaix    calcind ix            ;DD7E LD A,(IX+d)
  2776.     bsr    gbyte
  2777.     move.b    d6,sA
  2778.     jmp    (return)
  2779.  
  2780. addxh    move.b    xh,d6            ;DD84 ADD A,XH (undocumented)
  2781.     addflag
  2782.  
  2783. addxl    move.b    xl,d6            ;DD85 ADD A,XL (undocumented)
  2784.     addflag
  2785.  
  2786. addix    calcind ix            ;DD86 ADD A,(IX+d)
  2787.     bsr    gbyte
  2788.     addflag
  2789.  
  2790. adcxh    move.b    xh,d6            ;DD8C ADC A,XH (undocumented)
  2791.     adcflag
  2792.  
  2793. adcxl    move.b    xl,d6            ;DD8E ADC A,XL (undocumented)
  2794.     adcflag
  2795.  
  2796. adcix    calcind ix            ;DD8E ADC A,(IX+d)
  2797.     bsr    gbyte
  2798.     adcflag
  2799.  
  2800. subxh    move.b    xh,d6            ;DD94 SUB A,XH (undocumented)
  2801.     move.b    d6,d5
  2802.     nbcd    d6
  2803.     move.b    d6,daaop1
  2804.     move.b    sA,daaop2
  2805.     clr.b    daaop3
  2806.     sub.b    d5,sA
  2807.     setflag
  2808.  
  2809. subxl    move.b    xl,d5            ;DD95 SUB A,XL (undocumented)
  2810.     move.b    d5,d6
  2811.     nbcd    d6
  2812.     move.b    d6,daaop1
  2813.     move.b    sA,daaop2
  2814.     clr.b    daaop3
  2815.     sub.b    d5,sA
  2816.     setflag
  2817.  
  2818. subix    calcind ix            ;DD96 SUB A,(IX+d)
  2819.     bsr    gbyte
  2820.     move.b    d6,d5
  2821.     nbcd    d6
  2822.     move.b    d6,daaop1
  2823.     move.b    sA,daaop2
  2824.     clr.b    daaop3
  2825.     sub.b    d5,sA
  2826.     setflag
  2827.  
  2828. sbbxh    move.b    xh,d5            ;DD9C SBC A,XH (undocumented)
  2829.     move.b    d5,d6
  2830.     nbcd    d6
  2831.     sbbflag
  2832.  
  2833. sbbxl    move.b    xl,d5            ;DD9D SBC A,XL (undocumented)
  2834.     move.b    d5,d6
  2835.     nbcd    d6
  2836.     sbbflag
  2837.  
  2838. sbbix    calcind ix            ;DD9E SBC A,(IX+d)
  2839.     bsr    gbyte
  2840.     move.w    d6,d5
  2841.     nbcd    d6
  2842.     sbbflag
  2843.  
  2844. anaxh    and.b    xh,sA            ;DDA4 AND A,XH (undocumented)
  2845.     move.b    16(flagptr,sA.w),sF
  2846.     jmp    (return)
  2847.  
  2848. anaxl    and.b    xl,sA            ;DDA5 AND A,XL (undocumented)
  2849.     move.b    16(flagptr,sA.w),sF
  2850.     jmp    (return)
  2851.  
  2852. anaix    calcind ix            ;DDA6 AND A,(IX+d)
  2853.     bsr    gbyte
  2854.     and.b    d6,sA
  2855.     move.b    16(flagptr,sA.w),sF
  2856.     jmp    (return)
  2857.  
  2858. xraxh    move.b    xh,d5            ;DDAC XOR A,XH (undocumented)
  2859.     eor.b    d5,sA
  2860.     move.b    16(flagptr,sA.w),sF
  2861.     jmp    (return)
  2862.  
  2863. xraxl    move.b    xl,d5            ;DDAD XOR A,XL (undocumented)
  2864.     eor.b    d5,sA
  2865.     move.b    16(flagptr,sA.w),sF
  2866.     jmp    (return)
  2867.  
  2868. xraix    calcind ix            ;DDAE XOR A,(IX+d)
  2869.     bsr    gbyte
  2870.     eor.b    d6,sA
  2871.     move.b    16(flagptr,sA.w),sF
  2872.     jmp    (return)
  2873.  
  2874. oraxh    or.b    xh,sA            ;DDB4 OR A,XH (undocumented)
  2875.     move.b    16(flagptr,sA.w),sF
  2876.     jmp    (return)
  2877.  
  2878. oraxl    or.b    xl,sA            ;DDB5 OR A,XL (undocumented)
  2879.     move.b    16(flagptr,sA.w),sF
  2880.     jmp    (return)
  2881.  
  2882. oraix    calcind ix            ;DDB6 OR A,(IX+d)
  2883.     bsr    gbyte
  2884.     or.b    d6,sA
  2885.     move.b    16(flagptr,sA.w),sF
  2886.     jmp    (return)
  2887.  
  2888. cmpxh    cmp.b    xh,sA            ;DDBC CP XH (undocumented)
  2889.     setflag
  2890.  
  2891. cmpxl    cmp.b    xl,sA            ;DDBD CP XL (undocumented)
  2892.     setflag
  2893.  
  2894. rlcix    bsr    gbyte            ;DDCB06 RLC (IX+d)
  2895.     move.w    d5,-(sp)
  2896.     rol.b    #1,d6
  2897.     setflag SETONLY
  2898.     move.w    (sp)+,d5
  2899.     bsr    wbyte
  2900.     jmp    (return)
  2901.  
  2902. rrcix    bsr    gbyte            ;DDCB0E RRC (IX+d)
  2903.     move.w    d5,-(sp)
  2904.     ror.b    #1,d6
  2905.     setflag SETONLY
  2906.     move.w    (sp)+,d5
  2907.     bsr    wbyte
  2908.     jmp    (return)
  2909.  
  2910. rlix    bsr    gbyte            ;DDCB16 RL (IX+d)
  2911.     roxr.b    #1,sF
  2912.     roxl.b    #1,d6
  2913.     roxl.b    #1,sF
  2914.     bsr    wbyte
  2915.     jmp    (return)
  2916.  
  2917. rrix    bsr    gbyte            ;DDCB1E RR (IX+d)
  2918.     roxr.b    #1,sF
  2919.     roxr.b    #1,d6
  2920.     roxl.b    #1,sF
  2921.     bsr    wbyte
  2922.     jmp    (return)
  2923.  
  2924. slaix    bsr    gbyte            ;DDCB26 SLA (IX+d)
  2925.     asl.b    #1,d6
  2926.     bcs.s    slaixc
  2927.     bclr    #0,sF
  2928.     bsr    wbyte
  2929.     jmp    (return)
  2930. slaixc    bset    #0,sF
  2931.     bsr    wbyte
  2932.     jmp    (return)
  2933.  
  2934. sraix    bsr    gbyte            ;DDCB2E SRA (IX+d)
  2935.     asr.b    #1,d6
  2936.     bcs.s    sraixc
  2937.     bclr    #0,sF
  2938.     bsr    wbyte
  2939.     jmp    (return)
  2940. sraixc    bset    #0,sF
  2941.     bsr    wbyte
  2942.     jmp    (return)
  2943.  
  2944. srlix    bsr    gbyte            ;DDCB3E SRL (IX+d)
  2945.     lsr.b    #1,d6
  2946.     bcs.s    srlixc
  2947.     bclr    #0,sF
  2948.     bsr    wbyte
  2949.     jmp    (return)
  2950. srlixc    bset    #0,sF
  2951.     bsr    wbyte
  2952.     jmp    (return)
  2953.  
  2954. bit0ix    bsr    gbyte            ;DDCB46 BIT 0,(IX+d)
  2955.     btst    #0,d6
  2956.     dozf
  2957.  
  2958. bit1ix    bsr    gbyte            ;DDCB4E BIT 1,(IX+d)
  2959.     btst    #1,d6
  2960.     dozf
  2961.  
  2962. bit2ix    bsr    gbyte            ;DDCB56 BIT 2,(IX+d)
  2963.     btst    #2,d6
  2964.     dozf
  2965.  
  2966. bit3ix    bsr    gbyte            ;DDCB5E BIT 3,(IX+d)
  2967.     btst    #3,d6
  2968.     dozf
  2969.  
  2970. bit4ix    bsr    gbyte            ;DDCB66 BIT 4,(IX+d)
  2971.     btst    #4,d6
  2972.     dozf
  2973.  
  2974. bit5ix    bsr    gbyte            ;DDCB6E BIT 5,(IX+d)
  2975.     btst    #5,d6
  2976.     dozf
  2977.  
  2978. bit6ix    bsr    gbyte            ;DDCB76 BIT 6,(IX+d)
  2979.     btst    #6,d6
  2980.     dozf
  2981.  
  2982. bit7ix    bsr    gbyte            ;DDCB7E BIT 7,(IX+d)
  2983.     btst    #7,d6
  2984.     dozf
  2985.  
  2986. res0ix    bsr    gbyte            ;DDCB86 RES 0,(IX+d)
  2987.     bclr    #0,d6
  2988.     bsr    wbyte
  2989.     jmp    (return)
  2990.  
  2991. res1ix    bsr    gbyte            ;DDCB8E RES 1,(IX+d)
  2992.     bclr    #1,d6
  2993.     bsr    wbyte
  2994.     jmp    (return)
  2995.  
  2996. res2ix    bsr    gbyte            ;DDCB96 RES 2,(IX+d)
  2997.     bclr    #2,d6
  2998.     bsr    wbyte
  2999.     jmp    (return)
  3000.  
  3001. res3ix    bsr    gbyte            ;DDCB9E RES 3,(IX+d)
  3002.     bclr    #3,d6
  3003.     bsr    wbyte
  3004.     jmp    (return)
  3005.  
  3006. res4ix    bsr    gbyte            ;DDCBA6 RES 4,(IX+d)
  3007.     bclr    #4,d6
  3008.     bsr    wbyte
  3009.     jmp    (return)
  3010.  
  3011. res5ix    bsr    gbyte            ;DDCBAE RES 5,(IX+d)
  3012.     bclr    #5,d6
  3013.     bsr    wbyte
  3014.     jmp    (return)
  3015.  
  3016. res6ix    bsr    gbyte            ;DDCBB6 RES 6,(IX+d)
  3017.     bclr    #6,d6
  3018.     bsr    wbyte
  3019.     jmp    (return)
  3020.  
  3021. res7ix    bsr    gbyte            ;DDCBBE RES 7,(IX+d)
  3022.     bclr    #7,d6
  3023.     bsr    wbyte
  3024.     jmp    (return)
  3025.  
  3026. set0ix    bsr    gbyte            ;DDCBC6 SET 0,(IX+d)
  3027.     bset    #0,d6
  3028.     bsr    wbyte
  3029.     jmp    (return)
  3030.  
  3031. set1ix    bsr    gbyte            ;DDCBCE SET 1,(IX+d)
  3032.     bset    #1,d6
  3033.     bsr    wbyte
  3034.     jmp    (return)
  3035.  
  3036. set2ix    bsr    gbyte            ;DDCBD6 SET 2,(IX+d)
  3037.     bset    #2,d6
  3038.     bsr    wbyte
  3039.     jmp    (return)
  3040.  
  3041. set3ix    bsr    gbyte            ;DDCBDE SET 3,(IX+d)
  3042.     bset    #3,d6
  3043.     bsr    wbyte
  3044.     jmp    (return)
  3045.  
  3046. set4ix    bsr    gbyte            ;DDCBE6 SET 4,(IX+d)
  3047.     bset    #4,d6
  3048.     bsr    wbyte
  3049.     jmp    (return)
  3050.  
  3051. set5ix    bsr    gbyte            ;DDCBEE SET 5,(IX+d)
  3052.     bset    #5,d6
  3053.     bsr    wbyte
  3054.     jmp    (return)
  3055.  
  3056. set6ix    bsr    gbyte            ;DDCBF6 SET 6,(IX+d)
  3057.     bset    #6,d6
  3058.     bsr    wbyte
  3059.     jmp    (return)
  3060.  
  3061. set7ix    bsr    gbyte            ;DDCBFE SET 7,(IX+d)
  3062.     bset    #7,d6
  3063.     bsr    wbyte
  3064.     jmp    (return)
  3065.  
  3066. cmpix    calcind ix            ;DDBE CP (IX+d)
  3067.     bsr    gbyte
  3068.     cmp.b    d6,sA
  3069.     setflag
  3070.  
  3071. popix    move.w    stack,d5        ;DDE1 POP IX
  3072.     bsr    gword
  3073.     move.w    d6,ix
  3074.     addq.w    #2,stack
  3075.     subq.l    #4,daasp
  3076.     jmp    (return)
  3077.  
  3078. xtix    move.w    stack,d5        ;DDE3 XTIX
  3079.     bsr    gword
  3080.     move.w    ix,d5
  3081.     move.w    d6,ix
  3082.     move.w    d5,d6
  3083.     move.w    stack,d5
  3084.     bsr    wword
  3085.     jmp    (return)
  3086.  
  3087. pushix    subq.w    #2,stack        ;DDE5 PUSH IX
  3088.     move.w    stack,d5
  3089.     move.w    ix,d6
  3090.     bsr    wword
  3091.     addq.l    #4,daasp
  3092.     jmp    (return)
  3093.  
  3094. pcix    move.w    ix,sPC            ;DDE9 PCIX
  3095.     bsr    calcpca
  3096.     jmp    (return)
  3097.  
  3098. spix    move.w    ix,stack        ;DDF9 SPIX
  3099.     jmp    (return)
  3100.  
  3101. inbc    move.w    sBC,d5            ;ED40 IN B,(C)
  3102.     rol.w    #8,d5
  3103.     jsr    inp
  3104.     rol.w    #8,sBC
  3105.     move.b    d6,sBC
  3106.     rol.w    #8,sBC
  3107.     jmp    (return)
  3108.  
  3109. outcb    move.w    sBC,d5            ;ED41 OUT (C),B
  3110.     move.w    sBC,d6
  3111.     rol.w    #8,d5
  3112.     rol.w    #8,d6
  3113.     jsr    outp
  3114.     jmp    (return)
  3115.  
  3116. dsbbb    ashl    sub,sBC         ;ED42 DSBC A,B
  3117.  
  3118. sbcd    gwpc    d5            ;ED43 SBCD addr
  3119.     move.w    sBC,d6
  3120.     bsr    wword
  3121.     jmp    (return)
  3122.  
  3123. nega    neg.b    sA            ;ED44 NEG
  3124.     setflag
  3125.  
  3126. retn    equ    ret            ;ED45 RETN (treated as RET)
  3127.  
  3128.  ; Interrupt modes are ignored. They shoudn't be, and are not in the PC
  3129.  ; version. Will someone implement this?
  3130.  
  3131. im0    jmp    (return)        ;ED46 IM0
  3132.  
  3133. moveia    jmp    (return)        ;ED47 LD I,A
  3134.  
  3135. incc    move.w    sBC,d5            ;ED48 IN C,(C)
  3136.     rol.w    #8,d5
  3137.     jsr    inp
  3138.     move.b    d6,sBC
  3139.     jmp    (return)
  3140.  
  3141. outcc    move.w    sBC,d5            ;ED49 OUT (C),C
  3142.     rol.w    #8,d5
  3143.     move.b    sBC,d6
  3144.     jsr    outp
  3145.     jmp    (return)
  3146.  
  3147. dadcb    ashl    add,sBC         ;ED4A DADC A,B
  3148.  
  3149. lbcd    gwpc    d5            ;ED4B LBCD addr
  3150.     bsr    gword
  3151.     move.w    d6,sBC
  3152.     jmp    (return)
  3153.  
  3154. reti    equ    ret            ;ED4D RETI (treated as RET)
  3155.  
  3156. movera    moveq    #0,d6            ;ED4F LD R,A
  3157.     move.b    sA,d6
  3158.     add.w    d6,d6
  3159.     move.w    d6,sRF
  3160.     jmp    (return)
  3161.  
  3162. indc    move.w    sBC,d5            ;ED50 IN D,(C)
  3163.     rol.w    #8,d5
  3164.     jsr    inp
  3165.     rol.w    #8,sDE
  3166.     move.b    d6,sDE
  3167.     rol.w    #8,sDE
  3168.     jmp    (return)
  3169.  
  3170. outcd    move.w    sBC,d5            ;ED51 OUT (C),D
  3171.     rol.w    #8,d5
  3172.     move.w    sDE,d6
  3173.     rol.w    #8,d6
  3174.     jsr    outp
  3175.     jmp    (return)
  3176.  
  3177. dsbbd    ashl    sub,sDE         ;ED52 DSBC A,D
  3178.  
  3179. sded    gwpc    d5            ;ED53 SDED addr
  3180.     move.w    sDE,d6
  3181.     bsr    wword
  3182.     jmp    (return)
  3183.  
  3184. im1    jmp    (return)        ;ED56 IM1 (ignored)
  3185.  
  3186. moveai    move.b    #0,sA            ;ED57 LD A,I
  3187.     jmp    (return)
  3188.  
  3189. inec    move.w    sBC,d5            ;ED58 IN E,(C)
  3190.     rol.w    #8,d5
  3191.     jsr    inp
  3192.     move.b    d6,sDE
  3193.     jmp    (return)
  3194.  
  3195. outce    move.b    sDE,d6            ;ED59 OUT (C),E
  3196.     move.w    sBC,d5
  3197.     rol.w    #8,d5
  3198.     jsr    outp
  3199.     jmp    (return)
  3200.  
  3201. dadcd    ashl    add,sDE         ;ED5A DADC A,D
  3202.  
  3203. lded    gwpc    d5            ;ED5B LDED addr
  3204.     bsr    gword
  3205.     move.w    d6,sDE
  3206.     jmp    (return)
  3207.  
  3208. im2    jmp    (return)        ;ED5E IM2 (ignored)
  3209.  
  3210. movear    move.w    sRF,d6            ;ED5F LD A,R
  3211.     lsr.w    #1,d6
  3212.     move.b    d6,sA
  3213.     jmp    (return)
  3214.  
  3215. inhc    move.w    sBC,d5            ;ED60 IN H,(C)
  3216.     rol.w    #8,d5
  3217.     jsr    inp
  3218.     rol.w    #8,sHL
  3219.     move.b    d6,sHL
  3220.     rol.w    #8,sHL
  3221.     jmp    (return)
  3222.  
  3223. outch    move.w    sBC,d5            ;ED61 OUT (C),H
  3224.     move.w    sHL,d6
  3225.     rol.w    #8,d5
  3226.     rol.w    #8,d6
  3227.     jsr    outp
  3228.     jmp    (return)
  3229.  
  3230. dsbbh    ashl    sub,sHL         ;ED62 DSBC A,H
  3231.  
  3232. rrd    move.w    sHL,d5            ;ED67 RRD
  3233.     bsr    gbyte
  3234.     move.w    d6,d5
  3235.     move.b    sA,-(sp)
  3236.     and.b    #$F,d5
  3237.     and.b    #$F0,sA
  3238.     or.b    d5,sA
  3239.     move.w    sHL,d5
  3240.     bsr    gbyte
  3241.     move.w    d6,d5
  3242.     lsr.b    #4,d5
  3243.     move.w    (sp)+,d6
  3244.     and.b    #$F,d6
  3245.     lsl.b    #4,d6
  3246.     or.b    d6,d5
  3247.     move.w    d5,d6
  3248.     move.w    sHL,d5
  3249.     bsr    wbyte
  3250.     jmp    (return)
  3251.  
  3252. inlc    move.w    sBC,d5            ;ED68 IN L,(C)
  3253.     rol.w    #8,d5
  3254.     jsr    inp
  3255.     move.b    d6,sHL
  3256.     jmp    (return)
  3257.  
  3258. outcl    move.w    sBC,d5            ;ED69 OUT (C),L
  3259.     rol.w    #8,d5
  3260.     move.b    sHL,d6
  3261.     jsr    outp
  3262.     jmp    (return)
  3263.  
  3264. dadch    ashl    add,sHL         ;ED6A DADC A,H
  3265.  
  3266. rld    move.w    sHL,d5            ;ED6F RLD
  3267.     bsr    gbyte
  3268.     move.b    d6,d5
  3269.     move.w    sA,-(sp)
  3270.     lsr.b    #4,d5
  3271.     and.b    #$F0,sA
  3272.     or.b    d5,sA
  3273.     move.w    sHL,d5
  3274.     bsr    gbyte
  3275.     move.b    d6,d5
  3276.     lsl.b    #4,d5
  3277.     move.w    (sp)+,d6
  3278.     and.b    #$F,d6
  3279.     or.b    d6,d5
  3280.     move.b    d5,d6
  3281.     move.w    sHL,d5
  3282.     bsr    wbyte
  3283.     jmp    (return)
  3284.  
  3285. inmc    move.w    sBC,d5            ;ED70 IN (HL),(C)
  3286.     rol.w    #8,d5
  3287.     jsr    inp
  3288.     move.w    sHL,d5
  3289.     bsr    wbyte
  3290.     jmp    (return)
  3291.  
  3292. outcm    move.b    sHL,d5            ;ED71 OUT (C),(HL)
  3293.     bsr    gbyte
  3294.     move.w    sBC,d5
  3295.     rol.w    #8,d5
  3296.     jsr    outp
  3297.     jmp    (return)
  3298.  
  3299. dsbbs    move.w    stack,d5        ;ED72 DSBC A,SP
  3300.     move.w    sHL,d6
  3301.     asr.b    #1,sF
  3302.     ori    #4,ccr
  3303.     subx.w    d5,d6
  3304.     ifeq    x680x0
  3305.     move    sr,d5
  3306.     endc
  3307.     ifne    x680x0
  3308.     dc.w    $42C5
  3309.     endc
  3310.     and.w    #$F,d5
  3311.     move.b    0(flagptr,d5.w),sF
  3312.     move.w    d6,sHL
  3313.     jmp    (return)
  3314.  
  3315. sspd    gwpc    d5            ;ED73 SSPD addr
  3316.     move.w    stack,d6
  3317.     bsr    wword
  3318.     jmp    (return)
  3319.  
  3320. inac    move.w    sBC,d5            ;ED78 IN A,(C)
  3321.     rol.w    #8,d5
  3322.     jsr    inp
  3323.     move.b    d6,sA
  3324.     move.b    16(flagptr,sA.w),sF
  3325.     jmp    (return)
  3326.  
  3327. outca    move.w    sBC,d5            ;ED79 OUT (C),A
  3328.     move.b    sA,d6
  3329.     rol.w    #8,d5
  3330.     jsr    outp
  3331.     jmp    (return)
  3332.  
  3333. dadcs    move.w    stack,d5        ;ED7A DADC A,SP
  3334.     asr.b    #1,sF
  3335.     ori    #4,ccr
  3336.     addx.w    d5,sHL
  3337.     ifeq    x680x0
  3338.     move    sr,d5
  3339.     endc
  3340.     ifne    x680x0
  3341.     dc.w    $42C5
  3342.     endc
  3343.     and.w    #$F,d5
  3344.     move.b    0(flagptr,d5.w),sF
  3345.     jmp    (return)
  3346.  
  3347. lspd    gwpc    d5            ;ED7B LSPD addr
  3348.     bsr    gword
  3349.     move.w    d6,stack
  3350.     jmp    (return)
  3351.  
  3352. ldi    move.w    sHL,d5            ;EDA0 LDI
  3353.     bsr    gbyte
  3354.     move.w    sDE,d5
  3355.     bsr    wbyte
  3356.     addq.w    #1,sDE
  3357.     addq.w    #1,sHL
  3358.     subq.w    #1,sBC
  3359.     beq.s    1$
  3360.     ori.b    #4,sF
  3361.     andi.b    #$ED,sF
  3362.     jmp    (return)
  3363. 1$    andi.b    #$E9,sF
  3364.     jmp    (return)
  3365.  
  3366. cmpi    move.w    sHL,d5            ;EDA1 CPI
  3367.     bsr    gbyte
  3368.     cmp.b    d6,sA
  3369.     setflag SETONLY
  3370.     addq.w    #1,sHL
  3371.     subq.w    #1,sBC
  3372.     beq.s    1$
  3373.     ori.b    #6,sF
  3374.     jmp    (return)
  3375. 1$    ori.b    #2,sF
  3376.     jmp    (return)
  3377.  
  3378. ini    jmp    (return)        ;EDA2 INI
  3379.  
  3380. outi    jmp    (return)        ;EDA3 OUTI
  3381.  
  3382. ldd    move.w    sHL,d5            ;EDA8 LDD
  3383.     bsr    gbyte
  3384.     move.w    sDE,d5
  3385.     bsr    wbyte
  3386.     subq.w    #1,sHL
  3387.     subq.w    #1,sDE
  3388.     subq.w    #1,sBC
  3389.     beq.s    1$
  3390.     ori.b    #4,sF
  3391.     andi.b    #$ED,sF
  3392.     jmp    (return)
  3393. 1$    andi.b    #$E9,sF
  3394.     jmp    (return)
  3395.  
  3396. cpd    move.w    sHL,d5            ;EDA9 CPD
  3397.     bsr    gbyte
  3398.     cmp.b    d6,sA
  3399.     setflag SETONLY
  3400.     subq.w    #1,sHL
  3401.     subq.w    #1,sBC
  3402.     beq.s    1$
  3403.     ori.b    #6,sF
  3404.     jmp    (return)
  3405. 1$    ori.b    #2,sF
  3406.     jmp    (return)
  3407.  
  3408. ind    jmp    (return)        ;EDAA IND
  3409.  
  3410. outd    jmp    (return)        ;EDAB OUTD
  3411.  
  3412. ldir    moveq    #0,d5
  3413.     move.w    sDE,d5
  3414.     move.l    d5,firstad
  3415.     moveq    #0,d6
  3416.     move.w    sBC,d6
  3417.     add.l    d6,d5
  3418.     move.l    d5,lastad
  3419.  
  3420.     move.b    sRF,d5
  3421.     move.b    d5,d6
  3422.     add.b    sBC,d5
  3423.     add.b    sBC,d5
  3424.     subq.b    #2,d5
  3425.     and.b    #$7f,d5
  3426.     and.b    #$80,d6
  3427.     or.b    d6,d5
  3428.     move.b    d5,sRF
  3429.  
  3430. ldirloop
  3431.     move.w    sHL,d5            ;EDB0 LDIR
  3432.     bsr    gbyte
  3433.     move.b    d6,0(a4,sDE.w)
  3434.     addq.w    #1,sHL
  3435.     addq.w    #1,sDE
  3436.     subq.w    #1,sBC
  3437.     bne.s    ldirloop
  3438.     moveq    #0,d6
  3439.     move.w    scrbase,d6
  3440.     cmp.l    lastad,d6
  3441.     bcc    ldir_end
  3442.  
  3443.     move.l    firstad,d5
  3444.     cmp.w    d6,d5
  3445.     bcc    ldir_fagr
  3446.     move.w    d6,d5
  3447. ldir_fagr
  3448.     move.l    d5,firstad
  3449.  
  3450.     add.w    #$3fff,d6
  3451.     move.l    lastad,d5
  3452.     cmp.l    d6,d5
  3453.     bcc    ldir_engr
  3454.     move.w    d5,d6
  3455. ldir_engr
  3456.     move.l    firstad,d5
  3457.     jsr    RedrawArea
  3458. ldir_end
  3459.     andi.b    #$C1,sF
  3460.     jmp    (return)
  3461.  
  3462. cpir    move.w    d7,-(sp)        ;EDB1 CPIR
  3463.     move.w    sBC,d7
  3464.     subq.w    #1,d7
  3465. cpirlop move.w    sHL,d5
  3466.     bsr    gbyte
  3467.     addq.w    #1,sHL
  3468.     cmp.b    d6,sA
  3469.     dbeq    d7,cpirlop
  3470.     bne.s    cpirnom
  3471.     move.w    d7,sBC
  3472.     beq.s    1$
  3473.     move.w    #$46,sF
  3474.     bra    cpirend
  3475. 1$    move.w    #$42,sF
  3476.     bra    cpirend
  3477. cpirnom addq.w    #1,d7
  3478.     move.w    d7,sBC
  3479.     beq.s    2$
  3480.     moveq    #6,sF
  3481.     bra    cpirend
  3482. 2$    move.w    #2,sF
  3483. cpirend move.w    (sp)+,d7
  3484.     jmp    (return)
  3485. inir    jmp    (return)        ;EDB2 INIR
  3486.  
  3487. otir    jmp    (return)        ;EDB3 OTIR
  3488.  
  3489. lddr:    move.b    sRF,d5            ;EDB8 LDDR
  3490.     move.b    d5,d6
  3491.     add.b    sBC,d5
  3492.     add.b    sBC,d5
  3493.     subq.b    #2,d5
  3494.     and.b    #$7f,d5
  3495.     and.b    #$80,d6
  3496.     or.b    d6,d5
  3497.     move.b    d5,sRF
  3498. lddr2    move.w    sHL,d5
  3499.     bsr    gbyte
  3500.     move.w    sDE,d5
  3501.     bsr    wbyte
  3502.     subq.w    #1,sHL
  3503.     subq.w    #1,sDE
  3504.     subq.w    #1,sBC
  3505.     bne.s    lddr2
  3506.     andi.b    #$C1,sF
  3507.     jmp    (return)
  3508.  
  3509. cpdr    move.w    d7,-(sp)        ;EDB9 CPDR
  3510.     move.w    sBC,d7
  3511.     subq.w    #1,d7
  3512. cpdrlop move.w    sHL,d5
  3513.     bsr    gbyte
  3514.     subq.w    #1,sHL
  3515.     cmp.b    d6,sA
  3516.     dbeq    d7,cpdrlop
  3517.     bne.s    cpdrnom
  3518.     move.w    d7,sBC
  3519.     beq.s    1$
  3520.     move.w    #$46,sF
  3521.     bra    cpdrend
  3522. 1$    move.w    #$42,sF
  3523.     jmp    cpdrend
  3524. cpdrnom addq.w    #1,d7
  3525.     move.w    d7,sBC
  3526.     beq.s    2$
  3527.     move.w    #6,sF
  3528.     bra    cpdrend
  3529. 2$    move.w    #2,sF
  3530. cpdrend move.w    (sp)+,d7
  3531.     jmp    (return)
  3532.  
  3533. indr    jmp    (return)        ;EDBA INDR
  3534.  
  3535. otdr    jmp    (return)        ;EDBB OTDR
  3536.  
  3537. dadiyb    add.w    sBC,iy            ;FD09 DAD IY,B
  3538.     docyf
  3539.  
  3540. dadiyd    add.w    sDE,iy            ;FD19 DAD IY,D
  3541.     docyf
  3542.  
  3543. lxiiy    gwpc    d6            ;FD21 LXI IY,nnnn
  3544.     move.w    d6,iy
  3545.     jmp    (return)
  3546.  
  3547. siyd    gwpc    d5            ;FD22 SIYD addr
  3548.     move.w    iy,d6
  3549.     bsr    wword
  3550.     jmp    (return)
  3551.  
  3552. inxiy    addq.w    #1,iy            ;FD23 INX IY
  3553.     jmp    (return)
  3554.  
  3555. inryh    addq.b    #1,yh            ;FD24 INR YH (undocumented)
  3556.     inrflag
  3557.     jmp    (return)
  3558.  
  3559. dcryh    subq.b    #1,yh            ;FD25 DCR YH (undocumented)
  3560.     inrflag
  3561.     jmp    (return)
  3562.  
  3563. mviyh    gbpc                ;FD26 MVI YH,nn (undocumented)
  3564.     move.b    d6,yh
  3565.     jmp    (return)
  3566.  
  3567. dadiyy    move.w    iy,d5            ;FD29 DAD IY,IY (multiply by 2)
  3568.     add.w    d5,iy
  3569.     docyf
  3570.  
  3571. liyd    gwpc    d5            ;FD2A LIYD addr
  3572.     bsr    gword
  3573.     move.w    d6,iy
  3574.     jmp    (return)
  3575.  
  3576. dcxiy    subq.w    #1,iy            ;FD2B DCX IY
  3577.     jmp    (return)
  3578.  
  3579. inryl    addq.b    #1,yl            ;FD2C INR YL (undocumented)
  3580.     inrflag
  3581.     jmp    (return)
  3582.  
  3583. dcryl    subq.b    #1,yl            ;FD2D DCR YL (undocumented)
  3584.     inrflag
  3585.     jmp    (return)
  3586.  
  3587. mviyl    gbpc                ;FD2E MVI YL,nn (undocumented)
  3588.     move.b    d6,yl
  3589.     jmp    (return)
  3590.  
  3591. inriy    calcind iy            ;FD34 INR (IY+d)
  3592.     bsr    gbyte
  3593.     move.w    d5,-(sp)
  3594.     addq.b    #1,d6
  3595.     inrflag
  3596.     move.w    (sp)+,d5
  3597.     bsr    wbyte
  3598.     jmp    (return)
  3599.  
  3600. dcriy    calcind iy            ;FD35 DCR (IY+d)
  3601.     bsr    gbyte
  3602.     move.w    d5,-(sp)
  3603.     subq.b    #1,d6
  3604.     inrflag
  3605.     move.w    (sp)+,d5
  3606.     bsr    wbyte
  3607.     jmp    (return)
  3608.  
  3609. mviiy    calcind iy            ;FD36 MVI (IY+d),nn
  3610.     move.w    d5,-(sp)
  3611.     gbpc
  3612.     move.w    (sp)+,d5
  3613.     bsr    wbyte
  3614.     jmp    (return)
  3615.  
  3616. dadiys    move.w    stack,d5        ;FD39 DAD IY,SP
  3617.     add.w    d5,iy
  3618.     docyf
  3619.  
  3620. movbyh    rol.w    #8,sBC            ;FD44 LD B,YH (undocumented)
  3621.     move.b    yh,sBC
  3622.     rol.w    #8,sBC
  3623.     jmp    (return)
  3624.  
  3625. movbyl    rol.w    #8,sBC            ;FD45 LD B,YL (undocumented)
  3626.     move.b    yl,sBC
  3627.     rol.w    #8,sBC
  3628.     jmp    (return)
  3629.  
  3630. movbiy    calcind iy            ;FD46 LD B,(IY+d)
  3631.     bsr    gbyte
  3632.     rol.w    #8,sBC
  3633.     move.b    d6,sBC
  3634.     rol.w    #8,sBC
  3635.     jmp    (return)
  3636.  
  3637. movcyh    move.b    yh,sBC            ;FD4C LD C,YH (undocumented)
  3638.     jmp    (return)
  3639.  
  3640. movcyl    move.b    yl,sBC            ;FD4D LD C,YL (undocumented)
  3641.     jmp    (return)
  3642.  
  3643. movciy    calcind iy            ;FD4E LD C,(IY+d)
  3644.     bsr    gbyte
  3645.     move.b    d6,sBC
  3646.     jmp    (return)
  3647.  
  3648. movdyh    rol.w    #8,sDE            ;FD54 LD D,YH (undocumented)
  3649.     move.b    yh,sDE
  3650.     rol.w    #8,sDE
  3651.     jmp    (return)
  3652.  
  3653. movdyl    rol.w    #8,sDE            ;FD55 LD D,YL (undocumented)
  3654.     move.b    yl,sDE
  3655.     rol.w    #8,sDE
  3656.     jmp    (return)
  3657.  
  3658. movdiy    calcind iy            ;FD56 LD D,(IY+d)
  3659.     bsr    gbyte
  3660.     rol.w    #8,sDE
  3661.     move.b    d6,sDE
  3662.     rol.w    #8,sDE
  3663.     jmp    (return)
  3664.  
  3665. moveyh    move.b    yh,sDE            ;FD5C LD E,YH (undocumented)
  3666.     jmp    (return)
  3667.  
  3668. moveyl    move.b    yl,sDE            ;FD5D LD E,YL (undocumented)
  3669.     jmp    (return)
  3670.  
  3671. moveiy    calcind iy            ;FD5E LD E,(IY+d)
  3672.     bsr    gbyte
  3673.     move.b    d6,sDE
  3674.     jmp    (return)
  3675.  
  3676. movyhb    move.w    sBC,d5            ;FD60 LD YH,B (undocumented)
  3677.     rol.w    #8,d5
  3678.     move.b    d5,yh
  3679.     jmp    (return)
  3680.  
  3681. movyhc    move.b    sBC,yh            ;FD61 LD YH,C (undocumented)
  3682.     jmp    (return)
  3683.  
  3684. movyhd    move.w    sDE,d5            ;FD62 LD YH,D (undocumented)
  3685.     rol.w    #8,d5
  3686.     move.b    d5,yh
  3687.     jmp    (return)
  3688.  
  3689. movyhe    move.b    sDE,yh            ;FD63 LD YH,E (undocumented)
  3690.     jmp    (return)
  3691.  
  3692. mvyhyh    jmp    (return)        ;FD64 LD YH,YH (undocumented)
  3693.  
  3694. mvyhyl    move.b    yl,yh            ;FD65 LD YH,YL (undocumented)
  3695.     jmp    (return)
  3696.  
  3697. movhiy    calcind iy            ;FD66 LD H,(IY+d)
  3698.     bsr    gbyte
  3699.     rol.w    #8,sHL
  3700.     move.b    d6,sHL
  3701.     rol.w    #8,sHL
  3702.     jmp    (return)
  3703.  
  3704. movyha    move.b    sA,yh            ;FD67 LD YH,A
  3705.     jmp    (return)
  3706.  
  3707. movylb    move.w    sBC,d5            ;FD68 LD YL,B (undocumented)
  3708.     rol.w    #8,d5
  3709.     move.b    d5,yl
  3710.     jmp    (return)
  3711.  
  3712. movylc    move.b    sBC,yl            ;FD69 LD YL,C (undocumented)
  3713.     jmp    (return)
  3714.  
  3715. movyld    move.w    sDE,d5            ;FD6A LD YL,D (undocumented)
  3716.     rol.w    #8,d5
  3717.     move.b    d5,yl
  3718.     jmp    (return)
  3719.  
  3720. movyle    move.b    sDE,yl            ;FD6B LD YL,E (undocumented)
  3721.     jmp    (return)
  3722.  
  3723. mvylyh    move.b    yh,yl            ;FD6C LD YL,YH (undocumented)
  3724.     jmp    (return)
  3725.  
  3726. mvylyl    jmp    (return)        ;FD6D LD YL,YL (undocumented)
  3727.  
  3728. movliy    calcind iy            ;FD6E LD L,(IY+d)
  3729.     bsr    gbyte
  3730.     move.b    d6,sHL
  3731.     jmp    (return)
  3732.  
  3733. movyla    move.b    sA,yl            ;FD6F LD YL,A
  3734.     jmp    (return)
  3735.  
  3736. moviyb    calcind iy            ;FD70 LD (IY+d),B
  3737.     move.w    sBC,d6
  3738.     rol.w    #8,d6
  3739.     bsr    wbyte
  3740.     jmp    (return)
  3741.  
  3742. moviyc    calcind iy            ;FD71 LD (IY+d),C
  3743.     move.b    sBC,d6
  3744.     bsr    wbyte
  3745.     jmp    (return)
  3746.  
  3747. moviyd    calcind iy            ;FD72 LD (IY+d),D
  3748.     move.w    sDE,d6
  3749.     rol.w    #8,d6
  3750.     bsr    wbyte
  3751.     jmp    (return)
  3752.  
  3753. moviye    calcind iy            ;FD73 LD (IY+d),E
  3754.     move.b    sDE,d6
  3755.     bsr    wbyte
  3756.     jmp    (return)
  3757.  
  3758. moviyh    calcind iy            ;FD74 LD (IY+d),H
  3759.     move.w    sHL,d6
  3760.     rol.w    #8,d6
  3761.     bsr    wbyte
  3762.     jmp    (return)
  3763.  
  3764. moviyl    calcind iy            ;FD75 LD (IY+d),L
  3765.     move.b    sHL,d6
  3766.     bsr    wbyte
  3767.     jmp    (return)
  3768.  
  3769. moviya    calcind iy            ;FD77 LD (IY+d),A
  3770.     move.b    sA,d6
  3771.     bsr    wbyte
  3772.     jmp    (return)
  3773.  
  3774. movayh    move.b    yh,sA            ;FD7C LD A,YH (undocumented)
  3775.     jmp    (return)
  3776.  
  3777. movayl    move.b    yl,sA            ;FD7D LD A,YL (undocumented)
  3778.     jmp    (return)
  3779.  
  3780. movaiy    calcind iy            ;FD7E LD A,(IY+d)
  3781.     bsr    gbyte
  3782.     move.b    d6,sA
  3783.     jmp    (return)
  3784.  
  3785. addyh    move.b    yh,d6            ;FD84 ADD A,YH (undocumented)
  3786.     addflag
  3787.  
  3788. addyl    move.b    yl,d6            ;FD85 ADD A,YL (undocumented)
  3789.     addflag
  3790.  
  3791. addiy    calcind iy            ;FD86 ADD A,(IY+d)
  3792.     bsr    gbyte
  3793.     addflag
  3794.  
  3795. adcyh    move.b    yh,d6            ;FD8C ADC A,YH (undocumented)
  3796.     adcflag
  3797.  
  3798. adcyl    move.b    yl,d6            ;FD8E ADC A,YL (undocumented)
  3799.     adcflag
  3800.  
  3801. adciy    calcind iy            ;FD8E ADC A,(IY+d)
  3802.     bsr    gbyte
  3803.     adcflag
  3804.  
  3805. subyh    move.b    yh,d5            ;FD94 SUB A,YH (undocumented)
  3806.     move.b    d5,d6
  3807.     nbcd    d6
  3808.     move.b    d6,daaop1
  3809.     move.b    sA,daaop2
  3810.     clr.b    daaop3
  3811.     sub.b    d5,sA
  3812.     setflag
  3813.  
  3814. subyl    move.b    yl,d5            ;FD95 SUB A,YL (undocumented)
  3815.     move.b    d5,d6
  3816.     nbcd    d6
  3817.     move.b    d6,daaop1
  3818.     move.b    sA,daaop2
  3819.     clr.b    daaop3
  3820.     sub.b    d5,sA
  3821.     setflag
  3822.  
  3823. subiy    calcind iy            ;FD96 SUB A,(IY+d)
  3824.     bsr    gbyte
  3825.     move.b    d6,d5
  3826.     nbcd    d6
  3827.     move.b    d6,daaop1
  3828.     move.b    sA,daaop2
  3829.     clr.b    daaop3
  3830.     sub.b    d5,sA
  3831.     setflag
  3832.  
  3833. sbbyh    move.b    yh,d5            ;FD9C SBC A,YH (undocumented)
  3834.     move.b    d5,d6
  3835.     nbcd    d6
  3836.     sbbflag
  3837.  
  3838. sbbyl    move.b    yl,d5            ;FD9D SBC A,YL (undocumented)
  3839.     move.b    d5,d6
  3840.     nbcd    d6
  3841.     sbbflag
  3842.  
  3843. sbbiy    calcind iy            ;FD9E SBC A,(IY+d)
  3844.     bsr    gbyte
  3845.     move.b    d6,d5
  3846.     nbcd    d6
  3847.     sbbflag
  3848.  
  3849. anayh    and.b    yh,sA            ;FDA4 AND A,YH (undocumented)
  3850.     move.b    16(flagptr,sA.w),sF
  3851.     jmp    (return)
  3852.  
  3853. anayl    and.b    yl,sA            ;FDA5 AND A,YL (undocumented)
  3854.     move.b    16(flagptr,sA.w),sF
  3855.     jmp    (return)
  3856.  
  3857. anaiy    calcind iy            ;FDA6 AND A,(IY+d)
  3858.     bsr    gbyte
  3859.     and.b    d6,sA
  3860.     move.b    16(flagptr,sA.w),sF
  3861.     jmp    (return)
  3862.  
  3863. xrayh    move.b    yh,d6            ;FDAC XOR A,YH (undocumented)
  3864.     eor.b    d6,sA
  3865.     move.b    16(flagptr,sA.w),sF
  3866.     jmp    (return)
  3867.  
  3868. xrayl    move.b    yl,d6            ;FDAD XOR A,YL (undocumented)
  3869.     eor.b    d6,sA
  3870.     move.b    16(flagptr,sA.w),sF
  3871.     jmp    (return)
  3872.  
  3873. xraiy    calcind iy            ;FDAE XOR A,(IY+d)
  3874.     bsr    gbyte
  3875.     eor.b    d6,sA
  3876.     move.b    16(flagptr,sA.w),sF
  3877.     jmp    (return)
  3878.  
  3879. orayh    or.b    yh,sA            ;FDB4 OR A,YH (undocumented)
  3880.     move.b    16(flagptr,sA.w),sF
  3881.     jmp    (return)
  3882.  
  3883. orayl    or.b    yl,sA            ;FDB5 OR A,YL (undocumented)
  3884.     move.b    16(flagptr,sA.w),sF
  3885.     jmp    (return)
  3886.  
  3887. oraiy    calcind iy            ;FDB6 OR A,(IY+d)
  3888.     bsr    gbyte
  3889.     or.b    d6,sA
  3890.     move.b    16(flagptr,sA.w),sF
  3891.     jmp    (return)
  3892.  
  3893. cmpyh    cmp.b    yh,sA            ;FDBC CP YH (undocumented)
  3894.     setflag
  3895.  
  3896. cmpyl    cmp.b    yl,sA            ;FDBD CP YL (undocumented)
  3897.     setflag
  3898.  
  3899. cmpiy    calcind iy            ;FDBE CP (IY+d)
  3900.     bsr    gbyte
  3901.     cmp.b    d6,sA
  3902.     setflag
  3903.  
  3904. popiy    move.w    stack,d5        ;FDE1 POP IY
  3905.     bsr    gword
  3906.     addq.w    #2,stack
  3907.     move.w    d6,iy
  3908.     subq.l    #4,daasp
  3909.     jmp    (return)
  3910.  
  3911. xtiy    move.w    iy,-(sp)        ;FDE3 XTIY
  3912.     move.w    stack,d5
  3913.     bsr    gword
  3914.     move.w    d6,iy
  3915.     move.w    (sp)+,d6
  3916.     bsr    wword
  3917.     jmp    (return)
  3918.  
  3919. pushiy    subq.w    #2,stack        ;FDE5 PUSH IY
  3920.     move.w    stack,d5
  3921.     move.w    iy,d6
  3922.     bsr    wword
  3923.     addq.l    #4,daasp
  3924.     jmp    (return)
  3925.  
  3926. pciy    move.w    iy,sPC            ;FDE9 PCIY
  3927.     bsr    calcpca
  3928.     jmp    (return)
  3929.  
  3930. spiy    move.w    iy,stack        ;FDF9 SPIY
  3931.     jmp    (return)
  3932.  
  3933. *************************************************************************
  3934. *                                    *
  3935. *    Opcode dispatch table                        *
  3936. *                                    *
  3937. *************************************************************************
  3938.     data    data
  3939.  
  3940.     even
  3941. optabl    dc.l    nop00,lxib,staxb,inxb,inrb,dcrb,mvib,rlc
  3942.     dc.l    exaf,dadb,ldaxb,dcxb,inrc,dcrc,mvic,rrc
  3943.     dc.l    djnz,lxid,staxd,inxd,inrd,dcrd,mvid,ral
  3944.     dc.l    jr,dadd,ldaxd,dcxd,inre,dcre,mvie,rar
  3945.     dc.l    jrnz,lxih,shld,inxh,inrh,dcrh,mvih,daa
  3946.     dc.l    jrz,dadh,lhld,dcxh,inrl,dcrl,mvil,cma
  3947.     dc.l    jrnc,lxis,sta,inxs,inrm,dcrm,mvim,stc
  3948.     dc.l    jrc,dads,lda,dcxs,inra,dcra,mvia,cmc
  3949.     dc.l    movebb,movebc,movebd,movebe,movebh,movebl,movebm,moveba
  3950.     dc.l    movecb,movecc,movecd,movece,movech,movecl,movecm,moveca
  3951.     dc.l    movedb,movedc,movedd,movede,movedh,movedl,movedm,moveda
  3952.     dc.l    moveeb,moveec,moveed,moveee,moveeh,moveel,moveem,moveea
  3953.     dc.l    movehb,movehc,movehd,movehe,movehh,movehl,movehm,moveha
  3954.     dc.l    movelb,movelc,moveld,movele,movelh,movell,movelm,movela
  3955.     dc.l    movemb,movemc,movemd,moveme,movemh,moveml,halt,movema
  3956.     dc.l    moveab,moveac,movead,moveae,moveah,moveal,moveam,moveaa
  3957.     dc.l    addb,addc,addd,adde,addh,addl,addm,adda
  3958.     dc.l    adcb,adcc,adcd,adce,adch,adcl,adcm,adca
  3959.     dc.l    subb,subc,subd,sube,subh,subl,subm,suba
  3960.     dc.l    sbbb,sbbc,sbbd,sbbe,sbbh,sbbl,sbbm,sbba
  3961.     dc.l    andb,andc,andd,ande,andh,andl,andm,anda
  3962.     dc.l    xrab,xrac,xrad,xrae,xrah,xral,xram,xraa
  3963.     dc.l    orab,orac,orad,orae,orah,oral,oram,oraa
  3964.     dc.l    cmpb,cmpc,cmpd,cmpe,cmph,cmpl,cmpam,cmpaa
  3965.     dc.l    rnz,popb,jnz,jmpa,cnz,pushb,adi,rst0
  3966.     dc.l    rz,ret,jz,preCB,cz,call,aci,rst1
  3967.     dc.l    rnc,popd,jnc,out,cnc,pushd,sui,rst2
  3968.     dc.l    rc,exx,jc,in,cc,preDD,sbi,rst3
  3969.     dc.l    rpo,poph,jpo,xthl,cpo,pushh,ani,rst4
  3970.     dc.l    rpe,pchl,jpe,xchg,cpe,preED,xri,rst5
  3971.     dc.l    rp,popp,jp,di,cp,pushp,oria,rst6
  3972.     dc.l    rm,sphl,jm,ei,cm,preFD,cpi,rst7
  3973.     page
  3974. *************************************************************************
  3975. *                                    *
  3976. *    Flag register lookup tables                    *
  3977. *                                    *
  3978. *************************************************************************
  3979. flags    dc.b    $00,$01,$04,$05,$40,$41,$44,$45,$80,$81,$84,$85,$C0,$C1,$C4,$C5
  3980.     dc.b    $44,$00,$00,$04,$00,$04,$04,$00,$00,$04,$04,$00,$04,$00,$00,$04
  3981.     dc.b    $00,$04,$04,$00,$04,$00,$00,$04,$04,$00,$00,$04,$00,$04,$04,$00
  3982.     dc.b    $00,$04,$04,$00,$04,$00,$00,$04,$04,$00,$00,$04,$00,$04,$04,$00
  3983.     dc.b    $04,$00,$00,$04,$00,$04,$04,$00,$00,$04,$04,$00,$04,$00,$00,$04
  3984.     dc.b    $00,$04,$04,$00,$04,$00,$00,$04,$04,$00,$00,$04,$00,$04,$04,$00
  3985.     dc.b    $04,$00,$00,$04,$00,$04,$04,$00,$00,$04,$04,$00,$04,$00,$00,$04
  3986.     dc.b    $04,$00,$00,$04,$00,$04,$04,$00,$00,$04,$04,$00,$04,$00,$00,$04
  3987.     dc.b    $00,$04,$04,$00,$04,$00,$00,$04,$04,$00,$00,$04,$00,$04,$04,$00
  3988.     dc.b    $80,$84,$84,$80,$84,$80,$80,$84,$84,$80,$80,$84,$80,$84,$84,$80
  3989.     dc.b    $84,$80,$80,$84,$80,$84,$84,$80,$80,$84,$84,$80,$84,$80,$80,$84
  3990.     dc.b    $84,$80,$80,$84,$80,$84,$84,$80,$80,$84,$84,$80,$84,$80,$80,$84
  3991.     dc.b    $80,$84,$84,$80,$84,$80,$80,$84,$84,$80,$80,$84,$80,$84,$84,$80
  3992.     dc.b    $84,$80,$80,$84,$80,$84,$84,$80,$80,$84,$84,$80,$84,$80,$80,$84
  3993.     dc.b    $80,$84,$84,$80,$84,$80,$84,$80,$84,$80,$80,$84,$80,$84,$84,$80
  3994.     dc.b    $80,$84,$84,$80,$84,$80,$84,$80,$84,$80,$80,$84,$80,$84,$84,$80
  3995.     dc.b    $84,$80,$80,$84,$80,$84,$84,$80,$80,$84,$84,$80,$84,$80,$80,$84
  3996.     page
  3997. *************************************************************************
  3998. *                                    *
  3999. *    More dispatch tables.                        *
  4000. *                                    *
  4001. *************************************************************************
  4002.  
  4003. CBoptab:
  4004.     dc.l    rlcb,rlcc,rlcd,rlce,rlch,rlcl,rlcm,rlca         ;CB00
  4005.     dc.l    rrcb,rrcc,rrcd,rrce,rrch,rrcl,rrcm,rrca         ;CB08
  4006.     dc.l    rlrb,rlrc,rlrd,rlre,rlrh,rlrl,rlrm,rlra         ;CB10
  4007.     dc.l    rrrb,rrrc,rrrd,rrre,rrrh,rrrl,rrrm,rrra         ;CB18
  4008.     dc.l    slab,slac,slad,slae,slah,slal,slam,slaa         ;CB20
  4009.     dc.l    srab,srac,srad,srae,srah,sral,sram,sraa         ;CB28
  4010.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;CB30
  4011.     dc.l    srlb,srlc,srld,srle,srlh,srll,srlm,srla         ;CB38
  4012.     dc.l    bit0b,bit0c,bit0d,bit0e,bit0h,bit0l,bit0m,bit0a     ;CB40
  4013.     dc.l    bit1b,bit1c,bit1d,bit1e,bit1h,bit1l,bit1m,bit1a     ;CB48
  4014.     dc.l    bit2b,bit2c,bit2d,bit2e,bit2h,bit2l,bit2m,bit2a     ;CB50
  4015.     dc.l    bit3b,bit3c,bit3d,bit3e,bit3h,bit3l,bit3m,bit3a     ;CB58
  4016.     dc.l    bit4b,bit4c,bit4d,bit4e,bit4h,bit4l,bit4m,bit4a     ;CB60
  4017.     dc.l    bit5b,bit5c,bit5d,bit5e,bit5h,bit5l,bit5m,bit5a     ;CB68
  4018.     dc.l    bit6b,bit6c,bit6d,bit6e,bit6h,bit6l,bit6m,bit6a     ;CB70
  4019.     dc.l    bit7b,bit7c,bit7d,bit7e,bit7h,bit7l,bit7m,bit7a     ;CB78
  4020.     dc.l    res0b,res0c,res0d,res0e,res0h,res0l,res0m,res0a     ;CB80
  4021.     dc.l    res1b,res1c,res1d,res1e,res1h,res1l,res1m,res1a     ;CB88
  4022.     dc.l    res2b,res2c,res2d,res2e,res2h,res2l,res2m,res2a     ;CB90
  4023.     dc.l    res3b,res3c,res3d,res3e,res3h,res3l,res3m,res3a     ;CB98
  4024.     dc.l    res4b,res4c,res4d,res4e,res4h,res4l,res4m,res4a     ;CBA0
  4025.     dc.l    res5b,res5c,res5d,res5e,res5h,res5l,res5m,res5a     ;CBA8
  4026.     dc.l    res6b,res6c,res6d,res6e,res6h,res6l,res6m,res6a     ;CBB0
  4027.     dc.l    res7b,res7c,res7d,res7e,res7h,res7l,res7m,res7a     ;CBB8
  4028.     dc.l    set0b,set0c,set0d,set0e,set0h,set0l,set0m,set0a     ;CBC0
  4029.     dc.l    set1b,set1c,set1d,set1e,set1h,set1l,set1m,set1a     ;CBC8
  4030.     dc.l    set2b,set2c,set2d,set2e,set2h,set2l,set2m,set2a     ;CBD0
  4031.     dc.l    set3b,set3c,set3d,set3e,set3h,set3l,set3m,set3a     ;CBD8
  4032.     dc.l    set4b,set4c,set4d,set4e,set4h,set4l,set4m,set4a     ;CBE0
  4033.     dc.l    set5b,set5c,set5d,set5e,set5h,set5l,set5m,set5a     ;CBE8
  4034.     dc.l    set6b,set6c,set6d,set6e,set6h,set6l,set6m,set6a     ;CBF0
  4035.     dc.l    set7b,set7c,set7d,set7e,set7h,set7l,set7m,set7a     ;CBF8
  4036.  
  4037. DDoptab:
  4038.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DD00
  4039.     dc.l    illgED,dadixb,illgED,illgED,illgED,illgED,illgED,illgED ;DD08
  4040.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DD10
  4041.     dc.l    illgED,dadixd,illgED,illgED,illgED,illgED,illgED,illgED ;DD18
  4042.     dc.l    illgED,lxiix,sixd,inxix,inrxh,dcrxh,mvixh,illgED    ;DD20
  4043.     dc.l    illgED,dadixx,lixd,dcxix,inrxl,dcrxl,mvixl,illgED    ;DD28
  4044.     dc.l    illgED,illgED,illgED,illgED,inrix,dcrix,mviix,illgED    ;DD30
  4045.     dc.l    illgED,dadixs,illgED,illgED,illgED,illgED,illgED,illgED ;DD38
  4046.     dc.l    illgED,illgED,illgED,illgED,movbxh,movbxl,movbix,illgED ;DD40
  4047.     dc.l    illgED,illgED,illgED,illgED,movcxh,movcxl,movcix,illgED ;DD48
  4048.     dc.l    illgED,illgED,illgED,illgED,movdxh,movdxl,movdix,illgED ;DD50
  4049.     dc.l    illgED,illgED,illgED,illgED,movexh,movexl,moveix,illgED ;DD58
  4050.     dc.l    movxhb,movxhc,movxhd,movxhe,mvxhxh,mvxhxl,movhix,movxha ;DD60
  4051.     dc.l    movxlb,movxlc,movxld,movxle,mvxlxh,mvxlxl,movlix,movxla ;DD68
  4052.     dc.l    movixb,movixc,movixd,movixe,movixh,movixl,illgED,movixa ;DD70
  4053.     dc.l    illgED,illgED,illgED,illgED,movaxh,movaxl,movaix,illgED ;DD78
  4054.     dc.l    illgED,illgED,illgED,illgED,addxh,addxl,addix,illgED    ;DD80
  4055.     dc.l    illgED,illgED,illgED,illgED,adcxh,adcxl,adcix,illgED    ;DD88
  4056.     dc.l    illgED,illgED,illgED,illgED,subxh,subxl,subix,illgED    ;DD90
  4057.     dc.l    illgED,illgED,illgED,illgED,sbbxh,sbbxl,sbbix,illgED    ;DD98
  4058.     dc.l    illgED,illgED,illgED,illgED,anaxh,anaxl,anaix,illgED    ;DDA0
  4059.     dc.l    illgED,illgED,illgED,illgED,xraxh,xraxl,xraix,illgED    ;DDA8
  4060.     dc.l    illgED,illgED,illgED,illgED,oraxh,oraxl,oraix,illgED    ;DDB0
  4061.     dc.l    illgED,illgED,illgED,illgED,cmpxh,cmpxl,cmpix,illgED    ;DDB8
  4062.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DDC0
  4063.     dc.l    illgED,illgED,illgED,prDDCB,illgED,illgED,illgED,illgED ;DDC8
  4064.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DDD0
  4065.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DDD8
  4066.     dc.l    illgED,popix,illgED,xtix,illgED,pushix,illgED,illgED    ;DDE0
  4067.     dc.l    illgED,pcix,illgED,illgED,illgED,illgED,illgED,illgED    ;DDE8
  4068.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;DDF0
  4069.     dc.l    illgED,spix,illgED,illgED,illgED,illgED,illgED,illgED    ;DDF8
  4070.  
  4071. DDCBopt:
  4072.     dc.l    rlcix,rrcix,rlix,rrix,slaix,sraix,ilgDDCB,srlix     ;DDCB06
  4073.     dc.l    bit0ix,bit1ix,bit2ix,bit3ix,bit4ix,bit5ix,bit6ix,bit7ix ;DDCB46
  4074.     dc.l    res0ix,res1ix,res2ix,res3ix,res4ix,res5ix,res6ix,res7ix ;DDCB86
  4075.     dc.l    set0ix,set1ix,set2ix,set3ix,set4ix,set5ix,set6ix,set7ix ;DDCBC6
  4076.  
  4077. EDoptab:
  4078.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED00
  4079.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED08
  4080.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED10
  4081.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED18
  4082.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED20
  4083.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED28
  4084.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED30
  4085.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED38
  4086.     dc.l    inbc,outcb,dsbbb,sbcd,nega,retn,im0,moveia        ;ED40
  4087.     dc.l    incc,outcc,dadcb,lbcd,illgED,reti,illgED,movera     ;ED48
  4088.     dc.l    indc,outcd,dsbbd,sded,illgED,illgED,im1,moveai        ;ED50
  4089.     dc.l    inec,outce,dadcd,lded,illgED,illgED,im2,movear        ;ED58
  4090.     dc.l    inhc,outch,dsbbh,shld,illgED,illgED,illgED,rrd        ;ED60
  4091.     dc.l    inlc,outcl,dadch,lhld,illgED,illgED,illgED,rld        ;ED68
  4092.     dc.l    inmc,outcm,dsbbs,sspd,illgED,illgED,illgED,illgED    ;ED70
  4093.     dc.l    inac,outca,dadcs,lspd,illgED,illgED,illgED,illgED    ;ED78
  4094.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED80
  4095.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED88
  4096.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED90
  4097.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED98
  4098.     dc.l    ldi,cmpi,ini,outi,illgED,illgED,illgED,illgED        ;EDA0
  4099.     dc.l    ldd,cpd,ind,outd,illgED,illgED,illgED,illgED        ;EDA8
  4100.     dc.l    ldir,cpir,inir,otir,illgED,illgED,illgED,illgED     ;EDB0
  4101.     dc.l    lddr,cpdr,indr,otdr,illgED,illgED,illgED,illgED     ;EDB8
  4102.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDC0
  4103.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDC8
  4104.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDD0
  4105.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDD8
  4106.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDE0
  4107.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDE8
  4108.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDF0
  4109.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDF8
  4110.  
  4111. FDoptab:
  4112.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FD00
  4113.     dc.l    illgED,dadiyb,illgED,illgED,illgED,illgED,illgED,illgED ;FD08
  4114.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FD10
  4115.     dc.l    illgED,dadiyd,illgED,illgED,illgED,illgED,illgED,illgED ;FD18
  4116.     dc.l    illgED,lxiiy,siyd,inxiy,inryh,dcryh,mviyh,illgED    ;FD20
  4117.     dc.l    illgED,dadiyy,liyd,dcxiy,inryl,dcryl,mviyl,illgED    ;FD28
  4118.     dc.l    illgED,illgED,illgED,illgED,inriy,dcriy,mviiy,illgED    ;FD30
  4119.     dc.l    illgED,dadiys,illgED,illgED,illgED,illgED,illgED,illgED ;FD38
  4120.     dc.l    illgED,illgED,illgED,illgED,movbyh,movbyl,movbiy,illgED ;FD40
  4121.     dc.l    illgED,illgED,illgED,illgED,movcyh,movcyl,movciy,illgED ;FD48
  4122.     dc.l    illgED,illgED,illgED,illgED,movdyh,movdyl,movdiy,illgED ;FD50
  4123.     dc.l    illgED,illgED,illgED,illgED,moveyh,moveyl,moveiy,illgED ;FD58
  4124.     dc.l    movyhb,movyhc,movyhd,movyhe,mvyhyh,mvyhyl,movhiy,movyha ;FD60
  4125.     dc.l    movylb,movylc,movyld,movyle,mvylyh,mvylyl,movliy,movyla ;FD68
  4126.     dc.l    moviyb,moviyc,moviyd,moviye,moviyh,moviyl,illgED,moviya ;FD70
  4127.     dc.l    illgED,illgED,illgED,illgED,movayh,movayl,movaiy,illgED ;FD78
  4128.     dc.l    illgED,illgED,illgED,illgED,addyh,addyl,addiy,illgED    ;FD80
  4129.     dc.l    illgED,illgED,illgED,illgED,adcyh,adcyl,adciy,illgED    ;FD88
  4130.     dc.l    illgED,illgED,illgED,illgED,subyh,subyl,subiy,illgED    ;FD90
  4131.     dc.l    illgED,illgED,illgED,illgED,sbbyh,sbbyl,sbbiy,illgED    ;FD98
  4132.     dc.l    illgED,illgED,illgED,illgED,anayh,anayl,anaiy,illgED    ;FDA0
  4133.     dc.l    illgED,illgED,illgED,illgED,xrayh,xrayl,xraiy,illgED    ;FDA8
  4134.     dc.l    illgED,illgED,illgED,illgED,orayh,orayl,oraiy,illgED    ;FDB0
  4135.     dc.l    illgED,illgED,illgED,illgED,cmpyh,cmpyl,cmpiy,illgED    ;FDB8
  4136.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FDC0
  4137.     dc.l    illgED,illgED,illgED,prFDCB,illgED,illgED,illgED,illgED ;FDC8
  4138.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FDD0
  4139.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FDD8
  4140.     dc.l    illgED,popiy,illgED,xtiy,illgED,pushiy,illgED,illgED    ;FDE0
  4141.     dc.l    illgED,pciy,illgED,illgED,illgED,illgED,illgED,illgED    ;FDE8
  4142.     dc.l    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;FDF0
  4143.     dc.l    illgED,spiy,illgED,illgED,illgED,illgED,illgED,illgED    ;FDF8
  4144.  
  4145.     bss    bss
  4146.  
  4147. daaop1     ds.b    1   ; Arrrrgh! I hate these
  4148. daaop2     ds.b    1
  4149. daaop3     ds.b    1
  4150.      EVEN
  4151. daaop1b  ds.b    1
  4152. daaop2b  ds.b    1
  4153. daaop3b  ds.b    1
  4154.      EVEN
  4155. daastack ds.l    512
  4156. daastmid ds.l    512
  4157. daastackend
  4158. daasp    ds.l    1
  4159.  
  4160. firstad ds.l    1   ; for fast LDIR
  4161. lastad    ds.l    1
  4162. sRF    ds.w    1   ; The seven copy protection bits
  4163.  
  4164.     end
  4165.