home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / S / Z80SIM.ARC / CODE8086.Z80 < prev    next >
Text File  |  1991-11-16  |  16KB  |  1,210 lines

  1. ;        *** CODE8086.Z80 ***    VERSION 1.0    09/25/84
  2. ;    LAST EDIT 9/25/84
  3. ;
  4. ;    8086 INSTRUCTIONS TO EMULATE Z80 OP CODES
  5. ;
  6. CODE00:                    ;NOP
  7.     RET
  8. CODE01:                    ;LD BC,nnnn
  9.     INC    SI
  10.     INC    SI
  11.     MOV    Z_BC,BX
  12.     SAHF
  13.     RET
  14. CODE02:                    ;LD (BC),A
  15.     MOV    BX,Z_BC
  16.     MOV    AL,Z_A
  17.     MOV    ES:[BX],AL
  18.     RET
  19. CODE03:                    ;INC BC
  20.     INC    Z_BC
  21.     SAHF
  22.     RET
  23. CODE04:                    ;INC B
  24.     INC    Z_B
  25.     RET
  26. CODE05:                    ;DEC B
  27.     DEC    Z_B
  28.     RET
  29. CODE06:                    ;LD B,nn
  30.     INC    SI
  31.     MOV    Z_B,BL
  32.     SAHF
  33.     RET
  34. CODE07:                    ;RLCA
  35.     ROL    Z_A,1
  36.     RET
  37. CODE08:                            ;EX AF,AF'
  38.     MOV    AX,Z_AF
  39.     PUSH    AX
  40.     MOV    AX,Z_ALTA
  41.     MOV    Z_AF,AX
  42.     POP    AX
  43.     MOV    Z_ALTA,AX
  44.     RET
  45. CODE09:                    ;ADD HL,BC
  46.     PUSHF
  47.     MOV    AX,Z_BC
  48.     ADD    Z_HL,AX
  49.     JMP    CYSAV
  50. CODE0A:                    ;LD A,(BC)
  51.     MOV    BX,Z_BC
  52.     MOV    AL,ES:[BX]
  53.     MOV    Z_A,AL
  54.     RET
  55. CODE0B:                    ;DEC BC
  56.     DEC    Z_BC
  57.     SAHF
  58.     RET
  59. CODE0C:                    ;INC C
  60.     INC    Z_C
  61.     RET
  62. CODE0D:                    ;DEC C
  63.     DEC    Z_C
  64.     RET
  65. CODE0E:                    ;LD C,nn
  66.     INC    SI
  67.     MOV    Z_C,BL
  68.     SAHF
  69.     RET
  70. CODE0F:                    ;RRCA
  71.     RCR    Z_A,1
  72.     RET
  73. CODE10:                            ;DJNZ
  74.     INC    SI
  75.     DEC    Z_B
  76.     JNZ    RELJMP
  77.     RET
  78. CODE11:                    ;LD DE,nnnn
  79.     INC    SI
  80.     INC    SI
  81.     MOV    Z_DE,BX
  82.     SAHF
  83.     RET
  84. CODE12:                    ;LD (DE),A
  85.     MOV    BX,Z_DE
  86.     MOV    AL,Z_A
  87.     MOV    ES:[BX],AL
  88.     RET
  89. CODE13:                    ;INC DE
  90.     INC    Z_DE
  91.     SAHF
  92.     RET
  93. CODE14:                    ;INC D
  94.     INC    Z_D
  95.     RET
  96. CODE15:                    ;DEC D
  97.     DEC    Z_D
  98.     RET
  99. CODE16:                    ;LD D,nn
  100.     INC    SI
  101.     MOV    Z_D,BL
  102.     SAHF
  103.     RET
  104. CODE17:                    ;RLA
  105.     RCL    Z_A,1
  106.     RET
  107. CODE18:                            ;JR dd
  108.     INC    SI
  109.     SAHF
  110.     JMPS    RELJMP
  111. CODE19:                    ;ADD HL,DE
  112.     PUSHF
  113.     MOV    AX,Z_DE
  114.     ADD    Z_HL,AX
  115. CYSAV:    JC    CYSET
  116. CYCLR:    POPF
  117.     CLC
  118.     RET
  119. CYSET:    POPF
  120.     STC
  121.     RET
  122. CODE1A:                    ;LD A,(DE)
  123.     MOV    BX,Z_DE
  124.     MOV    AL,ES:[BX]
  125.     MOV    Z_A,AL
  126.     RET
  127. CODE1B:                    ;DEC DE
  128.     DEC    Z_DE
  129.     SAHF
  130.     RET
  131. CODE1C:                    ;INC E
  132.     INC    Z_E
  133.     RET
  134. CODE1D:                    ;DEC E
  135.     DEC    Z_E
  136.     RET
  137. CODE1E:                    ;LD E,nn
  138.     INC    SI
  139.     MOV    Z_E,BL
  140.     SAHF
  141.     RET
  142. CODE1F:                    ;RRA
  143.     RCR    Z_A,1
  144.     RET
  145. CODE20:                            ;JR NZ,dd
  146.     INC    SI
  147.     SAHF
  148.     JNZ    RELJMP
  149.     RET
  150. RELJMP:    MOV    AL,BL
  151.     CBW
  152.     ADD    AX,SI
  153.     MOV    SI,AX
  154.     RET
  155. CODE21:                    ;LD HL,nnnn
  156.     INC    SI
  157.     INC    SI
  158.     MOV    Z_HL,BX
  159.     SAHF
  160.     RET
  161. CODE22:                    ;LD (nnnn),HL
  162.     INC    SI
  163.     INC    SI
  164.     SAHF
  165.     MOV    AX,Z_HL
  166.     MOV    ES:[BX],AX
  167.     RET
  168. CODE23:                    ;INC HL
  169.     INC    Z_HL
  170.     SAHF
  171.     RET
  172. CODE24:                    ;INC H
  173.     INC    Z_H
  174.     RET
  175. CODE25:                    ;DEC H
  176.     DEC    Z_H
  177.     RET
  178. CODE26:                    ;LD H,nn
  179.     INC    SI
  180.     MOV    Z_H,BL
  181.     SAHF
  182.     RET
  183. CODE27:                    ;DAA
  184.     MOV    AL,Z_A
  185.     DAA
  186.     MOV    Z_A,AL
  187.     RET
  188. CODE28:                            ;JR Z,dd
  189.     INC    SI
  190.     SAHF
  191.     JZ    RELJMP
  192.     RET
  193. CODE29:                    ;ADD HL,HL
  194.     PUSHF
  195.     MOV    AX,Z_HL
  196.     ADD    Z_HL,AX
  197.     JMP    CYSAV
  198. CODE2A:                    ;LD HL,(nnnn)
  199.     INC    SI
  200.     INC    SI
  201.     SAHF
  202.     MOV    AX,ES:[BX]
  203.     MOV    Z_HL,AX
  204.     RET
  205. CODE2B:                    ;DEC HL
  206.     DEC    Z_HL
  207.     SAHF
  208.     RET
  209. CODE2C:                    ;INC L
  210.     INC    Z_L
  211.     RET
  212. CODE2D:                    ;DEC L
  213.     DEC    Z_L
  214.     RET
  215. CODE2E:                    ;LD L,nn
  216.     INC    SI
  217.     MOV    Z_L,BL
  218.     SAHF
  219.     RET
  220. CODE2F:                    ;CPL
  221.     XOR    Z_A,0FFH
  222.     RET
  223. CODE30:                            ;JR NC,dd
  224.     INC    SI
  225.     SAHF
  226.     JNC    RELJMP
  227.     RET
  228. RJMP2:    JMPS    RELJMP
  229. CODE31:                    ;LD SP,nnnn
  230.     INC    SI
  231.     INC    SI
  232.     MOV    Z_SP,BX
  233.     SAHF
  234.     RET
  235. CODE32:                    ;LD (nnnn),A
  236.     INC    SI
  237.     INC    SI
  238.     MOV    AL,Z_A
  239.     MOV    ES:[BX],AL
  240.     SAHF
  241.     RET
  242. CODE33:                    ;INC SP
  243.     INC    Z_SP
  244.     SAHF
  245.     RET
  246. CODE34:                    ;INC (HL)
  247.     MOV    BX,Z_HL
  248.     INC    ES: BYTE PTR [BX]
  249.     RET
  250. CODE35:                    ;DEC (HL)
  251.     MOV    BX,Z_HL
  252.     DEC    ES: BYTE PTR [BX]
  253.     RET
  254. CODE36:                    ;LD (HL),nn
  255.     INC    SI
  256.     MOV    AL,BL
  257.     MOV    BX,Z_HL
  258.     MOV    ES:[BX],AL
  259.     SAHF
  260.     RET
  261. CODE37:                    ;SCF
  262.     STC
  263.     RET
  264. CODE38:                            ;JR C,dd
  265.     INC    SI
  266.     SAHF
  267.     JC    RJMP2
  268.     RET
  269. CODE39:                    ;ADD HL,SP
  270.     PUSHF
  271.     MOV    AX,Z_SP
  272.     ADD    Z_HL,AX
  273.     JMP    CYSAV
  274. CODE3A:                    ;LD A,(nnnn)
  275.     INC    SI
  276.     INC    SI
  277.     MOV    AL,ES:[BX]
  278.     MOV    Z_A,AL
  279.     SAHF
  280.     RET
  281. CODE3B:                    ;DEC SP
  282.     DEC    Z_SP
  283.     SAHF
  284.     RET
  285. CODE3C:                    ;INC A
  286.     INC    Z_A
  287.     RET
  288. CODE3D:                    ;DEC A
  289.     DEC    Z_A
  290.     RET
  291. CODE3E:                    ;LD A,nn
  292.     INC    SI
  293.     MOV    Z_A,BL
  294.     SAHF
  295.     RET
  296. CODE3F:                    ;CCF
  297.     CMC
  298.     RET
  299. CODE40:                    ;LD B,B
  300.     MOV    AL,Z_B
  301.     MOV    Z_B,AL
  302.     RET
  303. CODE41:                    ;LD B,C
  304.     MOV    AL,Z_C
  305.     MOV    Z_B,AL
  306.     RET
  307. CODE42:                    ;LD B,D
  308.     MOV    AL,Z_D
  309.     MOV    Z_B,AL
  310.     RET
  311. CODE43:                    ;LD B,E
  312.     MOV    AL,Z_E
  313.     MOV    Z_B,AL
  314.     RET
  315. CODE44:                    ;LD B,H
  316.     MOV    AL,Z_H
  317.     MOV    Z_B,AL
  318.     RET
  319. CODE45:                    ;LD B,L
  320.     MOV    AL,Z_L
  321.     MOV    Z_B,AL
  322.     RET
  323. CODE46:                    ;LD B,(HL)
  324.     MOV    BX,Z_HL
  325.     MOV    AL,ES:[BX]
  326.     MOV    Z_B,AL
  327.     RET
  328. CODE47:                    ;LD B,A
  329.     MOV    AL,Z_A
  330.     MOV    Z_B,AL
  331.     RET
  332. CODE48:                    ;LD C,B
  333.     MOV    AL,Z_B
  334.     MOV    Z_C,AL
  335.     RET
  336. CODE49:                    ;LD C,C
  337.     MOV    AL,Z_C
  338.     MOV    Z_C,AL
  339.     RET
  340. CODE4A:                    ;LD C,D
  341.     MOV    AL,Z_D
  342.     MOV    Z_C,AL
  343.     RET
  344. CODE4B:                    ;LD C,E
  345.     MOV    AL,Z_E
  346.     MOV    Z_C,AL
  347.     RET
  348. CODE4C:                    ;LD C,H
  349.     MOV    AL,Z_H
  350.     MOV    Z_C,AL
  351.     RET
  352. CODE4D:                    ;LD C,L
  353.     MOV    AL,Z_L
  354.     MOV    Z_C,AL
  355.     RET
  356. CODE4E:                    ;LD C,(HL)
  357.     MOV    BX,Z_HL
  358.     MOV    AL,ES:[BX]
  359.     MOV    Z_C,AL
  360.     RET
  361. CODE4F:                    ;LD C,A
  362.     MOV    AL,Z_A
  363.     MOV    Z_C,AL
  364.     RET
  365. CODE50:                    ;LD D,B
  366.     MOV    AL,Z_B
  367.     MOV    Z_D,AL
  368.     RET
  369. CODE51:                    ;LD D,C
  370.     MOV    AL,Z_C
  371.     MOV    Z_D,AL
  372.     RET
  373. CODE52:                    ;LD D,D
  374.     MOV    AL,Z_D
  375.     MOV    Z_D,AL
  376.     RET
  377. CODE53:                    ;LD D,E
  378.     MOV    AL,Z_E
  379.     MOV    Z_D,AL
  380.     RET
  381. CODE54:                    ;LD D,H
  382.     MOV    AL,Z_H
  383.     MOV    Z_D,AL
  384.     RET
  385. CODE55:                    ;LD D,L
  386.     MOV    AL,Z_L
  387.     MOV    Z_D,AL
  388.     RET
  389. CODE56:                    ;LD D,(HL)
  390.     MOV    BX,Z_HL
  391.     MOV    AL,ES:[BX]
  392.     MOV    Z_D,AL
  393.     RET
  394. CODE57:                    ;LD D,A
  395.     MOV    AL,Z_A
  396.     MOV    Z_D,AL
  397.     RET
  398. CODE58:                    ;LD E,B
  399.     MOV    AL,Z_B
  400.     MOV    Z_E,AL
  401.     RET
  402. CODE59:                    ;LD E,C
  403.     MOV    AL,Z_C
  404.     MOV    Z_E,AL
  405.     RET
  406. CODE5A:                    ;LD E,D
  407.     MOV    AL,Z_D
  408.     MOV    Z_E,AL
  409.     RET
  410. CODE5B:                    ;LD E,E
  411.     MOV    AL,Z_E
  412.     MOV    Z_E,AL
  413.     RET
  414. CODE5C:                    ;LD E,H
  415.     MOV    AL,Z_H
  416.     MOV    Z_E,AL
  417.     RET
  418. CODE5D:                    ;LD E,L
  419.     MOV    AL,Z_L
  420.     MOV    Z_E,AL
  421.     RET
  422. CODE5E:                    ;LD E,(HL)
  423.     MOV    BX,Z_HL
  424.     MOV    AL,ES:[BX]
  425.     MOV    Z_E,AL
  426.     RET
  427. CODE5F:                    ;LD E,A
  428.     MOV    AL,Z_A
  429.     MOV    Z_E,AL
  430.     RET
  431. CODE60:                    ;LD H,B
  432.     MOV    AL,Z_B
  433.     MOV    Z_H,AL
  434.     RET
  435. CODE61:                    ;LD H,C
  436.     MOV    AL,Z_C
  437.     MOV    Z_H,AL
  438.     RET
  439. CODE62:                    ;LD H,D
  440.     MOV    AL,Z_D
  441.     MOV    Z_H,AL
  442.     RET
  443. CODE63:                    ;LD H,E
  444.     MOV    AL,Z_E
  445.     MOV    Z_H,AL
  446.     RET
  447. CODE64:                    ;LD H,H
  448.     MOV    AL,Z_H
  449.     MOV    Z_H,AL
  450.     RET
  451. CODE65:                    ;LD H,L
  452.     MOV    AL,Z_L
  453.     MOV    Z_H,AL
  454.     RET
  455. CODE66:                    ;LD H,(HL)
  456.     MOV    BX,Z_HL
  457.     MOV    AL,ES:[BX]
  458.     MOV    Z_H,AL
  459.     RET
  460. CODE67:                    ;LD H,A
  461.     MOV    AL,Z_A
  462.     MOV    Z_H,AL
  463.     RET
  464. CODE68:                    ;LD L,B
  465.     MOV    AL,Z_B
  466.     MOV    Z_L,AL
  467.     RET
  468. CODE69:                    ;LD L,C
  469.     MOV    AL,Z_C
  470.     MOV    Z_L,AL
  471.     RET
  472. CODE6A:                    ;LD L,D
  473.     MOV    AL,Z_D
  474.     MOV    Z_L,AL
  475.     RET
  476. CODE6B:                    ;LD L,E
  477.     MOV    AL,Z_E
  478.     MOV    Z_L,AL
  479.     RET
  480. CODE6C:                    ;LD L,H
  481.     MOV    AL,Z_H
  482.     MOV    Z_L,AL
  483.     RET
  484. CODE6D:                    ;LD L,L
  485.     MOV    AL,Z_L
  486.     MOV    Z_L,AL
  487.     RET
  488. CODE6E:                    ;LD L,(HL)
  489.     MOV    BX,Z_HL
  490.     MOV    AL,ES:[BX]
  491.     MOV    Z_L,AL
  492.     RET
  493. CODE6F:                    ;LD L,A
  494.     MOV    AL,Z_A
  495.     MOV    Z_L,AL
  496.     RET
  497. CODE70:                    ;LD (HL),B
  498.     MOV    BX,Z_HL
  499.     MOV    AL,Z_B
  500.     MOV    ES:[BX],AL
  501.     RET
  502. CODE71:                    ;LD (HL),C
  503.     MOV    BX,Z_HL
  504.     MOV    AL,Z_C
  505.     MOV    ES:[BX],AL
  506.     RET
  507. CODE72:                    ;LD (HL),D
  508.     MOV    BX,Z_HL
  509.     MOV    AL,Z_D
  510.     MOV    ES:[BX],AL
  511.     RET
  512. CODE73:                    ;LD (HL),E
  513.     MOV    BX,Z_HL
  514.     MOV    AL,Z_E
  515.     MOV    ES:[BX],AL
  516.     RET
  517. CODE74:                    ;LD (HL),H
  518.     MOV    BX,Z_HL
  519.     MOV    AL,Z_H
  520.     MOV    ES:[BX],AL
  521.     RET
  522. CODE75:                    ;LD (HL),L
  523.     MOV    BX,Z_HL
  524.     MOV    AL,Z_L
  525.     MOV    ES:[BX],AL
  526.     RET
  527. CODE76:                    ;HALT
  528.     HLT
  529.     RET
  530. CODE77:                    ;LD (HL),A
  531.     MOV    BX,Z_HL
  532.     MOV    AL,Z_A
  533.     MOV    ES:[BX],AL
  534.     RET
  535. CODE78:                    ;LD A,B
  536.     MOV    AL,Z_B
  537.     MOV    Z_A,AL
  538.     RET
  539. CODE79:                    ;LD A,C
  540.     MOV    AL,Z_C
  541.     MOV    Z_A,AL
  542.     RET
  543. CODE7A:                    ;LD A,D
  544.     MOV    AL,Z_D
  545.     MOV    Z_A,AL
  546.     RET
  547. CODE7B:                    ;LD A,E
  548.     MOV    AL,Z_E
  549.     MOV    Z_A,AL
  550.     RET
  551. CODE7C:                    ;LD A,H
  552.     MOV    AL,Z_H
  553.     MOV    Z_A,AL
  554.     RET
  555. CODE7D:                    ;LD A,L
  556.     MOV    AL,Z_L
  557.     MOV    Z_A,AL
  558.     RET
  559. CODE7E:                    ;LD A,(HL)
  560.     MOV    BX,Z_HL
  561.     MOV    AL,ES:[BX]
  562.     MOV    Z_A,AL
  563.     RET
  564. CODE7F:                    ;LD A,A
  565.     MOV    AL,Z_A
  566.     MOV    Z_A,AL
  567.     RET
  568. CODE80:                    ;ADD A,B
  569.     MOV    AL,Z_B
  570.     ADD    Z_A,AL
  571.     RET
  572. CODE81:                    ;ADD A,C
  573.     MOV    AL,Z_C
  574.     ADD    Z_A,AL
  575.     RET
  576. CODE82:                    ;ADD A,D
  577.     MOV    AL,Z_D
  578.     ADD    Z_A,AL
  579.     RET
  580. CODE83:                    ;ADD A,E
  581.     MOV    AL,Z_E
  582.     ADD    Z_A,AL
  583.     RET
  584. CODE84:                    ;ADD A,H
  585.     MOV    AL,Z_H
  586.     ADD    Z_A,AL
  587.     RET
  588. CODE85:                    ;ADD A,L
  589.     MOV    AL,Z_L
  590.     ADD    Z_A,AL
  591.     RET
  592. CODE86:                    ;ADD A,(HL)
  593.     MOV    BX,Z_HL
  594.     MOV    AL,ES:[BX]
  595.     ADD    Z_A,AL
  596.     RET
  597. CODE87:                    ;ADD A,A
  598.     MOV    AL,Z_A
  599.     ADD    Z_A,AL
  600.     RET
  601. CODE88:                    ;ADC A,B
  602.     MOV    AL,Z_B
  603.     ADC    Z_A,AL
  604.     RET
  605. CODE89:                    ;ADC A,C
  606.     MOV    AL,Z_C
  607.     ADC    Z_A,AL
  608.     RET
  609. CODE8A:                    ;ADC A,D
  610.     MOV    AL,Z_D
  611.     ADC    Z_A,AL
  612.     RET
  613. CODE8B:                    ;ADC A,E
  614.     MOV    AL,Z_E
  615.     ADC    Z_A,AL
  616.     RET
  617. CODE8C:                    ;ADC A,H
  618.     MOV    AL,Z_H
  619.     ADC    Z_A,AL
  620.     RET
  621. CODE8D:                    ;ADC A,L
  622.     MOV    AL,Z_L
  623.     ADC    Z_A,AL
  624.     RET
  625. CODE8E:                    ;ADC A,(HL)
  626.     MOV    BX,Z_HL
  627.     MOV    AL,ES:[BX]
  628.     ADC    Z_A,AL
  629.     RET
  630. CODE8F:                    ;ADC A,A
  631.     MOV    AL,Z_A
  632.     ADC    Z_A,AL
  633.     RET
  634. CODE90:                    ;SUB B
  635.     MOV    AL,Z_B
  636.     SUB    Z_A,AL
  637.     RET
  638. CODE91:                    ;SUB C
  639.     MOV    AL,Z_C
  640.     SUB    Z_A,AL
  641.     RET
  642. CODE92:                    ;SUB D
  643.     MOV    AL,Z_D
  644.     SUB    Z_A,AL
  645.     RET
  646. CODE93:                    ;SUB E
  647.     MOV    AL,Z_E
  648.     SUB    Z_A,AL
  649.     RET
  650. CODE94:                    ;SUB H
  651.     MOV    AL,Z_H
  652.     SUB    Z_A,AL
  653.     RET
  654. CODE95:                    ;SUB L
  655.     MOV    AL,Z_L
  656.     SUB    Z_A,AL
  657.     RET
  658. CODE96:                    ;SUB (HL)
  659.     MOV    BX,Z_HL
  660.     MOV    AL,ES:[BX]
  661.     SUB    Z_A,AL
  662.     RET
  663. CODE97:                    ;SUB A
  664.     MOV    AL,Z_A
  665.     SUB    Z_A,AL
  666.     RET
  667. CODE98:                    ;SBC A,B
  668.     MOV    AL,Z_B
  669.     SBB    Z_A,AL
  670.     RET
  671. CODE99:                    ;SBC A,C
  672.     MOV    AL,Z_C
  673.     SBB    Z_A,AL
  674.     RET
  675. CODE9A:                    ;SBC A,D
  676.     MOV    AL,Z_D
  677.     SBB    Z_A,AL
  678.     RET
  679. CODE9B:                    ;SBC A,E
  680.     MOV    AL,Z_E
  681.     SBB    Z_A,AL
  682.     RET
  683. CODE9C:                    ;SBC A,H
  684.     MOV    AL,Z_H
  685.     SBB    Z_A,AL
  686.     RET
  687. CODE9D:                    ;SBC A,L
  688.     MOV    AL,Z_L
  689.     SBB    Z_A,AL
  690.     RET
  691. CODE9E:                    ;SBC A,(HL)
  692.     MOV    BX,Z_HL
  693.     MOV    AL,ES:[BX]
  694.     SBB    Z_A,AL
  695.     RET
  696. CODE9F:                    ;SBC A,A
  697.     MOV    AL,Z_A
  698.     SBB    Z_A,AL
  699.     RET
  700. CODEA0:                    ;AND B
  701.     MOV    AL,Z_B
  702.     AND    Z_A,AL
  703.     RET
  704. CODEA1:                    ;AND C
  705.     MOV    AL,Z_C
  706.     AND    Z_A,AL
  707.     RET
  708. CODEA2:                    ;AND D
  709.     MOV    AL,Z_D
  710.     AND    Z_A,AL
  711.     RET
  712. CODEA3:                    ;AND E
  713.     MOV    AL,Z_E
  714.     AND    Z_A,AL
  715.     RET
  716. CODEA4:                    ;AND H
  717.     MOV    AL,Z_H
  718.     AND    Z_A,AL
  719.     RET
  720. CODEA5:                    ;AND L
  721.     MOV    AL,Z_L
  722.     AND    Z_A,AL
  723.     RET
  724. CODEA6:                    ;AND (HL)
  725.     MOV    BX,Z_HL
  726.     MOV    AL,ES:[BX]
  727.     AND    Z_A,AL
  728.     RET
  729. CODEA7:                    ;AND A
  730.     MOV    AL,Z_A
  731.     AND    Z_A,AL
  732.     RET
  733. CODEA8:                    ;XOR B
  734.     MOV    AL,Z_B
  735.     XOR    Z_A,AL
  736.     RET
  737. CODEA9:                    ;XOR C
  738.     MOV    AL,Z_C
  739.     XOR    Z_A,AL
  740.     RET
  741. CODEAA:                    ;XOR D
  742.     MOV    AL,Z_D
  743.     XOR    Z_A,AL
  744.     RET
  745. CODEAB:                    ;XOR E
  746.     MOV    AL,Z_E
  747.     XOR    Z_A,AL
  748.     RET
  749. CODEAC:                    ;XOR H
  750.     MOV    AL,Z_H
  751.     XOR    Z_A,AL
  752.     RET
  753. CODEAD:                    ;XOR L
  754.     MOV    AL,Z_L
  755.     XOR    Z_A,AL
  756.     RET
  757. CODEAE:                    ;XOR (HL)
  758.     MOV    BX,Z_HL
  759.     MOV    AL,ES:[BX]
  760.     XOR    Z_A,AL
  761.     RET
  762. CODEAF:                    ;XOR A
  763.     MOV    AL,Z_A
  764.     XOR    Z_A,AL
  765.     RET
  766. CODEB0:                    ;OR B
  767.     MOV    AL,Z_B
  768.     OR    Z_A,AL
  769.     RET
  770. CODEB1:                    ;OR C
  771.     MOV    AL,Z_C
  772.     OR    Z_A,AL
  773.     RET
  774. CODEB2:                    ;OR D
  775.     MOV    AL,Z_D
  776.     OR    Z_A,AL
  777.     RET
  778. CODEB3:                    ;OR E
  779.     MOV    AL,Z_E
  780.     OR    Z_A,AL
  781.     RET
  782. CODEB4:                    ;OR H
  783.     MOV    AL,Z_H
  784.     OR    Z_A,AL
  785.     RET
  786. CODEB5:                    ;OR L
  787.     MOV    AL,Z_L
  788.     OR    Z_A,AL
  789.     RET
  790. CODEB6:                    ;OR (HL)
  791.     MOV    BX,Z_HL
  792.     MOV    AL,ES:[BX]
  793.     OR    Z_A,AL
  794.     RET
  795. CODEB7:                    ;OR A
  796.     MOV    AL,Z_A
  797.     OR    Z_A,AL
  798.     RET
  799. CODEB8:                    ;CP B
  800.     MOV    AL,Z_B
  801.     CMP    Z_A,AL
  802.     RET
  803. CODEB9:                    ;CP C
  804.     MOV    AL,Z_C
  805.     CMP    Z_A,AL
  806.     RET
  807. CODEBA:                    ;CP D
  808.     MOV    AL,Z_D
  809.     CMP    Z_A,AL
  810.     RET
  811. CODEBB:                    ;CP E
  812.     MOV    AL,Z_E
  813.     CMP    Z_A,AL
  814.     RET
  815. CODEBC:                    ;CP H
  816.     MOV    AL,Z_H
  817.     CMP    Z_A,AL
  818.     RET
  819. CODEBD:                    ;CP L
  820.     MOV    AL,Z_L
  821.     CMP    Z_A,AL
  822.     RET
  823. CODEBE:                    ;CP (HL)
  824.     MOV    BX,Z_HL
  825.     MOV    AL,ES:[BX]
  826.     CMP    Z_A,AL
  827.     RET
  828. CODEBF:                    ;CP A
  829.     MOV    AL,Z_A
  830.     CMP    Z_A,AL
  831.     RET
  832. CODEC0:                    ;RET NZ
  833.     JZ    RETC0
  834.     JMP    Z80_RET
  835. RETC0:    RET
  836. CODEC1:                    ;POP BC
  837.     CALL    Z80_POP
  838.     MOV    Z_BC,AX
  839.     RET
  840. CODEC2:                    ;JP NZ nnnn
  841.     INC    SI
  842.     INC    SI
  843.     SAHF
  844.     JZ    RETC2
  845.     MOV    SI,BX
  846. RETC2:    RET
  847. CODEC3:                    ;JP nnnn
  848.     MOV    SI,BX
  849.     RET
  850. CODEC4:                    ;CALL NZ,nnnn
  851.     INC    SI
  852.     INC    SI
  853.     SAHF
  854.     JZ    RETC4
  855.     JMP    Z80_CALL
  856. RETC4:    RET
  857. CODEC5:                    ;PUSH BC
  858.     MOV    AX,Z_BC
  859.     CALL    Z80_PUSH
  860.     RET
  861. CODEC6:                    ;ADD A,nn
  862.     INC    SI
  863.     ADD    Z_A,BL
  864.     RET
  865. CODEC7:                    ;RST 0
  866.     MOV    BX,0
  867.     JMP    Z80_CALL
  868.     RET
  869. CODEC8:                    ;RET Z
  870.     JNZ    RETC8
  871.     JMP    Z80_RET
  872. RETC8:    RET
  873. CODEC9:                    ;RET
  874.     JMP    Z80_RET
  875.     RET
  876. CODECA:                    ;JP Z,nnnn
  877.     INC    SI
  878.     INC    SI
  879.     SAHF
  880.     JNZ    RETCA
  881.     MOV    SI,BX
  882. RETCA:    RET
  883. CODECB:                            ;MULTIPLE
  884.     PUSH    AX
  885.     INC    SI        ;USED A BYTE
  886.     MOV    DI,BX
  887.     AND    DI,00FFH
  888.     SAL    DI,1
  889.     POP    AX
  890.     SAHF
  891.     MOV    CX,CBTBL[DI]
  892.     JMP    CX
  893. CODECC:                    ;CALL Z,nnnn
  894.     INC    SI
  895.     INC    SI
  896.     SAHF
  897.     JNZ    RETCC
  898.     JMP    Z80_CALL
  899. RETCC:    RET
  900. CODECD:                    ;CALL nnnn
  901.     INC    SI
  902.     INC    SI
  903.     SAHF
  904.     JMP    Z80_CALL
  905.     RET
  906. CODECE:                    ;ADC A,nn
  907.     INC    SI
  908.     ADC    Z_A,BL
  909.     RET
  910. CODECF:                    ;RST 8
  911.     MOV    BX,8
  912.     JMP    Z80_CALL
  913.     RET
  914. CODED0:                    ;RET NC
  915.     JC    RETD0
  916.     JMP    Z80_RET
  917. RETD0:    RET
  918. CODED1:                    ;POP DE
  919.     CALL    Z80_POP
  920.     MOV    Z_DE,AX
  921.     RET
  922. CODED2:                    ;JP NC,nnnn
  923.     INC    SI
  924.     INC    SI
  925.     SAHF
  926.     JC    RETD2
  927.     MOV    SI,BX
  928. RETD2:    RET
  929. CODED3:                    ;OUT (nn),A
  930.     INC    SI
  931.     SAHF
  932.     MOV    DH,0
  933.     MOV    DL,BL
  934.     MOV    AL,Z_A
  935.     OUT    DX,AL
  936.     RET
  937. CODED4:                    ;CALL NC,nnnn
  938.     INC    SI
  939.     INC    SI
  940.     SAHF
  941.     JC    RETD4
  942.     JMP    Z80_CALL
  943. RETD4:    RET
  944. CODED5:                    ;PUSH DE
  945.     MOV    AX,Z_DE
  946.     CALL    Z80_PUSH
  947.     RET
  948. CODED6:                    ;SUB nn
  949.     INC    SI
  950.     SUB    Z_A,BL
  951.     RET
  952. CODED7:                    ;RST 10
  953.     MOV    BX,010H
  954.     JMP    Z80_CALL
  955.     RET
  956. CODED8:                    ;RET C
  957.     JNC    RETD8
  958.     JMP    Z80_RET
  959. RETD8:    RET
  960. CODED9:                            ;EXX
  961.     PUSH    DS
  962.     PUSH    ES
  963.     POP    DS
  964.     PUSH    SI
  965.     PUSH    DI
  966.     PUSH    CX
  967.     MOV    SI,Z_BC
  968.     MOV    DI,Z_TEMP
  969.     MOV    CX,3
  970.     REP    MOVSW
  971.     MOV    SI,Z_ALTR
  972.     MOV    DI,Z_BC
  973.     MOV    CX,3
  974.     REP    MOVSW
  975.     MOV    SI,Z_TEMP
  976.     MOV    DI,Z_ALTR
  977.     MOV    CX,3
  978.     REP    MOVSW
  979.     POP    CX
  980.     POP    DI
  981.     POP    SI
  982.     POP    DS
  983.     RET
  984. CODEDA:                    ;JP C,nnnn
  985.     INC    SI
  986.     INC    SI
  987.     SAHF
  988.     JNC    RETDA
  989.     MOV    SI,BX
  990. RETDA:    RET
  991. CODEDB:                    ;IN A,(nn)
  992.     INC    SI
  993.     SAHF
  994.     MOV    DH,0
  995.     MOV    DL,BL
  996.     IN    AL,DX
  997.     MOV    Z_A,AL
  998.     RET
  999. CODEDC:                    ;CALL C,nnnn
  1000.     INC    SI
  1001.     INC    SI
  1002.     SAHF
  1003.     JNC    RETDC
  1004.     JMP    Z80_CALL
  1005. RETDC:    RET
  1006. CODEDD:                            ;MULTIPLE
  1007.     JMP    Z80_NFG
  1008. CODEDE:                    ;SBC A,nn
  1009.     INC    SI
  1010.     SBB    Z_A,BL
  1011.     RET
  1012. CODEDF:                    ;RST 18
  1013.     MOV    BX,018H
  1014.     JMP    Z80_CALL
  1015.     RET
  1016. CODEE0:                    ;RET PO
  1017.     JPE    RETE0
  1018.     JMP    Z80_RET
  1019. RETE0:    RET
  1020. CODEE1:                    ;POP HL
  1021.     CALL    Z80_POP
  1022.     MOV    Z_HL,AX
  1023.     RET
  1024. CODEE2:                    ;JP PO,nnnn
  1025.     INC    SI
  1026.     INC    SI
  1027.     SAHF
  1028.     JPE    RETE2
  1029.     MOV    SI,BX
  1030. RETE2:    RET
  1031. CODEE3:                    ;EX (SP),HL
  1032.     MOV    AX,Z_HL
  1033.     MOV    BX,Z_SP
  1034.     XCHG    AX,ES:[BX]
  1035.     MOV    Z_HL,AX
  1036.     RET
  1037. CODEE4:                    ;CALL PO,nnnn
  1038.     INC    SI
  1039.     INC    SI
  1040.     SAHF
  1041.     JPE    RETE4
  1042.     JMP    Z80_CALL
  1043. RETE4:    RET
  1044. CODEE5:                    ;PUSH HL
  1045.     MOV    AX,Z_HL
  1046.     CALL    Z80_PUSH
  1047.     RET
  1048. CODEE6:                    ;AND nn
  1049.     INC    SI
  1050.     AND    Z_A,BL
  1051.     RET
  1052. CODEE7:                    ;RST 20
  1053.     MOV    BX,020H
  1054.     JMP    Z80_CALL
  1055.     RET
  1056. CODEE8:                    ;RET PE
  1057.     JPO    RETE8
  1058.     JMP    Z80_RET
  1059. RETE8:    RET
  1060. CODEE9:                    ;JP (HL)
  1061.     MOV    SI,Z_HL
  1062.     RET
  1063. CODEEA:                    ;JP PE nnnn
  1064.     INC    SI
  1065.     INC    SI
  1066.     SAHF
  1067.     JPO    RETEA
  1068.     MOV    SI,BX
  1069. RETEA:    RET
  1070. CODEEB:                    ;EX DE,HL
  1071.     MOV    AX,Z_HL
  1072.     XCHG    AX,Z_DE
  1073.     MOV    Z_HL,AX
  1074.     RET
  1075. CODEEC:                    ;CALL PE,nnnn
  1076.     INC    SI
  1077.     INC    SI
  1078.     SAHF
  1079.     JPO    RETEC
  1080.     JMP    Z80_CALL
  1081. RETEC:    RET
  1082. CODEED:                            ;MULTIPLE
  1083.     PUSH    AX
  1084.     INC    SI        ;USED A BYTE
  1085.     MOV    AX,BX
  1086.     AND    AX,007FH    ;SMALLER MAP
  1087.     SUB    AX,32
  1088.     ADD    AX,AX
  1089.     MOV    DI,AX
  1090.     POP    AX
  1091.     SAHF
  1092.     MOV    CX,EDTBL[DI]
  1093.     JMP    CX
  1094. CODEEE:                    ;XOR nn
  1095.     INC    SI
  1096.     XOR    Z_A,BL
  1097.     RET
  1098. CODEEF:                    ;RST 28
  1099.     MOV    BX,028H
  1100.     JMP    Z80_CALL
  1101.     RET
  1102. CODEF0:                    ;RET P
  1103.     JS    RETF0
  1104.     JMP    Z80_RET
  1105. RETF0:    RET
  1106. CODEF1:                    ;POP AF
  1107.     CALL    Z80_POP
  1108.     MOV    Z_A,AL
  1109.     SAHF
  1110.     RET
  1111. CODEF2:                    ;JP P,nnnn
  1112.     INC    SI
  1113.     INC    SI
  1114.     SAHF
  1115.     JS    RETF2
  1116.     MOV    SI,BX
  1117. RETF2:    RET
  1118. CODEF3:                    ;DI
  1119.     CLI
  1120.     RET
  1121. CODEF4:                    ;CALL P,nnnn
  1122.     INC    SI
  1123.     INC    SI
  1124.     SAHF
  1125.     JS    RETF4
  1126.     JMP    Z80_CALL
  1127. RETF4:    RET
  1128. CODEF5:                    ;PUSH AF
  1129.     LAHF
  1130.     MOV    AL,Z_A
  1131.     CALL    Z80_PUSH
  1132.     RET
  1133. CODEF6:                    ;OR nn
  1134.     INC    SI
  1135.     OR    Z_A,BL
  1136.     RET
  1137. CODEF7:                    ;RST 30
  1138.     MOV    BX,030H
  1139.     JMP    Z80_CALL
  1140.     RET
  1141. CODEF8:                    ;RET M
  1142.     JNS    RETF8
  1143.     JMP    Z80_RET
  1144. RETF8:    RET
  1145. CODEF9:                    ;LD SP,HL
  1146.     MOV    AX,Z_HL
  1147.     MOV    Z_SP,AX
  1148.     RET
  1149. CODEFA:                    ;JP M,nnnn
  1150.     INC    SI
  1151.     INC    SI
  1152.     SAHF
  1153.     JNS    RETFA
  1154.     MOV    SI,BX
  1155. RETFA:    RET
  1156. CODEFB:                    ;EI
  1157.     STI
  1158.     RET
  1159. CODEFC:                    ;CALL M,nnnn
  1160.     INC    SI
  1161.     INC    SI
  1162.     SAHF
  1163.     JNS    RETFC
  1164.     JMP    Z80_CALL
  1165. RETFC:    RET
  1166. CODEFD:                            ;MULTIPLE
  1167.     JMP    Z80_NFG
  1168. CODEFE:                    ;CP nn
  1169.     INC    SI
  1170.     CMP    Z_A,BL
  1171.     RET
  1172. CODEFF:                    ;RST 38
  1173.     MOV    BX,038H
  1174.     JMP    Z80_CALL
  1175.     RET
  1176. Z80_PUSH:
  1177.     PUSH    BX
  1178.     PUSHF
  1179.     DEC    Z_SP
  1180.     DEC    Z_SP
  1181.     MOV    BX,Z_SP
  1182.     MOV    ES:[BX],AX
  1183.     POPF
  1184.     POP    BX
  1185.     RET
  1186. Z80_POP:
  1187.     PUSH    BX
  1188.     PUSHF
  1189.     MOV    BX,Z_SP
  1190.     MOV    AX,ES:[BX]
  1191.     INC    Z_SP
  1192.     INC    Z_SP
  1193.     POPF
  1194.     POP    BX
  1195.     RET
  1196. Z80_CALL:
  1197.     MOV    AX,SI
  1198.     CALL    Z80_PUSH
  1199.     MOV    SI,BX
  1200.     RET
  1201. Z80_RET:
  1202.     CALL    Z80_POP
  1203.     MOV    SI,AX
  1204.     RET
  1205. Z80_NFG:                ;Z80 ONLY OP CODE DETECTED
  1206.     MOV    DX,OFFSET MSG_Z80_OP
  1207.     CALL    PRINT
  1208.     MOV    SI,0FFFFH        ;TERMINATE ON NEXT INSTRUCTION
  1209.     RET
  1210.