home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 25 / CD_ASCQ_25_1095.iso / dos / prg / cpe50 / cpe2 / ipe2.asm < prev    next >
Assembly Source File  |  1995-09-15  |  147KB  |  6,334 lines

  1. ;*************************************************************************
  2. ;*                                                                       *
  3. ;*       Z-80 emulation routines                                         *
  4. ;*                                                                       *
  5. ;*************************************************************************
  6.  
  7. IDEAL
  8.  
  9. P386
  10.  
  11. PUBLIC simz80,simz80l,sz80_instend,interrupt,sz80gb,intflag,count52
  12. PUBLIC sRF,simstack,sAFx,sBCx,sDEx,sHLx,srI,sRFhi,imode,sIFF1,sIFF2,ix,iy
  13. PUBLIC ClearInterruptCounter
  14.  
  15. PUBLIC sz80performret,sz80performpushhl,sz80wbhlAL,sz80InitPCSeg,inpiob
  16.  
  17. EXTRN scrbankpt:DWORD,normramseg:WORD,DoJoystick:PROC
  18. EXTRN scradd:DWORD,ScrAdConv:WORD,outp:PROC,inp:PROC,memmap:WORD
  19. EXTRN intreq:WORD,dowait:WORD,intcount:WORD
  20. EXTRN keycode:BYTE,refreshrate:WORD,usevesa:WORD,smallvesa:WORD,borders:WORD
  21. EXTRN RethinkCRTC:PROC
  22. EXTRN cleanup:PROC,colmode:BYTE,SetColors:PROC
  23. EXTRN reset:PROC
  24. EXTRN SelFile:PROC
  25. EXTRN Menu:PROC,emulr:WORD
  26. EXTRN CASInOpen:PROC,CASRead:PROC,CASWrite:PROC,CASCheck:PROC
  27. EXTRN RethinkPSG:PROC,PSGcount:WORD
  28. EXTRN SelSnap:PROC,SaveSnap:PROC
  29. EXTRN crtcscrwidth:BYTE
  30. EXTRN scrbase:WORD,scroff:WORD,CRTCregs:BYTE,ffly:WORD
  31. EXTRN crtchsync:WORD,crtc32state:WORD
  32. EXTRN modetab:DWORD,GenModeTab:PROC,needmodetab:WORD
  33. EXTRN pcrtcscrwidth:BYTE,doublelinmode:WORD
  34. EXTRN ResetVesaPage:PROC,IncVesaPage:PROC
  35.  
  36. GROUP   DGROUP _stack,_data
  37.  
  38.       INCLUDE "macros.inc"
  39.  
  40. SEGMENT _text PAGE PUBLIC 'CODE'
  41. ASSUME CS:_text
  42. ASSUME DS:DGROUP
  43.  
  44. instalign       EQU 1
  45.  
  46. MACRO   instheader iname,radd
  47. ALIGN   instalign
  48. r_&iname:
  49. IFIDN   <radd>,<2>
  50.     INC     [sRF]
  51. ELSE
  52.     ADD     [sRF],radd/2
  53. ENDIF
  54. iname:
  55. ENDM
  56.  
  57. sz80InitPCSeg:
  58.         InitPCSeg
  59.         RET
  60. sz80wbhlAL:
  61.         wbhl    AL
  62.         RET
  63. sz80performret:
  64.     MOV     BP,[simstack]
  65.     gwordBP sPC
  66.     ADD     BP,2
  67.     MOV     [simstack],BP
  68.         InitPCSeg
  69.         RET
  70. sz80performpushhl:
  71.     MOV     BP,[simstack]           ;E5 PUSH HL
  72.     SUB     BP,2
  73.     MOV     [simstack],BP
  74.     wword   nSHL
  75.         RET
  76.  
  77. SetOPTable:
  78.     PUSH    SI
  79.     PUSH    DI
  80.     PUSH    CX
  81.  
  82.     PUSH    ES
  83.     PUSH    DS
  84.     POP     ES
  85.     MOV     SI,OFFSET optabl
  86.     CMP     [emulr],0
  87.     JE      SOPT_Copy
  88.     MOV     SI,OFFSET roptabl
  89. SOPT_Copy:
  90.     MOV     CX,6*256
  91.     MOV     DI,OFFSET opcodes
  92.     REP     MOVSW
  93. SOPT_End:
  94.     POP     ES
  95.  
  96.     POP     CX
  97.     POP     DI
  98.     POP     SI
  99.     RET
  100.  
  101. ClearInterruptCounter:           ; pure guesswork
  102.         MOV     [intreq],0
  103.         AND     [intflag],9fffh
  104.         MOV     [count52],0
  105. ;        MOV    [intadj],0
  106.         RET
  107.  
  108. inpioB: MOV     AL,01Eh     ; Firmenname: AMSTRAD, Freq: 50HZ
  109.         MOV     BP,[ffly]
  110.         OR      BP,BP
  111.         JZ      inpioB_OK
  112.         DEC     BP
  113.         JNZ     inpioB_ffly
  114.         CMP     [clocks],10     ; Voyage 93 needs something special here
  115.         JL      inpioB_OK
  116. inpioB_ffly:
  117.     OR      AL,1
  118. inpioB_OK:
  119.     RET
  120.  
  121. SpecialOccasion:
  122.     MOV     sFree,[intflag]   ; * intflag : 4000 int,
  123.     TEST    sFree,100h        ; * 0002: EI
  124.     JZ      SPOC_nokeyreq     ; * 0004: RethinkPSG
  125.     CALL    keys
  126.     AND     [intflag],0feffh
  127. SPOC_nokeyreq:
  128.     TEST    sFree,2000h
  129.     JZ      SPOC_norealint
  130.     AND     [intflag],0dfffh
  131.     CMP     [haltactive],0
  132.     JE      SPOC_NoHalt
  133.     INC     sPC
  134.     MOV     [haltactive],0
  135. SPOC_NoHalt:
  136.     CMP     [sIFF1],0
  137.     JE      SHORT SPOC_intdisable
  138.     PUSH    sFree
  139.     CALL    interrupt
  140.     POP     sFree
  141.     MOV     [intreq],0
  142.     JMP     SPOC_noint
  143. SPOC_intdisable:
  144.     MOV     [intreq],1
  145.     JMP     SPOC_noint
  146. SPOC_norealint:
  147.     TEST    sFree,4000h
  148.     JZ      SPOC_noint
  149.     AND     [intflag],09fffh
  150.     OR      [intflag],02000h
  151. SPOC_noint:
  152.     BT      sFree,1
  153.     JNC     SHORT SPOC_noEI
  154.     MOV     [sIFF1],1
  155.     MOV     [sIFF2],1
  156.     AND     [intflag],0FFFDh
  157.     CMP     [intreq],0
  158.     JE      SHORT SPOC_noEI
  159.     OR      [intflag],2000h
  160. SPOC_noEI:
  161.     BT      sFree,2
  162.     JNC     SHORT SPOC_noPSG
  163.         MOV     BP,[PSGcount]
  164.         OR      BP,BP
  165.         JZ      SPOC_PSG
  166.         DEC     BP
  167.         MOV     [PSGcount],BP
  168.         JMP     SPOC_noPSG
  169. SPOC_PSG:
  170.     CALL    RethinkPSG
  171.     AND     [intflag],0FFFBh
  172. SPOC_noPSG:
  173.     JMP     sz80gb
  174.  
  175.  ; ************************************************** Z80 entry
  176.  
  177. Z80_reset:
  178.         MOV     DX,[normramseg]
  179.     MOV     ES,DX
  180.     MOV     [intflag],0
  181.     CALL    SetOPTable
  182.     MOV     [clocks],64
  183.         MOV     [ffly],0
  184.     MOV     [count52],0
  185. ;        MOV     [intadj],0
  186.     InitPCSeg
  187.  
  188.     MOV     BP,[refreshrate]
  189.     MOV     [drawing],BP
  190.  
  191.         MOV     [hscroll],0
  192.         MOV     [vscroll],0
  193.  
  194.         MOV     [intcount],0
  195.  
  196.         CALL    StartNewCPCFrame
  197.  
  198.         MOV     [scrline],0
  199.     MOV     [scrptr],0
  200.  
  201.         MOV     [synccount],0
  202.  
  203.         CMP     [usevesa],0
  204.         JE      reset_end
  205.         CALL    ResetVesaPage
  206. reset_end:
  207.         RET
  208.  
  209. RethinkDrawing:
  210.         CALL    DoJoystick
  211.  
  212.     DEC     [drawing]
  213.     JNS     RTDR_end
  214.  
  215.     MOV     BP,[refreshrate]
  216.     ADD     [drawing],BP
  217.  
  218.         PUSH    AX
  219.         PUSH    DX
  220.         MOV     AX,[synccount]
  221.         AND     AX,0fffh      ; prevent nasty overflows
  222.         MOV     DX,52
  223.         DIV     DL
  224.         MOVZX   BP,AH
  225.         MOV     [synccount],BP
  226.         XOR     AH,AH
  227.         CLI
  228.         SUB     [intcount],AX
  229.         JS      RTDR_needtowait
  230.         MOV     [synccount],0
  231.         MOV     [intcount],-1   ; wait at least one int
  232. RTDR_needtowait:
  233.         STI
  234. RTDR_wait:
  235.         MOV     BP,[intcount]
  236.         OR      BP,BP
  237.         JNZ     RTDR_wait
  238. RTDR_synced:
  239.         POP     DX
  240.         POP     AX
  241. RTDR_end:
  242.         RET
  243.  
  244. StartNewCPCFrame:
  245.     CALL    RethinkCRTC
  246.  
  247.     MOV     BP,[scrbase]
  248.     ADD     BP,[scroff]
  249.     MOV     [cpclinbase],0
  250.     MOV     [cpcptr],BP
  251.     MOV     [rasterline],0
  252.  
  253.         MOV     [linescount],0ffffh
  254.         MOV     [hadffly],0
  255.         MOV     [charline],0
  256.         MOV     [inborder],0
  257.  
  258.         CALL    StartNewCPCLine
  259.         RET
  260.  
  261. StartNewCPCLine:
  262.         PUSH    AX
  263.         MOVZX   BP,[CRTCregs+9]
  264.         MOV     [crtcmaxslin],BP
  265.  
  266.         MOVZX   AX,[CRTCregs+1]
  267.         CMP     [pcrtcscrwidth],AL
  268.         JNC     SNCL_WidthCalculated
  269.         MOVZX   AX,[pcrtcscrwidth]
  270. SNCL_WidthCalculated:
  271.         MOV     [drawwidth],AX
  272.  
  273.         MOV     AL,[BYTE PTR CRTCregs+1] ; calculate the left border width
  274.         CMP     [crtcscrwidth],AL
  275.         JE      SNCL_hsyncvalid
  276.  
  277.         MOV     [crtcscrwidth],AL
  278.         AND     AX,63
  279.         NEG     AX
  280.         ADD     AX,51
  281.         ADD     AX,AX
  282.         ADD     AX,AX
  283.         MOV     BP,[drawwidth]
  284.         ADD     BP,BP
  285.         ADD     BP,BP
  286.         SUB     BP,200
  287.         NEG     BP
  288.         SHR     BP,1
  289.         CMP     AX,BP
  290.         JC      SNCL_hsyncok
  291.         MOV     AX,BP
  292. SNCL_hsyncok:
  293.         MOV     [crtchsync],AX
  294. SNCL_hsyncvalid:
  295.  
  296.         MOVZX   BP,[BYTE PTR CRTCregs+7]
  297.         MOV     [crtcvsync],BP
  298.         POP     AX
  299.         RET
  300.  
  301. simz80:
  302.         CALL    Z80_reset
  303. sz80_instend:
  304. simz80l:
  305.     TEST    [intflag],0ffffh
  306.     JNZ     SpecialOccasion
  307. sz80gb:
  308. IF     DEBUG EQ 1
  309.         CMP     sPC,0100h
  310.         JE      break80
  311. ENDIF
  312. sz80l_gbytepc:
  313.     gbpc
  314.     MOV     BP,[EsFree*2+opclogs]
  315.     SUB     [clocks],BP
  316.     JS      sz80_underflow
  317. sz80_jump:
  318.     JMP     [EsFree*2+opcodes]
  319.  
  320. sz80_underflow:
  321.     PUSH    sFree
  322.     ADD     [clocks],64     ; we don't support variable line lengths,
  323.                                 ; since they blow up the CPC monitor anyway
  324.         CMP     [intreq],0
  325.         JE      sz80_nointreq
  326.  
  327.         INC     [count52]
  328.         CMP     [count52],52
  329.         JC      sz80clocksok
  330.         MOV     [count52],0
  331.  
  332.         JMP     sz80clocksok
  333.  
  334. sz80_nointreq:
  335.     INC     [count52]
  336.         CMP     [count52],52
  337.     JC      sz80clocksok
  338.  
  339.     MOV     [count52],0
  340.     OR      [intflag],4000h
  341. sz80clocksok:
  342.         CMP     [ffly],0
  343.         JE      sz80_fflyok
  344.         INC     [ffly]
  345.  
  346.         CMP     [ffly],4
  347.         JNE     sz80_fflyok
  348.         MOV     BP,[count52]
  349.      MOV     [count52],0
  350. ;        MOV     [intadj],0
  351.         CMP     BP,20h
  352.         JC      sz80_fflyok
  353.         OR      [intflag],4000h
  354. sz80_fflyok:
  355.  
  356.         MOVZX   BP,[CRTCregs+9]
  357.         CMP     [rasterline],BP
  358.         JC      sz80_nonewcharline
  359.  
  360.         INC     [charline]
  361.         MOV     [rasterline],-1
  362.         CALL    StartNewCPCLine
  363.  
  364. sz80_nonewcharline:
  365.         INC     [rasterline]
  366.  
  367.         INC     [synccount]
  368.  
  369.         CMP     [drawing],0
  370.         JNE     sz80_instend_omitline
  371.  
  372.         CMP     [smallvesa],0
  373.         JNE     sz80_smallscreen
  374.  
  375.  ; if we get here, we have a full screen VESA mode. We forget about
  376.  ; some of the things calculated for the other modes.
  377.  
  378.         INC     [scrline]
  379.  
  380.         CMP     [inborder],0
  381.         JNE     sz80_800x600_inborder
  382.         CMP     [ffly],0
  383.         JNE     sz80_800x600_inborder
  384.  
  385.     PUSHAW
  386.     PUSH    ES
  387.     CMP     [needmodetab],0
  388.     JE      sz80_800x600_DontNeedMT
  389.     CALL    GenModeTab
  390. sz80_800x600_DontNeedMT:
  391.     MOV     DI,[scrptr]
  392.     PUSH    0a000h
  393.     POP     ES
  394.  
  395.         CMP     [crtc32state],0C00h
  396.         JNE     sz80_thankgod_no32k
  397.  
  398.  ; Bletch. We have a 32K screen. We do only the slow update.
  399.  
  400.  ; take care of the left border if necessary
  401.  
  402.         CMP     [borders],0
  403.         JE      sz80_32k_mainpic
  404.         MOV     DX,[crtchsync]
  405.  
  406.         OR      DX,DX
  407.         JZ      sz80_32k_mainpic
  408.  
  409.         MOV     EAX,[modetab+2048]
  410. sz80_32k_leftbor:
  411.         STOSD
  412.         OR      DI,DI
  413.         JNE     sz80_32k_leftbor_ok
  414.         CALL    IncVesaPage
  415. sz80_32k_leftbor_ok:
  416.         DEC     DX
  417.         JNE     sz80_32k_leftbor
  418.  
  419.  ; draw the main picture
  420.  
  421. sz80_32k_mainpic:
  422.     MOV     CX,[drawwidth]
  423.     ADD     CX,CX
  424.  
  425.     LFS     BX,[scrbankpt]
  426.     MOV     AX,[cpclinbase]
  427.     AND     AX,3800h
  428.     ADD     BX,AX
  429.     MOV     BP,[cpcptr]
  430.         MOV     [pageinc],0
  431.         OR      CX,CX
  432.         JZ      sz80_32k_mainpic_done
  433.  
  434. sz80_32k_drawloop:
  435.         MOV     DX,BP
  436.         MOV     SI,BP
  437.         INC     BP
  438.         AND     SI,07FFh
  439.         AND     DX,0800h
  440.         JNZ     sz80_32k_draw_2ndbank
  441.     MOV     DL,[FS:EBX+ESI]
  442.         JMP     sz80_32k_draw_gotbyte
  443. sz80_32k_draw_2ndbank:
  444.     MOVZX   DX,[FS:EBX+ESI+04000h]
  445. sz80_32k_draw_gotbyte:
  446.     MOV     EAX,[EDX*8+modetab]
  447.     STOSD
  448.     MOV     EAX,[EDX*8+modetab+4]
  449.     STOSD
  450.         OR      DI,DI
  451.         JNE     sz80_32k_contdraw
  452.         CALL    IncVesaPage
  453.         MOV     [pageinc],1
  454. sz80_32k_contdraw:
  455.     LOOP    sz80_32k_drawloop
  456. sz80_32k_mainpic_done:
  457.  
  458.  ; take care of the right border if necessary
  459.  
  460.         CMP     [borders],0
  461.         JE      sz80_32k_finished
  462.         MOV     CX,[drawwidth]
  463.         ADD     CX,CX
  464.         ADD     CX,CX
  465.         ADD     CX,[crtchsync]
  466.         NEG     CX
  467.         ADD     CX,200
  468.         JZ      sz80_32k_rightbor_done
  469.         MOV     EAX,[modetab+2048]
  470. sz80_32k_rightbor:
  471.         STOSD
  472.         OR      DI,DI
  473.         JNE     sz80_32k_rightbor_ok
  474.         CALL    IncVesaPage
  475. sz80_32k_rightbor_ok:
  476.         LOOP    sz80_32k_rightbor
  477. sz80_32k_rightbor_done:
  478.         MOV     [scrptr],DI
  479.         XOR     EAX,EAX
  480.         JMP     sz80_drawn
  481.  
  482. sz80_32k_finished:
  483.     XOR     EAX,EAX
  484.  
  485.     MOVZX   DI,[pcrtcscrwidth]
  486.     SHL     DI,4
  487.     ADD     [scrptr],DI
  488.         JNC     sz80_drawn
  489.         CMP     [pageinc],0
  490.         JNE     sz80_drawn
  491.         CALL    IncVesaPage
  492.         JMP     sz80_drawn
  493.  
  494.  ; Phew. Just a nice, normal 16K screen.
  495.  
  496. sz80_thankgod_no32k:
  497.         CMP     DI,0F800h   ; @@@ with safety padding
  498.         JC      sz80_800x600_safe
  499.  
  500.  ; First, the unsafe versions: An overflow may occur
  501.  
  502.  ; take care of the left border if necessary
  503.  
  504.         CMP     [borders],0
  505.         JE      sz80_800x600_mainpic
  506.         MOV     DX,[crtchsync]
  507.  
  508.         OR      DX,DX
  509.         JZ      sz80_800x600_mainpic
  510.  
  511.         MOV     EAX,[modetab+2048]
  512. sz80_800x600_leftbor:
  513.         STOSD
  514.         OR      DI,DI
  515.         JNE     sz80_800x600_leftbor_ok
  516.         CALL    IncVesaPage
  517. sz80_800x600_leftbor_ok:
  518.         DEC     DX
  519.         JNE     sz80_800x600_leftbor
  520.  
  521.  ; draw the main picture
  522.  
  523. sz80_800x600_mainpic:
  524.     MOV     CX,[drawwidth]
  525.     ADD     CX,CX
  526.  
  527.     LFS     BX,[scrbankpt]
  528.     MOV     AX,[cpclinbase]
  529.     AND     AX,3800h
  530.     ADD     BX,AX
  531.     MOV     BP,[cpcptr]
  532.     MOV     SI,7ffh
  533.     XOR     DX,DX
  534.         MOV     [pageinc],0
  535.         OR      CX,CX
  536.         JZ      sz80_800x600_mainpic_done
  537.  
  538. sz80_800x600_drawloop:
  539.     AND     BP,SI
  540.     MOV     DL,[FS:EBX+EBP]
  541.     INC     BP
  542.     MOV     EAX,[EDX*8+modetab]
  543.     STOSD
  544.     MOV     EAX,[EDX*8+modetab+4]
  545.     STOSD
  546.         OR      DI,DI
  547.         JNE     sz80_800x600_contdraw
  548.         CALL    IncVesaPage
  549.         MOV     [pageinc],1
  550. sz80_800x600_contdraw:
  551.     LOOP    sz80_800x600_drawloop
  552. sz80_800x600_mainpic_done:
  553.  
  554.  ; take care of the right border if necessary
  555.  
  556.         CMP     [borders],0
  557.         JE      sz80_800x600_finished
  558.         MOV     CX,[drawwidth]
  559.         ADD     CX,CX
  560.         ADD     CX,CX
  561.         ADD     CX,[crtchsync]
  562.         NEG     CX
  563.         ADD     CX,200
  564.         JZ      sz80_800x600_rightbor_done
  565.         MOV     EAX,[modetab+2048]
  566. sz80_800x600_rightbor:
  567.         STOSD
  568.         OR      DI,DI
  569.         JNE     sz80_800x600_rightbor_ok
  570.         CALL    IncVesaPage
  571. sz80_800x600_rightbor_ok:
  572.         LOOP    sz80_800x600_rightbor
  573. sz80_800x600_rightbor_done:
  574.         MOV     [scrptr],DI
  575.         XOR     EAX,EAX
  576.         JMP     sz80_drawn
  577.  
  578. sz80_800x600_finished:
  579.     XOR     EAX,EAX
  580.  
  581.     MOVZX   DI,[pcrtcscrwidth]
  582.     SHL     DI,4
  583.     ADD     [scrptr],DI
  584.         JNC     sz80_drawn
  585.         CMP     [pageinc],0
  586.         JNE     sz80_drawn
  587.         CALL    IncVesaPage
  588.         JMP     sz80_drawn
  589.  
  590.  ; Now, the same thing again, this time if there's no danger of overflow
  591.  
  592. sz80_800x600_safe:
  593.  ; take care of the left border if necessary
  594.  
  595.         CMP     [borders],0
  596.         JE      sz80_800x600_safe_mainpic
  597.         MOV     CX,[crtchsync]
  598.         OR      CX,CX
  599.         JZ      sz80_800x600_safe_mainpic
  600.  
  601.         MOV     EAX,[modetab+2048]
  602.         REP     STOSD
  603.  
  604.  ; draw the main picture
  605.  
  606. sz80_800x600_safe_mainpic:
  607.     MOV     CX,[drawwidth]
  608.         ADD     CX,CX
  609.  
  610.     LFS     BX,[scrbankpt]
  611.     MOV     AX,[cpclinbase]
  612.     AND     AX,3800h
  613.     ADD     BX,AX
  614.     MOV     BP,[cpcptr]
  615.     MOV     SI,7ffh
  616.     XOR     DX,DX
  617.         OR      CX,CX
  618.         JZ      sz80_800x600_safe_mainpicdone
  619.  
  620. sz80_800x600_safe_drawloop:
  621.     AND     BP,SI
  622.     MOV     DL,[FS:EBX+EBP]
  623.     INC     BP
  624.     MOV     EAX,[EDX*8+modetab]
  625.     STOSD
  626.     MOV     EAX,[EDX*8+modetab+4]
  627.     STOSD
  628.     LOOP    sz80_800x600_safe_drawloop
  629. sz80_800x600_safe_mainpicdone:
  630.  ; take care of the right border if necessary
  631.  
  632.         CMP     [borders],0
  633.         JE      sz80_800x600_safe_finished
  634.         MOV     CX,[drawwidth]
  635.         ADD     CX,CX
  636.         ADD     CX,CX
  637.         ADD     CX,[crtchsync]
  638.         NEG     CX
  639.         ADD     CX,200
  640.         JZ      sz80_800x600_safe_rightbor_done
  641.         MOV     EAX,[modetab+2048]
  642.         REP     STOSD
  643. sz80_800x600_safe_rightbor_done:
  644.         MOV     [scrptr],DI
  645.         XOR     EAX,EAX
  646.         JMP     sz80_drawn
  647.  
  648. sz80_800x600_safe_finished:
  649.     XOR     EAX,EAX
  650.  
  651.     MOVZX   DI,[pcrtcscrwidth]
  652.     SHL     DI,4
  653.     ADD     [scrptr],DI
  654.         JMP     sz80_drawn
  655.  
  656.  ; Now, the border-filling stuff, also in two versions
  657.  
  658. sz80_800x600_inborder:
  659.         CMP     [borders],0
  660.         JE      sz80_instend_omitline
  661.  
  662.         PUSH    EAX
  663.         PUSH    ECX
  664.         PUSH    EDI
  665.         PUSH    ES
  666.  
  667.         MOVZX   CX,[pcrtcscrwidth]
  668.         ADD     CX,CX
  669.         ADD     CX,CX
  670.         MOV     EAX,[modetab+2048]
  671.         PUSH    0A000h
  672.         POP     ES
  673.  
  674.         MOV     DI,[scrptr]
  675.         CMP     DI,0F800h  ; @@@
  676.         JC      sz80_800x600_safe_borderloop
  677. sz80_800x600_borderloop:
  678.         STOSD
  679.         OR      DI,DI
  680.         JNE     sz80_800x600_borderloop_ok
  681.         CALL    IncVesaPage
  682. sz80_800x600_borderloop_ok:
  683.         LOOP    sz80_800x600_borderloop
  684.         MOV     [scrptr],DI
  685.  
  686.         POP     ES
  687.         POP     EDI
  688.         POP     ECX
  689.         POP     EAX
  690.         JMP     sz80_instend_omitline
  691.  
  692. sz80_800x600_safe_borderloop:
  693.         REP     STOSD
  694.         XOR     EAX,EAX
  695.         MOV     [scrptr],DI
  696.  
  697.         POP     ES
  698.         POP     EDI
  699.         POP     ECX
  700.         POP     EAX
  701.         JMP     sz80_instend_omitline
  702.  
  703. sz80_smallscreen:
  704.         CMP     [inborder],0
  705.         JNE     sz80_instend_omitline
  706.         INC     [scrline]
  707.         CMP     [usevesa],0
  708.         JNE     sz80_dontstopafter200
  709.         CMP     [doublelinmode],0
  710.         JE      sz80_dontstopafter200
  711.         CMP     [scrline],201
  712.         JNC     sz80_instend_omitline
  713. sz80_dontstopafter200:
  714.  
  715.     PUSHAW
  716.     PUSH    ES
  717.     CMP     [needmodetab],0
  718.     JE      sz80_DontNeedMT
  719.     CALL    GenModeTab
  720. sz80_DontNeedMT:
  721.     MOV     DI,[scrptr]
  722.     PUSH    0a000h
  723.     POP     ES
  724.     MOV     CX,[drawwidth]
  725.         ADD     CX,CX
  726.     JZ      sz80_drawn
  727.  
  728.     LFS     BX,[scrbankpt]
  729.     MOV     AX,[cpclinbase]
  730.     AND     AX,3800h
  731.     ADD     BX,AX
  732.     MOV     BP,[cpcptr]
  733.     MOV     SI,7ffh
  734.     XOR     DX,DX
  735.  
  736.         CMP     [usevesa],0
  737.         JE      sz80_draw_320x200
  738.  
  739.         MOV     [pageinc],0
  740.  
  741.         CMP     [crtc32state],0C00h
  742.         JNE     sz80_vesa_normal
  743.  
  744.  ; arrghh. 32K screen.
  745.  
  746. sz80_small32k_drawloop:
  747.         MOV     DX,BP
  748.         MOV     SI,BP
  749.         INC     BP
  750.         AND     SI,07FFh
  751.         AND     DX,0800h
  752.         JNZ     sz80_small32k_draw_2ndbank
  753.     MOV     DL,[FS:EBX+ESI]
  754.         JMP     sz80_small32k_draw_gotbyte
  755. sz80_small32k_draw_2ndbank:
  756.     MOVZX   DX,[FS:EBX+ESI+04000h]
  757. sz80_small32k_draw_gotbyte:
  758.     MOV     EAX,[EDX*4+modetab]
  759.     STOSD
  760.         OR      DI,DI
  761.         JNE     sz80_small32k_contdraw
  762.         CALL    IncVesaPage
  763.         MOV     [pageinc],1
  764. sz80_small32k_contdraw:
  765.     LOOP    sz80_small32k_drawloop
  766.         JMP     sz80_vesa_fixscrptr
  767.  
  768. sz80_vesa_normal:
  769. sz80_vesa_drawloop:
  770.     AND     BP,SI
  771.     MOV     DL,[FS:EBX+EBP]
  772.     INC     BP
  773.     MOV     EAX,[EDX*4+modetab]
  774.     STOSD
  775.         OR      DI,DI
  776.         JNE     sz80_vesa_contdraw
  777.         CALL    IncVesaPage
  778.         MOV     [pageinc],1
  779. sz80_vesa_contdraw:
  780.     LOOP    sz80_vesa_drawloop
  781.     XOR     EAX,EAX
  782.  
  783. sz80_vesa_fixscrptr:
  784.     MOVZX   DI,[pcrtcscrwidth]
  785.     SHL     DI,4
  786.     ADD     [scrptr],DI
  787.         JNC     sz80_drawn
  788.         CMP     [pageinc],0
  789.         JNE     sz80_drawn
  790.         CALL    IncVesaPage
  791.         JMP     sz80_drawn
  792.  
  793. sz80_draw_320x200:
  794.         ADD     BP,[hscroll]
  795. sz80_drawloop:
  796.     AND     BP,SI
  797.     MOV     DL,[FS:EBX+EBP]
  798.     INC     BP
  799.     MOV     EAX,[EDX*4+modetab]
  800.     STOSD
  801. sz80_contdraw:
  802.     LOOP    sz80_drawloop
  803.  
  804.     XOR     EAX,EAX
  805.         MOV     AX,[skiplines]
  806.         OR      AX,AX
  807.         JE      sz80_noskiplines
  808.         DEC     AX
  809.         MOV     [skiplines],AX
  810.         DEC     [scrline]               ; to prevent the drawing from stopping
  811.         JMP     sz80_skipline
  812. sz80_noskiplines:
  813.     MOVZX   DI,[pcrtcscrwidth]
  814.     SHL     DI,3
  815.     ADD     [scrptr],DI
  816. sz80_skipline:
  817.  
  818. sz80_drawn:
  819.     POP     ES
  820.     POPAW
  821.  
  822. sz80_instend_omitline:
  823.         CMP     [inborder],0
  824.         JNE     sz80_rlinok
  825.     ADD     [cpclinbase],800h
  826.         CMP     [rasterline],0
  827.     JNE     sz80_rlinok
  828.         AND     [cpclinbase],07ffh
  829.     MOV     BP,[cpcptr]
  830.         PUSH    AX
  831.     MOVZX   AX,[crtcscrwidth]
  832.     ADD     BP,AX
  833.     ADD     BP,AX
  834.         POP     AX
  835.     AND     BP,0fffh
  836.     MOV     [cpcptr],BP
  837.  
  838. sz80_rlinok:
  839.         MOV     BP,[linescount]         ; check whether the frame is finished
  840.         OR      BP,BP
  841.         JNS     sz80_neartheend
  842.  
  843. ; This is apparently wrong (Voyage 93)
  844. ;        CMP     [rasterline],0          ; only check all the stuff at the top
  845. ;        JNE     sz80_instend_end        ; of a character
  846.  
  847.         MOVZX   BP,[CRTCregs+4]
  848.         AND     BP,7fh
  849.         INC     BP
  850.         CMP     [charline],BP
  851.         JC      sz80_nowhereneartheend
  852.         MOV     [linescount],0
  853.         MOVZX   BP,[BYTE PTR CRTCregs+5]
  854.         MOV     [crtcvtadj],BP
  855. sz80_neartheend:
  856.         MOV     BP,[crtcvtadj]
  857.         AND     BP,1fh
  858.         CMP     [linescount],BP
  859.         JC      sz80_notyetendofframe
  860.  
  861.         CALL    StartNewCPCFrame
  862.         JMP     sz80_nowhereneartheend
  863.  
  864. sz80_notyetendofframe:
  865.         INC     [linescount]
  866.  
  867. sz80_nowhereneartheend:
  868.         MOVZX   BP,[CRTCregs+6]         ; check whether Vertical Displayed
  869.         AND     BP,7fh                  ; is used up
  870.         CMP     [charline],BP
  871.         JC      sz80_notinborder
  872.         MOV     [inborder],1
  873.  
  874. sz80_notinborder:                       ; check whether Vertical Sync Pos
  875.         CMP     [hadffly],0        ; is used up
  876.         JNE     sz80_instend_end
  877.  
  878.         CMP     [ffly],0
  879.         JE      sz80_fflyunset
  880.  
  881.         CMP     [ffly],9                ; my real CRTC 2 generates these
  882.         JC      sz80_instend_end        ; independent of reg 9
  883.         MOV     [ffly],0
  884.         MOV     [hadffly],1
  885.  
  886.         CALL    RethinkDrawing
  887.  
  888.         MOV     [scrline],0            ; at this point, we restart to draw
  889.         MOV     [scrptr],0             ; the VGA frame
  890.  
  891.         MOV     BP,[vscroll]
  892.         MOV     [skiplines],BP
  893.  
  894.         CALL    ResetVesaPage
  895.         JMP     sz80_instend_end
  896.  
  897. sz80_fflyunset:
  898.         MOV     BP,[crtcvsync]
  899.         AND     BP,7fh
  900.         CMP     [charline],BP
  901.         JNE     sz80_instend_end
  902.  
  903.         MOV     [ffly],1
  904. ;        MOV     BP,[count52]
  905. ;        CMP     BP,1dh
  906. ;        JC      sz80_instend_end
  907. ;        MOV     [count52],49
  908.  
  909. sz80_instend_end:
  910.     POP     sFree
  911.     JMP     sz80_jump
  912.  
  913. break80:
  914.         INT     3
  915.     JMP     sz80l_gbytepc
  916.  
  917. interrupt:
  918.         MOV     BP,[count52]
  919. ;        MOV     [intadj],BP
  920.         SUB     BP,32
  921.         JC      int_c52ok
  922.         MOV     [count52],BP
  923. ;        MOV     [intadj],BP
  924. int_c52ok:
  925.     SUB     [clocks],5
  926.     INC     [sRF]
  927.     MOV     [sIFF1],0
  928.     MOV     [sIFF2],0
  929.     CMP     [imode],2
  930.     JE      int_mode2
  931.     MOV     BP,[simstack]
  932.     SUB     BP,2
  933.     MOV     [simstack],BP
  934.     wword   sPC
  935.     MOV     sPC,38h
  936.     InitPCSeg
  937.     RET
  938. int_mode2:
  939.     MOV     BP,[simstack]
  940.     SUB     BP,2
  941.     MOV     [simstack],BP
  942.     wword   sPC
  943.     PUSH    nsHL
  944.     PUSH    AX
  945.     MOV     sH,[BYTE PTR srI]
  946.     MOV     sL,0ffh
  947.     gbhl    AL
  948.     INC     nsHL
  949.     gbhl    AH
  950.     MOV     sPC,AX
  951.     POP     AX
  952.     POP     nsHL
  953.     InitPCSeg
  954.     RET
  955.  
  956. keys:
  957.     CMP     [keycode],0
  958.     JE      keys_ret
  959.  
  960.     CMP     [keycode],68            ; F10: bye bye
  961.     JE      cleanup
  962.     CMP     [keycode],63            ; F5: hard reset CPC
  963.     JNE     SHORT keys_noreset
  964.         MOV     [hscroll],0
  965.         MOV     [vscroll],0
  966.     CALL    reset
  967.         CALL    Z80_reset
  968.     XOR     sFree,sFree
  969. keys_noreset:
  970.     CMP     [keycode],64            ; F6: select diskfile
  971.     JNE     SHORT keys_noselfile
  972.     CALL    SelFile
  973. keys_noselfile:                         ; F7: menu
  974.     CMP     [keycode],65
  975.     JNE     SHORT keys_nomenu
  976.     CALL    Menu
  977.     CALL    SetOPTable
  978. keys_nomenu:
  979.     CMP     [keycode],59            ; F1: Load snapshot
  980.     JNE     SHORT keys_nosnap
  981.         CALL    Z80_reset
  982.     CALL    SelSnap
  983. keys_nosnap:
  984.     CMP     [keycode],61            ; F3: Save snapshot
  985.     JNE     SHORT keys_nosavesnap
  986.     CALL    SaveSnap
  987. keys_nosavesnap:
  988.     CMP     [keycode],87            ; F11: hscroll
  989.     JNE     SHORT keys_nof11
  990.         DEC     [hscroll]
  991.         JNS     keys_nof11
  992.         MOV     [hscroll],0
  993. keys_nof11:
  994.     CMP     [keycode],88            ; F12: hscroll
  995.     JNE     SHORT keys_nof12
  996.         INC     [hscroll]
  997. keys_nof12:
  998.     CMP     [keycode],66            ; F8: vscroll
  999.     JNE     SHORT keys_nof8
  1000.         INC     [vscroll]
  1001. keys_nof8:
  1002.     CMP     [keycode],67            ; F9: vscroll
  1003.     JNE     SHORT keys_nof9
  1004.         DEC     [vscroll]
  1005.         JNS     keys_nof9
  1006.         MOV     [vscroll],0
  1007. keys_nof9:
  1008.  ; F2 doesn't do anything here - 50Hz mode seems to be impossible in 256
  1009.  ; color mode.
  1010.     CMP     [keycode],62
  1011.     JNE     keys_nobreak
  1012.     NOP
  1013. IF DEBUG EQ 1
  1014.         INT     3
  1015. ENDIF
  1016. keys_nobreak:
  1017.     MOV     [keycode],0
  1018. keys_ret:
  1019.     RET
  1020.  
  1021. ;*************************************************************************
  1022. ;*                                                                       *
  1023. ;*       Opcode simulation routines                                      *
  1024. ;*                                                                       *
  1025. ;*************************************************************************
  1026.  
  1027. ALIGN   2
  1028. instheader nop00,2
  1029.     instend                         ;00 NOP
  1030.  
  1031. instheader lxib,2
  1032.     gwpc    sBC                     ;01 LD BC,nnnn
  1033.     instend
  1034.  
  1035. instheader staxb,2
  1036.     wbytead EsBC,AL                 ;02 LD (BC),A
  1037.     instend
  1038.  
  1039. instheader inxb,2
  1040.     INC     sBC                     ;03 INC BC
  1041.     instend
  1042.  
  1043. instheader inrb,2
  1044.     z80inc  sB                      ;04 INC B
  1045.  
  1046. instheader dcrb,2
  1047.     z80dec  sB                      ;05 DEC B
  1048.  
  1049. instheader mvib,2
  1050.     gbytePC sB                      ;06 LD B,nn
  1051.     instend
  1052.  
  1053. instheader rlc,2
  1054.     ROL     AL,1                    ;07 RLCA
  1055.     docyf
  1056.  
  1057. instheader exaf,2
  1058.     XCHG    AX,[sAFx]               ;08 EX AF,AF'
  1059.     instend
  1060.  
  1061. instheader dadb,2
  1062.     ADD     nSHL,sBC                ;09 ADD HL,BC
  1063.     docyf
  1064.  
  1065. instheader ldaxb,2
  1066.     gbytead EsBC,AL                 ;0A LD A,(BC)
  1067.     instend
  1068.  
  1069. instheader dcxb,2
  1070.     DEC     sBC                     ;0B DEC BC
  1071.     instend
  1072.  
  1073. instheader inrc,2
  1074.     z80inc  sC                      ;0C INC C
  1075.  
  1076. instheader dcrc,2
  1077.     z80dec  sC                      ;0D DEC C
  1078.  
  1079. instheader mvic,2
  1080.     gbytePC sC                      ;0E LD C,nn
  1081.     instend
  1082.  
  1083. instheader rrc,2
  1084.     ROR     AL,1                    ;0F RRCA
  1085.     docyf
  1086.  
  1087. instheader djnz,2
  1088.     gsbpc                           ;10 DJNZ dd
  1089.     DEC     sB
  1090.     JZ      sz80_instend
  1091.     jrd0
  1092.  
  1093. instheader lxid,2
  1094.     gwpc    sDE                     ;11 LD DE,nnnn
  1095.     instend
  1096.  
  1097. instheader staxd,2
  1098.     wbytead EsDE,AL                 ;12 LD (DE),A
  1099.     instend
  1100.  
  1101. instheader inxd,2
  1102.     INC     sDE                     ;13 INC DE
  1103.     instend
  1104.  
  1105. instheader inrd,2
  1106.     z80inc  sD                      ;14 INC D
  1107.  
  1108. instheader dcrd,2
  1109.     z80dec  sD                      ;15 DEC D
  1110.  
  1111. instheader mvid,2
  1112.     gbytePC sD                      ;16 LD D,nn
  1113.     instend
  1114.  
  1115. instheader ral,2
  1116.     SAHF                            ;17 RLA *flags* (ok)
  1117.     RCL     AL,1
  1118.     docyf
  1119.  
  1120. instheader jr,2
  1121.     gsbpc                           ;18 JR dd
  1122.     jrd0
  1123.  
  1124. instheader dadd,2
  1125.     ADD     nSHL,sDE                ;19 ADD HL,DE
  1126.     docyf
  1127.  
  1128. instheader ldaxd,2
  1129.     gbytead EsDE,AL                 ;1A LD A,(DE)
  1130.     instend
  1131.  
  1132. instheader dcxd,2
  1133.     DEC     sDE                     ;1B DEC DE
  1134.     instend
  1135.  
  1136. instheader inre,2
  1137.     z80inc  sE                      ;1C INC E
  1138.  
  1139. instheader dcre,2
  1140.     z80dec  sE                      ;1D DEC E
  1141.  
  1142. instheader mvie,2
  1143.     gbytePC sE                      ;1E LD E,nn
  1144.     instend
  1145.  
  1146. instheader rar,2
  1147.     SAHF                            ;1F RRA
  1148.     RCR     AL,1
  1149.     docyf
  1150.  
  1151. instheader jrnz,2
  1152.     gsbpc                           ;20 JR NZ,dd
  1153.     BT      AX,14
  1154.     JC      sz80_instend
  1155.     jrd0
  1156.  
  1157. instheader lxih,2
  1158.     gwpc    nSHL                    ;21 LD HL,nnnn
  1159.     instend
  1160.  
  1161. instheader shldz,2
  1162.     gwpc    BP                      ;22 LD (nnnn),HL
  1163.     wword   nSHL
  1164.     instend
  1165.  
  1166. instheader inxh,2
  1167.     INC     nSHL                    ;23 INC HL
  1168.     instend
  1169.  
  1170. instheader inrh,2
  1171.     z80inc  sH                      ;24 INC H
  1172.  
  1173. instheader dcrh,2
  1174.     z80dec  sH                      ;25 DEC H
  1175.  
  1176. instheader mvih,2
  1177.     gbytePC sH                      ;26 LD H,nn
  1178.     instend
  1179.  
  1180. instheader daaz,2
  1181.     BT      AX,9                    ;27 DAA
  1182.     JC      SHORT daa_sub
  1183.     SAHF
  1184.     DAA
  1185.     MOV     BP,AX
  1186.     LAHF
  1187.     AND     BP,200h
  1188.     AND     AH,0fdh
  1189.     OR      AX,BP
  1190.     instend
  1191. daa_sub:
  1192.     SAHF
  1193.     DAS
  1194.     MOV     BP,AX
  1195.     LAHF
  1196.     AND     BP,200h
  1197.     AND     AH,0fdh
  1198.     OR      AX,BP
  1199.     instend
  1200.  
  1201. instheader jrz,2
  1202.     gsbpc                           ;28 JR Z,dd
  1203.     BT      AX,14
  1204.     JNC     sz80_instend
  1205.     jrd0
  1206.  
  1207. instheader dadh,2
  1208.     ADD     nSHL,nSHL               ;29 ADD HL,HL
  1209.     docyf
  1210.  
  1211. instheader lhld,2
  1212.     gwpc    BP                      ;2A LD HL,(nnnn)
  1213.     gwordBP nSHL
  1214.     instend
  1215.  
  1216. instheader dcxh,2
  1217.     DEC     nSHL                    ;2B DEC HL
  1218.     instend
  1219.  
  1220. instheader inrl,2
  1221.     z80inc  sL                      ;2C INC L
  1222.  
  1223. instheader dcrl,2
  1224.     z80dec  sL                      ;2D DEC L
  1225.  
  1226. instheader mvil,2
  1227.     gbytePC sL                      ;2E LD L,nn
  1228.     instend
  1229.  
  1230. instheader cma,2
  1231.     NOT     AL                      ;2F CPL
  1232.     instend
  1233.  
  1234. instheader jrnc,2
  1235.     gsbpc                           ;30 JR NC,dd
  1236.     BT      AX,8
  1237.     JC      sz80_instend
  1238.     jrd0
  1239.  
  1240. instheader lxis,2
  1241.     gwpc    BP                      ;31 LD SP,nnnn
  1242.     MOV     [simstack],BP
  1243.     instend
  1244.  
  1245. instheader sta,2
  1246.     gwpc    BP                      ;32 LD (nnnn),A
  1247.     wbyte   AL
  1248.     instend
  1249.  
  1250. instheader inxs,2
  1251.     INC     [simstack]              ;33 INC SP
  1252.     instend
  1253.  
  1254. instheader inrm,2
  1255.     PUSH    sBC                     ;34 INC (HL)
  1256.     gbhl    sC
  1257.     z80inco sC
  1258.     wbhl    sC
  1259.     POP     sBC
  1260.     instend
  1261.  
  1262. instheader dcrm,2
  1263.     PUSH    sBC                     ;35 DEC (HL)
  1264.     gbhl    sC
  1265.     z80deco sC
  1266.     wbhl    sC
  1267.     POP     sBC
  1268.     instend
  1269.  
  1270. instheader mvim,2
  1271.     PUSH    sBC                     ;36 LD (HL),nn
  1272.     gbytePC sC
  1273.     wbhl    sC
  1274.     POP     sBC
  1275.     instend
  1276.  
  1277. instheader stcz,2
  1278.     OR      AH,1                    ;37 SCF
  1279.     AND     AH,0EDh
  1280.     instend
  1281.  
  1282. instheader jrc,2
  1283.     gsbpc                           ;38 JR C,dd
  1284.     BT      AX,8
  1285.     JNC     sz80_instend
  1286.     jrd0
  1287.  
  1288. instheader dads,2
  1289.     ADD     nSHL,[simstack]         ;39 ADD HL,SP
  1290.     docyf
  1291.  
  1292. instheader lda,2
  1293.     gwpc    BP                      ;3A LD A,(nnnn)
  1294.     gbyteBP AL
  1295.     instend
  1296.  
  1297. instheader dcxs,2
  1298.     DEC     [simstack]              ;3B DEC SP
  1299.     instend
  1300.  
  1301. instheader inra,2
  1302.     z80inc  AL                      ;3C INC A
  1303.  
  1304. instheader dcra,2
  1305.     z80dec  AL                      ;3D DEC A
  1306.  
  1307. instheader mvia,2
  1308.     gbytePC AL                      ;3E LD A,nn
  1309.     instend
  1310.  
  1311. instheader cmcz,2
  1312.     AND     AH,0FDh                 ;3F CCF
  1313.     XOR     AH,11h
  1314.     instend
  1315.  
  1316. instheader movebb,2
  1317.     instend                         ;40 LD B,B
  1318.  
  1319. instheader movebc,2
  1320.     MOV     sB,sC                   ;41 LD B,C
  1321.     instend
  1322.  
  1323. instheader movebd,2
  1324.     MOV     sB,sD                   ;42 LD B,D
  1325.     instend
  1326.  
  1327. instheader movebe,2
  1328.     MOV     sB,sE                   ;43 LD B,E
  1329.     instend
  1330.  
  1331. instheader movebh,2
  1332.     MOV     sB,sH                   ;44 LD B,H
  1333.     instend
  1334.  
  1335. instheader movebl,2
  1336.     MOV     sB,sL                   ;45 LD B,L
  1337.     instend
  1338.  
  1339. instheader movebm,2
  1340.     gbhl    sB                      ;46 LD B,(HL)
  1341.     instend
  1342.  
  1343. instheader moveba,2
  1344.     MOV     sB,AL                   ;47 LD B,A
  1345.     instend
  1346.  
  1347. instheader movecb,2
  1348.     MOV     sC,sB                   ;48 LD C,B
  1349.     instend
  1350.  
  1351. instheader movecc,2
  1352.     instend                         ;49 LD C,C
  1353.  
  1354. instheader movecd,2
  1355.     MOV     sC,sD                   ;4A LD C,D
  1356.     instend
  1357.  
  1358. instheader movece,2
  1359.     MOV     sC,sE                   ;4B LD C,E
  1360.     instend
  1361.  
  1362. instheader movech,2
  1363.     MOV     sC,sH                   ;4C LD C,H
  1364.     instend
  1365.  
  1366. instheader movecl,2
  1367.     MOV     sC,sL                   ;4D LD C,L
  1368.     instend
  1369.  
  1370. instheader movecm,2
  1371.     gbhl    sC                      ;4E LD C,(HL)
  1372.     instend
  1373.  
  1374. instheader moveca,2
  1375.     MOV     sC,AL                   ;4F LD C,A
  1376.     instend
  1377.  
  1378. instheader movedb,2
  1379.     MOV     sD,sB                   ;50 LD D,B
  1380.     instend
  1381.  
  1382. instheader movedc,2
  1383.     MOV     sD,sC                   ;51 LD D,C
  1384.     instend
  1385.  
  1386. instheader movedd,2
  1387.     instend                         ;52 LD D,D
  1388.  
  1389. instheader movede,2
  1390.     MOV     sD,sE                   ;53 LD D,E
  1391.     instend
  1392.  
  1393. instheader movedh,2
  1394.     MOV     sD,sH                   ;54 LD D,H
  1395.     instend
  1396.  
  1397. instheader movedl,2
  1398.     MOV     sD,sL                   ;55 LD D,L
  1399.     instend
  1400.  
  1401. instheader movedm,2
  1402.     gbhl    sD                      ;56 LD D,(HL)
  1403.     instend
  1404.  
  1405. instheader moveda,2
  1406.     MOV     sD,AL                   ;57 LD D,A
  1407.     instend
  1408.  
  1409. instheader moveeb,2
  1410.     MOV     sE,sB                   ;58 LD E,B
  1411.     instend
  1412.  
  1413. instheader moveec,2
  1414.     MOV     sE,sC                   ;59 LD E,C
  1415.     instend
  1416.  
  1417. instheader moveed,2
  1418.     MOV     sE,sD                   ;5A LD E,D
  1419.     instend
  1420.  
  1421. instheader moveee,2
  1422.     instend                         ;5B LD E,E
  1423.  
  1424. instheader moveeh,2
  1425.     MOV     sE,sH                   ;5C LD E,H
  1426.     instend
  1427.  
  1428. instheader moveel,2
  1429.     MOV     sE,sL                   ;5D LD E,L
  1430.     instend
  1431.  
  1432. instheader moveem,2
  1433.     gbhl    sE                      ;5E LD E,(HL)
  1434.     instend
  1435.  
  1436. instheader moveea,2
  1437.     MOV     sE,AL                   ;5F LD E,A
  1438.     instend
  1439.  
  1440. instheader movehb,2
  1441.     MOV     sH,sB                   ;60 LD H,B
  1442.     instend
  1443.  
  1444. instheader movehc,2
  1445.     MOV     sH,sC                   ;61 LD H,C
  1446.     instend
  1447.  
  1448. instheader movehd,2
  1449.     MOV     sH,sD                   ;62 LD H,D
  1450.     instend
  1451.  
  1452. instheader movehe,2
  1453.     MOV     sH,sE                   ;63 LD H,E
  1454.     instend
  1455.  
  1456. instheader movehh,2
  1457.     instend                         ;64 LD H,H
  1458.  
  1459. instheader movehl,2
  1460.     MOV     sH,sL                   ;65 LD H,L
  1461.     instend
  1462.  
  1463. instheader movehm,2
  1464.     gbhl    sH                      ;66 LD H,(HL)
  1465.     instend
  1466.  
  1467. instheader moveha,2
  1468.     MOV     sH,AL                   ;67 LD H,A
  1469.     instend
  1470.  
  1471. instheader movelb,2
  1472.     MOV     sL,sB                   ;68 LD L,B
  1473.     instend
  1474.  
  1475. instheader movelc,2
  1476.     MOV     sL,sC                   ;69 LD L,C
  1477.     instend
  1478.  
  1479. instheader moveld,2
  1480.     MOV     sL,sD                   ;6A LD L,D
  1481.     instend
  1482.  
  1483. instheader movele,2
  1484.     MOV     sL,sE                   ;6B LD L,E
  1485.     instend
  1486.  
  1487. instheader movelh,2
  1488.     MOV     sL,sH                   ;6C LD L,H
  1489.     instend
  1490.  
  1491. instheader movell,2
  1492.     instend                         ;6D LD L,L
  1493.  
  1494. instheader movelm,2
  1495.     gbhl    sL                      ;6E LD L,(HL)
  1496.     instend
  1497.  
  1498. instheader movela,2
  1499.     MOV     sL,AL                   ;6F LD L,A
  1500.     instend
  1501.  
  1502. instheader movemb,2
  1503.     wbhl    sB                      ;70 LD (HL),B
  1504.     instend
  1505.  
  1506. instheader movemc,2
  1507.     wbhl    sC                      ;71 LD (HL),C
  1508.     instend
  1509.  
  1510. instheader movemd,2
  1511.     wbhl    sD                      ;72 LD (HL),D
  1512.     instend
  1513.  
  1514. instheader moveme,2
  1515.     wbhl    sE                      ;73 LD (HL),E
  1516.     instend
  1517.  
  1518. instheader movemh,2
  1519.     wbhl    sH                      ;74 LD (HL),H
  1520.     instend
  1521.  
  1522. instheader moveml,2
  1523.     wbhl    sL                      ;75 LD (HL),L
  1524.     instend
  1525.  
  1526. instheader halt,2
  1527.     CMP     [sIFF1],1
  1528.     JE      haltnorm
  1529.     NOP
  1530. haltnorm:
  1531.     MOV     [haltactive],1          ;76 HALT
  1532.     DEC     sPC
  1533.     instend
  1534.  
  1535. instheader movema,2
  1536.     wbhl    AL                      ;77 LD (HL),A
  1537.     instend
  1538.  
  1539. instheader moveab,2
  1540.     MOV     AL,sB                   ;78 LD A,B
  1541.     instend
  1542.  
  1543. instheader moveac,2
  1544.     MOV     AL,sC                   ;79 LD A,C
  1545.     instend
  1546.  
  1547. instheader movead,2
  1548.     MOV     AL,sD                   ;7A LD A,D
  1549.     instend
  1550.  
  1551. instheader moveae,2
  1552.     MOV     AL,sE                   ;7B LD A,E
  1553.     instend
  1554.  
  1555. instheader moveah,2
  1556.     MOV     AL,sH                   ;7C LD A,H
  1557.     instend
  1558.  
  1559. instheader moveal,2
  1560.     MOV     AL,sL                   ;7D LD A,L
  1561.     instend
  1562.  
  1563. instheader moveam,2
  1564.     gbhl    AL                      ;7E LD A,(HL)
  1565.     instend
  1566.  
  1567. instheader moveaa,2
  1568.     instend                         ;7F LD A,A
  1569.  
  1570. instheader addb,2
  1571.     ADD     AL,sB                   ;80 ADD A,B
  1572.     flagsetN0
  1573.  
  1574. instheader addc,2
  1575.     ADD     AL,sC                   ;81 ADD A,C
  1576.     flagsetN0
  1577.  
  1578. instheader addd,2
  1579.     ADD     AL,sD                   ;82 ADD A,D
  1580.     flagsetN0
  1581.  
  1582. instheader adde,2
  1583.     ADD     AL,sE                   ;83 ADD A,E
  1584.     flagsetN0
  1585.  
  1586. instheader addh,2
  1587.     ADD     AL,sH                   ;84 ADD A,H
  1588.     flagsetN0
  1589.  
  1590. instheader addl,2
  1591.     ADD     AL,sL                   ;85 ADD A,L
  1592.     flagsetN0
  1593.  
  1594. instheader addm,2
  1595.     gbhl    AH                      ;86 ADD A,(HL)
  1596.     ADD     AL,AH                   ; don't push AH, gets killed anyway
  1597.     flagsetN0                       ; in macro
  1598.  
  1599. instheader adda,2
  1600.     ADD     AL,AL                   ;87 ADD A,A
  1601.     flagsetN0
  1602.  
  1603. instheader adcb,2
  1604.     SAHF                            ;88 ADC A,B
  1605.     ADC     AL,sB
  1606.     flagsetN0
  1607.  
  1608. instheader adcc,2
  1609.     SAHF                            ;89 ADC A,C
  1610.     ADC     AL,sC
  1611.     flagsetN0
  1612.  
  1613. instheader adcd,2
  1614.     SAHF                            ;8A ADC A,D
  1615.     ADC     AL,sD
  1616.     flagsetN0
  1617.  
  1618. instheader adce,2
  1619.     SAHF                            ;8B ADC A,E
  1620.     ADC     AL,sE
  1621.     flagsetN0
  1622.  
  1623. instheader adch,2
  1624.     SAHF                            ;8C ADC A,H
  1625.     ADC     AL,sH
  1626.     flagsetN0
  1627.  
  1628. instheader adcl,2
  1629.     SAHF                            ;8D ADC A,L
  1630.     ADC     AL,sL
  1631.     flagsetN0
  1632.  
  1633. instheader adcm,2
  1634.     PUSH    sBC                     ;8E ADC A,(HL)
  1635.     gbhl    sB
  1636.     SAHF
  1637.     ADC     AL,sB
  1638.     POP     sBC
  1639.     flagsetN0
  1640.  
  1641. instheader adca,2
  1642.     SAHF                            ;8F ADC A,A
  1643.     ADC     AL,AL
  1644.     flagsetN0
  1645.  
  1646. instheader subb,2
  1647.     SUB     AL,sB                   ;90 SUB A,B
  1648.     flagsetN1
  1649.  
  1650. instheader subc,2
  1651.     SUB     AL,sC                   ;91 SUB A,C
  1652.     flagsetN1
  1653.  
  1654. instheader subd,2
  1655.     SUB     AL,sD                   ;92 SUB A,D
  1656.     flagsetN1
  1657.  
  1658. instheader sube,2
  1659.     SUB     AL,sE                   ;93 SUB A,E
  1660.     flagsetN1
  1661.  
  1662. instheader subh,2
  1663.     SUB     AL,sH                   ;94 SUB A,H
  1664.     flagsetN1
  1665.  
  1666. instheader subl,2
  1667.     SUB     AL,sL                   ;95 SUB A,L
  1668.     flagsetN1
  1669.  
  1670. instheader subm,2
  1671.     gbhl    AH                      ;96 SUB A,(HL)
  1672.     SUB     AL,AH
  1673.     flagsetN1
  1674.  
  1675. instheader suba,2
  1676.     SUB     AL,AL                   ;97 SUB A,A
  1677.     flagsetN1
  1678.  
  1679. instheader sbbb,2
  1680.     SAHF                            ;98 SBC A,B
  1681.     SBB     AL,sB
  1682.     flagsetN1
  1683.  
  1684. instheader sbbc,2
  1685.     SAHF                            ;99 SBC A,C
  1686.     SBB     AL,sC
  1687.     flagsetN1
  1688.  
  1689. instheader sbbd,2
  1690.     SAHF                            ;9A SBC A,D
  1691.     SBB     AL,sD
  1692.     flagsetN1
  1693.  
  1694. instheader sbbe,2
  1695.     SAHF                            ;9B SBC A,E
  1696.     SBB     AL,sE
  1697.     flagsetN1
  1698.  
  1699. instheader sbbh,2
  1700.     SAHF                            ;9C SBC A,H
  1701.     SBB     AL,sH
  1702.     flagsetN1
  1703.  
  1704. instheader sbbl,2
  1705.     SAHF                            ;9D SBC A,L
  1706.     SBB     AL,sL
  1707.     flagsetN1
  1708.  
  1709. instheader sbbm,2
  1710.     PUSH    sBC                     ;9E SBC A,(HL)
  1711.     gbhl    sB
  1712.     SAHF
  1713.     SBB     AL,sB
  1714.     POP     sBC
  1715.     flagsetN1
  1716.  
  1717. instheader sbba,2
  1718.     SAHF                            ;9F SBC A,A
  1719.     SBB     AL,AL
  1720.     flagsetN1
  1721.  
  1722. instheader andb,2
  1723.     AND     AL,sB                   ;A0 AND A,B
  1724.     LAHF
  1725.     AND     AH,0EDh
  1726.     OR      AH,10h
  1727.     instend
  1728.  
  1729. instheader andc,2
  1730.     AND     AL,sC                   ;A1 AND A,C
  1731.     LAHF
  1732.     AND     AH,0EDh
  1733.     OR      AH,10h
  1734.     instend
  1735.  
  1736. instheader andd,2
  1737.     AND     AL,sD                   ;A2 AND A,D
  1738.     LAHF
  1739.     AND     AH,0EDh
  1740.     OR      AH,10h
  1741.     instend
  1742.  
  1743. instheader ande,2
  1744.     AND     AL,sE                   ;A3 AND A,E
  1745.     LAHF
  1746.     AND     AH,0EDh
  1747.     OR      AH,10h
  1748.     instend
  1749.  
  1750. instheader andh,2
  1751.     AND     AL,sH                   ;A4 AND A,H
  1752.     LAHF
  1753.     AND     AH,0EDh
  1754.     OR      AH,10h
  1755.     instend
  1756.  
  1757. instheader andl,2
  1758.     AND     AL,sL                   ;A5 AND A,L
  1759.     LAHF
  1760.     AND     AH,0EDh
  1761.     OR      AH,10h
  1762.     instend
  1763.  
  1764. instheader andm,2
  1765.     gbhl    AH                      ;A6 AND A,(HL)
  1766.     AND     AL,AH
  1767.     LAHF
  1768.     AND     AH,0EDh
  1769.     OR      AH,10h
  1770.     instend
  1771.  
  1772. instheader anda,2
  1773.     AND     AL,AL                   ;A7 AND A,A
  1774.     LAHF
  1775.     AND     AH,0EDh
  1776.     OR      AH,10h
  1777.     instend
  1778.  
  1779. instheader xrab,2
  1780.     XOR     AL,sB                   ;A8 XOR A,B
  1781.     LAHF
  1782.     AND     AH,0EDh
  1783.     instend
  1784.  
  1785. instheader xrac,2
  1786.     XOR     AL,sC                   ;A9 XOR A,C
  1787.     LAHF
  1788.     AND     AH,0EDh
  1789.     instend
  1790.  
  1791. instheader xrad,2
  1792.     XOR     AL,sD                   ;AA XOR A,D
  1793.     LAHF
  1794.     AND     AH,0EDh
  1795.     instend
  1796.  
  1797. instheader xrae,2
  1798.     XOR     AL,sE                   ;AB XOR A,E
  1799.     LAHF
  1800.     AND     AH,0EDh
  1801.     instend
  1802.  
  1803. instheader xrah,2
  1804.     XOR     AL,sH                   ;AC XOR A,H
  1805.     LAHF
  1806.     AND     AH,0EDh
  1807.     instend
  1808.  
  1809. instheader xral,2
  1810.     XOR     AL,sL                   ;AD XOR A,L
  1811.     LAHF
  1812.     AND     AH,0EDh
  1813.     instend
  1814.  
  1815. instheader xram,2
  1816.     gbhl    AH                      ;AE XOR A,(HL)
  1817.     XOR     AL,AH
  1818.     LAHF
  1819.     AND     AH,0EDh
  1820.     instend
  1821.  
  1822. instheader xraa,2
  1823.     XOR     AL,AL                   ;AF XOR A,A
  1824.     LAHF
  1825.     AND     AH,0EDh
  1826.     instend
  1827.  
  1828. instheader orab,2
  1829.     OR      AL,sB                   ;B0 OR A,B
  1830.     LAHF
  1831.     AND     AH,0EDh
  1832.     instend
  1833.  
  1834. instheader orac,2
  1835.     OR      AL,sC                   ;B1 OR A,C
  1836.     LAHF
  1837.     AND     AH,0EDh
  1838.     instend
  1839.  
  1840. instheader orad,2
  1841.     OR      AL,sD                   ;B2 OR A,D
  1842.     LAHF
  1843.     AND     AH,0EDh
  1844.     instend
  1845.  
  1846. instheader orae,2
  1847.     OR      AL,sE                   ;B3 OR A,E
  1848.     LAHF
  1849.     AND     AH,0EDh
  1850.     instend
  1851.  
  1852. instheader orah,2
  1853.     OR      AL,sH                   ;B4 OR A,H
  1854.     LAHF
  1855.     AND     AH,0EDh
  1856.     instend
  1857.  
  1858. instheader oral,2
  1859.     OR      AL,sL                   ;B5 OR A,L
  1860.     LAHF
  1861.     AND     AH,0EDh
  1862.     instend
  1863.  
  1864. instheader oram,2
  1865.     gbhl    AH                      ;B6 OR A,(HL)
  1866.     OR      AL,AH
  1867.     LAHF
  1868.     AND     AH,0EDh
  1869.     instend
  1870.  
  1871. instheader oraa,2
  1872.     OR      AL,AL                   ;B7 OR A,A
  1873.     LAHF
  1874.     AND     AH,0EDh
  1875.     instend
  1876.  
  1877. instheader cmpb,2
  1878.     CMP     AL,sB                   ;B8 CP B
  1879.     flagsetN1
  1880.  
  1881. instheader cmpc,2
  1882.     CMP     AL,sC                   ;B9 CP C
  1883.     flagsetN1
  1884.  
  1885. instheader cmpd,2
  1886.     CMP     AL,sD                   ;BA CP D
  1887.     flagsetN1
  1888.  
  1889. instheader cmpe,2
  1890.     CMP     AL,sE                   ;BB CP E
  1891.     flagsetN1
  1892.  
  1893. instheader cmph,2
  1894.     CMP     AL,sH                   ;BC CP H
  1895.     flagsetN1
  1896.  
  1897. instheader cmpl,2
  1898.     CMP     AL,sL                   ;BD CP L
  1899.     flagsetN1
  1900.  
  1901. instheader cmpam,2
  1902.     gbhl    AH                      ;BE CP (HL)
  1903.     CMP     AL,AH
  1904.     flagsetN1
  1905.  
  1906. instheader cmpaa,2
  1907.     CMP     AL,AL                   ;BF CP A
  1908.     flagsetN1
  1909.  
  1910. instheader rnz,2
  1911.     BT      AX,14                   ;C0 RET NZ
  1912.     JC      sz80_instend
  1913.     ret80
  1914.  
  1915. instheader popb,2
  1916.     MOV     BP,[simstack]           ;C1 POP BC
  1917.     gwordBP sBC
  1918.     ADD     BP,2
  1919.     MOV     [simstack],BP
  1920.     instend
  1921.  
  1922. instheader jnzz,2
  1923.     BT      AX,14                   ;C2 JP NZ,addr
  1924.     JC      SHORT jnzx
  1925.     getPC
  1926.     instend
  1927. jnzx:   ADD     sPC,2
  1928.     instend
  1929.  
  1930. instheader jmpa,2
  1931.     getPC                           ;C3 JP addr
  1932.     instend
  1933.  
  1934. instheader cnz,2
  1935.     BT      AX,14                   ;C4 CALL NZ,addr
  1936.     JNC     SHORT cnzdo
  1937.     ADD     sPC,2
  1938.     instend
  1939. cnzdo:  call80
  1940.  
  1941. instheader pushb,2
  1942.     MOV     BP,[simstack]           ;C5 PUSH BC
  1943.     SUB     BP,2
  1944.     MOV     [simstack],BP
  1945.     wword   sBC
  1946.     instend
  1947.  
  1948. instheader adi,2
  1949.     gbytePC AH                      ;C6 ADD A,nn
  1950.     ADD     AL,AH
  1951.     flagsetN0
  1952.  
  1953. instheader rst0,2
  1954.     rst80   0                       ;C7 RST 0
  1955.  
  1956. instheader rz,2
  1957.     BT      AX,14                   ;C8 RET Z
  1958.     JNC     sz80_instend
  1959.     ret80
  1960.  
  1961. instheader retz,2
  1962.     ret80                           ;C9 RET
  1963.  
  1964. instheader jzz,2
  1965.     BT      AX,14                   ;CA JP Z,addr
  1966.     JNC     SHORT jzx
  1967.     getPC
  1968.     instend
  1969. jzx:    ADD     sPC,2
  1970.     instend
  1971.  
  1972. instheader cz,2
  1973.     BT      AX,14                   ;CC CALL Z,addr
  1974.     JC      SHORT czdo
  1975.     ADD     sPC,2
  1976.     instend
  1977. czdo:   call80
  1978.  
  1979. instheader callz,2
  1980.     call80                          ;CD CALL addr
  1981.  
  1982. instheader aci,2
  1983.     SAHF                            ;CE ADC A,nn
  1984.     gbytePC AH    ; does not modify C flag! **
  1985.     ADC     AL,AH
  1986.     flagsetN0
  1987.  
  1988. instheader rst1,2
  1989.     rst80   8                       ;CF RST 1
  1990.  
  1991. instheader rnc,2
  1992.     BT      AX,8                    ;D0 RET NC
  1993.     JC      sz80_instend
  1994.     ret80
  1995.  
  1996. instheader popd,2
  1997.     MOV     BP,[simstack]           ;D1 POP DE
  1998.     gwordBP sDE
  1999.     ADD     BP,2
  2000.     MOV     [simstack],BP
  2001.     instend
  2002.  
  2003. instheader jncz,2
  2004.     BT      AX,8                    ;D2 JP NC,addr
  2005.     JC      SHORT jncx
  2006.     getPC
  2007.     instend
  2008. jncx:   ADD     sPC,2
  2009.     instend
  2010.  
  2011. instheader outz,2
  2012.     PUSH    AX                      ;D3 OUT (nn),A
  2013.     MOV     AH,AL
  2014.     PUSH    sBC
  2015.     gbytePC sC
  2016.     CALL    outp
  2017.     POP     sBC
  2018.     POP     AX
  2019.     instend
  2020.  
  2021. instheader cnc,2
  2022.     BT      AX,8                    ;D4 CALL NC,addr
  2023.     JNC     SHORT cncdo
  2024.     ADD     sPC,2
  2025.     instend
  2026. cncdo:  call80
  2027.  
  2028. instheader pushd,2
  2029.     MOV     BP,[simstack]           ;D5 PUSH DE
  2030.     SUB     BP,2
  2031.     MOV     [simstack],BP
  2032.     wword   sDE
  2033.     instend
  2034.  
  2035. instheader sui,2
  2036.     gbytePC AH                      ;D6 SUB A,nn
  2037.     SUB     AL,AH
  2038.     flagsetN1
  2039.  
  2040. instheader rst2,2
  2041.     rst80   10h                     ;D7 RST,2
  2042.  
  2043. instheader rc,2
  2044.     BT      AX,8                    ;D8 RET C
  2045.     JNC     sz80_instend
  2046.     ret80
  2047.  
  2048. instheader exx,2
  2049.     XCHG    sBC,[sBCx]              ;D9 EXX
  2050.     XCHG    sDE,[sDEx]
  2051.     XCHG    nSHL,[sHLx]
  2052.     instend
  2053.  
  2054. instheader jcz,2
  2055.     BT      AX,8                    ;DA JP C,addr
  2056.     JNC     SHORT jcx
  2057.     getPC
  2058.     instend
  2059. jcx:    ADD     sPC,2
  2060.     instend
  2061.  
  2062. instheader inz,2
  2063.     PUSH    AX                      ;DB IN A,(nn)
  2064.     MOV AH,AL
  2065.     PUSH    sBC
  2066.     gbytePC sC
  2067.     CALL    inp
  2068.     POP     sBC
  2069.     MOVZX   BP,AL
  2070.     POP     AX
  2071.     XOR     AL,AL
  2072.     OR      AX,BP
  2073.     instend
  2074.  
  2075. instheader cc,2
  2076.     BT      AX,8                    ;DC CALL C,addr
  2077.     JC      SHORT ccdo
  2078.     ADD     sPC,2
  2079.     instend
  2080. ccdo:   call80
  2081.  
  2082. instheader sbi,2
  2083.     SAHF                            ;DE SBC A,nn
  2084.     gbytePC AH
  2085.     SBB     AL,AH
  2086.     flagsetN1
  2087.  
  2088. instheader rst3,2
  2089.     rst80   18h                     ;DF RST 3
  2090.  
  2091. instheader rpo,2
  2092.     BT      AX,10                   ;E0 RET PO
  2093.     JC      sz80_instend
  2094.     ret80
  2095.  
  2096. instheader poph,2
  2097.     MOV     BP,[simstack]           ;E1 POP HL
  2098.     gwordBP nSHL
  2099.     ADD     BP,2
  2100.     MOV     [simstack],BP
  2101.     instend
  2102.  
  2103. instheader jpoz,2
  2104.     BT      AX,10                   ;E2 JP PO,addr
  2105.     JC      SHORT jpox
  2106.     getPC
  2107.     instend
  2108. jpox:   ADD     sPC,2
  2109.     instend
  2110.  
  2111. instheader xthl,2
  2112.     MOV     BP,[simstack]           ;E3 EX (SP),HL
  2113.     gwordBP sFree
  2114.     PUSH    sFree
  2115.     wword   nSHL
  2116.     POP     nSHL
  2117.     instend
  2118.  
  2119. instheader cpo,2
  2120.     BT      AX,10                   ;E4 CALL PO,addr
  2121.     JNC     SHORT cpodo
  2122.     ADD     sPC,2
  2123.     instend
  2124. cpodo:  call80
  2125.  
  2126. instheader pushh,2
  2127.     MOV     BP,[simstack]           ;E5 PUSH HL
  2128.     SUB     BP,2
  2129.     MOV     [simstack],BP
  2130.     wword   nSHL
  2131.     instend
  2132.  
  2133. instheader ani,2
  2134.     gbytePC AH                      ;E6 AND nn
  2135.     AND     AL,AH
  2136.     LAHF
  2137.     instend
  2138.  
  2139. instheader rst4,2
  2140.     rst80   20h                     ;E7 RST 4
  2141.  
  2142. instheader rpe,2
  2143.     BT      AX,10                   ;E8 RET PE
  2144.     JNC     sz80_instend
  2145.     ret80
  2146.  
  2147. instheader pchl,2
  2148.     MOV     sPC,nSHL                ;E9 JP (HL)
  2149.     InitPCSeg
  2150.     instend
  2151.  
  2152. instheader jpez,2
  2153.     BT      AX,10                   ;EA JP PE,addr
  2154.     JNC     SHORT jpex
  2155.     getPC
  2156.     instend
  2157. jpex:   ADD     sPC,2
  2158.     instend
  2159.  
  2160. instheader xchgz,2
  2161.     XCHG    nSHL,sDE                ;EB EX DE,HL
  2162.     instend
  2163.  
  2164. instheader cpe,2
  2165.     BT      AX,10                   ;EC CALL PE,addr
  2166.     JC      SHORT cpedo
  2167.     ADD     sPC,2
  2168.     instend
  2169. cpedo:  call80
  2170.  
  2171. instheader xri,2
  2172.     gbytePC AH                      ;EE XOR nn
  2173.     XOR     AL,AH
  2174.     LAHF
  2175.     AND     AH,0EDh
  2176.     instend
  2177.  
  2178. instheader rst5,2
  2179.     rst80   28h                     ;EF RST 5
  2180.  
  2181. instheader rp,2
  2182.     BT      AX,15                   ;F0 RET P
  2183.     JC      sz80_instend
  2184.     ret80
  2185.  
  2186. instheader popp,2
  2187.     MOV     BP,[simstack]           ;F1 POP AF
  2188.     gwordBP AX
  2189.     ROL     AX,8
  2190.     ADD     BP,2
  2191.     MOV     [simstack],BP
  2192.     instend
  2193.  
  2194. instheader jpz,2
  2195.     BT      AX,15                   ;F2 JP P,addr
  2196.     JC      SHORT jpx
  2197.     getPC
  2198.     instend
  2199. jpx:    ADD     sPC,2
  2200.     instend
  2201.  
  2202. instheader diz,2
  2203.     MOV     [sIFF1],0               ;F3 DI
  2204.     MOV     [sIFF2],0
  2205.     instend
  2206.  
  2207. instheader cp,2
  2208.     BT      AX,15                   ;F4 CALL P,addr
  2209.     JNC     SHORT cpdo
  2210.     ADD     sPC,2
  2211.     instend
  2212. cpdo:   call80
  2213.  
  2214. instheader pushp,2
  2215.     MOV     BP,[simstack]           ;F5 PUSH AF
  2216.     SUB     BP,2
  2217.     MOV     [simstack],BP
  2218.     ROL     AX,8
  2219.     wword   AX
  2220.     ROL     AX,8
  2221.     instend
  2222.  
  2223. instheader oria,2
  2224.     gbytePC AH                      ;F6 OR nn
  2225.     OR      AL,AH
  2226.     LAHF
  2227.     AND     AH,0EDh        ; *do this everywhere
  2228.     instend
  2229.  
  2230. instheader rst6,2
  2231.     rst80   30h                     ;F7 RST 6
  2232.  
  2233. instheader rm,2
  2234.     BT      AX,15                   ;F8 RET M
  2235.     JNC     sz80_instend
  2236.     ret80
  2237.  
  2238. instheader sphl,2
  2239.     MOV     [simstack],nSHL         ;F9 LD SP,HL
  2240.     instend
  2241.  
  2242. instheader jmz,2
  2243.     BT      AX,15                   ;FA JP M,addr
  2244.     JNC     SHORT jmx
  2245.     getPC
  2246.     instend
  2247. jmx:    ADD     sPC,2
  2248.     instend
  2249.  
  2250. instheader ei,2
  2251.     OR      [intflag],2             ;FB EI
  2252.     instend
  2253.  
  2254. instheader cm,2
  2255.     BT      AX,15                   ;FC CALL M,addr
  2256.     JC      SHORT cmdo
  2257.     ADD     sPC,2
  2258.     instend
  2259. cmdo:   call80
  2260.  
  2261. instheader cpi,2
  2262.     gbytePC AH                      ;FE CP nn
  2263.     CMP     AL,AH
  2264.     flagsetN1
  2265.  
  2266. instheader rst7,2
  2267.     rst80   38h                     ;FF RST 7
  2268.  
  2269. ;*************************************************************************
  2270. ;*                                                                       *
  2271. ;*       Z-80 opcode simulation routines                                 *
  2272. ;*                                                                       *
  2273. ;*************************************************************************
  2274.  
  2275. preCB:  gbpc                            ;Grab sub-opcode.
  2276.     JMP     [EsFree*2+opcosCB]
  2277.  
  2278. preDD:  gbpc
  2279.     MOV     BP,[EsFree*2+opclogs]
  2280.     SUB     [clocks],BP
  2281.     JMP     [EsFree*2+opcosDD]
  2282.  
  2283. prDDCB: calcind ix                      ;Calculate operand address.
  2284.         DEC     [clocks]
  2285.     PUSH    sFree
  2286.     gbpc                            ;Sub-sub-opcode
  2287.     JMP     [EsFree*2+opcDDCB]
  2288.  
  2289. preED:  gbpc
  2290.     MOV     BP,[EsFree*2+edclogs]
  2291.     SUB     [clocks],BP
  2292.     JMP     [EsFree*2+opcosED]
  2293.  
  2294. preFD:  gbpc
  2295.     MOV     BP,[EsFree*2+opclogs]
  2296.     SUB     [clocks],BP
  2297.     JMP     [EsFree*2+opcosFD]
  2298.  
  2299. prFDCB: calcind iy                      ;Calculate operand address.
  2300.         DEC     [clocks]
  2301.     PUSH    sFree
  2302.     gbpc                            ;Sub-sub-opcode
  2303.     JMP     [EsFree*2+opcDDCB]
  2304.  
  2305. iDDCB:  POP     BP
  2306.     DEC     sPC
  2307. illgED: instend
  2308.  
  2309. r_iDDCB:
  2310.     POP     BP
  2311. r_illgED:
  2312.     ADD     [sRF],2
  2313.     instend
  2314.  
  2315.  ; *******************************************************************
  2316.  
  2317. instheader rlcb,4
  2318.     ROL     sB,1                    ;CB00 RLC B
  2319.     LAHF
  2320.     addtoc  sB,sFree
  2321.     instend
  2322.  
  2323. instheader rlcc,4
  2324.     ROL     sC,1                    ;CB01 RLC C
  2325.     LAHF
  2326.     addtoc  sC,sFree
  2327.     instend
  2328.  
  2329. instheader rlcd,4
  2330.     ROL     sD,1                    ;CB02 RLC D
  2331.     LAHF
  2332.     addtoc  sD,sFree
  2333.     instend
  2334.  
  2335. instheader rlce,4
  2336.     ROL     sE,1                    ;CB03 RLC E
  2337.     LAHF
  2338.     addtoc  sE,sFree
  2339.     instend
  2340.  
  2341. instheader rlch,4
  2342.     ROL     sH,1                    ;CB04 RLC H
  2343.     LAHF
  2344.     addtoc  sH,sFree
  2345.     instend
  2346.  
  2347. instheader rlcl,4
  2348.     ROL     sL,1                    ;CB05 RLC L
  2349.     LAHF
  2350.     addtoc  sL,sFree
  2351.     instend
  2352.  
  2353. instheader rlcm,4
  2354.     PUSH    sBC                     ;CB06 RLC (HL)
  2355.     gbhl    sC
  2356.     ROL     sC,1
  2357.     LAHF
  2358.     addtoc  sC,sFree
  2359.     wbhl    sC
  2360.     POP     sBC
  2361.     instend
  2362.  
  2363. instheader rlca,4
  2364.     ROL     AL,1                    ;CB07 RLC A
  2365.     LAHF
  2366.     addtoc  AL,sFree
  2367.     instend
  2368.  
  2369. instheader rrcb,4
  2370.     ROR     sB,1                    ;CB08 RRC B
  2371.     LAHF
  2372.     addtoc  sB,sFree
  2373.     instend
  2374.  
  2375. instheader rrcc,4
  2376.     ROR     sC,1                    ;CB09 RRC C
  2377.     LAHF
  2378.     addtoc  sC,sFree
  2379.     instend
  2380.  
  2381. instheader rrcd,4
  2382.     ROR     sD,1                    ;CB0A RRC D
  2383.     LAHF
  2384.     addtoc  sD,sFree
  2385.     instend
  2386.  
  2387. instheader rrce,4
  2388.     ROR     sE,1                    ;CB0B RRC E
  2389.     LAHF
  2390.     addtoc  sE,sFree
  2391.     instend
  2392.  
  2393. instheader rrch,4
  2394.     ROR     sH,1                    ;CB0C RRC H
  2395.     LAHF
  2396.     addtoc  sH,BP
  2397.     instend
  2398.  
  2399. instheader rrcl,4
  2400.     ROR     sL,1                    ;CB0D RRC L
  2401.     LAHF
  2402.     addtoc  sL,sFree
  2403.     instend
  2404.  
  2405. instheader rrcm,4
  2406.     PUSH    sBC                     ;CB0E RRC (HL)
  2407.     gbhl    sC
  2408.     ROR     sC,1
  2409.     LAHF
  2410.     addtoc  sC,sFree
  2411.     wbhl    sC
  2412.     POP     sBC
  2413.     instend
  2414.  
  2415. instheader rrca,4
  2416.     ROR     AL,1                    ;CB0F RRC A
  2417.     LAHF
  2418.     addtoc  AL,sFree
  2419.     instend
  2420.  
  2421. instheader rlrb,4
  2422.     SAHF                            ;CB10 RL B
  2423.     RCL     sB,1
  2424.     LAHF
  2425.     addtoc  sB,sFree
  2426.     instend
  2427.  
  2428. instheader rlrc,4
  2429.     SAHF                            ;CB11 RL C
  2430.     RCL     sC,1
  2431.     LAHF
  2432.     addtoc  sC,sFree
  2433.     instend
  2434.  
  2435. instheader rlrd,4
  2436.     SAHF                            ;CB12 RL D
  2437.     RCL     sD,1
  2438.     LAHF
  2439.     addtoc  sD,sFree
  2440.     instend
  2441.  
  2442. instheader rlre,4
  2443.     SAHF                            ;CB13 RL E
  2444.     RCL     sE,1
  2445.     LAHF
  2446.     addtoc  sE,sFree
  2447.     instend
  2448.  
  2449. instheader rlrh,4
  2450.     SAHF                            ;CB14 RL H
  2451.     RCL     sH,1
  2452.     LAHF
  2453.     addtoc  sH,sFree
  2454.     instend
  2455.  
  2456. instheader rlrl,4
  2457.     SAHF                            ;CB15 RL L
  2458.     RCL     sL,1
  2459.     LAHF
  2460.     addtoc  sL,sFree
  2461.     instend
  2462.  
  2463. instheader rlrm,4
  2464.     PUSH    sBC                     ;CB16 RL (HL)
  2465.     gbhl    sC
  2466.     SAHF
  2467.     RCL     sC,1
  2468.     LAHF
  2469.     addtoc  sC,sFree
  2470.     wbhl    sC
  2471.     POP     sBC
  2472.     instend
  2473.  
  2474. instheader rlra,4
  2475.     SAHF                            ;CB17 RL A
  2476.     RCL     AL,1
  2477.     LAHF
  2478.     addtoc  AL,sFree
  2479.     instend
  2480.  
  2481. instheader rrrb,4
  2482.     SAHF                            ;CB18 RR B
  2483.     RCR     sB,1
  2484.     LAHF
  2485.     addtoc  sB,sFree
  2486.     instend
  2487.  
  2488. instheader rrrc,4
  2489.     SAHF                            ;CB19 RR C
  2490.     RCR     sC,1
  2491.     LAHF
  2492.     addtoc  sC,sFree
  2493.     instend
  2494.  
  2495. instheader rrrd,4
  2496.     SAHF                            ;CB1A RR D
  2497.     RCR     sD,1
  2498.     LAHF
  2499.     addtoc  sD,sFree
  2500.     instend
  2501.  
  2502. instheader rrre,4
  2503.     SAHF                            ;CB1B RR E
  2504.     RCR     sE,1
  2505.     LAHF
  2506.     addtoc  sE,sFree
  2507.     instend
  2508.  
  2509. instheader rrrh,4
  2510.     SAHF                            ;CB1C RR H
  2511.     RCR     sH,1
  2512.     LAHF
  2513.     addtoc  sH,sFree
  2514.     instend
  2515.  
  2516. instheader rrrl,4
  2517.     SAHF                            ;CB1D RR L
  2518.     RCR     sL,1
  2519.     LAHF
  2520.     addtoc  sL,sFree
  2521.     instend
  2522.  
  2523. instheader rrrm,4
  2524.     PUSH    sBC                     ;CB1E RR (HL)
  2525.     gbhl    sC
  2526.     SAHF
  2527.     RCR     sC,1
  2528.     LAHF
  2529.     addtoc  sC,sFree
  2530.     wbhl    sC
  2531.     POP     sBC
  2532.     instend
  2533.  
  2534. instheader rrra,4
  2535.     SAHF                            ;CB1F RR A
  2536.     RCR     AL,1
  2537.     LAHF
  2538.     addtoc  AL,sFree
  2539.     instend
  2540.  
  2541. instheader slab,4
  2542.     SAL     sB,1                    ;CB20 SLA B
  2543.     LAHF
  2544.     instend
  2545.  
  2546. instheader slac,4
  2547.     SAL     sC,1                    ;CB21 SLA C
  2548.     LAHF
  2549.     instend
  2550.  
  2551. instheader slad,4
  2552.     SAL     sD,1                    ;CB22 SLA D
  2553.     LAHF
  2554.     instend
  2555.  
  2556. instheader slae,4
  2557.     SAL     sE,1                    ;CB23 SLA E
  2558.     LAHF
  2559.     instend
  2560.  
  2561. instheader slah,4
  2562.     SAL     sH,1                    ;CB24 SLA H
  2563.     LAHF
  2564.     instend
  2565.  
  2566. instheader slal,4
  2567.     SAL     sL,1                    ;CB25 SLA L
  2568.     LAHF
  2569.     instend
  2570.  
  2571. instheader slam,4
  2572.     PUSH    sBC                     ;CB26 SLA (HL)
  2573.     gbhl    sC
  2574.     SAL     sC,1
  2575.     LAHF
  2576.     wbhl    sC
  2577.     POP     sBC
  2578.     instend
  2579.  
  2580. instheader slaa,4
  2581.     SAL     AL,1                    ;CB27 SLA A
  2582.     LAHF
  2583.     instend
  2584.  
  2585. instheader srab,4
  2586.     SAR     sB,1                    ;CB28 SRA B
  2587.     LAHF
  2588.     instend
  2589.  
  2590. instheader srac,4
  2591.     SAR     sC,1                    ;CB29 SRA C
  2592.     LAHF
  2593.     instend
  2594.  
  2595. instheader srad,4
  2596.     SAR     sD,1                    ;CB2A SRA D
  2597.     LAHF
  2598.     instend
  2599.  
  2600. instheader srae,4
  2601.     SAR     sE,1                    ;CB2B SRA E
  2602.     LAHF
  2603.     instend
  2604.  
  2605. instheader srah,4
  2606.     SAR     sH,1                    ;CB2C SRA H
  2607.     LAHF
  2608.     instend
  2609.  
  2610. instheader sral,4
  2611.     SAR     sL,1                    ;CB2D SRA L
  2612.     LAHF
  2613.     instend
  2614.  
  2615. instheader sram,4
  2616.     PUSH    sBC                     ;CB2E SRA (HL)
  2617.     gbhl    sC
  2618.     SAR     sC,1
  2619.     LAHF
  2620.     wbhl    sC
  2621.     POP     sBC
  2622.     instend
  2623.  
  2624. instheader sraa,4
  2625.     SAR     AL,1                    ;CB2F SRA A
  2626.     LAHF
  2627.     instend
  2628.  
  2629. instheader sllb,4
  2630.     SAL     sB,1                    ;CB30 SLL B
  2631.     LAHF
  2632.     OR      sB,1
  2633.     instend
  2634.  
  2635. instheader sllc,4
  2636.     SAL     sC,1                    ;CB31 SLL C
  2637.     LAHF
  2638.     OR      sC,1
  2639.     instend
  2640.  
  2641. instheader slld,4
  2642.     SAL     sD,1                    ;CB32 SLL D
  2643.     LAHF
  2644.     OR      sD,1
  2645.     instend
  2646.  
  2647. instheader slle,4
  2648.     SAL     sE,1                    ;CB33 SLL E
  2649.     LAHF
  2650.     OR      sE,1
  2651.     instend
  2652.  
  2653. instheader sllh,4
  2654.     SAL     sH,1                    ;CB34 SLL H
  2655.     LAHF
  2656.     OR      sH,1
  2657.     instend
  2658.  
  2659. instheader slll,4
  2660.     SAL     sL,1                    ;CB35 SLL L
  2661.     LAHF
  2662.     OR      sL,1
  2663.     instend
  2664.  
  2665. instheader sllm,4
  2666.     PUSH    sBC                     ;CB36 SLL (HL)
  2667.     gbhl    sC
  2668.     SAL     sC,1
  2669.     LAHF
  2670.     OR      sC,1
  2671.     wbhl    sC
  2672.     POP     sBC
  2673.     instend
  2674.  
  2675. instheader slla,4
  2676.     SAL     AL,1                    ;CB37 SLL A
  2677.     LAHF
  2678.     OR      AL,1
  2679.     instend
  2680.  
  2681. instheader srlb,4
  2682.     SHR     sB,1                    ;CB38 SRL B
  2683.     LAHF
  2684.     instend
  2685.  
  2686. instheader srlc,4
  2687.     SHR     sC,1                    ;CB39 SRL C
  2688.     LAHF
  2689.     instend
  2690.  
  2691. instheader srld,4
  2692.     SHR     sD,1                    ;CB3A SRL D
  2693.     LAHF
  2694.     instend
  2695.  
  2696. instheader srle,4
  2697.     SHR     sE,1                    ;CB3B SRL E
  2698.     LAHF
  2699.     instend
  2700.  
  2701. instheader srlh,4
  2702.     SHR     sH,1                    ;CB3C SRL H
  2703.     LAHF
  2704.     instend
  2705.  
  2706. instheader srll,4
  2707.     SHR     sL,1                    ;CB3D SRL L
  2708.     LAHF
  2709.     instend
  2710.  
  2711. instheader srlm,4
  2712.     PUSH    sBC                     ;CB3E SRL (HL)
  2713.     gbhl    sC
  2714.     SHR     sC,1
  2715.     LAHF
  2716.     wbhl    sC
  2717.     POP     sBC
  2718.     instend
  2719.  
  2720. instheader srla,4
  2721.     SHR     AL,1                    ;CB3F SRL A
  2722.     LAHF
  2723.     instend
  2724.  
  2725. instheader bit0b,4
  2726.     BT      sBC,8                   ;CB40 BIT 0,B
  2727.     dozf
  2728.  
  2729. instheader bit0c,4
  2730.     BT      sBC,0                   ;CB41 BIT 0,C
  2731.     dozf
  2732.  
  2733. instheader bit0d,4
  2734.     BT      sDE,8                   ;CB42 BIT 0,D
  2735.     dozf
  2736.  
  2737. instheader bit0e,4
  2738.     BT      sDE,0                   ;CB43 BIT 0,E
  2739.     dozf
  2740.  
  2741. instheader bit0h,4
  2742.     BT      nSHL,8                  ;CB44 BIT 0,H
  2743.     dozf
  2744.  
  2745. instheader bit0l,4
  2746.     BT      nSHL,0                  ;CB45 BIT 0,L
  2747.     dozf
  2748.  
  2749. instheader bit0m,4
  2750.     gwordhl BP                      ;CB46 BIT 0,(HL)
  2751.     BT      BP,0
  2752.     dozf
  2753.  
  2754. instheader bit0a,4
  2755.     BT      AX,0                    ;CB47 BIT 0,A
  2756.     dozf
  2757.  
  2758. instheader bit1b,4
  2759.     BT      sBC,9                   ;CB48 BIT 1,B
  2760.     dozf
  2761.  
  2762. instheader bit1c,4
  2763.     BT      sBC,1                   ;CB49 BIT 1,C
  2764.     dozf
  2765.  
  2766. instheader bit1d,4
  2767.     BT      sDE,9                   ;CB4A BIT 1,D
  2768.     dozf
  2769.  
  2770. instheader bit1e,4
  2771.     BT      sDE,1                   ;CB4B BIT 1,E
  2772.     dozf
  2773.  
  2774. instheader bit1h,4
  2775.     BT      nSHL,9                  ;CB4C BIT 1,H
  2776.     dozf
  2777.  
  2778. instheader bit1l,4
  2779.     BT      nsHL,1                  ;CB4D BIT 1,L
  2780.     dozf
  2781.  
  2782. instheader bit1m,4
  2783.     gwordhl BP                      ;CB4E BIT 1,(HL)
  2784.     BT      BP,1
  2785.     dozf
  2786.  
  2787. instheader bit1a,4
  2788.     BT      AX,1                    ;CB4F BIT 1,A
  2789.     dozf
  2790.  
  2791. instheader bit2b,4
  2792.     BT      sBC,10                  ;CB50 BIT 2,B
  2793.     dozf
  2794.  
  2795. instheader bit2c,4
  2796.     BT      sBC,2                   ;CB51 BIT 2,C
  2797.     dozf
  2798.  
  2799. instheader bit2d,4
  2800.     BT      sDE,10                  ;CB52 BIT 2,D
  2801.     dozf
  2802.  
  2803. instheader bit2e,4
  2804.     BT      sDE,2                   ;CB53 BIT 2,E
  2805.     dozf
  2806.  
  2807. instheader bit2h,4
  2808.     BT      nSHL,10                 ;CB54 BIT 2,H
  2809.     dozf
  2810.  
  2811. instheader bit2l,4
  2812.     BT      nSHL,2                  ;CB55 BIT 2,L
  2813.     dozf
  2814.  
  2815. instheader bit2m,4
  2816.     gwordhl BP                      ;CB56 BIT 2,(HL)
  2817.     BT      BP,2
  2818.     dozf
  2819.  
  2820. instheader bit2a,4
  2821.     BT      AX,2                    ;CB57 BIT 2,A
  2822.     dozf
  2823.  
  2824. instheader bit3b,4
  2825.     BT      sBC,11                  ;CB58 BIT 3,B
  2826.     dozf
  2827.  
  2828. instheader bit3c,4
  2829.     BT      sBC,3                   ;CB59 BIT 3,C
  2830.     dozf
  2831.  
  2832. instheader bit3d,4
  2833.     BT      sDE,11                  ;CB5A BIT 3,D
  2834.     dozf
  2835.  
  2836. instheader bit3e,4
  2837.     BT      sDE,3                   ;CB5B BIT 3,E
  2838.     dozf
  2839.  
  2840. instheader bit3h,4
  2841.     BT      nSHL,11                 ;CB5C BIT 3,H
  2842.     dozf
  2843.  
  2844. instheader bit3l,4
  2845.     BT      nSHL,3                  ;CB5D BIT 3,L
  2846.     dozf
  2847.  
  2848. instheader bit3m,4
  2849.     gwordhl BP                      ;CB5E BIT 3,(HL)
  2850.     BT      BP,3
  2851.     dozf
  2852.  
  2853. instheader bit3a,4
  2854.     BT      AX,3                    ;CB5F BIT 3,A
  2855.     dozf
  2856.  
  2857. instheader bit4b,4
  2858.     BT      sBC,12                  ;CB60 BIT 4,B
  2859.     dozf
  2860.  
  2861. instheader bit4c,4
  2862.     BT      sBC,4                   ;CB61 BIT 4,C
  2863.     dozf
  2864.  
  2865. instheader bit4d,4
  2866.     BT      sDE,12                  ;CB62 BIT 4,D
  2867.     dozf
  2868.  
  2869. instheader bit4e,4
  2870.     BT      sDE,4                   ;CB63 BIT 4,E
  2871.     dozf
  2872.  
  2873. instheader bit4h,4
  2874.     BT      nSHL,12                 ;CB64 BIT 4,H
  2875.     dozf
  2876.  
  2877. instheader bit4l,4
  2878.     BT      nSHL,4                  ;CB65 BIT 4,L
  2879.     dozf
  2880.  
  2881. instheader bit4m,4
  2882.     gwordhl BP                      ;CB66 BIT 4,(HL)
  2883.     BT      BP,4
  2884.     dozf
  2885.  
  2886. instheader bit4a,4
  2887.     BT      AX,4                    ;CB67 BIT 4,A
  2888.     dozf
  2889.  
  2890. instheader bit5b,4
  2891.     BT      sBC,13                  ;CB68 BIT 5,B
  2892.     dozf
  2893.  
  2894. instheader bit5c,4
  2895.     BT      sBC,5                   ;CB69 BIT 5,C
  2896.     dozf
  2897.  
  2898. instheader bit5d,4
  2899.     BT      sDE,13                  ;CB6A BIT 5,D
  2900.     dozf
  2901.  
  2902. instheader bit5e,4
  2903.     BT      sDE,5                   ;CB6B BIT 5,E
  2904.     dozf
  2905.  
  2906. instheader bit5h,4
  2907.     BT      nSHL,13                 ;CB6C BIT 5,H
  2908.     dozf
  2909.  
  2910. instheader bit5l,4
  2911.     BT      nSHL,5                  ;CB6D BIT 5,L
  2912.     dozf
  2913.  
  2914. instheader bit5m,4
  2915.     gwordhl BP                      ;CB6E BIT 5,(HL)
  2916.     BT      BP,5
  2917.     dozf
  2918.  
  2919. instheader bit5a,4
  2920.     BT      AX,5                    ;CB6F BIT 5,A
  2921.     dozf
  2922.  
  2923. instheader bit6b,4
  2924.     BT      sBC,14                  ;CB70 BIT 6,B
  2925.     dozf
  2926.  
  2927. instheader bit6c,4
  2928.     BT      sBC,6                   ;CB71 BIT 6,C
  2929.     dozf
  2930.  
  2931. instheader bit6d,4
  2932.     BT      sDE,14                  ;CB72 BIT 6,D
  2933.     dozf
  2934.  
  2935. instheader bit6e,4
  2936.     BT      sDE,6                   ;CB73 BIT 6,E
  2937.     dozf
  2938.  
  2939. instheader bit6h,4
  2940.     BT      nSHL,14                 ;CB74 BIT 6,H
  2941.     dozf
  2942.  
  2943. instheader bit6l,4
  2944.     BT      nSHL,6                  ;CB75 BIT 6,L
  2945.     dozf
  2946.  
  2947. instheader bit6m,4
  2948.     gwordhl BP                      ;CB76 BIT 6,(HL)
  2949.     BT      BP,6
  2950.     dozf
  2951.  
  2952. instheader bit6a,4
  2953.     BT      AX,6                    ;CB77 BIT 6,A
  2954.     dozf
  2955.  
  2956. instheader bit7b,4
  2957.     BT      sBC,15                  ;CB78 BIT 7,B
  2958.     dozmf
  2959.  
  2960. instheader bit7c,4
  2961.     BT      sBC,7                   ;CB79 BIT 7,C
  2962.     dozmf
  2963.  
  2964. instheader bit7d,4
  2965.     BT      sDE,15                  ;CB7A BIT 7,D
  2966.     dozmf
  2967.  
  2968. instheader bit7e,4
  2969.     BT      sDE,7                   ;CB7B BIT 7,E
  2970.     dozmf
  2971.  
  2972. instheader bit7h,4
  2973.     BT      nSHL,15                 ;CB7C BIT 7,H
  2974.     dozmf
  2975.  
  2976. instheader bit7l,4
  2977.     BT      nSHL,7                  ;CB7D BIT 7,L
  2978.     dozmf
  2979.  
  2980. instheader bit7m,4
  2981.     gwordhl BP                      ;CB7E BIT 7,(HL)
  2982.     BT      BP,7
  2983.     dozmf
  2984.  
  2985. instheader bit7a,4
  2986.     BT      AX,7                    ;CB7F BIT 7,A
  2987.     dozmf
  2988.  
  2989. instheader res0b,4
  2990.     AND     sB,0FEh                 ;CB80 RES 0,B
  2991.     instend
  2992.  
  2993. instheader res0c,4
  2994.     AND     sC,0FEh                 ;CB81 RES 0,C
  2995.     instend
  2996.  
  2997. instheader res0d,4
  2998.     AND     sD,0FEh                 ;CB82 RES 0,D
  2999.     instend
  3000.  
  3001. instheader res0e,4
  3002.     AND     sE,0FEh                 ;CB83 RES 0,E
  3003.     instend
  3004.  
  3005. instheader res0h,4
  3006.     AND     sH,0FEh                 ;CB84 RES 0,H
  3007.     instend
  3008.  
  3009. instheader res0l,4
  3010.     AND     sL,0FEh                 ;CB85 RES 0,L
  3011.     instend
  3012.  
  3013. instheader res0m,4
  3014.     PUSH    AX                      ;CB86 RES 0,(HL)
  3015.     gbhl    AL
  3016.     AND     AL,0FEh
  3017.     wbhl    AL
  3018.     POP     AX
  3019.     instend
  3020.  
  3021. instheader res0a,4
  3022.     AND     AL,0FEh                 ;CB87 RES 0,A
  3023.     instend
  3024.  
  3025. instheader res1b,4
  3026.     AND     sB,0FDh                 ;CB88 RES 1,B
  3027.     instend
  3028.  
  3029. instheader res1c,4
  3030.     AND     sC,0FDh                 ;CB89 RES 1,C
  3031.     instend
  3032.  
  3033. instheader res1d,4
  3034.     AND     sD,0FDh                 ;CB8A RES 1,D
  3035.     instend
  3036.  
  3037. instheader res1e,4
  3038.     AND     sE,0FDh                 ;CB8B RES 1,E
  3039.     instend
  3040.  
  3041. instheader res1h,4
  3042.     AND     sH,0FDh                 ;CB8C RES 1,H
  3043.     instend
  3044.  
  3045. instheader res1l,4
  3046.     AND     sL,0FDh                 ;CB8D RES 1,L
  3047.     instend
  3048.  
  3049. instheader res1m,4
  3050.     PUSH    AX                      ;CB8E RES 1,(HL)
  3051.     gbhl    AL
  3052.     AND     AL,0FDh
  3053.     wbhl    AL
  3054.     POP     AX
  3055.     instend
  3056.  
  3057. instheader res1a,4
  3058.     AND     AL,0FDh                 ;CB8F RES 1,A
  3059.     instend
  3060.  
  3061. instheader res2b,4
  3062.     AND     sB,0FBh                 ;CB90 RES 2,B
  3063.     instend
  3064.  
  3065. instheader res2c,4
  3066.     AND     sC,0FBh                 ;CB91 RES 2,C
  3067.     instend
  3068.  
  3069. instheader res2d,4
  3070.     AND     sD,0FBh                 ;CB92 RES 2,D
  3071.     instend
  3072.  
  3073. instheader res2e,4
  3074.     AND     sE,0FBh                 ;CB93 RES 2,E
  3075.     instend
  3076.  
  3077. instheader res2h,4
  3078.     AND     sH,0FBh                 ;CB94 RES 2,H
  3079.     instend
  3080.  
  3081. instheader res2l,4
  3082.     AND     sL,0FBh                 ;CB95 RES 2,L
  3083.     instend
  3084.  
  3085. instheader res2m,4
  3086.     PUSH    AX                      ;CB96 RES 2,(HL)
  3087.     gbhl    AL
  3088.     AND     AL,0FBh
  3089.     wbhl    AL
  3090.     POP     AX
  3091.     instend
  3092.  
  3093. instheader res2a,4
  3094.     AND     AL,0FBh                 ;CB97 RES 3,A
  3095.     instend
  3096.  
  3097. instheader res3b,4
  3098.     AND     sB,0F7h                 ;CB98 RES 3,B
  3099.     instend
  3100.  
  3101. instheader res3c,4
  3102.     AND     sC,0F7h                 ;CB99 RES 3,C
  3103.     instend
  3104.  
  3105. instheader res3d,4
  3106.     AND     sD,0F7h                 ;CB9A RES 3,D
  3107.     instend
  3108.  
  3109. instheader res3e,4
  3110.     AND     sE,0F7h                 ;CB9B RES 3,E
  3111.     instend
  3112.  
  3113. instheader res3h,4
  3114.     AND     sH,0F7h                 ;CB9C RES 3,H
  3115.     instend
  3116.  
  3117. instheader res3l,4
  3118.     AND     sL,0F7h                 ;CB9D RES 3,L
  3119.     instend
  3120.  
  3121. instheader res3m,4
  3122.     PUSH    AX                      ;CB9E RES 3,(HL)
  3123.     gbhl    AL
  3124.     AND     AL,0F7h
  3125.     wbhl    AL
  3126.     POP     AX
  3127.     instend
  3128.  
  3129. instheader res3a,4
  3130.     AND     AL,0F7h                 ;CB9F RES 3,A
  3131.     instend
  3132.  
  3133. instheader res4b,4
  3134.     AND     sB,0EFh                 ;CBA0 RES 4,B
  3135.     instend
  3136.  
  3137. instheader res4c,4
  3138.     AND     sC,0EFh                 ;CBA1 RES 4,C
  3139.     instend
  3140.  
  3141. instheader res4d,4
  3142.     AND     sD,0EFh                 ;CBA2 RES 4,D
  3143.     instend
  3144.  
  3145. instheader res4e,4
  3146.     AND     sE,0EFh                 ;CBA3 RES 4,E
  3147.     instend
  3148.  
  3149. instheader res4h,4
  3150.     AND     sH,0EFh                 ;CBA4 RES 4,H
  3151.     instend
  3152.  
  3153. instheader res4l,4
  3154.     AND     sL,0EFh                 ;CBA5 RES 4,L
  3155.     instend
  3156.  
  3157. instheader res4m,4
  3158.     PUSH    AX                      ;CBA6 RES 4,(HL)
  3159.     gbhl    AL
  3160.     AND     AL,0EFh
  3161.     wbhl    AL
  3162.     POP     AX
  3163.     instend
  3164.  
  3165. instheader res4a,4
  3166.     AND     AL,0EFh                 ;CBA7 RES 4,A
  3167.     instend
  3168.  
  3169. instheader res5b,4
  3170.     AND     sB,0DFh                 ;CBA8 RES 5,B
  3171.     instend
  3172.  
  3173. instheader res5c,4
  3174.     AND     sC,0DFh                 ;CBA9 RES 5,C
  3175.     instend
  3176.  
  3177. instheader res5d,4
  3178.     AND     sD,0DFh                 ;CBAA RES 5,D
  3179.     instend
  3180.  
  3181. instheader res5e,4
  3182.     AND     sE,0DFh                 ;CBAB RES 5,E
  3183.     instend
  3184.  
  3185. instheader res5h,4
  3186.     AND     sH,0DFh                 ;CBAC RES 5,H
  3187.     instend
  3188.  
  3189. instheader res5l,4
  3190.     AND     sL,0DFh                 ;CBAD RES 5,L
  3191.     instend
  3192.  
  3193. instheader res5m,4
  3194.     PUSH    AX                      ;CBAE RES 5,(HL)
  3195.     gbhl    AL
  3196.     AND     AL,0DFh
  3197.     wbhl    AL
  3198.     POP     AX
  3199.     instend
  3200.  
  3201. instheader res5a,4
  3202.     AND     AL,0DFh                 ;CBAF RES 5,A
  3203.     instend
  3204.  
  3205. instheader res6b,4
  3206.     AND     sB,0BFh                 ;CBB0 RES 6,B
  3207.     instend
  3208.  
  3209. instheader res6c,4
  3210.     AND     sC,0BFh                 ;CBB1 RES 6,C
  3211.     instend
  3212.  
  3213. instheader res6d,4
  3214.     AND     sD,0BFh                 ;CBB2 RES 6,D
  3215.     instend
  3216.  
  3217. instheader res6e,4
  3218.     AND     sE,0BFh                 ;CBB3 RES 6,E
  3219.     instend
  3220.  
  3221. instheader res6h,4
  3222.     AND     sH,0BFh                 ;CBB4 RES 6,H
  3223.     instend
  3224.  
  3225. instheader res6l,4
  3226.     AND     sL,0BFh                 ;CBB5 RES 6,L
  3227.     instend
  3228.  
  3229. instheader res6m,4
  3230.     PUSH    AX                      ;CBB6 RES 6,(HL)
  3231.     gbhl    AL
  3232.     AND     AL,0BFh
  3233.     wbhl    AL
  3234.     POP     AX
  3235.     instend
  3236.  
  3237. instheader res6a,4
  3238.     AND     AL,0BFh                 ;CBB7 RES 6,A
  3239.     instend
  3240.  
  3241. instheader res7b,4
  3242.     AND     sB,07Fh                 ;CBB8 RES 7,B
  3243.     instend
  3244.  
  3245. instheader res7c,4
  3246.     AND     sC,07Fh                 ;CBB9 RES 7,C
  3247.     instend
  3248.  
  3249. instheader res7d,4
  3250.     AND     sD,07Fh                 ;CBBA RES 7,D
  3251.     instend
  3252.  
  3253. instheader res7e,4
  3254.     AND     sE,07Fh                 ;CBBB RES 7,E
  3255.     instend
  3256.  
  3257. instheader res7h,4
  3258.     AND     sH,07Fh                 ;CBBC RES 7,H
  3259.     instend
  3260.  
  3261. instheader res7l,4
  3262.     AND     sL,07Fh                 ;CBBD RES 7,L
  3263.     instend
  3264.  
  3265. instheader res7m,4
  3266.     PUSH    AX                      ;CBBE RES 7,(HL)
  3267.     gbhl    AL
  3268.     AND     AL,07Fh
  3269.     wbhl    AL
  3270.     POP     AX
  3271.     instend
  3272.  
  3273. instheader res7a,4
  3274.     AND     AL,07Fh                 ;CBBF RES 7,A
  3275.     instend
  3276.  
  3277. instheader set0b,4
  3278.     OR      sB,1                    ;CBC0 SET 0,B
  3279.     instend
  3280.  
  3281. instheader set0c,4
  3282.     OR      sC,1                    ;CBC1 SET 0,C
  3283.     instend
  3284.  
  3285. instheader set0d,4
  3286.     OR      sD,1                    ;CBC2 SET 0,D
  3287.     instend
  3288.  
  3289. instheader set0e,4
  3290.     OR      sE,1                    ;CBC3 SET 0,E
  3291.     instend
  3292.  
  3293. instheader set0h,4
  3294.     OR      sH,1                    ;CBC4 SET 0,H
  3295.     instend
  3296.  
  3297. instheader set0l,4
  3298.     OR      sL,1                    ;CBC5 SET 0,L
  3299.     instend
  3300.  
  3301. instheader set0m,4
  3302.     PUSH    AX                      ;CBC6 SET 0,(HL)
  3303.     gbhl    AL
  3304.     OR      AL,1
  3305.     wbhl    AL
  3306.     POP     AX
  3307.     instend
  3308.  
  3309. instheader set0a,4
  3310.     OR      AL,1                    ;CBC7 SET 0,A
  3311.     instend
  3312.  
  3313. instheader set1b,4
  3314.     OR      sB,2                    ;CBC8 SET 1,B
  3315.     instend
  3316.  
  3317. instheader set1c,4
  3318.     OR      sC,2                    ;CBC9 SET 1,C
  3319.     instend
  3320.  
  3321. instheader set1d,4
  3322.     OR      sD,2                    ;CBCA SET 1,D
  3323.     instend
  3324.  
  3325. instheader set1e,4
  3326.     OR      sE,2                    ;CBCB SET 1,E
  3327.     instend
  3328.  
  3329. instheader set1h,4
  3330.     OR      sH,2                    ;CBCC SET 1,H
  3331.     instend
  3332.  
  3333. instheader set1l,4
  3334.     OR      sL,2                    ;CBCD SET 1,L
  3335.     instend
  3336.  
  3337. instheader set1m,4
  3338.     PUSH    AX                      ;CBCE SET 1,(HL)
  3339.     gbhl    AL
  3340.     OR      AL,2
  3341.     wbhl    AL
  3342.     POP     AX
  3343.     instend
  3344.  
  3345. instheader set1a,4
  3346.     OR      AL,2                    ;CBCF SET 1,A
  3347.     instend
  3348.  
  3349. instheader set2b,4
  3350.     OR      sB,4                    ;CBD0 SET 2,B
  3351.     instend
  3352.  
  3353. instheader set2c,4
  3354.     OR      sC,4                    ;CBD1 SET 2,C
  3355.     instend
  3356.  
  3357. instheader set2d,4
  3358.     OR      sD,4                    ;CBD2 SET 2,D
  3359.     instend
  3360.  
  3361. instheader set2e,4
  3362.     OR      sE,4                    ;CBD3 SET 2,E
  3363.     instend
  3364.  
  3365. instheader set2h,4
  3366.     OR      sH,4                    ;CBD4 SET 2,H
  3367.     instend
  3368.  
  3369. instheader set2l,4
  3370.     OR      sL,4                    ;CBD5 SET 2,L
  3371.     instend
  3372.  
  3373. instheader set2m,4
  3374.     PUSH    AX                      ;CBD6 SET 2,(HL)
  3375.     gbhl    AL
  3376.     OR      AL,4
  3377.     wbhl    AL
  3378.     POP     AX
  3379.     instend
  3380.  
  3381. instheader set2a,4
  3382.     OR      AL,4                    ;CBD7 SET 2,A
  3383.     instend
  3384.  
  3385. instheader set3b,4
  3386.     OR      sB,8                    ;CBD8 SET 3,B
  3387.     instend
  3388.  
  3389. instheader set3c,4
  3390.     OR      sC,8                    ;CBD9 SET 3,C
  3391.     instend
  3392.  
  3393. instheader set3d,4
  3394.     OR      sD,8                    ;CBDA SET 3,D
  3395.     instend
  3396.  
  3397. instheader set3e,4
  3398.     OR      sE,8                    ;CBDB SET 3,E
  3399.     instend
  3400.  
  3401. instheader set3h,4
  3402.     OR      sH,8                    ;CBDC SET 3,H
  3403.     instend
  3404.  
  3405. instheader set3l,4
  3406.     OR      sL,8                    ;CBDD SET 3,L
  3407.     instend
  3408.  
  3409. instheader set3m,4
  3410.     PUSH    AX                      ;CBDE SET 3,(HL)
  3411.     gbhl    AL
  3412.     OR      AL,8
  3413.     wbhl    AL
  3414.     POP     AX
  3415.     instend
  3416.  
  3417. instheader set3a,4
  3418.     OR      AL,8                    ;CBDF SET 3,A
  3419.     instend
  3420.  
  3421. instheader set4b,4
  3422.     OR      sB,16                   ;CBE0 SET 4,B
  3423.     instend
  3424.  
  3425. instheader set4c,4
  3426.     OR      sC,16                   ;CBE1 SET 4,C
  3427.     instend
  3428.  
  3429. instheader set4d,4
  3430.     OR      sD,16                   ;CBE2 SET 4,D
  3431.     instend
  3432.  
  3433. instheader set4e,4
  3434.     OR      sE,16                   ;CBE3 SET 4,E
  3435.     instend
  3436.  
  3437. instheader set4h,4
  3438.     OR      sH,16                   ;CBE4 SET 4,H
  3439.     instend
  3440.  
  3441. instheader set4l,4
  3442.     OR      sL,16                   ;CBE5 SET 4,L
  3443.     instend
  3444.  
  3445. instheader set4m,4
  3446.     PUSH    AX                      ;CBE6 SET 4,(HL)
  3447.     gbhl    AL
  3448.     OR      AL,16
  3449.     wbhl    AL
  3450.     POP     AX
  3451.     instend
  3452.  
  3453. instheader set4a,4
  3454.     OR      AL,16                   ;CBE7 SET 4,A
  3455.     instend
  3456.  
  3457. instheader set5b,4
  3458.     OR      sB,32                   ;CBE8 SET 5,B
  3459.     instend
  3460.  
  3461. instheader set5c,4
  3462.     OR      sC,32                   ;CBE9 SET 5,C
  3463.     instend
  3464.  
  3465. instheader set5d,4
  3466.     OR      sD,32                   ;CBEA SET 5,D
  3467.     instend
  3468.  
  3469. instheader set5e,4
  3470.     OR      sE,32                   ;CBEB SET 5,E
  3471.     instend
  3472.  
  3473. instheader set5h,4
  3474.     OR      sH,32                   ;CBEC SET 5,H
  3475.     instend
  3476.  
  3477. instheader set5l,4
  3478.     OR      sL,32                   ;CBED SET 5,L
  3479.     instend
  3480.  
  3481. instheader set5m,4
  3482.     PUSH    AX                      ;CBEE SET 5,(HL)
  3483.     gbhl    AL
  3484.     OR      AL,32
  3485.     wbhl    AL
  3486.     POP     AX
  3487.     instend
  3488.  
  3489. instheader set5a,4
  3490.     OR      AL,32                   ;CBEF SET 5,A
  3491.     instend
  3492.  
  3493. instheader set6b,4
  3494.     OR      sB,64                   ;CBE0 SET 6,B
  3495.     instend
  3496.  
  3497. instheader set6c,4
  3498.     OR      sC,64                   ;CBF1 SET 6,C
  3499.     instend
  3500.  
  3501. instheader set6d,4
  3502.     OR      sD,64                   ;CBF2 SET 6,D
  3503.     instend
  3504.  
  3505. instheader set6e,4
  3506.     OR      sE,64                   ;CBF3 SET 6,E
  3507.     instend
  3508.  
  3509. instheader set6h,4
  3510.     OR      sH,64                   ;CBF4 SET 6,H
  3511.     instend
  3512.  
  3513. instheader set6l,4
  3514.     OR      sL,64                   ;CBF5 SET 6,L
  3515.     instend
  3516.  
  3517. instheader set6m,4
  3518.     PUSH    AX                      ;CBF6 SET 6,(HL)
  3519.     gbhl    AL
  3520.     OR      AL,64
  3521.     wbhl    AL
  3522.     POP     AX
  3523.     instend
  3524.  
  3525. instheader set6a,4
  3526.     OR      AL,64                   ;CBF7 SET 6,A
  3527.     instend
  3528.  
  3529. instheader set7b,4
  3530.     OR      sB,128                  ;CBF8 SET 7,B
  3531.     instend
  3532.  
  3533. instheader set7c,4
  3534.     OR      sC,128                  ;CBF9 SET 7,C
  3535.     instend
  3536.  
  3537. instheader set7d,4
  3538.     OR      sD,128                  ;CBFA SET 7,D
  3539.     instend
  3540.  
  3541. instheader set7e,4
  3542.     OR      sE,128                  ;CBFB SET 7,E
  3543.     instend
  3544.  
  3545. instheader set7h,4
  3546.     OR      sH,128                  ;CBFC SET 7,H
  3547.     instend
  3548.  
  3549. instheader set7l,4
  3550.     OR      sL,128                  ;CBFD SET 7,L
  3551.     instend
  3552.  
  3553. instheader set7m,4
  3554.     PUSH    AX                      ;CBFE SET 7,(HL)
  3555.     gbhl    AL
  3556.     OR      AL,128
  3557.     wbhl    AL
  3558.     POP     AX
  3559.     instend
  3560.  
  3561. instheader set7a,4
  3562.     OR      AL,128                  ;CBFF SET 7,A
  3563.     instend
  3564.  
  3565. instheader dadixb,4
  3566.     ADD     [ix],sBC                ;DD09 ADD IX,BC
  3567.     docyf
  3568.  
  3569. instheader dadixd,4
  3570.     ADD     [ix],sDE                ;DD19 ADD IX,DE
  3571.     docyf
  3572.  
  3573. instheader lxiix,4
  3574.     gwpc    BP                      ;DD21 LD IX,nnnn
  3575.     MOV     [ix],BP
  3576.     instend
  3577.  
  3578. instheader sixd,4
  3579.     PUSH    sDE                     ;DD22 LD (addr),IX
  3580.     gwpc    BP
  3581.     MOV     sDE,[ix]
  3582.     wword   sDE
  3583.     POP     sDE
  3584.     instend
  3585.  
  3586. instheader inxix,4
  3587.     INC     [ix]                    ;DD23 INC IX
  3588.     instend
  3589.  
  3590. instheader inrxh,4
  3591.     z80inc  [xh]                    ;DD24 INC XH (undocumented)
  3592.  
  3593. instheader dcrxh,4
  3594.     z80dec  [xh]                    ;DD25 DEC XH (undocumented)
  3595.  
  3596. instheader mvixh,4
  3597.     PUSH    AX                      ;DD26 LD XH,nn (undocumented)
  3598.     gbytePC AL
  3599.     MOV     [xh],AL
  3600.     POP     AX
  3601.     instend
  3602.  
  3603. instheader dadixx,4
  3604.     MOV     BP,[ix]                 ;DD29 ADD IX,IX
  3605.     ADD     [ix],BP
  3606.     docyf
  3607.  
  3608. instheader lixd,4
  3609.     gwpc    BP                      ;DD2A LD IX,(addr)
  3610.     gwordBP BP
  3611.     MOV     [ix],BP
  3612.     instend
  3613.  
  3614. instheader dcxix,4
  3615.     DEC     [ix]                    ;DD2B DEC IX
  3616.     instend
  3617.  
  3618. instheader inrxl,4
  3619.     z80inc  [xl]                    ;DD2C INC XL (undocumented)
  3620.  
  3621. instheader dcrxl,4
  3622.     z80dec  [xl]                    ;DD2D DEC XL (undocumented)
  3623.  
  3624. instheader mvixl,4
  3625.     PUSH    AX                      ;DD2E LD XL,nn (undocumented)
  3626.     gbytePC AL
  3627.     MOV     [xl],AL
  3628.     POP     AX
  3629.     instend
  3630.  
  3631. instheader inrix,4
  3632.     calcind ix                      ;DD34 INC (IX+d)
  3633.     PUSH    sBC
  3634.     gbytefr sC
  3635.     z80inco sC
  3636.     wbytefr sC
  3637.     POP     sBC
  3638.     instend
  3639.  
  3640. instheader dcrix,4
  3641.     calcind ix                      ;DD35 DEC (IX+d)
  3642.     PUSH    sBC
  3643.     gbytefr sC
  3644.     z80deco sC
  3645.     wbytefr sC
  3646.     POP     sBC
  3647.     instend
  3648.  
  3649. instheader mviix,4
  3650.     calcind ix                      ;DD36 LD (IX+d),nn
  3651.     PUSH    AX
  3652.     gbytePC AL
  3653.     wbytefr AL
  3654.     POP     AX
  3655.     instend
  3656.  
  3657. instheader dadixs,4
  3658.     MOV     BP,[simstack]           ;DD39 ADD IX,SP
  3659.     ADD     [ix],BP
  3660.     docyf
  3661.  
  3662. instheader movbxh,4
  3663.     MOV     sB,[xh]                 ;DD44 LD B,XH (undocumented)
  3664.     instend
  3665.  
  3666. instheader movbxl,4
  3667.     MOV     sB,[xl]                 ;DD45 LD B,XL (undocumented)
  3668.     instend
  3669.  
  3670. instheader movbix,4
  3671.     calcind ix                      ;DD46 LD B,(IX+d)
  3672.     gbytefr sB
  3673.     instend
  3674.  
  3675. instheader movcxh,4
  3676.     MOV     sC,[xh]                 ;DD4C LD C,XH (undocumented)
  3677.     instend
  3678.  
  3679. instheader movcxl,4
  3680.     MOV     sC,[xl]                 ;DD4D LD C,XL (undocumented)
  3681.     instend
  3682.  
  3683. instheader movcix,4
  3684.     calcind ix                      ;DD4E LD C,(IX+d)
  3685.     gbytefr sC
  3686.     instend
  3687.  
  3688. instheader movdxh,4
  3689.     MOV     sD,[xh]                 ;DD54 LD D,XH (undocumented)
  3690.     instend
  3691.  
  3692. instheader movdxl,4
  3693.     MOV     sD,[xl]                 ;DD55 LD D,XL (undocumented)
  3694.     instend
  3695.  
  3696. instheader movdix,4
  3697.     calcind ix                      ;DD56 LD D,(IX+d)
  3698.     gbytefr sD
  3699.     instend
  3700.  
  3701. instheader movexh,4
  3702.     MOV     sE,[xh]                 ;DD5C LD E,XH (undocumented)
  3703.     instend
  3704.  
  3705. instheader movexl,4
  3706.     MOV     sE,[xl]                 ;DD5D LD E,XL (undocumented)
  3707.     instend
  3708.  
  3709. instheader moveix,4
  3710.     calcind ix                      ;DD5E LD E,(IX+d)
  3711.     gbytefr sE
  3712.     instend
  3713.  
  3714. instheader movxhb,4
  3715.     MOV     [xh],sB                 ;DD60 LD XH,B (undocumented)
  3716.     instend
  3717.  
  3718. instheader movxhc,4
  3719.     MOV     [xh],sC                 ;DD61 LD XH,C (undocumented)
  3720.     instend
  3721.  
  3722. instheader movxhd,4
  3723.     MOV     [xh],sD                 ;DD62 LD XH,D (undocumented)
  3724.     instend
  3725.  
  3726. instheader movxhe,4
  3727.     MOV     [xh],sE                 ;DD63 LD XH,E (undocumented)
  3728.     instend
  3729.  
  3730. instheader mvxhxh,4
  3731.     instend                         ;DD64 LD XH,XH (undocumented)
  3732.  
  3733. instheader mvxhxl,4
  3734.     PUSH    AX                      ;DD65 LD XH,XL (undocumented)
  3735.     MOV     AL,[xl]
  3736.     MOV     [xh],AL
  3737.     POP     AX
  3738.     instend
  3739.  
  3740. instheader movhix,4
  3741.     calcind ix                      ;DD66 LD H,(IX+d)
  3742.     gbytefr sH
  3743.     instend
  3744.  
  3745. instheader movxha,4
  3746.     MOV     [xh],AL                 ;DD67 LD XH,A
  3747.     instend
  3748.  
  3749. instheader movxlb,4
  3750.     MOV     [xl],sB                 ;DD68 LD XL,B (undocumented)
  3751.     instend
  3752.  
  3753. instheader movxlc,4
  3754.     MOV     [xl],sC                 ;DD69 LD XL,C (undocumented)
  3755.     instend
  3756.  
  3757. instheader movxld,4
  3758.     MOV     [xl],sD                 ;DD6A LD XL,D (undocumented)
  3759.     instend
  3760.  
  3761. instheader movxle,4
  3762.     MOV     [xl],sE                 ;DD6B LD XL,E (undocumented)
  3763.     instend
  3764.  
  3765. instheader mvxlxh,4
  3766.     PUSH    AX                      ;DD6C LD XL,XH (undocumented)
  3767.     MOV     AL,[xh]
  3768.     MOV     [xl],AL
  3769.     POP     AX
  3770.     instend
  3771.  
  3772. instheader mvxlxl,4
  3773.     instend                         ;DD6D LD XL,XL (undocumented)
  3774.  
  3775. instheader movlix,4
  3776.     calcind ix                      ;DD6E LD L,(IX+d)
  3777.     gbytefr sL
  3778.     instend
  3779.  
  3780. instheader movxla,4
  3781.     MOV     [xl],AL                 ;DD6F LD XL,A
  3782.     instend
  3783.  
  3784. instheader movixb,4
  3785.     calcind ix                      ;DD70 LD (IX+d),B
  3786.     wbytefr sB
  3787.     instend
  3788.  
  3789. instheader movixc,4
  3790.     calcind ix                      ;DD71 LD (IX+d),C
  3791.     wbytefr sC
  3792.     instend
  3793.  
  3794. instheader movixd,4
  3795.     calcind ix                      ;DD72 LD (IX+d),D
  3796.     wbytefr sD
  3797.     instend
  3798.  
  3799. instheader movixe,4
  3800.     calcind ix                      ;DD73 LD (IX+d),E
  3801.     wbytefr sE
  3802.     instend
  3803.  
  3804. instheader movixh,4
  3805.     calcind ix                      ;DD74 LD (IX+d),H
  3806.     wbytefr sH
  3807.     instend
  3808.  
  3809. instheader movixl,4
  3810.     calcind ix                      ;DD75 LD (IX+d),L
  3811.     wbytefr sL
  3812.     instend
  3813.  
  3814. instheader movixa,4
  3815.     calcind ix                      ;DD77 LD (IX+d),A
  3816.     wbytefr AL
  3817.     instend
  3818.  
  3819. instheader movaxh,4
  3820.     MOV     AL,[xh]                 ;DD7C LD A,XH (undocumented)
  3821.     instend
  3822.  
  3823. instheader movaxl,4
  3824.     MOV     AL,[xl]                 ;DD7D LD A,XL (undocumented)
  3825.     instend
  3826.  
  3827. instheader movaix,4
  3828.     calcind ix                      ;DD7E LD A,(IX+d)
  3829.     gbytefr AL
  3830.     instend
  3831.  
  3832. instheader addxh,4
  3833.     ADD     AL,[xh]                 ;DD84 ADD A,XH (undocumented)
  3834.     flagsetN0
  3835.  
  3836. instheader addxl,4
  3837.     ADD     AL,[xl]                 ;DD85 ADD A,XL (undocumented)
  3838.     flagsetN0
  3839.  
  3840. instheader addix,4
  3841.     calcind ix                      ;DD86 ADD A,(IX+d)
  3842.     gbytefr AH
  3843.     ADD     AL,AH
  3844.     flagsetN0
  3845.  
  3846. instheader adcxh,4
  3847.     SAHF                            ;DD8C ADC A,XH (undocumented)
  3848.     ADC     AL,[xh]
  3849.     flagsetN0
  3850.  
  3851. instheader adcxl,4
  3852.     SAHF                            ;DD8E ADC A,XL (undocumented)
  3853.     ADC     AL,[xl]
  3854.     flagsetN0
  3855.  
  3856. instheader adcix,4
  3857.     calcind ix                      ;DD8E ADC A,(IX+d)
  3858.     PUSH    sBC
  3859.     gbytefr sC
  3860.     SAHF
  3861.     ADC     AL,sC
  3862.     POP     sBC
  3863.     flagsetN0
  3864.  
  3865. instheader subxh,4
  3866.     SUB     AL,[xh]                 ;DD94 SUB A,XH (undocumented)
  3867.     flagsetN1
  3868.  
  3869. instheader subxl,4
  3870.     SUB     AL,[xl]                 ;DD95 SUB A,XL (undocumented)
  3871.     flagsetN1
  3872.  
  3873. instheader subix,4
  3874.     calcind ix                      ;DD96 SUB A,(IX+d)
  3875.     gbytefr AH
  3876.     SUB     AL,AH
  3877.     flagsetN1
  3878.  
  3879. instheader sbbxh,4
  3880.     SAHF                            ;DD9C SBC A,XH (undocumented)
  3881.     SBB     AL,[xh]
  3882.     flagsetN1
  3883.  
  3884. instheader sbbxl,4
  3885.     SAHF                            ;DD9D SBC A,XL (undocumented)
  3886.     SBB     AL,[xl]
  3887.     flagsetN1
  3888.  
  3889. instheader sbbix,4
  3890.     calcind ix                      ;DD9E SBC A,(IX+d)
  3891.     PUSH    sBC
  3892.     gbytefr sC
  3893.     SAHF
  3894.     SBB     AL,sC
  3895.     POP     sBC
  3896.     flagsetN1
  3897.  
  3898. instheader anaxh,4
  3899.     AND     AL,[xh]                 ;DDA4 AND A,XH (undocumented)
  3900.     LAHF
  3901.     instend
  3902.  
  3903. instheader anaxl,4
  3904.     AND     AL,[xl]                 ;DDA5 AND A,XL (undocumented)
  3905.     LAHF
  3906.     instend
  3907.  
  3908. instheader anaix,4
  3909.     calcind ix                      ;DDA6 AND A,(IX+d)
  3910.     gbytefr AH
  3911.     AND     AL,AH
  3912.     LAHF
  3913.     instend
  3914.  
  3915. instheader xraxh,4
  3916.     XOR     AL,[xh]                 ;DDAC XOR A,XH (undocumented)
  3917.     LAHF
  3918.     instend
  3919.  
  3920. instheader xraxl,4
  3921.     XOR     AL,[xl]                 ;DDAD XOR A,XL (undocumented)
  3922.     LAHF
  3923.     instend
  3924.  
  3925. instheader xraix,4
  3926.     calcind ix                      ;DDAE XOR A,(IX+d)
  3927.     gbytefr AH
  3928.     XOR     AL,AH
  3929.     LAHF
  3930.     instend
  3931.  
  3932. instheader oraxh,4
  3933.     OR      AL,[xh]                 ;DDB4 OR A,XH (undocumented)
  3934.     LAHF
  3935.     instend
  3936.  
  3937. instheader oraxl,4
  3938.     OR      AL,[xl]                 ;DDB5 OR A,XL (undocumented)
  3939.     LAHF
  3940.     instend
  3941.  
  3942. instheader oraix,4
  3943.     calcind ix                      ;DDB6 OR A,(IX+d)
  3944.     gbytefr AH
  3945.     OR      AL,AH
  3946.     LAHF
  3947.     instend
  3948.  
  3949. instheader cmpxh,4
  3950.     CMP     AL,[xh]                 ;DDBC CP XH (undocumented)
  3951.     flagsetN1
  3952.  
  3953. instheader cmpxl,4
  3954.     CMP     AL,[xl]                 ;DDBD CP XL (undocumented)
  3955.     flagsetN1
  3956.  
  3957. instheader cmpix,4
  3958.     calcind ix                      ;DDBE CP (IX+d)
  3959.     gbytefr AH
  3960.     CMP     AL,AH
  3961.     flagsetN1
  3962.  
  3963. instheader rlcib,4
  3964.     POP     BP                      ;DDCB00 RLC (IX+d) > B
  3965.     gbyteBP sB
  3966.     ROL     sB,1
  3967.     LAHF
  3968.     addtoc  sB,sFree
  3969.     instend
  3970.  
  3971. instheader rlcic,4
  3972.     POP     BP                      ;DDCB01 RLC (IX+d) > C
  3973.     gbyteBP sC
  3974.     ROL     sC,1
  3975.     LAHF
  3976.     addtoc  sC,sFree
  3977.     instend
  3978.  
  3979. instheader rlcid,4
  3980.     POP     BP                      ;DDCB01 RLC (IX+d) > D
  3981.     gbyteBP sD
  3982.     ROL     sD,1
  3983.     LAHF
  3984.     addtoc  sD,sFree
  3985.     instend
  3986.  
  3987. instheader rlcie,4
  3988.     POP     BP                      ;DDCB03 RLC (IX+d) > E
  3989.     gbyteBP sE
  3990.     ROL     sE,1
  3991.     LAHF
  3992.     addtoc  sE,sFree
  3993.     instend
  3994.  
  3995. instheader rlcih,4
  3996.     POP     BP                      ;DDCB04 RLC (IX+d) > H
  3997.     gbyteBP sH
  3998.     ROL     sH,1
  3999.     LAHF
  4000.     addtoc  sH,sFree
  4001.     instend
  4002.  
  4003. instheader rlcil,4
  4004.     POP     BP                      ;DDCB05 RLC (IX+d) > L
  4005.     gbyteBP sL
  4006.     ROL     sL,1
  4007.     LAHF
  4008.     addtoc  sL,sFree
  4009.     instend
  4010.  
  4011. instheader rlcix,4
  4012.     POP     BP                      ;DDCB06 RLC (IX+d)
  4013.     PUSH    sBC
  4014.     gbyteBP sC
  4015.     ROL     sC,1
  4016.     LAHF
  4017.     addtoc  sC,sFree
  4018.     wbyte   sC
  4019.     POP     sBC
  4020.     instend
  4021.  
  4022. instheader rlcia,4
  4023.     POP     BP                      ;DDCB07 RLC (IX+d) > A
  4024.     gbyteBP AL
  4025.     ROL     AL,1
  4026.     LAHF
  4027.     addtoc  AL,sFree
  4028.     instend
  4029.  
  4030. instheader rrcib,4
  4031.     POP     BP                      ;DDCB08 RRC (IX+d) > B
  4032.     gbyteBP sB
  4033.     ROR     sB,1
  4034.     LAHF
  4035.     addtoc  sB,sFree
  4036.     instend
  4037.  
  4038. instheader rrcic,4
  4039.     POP     BP                      ;DDCB09 RRC (IX+d) > C
  4040.     gbyteBP sC
  4041.     ROR     sC,1
  4042.     LAHF
  4043.     addtoc  sC,sFree
  4044.     instend
  4045.  
  4046. instheader rrcid,4
  4047.     POP     BP                      ;DDCB0A RRC (IX+d) > D
  4048.     gbyteBP sD
  4049.     ROR     sD,1
  4050.     LAHF
  4051.     addtoc  sD,sFree
  4052.     instend
  4053.  
  4054. instheader rrcie,4
  4055.     POP     BP                      ;DDCB0B RRC (IX+d) > E
  4056.     gbyteBP sE
  4057.     ROR     sE,1
  4058.     LAHF
  4059.     addtoc  sE,sFree
  4060.     instend
  4061.  
  4062. instheader rrcih,4
  4063.     POP     BP                      ;DDCB0C RRC (IX+d) > H
  4064.     gbyteBP sH
  4065.     ROR     sH,1
  4066.     LAHF
  4067.     addtoc  sH,sFree
  4068.     instend
  4069.  
  4070. instheader rrcil,4
  4071.     POP     BP                      ;DDCB0D RRC (IX+d) > L
  4072.     gbyteBP sL
  4073.     ROR     sL,1
  4074.     LAHF
  4075.     addtoc  sL,sFree
  4076.     instend
  4077.  
  4078. instheader rrcix,4
  4079.     POP     BP                      ;DDCB0E RRC (IX+d)
  4080.     PUSH    sBC
  4081.     gbyteBP sC
  4082.     ROR     sC,1
  4083.     LAHF
  4084.     addtoc  sC,sFree
  4085.     wbyte   sC
  4086.     POP     sBC
  4087.     instend
  4088.  
  4089. instheader rrcia,4
  4090.     POP     BP                      ;DDCB0F RRC (IX+d) > A
  4091.     gbyteBP AL
  4092.     ROR     AL,1
  4093.     LAHF
  4094.     addtoc  AL,sFree
  4095.     instend
  4096.  
  4097. instheader rlib,4
  4098.     POP     BP                      ;DDCB10 RL (IX+d) > B
  4099.     gbyteBP sB
  4100.     RCL     sB,1
  4101.     LAHF
  4102.     addtoc  sB,sFree
  4103.     instend
  4104.  
  4105. instheader rlic,4
  4106.     POP     BP                      ;DDCB11 RL (IX+d) > C
  4107.     gbyteBP sC
  4108.     RCL     sC,1
  4109.     LAHF
  4110.     addtoc  sC,sFree
  4111.     instend
  4112.  
  4113. instheader rlid,4
  4114.     POP     BP                      ;DDCB12 RL (IX+d) > D
  4115.     gbyteBP sD
  4116.     RCL     sD,1
  4117.     LAHF
  4118.     addtoc  sD,sFree
  4119.     instend
  4120.  
  4121. instheader rlie,4
  4122.     POP     BP                      ;DDCB13 RL (IX+d) > E
  4123.     gbyteBP sE
  4124.     RCL     sE,1
  4125.     LAHF
  4126.     addtoc  sE,sFree
  4127.     instend
  4128.  
  4129. instheader rlih,4
  4130.     POP     BP                      ;DDCB14 RL (IX+d) > H
  4131.     gbyteBP sH
  4132.     RCL     sH,1
  4133.     LAHF
  4134.     addtoc  sH,sFree
  4135.     instend
  4136.  
  4137. instheader rlil,4
  4138.     POP     BP                      ;DDCB15 RL (IX+d) > L
  4139.     gbyteBP sL
  4140.     RCL     sL,1
  4141.     LAHF
  4142.     addtoc  sL,sFree
  4143.     instend
  4144.  
  4145. instheader rlix,4
  4146.     POP     BP                      ;DDCB16 RL (IX+d)
  4147.     PUSH    sBC
  4148.     gbyteBP sC
  4149.     SAHF
  4150.     RCL     sC,1
  4151.     LAHF
  4152.     addtoc  sC,sFree
  4153.     wbyte   sC
  4154.     POP     sBC
  4155.     instend
  4156.  
  4157. instheader rlia,4
  4158.     POP     BP                      ;DDCB17 RL (IX+d) > A
  4159.     gbyteBP AL
  4160.     RCL     AL,1
  4161.     LAHF
  4162.     addtoc  AL,sFree
  4163.     instend
  4164.  
  4165. instheader rrib,4
  4166.     POP     BP                      ;DDCB18 RR (IX+d) > B
  4167.     gbyteBP sB
  4168.     RCR     sB,1
  4169.     LAHF
  4170.     addtoc  sB,sFree
  4171.     instend
  4172.  
  4173. instheader rric,4
  4174.     POP     BP                      ;DDCB19 RR (IX+d) > C
  4175.     gbyteBP sC
  4176.     RCR     sC,1
  4177.     LAHF
  4178.     addtoc  sC,sFree
  4179.     instend
  4180.  
  4181. instheader rrid,4
  4182.     POP     BP                      ;DDCB1A RR (IX+d) > D
  4183.     gbyteBP sD
  4184.     RCR     sD,1
  4185.     LAHF
  4186.     addtoc  sD,sFree
  4187.     instend
  4188.  
  4189. instheader rrie,4
  4190.     POP     BP                      ;DDCB1B RR (IX+d) > E
  4191.     gbyteBP sE
  4192.     RCR     sE,1
  4193.     LAHF
  4194.     addtoc  sE,sFree
  4195.     instend
  4196.  
  4197. instheader rrih,4
  4198.     POP     BP                      ;DDCB1C RR (IX+d) > H
  4199.     gbyteBP sH
  4200.     RCR     sH,1
  4201.     LAHF
  4202.     addtoc  sH,sFree
  4203.     instend
  4204.  
  4205. instheader rril,4
  4206.     POP     BP                      ;DDCB1D RR (IX+d) > L
  4207.     gbyteBP sL
  4208.     RCR     sL,1
  4209.     LAHF
  4210.     addtoc  sL,sFree
  4211.     instend
  4212.  
  4213. instheader rrix,4
  4214.     POP     BP                      ;DDCB1E RR (IX+d)
  4215.     PUSH    sBC
  4216.     gbyteBP sC
  4217.     SAHF
  4218.     RCR     sC,1
  4219.     LAHF
  4220.     addtoc  sC,sFree
  4221.     wbyte   sC
  4222.     POP     sBC
  4223.     instend
  4224.  
  4225. instheader rria,4
  4226.     POP     BP                      ;DDCB1F RR (IX+d) > A
  4227.     gbyteBP AL
  4228.     RCR     AL,1
  4229.     LAHF
  4230.     addtoc  AL,sFree
  4231.     instend
  4232.  
  4233. instheader slaib,4
  4234.     POP     BP                      ;DDCB20 SLA (IX+d) > B
  4235.     gbyteBP sB
  4236.     SAL     sB,1
  4237.     LAHF
  4238.     instend
  4239.  
  4240. instheader slaic,4
  4241.     POP     BP                      ;DDCB21 SLA (IX+d) > C
  4242.     gbyteBP sC
  4243.     SAL     sC,1
  4244.     LAHF
  4245.     instend
  4246.  
  4247. instheader slaid,4
  4248.     POP     BP                      ;DDCB22 SLA (IX+d) > D
  4249.     gbyteBP sD
  4250.     SAL     sD,1
  4251.     LAHF
  4252.     instend
  4253.  
  4254. instheader slaie,4
  4255.     POP     BP                      ;DDCB23 SLA (IX+d) > E
  4256.     gbyteBP sE
  4257.     SAL     sE,1
  4258.     LAHF
  4259.     instend
  4260.  
  4261. instheader slaih,4
  4262.     POP     BP                      ;DDCB24 SLA (IX+d) > H
  4263.     gbyteBP sH
  4264.     SAL     sH,1
  4265.     LAHF
  4266.     instend
  4267.  
  4268. instheader slail,4
  4269.     POP     BP                      ;DDCB25 SLA (IX+d) > L
  4270.     gbyteBP sL
  4271.     SAL     sL,1
  4272.     LAHF
  4273.     instend
  4274.  
  4275. instheader slaix,4
  4276.     POP     BP                      ;DDCB26 SLA (IX+d)
  4277.     PUSH    sBC
  4278.     gbyteBP sC
  4279.     SAL     sC,1
  4280.     LAHF
  4281.     wbyte   sC
  4282.     POP     sBC
  4283.     AND     AH,0EDh        ;*clear N/H
  4284.     instend
  4285.  
  4286. instheader slaia,4
  4287.     POP     BP                      ;DDCB27 SLA (IX+d) > A
  4288.     gbyteBP AL
  4289.     SAL     AL,1
  4290.     LAHF
  4291.     instend
  4292.  
  4293. instheader sraib,4
  4294.     POP     BP                      ;DDCB28 SRA (IX+d) > B
  4295.     gbyteBP sB
  4296.     SAR     sB,1
  4297.     LAHF
  4298.     instend
  4299.  
  4300. instheader sraic,4
  4301.     POP     BP                      ;DDCB29 SRA (IX+d) > C
  4302.     gbyteBP sC
  4303.     SAR     sC,1
  4304.     LAHF
  4305.     instend
  4306.  
  4307. instheader sraid,4
  4308.     POP     BP                      ;DDCB2A SRA (IX+d) > D
  4309.     gbyteBP sD
  4310.     SAR     sD,1
  4311.     LAHF
  4312.     instend
  4313.  
  4314. instheader sraie,4
  4315.     POP     BP                      ;DDCB2B SRA (IX+d) > E
  4316.     gbyteBP sE
  4317.     SAR     sE,1
  4318.     LAHF
  4319.     instend
  4320.  
  4321. instheader sraih,4
  4322.     POP     BP                      ;DDCB2C SRA (IX+d) > H
  4323.     gbyteBP sH
  4324.     SAR     sH,1
  4325.     LAHF
  4326.     instend
  4327.  
  4328. instheader srail,4
  4329.     POP     BP                      ;DDCB2D SRA (IX+d) > L
  4330.     gbyteBP sL
  4331.     SAR     sL,1
  4332.     LAHF
  4333.     instend
  4334.  
  4335. instheader sraix,4
  4336.     POP     BP                      ;DDCB2E SRA (IX+d)
  4337.     PUSH    sBC
  4338.     gbyteBP sC
  4339.     SAR     sC,1
  4340.     LAHF
  4341.     wbyte   sC
  4342.     POP     sBC
  4343.     AND     AH,0EDh        ;*clear N/H
  4344.     instend
  4345.  
  4346. instheader sraia,4
  4347.     POP     BP                      ;DDCB2F SRA (IX+d) > A
  4348.     gbyteBP AL
  4349.     SAR     AL,1
  4350.     LAHF
  4351.     instend
  4352.  
  4353. instheader sllib,4
  4354.     POP     BP                      ;DDCB30 SLL (IX+d) > B
  4355.     gbyteBP sB
  4356.     SHL     sB,1
  4357.     LAHF
  4358.     OR      sB,1
  4359.     instend
  4360.  
  4361. instheader sllic,4
  4362.     POP     BP                      ;DDCB31 SLL (IX+d) > C
  4363.     gbyteBP sC
  4364.     SHL     sC,1
  4365.     LAHF
  4366.     OR      sC,1
  4367.     instend
  4368.  
  4369. instheader sllid,4
  4370.     POP     BP                      ;DDCB32 SLL (IX+d) > D
  4371.     gbyteBP sD
  4372.     SHL     sD,1
  4373.     LAHF
  4374.     OR      sD,1
  4375.     instend
  4376.  
  4377. instheader sllie,4
  4378.     POP     BP                      ;DDCB33 SLL (IX+d) > E
  4379.     gbyteBP sE
  4380.     SHL     sE,1
  4381.     LAHF
  4382.     OR      sE,1
  4383.     instend
  4384.  
  4385. instheader sllih,4
  4386.     POP     BP                      ;DDCB34 SLL (IX+d) > H
  4387.     gbyteBP sH
  4388.     SHL     sH,1
  4389.     LAHF
  4390.     OR      sH,1
  4391.     instend
  4392.  
  4393. instheader sllil,4
  4394.     POP     BP                      ;DDCB35 SLL (IX+d) > L
  4395.     gbyteBP sL
  4396.     SHL     sL,1
  4397.     LAHF
  4398.     OR      sL,1
  4399.     instend
  4400.  
  4401. instheader sllix,4
  4402.     POP     BP                      ;DDCB36 SLL (IX+d) (undocumented)
  4403.     PUSH    sBC
  4404.     gbyteBP sC
  4405.     SHL     sC,1
  4406.     LAHF
  4407.     OR      sC,1
  4408.     wbyte   sC
  4409.     POP     sBC
  4410.     AND     AH,0EDh        ;*clear N/H
  4411.     instend
  4412.  
  4413. instheader sllia,4
  4414.     POP     BP                      ;DDCB37 SLL (IX+d) > A
  4415.     gbyteBP AL
  4416.     SHL     AL,1
  4417.     LAHF
  4418.     OR      AL,1
  4419.     instend
  4420.  
  4421. instheader srlib,4
  4422.     POP     BP                      ;DDCB38 SRL (IX+d) > B
  4423.     gbyteBP sB
  4424.     SHR     sB,1
  4425.     LAHF
  4426.     instend
  4427.  
  4428. instheader srlic,4
  4429.     POP     BP                      ;DDCB39 SRL (IX+d) > C
  4430.     gbyteBP sC
  4431.     SHR     sC,1
  4432.     LAHF
  4433.     instend
  4434.  
  4435. instheader srlid,4
  4436.     POP     BP                      ;DDCB3A SRL (IX+d) > D
  4437.     gbyteBP sD
  4438.     SHR     sD,1
  4439.     LAHF
  4440.     instend
  4441.  
  4442. instheader srlie,4
  4443.     POP     BP                      ;DDCB3B SRL (IX+d) > E
  4444.     gbyteBP sE
  4445.     SHR     sE,1
  4446.     LAHF
  4447.     instend
  4448.  
  4449. instheader srlih,4
  4450.     POP     BP                      ;DDCB3C SRL (IX+d) > H
  4451.     gbyteBP sH
  4452.     SHR     sH,1
  4453.     LAHF
  4454.     instend
  4455.  
  4456. instheader srlil,4
  4457.     POP     BP                      ;DDCB3D SRL (IX+d) > L
  4458.     gbyteBP sL
  4459.     SHR     sL,1
  4460.     LAHF
  4461.     instend
  4462.  
  4463. instheader srlix,4
  4464.     POP     BP                      ;DDCB3E SRL (IX+d)
  4465.     PUSH    sBC
  4466.     gbyteBP sC
  4467.     SHR     sC,1
  4468.     LAHF
  4469.     wbyte   sC
  4470.     POP     sBC
  4471.     AND     AH,0EDh        ;*clear N/H
  4472.     instend
  4473.  
  4474. instheader srlia,4
  4475.     POP     BP                      ;DDCB3F SRL (IX+d) > A
  4476.     gbyteBP AL
  4477.     SHR     AL,1
  4478.     LAHF
  4479.     instend
  4480.  
  4481. instheader bit0ix,4
  4482.     POP     BP                      ;DDCB46 BIT 0,(IX+d)
  4483.     gwordBP BP
  4484.     BT      BP,0
  4485.     dozf
  4486.  
  4487. instheader bit1ix,4
  4488.     POP     BP                      ;DDCB4E BIT 1,(IX+d)
  4489.     gwordBP BP
  4490.     BT      BP,1
  4491.     dozf
  4492.  
  4493. instheader bit2ix,4
  4494.     POP     BP                      ;DDCB56 BIT 2,(IX+d)
  4495.     gwordBP BP
  4496.     BT      BP,2
  4497.     dozf
  4498.  
  4499. instheader bit3ix,4
  4500.     POP     BP                      ;DDCB5E BIT 3,(IX+d)
  4501.     gwordBP BP
  4502.     BT      BP,3
  4503.     dozf
  4504.  
  4505. instheader bit4ix,4
  4506.     POP     BP                      ;DDCB66 BIT 4,(IX+d)
  4507.     gwordBP BP
  4508.     BT      BP,4
  4509.     dozf
  4510.  
  4511. instheader bit5ix,4
  4512.     POP     BP                      ;DDCB6E BIT 5,(IX+d)
  4513.     gwordBP BP
  4514.     BT      BP,5
  4515.     dozf
  4516.  
  4517. instheader bit6ix,4
  4518.     POP     BP                      ;DDCB76 BIT 6,(IX+d)
  4519.     gwordBP BP
  4520.     BT      BP,6
  4521.     dozf
  4522.  
  4523. instheader bit7ix,4
  4524.     POP     BP                      ;DDCB7E BIT 7,(IX+d)
  4525.     gwordBP BP
  4526.     BT      BP,7
  4527.     dozmf
  4528.  
  4529. instheader res0ix,4
  4530.     POP     BP                      ;DDCB86 RES 0,(IX+d)
  4531.     PUSH    sBC
  4532.     gbyteBP sB
  4533.     AND     sB,0FEh
  4534.     wbyte   sB
  4535.     POP     sBC
  4536.     instend
  4537.  
  4538. instheader res1ix,4
  4539.     POP     BP                      ;DDCB8E RES 1,(IX+d)
  4540.     PUSH    sBC
  4541.     gbyteBP sB
  4542.     AND     sB,0FDh
  4543.     wbyte   sB
  4544.     POP     sBC
  4545.     instend
  4546.  
  4547. instheader res2ix,4
  4548.     POP     BP                      ;DDCB96 RES 2,(IX+d)
  4549.     PUSH    sBC
  4550.     gbyteBP sB
  4551.     AND     sB,0FBh
  4552.     wbyte   sB
  4553.     POP     sBC
  4554.     instend
  4555.  
  4556. instheader res3ix,4
  4557.     POP     BP                      ;DDCB9E RES 3,(IX+d)
  4558.     PUSH    sBC
  4559.     gbyteBP sB
  4560.     AND     sB,0F7h
  4561.     wbyte   sB
  4562.     POP     sBC
  4563.     instend
  4564.  
  4565. instheader res4ix,4
  4566.     POP     BP                      ;DDCBA6 RES 4,(IX+d)
  4567.     PUSH    sBC
  4568.     gbyteBP sB
  4569.     AND     sB,0EFh
  4570.     wbyte   sB
  4571.     POP     sBC
  4572.     instend
  4573.  
  4574. instheader res5ix,4
  4575.     POP     BP                      ;DDCBAE RES 5,(IX+d)
  4576.     PUSH    sBC
  4577.     gbyteBP sB
  4578.     AND     sB,0DFh
  4579.     wbyte   sB
  4580.     POP     sBC
  4581.     instend
  4582.  
  4583. instheader res6ix,4
  4584.     POP     BP                      ;DDCBB6 RES 6,(IX+d)
  4585.     PUSH    sBC
  4586.     gbyteBP sB
  4587.     AND     sB,0BFh
  4588.     wbyte   sB
  4589.     POP     sBC
  4590.     instend
  4591.  
  4592. instheader res7ix,4
  4593.     POP     BP                      ;DDCBBE RES 7,(IX+d)
  4594.     PUSH    sBC
  4595.     gbyteBP sB
  4596.     AND     sB,07Fh
  4597.     wbyte   sB
  4598.     POP     sBC
  4599.     instend
  4600.  
  4601. instheader set0ix,4
  4602.     POP     BP                      ;DDCBC6 SET 0,(IX+d)
  4603.     PUSH    sBC
  4604.     gbyteBP sB
  4605.     OR      sB,01h
  4606.     wbyte   sB
  4607.     POP     sBC
  4608.     instend
  4609.  
  4610. instheader set1ix,4
  4611.     POP     BP                      ;DDCBCE SET 1,(IX+d)
  4612.     PUSH    sBC
  4613.     gbyteBP sB
  4614.     OR      sB,02h
  4615.     wbyte   sB
  4616.     POP     sBC
  4617.     instend
  4618.  
  4619. instheader set2ix,4
  4620.     POP     BP                      ;DDCBD6 SET 2,(IX+d)
  4621.     PUSH    sBC
  4622.     gbyteBP sB
  4623.     OR      sB,04h
  4624.     wbyte   sB
  4625.     POP     sBC
  4626.     instend
  4627.  
  4628. instheader set3ix,4
  4629.     POP     BP                      ;DDCBDE SET 3,(IX+d)
  4630.     PUSH    sBC
  4631.     gbyteBP sB
  4632.     OR      sB,08h
  4633.     wbyte   sB
  4634.     POP     sBC
  4635.     instend
  4636.  
  4637. instheader set4ix,4
  4638.     POP     BP                      ;DDCBE6 SET 4,(IX+d)
  4639.     PUSH    sBC
  4640.     gbyteBP sB
  4641.     OR      sB,10h
  4642.     wbyte   sB
  4643.     POP     sBC
  4644.     instend
  4645.  
  4646. instheader set5ix,4
  4647.     POP     BP                      ;DDCBEE SET 5,(IX+d)
  4648.     PUSH    sBC
  4649.     gbyteBP sB
  4650.     OR      sB,20h
  4651.     wbyte   sB
  4652.     POP     sBC
  4653.     instend
  4654.  
  4655. instheader set6ix,4
  4656.     POP     BP                      ;DDCBF6 SET 6,(IX+d)
  4657.     PUSH    sBC
  4658.     gbyteBP sB
  4659.     OR      sB,40h
  4660.     wbyte   sB
  4661.     POP     sBC
  4662.     instend
  4663.  
  4664. instheader set7ix,4
  4665.     POP     BP                      ;DDCBFE SET 7,(IX+d)
  4666.     PUSH    sBC
  4667.     gbyteBP sB
  4668.     OR      sB,80h
  4669.     wbyte   sB
  4670.     POP     sBC
  4671.     instend
  4672.  
  4673. instheader popix,4
  4674.     MOV     BP,[simstack]           ;DDE1 POP IX
  4675.     gwordBP sFree
  4676.     MOV     [ix],sFree
  4677.     ADD     BP,2
  4678.     MOV     [simstack],BP
  4679.     instend
  4680.  
  4681. instheader xtix,4
  4682.     MOV     BP,[simstack]           ;DDE3 EX (SP),IX
  4683.     gwordBP sFree
  4684.     PUSH    sBC
  4685.     MOV     sBC,[ix]
  4686.     MOV     [ix],sFree
  4687.     wword   sBC
  4688.     POP     sBC
  4689.     instend
  4690.  
  4691. instheader pushix,4
  4692.     MOV     BP,[simstack]           ;DDE5 PUSH IX
  4693.     SUB     BP,2
  4694.     MOV     [simstack],BP
  4695.     PUSH    sBC
  4696.     MOV     sBC,[ix]
  4697.     wword   sBC
  4698.     POP     sBC
  4699.     instend
  4700.  
  4701. instheader pcix,4
  4702.     MOV     sPC,[ix]                ;DDE9 JP IX
  4703.     InitPCSeg
  4704.     instend
  4705.  
  4706. instheader spix,4
  4707.     MOV     BP,[ix]                 ;DDF9 LD SP,IX
  4708.     MOV     [simstack],BP
  4709.     instend
  4710.  
  4711. instheader inbc,4
  4712.     PUSH    AX                      ;ED40 IN B,(C)
  4713.     MOV     AH,sB
  4714.     CALL    inp
  4715.     MOV     sB,AL
  4716.     POP     AX
  4717.     OR      sB,sB
  4718.     MOV     BP,AX
  4719.     LAHF            ; flags setzen
  4720.     AND     AH,0FEh
  4721.     AND     BP,100h
  4722.     OR      AX,BP
  4723.     instend
  4724.  
  4725. instheader outcb,4
  4726.     PUSH    AX                      ;ED41 OUT (C),B
  4727.     MOV     AH,sB
  4728.     MOV     AL,sB
  4729.     CALL    outp
  4730.     POP     AX
  4731.     instend
  4732.  
  4733. instheader dsbbb,4
  4734.     SAHF                            ;ED42 SBC HL,BC
  4735.     SBB     nSHL,sBC
  4736.     flagsetN1
  4737.  
  4738. instheader sbcd,4
  4739.     gwpc    BP                      ;ED43 LD (addr),BC
  4740.     wword   sBC
  4741.     instend
  4742.  
  4743. instheader nega,4
  4744.     NEG     AL                      ;ED44 NEG
  4745.     flagsetN1
  4746.  
  4747. instheader zretn,4
  4748.     ret80                           ;ED45 RETN (treated as RET)
  4749.  
  4750. instheader im0,4
  4751.     MOV     [imode],0               ;ED46 IM0
  4752.     instend
  4753.  
  4754. instheader moveia,4
  4755.     MOV     [BYTE PTR srI],AL       ;ED47 LD I,A
  4756.     instend
  4757.  
  4758. instheader incc,4
  4759.     PUSH    AX                      ;ED48 IN C,(C)
  4760.     MOV     AH,sB
  4761.     CALL    inp
  4762.     MOV     sC,AL
  4763.     POP     AX
  4764.     OR      sC,sC
  4765.     MOV     BP,AX
  4766.     LAHF            ; flags setzen
  4767.     AND     AH,0FEh
  4768.     AND     BP,100h
  4769.     OR      AX,BP
  4770.     instend
  4771.  
  4772. instheader outcc,4
  4773.     PUSH    AX                      ;ED49 OUT (C),C
  4774.     MOV     AX,sBC
  4775.     CALL    outp
  4776.     POP     AX
  4777.     instend
  4778.  
  4779. instheader dadcb,4
  4780.     SAHF                            ;ED4A ADC HL,BC
  4781.     ADC     nSHL,sBC
  4782.     flagsetN0
  4783.  
  4784. instheader lbcd,4
  4785.     gwpc    BP                      ;ED4B LD BC,(addr)
  4786.     gwordBP sBC
  4787.     instend
  4788.  
  4789. instheader reti,4
  4790.     ret80                           ;ED4D RETI (treated as RET)
  4791.  
  4792. instheader movera,4
  4793.     MOV     [BYTE PTR sRF],AL       ;ED4F LD R,A
  4794.     MOV     [BYTE PTR sRFhi],AL
  4795.     instend
  4796.  
  4797. instheader indc,4
  4798.     PUSH    AX                      ;ED50 IN D,(C)
  4799.     MOV     AH,sB
  4800.     CALL    inp
  4801.     MOV     sD,AL
  4802.     POP     AX
  4803.     OR      sD,sD
  4804.     MOV     BP,AX
  4805.     LAHF            ; flags setzen
  4806.     AND     AH,0FEh
  4807.     AND     BP,100h
  4808.     OR      AX,BP
  4809.     instend
  4810.  
  4811. instheader outcd,4
  4812.     PUSH    AX                      ;ED51 OUT (C),D
  4813.     MOV     AL,sD
  4814.     MOV     AH,sB
  4815.     CALL    outp
  4816.     POP     AX
  4817.     instend
  4818.  
  4819. instheader dsbbd,4
  4820.     SAHF                            ;ED52 SBC HL,DE
  4821.     SBB     nSHL,sDE
  4822.     flagsetN1
  4823.  
  4824. instheader sded,4
  4825.     gwpc    BP                      ;ED53 LD (addr),DE
  4826.     wword   sDE
  4827.     instend
  4828.  
  4829. instheader im1,4
  4830.     MOV     [imode],1               ;ED56 IM1
  4831.     instend
  4832.  
  4833. instheader moveai,4
  4834.     MOV     AL,[sIFF2]              ;ED57 LD A,I
  4835.     SHL     AL,2
  4836.     AND     AH,1
  4837.     OR      AH,AL
  4838.     MOV     AL,[BYTE PTR srI]
  4839.     PUSH    AX
  4840.     OR      AL,AL
  4841.     LAHF
  4842.     POP     BP
  4843.     AND     AX,0C000h
  4844.     OR      AX,BP
  4845.     instend
  4846.  
  4847. instheader inec,4
  4848.     PUSH    AX                      ;ED58 IN E,(C)
  4849.     MOV     AH,sB
  4850.     CALL    inp
  4851.     MOV     sE,AL
  4852.     POP     AX
  4853.     OR      sE,sE
  4854.     MOV     BP,AX
  4855.     LAHF            ; flags setzen
  4856.     AND     AH,0FEh
  4857.     AND     BP,100h
  4858.     OR      AX,BP
  4859.     instend
  4860.  
  4861. instheader outce,4
  4862.     PUSH    AX                      ;ED59 OUT (C),E
  4863.     MOV     AL,sE
  4864.     MOV     AH,sB
  4865.     CALL    outp
  4866.     POP     AX
  4867.     instend
  4868.  
  4869. instheader dadcd,4
  4870.     SAHF                            ;ED5A ADC HL,DE
  4871.     ADC     nSHL,sDE
  4872.     flagsetN0
  4873.  
  4874. instheader lded,4
  4875.     gwpc    BP                      ;ED5B LD DE,(addr)
  4876.     gwordBP sDE
  4877.     instend
  4878.  
  4879. instheader im2,4
  4880.     MOV     [imode],2               ;ED5E IM2
  4881.     instend
  4882.  
  4883. instheader movear,4
  4884.     AND     [sRF],7fh               ;ED5F LD A,R
  4885.     AND     [sRFhi],80h
  4886.     MOV     AL,[sIFF2]
  4887.     SHL     AL,2
  4888.     AND     AH,1
  4889.     OR      AH,AL
  4890.     MOV     AL,[BYTE PTR sRF]
  4891.     OR      AL,[BYTE PTR sRFhi]
  4892.     PUSH    AX
  4893.     OR      AL,AL
  4894.     LAHF
  4895.     POP     BP
  4896.     AND     AX,0C000h
  4897.     OR      AX,BP
  4898.     instend
  4899.  
  4900. instheader inhc,4
  4901.     PUSH    AX                      ;ED60 IN H,(C)
  4902.     MOV     AH,sB
  4903.     CALL    inp
  4904.     MOV     sH,AL
  4905.     POP     AX
  4906.     OR      sH,sH
  4907.     MOV     BP,AX
  4908.     LAHF            ; flags setzen
  4909.     AND     AH,0FEh
  4910.     AND     BP,100h
  4911.     OR      AX,BP
  4912.     instend
  4913.  
  4914. instheader outch,4
  4915.     PUSH    AX                      ;ED61 OUT (C),H
  4916.     MOV     AL,sH
  4917.     MOV     AH,sB
  4918.     CALL    outp
  4919.     POP     AX
  4920.     instend
  4921.  
  4922. instheader dsbbh,4
  4923.     SAHF                            ;ED62 SBC HL,HL
  4924.     SBB     nSHL,nSHL
  4925.     flagsetN1
  4926. ;                                       ;ED63 LD (addr),HL
  4927.  
  4928. instheader rrd,4
  4929.     PUSH    sBC                     ;ED67 RRD *flags! *?*
  4930.     gbhl    sC
  4931.     PUSH    sDE
  4932.     PUSH    sBC
  4933.     MOV     sE,AL
  4934.     AND     sE,0Fh
  4935.     AND     sC,0F0h
  4936.     OR      sC,sE
  4937.     ROL     sC,4
  4938.     wbhl    sC
  4939.     POP     sBC
  4940.     POP     sDE
  4941.     AND     AL,0F0h
  4942.     AND     sC,0Fh
  4943.     OR      AL,sC
  4944.     POP     sBC
  4945.     MOV     BP,AX           ; set flags
  4946.     OR      AL,AL
  4947.     LAHF
  4948.     AND     AH,0C4h
  4949.     AND     BP,100h
  4950.     OR      AX,BP
  4951.     instend
  4952.  
  4953. instheader inlc,4
  4954.     PUSH    AX                      ;ED68 IN L,(C)
  4955.     MOV     AH,sB
  4956.     CALL    inp
  4957.     MOV     sL,AL
  4958.     POP     AX
  4959.     OR      sL,sL
  4960.     MOV     BP,AX
  4961.     LAHF            ; flags setzen
  4962.     AND     AH,0FEh
  4963.     AND     BP,100h
  4964.     OR      AX,BP
  4965.     instend
  4966.  
  4967. instheader outcl,4
  4968.     PUSH    AX                      ;ED69 OUT (C),L
  4969.     MOV     AH,sB
  4970.     MOV     AL,sL
  4971.     CALL    outp
  4972.     POP     AX
  4973.     instend
  4974.  
  4975. instheader dadch,4
  4976.     SAHF                            ;ED6A ADC HL,HL
  4977.     ADC     nSHL,nSHL
  4978.     flagsetN0
  4979.  
  4980. ;                                       ;ED6B LD HL,(addr)
  4981.  
  4982. instheader rld,4
  4983.     PUSH    sBC                     ;ED6F RLD *flags! *?*
  4984.     gbhl    sC
  4985.     PUSH    sDE
  4986.     PUSH    sBC
  4987.     SHL     sC,4
  4988.     MOV     sE,AL
  4989.     AND     sE,0fh
  4990.     OR      sC,sE
  4991.     wbhl    sC
  4992.     POP     sBC
  4993.     POP     sDE
  4994.     SHR     sC,4
  4995.     AND     AL,0f0h
  4996.     OR      AL,sC
  4997.     POP     sBC
  4998.     MOV     BP,AX           ; set flags
  4999.     OR      AL,AL
  5000.     LAHF
  5001.     AND     AH,0C4h
  5002.     AND     BP,100h
  5003.     OR      AX,BP
  5004.     instend
  5005.  
  5006. instheader inmc,4
  5007.     PUSH    AX                      ;ED70 IN (HL),(C)
  5008.     MOV     AH,sB
  5009.     CALL    inp
  5010. ;       wbhl    AL
  5011.     OR      AL,AL
  5012.     MOV     BP,AX
  5013.     LAHF            ; flags setzen
  5014.     AND     AH,0FEh
  5015.     AND     BP,100h
  5016.     OR      AX,BP
  5017.     POP     BP
  5018.     AND     BP,0FFh
  5019.     XOR     AL,AL
  5020.     OR      AX,BP
  5021.     instend
  5022.  
  5023. instheader outcm,4
  5024.     PUSH    AX                      ;ED71 OUT (C),(HL)
  5025.     gbhl    AL
  5026.     MOV     AH,sB
  5027.     CALL    outp
  5028.     POP     AX
  5029.     instend
  5030.  
  5031. instheader dsbbs,4
  5032.     SAHF                            ;ED72 SBC HL,SP
  5033.     SBB     nSHL,[simstack]
  5034.     flagsetN1
  5035.  
  5036. instheader sspd,4
  5037.     PUSH    sDE                     ;ED73 LD (addr),SP
  5038.     MOV     sDE,[simstack]
  5039.     gwpc    BP
  5040.     wword   sDE
  5041.     POP     sDE
  5042.     instend
  5043.  
  5044. instheader inac,4
  5045.     PUSH    AX                      ;ED78 IN A,(C)
  5046.     MOV     AH,sB
  5047.     CALL    inp
  5048.     MOV     BP,AX
  5049.     AND     BP,0ffh
  5050.     POP     AX
  5051.     XOR     AL,AL
  5052.     OR      AX,BP
  5053.     OR      AL,AL
  5054.     LAHF            ; flags setzen
  5055.     AND     AH,0FEh
  5056.     AND     BP,100h
  5057.     OR      AX,BP
  5058.     instend
  5059.  
  5060. instheader outca,4
  5061.     PUSH    AX                      ;ED79 OUT (C),A
  5062.     MOV     AH,sB
  5063.     CALL    outp
  5064.     POP     AX
  5065.     instend
  5066.  
  5067. instheader dadcs,4
  5068.     SAHF                            ;ED7A ADC HL,SP
  5069.     ADC     nSHL,[simstack]
  5070.     flagsetN0
  5071.  
  5072. instheader lspd,4
  5073.     gwpc    BP                      ;ED7B LD SP,(addr)
  5074.     gwordBP BP
  5075.     MOV     [simstack],BP
  5076.     instend
  5077.  
  5078. instheader ldi,4
  5079.     PUSH    AX                      ;EDA0 LDI
  5080.     gbhl    AL
  5081.     wbytead EsDE,AL
  5082.     POP     AX
  5083.     INC     sDE
  5084.     INC     nSHL
  5085.     DEC     sBC
  5086.     JE      SHORT ldi1
  5087.     OR      AH,4
  5088.     AND     AH,0EDh
  5089.     instend
  5090. ldi1:   AND     AH,0E9h
  5091.     instend
  5092.  
  5093. instheader cmpi,4
  5094.     MOV     BP,AX
  5095.     AND     BP,100h
  5096.     PUSH    BP
  5097.     PUSH    sBC                     ;EDA1 CPI
  5098.     gbhl    sC
  5099.     CMP     AL,sC
  5100.     LAHF
  5101.     POP     sBC
  5102.     AND     AH,0f8h
  5103.     POP     BP
  5104.     OR      AX,BP
  5105.     INC     nSHL
  5106.     DEC     sBC
  5107.     JE      SHORT cmpi1
  5108.     OR      AH,6
  5109.     instend
  5110. cmpi1:  OR      AH,2
  5111.     instend
  5112.  
  5113. instheader ini,4
  5114.     PUSH    AX                      ;EDA2 INI
  5115.     MOV     AH,sB
  5116.     CALL    inp
  5117.     wbhl    AL
  5118.     OR      AL,AL
  5119.     MOV     BP,AX
  5120.     LAHF
  5121.     AND     AH,0FEh
  5122.     AND     BP,100h
  5123.     OR      AX,BP
  5124.     POP     BP
  5125.     AND     BP,0FFh
  5126.     XOR     AL,AL
  5127.     OR      AX,BP
  5128.     DEC     sB
  5129.     INC     nsHL
  5130.     instend
  5131.  
  5132. instheader outi,4
  5133.     DEC     sB
  5134.     PUSH    AX                      ;EDA3 OUTI
  5135.     gbhl    AL
  5136.     MOV     AH,sB
  5137.     CALL    outp
  5138.     POP     AX
  5139.     INC     nsHL
  5140.     instend
  5141.  
  5142. instheader ldd,4
  5143.     PUSH    AX                      ;EDA8 LDD
  5144.     gbhl    AL
  5145.     MOV     BP,sDE
  5146.     wbyte   AL
  5147.     POP     AX
  5148.     DEC     nSHL
  5149.     DEC     sDE
  5150.     DEC     sBC
  5151.     JE      SHORT ldd1
  5152.     OR      AH,4
  5153.     AND     AH,0EDh
  5154.     instend
  5155. ldd1:   AND     AH,0E9h
  5156.     instend
  5157.  
  5158. instheader cpd,4
  5159.     MOV     BP,AX                   ;EDA9 CPD
  5160.     AND     BP,100h
  5161.     PUSH    BP
  5162.     PUSH    sBC
  5163.     gbhl    sC
  5164.     CMP     AL,sC
  5165.     LAHF
  5166.     POP     sBC
  5167.     AND     AH,0f8h
  5168.     POP     BP
  5169.     OR      AX,BP
  5170.     DEC     nSHL
  5171.     DEC     sBC
  5172.     JE      SHORT cpd1
  5173.     OR      AH,6
  5174.     instend
  5175. cpd1:   OR      AH,2
  5176.     instend
  5177.  
  5178. instheader ind,4
  5179.     PUSH    AX                      ;EDAA IND
  5180.     MOV     AH,sB
  5181.     CALL    inp
  5182.     wbhl    AL
  5183.     OR      AL,AL
  5184.     MOV     BP,AX
  5185.     LAHF
  5186.     AND     AH,0FEh
  5187.     AND     BP,100h
  5188.     OR      AX,BP
  5189.     POP     BP
  5190.     AND     BP,0FFh
  5191.     XOR     AL,AL
  5192.     OR      AX,BP
  5193.     DEC     sB
  5194.     DEC     nsHL
  5195.     instend
  5196.  
  5197. instheader outd,4
  5198.     DEC     sB
  5199.     PUSH    AX                      ;EDAB OUTD
  5200.     gbhl    AL
  5201.     MOV     AH,sB
  5202.     CALL    outp
  5203.     POP     AX
  5204.     DEC     nsHL
  5205.     instend
  5206.  
  5207. instheader ldir,4
  5208.     PUSH    AX                      ;EDB0 LDIR
  5209. ldir_loop:
  5210.     gbhl    AL
  5211.     wbytead EsDE,AL
  5212.     INC     nsHL
  5213.     INC     sDE
  5214.     DEC     sBC
  5215.     JZ      ldirend
  5216.     TEST    [intflag],0ffffh
  5217.     JNZ     ldir_spock
  5218.     gprevbpc
  5219.     CMP     sFree,0B0h
  5220.     JNE     ldir_whatsthisthen
  5221.     SUB     [clocks],6
  5222.     JS      ldir_underflow
  5223.     JMP     ldir_loop
  5224. ldir_underflow:
  5225.     DEC     sPC
  5226.     POP     AX
  5227.     MOV     sFree,0EDh
  5228.     JMP     sz80_underflow
  5229. ldir_whatsthisthen:
  5230.     DEC     sPC
  5231.     POP     AX
  5232.     JMP     preED
  5233. ldir_spock:
  5234.     POP     AX
  5235.     SUB     sPC,2
  5236.     JMP     SpecialOccasion
  5237. ldirend:
  5238.     INC     [clocks]
  5239.     POP     AX
  5240.     AND     AH,0C1h
  5241.     instend
  5242.  
  5243. instheader cpir,4
  5244.     JMP      okcpir
  5245.     PUSH    sDE
  5246.     gbhl    sE
  5247.     INC     nsHL
  5248.     DEC     sBC
  5249.     CMP     AL,sE
  5250.     JE      cpir_ok
  5251.     CMP     sBC,0
  5252.     JNE     cpir_notok
  5253.     POP     sDE
  5254.     AND     AH,1
  5255.     OR      AH,2
  5256.     instend
  5257. cpir_notok:
  5258.     POP     sDE
  5259.     SUB     sPC,2
  5260.     instend
  5261. cpir_ok:
  5262.     POP     sDE
  5263.     AND     AH,1
  5264.     OR      AH,42h
  5265.     CMP     sBC,0
  5266.     JE      sz80_instend
  5267.     OR      AH,4
  5268.     instend
  5269. okcpir:
  5270.     PUSH    sDE                      ;EDB1 CPIR *flags! *?*
  5271. cpirloop:
  5272.     gbhl    sE
  5273.     INC     nSHL
  5274.     DEC     sBC
  5275.     CMP     AL,sE
  5276.     JE      SHORT cpirfound
  5277.     CMP     sBC,0
  5278.     JNE     cpirloop
  5279.     POP     sDE
  5280.     AND     AH,1
  5281.     OR      AH,2
  5282.     instend
  5283. cpirfound:
  5284.     POP     sDE
  5285.     AND     AH,1
  5286.     OR      AH,42h
  5287.     CMP     sBC,0
  5288.     JE      sz80_instend
  5289.     OR      AH,4
  5290.     instend
  5291.  
  5292. instheader inir,4
  5293.     instend                         ;EDB2 INIR
  5294.  
  5295. instheader otir,4
  5296.     instend                         ;EDB3 OTIR
  5297.  
  5298. instheader lddr,4
  5299.     PUSH    AX                      ;EDB8 LDDR
  5300.     gbhl    AL
  5301.     wbytead EsDE,AL
  5302.     DEC     nsHL
  5303.     DEC     sDE
  5304.     DEC     sBC
  5305.     JZ      lddrend
  5306.     SUB     sPC,2
  5307.     POP     AX
  5308.     instend
  5309. lddrend:
  5310.     INC     [clocks]
  5311.     POP     AX
  5312.     AND     AH,0c1h
  5313.     instend
  5314.  
  5315. instheader cpdr,4
  5316.     PUSH    sDE
  5317.     gbhl    sE
  5318.     DEC     nsHL
  5319.     DEC     sBC
  5320.     CMP     AL,sE
  5321.     JE      cpdr_ok
  5322.     CMP     sBC,0
  5323.     JNE     cpdr_notok
  5324.     POP     sDE
  5325.     AND     AH,1
  5326.     OR      AH,2
  5327.     instend
  5328. cpdr_notok:
  5329.     POP     sDE
  5330.     SUB     sPC,2
  5331.     instend
  5332. cpdr_ok:
  5333.     POP     sDE
  5334.     AND     AH,1
  5335.     OR      AH,42h
  5336.     CMP     sBC,0
  5337.     JE      sz80_instend
  5338.     OR      AH,4
  5339.     instend
  5340.  
  5341.     PUSH    sDE                      ;EDB9 CPDR
  5342. cpdrloop:
  5343.     gbhl    sE
  5344.     DEC     nSHL
  5345.     DEC     sBC
  5346.     CMP     AL,sE
  5347.     JE      SHORT cpdrfound
  5348.     CMP     sBC,0
  5349.     JNE     cpdrloop
  5350.     POP     sDE
  5351.     AND     AH,1
  5352.     OR      AH,2
  5353.     instend
  5354. cpdrfound:
  5355.     POP     sDE
  5356.     AND     AH,1
  5357.     OR      AH,42h
  5358.     CMP     sBC,0
  5359.     JE      sz80_instend
  5360.     OR      AH,4
  5361.     instend
  5362.  
  5363. instheader indr,4
  5364.     instend                         ;EDBA INDR
  5365.  
  5366. instheader otdr,4
  5367.     instend                         ;EDBB OTDR
  5368.  
  5369. instheader spced,4
  5370.     instend
  5371.  
  5372. instheader dadiyb,4
  5373.     ADD     [iy],sBC                ;FD09 ADD IY,BC
  5374.     docyf
  5375.  
  5376. instheader dadiyd,4
  5377.     ADD     [iy],sDE                ;FD19 ADD IY,DE
  5378.     docyf
  5379.  
  5380. instheader lxiiy,4
  5381.     gwpc    BP                      ;FD21 LD IY,nnnn
  5382.     MOV     [iy],BP
  5383.     instend
  5384.  
  5385. instheader siyd,4
  5386.     PUSH    sDE                     ;FD22 LD (addr),IY
  5387.     gwpc    BP
  5388.     MOV     sDE,[iy]
  5389.     wword   sDE
  5390.     POP     sDE
  5391.     instend
  5392.  
  5393. instheader inxiy,4
  5394.     INC     [iy]                    ;FD23 INC IY
  5395.     instend
  5396.  
  5397. instheader inryh,4
  5398.     z80inc  [yh]                    ;FD24 INC YH (undocumented)
  5399.  
  5400. instheader dcryh,4
  5401.     z80dec  [yh]                    ;FD25 DEC YH (undocumented)
  5402.  
  5403. instheader mviyh,4
  5404.     PUSH    AX                      ;FD26 LD YH,nn (undocumented)
  5405.     gbytePC AL
  5406.     MOV     [yh],AL
  5407.     POP     AX
  5408.     instend
  5409.  
  5410. instheader dadiyy,4
  5411.     MOV     BP,[iy]                 ;FD29 ADD IY,IY
  5412.     ADD     [iy],BP
  5413.     docyf
  5414.  
  5415. instheader liyd,4
  5416.     gwpc    BP                      ;FD2A LD IY,(addr)
  5417.     gwordBP BP
  5418.     MOV     [iy],BP
  5419.     instend
  5420.  
  5421. instheader dcxiy,4
  5422.     DEC     [iy]                    ;FD2B DEC IY
  5423.     instend
  5424.  
  5425. instheader inryl,4
  5426.     z80inc  [yl]                    ;FD2C INC YL (undocumented)
  5427.  
  5428. instheader dcryl,4
  5429.     z80dec  [yl]                    ;FD2D DEC YL (undocumented)
  5430.  
  5431. instheader mviyl,4
  5432.     PUSH    AX                      ;FD2E LD YL,nn (undocumented)
  5433.     gbytePC AL
  5434.     MOV     [yl],AL
  5435.     POP     AX
  5436.     instend
  5437.  
  5438. instheader inriy,4
  5439.     calcind iy                      ;FD34 INC (IY+d)
  5440.     PUSH    sBC
  5441.     gbytefr sC
  5442.     z80inco sC
  5443.     wbytefr sC
  5444.     POP     sBC
  5445.     instend
  5446.  
  5447. instheader dcriy,4
  5448.     calcind iy                      ;FD35 DEC (IY+d)
  5449.     PUSH    sBC
  5450.     gbytefr sC
  5451.     z80deco sC
  5452.     wbytefr sC
  5453.     POP     sBC
  5454.     instend
  5455.  
  5456. instheader mviiy,4
  5457.     calcind iy                      ;FD36 LD (IY+d),nn
  5458.     PUSH    AX
  5459.     gbytePC AL
  5460.     wbytefr AL
  5461.     POP     AX
  5462.     instend
  5463.  
  5464. instheader dadiys,4
  5465.     MOV     BP,[simstack]           ;FD39 ADD IY,SP
  5466.     ADD     [iy],BP
  5467.     docyf
  5468.  
  5469. instheader movbyh,4
  5470.     MOV     sB,[yh]                 ;FD44 LD B,YH (undocumented)
  5471.     instend
  5472.  
  5473. instheader movbyl,4
  5474.     MOV     sB,[yl]                 ;FD45 LD B,YL (undocumented)
  5475.     instend
  5476.  
  5477. instheader movbiy,4
  5478.     calcind iy                      ;FD46 LD B,(IY+d)
  5479.     gbytefr sB
  5480.     instend
  5481.  
  5482. instheader movcyh,4
  5483.     MOV     sC,[yh]                 ;FD4C LD C,YH (undocumented)
  5484.     instend
  5485.  
  5486. instheader movcyl,4
  5487.     MOV     sC,[yl]                 ;FD4D LD C,YL (undocumented)
  5488.     instend
  5489.  
  5490. instheader movciy,4
  5491.     calcind iy                      ;FD4E LD C,(IY+d)
  5492.     gbytefr sC
  5493.     instend
  5494.  
  5495. instheader movdyh,4
  5496.     MOV     sD,[yh]                 ;FD54 LD D,YH (undocumented)
  5497.     instend
  5498.  
  5499. instheader movdyl,4
  5500.     MOV     sD,[yl]                 ;FD55 LD D,YL (undocumented)
  5501.     instend
  5502.  
  5503. instheader movdiy,4
  5504.     calcind iy                      ;FD56 LD D,(IY+d)
  5505.     gbytefr sD
  5506.     instend
  5507.  
  5508. instheader moveyh,4
  5509.     MOV     sE,[yh]                 ;FD5C LD E,YH (undocumented)
  5510.     instend
  5511.  
  5512. instheader moveyl,4
  5513.     MOV     sE,[yl]                 ;FD5D LD E,YL (undocumented)
  5514.     instend
  5515.  
  5516. instheader moveiy,4
  5517.     calcind iy                      ;FD5E LD E,(IY+d)
  5518.     gbytefr sE
  5519.     instend
  5520.  
  5521. instheader movyhb,4
  5522.     MOV     [yh],sB                 ;FD60 LD YH,B (undocumented)
  5523.     instend
  5524.  
  5525. instheader movyhc,4
  5526.     MOV     [yh],sC                 ;FD61 LD YH,C (undocumented)
  5527.     instend
  5528.  
  5529. instheader movyhd,4
  5530.     MOV     [yh],sD                 ;FD62 LD YH,D (undocumented)
  5531.     instend
  5532.  
  5533. instheader movyhe,4
  5534.     MOV     [yh],sE                 ;FD63 LD YH,E (undocumented)
  5535.     instend
  5536.  
  5537. instheader mvyhyh,4
  5538.     instend                         ;FD64 LD YH,YH (undocumented)
  5539.  
  5540. instheader mvyhyl,4
  5541.     PUSH    AX                      ;FD65 LD YH,YL (undocumented)
  5542.     MOV     AL,[yl]
  5543.     MOV     [yh],AL
  5544.     POP     AX
  5545.     instend
  5546.  
  5547. instheader movhiy,4
  5548.     calcind iy                      ;FD66 LD H,(IY+d)
  5549.     gbytefr sH
  5550.     instend
  5551.  
  5552. instheader movyha,4
  5553.     MOV     [yh],AL                 ;FD67 LD YH,A
  5554.     instend
  5555.  
  5556. instheader movylb,4
  5557.     MOV     [yl],sB                 ;FD68 LD YL,B (undocumented)
  5558.     instend
  5559.  
  5560. instheader movylc,4
  5561.     MOV     [yl],sC                 ;FD69 LD YL,C (undocumented)
  5562.     instend
  5563.  
  5564. instheader movyld,4
  5565.     MOV     [yl],sD                 ;FD6A LD YL,D (undocumented)
  5566.     instend
  5567.  
  5568. instheader movyle,4
  5569.     MOV     [yl],sE                 ;FD6B LD YL,E (undocumented)
  5570.     instend
  5571.  
  5572. instheader mvylyh,4
  5573.     PUSH    AX                      ;FD6C LD YL,YH (undocumented)
  5574.     MOV     AL,[yh]
  5575.     MOV     [yl],AL
  5576.     POP     AX
  5577.     instend
  5578.  
  5579. instheader mvylyl,4
  5580.     instend                         ;FD6D LD YL,YL (undocumented)
  5581.  
  5582. instheader movliy,4
  5583.     calcind iy                      ;FD6E LD L,(IY+d)
  5584.     gbytefr sL
  5585.     instend
  5586.  
  5587. instheader movyla,4
  5588.     MOV     [yl],AL                 ;FD6F LD YL,A
  5589.     instend
  5590.  
  5591. instheader moviyb,4
  5592.     calcind iy                      ;FD70 LD (IY+d),B
  5593.     wbytefr sB
  5594.     instend
  5595.  
  5596. instheader moviyc,4
  5597.     calcind iy                      ;FD71 LD (IY+d),C
  5598.     wbytefr sC
  5599.     instend
  5600.  
  5601. instheader moviyd,4
  5602.     calcind iy                      ;FD72 LD (IY+d),D
  5603.     wbytefr sD
  5604.     instend
  5605.  
  5606. instheader moviye,4
  5607.     calcind iy                      ;FD73 LD (IY+d),E
  5608.     wbytefr sE
  5609.     instend
  5610.  
  5611. instheader moviyh,4
  5612.     calcind iy                      ;FD74 LD (IY+d),H
  5613.     wbytefr sH
  5614.     instend
  5615.  
  5616. instheader moviyl,4
  5617.     calcind iy                      ;FD75 LD (IY+d),L
  5618.     wbytefr sL
  5619.     instend
  5620.  
  5621. instheader moviya,4
  5622.     calcind iy                      ;FD77 LD (IY+d),A
  5623.     wbytefr AL
  5624.     instend
  5625.  
  5626. instheader movayh,4
  5627.     MOV     AL,[yh]                 ;FD7C LD A,YH (undocumented)
  5628.     instend
  5629.  
  5630. instheader movayl,4
  5631.     MOV     AL,[yl]                 ;FD7D LD A,YL (undocumented)
  5632.     instend
  5633.  
  5634. instheader movaiy,4
  5635.     calcind iy                      ;FD7E LD A,(IY+d)
  5636.     gbytefr AL
  5637.     instend
  5638.  
  5639. instheader addyh,4
  5640.     ADD     AL,[yh]                 ;FD84 ADD A,YH (undocumented)
  5641.     flagsetN0
  5642.  
  5643. instheader addyl,4
  5644.     ADD     AL,[yl]                 ;FD85 ADD A,YL (undocumented)
  5645.     flagsetN0
  5646.  
  5647. instheader addiy,4
  5648.     calcind iy                      ;FD86 ADD A,(IY+d)
  5649.     gbytefr AH
  5650.     ADD     AL,AH
  5651.     flagsetN0
  5652.  
  5653. instheader adcyh,4
  5654.     SAHF                            ;FD8C ADC A,YH (undocumented)
  5655.     ADC     AL,[yh]
  5656.     flagsetN0
  5657.  
  5658. instheader adcyl,4
  5659.     SAHF                            ;FD8E ADC A,YL (undocumented)
  5660.     ADC     AL,[yl]
  5661.     flagsetN0
  5662.  
  5663. instheader adciy,4
  5664.     calcind iy                      ;FD8E ADC A,(IY+d)
  5665.     PUSH    sBC
  5666.     gbytefr sC
  5667.     SAHF
  5668.     ADC     AL,sC
  5669.     POP     sBC
  5670.     flagsetN0
  5671.  
  5672. instheader subyh,4
  5673.     SUB     AL,[yh]                 ;FD94 SUB A,YH (undocumented)
  5674.     flagsetN1
  5675.  
  5676. instheader subyl,4
  5677.     SUB     AL,[yl]                 ;FD95 SUB A,YL (undocumented)
  5678.     flagsetN1
  5679.  
  5680. instheader subiy,4
  5681.     calcind iy                      ;FD96 SUB A,(IY+d)
  5682.     gbytefr AH
  5683.     SUB     AL,AH
  5684.     flagsetN1
  5685.  
  5686. instheader sbbyh,4
  5687.     SAHF                            ;FD9C SBC A,YH (undocumented)
  5688.     SBB     AL,[yh]
  5689.     flagsetN1
  5690.  
  5691. instheader sbbyl,4
  5692.     SAHF                            ;FD9D SBC A,YL (undocumented)
  5693.     SBB     AL,[yl]
  5694.     flagsetN1
  5695.  
  5696. instheader sbbiy,4
  5697.     calcind iy                      ;FD9E SBC A,(IY+d)
  5698.     PUSH    sBC
  5699.     gbytefr sC
  5700.     SAHF
  5701.     SBB     AL,sC
  5702.     POP     sBC
  5703.     flagsetN1
  5704.  
  5705. instheader anayh,4
  5706.     AND     AL,[yh]                 ;FDA4 AND A,YH (undocumented)
  5707.     LAHF
  5708.     instend
  5709.  
  5710. instheader anayl,4
  5711.     AND     AL,[yl]                 ;FDA5 AND A,YL (undocumented)
  5712.     LAHF
  5713.     instend
  5714.  
  5715. instheader anaiy,4
  5716.     calcind iy                      ;FDA6 AND A,(IY+d)
  5717.     gbytefr AH
  5718.     AND     AL,AH
  5719.     LAHF
  5720.     instend
  5721.  
  5722. instheader xrayh,4
  5723.     XOR     AL,[yh]                 ;FDAC XOR A,YH (undocumented)
  5724.     LAHF
  5725.     instend
  5726.  
  5727. instheader xrayl,4
  5728.     XOR     AL,[yl]                 ;FDAD XOR A,YL (undocumented)
  5729.     LAHF
  5730.     instend
  5731.  
  5732. instheader xraiy,4
  5733.     calcind iy                      ;FDAE XOR A,(IY+d)
  5734.     gbytefr AH
  5735.     XOR     AL,AH
  5736.     LAHF
  5737.     instend
  5738.  
  5739. instheader orayh,4
  5740.     OR      AL,[yh]                 ;FDB4 OR A,YH (undocumented)
  5741.     LAHF
  5742.     instend
  5743.  
  5744. instheader orayl,4
  5745.     OR      AL,[yl]                 ;FDB5 OR A,YL (undocumented)
  5746.     LAHF
  5747.     instend
  5748.  
  5749. instheader oraiy,4
  5750.     calcind iy                      ;FDB6 OR A,(IY+d)
  5751.     gbytefr AH
  5752.     OR      AL,AH
  5753.     LAHF
  5754.     instend
  5755.  
  5756. instheader cmpyh,4
  5757.     CMP     AL,[yh]                 ;FDBC CP YH (undocumented)
  5758.     flagsetN1
  5759.  
  5760. instheader cmpyl,4
  5761.     CMP     AL,[yl]                 ;FDBD CP YL (undocumented)
  5762.     flagsetN1
  5763.  
  5764. instheader cmpiy,4
  5765.     calcind iy                      ;FDBE CP (IY+d)
  5766.     gbytefr AH
  5767.     CMP     AL,AH
  5768.     flagsetN1
  5769.  
  5770. ;* FDCB-prefix instructions can use the DDCB-prefix routines
  5771.  
  5772. instheader popiy,4
  5773.     MOV     BP,[simstack]           ;FDE1 POP IY
  5774.     gwordBP sFree
  5775.     MOV     [iy],sFree
  5776.     ADD     BP,2
  5777.     MOV     [simstack],BP
  5778.     instend
  5779.  
  5780. instheader xtiy,4
  5781.     MOV     BP,[simstack]           ;FDE3 EX (SP),IY
  5782.     gwordBP sFree
  5783.     PUSH    sBC
  5784.     MOV     sBC,[iy]
  5785.     MOV     [iy],sFree
  5786.     wword   sBC
  5787.     POP     sBC
  5788.     instend
  5789.  
  5790. instheader pushiy,4
  5791.     MOV     BP,[simstack]           ;FDE5 PUSH IY
  5792.     SUB     BP,2
  5793.     MOV     [simstack],BP
  5794.     PUSH    sBC
  5795.     MOV     sBC,[iy]
  5796.     wword   sBC
  5797.     POP     sBC
  5798.     instend
  5799.  
  5800. instheader pciy,4
  5801.     MOV     sPC,[iy]                ;FDE9 JP IY
  5802.     InitPCSeg
  5803.     instend
  5804.  
  5805. instheader spiy,4
  5806.     MOV     BP,[iy]                 ;FDF9 LD SP,IY
  5807.     MOV     [simstack],BP
  5808.     instend
  5809.  
  5810. ENDS
  5811.  
  5812. ;*************************************************************************
  5813. ;*                                                                       *
  5814. ;*       Opcode dispatch table                                           *
  5815. ;*                                                                       *
  5816. ;*************************************************************************
  5817.  
  5818. SEGMENT _data DWORD PUBLIC 'DATA'
  5819.  
  5820. opcodes DW    256 DUP (?)
  5821. opcosCB DW    256 DUP (?)
  5822. opcosDD DW    256 DUP (?)
  5823. opcDDCB DW    256 DUP (?)
  5824. opcosED DW    256 DUP (?)
  5825. opcosFD DW    256 DUP (?)
  5826.  
  5827. opclogs DW    1,3,2,2,1,1,2,1,1,3,2,2,1,1,2,1
  5828.     DW    3,3,2,2,1,1,2,1,2,3,2,2,1,1,2,1
  5829.     DW    2,3,5,2,1,1,2,1,2,3,5,2,1,1,2,1
  5830.     DW    2,3,5,2,3,3,3,1,2,3,4,2,1,1,2,1 ; maybe 4 on 3A
  5831.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5832.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5833.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5834.     DW    2,2,2,2,2,2,1,2,1,1,1,1,1,1,2,1
  5835.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5836.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5837.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5838.     DW    1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1
  5839.     DW    2,3,3,3,3,4,2,3,2,1,3,2,3,3,2,3
  5840.     DW    2,3,3,3,3,4,2,3,2,1,3,3,3,2,2,3
  5841.     DW    2,3,3,6,3,4,2,3,2,1,3,1,3,2,2,3
  5842.     DW    2,3,3,1,3,4,2,3,2,2,3,1,3,2,2,3
  5843.  
  5844. edclogs DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5845.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5846.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5847.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5848.     DW    2,2,2,4,0,0,0,1,2,2,2,4,0,0,0,1
  5849.     DW    2,2,2,4,0,0,0,1,2,2,2,4,0,0,0,1
  5850.     DW    2,2,2,4,0,0,0,0,2,2,2,4,0,0,0,0
  5851.     DW    2,2,2,4,0,0,0,0,2,2,2,4,0,0,0,0
  5852.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5853.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5854.     DW    3,2,0,0,0,0,0,0,3,2,0,0,0,0,0,0
  5855.     DW    4,4,0,0,0,0,0,0,4,4,0,0,0,0,0,0
  5856.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5857.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5858.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5859.     DW    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5860.  
  5861. optabl  DW    nop00,lxib,staxb,inxb,inrb,dcrb,mvib,rlc
  5862.     DW    exaf,dadb,ldaxb,dcxb,inrc,dcrc,mvic,rrc
  5863.     DW    djnz,lxid,staxd,inxd,inrd,dcrd,mvid,ral
  5864.     DW    jr,dadd,ldaxd,dcxd,inre,dcre,mvie,rar
  5865.     DW    jrnz,lxih,shldz,inxh,inrh,dcrh,mvih,daaz
  5866.     DW    jrz,dadh,lhld,dcxh,inrl,dcrl,mvil,cma
  5867.     DW    jrnc,lxis,sta,inxs,inrm,dcrm,mvim,stcz
  5868.     DW    jrc,dads,lda,dcxs,inra,dcra,mvia,cmcz
  5869.     DW    movebb,movebc,movebd,movebe,movebh,movebl,movebm,moveba
  5870.     DW    movecb,movecc,movecd,movece,movech,movecl,movecm,moveca
  5871.     DW    movedb,movedc,movedd,movede,movedh,movedl,movedm,moveda
  5872.     DW    moveeb,moveec,moveed,moveee,moveeh,moveel,moveem,moveea
  5873.     DW    movehb,movehc,movehd,movehe,movehh,movehl,movehm,moveha
  5874.     DW    movelb,movelc,moveld,movele,movelh,movell,movelm,movela
  5875.     DW    movemb,movemc,movemd,moveme,movemh,moveml,halt,movema
  5876.     DW    moveab,moveac,movead,moveae,moveah,moveal,moveam,moveaa
  5877.     DW    addb,addc,addd,adde,addh,addl,addm,adda
  5878.     DW    adcb,adcc,adcd,adce,adch,adcl,adcm,adca
  5879.     DW    subb,subc,subd,sube,subh,subl,subm,suba
  5880.     DW    sbbb,sbbc,sbbd,sbbe,sbbh,sbbl,sbbm,sbba
  5881.     DW    andb,andc,andd,ande,andh,andl,andm,anda
  5882.     DW    xrab,xrac,xrad,xrae,xrah,xral,xram,xraa
  5883.     DW    orab,orac,orad,orae,orah,oral,oram,oraa
  5884.     DW    cmpb,cmpc,cmpd,cmpe,cmph,cmpl,cmpam,cmpaa
  5885.     DW    rnz,popb,jnzz,jmpa,cnz,pushb,adi,rst0
  5886.     DW    rz,retz,jzz,preCB,cz,callz,aci,rst1
  5887.     DW    rnc,popd,jncz,outz,cnc,pushd,sui,rst2
  5888.     DW    rc,exx,jcz,inz,cc,preDD,sbi,rst3
  5889.     DW    rpo,poph,jpoz,xthl,cpo,pushh,ani,rst4
  5890.     DW    rpe,pchl,jpez,xchgz,cpe,preED,xri,rst5
  5891.     DW    rp,popp,jpz,diz,cp,pushp,oria,rst6
  5892.     DW    rm,sphl,jmz,ei,cm,preFD,cpi,rst7
  5893.  
  5894. LABEL CBoptab WORD
  5895.     DW    rlcb,rlcc,rlcd,rlce,rlch,rlcl,rlcm,rlca                 ;CB00
  5896.     DW    rrcb,rrcc,rrcd,rrce,rrch,rrcl,rrcm,rrca                 ;CB08
  5897.     DW    rlrb,rlrc,rlrd,rlre,rlrh,rlrl,rlrm,rlra                 ;CB10
  5898.     DW    rrrb,rrrc,rrrd,rrre,rrrh,rrrl,rrrm,rrra                 ;CB18
  5899.     DW    slab,slac,slad,slae,slah,slal,slam,slaa                 ;CB20
  5900.     DW    srab,srac,srad,srae,srah,sral,sram,sraa                 ;CB28
  5901.     DW    sllb,sllc,slld,slle,sllh,slll,sllm,slla                 ;CB30
  5902.     DW    srlb,srlc,srld,srle,srlh,srll,srlm,srla                 ;CB38
  5903.     DW    bit0b,bit0c,bit0d,bit0e,bit0h,bit0l,bit0m,bit0a         ;CB40
  5904.     DW    bit1b,bit1c,bit1d,bit1e,bit1h,bit1l,bit1m,bit1a         ;CB48
  5905.     DW    bit2b,bit2c,bit2d,bit2e,bit2h,bit2l,bit2m,bit2a         ;CB50
  5906.     DW    bit3b,bit3c,bit3d,bit3e,bit3h,bit3l,bit3m,bit3a         ;CB58
  5907.     DW    bit4b,bit4c,bit4d,bit4e,bit4h,bit4l,bit4m,bit4a         ;CB60
  5908.     DW    bit5b,bit5c,bit5d,bit5e,bit5h,bit5l,bit5m,bit5a         ;CB68
  5909.     DW    bit6b,bit6c,bit6d,bit6e,bit6h,bit6l,bit6m,bit6a         ;CB70
  5910.     DW    bit7b,bit7c,bit7d,bit7e,bit7h,bit7l,bit7m,bit7a         ;CB78
  5911.     DW    res0b,res0c,res0d,res0e,res0h,res0l,res0m,res0a         ;CB80
  5912.     DW    res1b,res1c,res1d,res1e,res1h,res1l,res1m,res1a         ;CB88
  5913.     DW    res2b,res2c,res2d,res2e,res2h,res2l,res2m,res2a         ;CB90
  5914.     DW    res3b,res3c,res3d,res3e,res3h,res3l,res3m,res3a         ;CB98
  5915.     DW    res4b,res4c,res4d,res4e,res4h,res4l,res4m,res4a         ;CBA0
  5916.     DW    res5b,res5c,res5d,res5e,res5h,res5l,res5m,res5a         ;CBA8
  5917.     DW    res6b,res6c,res6d,res6e,res6h,res6l,res6m,res6a         ;CBB0
  5918.     DW    res7b,res7c,res7d,res7e,res7h,res7l,res7m,res7a         ;CBB8
  5919.     DW    set0b,set0c,set0d,set0e,set0h,set0l,set0m,set0a         ;CBC0
  5920.     DW    set1b,set1c,set1d,set1e,set1h,set1l,set1m,set1a         ;CBC8
  5921.     DW    set2b,set2c,set2d,set2e,set2h,set2l,set2m,set2a         ;CBD0
  5922.     DW    set3b,set3c,set3d,set3e,set3h,set3l,set3m,set3a         ;CBD8
  5923.     DW    set4b,set4c,set4d,set4e,set4h,set4l,set4m,set4a         ;CBE0
  5924.     DW    set5b,set5c,set5d,set5e,set5h,set5l,set5m,set5a         ;CBE8
  5925.     DW    set6b,set6c,set6d,set6e,set6h,set6l,set6m,set6a         ;CBF0
  5926.     DW    set7b,set7c,set7d,set7e,set7h,set7l,set7m,set7a         ;CBF8
  5927.  
  5928. LABEL DDoptab WORD
  5929.     DW    nop00,lxib,staxb,inxb,inrb,dcrb,mvih,rlc                ;DD00
  5930.     DW    exaf,dadixb,ldaxb,dcxb,inrc,dcrc,mvic,rrc               ;DD08
  5931.     DW    djnz,lxid,staxd,inxd,inrd,dcrd,mvid,ral                 ;DD10
  5932.     DW    jr,dadixd,ldaxd,dcxd,inre,dcre,mvie,rar                 ;DD18
  5933.     DW    jrnz,lxiix,sixd,inxix,inrxh,dcrxh,mvixh,daaz            ;DD20
  5934.     DW    jrz,dadixx,lixd,dcxix,inrxl,dcrxl,mvixl,cma             ;DD28
  5935.     DW    jrnc,lxis,sta,inxs,inrix,dcrix,mviix,stcz               ;DD30
  5936.     DW    jrc,dadixs,lda,dcxs,inra,dcra,mvia,cmcz                 ;DD38
  5937.     DW    movebb,movebc,movebd,movebe,movbxh,movbxl,movbix,moveba ;DD40
  5938.     DW    movecb,movecc,movecd,movece,movcxh,movcxl,movcix,moveca ;DD48
  5939.     DW    movedb,movedc,movedd,movede,movdxh,movdxl,movdix,moveda ;DD50
  5940.     DW    moveeb,moveec,moveed,moveee,movexh,movexl,moveix,moveea ;DD58
  5941.     DW    movxhb,movxhc,movxhd,movxhe,mvxhxh,mvxhxl,movhix,movxha ;DD60
  5942.     DW    movxlb,movxlc,movxld,movxle,mvxlxh,mvxlxl,movlix,movxla ;DD68
  5943.     DW    movixb,movixc,movixd,movixe,movixh,movixl,halt,movixa   ;DD70
  5944.     DW    moveab,moveac,movead,moveae,movaxh,movaxl,movaix,moveaa ;DD78
  5945.     DW    addb,addc,addd,adde,addxh,addxl,addix,adda              ;DD80
  5946.     DW    adcb,adcc,adcd,adce,adcxh,adcxl,adcix,adca              ;DD88
  5947.     DW    subb,subc,subd,sube,subxh,subxl,subix,suba              ;DD90
  5948.     DW    sbbb,sbbc,sbbd,sbbe,sbbxh,sbbxl,sbbix,sbba              ;DD98
  5949.     DW    andb,andc,andd,ande,anaxh,anaxl,anaix,anda              ;DDA0
  5950.     DW    xrab,xrac,xrad,xrae,xraxh,xraxl,xraix,xraa              ;DDA8
  5951.     DW    orab,orac,orad,orae,oraxh,oraxl,oraix,oraa              ;DDB0
  5952.     DW    cmpb,cmpc,cmpd,cmpe,cmpxh,cmpxl,cmpix,cmpaa             ;DDB8
  5953.     DW    rnz,popb,jnzz,jmpa,cnz,pushb,adi,rst0                   ;DDC0
  5954.     DW    rz,retz,jzz,prDDCB,cz,callz,aci,rst1                    ;DDC8
  5955.     DW    rnc,popd,jncz,outz,cnc,pushd,sui,rst2                   ;DDD0
  5956.     DW    rc,exx,jcz,inz,cc,preDD,sbi,rst3                        ;DDD8
  5957.     DW    rpo,popix,jpoz,xtix,cpo,pushix,ani,rst4                 ;DDE0
  5958.     DW    rpe,pcix,jpez,xchgz,cpe,preED,xri,rst5                  ;DDE8
  5959.     DW    rp,popp,jpz,diz,cp,pushp,oria,rst6                      ;DDF0
  5960.     DW    rm,spix,jmz,ei,cm,preFD,cpi,rst7                        ;DDF8
  5961.  
  5962. LABEL DDCBopt WORD
  5963.     DW    rlcib,rlcic,rlcid,rlcie,rlcih,rlcil,rlcix,rlcia         ;DDCB00
  5964.     DW    rrcib,rrcic,rrcid,rrcie,rrcih,rrcil,rrcix,rrcia         ;DDCB08
  5965.     DW    rlib,rlic,rlid,rlie,rlih,rlil,rlix,rlia                 ;DDCB10
  5966.     DW    rrib,rric,rrid,rrie,rrih,rril,rrix,rria                 ;DDCB18
  5967.     DW    slaib,slaic,slaid,slaie,slaih,slail,slaix,slaia         ;DDCB20
  5968.     DW    sraib,sraic,sraid,sraie,sraih,srail,sraix,sraia         ;DDCB28
  5969.     DW    sllib,sllic,sllid,sllie,sllih,sllil,sllix,sllia         ;DDCB30
  5970.     DW    srlib,srlic,srlid,srlie,srlih,srlil,srlix,srlia         ;DDCB38
  5971.     DW    bit0ix,bit0ix,bit0ix,bit0ix,bit0ix,bit0ix,bit0ix,bit0ix ;DDCB40
  5972.     DW    bit1ix,bit1ix,bit1ix,bit1ix,bit1ix,bit1ix,bit1ix,bit1ix ;DDCB48
  5973.     DW    bit2ix,bit2ix,bit2ix,bit2ix,bit2ix,bit2ix,bit2ix,bit2ix ;DDCB50
  5974.     DW    bit3ix,bit3ix,bit3ix,bit3ix,bit3ix,bit3ix,bit3ix,bit3ix ;DDCB58
  5975.     DW    bit4ix,bit4ix,bit4ix,bit4ix,bit4ix,bit4ix,bit4ix,bit4ix ;DDCB60
  5976.     DW    bit5ix,bit5ix,bit5ix,bit5ix,bit5ix,bit5ix,bit5ix,bit5ix ;DDCB68
  5977.     DW    bit6ix,bit6ix,bit6ix,bit6ix,bit6ix,bit6ix,bit6ix,bit6ix ;DDCB70
  5978.     DW    bit7ix,bit7ix,bit7ix,bit7ix,bit7ix,bit7ix,bit7ix,bit7ix ;DDCB78
  5979.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res0ix,iDDCB        ;DDCB80
  5980.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res1ix,iDDCB        ;DDCB88
  5981.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res2ix,iDDCB        ;DDCB90
  5982.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res3ix,iDDCB        ;DDCB98
  5983.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res4ix,iDDCB        ;DDCBA0
  5984.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res5ix,iDDCB        ;DDCBA8
  5985.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res6ix,iDDCB        ;DDCBB0
  5986.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,res7ix,iDDCB        ;DDCBB8
  5987.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set0ix,iDDCB        ;DDCBC0
  5988.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set1ix,iDDCB        ;DDCBC8
  5989.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set2ix,iDDCB        ;DDCBD0
  5990.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set3ix,iDDCB        ;DDCBD8
  5991.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set4ix,iDDCB        ;DDCBE0
  5992.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set5ix,iDDCB        ;DDCBE8
  5993.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set6ix,iDDCB        ;DDCBF0
  5994.     DW    iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,iDDCB,set7ix,iDDCB        ;DDCBF8
  5995.  
  5996. LABEL EDoptab WORD
  5997.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED00
  5998.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED08
  5999.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED10
  6000.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED18
  6001.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED20
  6002.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED28
  6003.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED30
  6004.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED38
  6005.     DW    inbc,outcb,dsbbb,sbcd,nega,zretn,im0,moveia             ;ED40
  6006.     DW    incc,outcc,dadcb,lbcd,nega,reti,illgED,movera           ;ED48
  6007.     DW    indc,outcd,dsbbd,sded,nega,illgED,im1,moveai            ;ED50
  6008.     DW    inec,outce,dadcd,lded,nega,illgED,im2,movear            ;ED58
  6009.     DW    inhc,outch,dsbbh,shldz,nega,illgED,illgED,rrd           ;ED60
  6010.     DW    inlc,outcl,dadch,lhld,nega,illgED,illgED,rld            ;ED68
  6011.     DW    inmc,outcm,dsbbs,sspd,nega,zretn,illgED,illgED          ;ED70
  6012.     DW    inac,outca,dadcs,lspd,nega,illgED,illgED,illgED         ;ED78
  6013.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED80
  6014.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED88
  6015.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED90
  6016.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;ED98
  6017.     DW    ldi,cmpi,ini,outi,illgED,illgED,illgED,illgED           ;EDA0
  6018.     DW    ldd,cpd,ind,outd,illgED,illgED,illgED,illgED            ;EDA8
  6019.     DW    ldir,cpir,inir,otir,illgED,illgED,illgED,illgED         ;EDB0
  6020.     DW    lddr,cpdr,indr,otdr,illgED,illgED,illgED,illgED         ;EDB8
  6021.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDC0
  6022.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDC8
  6023.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDD0
  6024.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDD8
  6025.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDE0
  6026.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDE8
  6027.     DW    illgED,illgED,illgED,illgED,illgED,illgED,illgED,illgED ;EDF0
  6028.     DW    illgED,illgED,illgED,CASInOpen,CASCheck,CASWrite,CASRead,spcED  ;EDF8
  6029.  
  6030. LABEL FDoptab WORD
  6031.     DW    nop00,lxib,staxb,inxb,inrb,dcrb,mvih,rlc                ;FD00
  6032.     DW    exaf,dadiyb,ldaxb,dcxb,inrc,dcrc,mvic,rrc               ;FD08
  6033.     DW    djnz,lxid,staxd,inxd,inrd,dcrd,mvid,ral                 ;FD10
  6034.     DW    jr,dadiyd,ldaxd,dcxd,inre,dcre,mvie,rar                 ;FD18
  6035.     DW    jrnz,lxiiy,siyd,inxiy,inryh,dcryh,mviyh,daaz            ;FD20
  6036.     DW    jrz,dadiyy,liyd,dcxiy,inryl,dcryl,mviyl,cma             ;FD28
  6037.     DW    jrnc,lxis,sta,inxs,inriy,dcriy,mviiy,stcz               ;FD30
  6038.     DW    jrc,dadiys,lda,dcxs,inra,dcra,mvia,cmcz                 ;FD38
  6039.     DW    movebb,movebc,movebd,movebe,movbyh,movbyl,movbiy,moveba ;FD40
  6040.     DW    movecb,movecc,movecd,movece,movcyh,movcyl,movciy,moveca ;FD48
  6041.     DW    movedb,movedc,movedd,movede,movdyh,movdyl,movdiy,moveda ;FD50
  6042.     DW    moveeb,moveec,moveed,moveee,moveyh,moveyl,moveiy,moveea ;FD58
  6043.     DW    movyhb,movyhc,movyhd,movyhe,mvyhyh,mvyhyl,movhiy,movyha ;FD60
  6044.     DW    movylb,movylc,movyld,movyle,mvylyh,mvylyl,movliy,movyla ;FD68
  6045.     DW    moviyb,moviyc,moviyd,moviye,moviyh,moviyl,halt,moviya   ;FD70
  6046.     DW    moveab,moveac,movead,moveae,movayh,movayl,movaiy,moveaa ;FD78
  6047.     DW    addb,addc,addd,adde,addyh,addyl,addiy,adda              ;FD80
  6048.     DW    adcb,adcc,adcd,adce,adcyh,adcyl,adciy,adca              ;FD88
  6049.     DW    subb,subc,subd,sube,subyh,subyl,subiy,suba              ;FD90
  6050.     DW    sbbb,sbbc,sbbd,sbbe,sbbyh,sbbyl,sbbiy,sbba              ;FD98
  6051.     DW    andb,andc,andd,ande,anayh,anayl,anaiy,anda              ;FDA0
  6052.     DW    xrab,xrac,xrad,xrae,xrayh,xrayl,xraiy,xraa              ;FDA8
  6053.     DW    orab,orac,orad,orae,orayh,orayl,oraiy,oraa              ;FDB0
  6054.     DW    cmpb,cmpc,cmpd,cmpe,cmpyh,cmpyl,cmpiy,cmpaa             ;FDB8
  6055.     DW    rnz,popb,jnzz,jmpa,cnz,pushb,adi,rst0                   ;FDC0
  6056.     DW    rz,retz,jzz,prFDCB,cz,callz,aci,rst1                    ;FDC8
  6057.     DW    rnc,popd,jncz,outz,cnc,pushd,sui,rst2                   ;FDD0
  6058.     DW    rc,exx,jcz,inz,cc,preDD,sbi,rst3                        ;FDD8
  6059.     DW    rpo,popiy,jpoz,xtiy,cpo,pushiy,ani,rst4                 ;FDE0
  6060.     DW    rpe,pciy,jpez,xchgz,cpe,preED,xri,rst5                  ;FDE8
  6061.     DW    rp,popp,jpz,diz,cp,pushp,oria,rst6                      ;FDF0
  6062.     DW    rm,spiy,jmz,ei,cm,preFD,cpi,rst7                        ;FDF8
  6063.  
  6064. LABEL opend WORD
  6065.  
  6066. roptabl DW    r_nop00,r_lxib,r_staxb,r_inxb,r_inrb,r_dcrb,r_mvib,r_rlc
  6067.     DW    r_exaf,r_dadb,r_ldaxb,r_dcxb,r_inrc,r_dcrc,r_mvic,r_rrc
  6068.     DW    r_djnz,r_lxid,r_staxd,r_inxd,r_inrd,r_dcrd,r_mvid,r_ral
  6069.     DW    r_jr,r_dadd,r_ldaxd,r_dcxd,r_inre,r_dcre,r_mvie,r_rar
  6070.     DW    r_jrnz,r_lxih,r_shldz,r_inxh,r_inrh,r_dcrh,r_mvih,r_daaz
  6071.     DW    r_jrz,r_dadh,r_lhld,r_dcxh,r_inrl,r_dcrl,r_mvil,r_cma
  6072.     DW    r_jrnc,r_lxis,r_sta,r_inxs,r_inrm,r_dcrm,r_mvim,r_stcz
  6073.     DW    r_jrc,r_dads,r_lda,r_dcxs,r_inra,r_dcra,r_mvia,r_cmcz
  6074.     DW    r_movebb,r_movebc,r_movebd,r_movebe,r_movebh,r_movebl,r_movebm,r_moveba
  6075.     DW    r_movecb,r_movecc,r_movecd,r_movece,r_movech,r_movecl,r_movecm,r_moveca
  6076.     DW    r_movedb,r_movedc,r_movedd,r_movede,r_movedh,r_movedl,r_movedm,r_moveda
  6077.     DW    r_moveeb,r_moveec,r_moveed,r_moveee,r_moveeh,r_moveel,r_moveem,r_moveea
  6078.     DW    r_movehb,r_movehc,r_movehd,r_movehe,r_movehh,r_movehl,r_movehm,r_moveha
  6079.     DW    r_movelb,r_movelc,r_moveld,r_movele,r_movelh,r_movell,r_movelm,r_movela
  6080.     DW    r_movemb,r_movemc,r_movemd,r_moveme,r_movemh,r_moveml,r_halt,r_movema
  6081.     DW    r_moveab,r_moveac,r_movead,r_moveae,r_moveah,r_moveal,r_moveam,r_moveaa
  6082.     DW    r_addb,r_addc,r_addd,r_adde,r_addh,r_addl,r_addm,r_adda
  6083.     DW    r_adcb,r_adcc,r_adcd,r_adce,r_adch,r_adcl,r_adcm,r_adca
  6084.     DW    r_subb,r_subc,r_subd,r_sube,r_subh,r_subl,r_subm,r_suba
  6085.     DW    r_sbbb,r_sbbc,r_sbbd,r_sbbe,r_sbbh,r_sbbl,r_sbbm,r_sbba
  6086.     DW    r_andb,r_andc,r_andd,r_ande,r_andh,r_andl,r_andm,r_anda
  6087.     DW    r_xrab,r_xrac,r_xrad,r_xrae,r_xrah,r_xral,r_xram,r_xraa
  6088.     DW    r_orab,r_orac,r_orad,r_orae,r_orah,r_oral,r_oram,r_oraa
  6089.     DW    r_cmpb,r_cmpc,r_cmpd,r_cmpe,r_cmph,r_cmpl,r_cmpam,r_cmpaa
  6090.     DW    r_rnz,r_popb,r_jnzz,r_jmpa,r_cnz,r_pushb,r_adi,r_rst0
  6091.     DW    r_rz,r_retz,r_jzz,preCB,r_cz,r_callz,r_aci,r_rst1
  6092.     DW    r_rnc,r_popd,r_jncz,r_outz,r_cnc,r_pushd,r_sui,r_rst2
  6093.     DW    r_rc,r_exx,r_jcz,r_inz,r_cc,preDD,r_sbi,r_rst3
  6094.     DW    r_rpo,r_poph,r_jpoz,r_xthl,r_cpo,r_pushh,r_ani,r_rst4
  6095.     DW    r_rpe,r_pchl,r_jpez,r_xchgz,r_cpe,preED,r_xri,r_rst5
  6096.     DW    r_rp,r_popp,r_jpz,r_diz,r_cp,r_pushp,r_oria,r_rst6
  6097.     DW    r_rm,r_sphl,r_jmz,r_ei,r_cm,preFD,r_cpi,r_rst7
  6098.  
  6099. LABEL rCBoptab WORD
  6100.     DW    r_rlcb,r_rlcc,r_rlcd,r_rlce,r_rlch,r_rlcl,r_rlcm,r_rlca                 ;CB00
  6101.     DW    r_rrcb,r_rrcc,r_rrcd,r_rrce,r_rrch,r_rrcl,r_rrcm,r_rrca                 ;CB08
  6102.     DW    r_rlrb,r_rlrc,r_rlrd,r_rlre,r_rlrh,r_rlrl,r_rlrm,r_rlra                 ;CB10
  6103.     DW    r_rrrb,r_rrrc,r_rrrd,r_rrre,r_rrrh,r_rrrl,r_rrrm,r_rrra                 ;CB18
  6104.     DW    r_slab,r_slac,r_slad,r_slae,r_slah,r_slal,r_slam,r_slaa                 ;CB20
  6105.     DW    r_srab,r_srac,r_srad,r_srae,r_srah,r_sral,r_sram,r_sraa                 ;CB28
  6106.     DW    r_sllb,r_sllc,r_slld,r_slle,r_sllh,r_slll,r_sllm,r_slla                 ;CB30
  6107.     DW    r_srlb,r_srlc,r_srld,r_srle,r_srlh,r_srll,r_srlm,r_srla                 ;CB38
  6108.     DW    r_bit0b,r_bit0c,r_bit0d,r_bit0e,r_bit0h,r_bit0l,r_bit0m,r_bit0a         ;CB40
  6109.     DW    r_bit1b,r_bit1c,r_bit1d,r_bit1e,r_bit1h,r_bit1l,r_bit1m,r_bit1a         ;CB48
  6110.     DW    r_bit2b,r_bit2c,r_bit2d,r_bit2e,r_bit2h,r_bit2l,r_bit2m,r_bit2a         ;CB50
  6111.     DW    r_bit3b,r_bit3c,r_bit3d,r_bit3e,r_bit3h,r_bit3l,r_bit3m,r_bit3a         ;CB58
  6112.     DW    r_bit4b,r_bit4c,r_bit4d,r_bit4e,r_bit4h,r_bit4l,r_bit4m,r_bit4a         ;CB60
  6113.     DW    r_bit5b,r_bit5c,r_bit5d,r_bit5e,r_bit5h,r_bit5l,r_bit5m,r_bit5a         ;CB68
  6114.     DW    r_bit6b,r_bit6c,r_bit6d,r_bit6e,r_bit6h,r_bit6l,r_bit6m,r_bit6a         ;CB70
  6115.     DW    r_bit7b,r_bit7c,r_bit7d,r_bit7e,r_bit7h,r_bit7l,r_bit7m,r_bit7a         ;CB78
  6116.     DW    r_res0b,r_res0c,r_res0d,r_res0e,r_res0h,r_res0l,r_res0m,r_res0a         ;CB80
  6117.     DW    r_res1b,r_res1c,r_res1d,r_res1e,r_res1h,r_res1l,r_res1m,r_res1a         ;CB88
  6118.     DW    r_res2b,r_res2c,r_res2d,r_res2e,r_res2h,r_res2l,r_res2m,r_res2a         ;CB90
  6119.     DW    r_res3b,r_res3c,r_res3d,r_res3e,r_res3h,r_res3l,r_res3m,r_res3a         ;CB98
  6120.     DW    r_res4b,r_res4c,r_res4d,r_res4e,r_res4h,r_res4l,r_res4m,r_res4a         ;CBA0
  6121.     DW    r_res5b,r_res5c,r_res5d,r_res5e,r_res5h,r_res5l,r_res5m,r_res5a         ;CBA8
  6122.     DW    r_res6b,r_res6c,r_res6d,r_res6e,r_res6h,r_res6l,r_res6m,r_res6a         ;CBB0
  6123.     DW    r_res7b,r_res7c,r_res7d,r_res7e,r_res7h,r_res7l,r_res7m,r_res7a         ;CBB8
  6124.     DW    r_set0b,r_set0c,r_set0d,r_set0e,r_set0h,r_set0l,r_set0m,r_set0a         ;CBC0
  6125.     DW    r_set1b,r_set1c,r_set1d,r_set1e,r_set1h,r_set1l,r_set1m,r_set1a         ;CBC8
  6126.     DW    r_set2b,r_set2c,r_set2d,r_set2e,r_set2h,r_set2l,r_set2m,r_set2a         ;CBD0
  6127.     DW    r_set3b,r_set3c,r_set3d,r_set3e,r_set3h,r_set3l,r_set3m,r_set3a         ;CBD8
  6128.     DW    r_set4b,r_set4c,r_set4d,r_set4e,r_set4h,r_set4l,r_set4m,r_set4a         ;CBE0
  6129.     DW    r_set5b,r_set5c,r_set5d,r_set5e,r_set5h,r_set5l,r_set5m,r_set5a         ;CBE8
  6130.     DW    r_set6b,r_set6c,r_set6d,r_set6e,r_set6h,r_set6l,r_set6m,r_set6a         ;CBF0
  6131.     DW    r_set7b,r_set7c,r_set7d,r_set7e,r_set7h,r_set7l,r_set7m,r_set7a         ;CBF8
  6132.  
  6133. LABEL rDDoptab WORD
  6134.     DW    r_nop00,r_lxib,r_staxb,r_inxb,r_inrb,r_dcrb,r_mvih,r_rlc                ;DD00
  6135.     DW    r_exaf,r_dadixb,r_ldaxb,r_dcxb,r_inrc,r_dcrc,r_mvic,r_rrc               ;DD08
  6136.     DW    r_djnz,r_lxid,r_staxd,r_inxd,r_inrd,r_dcrd,r_mvid,r_ral                 ;DD10
  6137.     DW    r_jr,r_dadixd,r_ldaxd,r_dcxd,r_inre,r_dcre,r_mvie,r_rar                 ;DD18
  6138.     DW    r_jrnz,r_lxiix,r_sixd,r_inxix,r_inrxh,r_dcrxh,r_mvixh,r_daaz            ;DD20
  6139.     DW    r_jrz,r_dadixx,r_lixd,r_dcxix,r_inrxl,r_dcrxl,r_mvixl,r_cma             ;DD28
  6140.     DW    r_jrnc,r_lxis,r_sta,r_inxs,r_inrix,r_dcrix,r_mviix,r_stcz               ;DD30
  6141.     DW    r_jrc,r_dadixs,r_lda,r_dcxs,r_inra,r_dcra,r_mvia,r_cmcz                 ;DD38
  6142.     DW    r_movebb,r_movebc,r_movebd,r_movebe,r_movbxh,r_movbxl,r_movbix,r_moveba ;DD40
  6143.     DW    r_movecb,r_movecc,r_movecd,r_movece,r_movcxh,r_movcxl,r_movcix,r_moveca ;DD48
  6144.     DW    r_movedb,r_movedc,r_movedd,r_movede,r_movdxh,r_movdxl,r_movdix,r_moveda ;DD50
  6145.     DW    r_moveeb,r_moveec,r_moveed,r_moveee,r_movexh,r_movexl,r_moveix,r_moveea ;DD58
  6146.     DW    r_movxhb,r_movxhc,r_movxhd,r_movxhe,r_mvxhxh,r_mvxhxl,r_movhix,r_movxha ;DD60
  6147.     DW    r_movxlb,r_movxlc,r_movxld,r_movxle,r_mvxlxh,r_mvxlxl,r_movlix,r_movxla ;DD68
  6148.     DW    r_movixb,r_movixc,r_movixd,r_movixe,r_movixh,r_movixl,r_halt,r_movixa   ;DD70
  6149.     DW    r_moveab,r_moveac,r_movead,r_moveae,r_movaxh,r_movaxl,r_movaix,r_moveaa ;DD78
  6150.     DW    r_addb,r_addc,r_addd,r_adde,r_addxh,r_addxl,r_addix,r_adda              ;DD80
  6151.     DW    r_adcb,r_adcc,r_adcd,r_adce,r_adcxh,r_adcxl,r_adcix,r_adca              ;DD88
  6152.     DW    r_subb,r_subc,r_subd,r_sube,r_subxh,r_subxl,r_subix,r_suba              ;DD90
  6153.     DW    r_sbbb,r_sbbc,r_sbbd,r_sbbe,r_sbbxh,r_sbbxl,r_sbbix,r_sbba              ;DD98
  6154.     DW    r_andb,r_andc,r_andd,r_ande,r_anaxh,r_anaxl,r_anaix,r_anda              ;DDA0
  6155.     DW    r_xrab,r_xrac,r_xrad,r_xrae,r_xraxh,r_xraxl,r_xraix,r_xraa              ;DDA8
  6156.     DW    r_orab,r_orac,r_orad,r_orae,r_oraxh,r_oraxl,r_oraix,r_oraa              ;DDB0
  6157.     DW    r_cmpb,r_cmpc,r_cmpd,r_cmpe,r_cmpxh,r_cmpxl,r_cmpix,r_cmpaa             ;DDB8
  6158.     DW    r_rnz,r_popb,r_jnzz,r_jmpa,r_cnz,r_pushb,r_adi,r_rst0                   ;DDC0
  6159.     DW    r_rz,r_retz,r_jzz,prDDCB,r_cz,r_callz,r_aci,r_rst1                    ;DDC8
  6160.     DW    r_rnc,r_popd,r_jncz,r_outz,r_cnc,r_pushd,r_sui,r_rst2                   ;DDD0
  6161.     DW    r_rc,r_exx,r_jcz,r_inz,r_cc,preDD,r_sbi,r_rst3                        ;DDD8
  6162.     DW    r_rpo,r_popix,r_jpoz,r_xtix,r_cpo,r_pushix,r_ani,r_rst4                 ;DDE0
  6163.     DW    r_rpe,r_pcix,r_jpez,r_xchgz,r_cpe,preED,r_xri,r_rst5                  ;DDE8
  6164.     DW    r_rp,r_popp,r_jpz,r_diz,r_cp,r_pushp,r_oria,r_rst6                      ;DDF0
  6165.     DW    r_rm,r_spix,r_jmz,r_ei,r_cm,preFD,r_cpi,r_rst7                        ;DDF8
  6166.  
  6167. LABEL rDDCBopt WORD
  6168.     DW    r_rlcib,r_rlcic,r_rlcid,r_rlcie,r_rlcih,r_rlcil,r_rlcix,r_rlcia         ;DDCB00
  6169.     DW    r_rrcib,r_rrcic,r_rrcid,r_rrcie,r_rrcih,r_rrcil,r_rrcix,r_rrcia         ;DDCB08
  6170.     DW    r_rlib,r_rlic,r_rlid,r_rlie,r_rlih,r_rlil,r_rlix,r_rlia                 ;DDCB10
  6171.     DW    r_rrib,r_rric,r_rrid,r_rrie,r_rrih,r_rril,r_rrix,r_rria                 ;DDCB18
  6172.     DW    r_slaib,r_slaic,r_slaid,r_slaie,r_slaih,r_slail,r_slaix,r_slaia         ;DDCB20
  6173.     DW    r_sraib,r_sraic,r_sraid,r_sraie,r_sraih,r_srail,r_sraix,r_sraia         ;DDCB28
  6174.     DW    r_sllib,r_sllic,r_sllid,r_sllie,r_sllih,r_sllil,r_sllix,r_sllia         ;DDCB30
  6175.     DW    r_srlib,r_srlic,r_srlid,r_srlie,r_srlih,r_srlil,r_srlix,r_srlia         ;DDCB38
  6176.     DW    r_bit0ix,r_bit0ix,r_bit0ix,r_bit0ix,r_bit0ix,r_bit0ix,r_bit0ix,r_bit0ix ;DDCB40
  6177.     DW    r_bit1ix,r_bit1ix,r_bit1ix,r_bit1ix,r_bit1ix,r_bit1ix,r_bit1ix,r_bit1ix ;DDCB48
  6178.     DW    r_bit2ix,r_bit2ix,r_bit2ix,r_bit2ix,r_bit2ix,r_bit2ix,r_bit2ix,r_bit2ix ;DDCB50
  6179.     DW    r_bit3ix,r_bit3ix,r_bit3ix,r_bit3ix,r_bit3ix,r_bit3ix,r_bit3ix,r_bit3ix ;DDCB58
  6180.     DW    r_bit4ix,r_bit4ix,r_bit4ix,r_bit4ix,r_bit4ix,r_bit4ix,r_bit4ix,r_bit4ix ;DDCB60
  6181.     DW    r_bit5ix,r_bit5ix,r_bit5ix,r_bit5ix,r_bit5ix,r_bit5ix,r_bit5ix,r_bit5ix ;DDCB68
  6182.     DW    r_bit6ix,r_bit6ix,r_bit6ix,r_bit6ix,r_bit6ix,r_bit6ix,r_bit6ix,r_bit6ix ;DDCB70
  6183.     DW    r_bit7ix,r_bit7ix,r_bit7ix,r_bit7ix,r_bit7ix,r_bit7ix,r_bit7ix,r_bit7ix ;DDCB78
  6184.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res0ix,r_iDDCB        ;DDCB80
  6185.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res1ix,r_iDDCB        ;DDCB88
  6186.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res2ix,r_iDDCB        ;DDCB90
  6187.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res3ix,r_iDDCB        ;DDCB98
  6188.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res4ix,r_iDDCB        ;DDCBA0
  6189.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res5ix,r_iDDCB        ;DDCBA8
  6190.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res6ix,r_iDDCB        ;DDCBB0
  6191.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_res7ix,r_iDDCB        ;DDCBB8
  6192.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set0ix,r_iDDCB        ;DDCBC0
  6193.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set1ix,r_iDDCB        ;DDCBC8
  6194.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set2ix,r_iDDCB        ;DDCBD0
  6195.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set3ix,r_iDDCB        ;DDCBD8
  6196.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set4ix,r_iDDCB        ;DDCBE0
  6197.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set5ix,r_iDDCB        ;DDCBE8
  6198.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set6ix,r_iDDCB        ;DDCBF0
  6199.     DW    r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_iDDCB,r_set7ix,r_iDDCB        ;DDCBF8
  6200.  
  6201. LABEL rEDoptab WORD
  6202.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED00
  6203.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED08
  6204.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED10
  6205.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED18
  6206.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED20
  6207.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED28
  6208.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED30
  6209.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED38
  6210.     DW    r_inbc,r_outcb,r_dsbbb,r_sbcd,r_nega,r_zretn,r_im0,r_moveia             ;ED40
  6211.     DW    r_incc,r_outcc,r_dadcb,r_lbcd,r_nega,r_reti,r_illgED,r_movera           ;ED48
  6212.     DW    r_indc,r_outcd,r_dsbbd,r_sded,r_nega,r_illgED,r_im1,r_moveai            ;ED50
  6213.     DW    r_inec,r_outce,r_dadcd,r_lded,r_nega,r_illgED,r_im2,r_movear            ;ED58
  6214.     DW    r_inhc,r_outch,r_dsbbh,r_shldz,r_nega,r_illgED,r_illgED,r_rrd           ;ED60
  6215.     DW    r_inlc,r_outcl,r_dadch,r_lhld,r_nega,r_illgED,r_illgED,r_rld            ;ED68
  6216.     DW    r_inmc,r_outcm,r_dsbbs,r_sspd,r_nega,r_illgED,r_illgED,r_illgED         ;ED70
  6217.     DW    r_inac,r_outca,r_dadcs,r_lspd,r_nega,r_illgED,r_illgED,r_illgED         ;ED78
  6218.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED80
  6219.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED88
  6220.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED90
  6221.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;ED98
  6222.     DW    r_ldi,r_cmpi,r_ini,r_outi,r_illgED,r_illgED,r_illgED,r_illgED           ;EDA0
  6223.     DW    r_ldd,r_cpd,r_ind,r_outd,r_illgED,r_illgED,r_illgED,r_illgED            ;EDA8
  6224.     DW    r_ldir,r_cpir,r_inir,r_otir,r_illgED,r_illgED,r_illgED,r_illgED         ;EDB0
  6225.     DW    r_lddr,r_cpdr,r_indr,r_otdr,r_illgED,r_illgED,r_illgED,r_illgED         ;EDB8
  6226.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDC0
  6227.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDC8
  6228.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDD0
  6229.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDD8
  6230.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDE0
  6231.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDE8
  6232.     DW    r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED,r_illgED ;EDF0
  6233.     DW    r_illgED,r_illgED,r_illgED,CASInOpen,CASCheck,CASWrite,CASRead,r_spcED  ;EDF8
  6234.  
  6235. LABEL rFDoptab WORD
  6236.     DW    r_nop00,r_lxib,r_staxb,r_inxb,r_inrb,r_dcrb,r_mvih,r_rlc                ;DD00
  6237.     DW    r_exaf,r_dadiyb,r_ldaxb,r_dcxb,r_inrc,r_dcrc,r_mvic,r_rrc               ;DD08
  6238.     DW    r_djnz,r_lxid,r_staxd,r_inxd,r_inrd,r_dcrd,r_mvid,r_ral                 ;DD10
  6239.     DW    r_jr,r_dadiyd,r_ldaxd,r_dcxd,r_inre,r_dcre,r_mvie,r_rar                 ;DD18
  6240.     DW    r_jrnz,r_lxiiy,r_siyd,r_inxiy,r_inryh,r_dcryh,r_mviyh,r_daaz            ;DD20
  6241.     DW    r_jrz,r_dadiyy,r_liyd,r_dcxiy,r_inryl,r_dcryl,r_mviyl,r_cma             ;DD28
  6242.     DW    r_jrnc,r_lxis,r_sta,r_inxs,r_inriy,r_dcriy,r_mviiy,r_stcz               ;DD30
  6243.     DW    r_jrc,r_dadiys,r_lda,r_dcxs,r_inra,r_dcra,r_mvia,r_cmcz                 ;DD38
  6244.     DW    r_movebb,r_movebc,r_movebd,r_movebe,r_movbyh,r_movbyl,r_movbiy,r_moveba ;DD40
  6245.     DW    r_movecb,r_movecc,r_movecd,r_movece,r_movcyh,r_movcyl,r_movciy,r_moveca ;DD48
  6246.     DW    r_movedb,r_movedc,r_movedd,r_movede,r_movdyh,r_movdyl,r_movdiy,r_moveda ;DD50
  6247.     DW    r_moveeb,r_moveec,r_moveed,r_moveee,r_moveyh,r_moveyl,r_moveiy,r_moveea ;DD58
  6248.     DW    r_movyhb,r_movyhc,r_movyhd,r_movyhe,r_mvyhyh,r_mvyhyl,r_movhiy,r_movyha ;DD60
  6249.     DW    r_movylb,r_movylc,r_movyld,r_movyle,r_mvylyh,r_mvylyl,r_movliy,r_movyla ;DD68
  6250.     DW    r_moviyb,r_moviyc,r_moviyd,r_moviye,r_moviyh,r_moviyl,r_halt,r_moviya   ;DD70
  6251.     DW    r_moveab,r_moveac,r_movead,r_moveae,r_movayh,r_movayl,r_movaiy,r_moveaa ;DD78
  6252.     DW    r_addb,r_addc,r_addd,r_adde,r_addyh,r_addyl,r_addiy,r_adda              ;DD80
  6253.     DW    r_adcb,r_adcc,r_adcd,r_adce,r_adcyh,r_adcyl,r_adciy,r_adca              ;DD88
  6254.     DW    r_subb,r_subc,r_subd,r_sube,r_subyh,r_subyl,r_subiy,r_suba              ;DD90
  6255.     DW    r_sbbb,r_sbbc,r_sbbd,r_sbbe,r_sbbyh,r_sbbyl,r_sbbiy,r_sbba              ;DD98
  6256.     DW    r_andb,r_andc,r_andd,r_ande,r_anayh,r_anayl,r_anaiy,r_anda              ;DDA0
  6257.     DW    r_xrab,r_xrac,r_xrad,r_xrae,r_xrayh,r_xrayl,r_xraiy,r_xraa              ;DDA8
  6258.     DW    r_orab,r_orac,r_orad,r_orae,r_orayh,r_orayl,r_oraiy,r_oraa              ;DDB0
  6259.     DW    r_cmpb,r_cmpc,r_cmpd,r_cmpe,r_cmpyh,r_cmpyl,r_cmpiy,r_cmpaa             ;DDB8
  6260.     DW    r_rnz,r_popb,r_jnzz,r_jmpa,r_cnz,r_pushb,r_adi,r_rst0                   ;DDC0
  6261.     DW    r_rz,r_retz,r_jzz,prFDCB,r_cz,r_callz,r_aci,r_rst1                      ;DDC8
  6262.     DW    r_rnc,r_popd,r_jncz,r_outz,r_cnc,r_pushd,r_sui,r_rst2                   ;DDD0
  6263.     DW    r_rc,r_exx,r_jcz,r_inz,r_cc,preDD,r_sbi,r_rst3                          ;DDD8
  6264.     DW    r_rpo,r_popiy,r_jpoz,r_xtiy,r_cpo,r_pushiy,r_ani,r_rst4                 ;DDE0
  6265.     DW    r_rpe,r_pciy,r_jpez,r_xchgz,r_cpe,preED,r_xri,r_rst5                    ;DDE8
  6266.     DW    r_rp,r_popp,r_jpz,r_diz,r_cp,r_pushp,r_oria,r_rst6                      ;DDF0
  6267.     DW    r_rm,r_spiy,r_jmz,r_ei,r_cm,preFD,r_cpi,r_rst7                          ;DDF8
  6268.  
  6269. sAFx    dw      1
  6270. sBCx    dw      1
  6271. sDEx    dw      1
  6272. sHLx    dw      1
  6273. sRF     dw      1
  6274. srFhi   dw      0
  6275. srI     dw      0
  6276.  
  6277. imode   dw      0
  6278.  
  6279. LABEL ix WORD
  6280. xl      db      ?
  6281. xh      db      ?
  6282.  
  6283. LABEL iy WORD
  6284. yl      db      ?
  6285. yh      db      ?
  6286.  
  6287. sIFF1   db      0
  6288. sIFF2   db      0
  6289.  
  6290. simstack dw     ?
  6291.  
  6292. intflag dw      0
  6293. haltactive dw   0
  6294.  
  6295. maxints    dw   0       ; kludge value
  6296.  
  6297. linescount dw   0
  6298. scrline    dw   0       ; only for full screen VESA mode
  6299.  
  6300. clocks     dw   0
  6301. count52    dw   0
  6302. missed     dw   0
  6303. hadffly    dw   0
  6304. scrptr     dw   0
  6305. cpcptr     dw   0
  6306. cpclinbase dw   0
  6307. rasterline dw   0
  6308. charline   dw   0
  6309. inborder   dw   0
  6310.  
  6311. drawing    dw   0
  6312. drawstop   dw   0
  6313.  
  6314. hscroll    dw   0
  6315. vscroll    dw   0
  6316. skiplines  dw   0
  6317. pageinc    dw   0
  6318.  
  6319. synccount  dw   0
  6320.  
  6321. crtcvsync   dw  0
  6322. crtcmaxslin dw  0
  6323. crtcvtadj   dw  0
  6324. drawwidth   dw  0
  6325.  
  6326. ;intadj      dw  0
  6327.  
  6328. ENDS
  6329. SEGMENT _stack PARA STACK 'STACK'
  6330. ENDS
  6331.  
  6332. END
  6333.  
  6334.