home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d01xx / d0165.lha / CPM / Source / zekdd.a < prev    next >
Text File  |  1988-11-22  |  25KB  |  1,420 lines

  1. ;    z80 emulator subkernel
  2. ;    $dd and $fd two byte opcodes
  3.  
  4. zekddver:    dc.b    'Zekdd Ver: 00018   Date: 25-Sep-88 21:34:37 ',0
  5.  
  6. ;    This source code is released into the public domain for
  7. ;    non-profit use only.
  8. ;    Copyright (C) 1988, Ulf Nordquist. All Rights Reserved !'
  9. ;    Ulf Nordquist
  10. ;    Brunnehagen 36
  11. ;    417 47 Gothenburg
  12. ;    Sweden
  13.  
  14. ;    self modifying code is used
  15.  
  16. ;    history
  17. ;    880222 : first
  18. ;         $dd opcodes
  19. ;    880223 : $fd opcodes
  20. ;         $ddcb & $fdcb
  21. ;    880430 : ver 00001
  22. ;    880710 : modify code in main emu loop when debug count
  23. ;         ddinit, ddstart, ddstop
  24. ;    880820 : include zekmc.i
  25. ;    880821 : use setflgl in logical instructions
  26. ;    880911 : bug1 chk if really count, can be set by trace
  27. ;    880920 : bug2 ld h,(ix+dd) ld l,(ix+dd) ld (ix+dd),h ld (ix+dd),l
  28.  
  29. ;    globals from this module
  30.  
  31.         xdef    ddinit
  32.         xdef    ddstart
  33.         xdef    ddstop
  34.         xdef    z80opcdd
  35.         xdef    z80opcfd
  36.         xdef    zekddver
  37.  
  38. ;    externals from zek
  39.  
  40.         xref    cntbuf
  41.         xref    ddoffs
  42.         xref    fdoffs
  43.         xref    setflg
  44.         xref    setflgl
  45.         xref    setflgnc
  46.         xref    z80emu1
  47.  
  48. ;    externals from cz
  49.  
  50.         xref    z80opc2ni
  51.         xref    glflgs
  52.  
  53. ;    macro
  54.  
  55.         include zekmc.i
  56.  
  57.         ds.w    0            ;alignment
  58.  
  59. ;    ddinit
  60. ;    initialize emulation parameters
  61. ;    start count of opcode, bdos & bios
  62. ;    stop count of opcode, bdos & bios
  63.  
  64. ddstart:
  65. ddstop:
  66. ddinit:     move.l    #z80emuswdd,a6
  67.         move.w    (a6),d1                 ;get bra.s
  68.         move.w    cntinstdd,(a6)          ;put addq
  69.         move.w    d1,cntinstdd        ;save bra.s
  70.         move.l    #z80emuswfd,a6
  71.         move.w    (a6),d1                 ;get bra.s
  72.         move.w    cntinstfd,(a6)          ;put addq
  73.         move.w    d1,cntinstfd        ;save bra.s
  74.         rts
  75.  
  76. ;    entry : d0.l=fa'fa, d1.l=hl'hl, d2.l=de'de, d3.l=bc'bc
  77. ;        d4.l=iyix
  78. ;        d7.l=number of instructions to run, 0=until halt
  79. ;        a0.w=pc, a1.w=sp
  80. ;        a2.l=ptr to scratch, a3.l=z80opctab,
  81. ;        a4.l=ptr z80 program area start
  82. ;        the program area must be configured as this:
  83. ;        relative start    0      $8000    $ffff
  84. ;                |________|________|
  85. ;        pc          $8000     0    $7fff
  86. ;        d0 flags 15 14 13 12 11 10  9  8
  87. ;              s  z    -  h  -  v  n  c
  88. ;    scratch use : d5.l, d6.l, a5.l, a6.l
  89. ;    limitations
  90.  
  91. ;    opcode $dd decode instruction
  92.  
  93. z80opcdd:    moveq.l #0,d6
  94.         move.b    0(a4,a0.w),d6           ;2:nd opcode
  95. z80emuswdd:    bra.s    countdd
  96. z80emu3dd:    asl.w    #2,d6            ;4 bytes per entry
  97.         move.l    #z80opctabdd,a5
  98.         move.l    0(a5,d6.l),a5
  99.         move.b    0(a4,a0.w),d6           ;possible displacement
  100.         ext.w    d6            ;make word
  101.         bclr.b    #0,flags        ;flg ix
  102.         add.w    d4,d6            ;ix+dd
  103.         jmp    (a5)                    ;do instruction
  104.  
  105. ;    opcode $fd decode instruction
  106.  
  107. z80opcfd:    moveq.l #0,d6
  108.         move.b    0(a4,a0.w),d6           ;2:nd opcode
  109. z80emuswfd:    bra.s    countfd
  110. z80emu3fd:    asl.w    #2,d6            ;4 bytes per entry
  111.         move.l    #z80opctabdd,a5
  112.         move.l    0(a5,d6.l),a5
  113.         move.b    0(a4,a0.w),d6           ;possible displacement
  114.         ext.w    d6            ;make word
  115.         swap    d4            ;ix<->iy
  116.         bset.b    #0,flags        ;flg iy
  117.         add.w    d4,d6            ;iy+dd
  118.         jmp    (a5)                    ;do instruction
  119.  
  120.  
  121. ;    after instruction
  122.  
  123. z80eend:    btst.b    #0,flags
  124.         bne.s    z80eend1        ;if iy
  125.         jmp    z80emu1
  126. z80eend1:    swap    d4            ;ix<->iy, restore
  127.         jmp    z80emu1
  128.  
  129. ;    code if debug count mode $dd opcode
  130.  
  131. countdd:    btst.b    #5,glflgs
  132.         beq.s    countdd1        ;if no count
  133.         move.l    cntbuf,a5
  134.         add.w    d6,a5
  135.         addq.b    #1,ddoffs(a5)           ;inc cnt
  136.         bne.s    countdd1        ;if not max cnt
  137.         subq.b    #1,ddoffs(a5)           ;restore max cnt
  138. countdd1:    addq.l    #1,a0
  139.         bra.s    z80emu3dd        ;cont emu
  140.  
  141. ;    code if debug count mode $fd opcode
  142.  
  143. countfd:    btst.b    #5,glflgs
  144.         beq.s    countfd1        ;if no count
  145.         move.l    cntbuf,a5
  146.         add.w    d6,a5
  147.         addq.b    #1,fdoffs(a5)           ;inc cnt
  148.         bne.s    countfd1        ;if not max cnt
  149.         subq.b    #1,fdoffs(a5)           ;restore max cnt
  150. countfd1:    addq.l    #1,a0
  151.         bra.s    z80emu3fd        ;cont emu
  152.  
  153. ;    not implemented opcode
  154.  
  155. z80emuni:    addq.l    #4,a7            ;ret addr
  156.         jmp    z80opc2ni
  157.  
  158. ;    not implemented opcode for $ddcb
  159.  
  160. z80emuni2:    subq.l    #2,a0
  161.         bra.s    z80emuni
  162.  
  163. ;    nops
  164.  
  165. z80opc64:
  166. z80opc6d:    bra    z80eend
  167.  
  168. ;    $09 add ix,bc
  169.  
  170. z80opc09:    addixrr d3
  171.         bra    z80eend
  172.  
  173. ;    $19 add ix,de
  174.  
  175. z80opc19:    addixrr d2
  176.         bra    z80eend
  177.  
  178. ;    $21 ld ix,nn
  179.  
  180. z80opc21:    ldrrimm d4
  181.         bra    z80eend
  182.  
  183. ;    $22 ld (nn),ix
  184.  
  185. z80opc22:    ldindrr d4
  186.         bra    z80eend
  187.  
  188. ;    $23 inc ix
  189.  
  190. z80opc23:    addq.w    #1,d4
  191.         bra    z80eend
  192.  
  193. ;    $24 inc ixh
  194.  
  195. z80opc24:    inchr    d4
  196.         bra    z80eend
  197.  
  198. ;    $25 dec ixh
  199.  
  200. z80opc25:    dechr    d4
  201.         bra    z80eend
  202.  
  203. ;    $26 ld ixh,n
  204.  
  205. z80opc26:    ldhrimm d4
  206.         bra    z80eend
  207.  
  208. ;    $29 add ix,ix
  209.  
  210. z80opc29:    addixrr d4
  211.         bra    z80eend
  212.  
  213. ;    $2a ld ix,(nn)
  214.  
  215. z80opc2a:    ldrrind d4
  216.         bra    z80eend
  217.  
  218. ;    $2b dec ix
  219.  
  220. z80opc2b:    subq.w    #1,d4
  221.         bra    z80eend
  222.  
  223. ;    $2c inc ixl
  224.  
  225. z80opc2c:    addq.b    #1,d4
  226.         jsr    setflgnc
  227.         bra    z80eend
  228.  
  229. ;    $2d dec ixl
  230.  
  231. z80opc2d:    subq.b    #1,d4
  232.         jsr    setflgnc
  233.         bra    z80eend
  234.  
  235. ;    $2e ld ixl,n
  236.  
  237. z80opc2e:    move.b    0(a4,a0.w),d4           ;new l
  238.         addq.l    #1,a0
  239.         bra    z80eend
  240.  
  241. ;    $34 inc (ix+dd)
  242.  
  243. z80opc34:    addq.l    #1,a0            ;skip disp
  244.         addq.b    #1,0(a4,d6.w)
  245.         jsr    setflgnc
  246.         bra    z80eend
  247.  
  248. ;    $35 dec (ix+dd)
  249.  
  250. z80opc35:    addq.l    #1,a0            ;skip disp
  251.         subq.b    #1,0(a4,d6.w)
  252.         jsr    setflgnc
  253.         bra    z80eend
  254.  
  255. ;    $36 ld (ix+dd),n
  256.  
  257. z80opc36:    addq.l    #2,a0            ;skip disp & n
  258.         move.b    -1(a4,a0.w),d5          ;n
  259.         move.b    d5,0(a4,d6.w)
  260.         bra    z80eend
  261.  
  262. ;    $39 add ix,sp
  263.  
  264. z80opc39:    move.w    a1,d6            ;sp
  265.         addixrr d6
  266.         bra    z80eend
  267.  
  268. ;    $44 ld b,ixh
  269.  
  270. z80opc44:    move.b    d3,d6
  271.         move.w    d4,d3            ;h->b
  272.         move.b    d6,d3            ;restore c
  273.         bra    z80eend
  274.  
  275. ;    $45 ld b,ixl
  276.  
  277. z80opc45:    rol.w    #8,d3            ;b<->c
  278.         move.b    d4,d3            ;l->b
  279.         rol.w    #8,d3            ;b<->c, restore
  280.         bra    z80eend
  281.  
  282. ;    $46 ld b,(ix+dd)
  283.  
  284. z80opc46:    addq.l    #1,a0            ;skip disp
  285.         rol.w    #8,d3            ;b<->c
  286.         move.b    0(a4,d6.w),d3           ;b
  287.         rol.w    #8,d3            ;b<->c, restore
  288.         bra    z80eend
  289.  
  290. ;    $4c ld c,ixh
  291.  
  292. z80opc4c:    move.w    d4,(a2)
  293.         move.b    (a2),d3                 ;h->c
  294.         bra    z80eend
  295.  
  296. ;    $4d ld c,ixl
  297.  
  298. z80opc4d:    move.b    d4,d3            ;l->c
  299.         bra    z80eend
  300.  
  301. ;    $4e ld c,(ix+dd)
  302.  
  303. z80opc4e:    addq.l    #1,a0            ;skip disp
  304.         move.b    0(a4,d6.w),d3           ;c
  305.         bra    z80eend
  306.  
  307. ;    $54 ld d,ixh
  308.  
  309. z80opc54:    move.b    d2,d6
  310.         move.w    d4,d2            ;h->d
  311.         move.b    d6,d2            ;restore e
  312.         bra    z80eend
  313.  
  314. ;    $55 ld d,ixl
  315.  
  316. z80opc55:    rol.w    #8,d2            ;d<->e
  317.         move.b    d4,d2            ;l->d
  318.         rol.w    #8,d2            ;d<->e, restore
  319.         bra    z80eend
  320.  
  321. ;    $56 ld d,(ix+dd)
  322.  
  323. z80opc56:    addq.l    #1,a0            ;skip disp
  324.         rol.w    #8,d2            ;d<->e
  325.         move.b    0(a4,d6.w),d2           ;d
  326.         rol.w    #8,d2            ;d<->e, restore
  327.         bra    z80eend
  328.  
  329. ;    $5c ld e,ixh
  330.  
  331. z80opc5c:    move.w    d4,(a2)
  332.         move.b    (a2),d2                 ;h->e
  333.         bra    z80eend
  334.  
  335. ;    $5d ld e,ixl
  336.  
  337. z80opc5d:    move.b    d4,d2            ;l->e
  338.         bra    z80eend
  339.  
  340. ;    $5e ld e,(ix+dd)
  341.  
  342. z80opc5e:    addq.l    #1,a0            ;skip disp
  343.         move.b    0(a4,d6.w),d2           ;e
  344.         bra    z80eend
  345.  
  346. ;    $60 ld ixh,b
  347.  
  348. z80opc60:    move.b    d4,d6
  349.         move.w    d3,d4            ;b->h
  350.         move.b    d6,d4            ;restore l
  351.         bra    z80eend
  352.  
  353. ;    $61 ld ixh,c
  354.  
  355. z80opc61:    rol.w    #8,d4            ;h<->l
  356.         move.b    d3,d4            ;c->h
  357.         rol.w    #8,d4            ;h<->l, restore
  358.         bra    z80eend
  359.  
  360. ;    $62 ld ixh,d
  361.  
  362. z80opc62:    move.b    d4,d6
  363.         move.w    d2,d4            ;d->h
  364.         move.b    d6,d4            ;restore l
  365.         bra    z80eend
  366.  
  367. ;    $63 ld ixh,e
  368.  
  369. z80opc63:    rol.w    #8,d4            ;h<->l
  370.         move.b    d2,d4            ;e->h
  371.         rol.w    #8,d4            ;h<->l, restore
  372.         bra    z80eend
  373.  
  374. ;    $64 ld ixh,ixh is nop
  375.  
  376. ;    $65 ld ixh,ixl
  377.  
  378. z80opc65:    move.b    d4,d6
  379.         rol.w    #8,d4            ;h<->l
  380.         move.b    d6,d4            ;restore l
  381.         bra    z80eend
  382.  
  383. ;    $66 ld h,(ix+dd)
  384.  
  385. z80opc66:    addq.l    #1,a0            ;skip disp
  386.         rol.w    #8,d1            ;h<->l
  387.         move.b    0(a4,d6.w),d1           ;h
  388.         rol.w    #8,d1            ;h<->l, restore
  389.         bra    z80eend
  390.  
  391. ;    $67 ld ixh,a
  392.  
  393. z80opc67:    rol.w    #8,d4            ;h<->l
  394.         move.b    d0,d4            ;a->h
  395.         rol.w    #8,d4            ;h<->l, restore
  396.         bra    z80eend
  397.  
  398. ;    $68 ld ixl,b
  399.  
  400. z80opc68:    move.w    d3,(a2)
  401.         move.b    (a2),d4                 ;b->l
  402.         bra    z80eend
  403.  
  404. ;    $69 ld ixl,c
  405.  
  406. z80opc69:    move.b    d3,d4            ;c->l
  407.         bra    z80eend
  408.  
  409. ;    $6a ld ixl,d
  410.  
  411. z80opc6a:    move.w    d2,(a2)
  412.         move.b    (a2),d4                 ;d->l
  413.         bra    z80eend
  414.  
  415. ;    $6b ld ixl,e
  416.  
  417. z80opc6b:    move.b    d2,d4            ;e->l
  418.         bra    z80eend
  419.  
  420. ;    $6c ld ixl,ixh
  421.  
  422. z80opc6c:    move.w    d4,(a2)
  423.         move.b    (a2),d4                 ;h->l
  424.         bra    z80eend
  425.  
  426. ;    $6d ld ixl,ixl is nop
  427.  
  428. ;    $6e ld l,(ix+dd)
  429.  
  430. z80opc6e:    addq.l    #1,a0            ;skip disp
  431.         move.b    0(a4,d6.w),d1           ;l
  432.         bra    z80eend
  433.  
  434. ;    $6f ld ixl,a
  435.  
  436. z80opc6f:    move.b    d0,d4            ;a->l
  437.         bra    z80eend
  438.  
  439. ;    $70 ld (ix+dd),b
  440.  
  441. z80opc70:    addq.l    #1,a0            ;skip disp
  442.         move.w    d3,d5
  443.         rol.w    #8,d5
  444.         move.b    d5,0(a4,d6.w)           ;b
  445.         bra    z80eend
  446.  
  447. ;    $71 ld (ix+dd),c
  448.  
  449. z80opc71:    addq.l    #1,a0            ;skip disp
  450.         move.b    d3,0(a4,d6.w)           ;c
  451.         bra    z80eend
  452.  
  453. ;    $72 ld (ix+dd),d
  454.  
  455. z80opc72:    addq.l    #1,a0            ;skip disp
  456.         move.w    d2,d5
  457.         rol.w    #8,d5
  458.         move.b    d5,0(a4,d6.w)           ;d
  459.         bra    z80eend
  460.  
  461. ;    $73 ld (ix+dd),e
  462.  
  463. z80opc73:    addq.l    #1,a0            ;skip disp
  464.         move.b    d2,0(a4,d6.w)           ;e
  465.         bra    z80eend
  466.  
  467. ;    $74 ld (ix+dd),h
  468.  
  469. z80opc74:    addq.l    #1,a0            ;skip disp
  470.         move.w    d1,d5
  471.         rol.w    #8,d5
  472.         move.b    d5,0(a4,d6.w)           ;h
  473.         bra    z80eend
  474.  
  475. ;    $75 ld (ix+dd),l
  476.  
  477. z80opc75:    addq.l    #1,a0            ;skip disp
  478.         move.b    d1,0(a4,d6.w)           ;l
  479.         bra    z80eend
  480.  
  481. ;    $77 ld (ix+dd),a
  482.  
  483. z80opc77:    addq.l    #1,a0            ;skip disp
  484.         move.b    d0,0(a4,d6.w)           ;a
  485.         bra    z80eend
  486.  
  487. ;    $7c ld a,ixh
  488.  
  489. z80opc7c:    move.w    d4,(a2)
  490.         move.b    (a2),d0                 ;h->a
  491.         bra    z80eend
  492.  
  493. ;    $7d ld a,ixl
  494.  
  495. z80opc7d:    move.b    d4,d0            ;l->a
  496.         bra    z80eend
  497.  
  498. ;    $7e ld a,(ix+dd)
  499.  
  500. z80opc7e:    addq.l    #1,a0            ;skip disp
  501.         move.b    0(a4,d6.w),d0           ;a
  502.         bra    z80eend
  503.  
  504. ;    $84 add a,ixh
  505.  
  506. z80opc84:    move.w    d4,(a2)
  507.         add.b    (a2),d0                 ;a+h->a
  508.         jsr    setflg
  509.         bra    z80eend
  510.  
  511. ;    $85 add a,ixl
  512.  
  513. z80opc85:    add.b    d4,d0            ;a+l->a
  514.         jsr    setflg
  515.         bra    z80eend
  516.  
  517. ;    $86 add a,(ix+dd)
  518.  
  519. z80opc86:    addq.l    #1,a0            ;skip disp
  520.         add.b    0(a4,d6.w),d0           ;a+(ix+dd)->a
  521.         jsr    setflg
  522.         bra    z80eend
  523.  
  524. ;    $8c adc a,ixh
  525.  
  526. z80opc8c:    move.w    d4,d6
  527.         rol.w    #8,d6            ;h to lo
  528.         and.b    #%11101111,ccr        ;clr x
  529.         btst.l    #8,d0
  530.         beq.s    z80opc8c1        ;if no cy
  531.         or.b    #%00010000,ccr        ;set x
  532. z80opc8c1:    addx.b    d6,d0            ;a+h->a
  533.         jsr    setflg
  534.         bra    z80eend
  535.  
  536. ;    $8d adc a,ixl
  537.  
  538. z80opc8d:    and.b    #%11101111,ccr        ;clr x
  539.         btst.l    #8,d0
  540.         beq.s    z80opc8d1        ;if no cy
  541.         or.b    #%00010000,ccr        ;set x
  542. z80opc8d1:    addx.b    d4,d0            ;a+l->a
  543.         jsr    setflg
  544.         bra    z80eend
  545.  
  546. ;    $8e adc a,(ix+dd)
  547.  
  548. z80opc8e:    addq.l    #1,a0            ;skip disp
  549.         and.b    #%11101111,ccr        ;clr x
  550.         btst.l    #8,d0
  551.         beq.s    z80opc8e1        ;if no cy
  552.         or.b    #%00010000,ccr        ;set x
  553. z80opc8e1:    move.b    0(a4,d6.w),d6           ;(ix+dd)
  554.         addx.b    d6,d0            ;a+(ix+dd)->a
  555.         jsr    setflg
  556.         bra    z80eend
  557.  
  558. ;    $94 sub ixh
  559.  
  560. z80opc94:    move.w    d4,(a2)
  561.         sub.b    (a2),d0                 ;a-h->a
  562.         jsr    setflg
  563.         bra    z80eend
  564.  
  565. ;    $95 sub ixl
  566.  
  567. z80opc95:    sub.b    d4,d0            ;a-l->a
  568.         jsr    setflg
  569.         bra    z80eend
  570.  
  571. ;    $96 sub (ix+dd)
  572.  
  573. z80opc96:    addq.l    #1,a0            ;skip disp
  574.         sub.b    0(a4,d6.w),d0           ;a-(ix+dd)->a
  575.         jsr    setflg
  576.         bra    z80eend
  577.  
  578. ;    $9c sbc a,ixh
  579.  
  580. z80opc9c:    move.w    d4,d6
  581.         rol.w    #8,d6            ;h to lo
  582.         and.b    #%11101111,ccr        ;clr x
  583.         btst.l    #8,d0
  584.         beq.s    z80opc9c1        ;if no cy
  585.         or.b    #%00010000,ccr        ;set x
  586. z80opc9c1:    subx.b    d6,d0            ;a-h->a
  587.         jsr    setflg
  588.         bra    z80eend
  589.  
  590. ;    $9d sbc a,ixl
  591.  
  592. z80opc9d:    and.b    #%11101111,ccr        ;clr x
  593.         btst.l    #8,d0
  594.         beq.s    z80opc9d1        ;if no cy
  595.         or.b    #%00010000,ccr        ;set x
  596. z80opc9d1:    subx.b    d4,d0            ;a-l->a
  597.         jsr    setflg
  598.         bra    z80eend
  599.  
  600. ;    $9e sbc a,(ix+dd)
  601.  
  602. z80opc9e:    addq.l    #1,a0            ;skip disp
  603.         and.b    #%11101111,ccr        ;clr x
  604.         btst.l    #8,d0
  605.         beq.s    z80opc9e1        ;if no cy
  606.         or.b    #%00010000,ccr        ;set x
  607. z80opc9e1:    move.b    0(a4,d6.w),d6           ;(ix+dd)
  608.         subx.b    d6,d0            ;a-(ix+dd)->a
  609.         jsr    setflg
  610.         bra    z80eend
  611.  
  612. ;    $a4 and ixh
  613.  
  614. z80opca4:    move.w    d4,(a2)
  615.         and.b    (a2),d0                 ;a and h->a
  616.         jsr    setflgl
  617.         bra    z80eend
  618.  
  619. ;    $a5 and ixl
  620.  
  621. z80opca5:    and.b    d4,d0            ;a and l->a
  622.         jsr    setflgl
  623.         bra    z80eend
  624.  
  625. ;    $a6 and (ix+dd)
  626.  
  627. z80opca6:    addq.l    #1,a0            ;skip disp
  628.         and.b    0(a4,d6.w),d0           ;a and (ix+dd)->a
  629.         jsr    setflgl
  630.         bra    z80eend
  631.  
  632. ;    $ac xor ixh
  633.  
  634. z80opcac:    move.w    d4,(a2)
  635.         move.b    (a2),d6
  636.         eor.b    d6,d0            ;a xor h->a
  637.         jsr    setflgl
  638.         bra    z80eend
  639.  
  640. ;    $ad xor ixl
  641.  
  642. z80opcad:    eor.b    d4,d0            ;a xor l->a
  643.         jsr    setflgl
  644.         bra    z80eend
  645.  
  646. ;    $ae xor (ix+dd)
  647.  
  648. z80opcae:    addq.l    #1,a0            ;skip disp
  649.         move.b    0(a4,d6.w),d6           ;(ix+dd)
  650.         eor.b    d6,d0            ;a xor (ix+dd)->a
  651.         jsr    setflgl
  652.         bra    z80eend
  653.  
  654. ;    $b4 or ixh
  655.  
  656. z80opcb4:    move.w    d4,(a2)
  657.         or.b    (a2),d0                 ;a or h->a
  658.         jsr    setflgl
  659.         bra    z80eend
  660.  
  661. ;    $b5 or ixl
  662.  
  663. z80opcb5:    or.b    d4,d0            ;a or l->a
  664.         jsr    setflgl
  665.         bra    z80eend
  666.  
  667. ;    $b6 or (ix+dd)
  668.  
  669. z80opcb6:    addq.l    #1,a0            ;skip disp
  670.         or.b    0(a4,d6.w),d0           ;a or (ix+dd)->a
  671.         jsr    setflgl
  672.         bra    z80eend
  673.  
  674. ;    $bc cp ixh
  675.  
  676. z80opcbc:    move.w    d4,(a2)
  677.         cmp.b    (a2),d0                 ;a-h
  678.         jsr    setflg
  679.         bra    z80eend
  680.  
  681. ;    $bd cp ixl
  682.  
  683. z80opcbd:    cmp.b    d4,d0            ;a-l
  684.         jsr    setflg
  685.         bra    z80eend
  686.  
  687. ;    $be cp (ix+dd)
  688.  
  689. z80opcbe:    addq.l    #1,a0            ;skip disp
  690.         cmp.b    0(a4,d6.w),d0           ;a-(ix+dd)
  691.         jsr    setflg
  692.         bra    z80eend
  693.  
  694. ;    opcode $ddcb decode instruction
  695.  
  696. z80opccb:    addq.l    #1,a0            ;skip displacement
  697.         moveq.l #0,d5
  698.         move.b    0(a4,a0.w),d5           ;3:rd opcode
  699.         addq.l    #1,a0
  700.         asl.w    #2,d5            ;4 bytes per entry
  701.         move.l    #z80opctabcb,a5
  702.         move.l    0(a5,d5.l),a5
  703.         jmp    (a5)                    ;do instruction
  704.  
  705. ;    $e1 pop ix
  706.  
  707. z80opce1:    pop    d4
  708.         bra    z80eend
  709.  
  710. ;    $e3 ex (sp),ix
  711.  
  712. z80opce3:    move.b    1(a4,a1.w),d6           ;hi from stack
  713.         rol.w    #8,d6            ;move to hi
  714.         move.b    0(a4,a1.w),d6           ;lo from stack
  715.         move.w    d6,a5
  716.         move.w    d4,d6            ;ix
  717.         move.b    d6,0(a4,a1.w)           ;l to stack
  718.         rol.w    #8,d6            ;move hi to lo
  719.         move.b    d6,1(a4,a1.w)           ;h to stack
  720.         move.w    a5,d4            ;to ix
  721.         bra    z80eend
  722.  
  723. ;    $e5 push ix
  724.  
  725. z80opce5:    push    d4
  726.         bra    z80eend
  727.  
  728. ;    $e9 jp (ix)
  729.  
  730. z80opce9:    move.w    d4,a0
  731.         bra    z80eend
  732.  
  733. ;    $eb ex de,ix
  734.  
  735. z80opceb:    move.w    d2,d6            ;de
  736.         move.w    d4,d2            ;ix to de
  737.         move.w    d6,d4            ;de to ix
  738.         bra    z80eend
  739.  
  740. ;    $f9 ld sp,ix
  741.  
  742. z80opcf9:    move.w    d4,a1
  743.         bra    z80eend
  744.  
  745. ;    $cb46 bit 0,(ix+dd)
  746.  
  747. z80opccb46:    bset.l    #14,d0            ;flg z
  748.         btst.b    #0,0(a4,d6.w)
  749.         beq    z80eend         ;if z
  750.         bclr.l    #14,d0            ;flg nz
  751.         bra    z80eend
  752.  
  753. ;    $cb4e bit 1,(ix+dd)
  754.  
  755. z80opccb4e:    bset.l    #14,d0            ;flg z
  756.         btst.b    #1,0(a4,d6.w)
  757.         beq    z80eend         ;if z
  758.         bclr.l    #14,d0            ;flg nz
  759.         bra    z80eend
  760.  
  761. ;    $cb56 bit 2,(ix+dd)
  762.  
  763. z80opccb56:    bset.l    #14,d0            ;flg z
  764.         btst.b    #2,0(a4,d6.w)
  765.         beq    z80eend         ;if z
  766.         bclr.l    #14,d0            ;flg nz
  767.         bra    z80eend
  768.  
  769. ;    $cb5e bit 3,(ix+dd)
  770.  
  771. z80opccb5e:    bset.l    #14,d0            ;flg z
  772.         btst.b    #3,0(a4,d6.w)
  773.         beq    z80eend         ;if z
  774.         bclr.l    #14,d0            ;flg nz
  775.         bra    z80eend
  776.  
  777. ;    $cb66 bit 4,(ix+dd)
  778.  
  779. z80opccb66:    bset.l    #14,d0            ;flg z
  780.         btst.b    #4,0(a4,d6.w)
  781.         beq    z80eend         ;if z
  782.         bclr.l    #14,d0            ;flg nz
  783.         bra    z80eend
  784.  
  785. ;    $cb6e bit 5,(ix+dd)
  786.  
  787. z80opccb6e:    bset.l    #14,d0            ;flg z
  788.         btst.b    #5,0(a4,d6.w)
  789.         beq    z80eend         ;if z
  790.         bclr.l    #14,d0            ;flg nz
  791.         bra    z80eend
  792.  
  793. ;    $cb76 bit 6,(ix+dd)
  794.  
  795. z80opccb76:    bset.l    #14,d0            ;flg z
  796.         btst.b    #6,0(a4,d6.w)
  797.         beq    z80eend         ;if z
  798.         bclr.l    #14,d0            ;flg nz
  799.         bra    z80eend
  800.  
  801. ;    $cb7e bit 7,(ix+dd)
  802.  
  803. z80opccb7e:    bset.l    #14,d0            ;flg z
  804.         btst.b    #7,0(a4,d6.w)
  805.         beq    z80eend         ;if z
  806.         bclr.l    #14,d0            ;flg nz
  807.         bra    z80eend
  808.  
  809. ;    $cb86 res 0,(ix+dd)
  810.  
  811. z80opccb86:    bclr.b    #0,0(a4,d6.w)
  812.         bra    z80eend
  813.  
  814. ;    $cb8e res 1,(ix+dd)
  815.  
  816. z80opccb8e:    bclr.b    #1,0(a4,d6.w)
  817.         bra    z80eend
  818.  
  819. ;    $cb96 res 2,(ix+dd)
  820.  
  821. z80opccb96:    bclr.b    #2,0(a4,d6.w)
  822.         bra    z80eend
  823.  
  824. ;    $cb9e res 3,(ix+dd)
  825.  
  826. z80opccb9e:    bclr.b    #3,0(a4,d6.w)
  827.         bra    z80eend
  828.  
  829. ;    $cba6 res 4,(ix+dd)
  830.  
  831. z80opccba6:    bclr.b    #4,0(a4,d6.w)
  832.         bra    z80eend
  833.  
  834. ;    $cbae res 5,(ix+dd)
  835.  
  836. z80opccbae:    bclr.b    #5,0(a4,d6.w)
  837.         bra    z80eend
  838.  
  839. ;    $cbb6 res 6,(ix+dd)
  840.  
  841. z80opccbb6:    bclr.b    #6,0(a4,d6.w)
  842.         bra    z80eend
  843.  
  844. ;    $cbbe res 7,(ix+dd)
  845.  
  846. z80opccbbe:    bclr.b    #7,0(a4,d6.w)
  847.         bra    z80eend
  848.  
  849. ;    $cbc6 set 0,(ix+dd)
  850.  
  851. z80opccbc6:    bset.b    #0,0(a4,d6.w)
  852.         bra    z80eend
  853.  
  854. ;    $cbce set 1,(ix+dd)
  855.  
  856. z80opccbce:    bset.b    #1,0(a4,d6.w)
  857.         bra    z80eend
  858.  
  859. ;    $cbd6 set 2,(ix+dd)
  860.  
  861. z80opccbd6:    bset.b    #2,0(a4,d6.w)
  862.         bra    z80eend
  863.  
  864. ;    $cbde set 3,(ix+dd)
  865.  
  866. z80opccbde:    bset.b    #3,0(a4,d6.w)
  867.         bra    z80eend
  868.  
  869. ;    $cbe6 set 4,(ix+dd)
  870.  
  871. z80opccbe6:    bset.b    #4,0(a4,d6.w)
  872.         bra    z80eend
  873.  
  874. ;    $cbee set 5,(ix+dd)
  875.  
  876. z80opccbee:    bset.b    #5,0(a4,d6.w)
  877.         bra    z80eend
  878.  
  879. ;    $cbf6 set 6,(ix+dd)
  880.  
  881. z80opccbf6:    bset.b    #6,0(a4,d6.w)
  882.         bra    z80eend
  883.  
  884. ;    $cbfe set 7,(ix+dd)
  885.  
  886. z80opccbfe:    bset.b    #7,0(a4,d6.w)
  887.         bra    z80eend
  888.  
  889. ;    data area
  890. ;    initialized data area
  891. ;    address table for z80 second opcode $dd
  892.  
  893. z80opctabdd:    dc.l  z80emuni
  894.         dc.l  z80emuni
  895.         dc.l  z80emuni
  896.         dc.l  z80emuni
  897.         dc.l  z80emuni
  898.         dc.l  z80emuni
  899.         dc.l  z80emuni
  900.         dc.l  z80emuni
  901.         dc.l  z80emuni
  902.         dc.l  z80opc09
  903.         dc.l  z80emuni
  904.         dc.l  z80emuni
  905.         dc.l  z80emuni
  906.         dc.l  z80emuni
  907.         dc.l  z80emuni
  908.         dc.l  z80emuni
  909.         dc.l  z80emuni
  910.         dc.l  z80emuni
  911.         dc.l  z80emuni
  912.         dc.l  z80emuni
  913.         dc.l  z80emuni
  914.         dc.l  z80emuni
  915.         dc.l  z80emuni
  916.         dc.l  z80emuni
  917.         dc.l  z80emuni
  918.         dc.l  z80opc19
  919.         dc.l  z80emuni
  920.         dc.l  z80emuni
  921.         dc.l  z80emuni
  922.         dc.l  z80emuni
  923.         dc.l  z80emuni
  924.         dc.l  z80emuni
  925.         dc.l  z80emuni
  926.         dc.l  z80opc21
  927.         dc.l  z80opc22
  928.         dc.l  z80opc23
  929.         dc.l  z80opc24
  930.         dc.l  z80opc25
  931.         dc.l  z80opc26
  932.         dc.l  z80emuni
  933.         dc.l  z80emuni
  934.         dc.l  z80opc29
  935.         dc.l  z80opc2a
  936.         dc.l  z80opc2b
  937.         dc.l  z80opc2c
  938.         dc.l  z80opc2d
  939.         dc.l  z80opc2e
  940.         dc.l  z80emuni
  941.         dc.l  z80emuni
  942.         dc.l  z80emuni
  943.         dc.l  z80emuni
  944.         dc.l  z80emuni
  945.         dc.l  z80opc34
  946.         dc.l  z80opc35
  947.         dc.l  z80opc36
  948.         dc.l  z80emuni
  949.         dc.l  z80emuni
  950.         dc.l  z80opc39
  951.         dc.l  z80emuni
  952.         dc.l  z80emuni
  953.         dc.l  z80emuni
  954.         dc.l  z80emuni
  955.         dc.l  z80emuni
  956.         dc.l  z80emuni
  957.         dc.l  z80emuni
  958.         dc.l  z80emuni
  959.         dc.l  z80emuni
  960.         dc.l  z80emuni
  961.         dc.l  z80opc44
  962.         dc.l  z80opc45
  963.         dc.l  z80opc46
  964.         dc.l  z80emuni
  965.         dc.l  z80emuni
  966.         dc.l  z80emuni
  967.         dc.l  z80emuni
  968.         dc.l  z80emuni
  969.         dc.l  z80opc4c
  970.         dc.l  z80opc4d
  971.         dc.l  z80opc4e
  972.         dc.l  z80emuni
  973.         dc.l  z80emuni
  974.         dc.l  z80emuni
  975.         dc.l  z80emuni
  976.         dc.l  z80emuni
  977.         dc.l  z80opc54
  978.         dc.l  z80opc55
  979.         dc.l  z80opc56
  980.         dc.l  z80emuni
  981.         dc.l  z80emuni
  982.         dc.l  z80emuni
  983.         dc.l  z80emuni
  984.         dc.l  z80emuni
  985.         dc.l  z80opc5c
  986.         dc.l  z80opc5d
  987.         dc.l  z80opc5e
  988.         dc.l  z80emuni
  989.         dc.l  z80opc60
  990.         dc.l  z80opc61
  991.         dc.l  z80opc62
  992.         dc.l  z80opc63
  993.         dc.l  z80opc64
  994.         dc.l  z80opc65
  995.         dc.l  z80opc66
  996.         dc.l  z80opc67
  997.         dc.l  z80opc68
  998.         dc.l  z80opc69
  999.         dc.l  z80opc6a
  1000.         dc.l  z80opc6b
  1001.         dc.l  z80opc6c
  1002.         dc.l  z80opc6d
  1003.         dc.l  z80opc6e
  1004.         dc.l  z80opc6f
  1005.         dc.l  z80opc70
  1006.         dc.l  z80opc71
  1007.         dc.l  z80opc72
  1008.         dc.l  z80opc73
  1009.         dc.l  z80opc74
  1010.         dc.l  z80opc75
  1011.         dc.l  z80emuni
  1012.         dc.l  z80opc77
  1013.         dc.l  z80emuni
  1014.         dc.l  z80emuni
  1015.         dc.l  z80emuni
  1016.         dc.l  z80emuni
  1017.         dc.l  z80opc7c
  1018.         dc.l  z80opc7d
  1019.         dc.l  z80opc7e
  1020.         dc.l  z80emuni
  1021.         dc.l  z80emuni
  1022.         dc.l  z80emuni
  1023.         dc.l  z80emuni
  1024.         dc.l  z80emuni
  1025.         dc.l  z80opc84
  1026.         dc.l  z80opc85
  1027.         dc.l  z80opc86
  1028.         dc.l  z80emuni
  1029.         dc.l  z80emuni
  1030.         dc.l  z80emuni
  1031.         dc.l  z80emuni
  1032.         dc.l  z80emuni
  1033.         dc.l  z80opc8c
  1034.         dc.l  z80opc8d
  1035.         dc.l  z80opc8e
  1036.         dc.l  z80emuni
  1037.         dc.l  z80emuni
  1038.         dc.l  z80emuni
  1039.         dc.l  z80emuni
  1040.         dc.l  z80emuni
  1041.         dc.l  z80opc94
  1042.         dc.l  z80opc95
  1043.         dc.l  z80opc96
  1044.         dc.l  z80emuni
  1045.         dc.l  z80emuni
  1046.         dc.l  z80emuni
  1047.         dc.l  z80emuni
  1048.         dc.l  z80emuni
  1049.         dc.l  z80opc9c
  1050.         dc.l  z80opc9d
  1051.         dc.l  z80opc9e
  1052.         dc.l  z80emuni
  1053.         dc.l  z80emuni
  1054.         dc.l  z80emuni
  1055.         dc.l  z80emuni
  1056.         dc.l  z80emuni
  1057.         dc.l  z80opca4
  1058.         dc.l  z80opca5
  1059.         dc.l  z80opca6
  1060.         dc.l  z80emuni
  1061.         dc.l  z80emuni
  1062.         dc.l  z80emuni
  1063.         dc.l  z80emuni
  1064.         dc.l  z80emuni
  1065.         dc.l  z80opcac
  1066.         dc.l  z80opcad
  1067.         dc.l  z80opcae
  1068.         dc.l  z80emuni
  1069.         dc.l  z80emuni
  1070.         dc.l  z80emuni
  1071.         dc.l  z80emuni
  1072.         dc.l  z80emuni
  1073.         dc.l  z80opcb4
  1074.         dc.l  z80opcb5
  1075.         dc.l  z80opcb6
  1076.         dc.l  z80emuni
  1077.         dc.l  z80emuni
  1078.         dc.l  z80emuni
  1079.         dc.l  z80emuni
  1080.         dc.l  z80emuni
  1081.         dc.l  z80opcbc
  1082.         dc.l  z80opcbd
  1083.         dc.l  z80opcbe
  1084.         dc.l  z80emuni
  1085.         dc.l  z80emuni
  1086.         dc.l  z80emuni
  1087.         dc.l  z80emuni
  1088.         dc.l  z80emuni
  1089.         dc.l  z80emuni
  1090.         dc.l  z80emuni
  1091.         dc.l  z80emuni
  1092.         dc.l  z80emuni
  1093.         dc.l  z80emuni
  1094.         dc.l  z80emuni
  1095.         dc.l  z80emuni
  1096.         dc.l  z80opccb
  1097.         dc.l  z80emuni
  1098.         dc.l  z80emuni
  1099.         dc.l  z80emuni
  1100.         dc.l  z80emuni
  1101.         dc.l  z80emuni
  1102.         dc.l  z80emuni
  1103.         dc.l  z80emuni
  1104.         dc.l  z80emuni
  1105.         dc.l  z80emuni
  1106.         dc.l  z80emuni
  1107.         dc.l  z80emuni
  1108.         dc.l  z80emuni
  1109.         dc.l  z80emuni
  1110.         dc.l  z80emuni
  1111.         dc.l  z80emuni
  1112.         dc.l  z80emuni
  1113.         dc.l  z80emuni
  1114.         dc.l  z80emuni
  1115.         dc.l  z80emuni
  1116.         dc.l  z80emuni
  1117.         dc.l  z80emuni
  1118.         dc.l  z80opce1
  1119.         dc.l  z80emuni
  1120.         dc.l  z80opce3
  1121.         dc.l  z80emuni
  1122.         dc.l  z80opce5
  1123.         dc.l  z80emuni
  1124.         dc.l  z80emuni
  1125.         dc.l  z80emuni
  1126.         dc.l  z80opce9
  1127.         dc.l  z80emuni
  1128.         dc.l  z80opceb
  1129.         dc.l  z80emuni
  1130.         dc.l  z80emuni
  1131.         dc.l  z80emuni
  1132.         dc.l  z80emuni
  1133.         dc.l  z80emuni
  1134.         dc.l  z80emuni
  1135.         dc.l  z80emuni
  1136.         dc.l  z80emuni
  1137.         dc.l  z80emuni
  1138.         dc.l  z80emuni
  1139.         dc.l  z80emuni
  1140.         dc.l  z80emuni
  1141.         dc.l  z80emuni
  1142.         dc.l  z80opcf9
  1143.         dc.l  z80emuni
  1144.         dc.l  z80emuni
  1145.         dc.l  z80emuni
  1146.         dc.l  z80emuni
  1147.         dc.l  z80emuni
  1148.         dc.l  z80emuni
  1149.  
  1150. ;    address table for z80 third opcode $ddcb
  1151.  
  1152. z80opctabcb:    dc.l  z80emuni2         ;$00
  1153.         dc.l  z80emuni2
  1154.         dc.l  z80emuni2
  1155.         dc.l  z80emuni2
  1156.         dc.l  z80emuni2
  1157.         dc.l  z80emuni2
  1158.         dc.l  z80emuni2
  1159.         dc.l  z80emuni2
  1160.         dc.l  z80emuni2
  1161.         dc.l  z80emuni2
  1162.         dc.l  z80emuni2
  1163.         dc.l  z80emuni2
  1164.         dc.l  z80emuni2
  1165.         dc.l  z80emuni2
  1166.         dc.l  z80emuni2
  1167.         dc.l  z80emuni2
  1168.         dc.l  z80emuni2         ;$10
  1169.         dc.l  z80emuni2
  1170.         dc.l  z80emuni2
  1171.         dc.l  z80emuni2
  1172.         dc.l  z80emuni2
  1173.         dc.l  z80emuni2
  1174.         dc.l  z80emuni2
  1175.         dc.l  z80emuni2
  1176.         dc.l  z80emuni2
  1177.         dc.l  z80emuni2
  1178.         dc.l  z80emuni2
  1179.         dc.l  z80emuni2
  1180.         dc.l  z80emuni2
  1181.         dc.l  z80emuni2
  1182.         dc.l  z80emuni2
  1183.         dc.l  z80emuni2
  1184.         dc.l  z80emuni2         ;$20
  1185.         dc.l  z80emuni2
  1186.         dc.l  z80emuni2
  1187.         dc.l  z80emuni2
  1188.         dc.l  z80emuni2
  1189.         dc.l  z80emuni2
  1190.         dc.l  z80emuni2
  1191.         dc.l  z80emuni2
  1192.         dc.l  z80emuni2
  1193.         dc.l  z80emuni2
  1194.         dc.l  z80emuni2
  1195.         dc.l  z80emuni2
  1196.         dc.l  z80emuni2
  1197.         dc.l  z80emuni2
  1198.         dc.l  z80emuni2
  1199.         dc.l  z80emuni2
  1200.         dc.l  z80emuni2         ;$30
  1201.         dc.l  z80emuni2
  1202.         dc.l  z80emuni2
  1203.         dc.l  z80emuni2
  1204.         dc.l  z80emuni2
  1205.         dc.l  z80emuni2
  1206.         dc.l  z80emuni2
  1207.         dc.l  z80emuni2
  1208.         dc.l  z80emuni2
  1209.         dc.l  z80emuni2
  1210.         dc.l  z80emuni2
  1211.         dc.l  z80emuni2
  1212.         dc.l  z80emuni2
  1213.         dc.l  z80emuni2
  1214.         dc.l  z80emuni2
  1215.         dc.l  z80emuni2
  1216.         dc.l  z80emuni2         ;$40
  1217.         dc.l  z80emuni2
  1218.         dc.l  z80emuni2
  1219.         dc.l  z80emuni2
  1220.         dc.l  z80emuni2
  1221.         dc.l  z80emuni2
  1222.         dc.l  z80opccb46
  1223.         dc.l  z80emuni2
  1224.         dc.l  z80emuni2
  1225.         dc.l  z80emuni2
  1226.         dc.l  z80emuni2
  1227.         dc.l  z80emuni2
  1228.         dc.l  z80emuni2
  1229.         dc.l  z80emuni2
  1230.         dc.l  z80opccb4e
  1231.         dc.l  z80emuni2
  1232.         dc.l  z80emuni2         ;$50
  1233.         dc.l  z80emuni2
  1234.         dc.l  z80emuni2
  1235.         dc.l  z80emuni2
  1236.         dc.l  z80emuni2
  1237.         dc.l  z80emuni2
  1238.         dc.l  z80opccb56
  1239.         dc.l  z80emuni2
  1240.         dc.l  z80emuni2
  1241.         dc.l  z80emuni2
  1242.         dc.l  z80emuni2
  1243.         dc.l  z80emuni2
  1244.         dc.l  z80emuni2
  1245.         dc.l  z80emuni2
  1246.         dc.l  z80opccb5e
  1247.         dc.l  z80emuni2
  1248.         dc.l  z80emuni2         ;$60
  1249.         dc.l  z80emuni2
  1250.         dc.l  z80emuni2
  1251.         dc.l  z80emuni2
  1252.         dc.l  z80emuni2
  1253.         dc.l  z80emuni2
  1254.         dc.l  z80opccb66
  1255.         dc.l  z80emuni2
  1256.         dc.l  z80emuni2
  1257.         dc.l  z80emuni2
  1258.         dc.l  z80emuni2
  1259.         dc.l  z80emuni2
  1260.         dc.l  z80emuni2
  1261.         dc.l  z80emuni2
  1262.         dc.l  z80opccb6e
  1263.         dc.l  z80emuni2
  1264.         dc.l  z80emuni2         ;$70
  1265.         dc.l  z80emuni2
  1266.         dc.l  z80emuni2
  1267.         dc.l  z80emuni2
  1268.         dc.l  z80emuni2
  1269.         dc.l  z80emuni2
  1270.         dc.l  z80opccb76
  1271.         dc.l  z80emuni2
  1272.         dc.l  z80emuni2
  1273.         dc.l  z80emuni2
  1274.         dc.l  z80emuni2
  1275.         dc.l  z80emuni2
  1276.         dc.l  z80emuni2
  1277.         dc.l  z80emuni2
  1278.         dc.l  z80opccb7e
  1279.         dc.l  z80emuni2
  1280.         dc.l  z80emuni2         ;$80
  1281.         dc.l  z80emuni2
  1282.         dc.l  z80emuni2
  1283.         dc.l  z80emuni2
  1284.         dc.l  z80emuni2
  1285.         dc.l  z80emuni2
  1286.         dc.l  z80opccb86
  1287.         dc.l  z80emuni2
  1288.         dc.l  z80emuni2
  1289.         dc.l  z80emuni2
  1290.         dc.l  z80emuni2
  1291.         dc.l  z80emuni2
  1292.         dc.l  z80emuni2
  1293.         dc.l  z80emuni2
  1294.         dc.l  z80opccb8e
  1295.         dc.l  z80emuni2
  1296.         dc.l  z80emuni2         ;$90
  1297.         dc.l  z80emuni2
  1298.         dc.l  z80emuni2
  1299.         dc.l  z80emuni2
  1300.         dc.l  z80emuni2
  1301.         dc.l  z80emuni2
  1302.         dc.l  z80opccb96
  1303.         dc.l  z80emuni2
  1304.         dc.l  z80emuni2
  1305.         dc.l  z80emuni2
  1306.         dc.l  z80emuni2
  1307.         dc.l  z80emuni2
  1308.         dc.l  z80emuni2
  1309.         dc.l  z80emuni2
  1310.         dc.l  z80opccb9e
  1311.         dc.l  z80emuni2
  1312.         dc.l  z80emuni2         ;$a0
  1313.         dc.l  z80emuni2
  1314.         dc.l  z80emuni2
  1315.         dc.l  z80emuni2
  1316.         dc.l  z80emuni2
  1317.         dc.l  z80emuni2
  1318.         dc.l  z80opccba6
  1319.         dc.l  z80emuni2
  1320.         dc.l  z80emuni2
  1321.         dc.l  z80emuni2
  1322.         dc.l  z80emuni2
  1323.         dc.l  z80emuni2
  1324.         dc.l  z80emuni2
  1325.         dc.l  z80emuni2
  1326.         dc.l  z80opccbae
  1327.         dc.l  z80emuni2
  1328.         dc.l  z80emuni2         ;$b0
  1329.         dc.l  z80emuni2
  1330.         dc.l  z80emuni2
  1331.         dc.l  z80emuni2
  1332.         dc.l  z80emuni2
  1333.         dc.l  z80emuni2
  1334.         dc.l  z80opccbb6
  1335.         dc.l  z80emuni2
  1336.         dc.l  z80emuni2
  1337.         dc.l  z80emuni2
  1338.         dc.l  z80emuni2
  1339.         dc.l  z80emuni2
  1340.         dc.l  z80emuni2
  1341.         dc.l  z80emuni2
  1342.         dc.l  z80opccbbe
  1343.         dc.l  z80emuni2
  1344.         dc.l  z80emuni2         ;$c0
  1345.         dc.l  z80emuni2
  1346.         dc.l  z80emuni2
  1347.         dc.l  z80emuni2
  1348.         dc.l  z80emuni2
  1349.         dc.l  z80emuni2
  1350.         dc.l  z80opccbc6
  1351.         dc.l  z80emuni2
  1352.         dc.l  z80emuni2
  1353.         dc.l  z80emuni2
  1354.         dc.l  z80emuni2
  1355.         dc.l  z80emuni2
  1356.         dc.l  z80emuni2
  1357.         dc.l  z80emuni2
  1358.         dc.l  z80opccbce
  1359.         dc.l  z80emuni2
  1360.         dc.l  z80emuni2         ;$d0
  1361.         dc.l  z80emuni2
  1362.         dc.l  z80emuni2
  1363.         dc.l  z80emuni2
  1364.         dc.l  z80emuni2
  1365.         dc.l  z80emuni2
  1366.         dc.l  z80opccbd6
  1367.         dc.l  z80emuni2
  1368.         dc.l  z80emuni2
  1369.         dc.l  z80emuni2
  1370.         dc.l  z80emuni2
  1371.         dc.l  z80emuni2
  1372.         dc.l  z80emuni2
  1373.         dc.l  z80emuni2
  1374.         dc.l  z80opccbde
  1375.         dc.l  z80emuni2
  1376.         dc.l  z80emuni2         ;$e0
  1377.         dc.l  z80emuni2
  1378.         dc.l  z80emuni2
  1379.         dc.l  z80emuni2
  1380.         dc.l  z80emuni2
  1381.         dc.l  z80emuni2
  1382.         dc.l  z80opccbe6
  1383.         dc.l  z80emuni2
  1384.         dc.l  z80emuni2
  1385.         dc.l  z80emuni2
  1386.         dc.l  z80emuni2
  1387.         dc.l  z80emuni2
  1388.         dc.l  z80emuni2
  1389.         dc.l  z80emuni2
  1390.         dc.l  z80opccbee
  1391.         dc.l  z80emuni2
  1392.         dc.l  z80emuni2         ;$f0
  1393.         dc.l  z80emuni2
  1394.         dc.l  z80emuni2
  1395.         dc.l  z80emuni2
  1396.         dc.l  z80emuni2
  1397.         dc.l  z80emuni2
  1398.         dc.l  z80opccbf6
  1399.         dc.l  z80emuni2
  1400.         dc.l  z80emuni2
  1401.         dc.l  z80emuni2
  1402.         dc.l  z80emuni2
  1403.         dc.l  z80emuni2
  1404.         dc.l  z80emuni2
  1405.         dc.l  z80emuni2
  1406.         dc.l  z80opccbfe
  1407.         dc.l  z80emuni2
  1408.  
  1409. ;    debug count instruction
  1410.  
  1411. cntinstdd:    addq.l    #1,a0
  1412. cntinstfd:    addq.l    #1,a0
  1413.  
  1414. ;    various
  1415.  
  1416. flags        dc.b    0        ;bit 0 : emulate iy opcode
  1417.  
  1418.         end
  1419.  
  1420.