home *** CD-ROM | disk | FTP | other *** search
/ Dream 53 / Amiga_Dream_53.iso / Amiga / Emulateurs / AmiSuper2.lha / 6502.ASM next >
Assembly Source File  |  1998-06-08  |  59KB  |  3,798 lines

  1.     MACHINE 68020
  2.  
  3.     SECTION 6502,CODE
  4.  
  5.     XDEF    _JUMPTBL
  6.     XDEF    _START00
  7.     XDEF    _RESET00
  8.     XDEF    _PAUSE00
  9.     XREF    _rom
  10.     XREF    _scrn
  11.     XREF    _chars
  12.     XDEF    _screenwrite
  13.     XREF    _SIGMASK
  14.     XREF    _PROGCOUNT
  15.     XREF    _CINST
  16.     XREF    _READY
  17.     XREF    _TRACE
  18.     XREF    _CA
  19.     XREF    _CX
  20.     XREF    _CY
  21.     XREF    _CSP
  22.     XREF    _CP
  23.     XREF    _keyrows
  24.  
  25. DEEBUG    EQU    1        ; MAKE 0 TO DISABLE DEBUG CODE
  26. P65C02    EQU    0        ; MAKE 1 TO ALLOW 65C02 OPCODES
  27.  
  28.  
  29. _START00:
  30.     MOVEM.L    A0-A6/D0-D7,-(SP)
  31.  
  32.     MOVE.L    4,A6
  33.     MOVE.B    #-1,D0
  34.     JSR    -$014A(A6)    ; ALLOCSIGNAL
  35.     MOVEQ    #0,D1
  36.     BSET    D0,D1
  37.     MOVE.L    D1,_SIGMASK    ; SAVE IN _SIGMASK IN MAIN PROG
  38.  
  39.     BSR.B    RESTRT        ; SET UP 6502 JUMPS
  40.     move.l    _JUMPTBL,a3
  41.     adda.l    #$20000,a3
  42.     MOVE.L    #_rom,a0
  43.     MOVE.L    #FLAGTABL,A6    ; SET UP FLAG CONVERSION TABLE
  44.     MOVEQ.L    #0,D0        ; A=0  ZERO ALL REGS
  45.     MOVEQ.L    #0,D1
  46.     MOVEQ.L    #0,D2        ; X=0
  47.     MOVEQ.L    #0,D3        ; Y=0
  48.     MOVEQ.L    #0,D4        ; SP=0
  49.     MOVEQ.L    #0,D5        ; FLAGS=00
  50.     MOVEQ.L    #0,D6        ; EXT FLAGS =00
  51.  
  52.     MOVE.W    ($0000FFFC,A0),D7    ; GET RESET VECTOR
  53.     ROR.W    #8,D7
  54.     MOVE.L    D7,A2
  55.     ADDA.L    A0,A2
  56.     MOVE.L    A0,a4
  57.     ADDA.L    #$100,A4    ; SET SP BASE TO ADD $0100
  58.     move.w    (a2)+,d1    ; LOAD INSTRUCTION
  59.     IF    DEEBUG
  60.     BRA    DEBUG
  61.     ELSE
  62.     JMP    ([A3,D1.W*4])
  63.     ENDIF
  64.  
  65.  
  66. NMI:                ; RESET BUTTON COMES HERE
  67.     BSR.B    RESTRT        ; SET UP 6502 JUMPS
  68.     move.l    _JUMPTBL,a3
  69.     adda.l    #$20000,a3
  70.     MOVE.L    #_rom,a0
  71.     MOVE.L    #FLAGTABL,A6    ; SET UP FLAG CONVERSION TABLE
  72.  
  73.     MOVE.L    A0,a4        ; 
  74.     ADDA.L    #$100,A4    ; SET SP BASE TO ADD $0100
  75.  
  76.     MOVEQ.L    #0,D0        ; A=0  ZERO ALL REGS
  77.     MOVEQ.L    #0,D1
  78.     MOVEQ.L    #0,D2        ; X=0
  79.     MOVEQ.L    #0,D3        ; Y=0
  80.     MOVEQ.L    #0,D4        ; SP=0
  81.     MOVEQ.L    #0,D5        ; FLAGS=00
  82.     MOVEQ.L    #0,D6        ; EXT FLAGS =00
  83.     MOVE.W    ($0000FFFC,A0),D7    ; GET RESET VECTOR
  84.     ROR.W    #8,D7
  85.     MOVE.L    D7,A2
  86.     ADDA.L    A0,A2
  87.  
  88.     move.w    (a2)+,d1    ; LOAD INSTRUCTION AT 0000
  89.     JMP    ([A3,D1.W*4])    ; AND AWAY WE GO!!!!!!
  90.  
  91. PAUSE:                ; PAUSE BUTTON COMES HERE
  92.  
  93.     MOVEM.L    A0-A6/D0-D7,-(SP);SAVE ALL REGS
  94.  
  95.     SUBQ.L    #2,A2        ; SET PC BACK BEFORE THIS INST.
  96.     SUBA.L    A0,A2        ; REMOVE AMIGA BASE ADD.
  97.     MOVE.W    A2,_PROGCOUNT
  98.  
  99.     BSR.B    RESTRT        ; SET UP 6502 JUMPS
  100.  
  101.     MOVE.L    4,A6
  102.     MOVE.L    _SIGMASK,D0
  103.     JSR    -$013E(A6)    ; WAIT FOR SIG FROM MAIN PROG
  104.  
  105.     MOVEM.L    (SP)+,A0-A6/D0-D7
  106.  
  107.     MOVEQ    #0,D7
  108.     MOVE.W    _PROGCOUNT,D7
  109.     MOVE.L    A0,A2
  110.     ADDA.L    D7,A2
  111.     MOVE.W    (A2)+,D1
  112.  
  113.     JMP    ([A3,D1.W*4])    ; AND AWAY WE GO!!!!!!
  114.  
  115.     IF    DEEBUG
  116. DEBUG:                ; SINGLESTEP DEBUG CODE
  117.  
  118.     MOVEM.L    A0-A6/D0-D7,-(SP);SAVE ALL REGS
  119.  
  120.     SUBQ.L    #2,A2        ; SET PC BACK BEFORE THIS INST.
  121.     MOVE.L    (A2),_CINST    ; SAVE 4 BYTES AT 6502 PC FOR DEBUGGING
  122.     SUBA.L    A0,A2        ; REMOVE AMIGA BASE ADD.
  123.     MOVE.W    A2,_PROGCOUNT
  124.  
  125.     MOVE.B    D0,_CA
  126.     MOVE.B    D2,_CX
  127.     MOVE.B    D3,_CY
  128.     MOVE.W    D4,_CSP
  129.  
  130.     MOVE.B    (A6,D5.W),D7    ; GET 6502 EQUIV OF 680X0 REGS
  131.     OR.B    D6,D7
  132.     MOVE.B    D7,_CP
  133.  
  134.     MOVEQ    #1,D7
  135.     MOVE.W    D7,_READY    ; READY TO READ VARIABLES
  136.  
  137.     MOVE.W    _TRACE,D7    ; IS SINGLESTEP ON?
  138.     BEQ.S    NOTRCE
  139.  
  140.     MOVE.L    4,A6
  141.     MOVE.L    _SIGMASK,D0
  142.     JSR    -$013E(A6)    ; WAIT FOR SIG FROM MAIN PROG
  143.  
  144. NOTRCE:    MOVEM.L    (SP)+,A0-A6/D0-D7 ; RESTORE ALL REGS
  145.  
  146.     JMP    ([A3,D1.W*4])    ; AND AWAY WE GO!!!!!!
  147.     ENDIF
  148.  
  149.  
  150.  
  151. *    A0 = amiga address of 6502 $0000 (CONSTANT)
  152. *    A2 = amiga address of current 6502 PC (not the actual 6502 PC)
  153. *    A3 = base address of instruction vector table
  154. *    A4 = AMIGA address of SP BASE $0100
  155. *    A6 = BASE ADDRESS OF LOOKUP TABLES FOR FLAGS,H FLAG,PARITY.
  156.  
  157.  
  158. *    D1.W = current opcode + following single byte operand
  159. *    (ALSO AVAILABLE FOR TEMPORARY USE WITHIN AN EMULATED INSTRUCTION) 
  160. *    D0.B = current A  value
  161. *    D2.B = current X  value
  162. *    D3.B = current Y  value
  163. *    D4.B = CURRENT SP value
  164. *    D5.B = FLAGS (680X0 FLAGS NOT 6502)
  165. *    D6.L = FLAGS (EXTENDED 6502 B,D,I)
  166. *    D7.L = TEMPORARY WORK REGISTER 2
  167.  
  168. *                7   6   5   4   3   2   1   0
  169.  
  170. *    680x0 FLAG BITS        -   -   -   X   N   Z   V   C
  171.  
  172. *    6502  FLAG BITS     N   V   -   B   D   I   Z   C
  173.  
  174. *    B,D,I are saved in D6.B
  175.  
  176.  
  177. RESTRT:    MOVE.L    4,A6
  178.     JSR    -$0084(A6)    ; Forbid()
  179.     MOVE.L    #MNTBL,A0    ; SET UP MAIN INSTRUCTION VECTORS
  180.     MOVE.L    _JUMPTBL,A1
  181.     MOVE.W    #$00FF,D1
  182. .L1:    MOVE.W    #$00FF,D0
  183.     MOVE.L    (A0)+,A5
  184. .L2:    MOVE.L    A5,(A1)+
  185.     DBRA    D0,.L2
  186.     DBRA    D1,.L1
  187.  
  188. .L3:    MOVE.L    4,A6
  189.     JSR    -$008A(A6)    ; Permit()
  190.     RTS
  191.  
  192.  
  193. _RESET00:    ; RESETS THE 6502 AFTER THE CURRENT INSTRUCTION (CALLED FROM MAIN PROCESS)
  194.  
  195.     MOVEM.L    A0-A6/D0-D7,-(SP)    
  196.     MOVE.L    4,A6
  197.     JSR    -$0084(A6)    ; Forbid()
  198.     MOVE.L    _JUMPTBL,A1
  199.     MOVE.W    #$00FF,D1
  200. .L1:    MOVE.W    #$00FF,D0
  201.     MOVE.L    #NMI,A5
  202. .L2:    MOVE.L    A5,(A1)+
  203.     DBRA    D0,.L2
  204.     DBRA    D1,.L1
  205.     MOVE.L    4,A6
  206.     JSR    -$008A(A6)    ; Permit()
  207.     MOVEM.L    (SP)+,A0-A6/D0-D7
  208.     RTS
  209.  
  210. _PAUSE00:    ; PAUSES THE 6502 AFTER THE CURRENT INSTRUCTION (CALLED FROM MAIN PROCESS)
  211.  
  212.     MOVEM.L    A0-A6/D0-D7,-(SP)    
  213.     MOVE.L    4,A6
  214.     JSR    -$0084(A6)    ; Forbid()
  215.     MOVE.L    _JUMPTBL,A1
  216.     MOVE.W    #$00FF,D1
  217. .L1:    MOVE.W    #$00FF,D0
  218.     MOVE.L    #PAUSE,A5
  219. .L2:    MOVE.L    A5,(A1)+
  220.     DBRA    D0,.L2
  221.     DBRA    D1,.L1
  222.     MOVE.L    4,A6
  223.     JSR    -$008A(A6)    ; Permit()
  224.     MOVEM.L    (SP)+,A0-A6/D0-D7
  225.     RTS    
  226.  
  227.  
  228. _screenwrite: *************************************************
  229.  
  230. *    ON ENTRY D1.W    HOLDS #$XXXX (D000-D3FF) (D000-D7FF FOR 64x32)
  231. *         D7.B    HOLDS ASCII CHAR 00-FF
  232.  
  233.               MOVEM.L        A0/A2,-(A7)        ;
  234.           ANDI.W         #$03FF,D1        ; GET SCREEN POS
  235.  
  236.               LEA            _scrn,A0
  237.               MOVE.L         (A0,D1.L*4),A0    ;PTR FOR CURRENT CHAR SCREEN LINE
  238.               MOVEQ.L        #$0,D1                   ; 
  239.               MOVE.B         D7,D1                    ;CURRENT CHAR VAL 
  240.               EXT.L          D1                       ; MULTIPLY BY 8 TO GET INTO CHARS 
  241.               ASL.L          #$3,D1                   ; ARRAY
  242.               LEA            _chars,A2        ;CHARS ARRAY PTR
  243.           ADDA.L         D1,A2
  244.           MOVE.W         #$40,D1        ; 64 CHARS / LINE
  245.               MOVE.B         (A2)+,(A0)         ;MOVE TO SCREEN MEM 
  246.               ADD.W          D1,A0                  
  247.               MOVE.B         (A2)+,(A0)         
  248.               ADD.W          D1,A0                  
  249.               MOVE.B         (A2)+,(A0)         
  250.               ADD.W          D1,A0                  
  251.               MOVE.B         (A2)+,(A0)         
  252.               ADD.W          D1,A0                  
  253.               MOVE.B         (A2)+,(A0)         
  254.               ADD.W          D1,A0                  
  255.               MOVE.B         (A2)+,(A0)         
  256.               ADD.W          D1,A0                  
  257.               MOVE.B         (A2)+,(A0)         
  258.               ADD.W          D1,A0                  
  259.               MOVE.B         (A2)+,(A0)         
  260.  
  261.               MOVEM.L        (A7)+,A0/A2         
  262.               RTS  
  263.  
  264. GETKEY:   ********************************************************************************
  265.  
  266. *    GETS VALUE TO STORE IN $DF00 FOR THE KEY(S) PRESSED
  267. *    DEPENDING ON VAL IN D0 (A) RETURNS VALUE IN D7.B
  268.  
  269.     MOVEM.L    A0/D0,-(A7)    ; SAVE REGS
  270.  
  271.     MOVE.B    #$FF,D7        ; START WITH NO KEYS PRESSED
  272.     LEA    _keyrows,A0    ; START OF 8 BYTE ARRAY
  273.     
  274.     LSR.B    #1,D0        ; HAS THIS KBD ROW BEEN SELECTED?
  275.     BCS.B    .1        ; CARRY BIT CLEAR IF THIS ROW IS SELECTED
  276.     AND.B    (A0),D7        ; MASK ANY SELECTED ROWS IN D7
  277.  
  278. .1:    ADDQ.L    #1,A0
  279.     LSR.B    #1,D0        ; AND DO IT 8 TIMES 
  280.     BCS.B    .2        ; ONCE FOR EACH ROW
  281.     AND.B    (A0),D7
  282. .2:    ADDQ.L    #1,A0
  283.     LSR.B    #1,D0
  284.     BCS.B    .3
  285.     AND.B    (A0),D7
  286. .3:    ADDQ.L    #1,A0
  287.     LSR.B    #1,D0
  288.     BCS.B    .4
  289.     AND.B    (A0),D7
  290. .4:    ADDQ.L    #1,A0
  291.     LSR.B    #1,D0
  292.     BCS.B    .5
  293.     AND.B    (A0),D7
  294. .5:    ADDQ.L    #1,A0
  295.     LSR.B    #1,D0
  296.     BCS.B    .6
  297.     AND.B    (A0),D7
  298. .6:    ADDQ.L    #1,A0
  299.     LSR.B    #1,D0
  300.     BCS.B    .7
  301.     AND.B    (A0),D7
  302. .7:    ADDQ.L    #1,A0
  303.     LSR.B    #1,D0
  304.     BCS.B    .8
  305.     AND.B    (A0),D7        ; D7 NOW HOLDS VAL TO STORE IN $DF00
  306.  
  307.  
  308. .8:    MOVEM.L     (A7)+,A0/D0 ; RESTORE
  309.     RTS
  310.                                 
  311. ******************************************************************************************
  312.  
  313. ILLEGAL:            ; ILLEGAL INSTRUCTION
  314.     MOVEM.L    (SP)+,A0-A6/D0-D7    
  315.     rts
  316.  
  317.  
  318.  
  319. MAIN00:                ; 6502 BRK
  320.  
  321.     ORI.B    #$14,D6        ; SET B,I IN FLAGS
  322.     SUBQ.L    #1,A2        ; POSITION PC TO NEXT INSTR.
  323.     SUBA.L    A0,A2
  324.     MOVE.L    A2,D7
  325.     ROL.W    #8,D7
  326.     MOVE.B    D7,(A4,D4.W)    ; PUSH MSB
  327.     SUBQ.B    #1,D4
  328.     ROL.W    #8,D7
  329.     MOVE.B    D7,(A4,D4.W)    ; PUSH LSB
  330.     SUBQ.B    #1,D4
  331.  
  332.     MOVE.B    (A6,D5.W),D7    ; GET 6502 EQUIV OF 680X0 REGS
  333.     OR.B    D6,D7
  334.     MOVE.B    D7,(A4,D4.W)    ; PUSH FLAGS
  335.     SUBQ.B    #1,D4
  336.  
  337.     MOVE.W    ($0000FFFE,A0),D7    ; GET IRQ VECTOR
  338.     ROR.W    #8,D7
  339.     MOVE.L    D7,A2
  340.     ADDA.L    A0,A2
  341.  
  342.     MOVE.W    (A2)+,D1
  343.     IF    DEEBUG
  344.     BRA    DEBUG
  345.     ELSE
  346.     JMP    ([A3,D1.W*4])
  347.     ENDIF
  348.  
  349. MAIN01:                ; 6502 ORA (n,X)
  350.     ANDI.B    #$F3,D5
  351.     ANDI.L    #$FF,D1
  352.     ADD.B    D2,D1
  353.     MOVE.W    (A0,D1.W),D1    
  354.     ROL.W    #8,D1
  355.     OR.B    (A0,D1.L),D0    
  356.     MOVE.W    CCR,D7
  357.     ANDI.B    #$0C,D7
  358.     OR.B    D7,D5
  359.     MOVE.W    (A2)+,D1
  360.     IF    DEEBUG
  361.     BRA    DEBUG
  362.     ELSE
  363.     JMP    ([A3,D1.W*4])
  364.     ENDIF
  365.  
  366. MAIN05:                ; 6502 ORA n
  367.     ANDI.B    #$F3,D5
  368.     ANDI.W    #$FF,D1
  369.     OR.B    (A0,D1.W),D0    
  370.     MOVE.W    CCR,D7
  371.     ANDI.B    #$0C,D7
  372.     OR.B    D7,D5
  373.     MOVE.W    (A2)+,D1
  374.     IF    DEEBUG
  375.     BRA    DEBUG
  376.     ELSE
  377.     JMP    ([A3,D1.W*4])
  378.     ENDIF
  379.  
  380. MAIN06:                ; 6502 ASL n
  381.     ANDI.B    #$E2,D5
  382.     ANDI.W    #$FF,D1
  383.     SWAP    D4
  384.     MOVE.B    (A0,D1.W),D4
  385.     LSL.B    #1,D4
  386.     MOVE.W    CCR,D7
  387.     MOVE.B    D4,(A0,D1.W)
  388.     SWAP    D4
  389.     ANDI.B    #$1D,D7
  390.     OR.B    D7,D5
  391.     MOVE.W    (A2)+,D1
  392.     IF    DEEBUG
  393.     BRA    DEBUG
  394.     ELSE
  395.     JMP    ([A3,D1.W*4])
  396.     ENDIF
  397.  
  398. MAIN08:                ; 6502 PHP
  399.     MOVE.B    (A6,D5.W),D7    ; GET 6502 EQUIV OF 680X0 REGS
  400.     OR.B    D6,D7
  401.     MOVE.B    D7,(A4,D4.W)
  402.     SUBQ.B    #1,D4
  403.     SUBQ.L    #1,A2
  404.     MOVE.W    (A2)+,D1
  405.     IF    DEEBUG
  406.     BRA    DEBUG
  407.     ELSE
  408.     JMP    ([A3,D1.W*4])
  409.     ENDIF
  410.  
  411. MAIN09:                ; 6502 ORA #n
  412.     ANDI.B    #$F3,D5
  413.     OR.B    D1,D0
  414.     MOVE.W    CCR,D7
  415.     ANDI.B    #$0C,D7
  416.     OR.B    D7,D5
  417.     MOVE.W    (A2)+,D1
  418.     IF    DEEBUG
  419.     BRA    DEBUG
  420.     ELSE
  421.     JMP    ([A3,D1.W*4])
  422.     ENDIF
  423.  
  424. MAIN0A:                ; 6502 ASL A
  425.     ANDI.B    #$E2,D5
  426.     LSL.B    #1,D0
  427.     MOVE.W    CCR,D7
  428.     ANDI.B    #$1D,D7
  429.     OR.B    D7,D5
  430.     SUBQ.L    #1,A2
  431.     MOVE.W    (A2)+,D1
  432.     IF    DEEBUG
  433.     BRA    DEBUG
  434.     ELSE
  435.     JMP    ([A3,D1.W*4])
  436.     ENDIF
  437.  
  438. MAIN0D:                ; 6502 ORA nn
  439.     ROL.W    #8,D1
  440.     MOVE.B    (A2)+,D1
  441.     ROL.W    #8,D1
  442.     ANDI.B    #$F3,D5
  443.     OR.B    (A0,D1.L),D0    
  444.     MOVE.W    CCR,D7
  445.     ANDI.B    #$0C,D7
  446.     OR.B    D7,D5
  447.     MOVE.W    (A2)+,D1
  448.     IF    DEEBUG
  449.     BRA    DEBUG
  450.     ELSE
  451.     JMP    ([A3,D1.W*4])
  452.     ENDIF
  453.  
  454. MAIN0E:                ; 6502 ASL nn  ***************
  455.     ROL.W    #8,D1
  456.     MOVE.B    (A2)+,D1
  457.     ROL.W    #8,D1
  458.     BPL.B    .1
  459.  
  460.     ANDI.B    #$E2,D5        ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  461.     MOVE.B    (A0,D1.L),D7
  462.     ASL.B    #1,D7        
  463.     MOVE.W    CCR,D7
  464.     ANDI.B    #$1D,D7
  465.     OR.B    D7,D5
  466.     MOVE.W    (A2)+,D1
  467.     IF    DEEBUG
  468.     BRA    DEBUG
  469.     ELSE
  470.     JMP    ([A3,D1.W*4])
  471.     ENDIF
  472.  
  473. .1:    ANDI.B    #$E2,D5
  474.     SWAP    D4
  475.     MOVE.B    (A0,D1.L),D4        
  476.     ASL.B    #1,D4
  477.     MOVE.W    CCR,D7
  478.     MOVE.B    D4,(A0,D1.L)
  479.     SWAP    D4
  480.     ANDI.B    #$1D,D7
  481.     OR.B    D7,D5
  482.     MOVE.W    (A2)+,D1
  483.     IF    DEEBUG
  484.     BRA    DEBUG
  485.     ELSE
  486.     JMP    ([A3,D1.W*4])
  487.     ENDIF
  488.  
  489.  
  490. MAIN10:                ; 6502 BPL n
  491.     EXT.W    D1
  492.     MOVE.W    D5,CCR
  493.     BMI.B    M101
  494.     ADDA.W    D1,A2
  495.     MOVE.W    (A2)+,D1
  496.     IF    DEEBUG
  497.     BRA    DEBUG
  498.     ELSE
  499.     JMP    ([A3,D1.W*4])
  500.     ENDIF
  501.  
  502. M101:    MOVE.W    (A2)+,D1
  503.     IF    DEEBUG
  504.     BRA    DEBUG
  505.     ELSE
  506.     JMP    ([A3,D1.W*4])
  507.     ENDIF
  508.  
  509. MAIN11:                ; 6502 ORA (n),Y
  510.     ANDI.B    #$F3,D5
  511.     ANDI.L    #$FF,D1
  512.     MOVE.W    (A0,D1.W),D1    
  513.     ROL.W    #8,D1
  514.     ADD.W    D3,D1
  515.     OR.B    (A0,D1.L),D0    
  516.     MOVE.W    CCR,D7
  517.     ANDI.B    #$0C,D7
  518.     OR.B    D7,D5
  519.     MOVE.W    (A2)+,D1
  520.     IF    DEEBUG
  521.     BRA    DEBUG
  522.     ELSE
  523.     JMP    ([A3,D1.W*4])
  524.     ENDIF
  525.  
  526. MAIN15:                ; 6502 ORA n,X
  527.     ANDI.B    #$F3,D5
  528.     ADD.B    D2,D1
  529.     ANDI.W    #$FF,D1
  530.     OR.B    (A0,D1.W),D0    
  531.     MOVE.W    CCR,D7
  532.     ANDI.B    #$0C,D7
  533.     OR.B    D7,D5
  534.     MOVE.W    (A2)+,D1
  535.     IF    DEEBUG
  536.     BRA    DEBUG
  537.     ELSE
  538.     JMP    ([A3,D1.W*4])
  539.     ENDIF
  540.  
  541. MAIN16:                ; 6502 ASL n,X
  542.     ANDI.B    #$E2,D5
  543.     ADD.B    D2,D1
  544.     ANDI.W    #$FF,D1
  545.     SWAP    D4
  546.     MOVE.B    (A0,D1.W),D4
  547.     LSL.B    #1,D4
  548.     MOVE.W    CCR,D7
  549.     MOVE.B    D4,(A0,D1.W)
  550.     SWAP    D4
  551.     ANDI.B    #$1D,D7
  552.     OR.B    D7,D5
  553.     MOVE.W    (A2)+,D1
  554.     IF    DEEBUG
  555.     BRA    DEBUG
  556.     ELSE
  557.     JMP    ([A3,D1.W*4])
  558.     ENDIF
  559.  
  560. MAIN18:                ; 6502 CLC
  561.     ANDI.B    #$EE,D5        ; CLEAR X,C IN D5 (CCR)
  562.     SUBQ.L    #1,A2
  563.     MOVE.W    (A2)+,D1
  564.     IF    DEEBUG
  565.     BRA    DEBUG
  566.     ELSE
  567.     JMP    ([A3,D1.W*4])
  568.     ENDIF
  569.  
  570. MAIN19:                ; 6502 ORA nn,Y
  571.     ROL.W    #8,D1
  572.     MOVE.B    (A2)+,D1
  573.     ROL.W    #8,D1
  574.     ADD.W    D3,D1
  575.     ANDI.B    #$F3,D5
  576.     OR.B    (A0,D1.L),D0    
  577.     MOVE.W    CCR,D7
  578.     ANDI.B    #$0C,D7
  579.     OR.B    D7,D5
  580.     MOVE.W    (A2)+,D1
  581.     IF    DEEBUG
  582.     BRA    DEBUG
  583.     ELSE
  584.     JMP    ([A3,D1.W*4])
  585.     ENDIF
  586.  
  587.     IF    P65C02
  588. MAIN1A:                ; 6502 INA A (65C02 ONLY)
  589.     ANDI.B    #$F3,D5
  590.     ADDQ.B    #1,D0
  591.     MOVE.W    CCR,D7
  592.     ANDI.B    #$0C,D7
  593.     OR.B    D7,D5
  594.     SUBQ.L    #1,A2
  595.     MOVE.W    (A2)+,D1
  596.     IF    DEEBUG
  597.     BRA    DEBUG
  598.     ELSE
  599.     JMP    ([A3,D1.W*4])
  600.     ENDIF
  601.  
  602.     ENDIF
  603.  
  604. MAIN1D:                ; 6502 ORA nn,X
  605.     ROL.W    #8,D1
  606.     MOVE.B    (A2)+,D1
  607.     ROL.W    #8,D1
  608.     ADD.W    D2,D1
  609.     ANDI.B    #$F3,D5
  610.     OR.B    (A0,D1.L),D0    
  611.     MOVE.W    CCR,D7
  612.     ANDI.B    #$0C,D7
  613.     OR.B    D7,D5
  614.     MOVE.W    (A2)+,D1
  615.     IF    DEEBUG
  616.     BRA    DEBUG
  617.     ELSE
  618.     JMP    ([A3,D1.W*4])
  619.     ENDIF
  620.  
  621. MAIN1E:                ; 6502 ASL nn,X  ***************
  622.     ROL.W    #8,D1
  623.     MOVE.B    (A2)+,D1
  624.     ROL.W    #8,D1
  625.     ADD.W    D2,D1
  626.     BPL.B    .1
  627.  
  628.     ANDI.B    #$E2,D5        ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  629.     MOVE.B    (A0,D1.L),D7
  630.     ASL.B    #1,D7        
  631.     MOVE.W    CCR,D7
  632.     ANDI.B    #$1D,D7
  633.     OR.B    D7,D5
  634.     MOVE.W    (A2)+,D1
  635.     IF    DEEBUG
  636.     BRA    DEBUG
  637.     ELSE
  638.     JMP    ([A3,D1.W*4])
  639.     ENDIF
  640.  
  641. .1:    ANDI.B    #$E2,D5
  642.     SWAP    D4
  643.     MOVE.B    (A0,D1.L),D4        
  644.     ASL.B    #1,D4
  645.     MOVE.W    CCR,D7
  646.     MOVE.B    D4,(A0,D1.L)
  647.     SWAP    D4
  648.     ANDI.B    #$1D,D7
  649.     OR.B    D7,D5
  650.     MOVE.W    (A2)+,D1
  651.     IF    DEEBUG
  652.     BRA    DEBUG
  653.     ELSE
  654.     JMP    ([A3,D1.W*4])
  655.     ENDIF
  656.  
  657. MAIN20:                ; 6502 JSR nn 
  658.     ROL.W    #8,D1
  659.     MOVE.B    (A2)+,D1
  660.     ROL.W    #8,D1
  661.     SUBQ.L    #1,A2
  662.     SUBA.L    A0,A2
  663.     MOVE.L    A2,D7
  664.  
  665.     ROL.W    #8,D7
  666.     MOVE.B    D7,(A4,D4.W)    ; PUSH MSB
  667.     SUBQ.B    #1,D4
  668.  
  669.     ROL.W    #8,D7
  670.     MOVE.B    D7,(A4,D4.W)    ; PUSH LSB
  671.     SUBQ.B    #1,D4
  672.  
  673.     MOVE.L    A0,A2
  674.     MOVE.W    D1,D7
  675.     ADDA.L    D7,A2
  676.     MOVE.W    (A2)+,D1
  677.     IF    DEEBUG
  678.     BRA    DEBUG
  679.     ELSE
  680.     JMP    ([A3,D1.W*4])
  681.     ENDIF
  682.  
  683. MAIN21:                ; 6502 AND (n,X)
  684.     ANDI.B    #$F3,D5
  685.     ANDI.L    #$FF,D1
  686.     ADD.B    D2,D1
  687.     MOVE.W    (A0,D1.W),D1    
  688.     ROL.W    #8,D1
  689.     AND.B    (A0,D1.L),D0    
  690.     MOVE.W    CCR,D7
  691.     ANDI.B    #$0C,D7
  692.     OR.B    D7,D5
  693.     MOVE.W    (A2)+,D1
  694.     IF    DEEBUG
  695.     BRA    DEBUG
  696.     ELSE
  697.     JMP    ([A3,D1.W*4])
  698.     ENDIF
  699.  
  700. MAIN24:                ; 6502 BIT n
  701.     ANDI.B    #$F1,D5        ; CLEAR N,Z,V
  702.     ANDI.W    #$FF,D1
  703.     MOVE.B    (A0,D1.W),D1
  704.     AND.B    D0,D1
  705.     MOVE.W    CCR,D7        ; SET Z IF RESULT OF AND =0
  706.     ANDI.B    #$04,D7        ; MASK ALL BUT Z
  707.     OR.B    D7,D5
  708.  
  709.     MOVE.B    D1,D7
  710.     ANDI.B    #$40,D7        ; GET BIT 6 TO MOVE TO V FLG
  711.     LSR.B    #5,D7        ; MOVE TO 680X0 V FLG POSITION
  712.     OR.B    D7,D5        ; SET V FLG IF BIT6 WAS SET
  713.  
  714.     ANDI.B    #$80,D1        ; GET BIT 7 TO MOVE TO N FLG
  715.     LSR.B    #4,D1        ; MOVE TO 680X0 N FLG POSITION
  716.     OR.B    D1,D5        ; SET N FLG IF BIT7 WAS SET
  717.  
  718.     MOVE.W    (A2)+,D1
  719.     IF    DEEBUG
  720.     BRA    DEBUG
  721.     ELSE
  722.     JMP    ([A3,D1.W*4])
  723.     ENDIF
  724.  
  725. MAIN25:                ; 6502 AND n
  726.     ANDI.B    #$F3,D5
  727.     ANDI.W    #$FF,D1
  728.     AND.B    (A0,D1.W),D0    
  729.     MOVE.W    CCR,D7
  730.     ANDI.B    #$0C,D7
  731.     OR.B    D7,D5
  732.     MOVE.W    (A2)+,D1
  733.     IF    DEEBUG
  734.     BRA    DEBUG
  735.     ELSE
  736.     JMP    ([A3,D1.W*4])
  737.     ENDIF
  738.  
  739. MAIN26:                ; 6502 ROL n
  740.     ANDI.W    #$FF,D1
  741.     SWAP    D4
  742.     MOVE.B    (A0,D1.W),D4
  743.     MOVE.W    D5,CCR
  744.     ROXL.B    #1,D4
  745.     MOVE.W    CCR,D7
  746.     MOVE.B    D4,(A0,D1.W)
  747.     SWAP    D4
  748.     ANDI.B    #$E2,D5
  749.     ANDI.B    #$1D,D7
  750.     OR.B    D7,D5
  751.     MOVE.W    (A2)+,D1
  752.     IF    DEEBUG
  753.     BRA    DEBUG
  754.     ELSE
  755.     JMP    ([A3,D1.W*4])
  756.     ENDIF
  757.  
  758. MAIN28:                ; 6502 PLP
  759.     ADDQ.B    #1,D4
  760.     MOVE.B    (A4,D4.W),D6
  761.     MOVE.B    $20(A6,D6.W),D5    ; GET 680X0 EQUIV OF 6502 REGS
  762.     ANDI.W    #$1C,D6
  763.     SUBQ.L    #1,A2
  764.     MOVE.W    (A2)+,D1
  765.     IF    DEEBUG
  766.     BRA    DEBUG
  767.     ELSE
  768.     JMP    ([A3,D1.W*4])
  769.     ENDIF
  770.  
  771. MAIN29:                ; 6502 AND #n
  772.     ANDI.B    #$F3,D5
  773.     AND.B    D1,D0
  774.     MOVE.W    CCR,D7
  775.     ANDI.B    #$0C,D7
  776.     OR.B    D7,D5
  777.     MOVE.W    (A2)+,D1
  778.     IF    DEEBUG
  779.     BRA    DEBUG
  780.     ELSE
  781.     JMP    ([A3,D1.W*4])
  782.     ENDIF
  783.  
  784. MAIN2A:                ; 6502 ROL A
  785.     MOVE.W    D5,CCR
  786.     ROXL.B    #1,D0
  787.     MOVE.W    CCR,D7
  788.     ANDI.B    #$E2,D5
  789.     ANDI.B    #$1D,D7
  790.     OR.B    D7,D5
  791.     SUBQ.L    #1,A2
  792.     MOVE.W    (A2)+,D1
  793.     IF    DEEBUG
  794.     BRA    DEBUG
  795.     ELSE
  796.     JMP    ([A3,D1.W*4])
  797.     ENDIF
  798.  
  799. MAIN2C:                ; 6502 BIT nn
  800.     ROL.W    #8,D1
  801.     MOVE.B    (A2)+,D1
  802.     ROL.W    #8,D1        ; GET nn IN D1.W
  803.  
  804.     ANDI.B    #$F1,D5        ; CLEAR N,Z,V
  805.     MOVE.B    (A0,D1.L),D1
  806.     AND.B    D0,D1
  807.     MOVE.W    CCR,D7        ; SET Z IF RESULT OF AND =0
  808.     ANDI.B    #$04,D7        ; MASK ALL BUT Z
  809.     OR.B    D7,D5
  810.  
  811.     MOVE.B    D1,D7
  812.     ANDI.B    #$40,D7        ; GET BIT 6 TO MOVE TO V FLG
  813.     LSR.B    #5,D7        ; MOVE TO 680X0 V FLG POSITION
  814.     OR.B    D7,D5        ; SET V FLG IF BIT6 WAS SET
  815.  
  816.     ANDI.B    #$80,D1        ; GET BIT 7 TO MOVE TO N FLG
  817.     LSR.B    #4,D1        ; MOVE TO 680X0 N FLG POSITION
  818.     OR.B    D1,D5        ; SET N FLG IF BIT7 WAS SET
  819.  
  820.     MOVE.W    (A2)+,D1
  821.     IF    DEEBUG
  822.     BRA    DEBUG
  823.     ELSE
  824.     JMP    ([A3,D1.W*4])
  825.     ENDIF
  826.  
  827. MAIN2D:                ; 6502 AND nn
  828.     ROL.W    #8,D1
  829.     MOVE.B    (A2)+,D1
  830.     ROL.W    #8,D1
  831.     ANDI.B    #$F3,D5
  832.     AND.B    (A0,D1.L),D0    
  833.     MOVE.W    CCR,D7
  834.     ANDI.B    #$0C,D7
  835.     OR.B    D7,D5
  836.     MOVE.W    (A2)+,D1
  837.     IF    DEEBUG
  838.     BRA    DEBUG
  839.     ELSE
  840.     JMP    ([A3,D1.W*4])
  841.     ENDIF
  842.  
  843. MAIN2E:                ; 6502 ROL nn  ***************
  844.     ROL.W    #8,D1
  845.     MOVE.B    (A2)+,D1
  846.     ROL.W    #8,D1
  847.     BPL.B    .1
  848.  
  849.     MOVE.B    (A0,D1.L),D7    ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  850.     MOVE.W    D5,CCR
  851.     ROXL.B    #1,D7        
  852.     MOVE.W    CCR,D7
  853.     ANDI.B    #$E2,D5        
  854.     ANDI.B    #$1D,D7
  855.     OR.B    D7,D5
  856.     MOVE.W    (A2)+,D1
  857.     IF    DEEBUG
  858.     BRA    DEBUG
  859.     ELSE
  860.     JMP    ([A3,D1.W*4])
  861.     ENDIF
  862.  
  863. .1:    SWAP    D4
  864.     MOVE.B    (A0,D1.L),D4
  865.     MOVE.W    D5,CCR
  866.     ROXL.B    #1,D4    
  867.     MOVE.W    CCR,D7
  868.     MOVE.B    D4,(A0,D1.L)
  869.     SWAP    D4
  870.     ANDI.B    #$E2,D5
  871.     ANDI.B    #$1D,D7
  872.     OR.B    D7,D5
  873.     MOVE.W    (A2)+,D1
  874.     IF    DEEBUG
  875.     BRA    DEBUG
  876.     ELSE
  877.     JMP    ([A3,D1.W*4])
  878.     ENDIF
  879.  
  880. MAIN30:                ; 6502 BMI n
  881.     EXT.W    D1
  882.     MOVE.W    D5,CCR
  883.     BPL.B    M301
  884.     ADDA.W    D1,A2
  885.     MOVE.W    (A2)+,D1
  886.     IF    DEEBUG
  887.     BRA    DEBUG
  888.     ELSE
  889.     JMP    ([A3,D1.W*4])
  890.     ENDIF
  891.  
  892. M301:    MOVE.W    (A2)+,D1
  893.     IF    DEEBUG
  894.     BRA    DEBUG
  895.     ELSE
  896.     JMP    ([A3,D1.W*4])
  897.     ENDIF
  898.  
  899. MAIN31:                ; 6502 AND (n),Y
  900.     ANDI.B    #$F3,D5
  901.     ANDI.L    #$FF,D1
  902.     MOVE.W    (A0,D1.W),D1    
  903.     ROL.W    #8,D1
  904.     ADD.W    D3,D1
  905.     AND.B    (A0,D1.L),D0    
  906.     MOVE.W    CCR,D7
  907.     ANDI.B    #$0C,D7
  908.     OR.B    D7,D5
  909.     MOVE.W    (A2)+,D1
  910.     IF    DEEBUG
  911.     BRA    DEBUG
  912.     ELSE
  913.     JMP    ([A3,D1.W*4])
  914.     ENDIF
  915.  
  916. MAIN35:                ; 6502 AND n,X
  917.     ANDI.B    #$F3,D5
  918.     ADD.B    D2,D1
  919.     ANDI.W    #$FF,D1
  920.     AND.B    (A0,D1.W),D0    
  921.     MOVE.W    CCR,D7
  922.     ANDI.B    #$0C,D7
  923.     OR.B    D7,D5
  924.     MOVE.W    (A2)+,D1
  925.     IF    DEEBUG
  926.     BRA    DEBUG
  927.     ELSE
  928.     JMP    ([A3,D1.W*4])
  929.     ENDIF
  930.  
  931. MAIN36:                ; 6502 ROL n,X
  932.     ADD.B    D2,D1
  933.     ANDI.W    #$FF,D1
  934.     SWAP    D4
  935.     MOVE.B    (A0,D1.W),D4
  936.     MOVE.W    D5,CCR
  937.     ROXL.B    #1,D4
  938.     MOVE.W    CCR,D7
  939.     MOVE.B    D4,(A0,D1.W)
  940.     SWAP    D4
  941.     ANDI.B    #$E2,D5
  942.     ANDI.B    #$1D,D7
  943.     OR.B    D7,D5
  944.     MOVE.W    (A2)+,D1
  945.     IF    DEEBUG
  946.     BRA    DEBUG
  947.     ELSE
  948.     JMP    ([A3,D1.W*4])
  949.     ENDIF
  950.  
  951. MAIN38:                ; 6502 SEC
  952.     ORI.B    #$11,D5        ; SET X,C IN D5.B (CCR)
  953.     SUBQ.L    #1,A2
  954.     MOVE.W    (A2)+,D1
  955.     IF    DEEBUG
  956.     BRA    DEBUG
  957.     ELSE
  958.     JMP    ([A3,D1.W*4])
  959.     ENDIF
  960.  
  961. MAIN39:                ; 6502 AND nn,Y
  962.     ROL.W    #8,D1
  963.     MOVE.B    (A2)+,D1
  964.     ROL.W    #8,D1
  965.     ADD.W    D3,D1
  966.     ANDI.B    #$F3,D5
  967.     AND.B    (A0,D1.L),D0    
  968.     MOVE.W    CCR,D7
  969.     ANDI.B    #$0C,D7
  970.     OR.B    D7,D5
  971.     MOVE.W    (A2)+,D1
  972.     IF    DEEBUG
  973.     BRA    DEBUG
  974.     ELSE
  975.     JMP    ([A3,D1.W*4])
  976.     ENDIF
  977.  
  978.     IF    P65C02
  979. MAIN3A:                ; 6502 DEA A (65C02 ONLY)
  980.     ANDI.B    #$F3,D5
  981.     SUBQ.B    #1,D0
  982.     MOVE.W    CCR,D7
  983.     ANDI.B    #$0C,D7
  984.     OR.B    D7,D5
  985.     SUBQ.L    #1,A2
  986.     MOVE.W    (A2)+,D1
  987.     IF    DEEBUG
  988.     BRA    DEBUG
  989.     ELSE
  990.     JMP    ([A3,D1.W*4])
  991.     ENDIF
  992.  
  993.     ENDIF
  994.  
  995. MAIN3D:                ; 6502 AND nn,X
  996.     ROL.W    #8,D1
  997.     MOVE.B    (A2)+,D1
  998.     ROL.W    #8,D1
  999.     ADD.W    D2,D1
  1000.     ANDI.B    #$F3,D5
  1001.     AND.B    (A0,D1.L),D0    
  1002.     MOVE.W    CCR,D7
  1003.     ANDI.B    #$0C,D7
  1004.     OR.B    D7,D5
  1005.     MOVE.W    (A2)+,D1
  1006.     IF    DEEBUG
  1007.     BRA    DEBUG
  1008.     ELSE
  1009.     JMP    ([A3,D1.W*4])
  1010.     ENDIF
  1011.  
  1012. MAIN3E:                ; 6502 ROL nn,X  ***************
  1013.     ROL.W    #8,D1
  1014.     MOVE.B    (A2)+,D1
  1015.     ROL.W    #8,D1
  1016.     ADD.W    D2,D1
  1017.     BPL.B    .1
  1018.  
  1019.     MOVE.B    (A0,D1.L),D7    ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  1020.     MOVE.W    D5,CCR
  1021.     ROXL.B    #1,D7        
  1022.     MOVE.W    CCR,D7
  1023.     ANDI.B    #$E2,D5
  1024.     ANDI.B    #$1D,D7
  1025.     OR.B    D7,D5
  1026.     MOVE.W    (A2)+,D1
  1027.     IF    DEEBUG
  1028.     BRA    DEBUG
  1029.     ELSE
  1030.     JMP    ([A3,D1.W*4])
  1031.     ENDIF
  1032.  
  1033. .1:    SWAP    D4
  1034.     MOVE.B    (A0,D1.L),D4
  1035.     MOVE.W    D5,CCR
  1036.     ROXL.B    #1,D4    
  1037.     MOVE.W    CCR,D7
  1038.     MOVE.B    D4,(A0,D1.L)
  1039.     SWAP    D4
  1040.     ANDI.B    #$E2,D5
  1041.     ANDI.B    #$1D,D7
  1042.     OR.B    D7,D5
  1043.     MOVE.W    (A2)+,D1
  1044.     IF    DEEBUG
  1045.     BRA    DEBUG
  1046.     ELSE
  1047.     JMP    ([A3,D1.W*4])
  1048.     ENDIF
  1049.  
  1050. MAIN40:                ; 6502 RTI 
  1051.  
  1052.     ADDQ.B    #1,D4        ; POP FLAGS
  1053.     MOVE.B    (A4,D4.W),D6
  1054.     MOVE.B    $20(A6,D6.W),D5    ; GET 680X0 EQUIV OF 6502 REGS
  1055.     ANDI.W    #$1C,D6
  1056.  
  1057.     MOVEQ    #0,D7
  1058.     ADDQ.B    #1,D4
  1059.     MOVE.B    (A4,D4.W),D7    ; PULL LSB
  1060.     ROL.W    #8,D7
  1061.     ADDQ.B    #1,D4
  1062.     MOVE.B    (A4,D4.W),D7    ; PULL MSB
  1063.     ROL.W    #8,D7
  1064.  
  1065.     MOVE.L    A0,A2        ; DONT INC PC AS ALREADY AT RIGHT PLACE
  1066.     ADDA.L    D7,A2
  1067.     MOVE.W    (A2)+,D1
  1068.     IF    DEEBUG
  1069.     BRA    DEBUG
  1070.     ELSE
  1071.     JMP    ([A3,D1.W*4])
  1072.     ENDIF
  1073.  
  1074. MAIN41:                ; 6502 EOR (n,X)
  1075.     ANDI.B    #$F3,D5
  1076.     ANDI.L    #$FF,D1
  1077.     ADD.B    D2,D1
  1078.     MOVE.W    (A0,D1.W),D1    
  1079.     ROL.W    #8,D1
  1080.     MOVE.B    (A0,D1.L),D7
  1081.     EOR.B    D7,D0    
  1082.     MOVE.W    CCR,D7
  1083.     ANDI.B    #$0C,D7
  1084.     OR.B    D7,D5
  1085.     MOVE.W    (A2)+,D1
  1086.     IF    DEEBUG
  1087.     BRA    DEBUG
  1088.     ELSE
  1089.     JMP    ([A3,D1.W*4])
  1090.     ENDIF
  1091.  
  1092. MAIN45:                ; 6502 EOR n
  1093.     ANDI.B    #$F3,D5
  1094.     ANDI.W    #$FF,D1
  1095.     MOVE.B    (A0,D1.L),D7
  1096.     EOR.B    D7,D0    
  1097.     MOVE.W    CCR,D7
  1098.     ANDI.B    #$0C,D7
  1099.     OR.B    D7,D5
  1100.     MOVE.W    (A2)+,D1
  1101.     IF    DEEBUG
  1102.     BRA    DEBUG
  1103.     ELSE
  1104.     JMP    ([A3,D1.W*4])
  1105.     ENDIF
  1106.  
  1107. MAIN46:                ; 6502 LSR n
  1108.     ANDI.B    #$E2,D5
  1109.     ANDI.W    #$FF,D1
  1110.     SWAP    D4
  1111.     MOVE.B    (A0,D1.W),D4
  1112.     LSR.B    #1,D4
  1113.     MOVE.W    CCR,D7
  1114.     MOVE.B    D4,(A0,D1.W)
  1115.     SWAP    D4
  1116.     ANDI.B    #$1D,D7
  1117.     OR.B    D7,D5
  1118.     MOVE.W    (A2)+,D1
  1119.     IF    DEEBUG
  1120.     BRA    DEBUG
  1121.     ELSE
  1122.     JMP    ([A3,D1.W*4])
  1123.     ENDIF
  1124.  
  1125. MAIN48:                ; 6502 PHA
  1126.     MOVE.B    D0,(A4,D4.W)
  1127.     SUBQ.B    #1,D4
  1128.     SUBQ.L    #1,A2
  1129.     MOVE.W    (A2)+,D1
  1130.     IF    DEEBUG
  1131.     BRA    DEBUG
  1132.     ELSE
  1133.     JMP    ([A3,D1.W*4])
  1134.     ENDIF
  1135.  
  1136. MAIN49:                ; 6502 EOR #n
  1137.     ANDI.B    #$F3,D5
  1138.     EOR.B    D1,D0
  1139.     MOVE.W    CCR,D7
  1140.     ANDI.B    #$0C,D7
  1141.     OR.B    D7,D5
  1142.     MOVE.W    (A2)+,D1
  1143.     IF    DEEBUG
  1144.     BRA    DEBUG
  1145.     ELSE
  1146.     JMP    ([A3,D1.W*4])
  1147.     ENDIF
  1148.  
  1149. MAIN4A:                ; 6502 LSR A
  1150.     ANDI.B    #$E2,D5
  1151.     LSR.B    #1,D0
  1152.     MOVE.W    CCR,D7
  1153.     ANDI.B    #$1D,D7
  1154.     OR.B    D7,D5
  1155.     SUBQ.L    #1,A2
  1156.     MOVE.W    (A2)+,D1
  1157.     IF    DEEBUG
  1158.     BRA    DEBUG
  1159.     ELSE
  1160.     JMP    ([A3,D1.W*4])
  1161.     ENDIF
  1162.  
  1163. MAIN4C:                ; 6502 JMP XXXX
  1164.     ROL.W    #8,D1
  1165.     MOVE.B    (A2)+,D1
  1166.     ROL.W    #8,D1
  1167.     MOVEQ    #0,D7
  1168.     MOVE.W    D1,D7
  1169.     MOVE.L    A0,A2
  1170.     ADDA.L    D7,A2
  1171.     MOVE.W    (A2)+,D1
  1172.     IF    DEEBUG
  1173.     BRA    DEBUG
  1174.     ELSE
  1175.     JMP    ([A3,D1.W*4])
  1176.     ENDIF
  1177.  
  1178. MAIN4D:                ; 6502 EOR nn
  1179.     ROL.W    #8,D1
  1180.     MOVE.B    (A2)+,D1
  1181.     ROL.W    #8,D1
  1182.     ANDI.B    #$F3,D5
  1183.     MOVE.B    (A0,D1.L),D7
  1184.     EOR.B    D7,D0    
  1185.     MOVE.W    CCR,D7
  1186.     ANDI.B    #$0C,D7
  1187.     OR.B    D7,D5
  1188.     SUBQ.L    #1,A2
  1189.     MOVE.W    (A2)+,D1
  1190.     IF    DEEBUG
  1191.     BRA    DEBUG
  1192.     ELSE
  1193.     JMP    ([A3,D1.W*4])
  1194.     ENDIF
  1195.  
  1196. MAIN4E:                ; 6502 LSR nn  ***************
  1197.     ROL.W    #8,D1
  1198.     MOVE.B    (A2)+,D1
  1199.     ROL.W    #8,D1
  1200.     BPL.B    .1
  1201.  
  1202.     ANDI.B    #$E2,D5        ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  1203.     MOVE.B    (A0,D1.L),D7
  1204.     LSR.B    #1,D7        
  1205.     MOVE.W    CCR,D7
  1206.     ANDI.B    #$1D,D7
  1207.     OR.B    D7,D5
  1208.     MOVE.W    (A2)+,D1
  1209.     IF    DEEBUG
  1210.     BRA    DEBUG
  1211.     ELSE
  1212.     JMP    ([A3,D1.W*4])
  1213.     ENDIF
  1214.  
  1215. .1:    ANDI.B    #$E2,D5
  1216.     SWAP    D4
  1217.     MOVE.B    (A0,D1.L),D4        
  1218.     LSR.B    #1,D4        
  1219.     MOVE.W    CCR,D7
  1220.     MOVE.B    D4,(A0,D1.L)
  1221.     SWAP    D4
  1222.     ANDI.B    #$1D,D7
  1223.     OR.B    D7,D5
  1224.     MOVE.W    (A2)+,D1
  1225.     IF    DEEBUG
  1226.     BRA    DEBUG
  1227.     ELSE
  1228.     JMP    ([A3,D1.W*4])
  1229.     ENDIF
  1230.  
  1231. MAIN50:                ; 6502 BVC n
  1232.     EXT.W    D1
  1233.     MOVE.W    D5,CCR
  1234.     BVS.B    M501
  1235.     ADDA.W    D1,A2
  1236.     MOVE.W    (A2)+,D1
  1237.     IF    DEEBUG
  1238.     BRA    DEBUG
  1239.     ELSE
  1240.     JMP    ([A3,D1.W*4])
  1241.     ENDIF
  1242.  
  1243. M501:    MOVE.W    (A2)+,D1
  1244.     IF    DEEBUG
  1245.     BRA    DEBUG
  1246.     ELSE
  1247.     JMP    ([A3,D1.W*4])
  1248.     ENDIF
  1249.  
  1250. MAIN51:                ; 6502 EOR (n),Y
  1251.     ANDI.B    #$F3,D5
  1252.     ANDI.L    #$FF,D1
  1253.     MOVE.W    (A0,D1.W),D1    
  1254.     ROL.W    #8,D1
  1255.     ADD.W    D3,D1
  1256.     MOVE.B    (A0,D1.L),D7
  1257.     EOR.B    D7,D0    
  1258.     MOVE.W    CCR,D7
  1259.     ANDI.B    #$0C,D7
  1260.     OR.B    D7,D5
  1261.     MOVE.W    (A2)+,D1
  1262.     IF    DEEBUG
  1263.     BRA    DEBUG
  1264.     ELSE
  1265.     JMP    ([A3,D1.W*4])
  1266.     ENDIF
  1267.  
  1268. MAIN55:                ; 6502 EOR n,X
  1269.     ANDI.B    #$F3,D5
  1270.     ADD.B    D2,D1
  1271.     MOVE.B    (A0,D1.L),D7
  1272.     EOR.B    D7,D0    
  1273.     MOVE.W    CCR,D7
  1274.     ANDI.B    #$0C,D7
  1275.     OR.B    D7,D5
  1276.     MOVE.W    (A2)+,D1
  1277.     IF    DEEBUG
  1278.     BRA    DEBUG
  1279.     ELSE
  1280.     JMP    ([A3,D1.W*4])
  1281.     ENDIF
  1282.  
  1283. MAIN56:                ; 6502 LSR n,X
  1284.     ANDI.B    #$E2,D5
  1285.     ADD.B    D2,D1
  1286.     ANDI.W    #$FF,D1
  1287.     SWAP    D4
  1288.     MOVE.B    (A0,D1.W),D4
  1289.     LSR.B    #1,D4
  1290.     MOVE.W    CCR,D7
  1291.     MOVE.B    D4,(A0,D1.W)
  1292.     SWAP    D4
  1293.     ANDI.B    #$1D,D7
  1294.     OR.B    D7,D5
  1295.     MOVE.W    (A2)+,D1
  1296.     IF    DEEBUG
  1297.     BRA    DEBUG
  1298.     ELSE
  1299.     JMP    ([A3,D1.W*4])
  1300.     ENDIF
  1301.  
  1302. MAIN58:                ; 6502 CLI
  1303.     ANDI.B    #$FB,D6
  1304.     SUBQ.L    #1,A2
  1305.     MOVE.W    (A2)+,D1
  1306.     IF    DEEBUG
  1307.     BRA    DEBUG
  1308.     ELSE
  1309.     JMP    ([A3,D1.W*4])
  1310.     ENDIF
  1311.  
  1312. MAIN59:                ; 6502 EOR nn,Y
  1313.     ROL.W    #8,D1
  1314.     MOVE.B    (A2)+,D1
  1315.     ROL.W    #8,D1
  1316.     ADD.W    D3,D1
  1317.     ANDI.B    #$F3,D5
  1318.     MOVE.B    (A0,D1.L),D7
  1319.     EOR.B    D7,D0    
  1320.     MOVE.W    CCR,D7
  1321.     ANDI.B    #$0C,D7
  1322.     OR.B    D7,D5
  1323.     MOVE.W    (A2)+,D1
  1324.     IF    DEEBUG
  1325.     BRA    DEBUG
  1326.     ELSE
  1327.     JMP    ([A3,D1.W*4])
  1328.     ENDIF
  1329.  
  1330.     IF    P65C02
  1331. MAIN5A:                ; 6502 PHY (65C02 ONLY)
  1332.     MOVE.B    D3,(A4,D4.W)
  1333.     SUBQ.B    #1,D4
  1334.     SUBQ.L    #1,A2
  1335.     MOVE.W    (A2)+,D1
  1336.     IF    DEEBUG
  1337.     BRA    DEBUG
  1338.     ELSE
  1339.     JMP    ([A3,D1.W*4])
  1340.     ENDIF
  1341.  
  1342.     ENDIF
  1343.  
  1344. MAIN5D:                ; 6502 EOR nn,X
  1345.     ROL.W    #8,D1
  1346.     MOVE.B    (A2)+,D1
  1347.     ROL.W    #8,D1
  1348.     ADD.W    D2,D1
  1349.     ANDI.B    #$F3,D5
  1350.     MOVE.B    (A0,D1.L),D7
  1351.     EOR.B    D7,D0    
  1352.     MOVE.W    CCR,D7
  1353.     ANDI.B    #$0C,D7
  1354.     OR.B    D7,D5
  1355.     MOVE.W    (A2)+,D1
  1356.     IF    DEEBUG
  1357.     BRA    DEBUG
  1358.     ELSE
  1359.     JMP    ([A3,D1.W*4])
  1360.     ENDIF
  1361.  
  1362. MAIN5E:                ; 6502 LSR nn,X  ***************
  1363.     ROL.W    #8,D1
  1364.     MOVE.B    (A2)+,D1
  1365.     ROL.W    #8,D1
  1366.     ADD.W    D2,D1
  1367.     BPL.B    .1
  1368.  
  1369.     ANDI.B    #$E2,D5        ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  1370.     MOVE.B    (A0,D1.L),D7
  1371.     LSR.B    #1,D7        
  1372.     MOVE.W    CCR,D7
  1373.     ANDI.B    #$1D,D7
  1374.     OR.B    D7,D5
  1375.     MOVE.W    (A2)+,D1
  1376.     IF    DEEBUG
  1377.     BRA    DEBUG
  1378.     ELSE
  1379.     JMP    ([A3,D1.W*4])
  1380.     ENDIF
  1381.  
  1382. .1:    ANDI.B    #$E2,D5
  1383.     SWAP    D4
  1384.     MOVE.B    (A0,D1.L),D4        
  1385.     LSR.B    #1,D4        
  1386.     MOVE.W    CCR,D7
  1387.     MOVE.B    D4,(A0,D1.L)
  1388.     SWAP    D4
  1389.     ANDI.B    #$1D,D7
  1390.     OR.B    D7,D5
  1391.     MOVE.W    (A2)+,D1
  1392.     IF    DEEBUG
  1393.     BRA    DEBUG
  1394.     ELSE
  1395.     JMP    ([A3,D1.W*4])
  1396.     ENDIF
  1397.  
  1398. MAIN60:                ; 6502 RTS 
  1399.     MOVEQ    #0,D7
  1400.     ADDQ.B    #1,D4
  1401.     MOVE.B    (A4,D4.W),D7    ; PULL LSB
  1402.     ROL.W    #8,D7
  1403.     ADDQ.B    #1,D4
  1404.     MOVE.B    (A4,D4.W),D7    ; PULL MSB
  1405.     ROL.W    #8,D7
  1406.  
  1407.     MOVE.L    A0,A2
  1408.     ADDA.L    D7,A2
  1409.     ADDQ.L    #1,A2        ; ADD 1 TO GET NEXT INSTRUCTION
  1410.     MOVE.W    (A2)+,D1
  1411.     IF    DEEBUG
  1412.     BRA    DEBUG
  1413.     ELSE
  1414.     JMP    ([A3,D1.W*4])
  1415.     ENDIF
  1416.  
  1417. MAIN61:                ; 6502 ADC (n,X)
  1418.  
  1419.     ORI.B    #$04,D5        ; SET Z 
  1420.     ANDI.L    #$FF,D1
  1421.     ADD.B    D2,D1
  1422.     MOVE.W    (A0,D1.W),D1
  1423.     ROL.W    #8,D1
  1424.     MOVE.B    (A0,D1.L),D7
  1425.     MOVE.W    D5,CCR
  1426.     ADDX.B    D7,D0    
  1427.     MOVE.W    CCR,D5        ; NO NEED TO MASK ALL REGS ARE AFFECTED
  1428.     MOVE.W    (A2)+,D1
  1429.     IF    DEEBUG
  1430.     BRA    DEBUG
  1431.     ELSE
  1432.     JMP    ([A3,D1.W*4])
  1433.     ENDIF
  1434.  
  1435. MAIN65:                ; 6502 ADC n
  1436.     ORI.B    #$04,D5        ; SET Z 
  1437.     ANDI.W    #$FF,D1
  1438.     MOVE.B    (A0,D1.W),D7
  1439.     MOVE.W    D5,CCR
  1440.     ADDX.B    D7,D0    
  1441.     MOVE.W    CCR,D5
  1442.     MOVE.W    (A2)+,D1
  1443.     IF    DEEBUG
  1444.     BRA    DEBUG
  1445.     ELSE
  1446.     JMP    ([A3,D1.W*4])
  1447.     ENDIF
  1448.  
  1449. MAIN66:                ; 6502 ROR n
  1450.     ANDI.W    #$FF,D1
  1451.     SWAP    D4
  1452.     MOVE.B    (A0,D1.W),D4
  1453.     MOVE.W    D5,CCR
  1454.     ROXR.B    #1,D4
  1455.     MOVE.W    CCR,D7
  1456.     MOVE.B    D4,(A0,D1.W)
  1457.     SWAP    D4
  1458.     ANDI.B    #$E2,D5
  1459.     ANDI.B    #$1D,D7
  1460.     OR.B    D7,D5
  1461.     MOVE.W    (A2)+,D1
  1462.     IF    DEEBUG
  1463.     BRA    DEBUG
  1464.     ELSE
  1465.     JMP    ([A3,D1.W*4])
  1466.     ENDIF
  1467.  
  1468. MAIN68:                ; 6502 PLA
  1469.     ANDI.B    #$F3,D5        ; zero N and Z
  1470.     ADDQ.B    #1,D4
  1471.     MOVE.B    (A4,D4.W),D0
  1472.     MOVE.W    CCR,D7
  1473.     ANDI.B    #$0C,D7        ; find N and Z only
  1474.     OR.B    D7,D5
  1475.     SUBQ.L    #1,A2
  1476.     MOVE.W    (A2)+,D1
  1477.     IF    DEEBUG
  1478.     BRA    DEBUG
  1479.     ELSE
  1480.     JMP    ([A3,D1.W*4])
  1481.     ENDIF
  1482.  
  1483. MAIN69:                ; 6502 ADC #n
  1484.     ORI.B    #$04,D5        ; SET Z 
  1485.     MOVE.W    D5,CCR
  1486.     ADDX.B    D1,D0
  1487.     MOVE.W    CCR,D5
  1488.     MOVE.W    (A2)+,D1
  1489.     IF    DEEBUG
  1490.     BRA    DEBUG
  1491.     ELSE
  1492.     JMP    ([A3,D1.W*4])
  1493.     ENDIF
  1494.  
  1495. MAIN6A:                ; 6502 ROR A
  1496.     MOVE.W    D5,CCR
  1497.     ROXR.B    #1,D0
  1498.     MOVE.W    CCR,D7
  1499.     ANDI.B    #$E2,D5
  1500.     ANDI.B    #$1D,D7
  1501.     OR.B    D7,D5
  1502.     SUBQ.L    #1,A2
  1503.     MOVE.W    (A2)+,D1
  1504.     IF    DEEBUG
  1505.     BRA    DEBUG
  1506.     ELSE
  1507.     JMP    ([A3,D1.W*4])
  1508.     ENDIF
  1509.  
  1510. MAIN6C:                ; 6502 JMP (nn)
  1511.     ROL.W    #8,D1
  1512.     MOVE.B    (A2)+,D1
  1513.     ROL.W    #8,D1
  1514.     MOVEQ    #0,D7
  1515.     MOVE.W    D1,D7
  1516.     MOVE.W    (A0,D7.L),D7
  1517.     ROL.W    #8,D7
  1518.     MOVE.L    A0,A2
  1519.     ADDA.L    D7,A2
  1520.     MOVE.W    (A2)+,D1
  1521.     IF    DEEBUG
  1522.     BRA    DEBUG
  1523.     ELSE
  1524.     JMP    ([A3,D1.W*4])
  1525.     ENDIF
  1526.  
  1527. MAIN6D:                ; 6502 ADC nn
  1528.     ROL.W    #8,D1
  1529.     MOVE.B    (A2)+,D1
  1530.     ROL.W    #8,D1
  1531.     ORI.B    #$04,D5        ; SET Z 
  1532.     MOVE.B    (A0,D1.L),D7
  1533.     MOVE.W    D5,CCR
  1534.     ADDX.B    D7,D0    
  1535.     MOVE.W    CCR,D5
  1536.     MOVE.W    (A2)+,D1
  1537.     IF    DEEBUG
  1538.     BRA    DEBUG
  1539.     ELSE
  1540.     JMP    ([A3,D1.W*4])
  1541.     ENDIF
  1542.  
  1543. MAIN6E:                ; 6502 ROR nn  ***************
  1544.     ROL.W    #8,D1
  1545.     MOVE.B    (A2)+,D1
  1546.     ROL.W    #8,D1
  1547.     BPL.B    .1
  1548.  
  1549.     MOVE.B    (A0,D1.L),D7    ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  1550.     MOVE.W    D5,CCR
  1551.     ROXR.B    #1,D7        
  1552.     MOVE.W    CCR,D7
  1553.     ANDI.B    #$E2,D5
  1554.     ANDI.B    #$1D,D7
  1555.     OR.B    D7,D5
  1556.     MOVE.W    (A2)+,D1
  1557.     IF    DEEBUG
  1558.     BRA    DEBUG
  1559.     ELSE
  1560.     JMP    ([A3,D1.W*4])
  1561.     ENDIF
  1562.  
  1563. .1:    SWAP    D4
  1564.     MOVE.B    (A0,D1.L),D4
  1565.     MOVE.W    D5,CCR
  1566.     ROXR.B    #1,D4    
  1567.     MOVE.W    CCR,D7
  1568.     MOVE.B    D4,(A0,D1.L)
  1569.     SWAP    D4
  1570.     ANDI.B    #$E2,D5
  1571.     ANDI.B    #$1D,D7
  1572.     OR.B    D7,D5
  1573.     MOVE.W    (A2)+,D1
  1574.     IF    DEEBUG
  1575.     BRA    DEBUG
  1576.     ELSE
  1577.     JMP    ([A3,D1.W*4])
  1578.     ENDIF
  1579.  
  1580. MAIN70:                ; 6502 BVS n
  1581.     EXT.W    D1
  1582.     MOVE.W    D5,CCR
  1583.     BVC.B    M701
  1584.     ADDA.W    D1,A2
  1585.     MOVE.W    (A2)+,D1
  1586.     IF    DEEBUG
  1587.     BRA    DEBUG
  1588.     ELSE
  1589.     JMP    ([A3,D1.W*4])
  1590.     ENDIF
  1591.  
  1592. M701:    MOVE.W    (A2)+,D1
  1593.     IF    DEEBUG
  1594.     BRA    DEBUG
  1595.     ELSE
  1596.     JMP    ([A3,D1.W*4])
  1597.     ENDIF
  1598.  
  1599. MAIN71:                ; 6502 ADC (n),Y
  1600.     ANDI.L    #$FF,D1
  1601.     MOVE.W    (A0,D1.W),D1    
  1602.     ROL.W    #8,D1
  1603.     ADD.W    D3,D1
  1604.     ORI.B    #$04,D5        ; SET Z 
  1605.     MOVE.B    (A0,D1.L),D7
  1606.     MOVE.W    D5,CCR
  1607.     ADDX.B    D7,D0    
  1608.     MOVE.W    CCR,D5
  1609.     MOVE.W    (A2)+,D1
  1610.     IF    DEEBUG
  1611.     BRA    DEBUG
  1612.     ELSE
  1613.     JMP    ([A3,D1.W*4])
  1614.     ENDIF
  1615.  
  1616. MAIN75:                ; 6502 ADC n,X
  1617.     ADD.B    D2,D1
  1618.     ANDI.W    #$FF,D1
  1619.     ORI.B    #$04,D5        ; SET Z 
  1620.     MOVE.B    (A0,D1.L),D7
  1621.     MOVE.W    D5,CCR
  1622.     ADDX.B    D7,D0    
  1623.     MOVE.W    CCR,D5
  1624.     MOVE.W    (A2)+,D1
  1625.     IF    DEEBUG
  1626.     BRA    DEBUG
  1627.     ELSE
  1628.     JMP    ([A3,D1.W*4])
  1629.     ENDIF
  1630.  
  1631. MAIN76:                ; 6502 ROR n,X
  1632.     ADD.B    D2,D1
  1633.     ANDI.W    #$FF,D1
  1634.     SWAP    D4
  1635.     MOVE.B    (A0,D1.W),D4
  1636.     MOVE.W    D5,CCR
  1637.     ROXR.B    #1,D4
  1638.     MOVE.W    CCR,D7
  1639.     MOVE.B    D4,(A0,D1.W)
  1640.     SWAP    D4
  1641.     ANDI.B    #$E2,D5
  1642.     ANDI.B    #$1D,D7
  1643.     OR.B    D7,D5
  1644.     MOVE.W    (A2)+,D1
  1645.     IF    DEEBUG
  1646.     BRA    DEBUG
  1647.     ELSE
  1648.     JMP    ([A3,D1.W*4])
  1649.     ENDIF
  1650.  
  1651. MAIN78:                ; 6502 SEI
  1652.     ORI.B    #$04,D6
  1653.     SUBQ.L    #1,A2
  1654.     MOVE.W    (A2)+,D1
  1655.     IF    DEEBUG
  1656.     BRA    DEBUG
  1657.     ELSE
  1658.     JMP    ([A3,D1.W*4])
  1659.     ENDIF
  1660.  
  1661. MAIN79:                ; 6502 ADC nn,Y
  1662.     ROL.W    #8,D1
  1663.     MOVE.B    (A2)+,D1
  1664.     ROL.W    #8,D1
  1665.     ADD.W    D3,D1
  1666.     ORI.B    #$04,D5        ; SET Z 
  1667.     MOVE.B    (A0,D1.L),D7
  1668.     MOVE.W    D5,CCR
  1669.     ADDX.B    D7,D0    
  1670.     MOVE.W    CCR,D5
  1671.     MOVE.W    (A2)+,D1
  1672.     IF    DEEBUG
  1673.     BRA    DEBUG
  1674.     ELSE
  1675.     JMP    ([A3,D1.W*4])
  1676.     ENDIF
  1677.  
  1678.     IF    P65C02
  1679. MAIN7A:                ; 6502 PLY (65C02 ONLY)
  1680.     ADDQ.B    #1,D4
  1681.     MOVE.B    (A4,D4.W),D3
  1682.     SUBQ.L    #1,A2
  1683.     MOVE.W    (A2)+,D1
  1684.     IF    DEEBUG
  1685.     BRA    DEBUG
  1686.     ELSE
  1687.     JMP    ([A3,D1.W*4])
  1688.     ENDIF
  1689.  
  1690.     ENDIF
  1691.  
  1692. MAIN7D:                ; 6502 ADC nn,X
  1693.     ROL.W    #8,D1
  1694.     MOVE.B    (A2)+,D1
  1695.     ROL.W    #8,D1
  1696.     ADD.W    D2,D1
  1697.     ORI.B    #$04,D5        ; SET Z 
  1698.     MOVE.B    (A0,D1.L),D7
  1699.     MOVE.W    D5,CCR
  1700.     ADDX.B    D7,D0    
  1701.     MOVE.W    CCR,D5
  1702.     MOVE.W    (A2)+,D1
  1703.     IF    DEEBUG
  1704.     BRA    DEBUG
  1705.     ELSE
  1706.     JMP    ([A3,D1.W*4])
  1707.     ENDIF
  1708.  
  1709. MAIN7E:                ; 6502 ROR nn,X  ***************
  1710.     ROL.W    #8,D1
  1711.     MOVE.B    (A2)+,D1
  1712.     ROL.W    #8,D1
  1713.     ADD.W    D2,D1
  1714.     BPL.B    .1
  1715.  
  1716.     MOVE.B    (A0,D1.L),D7    ; ADDRESS IS 8000-FFFF COND FLAGS BUT DONT CHANGE MEM
  1717.     MOVE.W    D5,CCR
  1718.     ROXR.B    #1,D7        
  1719.     MOVE.W    CCR,D7
  1720.     ANDI.B    #$E2,D5
  1721.     ANDI.B    #$1D,D7
  1722.     OR.B    D7,D5
  1723.     MOVE.W    (A2)+,D1
  1724.     IF    DEEBUG
  1725.     BRA    DEBUG
  1726.     ELSE
  1727.     JMP    ([A3,D1.W*4])
  1728.     ENDIF
  1729.  
  1730. .1:    SWAP    D4
  1731.     MOVE.B    (A0,D1.L),D4
  1732.     MOVE.W    D5,CCR
  1733.     ROXR.B    #1,D4    
  1734.     MOVE.W    CCR,D7
  1735.     MOVE.B    D4,(A0,D1.L)
  1736.     SWAP    D4
  1737.     ANDI.B    #$E2,D5
  1738.     ANDI.B    #$1D,D7
  1739.     OR.B    D7,D5
  1740.     MOVE.W    (A2)+,D1
  1741.     IF    DEEBUG
  1742.     BRA    DEBUG
  1743.     ELSE
  1744.     JMP    ([A3,D1.W*4])
  1745.     ENDIF
  1746.  
  1747.  
  1748.     IF    P65C02
  1749. MAIN80:                ; 6502 BRA n (65C02 ONLY)
  1750.     EXT.W    D1
  1751.     MOVE.W    D5,CCR
  1752.     ADDA.W    D1,A2
  1753.     MOVE.W    (A2)+,D1
  1754.     IF    DEEBUG
  1755.     BRA    DEBUG
  1756.     ELSE
  1757.     JMP    ([A3,D1.W*4])
  1758.     ENDIF
  1759.  
  1760.     ENDIF
  1761.  
  1762. MAIN81:                ; 6502 STA (n,X)************************* KBD
  1763.     ANDI.L    #$FF,D1
  1764.     ADD.B    D2,D1
  1765.     MOVE.W    (A0,D1.W),D1    
  1766.     ROL.W    #8,D1
  1767.     BPL.B    .1
  1768.  
  1769.     CMPI.W    #$D400,D1
  1770.     BCC.B    .2
  1771.     CMPI.W    #$CFFF,D1
  1772.     BHI.B    .3
  1773.  
  1774. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  1775.     IF    DEEBUG
  1776.     BRA    DEBUG
  1777.     ELSE
  1778.     JMP    ([A3,D1.W*4])
  1779.     ENDIF
  1780.  
  1781. .3:    MOVE.B    D0,D7        ; MOVE A TO D7 FOR SCREENWRITE
  1782.     MOVE.B    D0,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  1783.     BSR    _screenwrite
  1784.     MOVE.W    (A2)+,D1
  1785.     IF    DEEBUG
  1786.     BRA    DEBUG
  1787.     ELSE
  1788.     JMP    ([A3,D1.W*4])
  1789.     ENDIF
  1790.  
  1791. .1:    MOVE.B    D0,(A0,D1.L)    
  1792.     MOVE.W    (A2)+,D1
  1793.     IF    DEEBUG
  1794.     BRA    DEBUG
  1795.     ELSE
  1796.     JMP    ([A3,D1.W*4])
  1797.     ENDIF
  1798.  
  1799. MAIN84:                    ; 6502 STY n
  1800.     ANDI.W    #$FF,D1
  1801.     MOVE.B    D3,(A0,D1.W)    
  1802.     MOVE.W    (A2)+,D1
  1803.     IF    DEEBUG
  1804.     BRA    DEBUG
  1805.     ELSE
  1806.     JMP    ([A3,D1.W*4])
  1807.     ENDIF
  1808.  
  1809. MAIN85:                    ; 6502 STA n
  1810.     ANDI.W    #$FF,D1
  1811.     MOVE.B    D0,(A0,D1.W)    
  1812.     MOVE.W    (A2)+,D1
  1813.     IF    DEEBUG
  1814.     BRA    DEBUG
  1815.     ELSE
  1816.     JMP    ([A3,D1.W*4])
  1817.     ENDIF
  1818.  
  1819. MAIN86:                    ; 6502 STX n
  1820.     ANDI.W    #$FF,D1
  1821.     MOVE.B    D2,(A0,D1.W)    
  1822.     MOVE.W    (A2)+,D1
  1823.     IF    DEEBUG
  1824.     BRA    DEBUG
  1825.     ELSE
  1826.     JMP    ([A3,D1.W*4])
  1827.     ENDIF
  1828.  
  1829. MAIN88:                ; 6502 DEY
  1830.     ANDI.B    #$F3,D5
  1831.     SUBQ.B    #1,D3
  1832.     MOVE.W    CCR,D7
  1833.     ANDI.B    #$0C,D7
  1834.     OR.B    D7,D5
  1835.     SUBQ.L    #1,A2
  1836.     MOVE.W    (A2)+,D1
  1837.     IF    DEEBUG
  1838.     BRA    DEBUG
  1839.     ELSE
  1840.     JMP    ([A3,D1.W*4])
  1841.     ENDIF
  1842.  
  1843. MAIN8A:                ; 6502 TXA  
  1844.     ANDI.B    #$F3,D5
  1845.     MOVE.B    D2,D0
  1846.     MOVE.W    CCR,D7
  1847.     ANDI.B    #$0C,D7
  1848.     OR.B    D7,D5
  1849.     SUBQ.L    #1,A2
  1850.     MOVE.W    (A2)+,D1
  1851.     IF    DEEBUG
  1852.     BRA    DEBUG
  1853.     ELSE
  1854.     JMP    ([A3,D1.W*4])
  1855.     ENDIF
  1856.  
  1857. MAIN8C:                ; 6502 STY nn********************* no kbd
  1858.     ROL.W    #8,D1
  1859.     MOVE.B    (A2)+,D1
  1860.     ROL.W    #8,D1
  1861.     BPL.B    .1
  1862.  
  1863.     CMPI.W    #$D400,D1    ; check for screen mem
  1864.     BCC.B    .2
  1865.     CMPI.W    #$CFFF,D1
  1866.     BHI.B    .3
  1867.  
  1868. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  1869.     IF    DEEBUG
  1870.     BRA    DEBUG
  1871.     ELSE
  1872.     JMP    ([A3,D1.W*4])
  1873.     ENDIF
  1874.  
  1875. .3:    MOVE.B    D3,D7        ; MOVE Y TO D7 FOR SCREENWRITE
  1876.     MOVE.B    D3,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  1877.     BSR    _screenwrite
  1878.     MOVE.W    (A2)+,D1
  1879.     IF    DEEBUG
  1880.     BRA    DEBUG
  1881.     ELSE
  1882.     JMP    ([A3,D1.W*4])
  1883.     ENDIF
  1884.  
  1885. .1:    MOVE.B    D3,(A0,D1.L)
  1886.     MOVE.W    (A2)+,D1
  1887.     IF    DEEBUG
  1888.     BRA    DEBUG
  1889.     ELSE
  1890.     JMP    ([A3,D1.W*4])
  1891.     ENDIF
  1892.  
  1893. MAIN8D:                ; 6502 STA nn****************** still no KBD support.
  1894.     ROL.W    #8,D1
  1895.     MOVE.B    (A2)+,D1
  1896.     ROL.W    #8,D1
  1897.     BPL.B    .1        ; branch if <$8000 (in ram)
  1898.  
  1899.     CMPI.W    #$D400,D1
  1900.     BCC.B    .2
  1901.     CMPI.W    #$CFFF,D1
  1902.     BHI.B    .3
  1903.  
  1904. .2:    CMPI.W    #$DF00,D1    ; POINTING AT KEYBOARD LOC?
  1905.     BNE.B    .4
  1906.  
  1907.     BSR    GETKEY        ; GET KEYPRESSES
  1908.     MOVE.B    D7,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  1909.  
  1910.  
  1911. .4:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  1912.     IF    DEEBUG
  1913.     BRA    DEBUG
  1914.     ELSE
  1915.     JMP    ([A3,D1.W*4])
  1916.     ENDIF
  1917.  
  1918. .3:    MOVE.B    D0,D7        ; MOVE A TO D7 FOR SCREENWRITE
  1919.     MOVE.B    D0,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  1920.     BSR    _screenwrite
  1921.     MOVE.W    (A2)+,D1
  1922.     IF    DEEBUG
  1923.     BRA    DEBUG
  1924.     ELSE
  1925.     JMP    ([A3,D1.W*4])
  1926.     ENDIF
  1927.  
  1928.  
  1929. .1:    MOVE.B    D0,(A0,D1.L)    ; pointing at RAM do normal STA
  1930.     MOVE.W    (A2)+,D1
  1931.     IF    DEEBUG
  1932.     BRA    DEBUG
  1933.     ELSE
  1934.     JMP    ([A3,D1.W*4])
  1935.     ENDIF
  1936.  
  1937. MAIN8E:                ; 6502 STX nn************* NO KBD
  1938.     ROL.W    #8,D1
  1939.     MOVE.B    (A2)+,D1
  1940.     ROL.W    #8,D1
  1941.     BPL.B    .1
  1942.  
  1943.     CMPI.W    #$D400,D1
  1944.     BCC.B    .2
  1945.     CMPI.W    #$CFFF,D1
  1946.     BHI.B    .3
  1947.  
  1948. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  1949.     IF    DEEBUG
  1950.     BRA    DEBUG
  1951.     ELSE
  1952.     JMP    ([A3,D1.W*4])
  1953.     ENDIF
  1954.  
  1955. .3:    MOVE.B    D2,D7        ; MOVE X TO D7 FOR SCREENWRITE
  1956.     MOVE.B    D2,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  1957.     BSR    _screenwrite
  1958.     MOVE.W    (A2)+,D1
  1959.     IF    DEEBUG
  1960.     BRA    DEBUG
  1961.     ELSE
  1962.     JMP    ([A3,D1.W*4])
  1963.     ENDIF
  1964.  
  1965. .1:    MOVE.B    D2,(A0,D1.L)
  1966.     MOVE.W    (A2)+,D1
  1967.     IF    DEEBUG
  1968.     BRA    DEBUG
  1969.     ELSE
  1970.     JMP    ([A3,D1.W*4])
  1971.     ENDIF
  1972.  
  1973. MAIN90:                ; 6502 BCC n
  1974.     EXT.W    D1
  1975.     MOVE.W    D5,CCR
  1976.     BCS.B    M901
  1977.     ADDA.W    D1,A2
  1978.     MOVE.W    (A2)+,D1
  1979.     IF    DEEBUG
  1980.     BRA    DEBUG
  1981.     ELSE
  1982.     JMP    ([A3,D1.W*4])
  1983.     ENDIF
  1984.  
  1985. M901:    MOVE.W    (A2)+,D1
  1986.     IF    DEEBUG
  1987.     BRA    DEBUG
  1988.     ELSE
  1989.     JMP    ([A3,D1.W*4])
  1990.     ENDIF
  1991.  
  1992. MAIN91:                ; 6502 STA (n),Y****************** KBD
  1993.     ANDI.L    #$FF,D1
  1994.     MOVE.W    (A0,D1.W),D1    
  1995.     ROL.W    #8,D1
  1996.     ADD.W    D3,D1
  1997.     BPL.B    .1
  1998.  
  1999.     CMPI.W    #$D400,D1
  2000.     BCC.B    .2
  2001.     CMPI.W    #$CFFF,D1
  2002.     BHI.B    .3
  2003.  
  2004. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  2005.     IF    DEEBUG
  2006.     BRA    DEBUG
  2007.     ELSE
  2008.     JMP    ([A3,D1.W*4])
  2009.     ENDIF
  2010.  
  2011. .3:    MOVE.B    D0,D7        ; MOVE A TO D7 FOR SCREENWRITE
  2012.     MOVE.B    D0,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  2013.     BSR    _screenwrite
  2014.     MOVE.W    (A2)+,D1
  2015.     IF    DEEBUG
  2016.     BRA    DEBUG
  2017.     ELSE
  2018.     JMP    ([A3,D1.W*4])
  2019.     ENDIF
  2020.  
  2021. .1:    MOVE.B    D0,(A0,D1.L)    
  2022.     MOVE.W    (A2)+,D1
  2023.     IF    DEEBUG
  2024.     BRA    DEBUG
  2025.     ELSE
  2026.     JMP    ([A3,D1.W*4])
  2027.     ENDIF
  2028.  
  2029. MAIN94:                ; 6502 STY n,X
  2030.     ADD.B    D2,D1
  2031.     ANDI.W    #$FF,D1
  2032.     MOVE.B    D3,(A0,D1.W)    
  2033.     MOVE.W    (A2)+,D1
  2034.     IF    DEEBUG
  2035.     BRA    DEBUG
  2036.     ELSE
  2037.     JMP    ([A3,D1.W*4])
  2038.     ENDIF
  2039.  
  2040. MAIN95:                ; 6502 STA n,X
  2041.     ADD.B    D2,D1
  2042.     ANDI.W    #$FF,D1
  2043.     MOVE.B    D0,(A0,D1.W)    
  2044.     MOVE.W    (A2)+,D1
  2045.     IF    DEEBUG
  2046.     BRA    DEBUG
  2047.     ELSE
  2048.     JMP    ([A3,D1.W*4])
  2049.     ENDIF
  2050.  
  2051. MAIN96:                ; 6502 STX n,Y
  2052.     ADD.B    D3,D1
  2053.     ANDI.W    #$FF,D1
  2054.     MOVE.B    D2,(A0,D1.W)    
  2055.     MOVE.W    (A2)+,D1
  2056.     IF    DEEBUG
  2057.     BRA    DEBUG
  2058.     ELSE
  2059.     JMP    ([A3,D1.W*4])
  2060.     ENDIF
  2061.  
  2062. MAIN98:                ; 6502 TYA  
  2063.     ANDI.B    #$F3,D5
  2064.     MOVE.B    D3,D0
  2065.     MOVE.W    CCR,D7
  2066.     ANDI.B    #$0C,D7
  2067.     OR.B    D7,D5
  2068.     SUBQ.L    #1,A2
  2069.     MOVE.W    (A2)+,D1
  2070.     IF    DEEBUG
  2071.     BRA    DEBUG
  2072.     ELSE
  2073.     JMP    ([A3,D1.W*4])
  2074.     ENDIF
  2075.  
  2076. MAIN99:                ; 6502 STA nn,Y************** KBD
  2077.     ROL.W    #8,D1
  2078.     MOVE.B    (A2)+,D1
  2079.     ROL.W    #8,D1
  2080.     ADD.W    D3,D1
  2081.     BPL.B    .1
  2082.  
  2083.     CMPI.W    #$D400,D1
  2084.     BCC.B    .2
  2085.     CMPI.W    #$CFFF,D1
  2086.     BHI.B    .3
  2087.  
  2088. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  2089.     IF    DEEBUG
  2090.     BRA    DEBUG
  2091.     ELSE
  2092.     JMP    ([A3,D1.W*4])
  2093.     ENDIF
  2094.  
  2095. .3:    MOVE.B    D0,D7        ; MOVE A TO D7 FOR SCREENWRITE
  2096.     MOVE.B    D0,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  2097.     BSR    _screenwrite
  2098.     MOVE.W    (A2)+,D1
  2099.     IF    DEEBUG
  2100.     BRA    DEBUG
  2101.     ELSE
  2102.     JMP    ([A3,D1.W*4])
  2103.     ENDIF
  2104.  
  2105. .1:    MOVE.B    D0,(A0,D1.L)    
  2106.     MOVE.W    (A2)+,D1
  2107.     IF    DEEBUG
  2108.     BRA    DEBUG
  2109.     ELSE
  2110.     JMP    ([A3,D1.W*4])
  2111.     ENDIF
  2112.  
  2113. MAIN9A:                ; 6502 TXS  
  2114.     MOVE.B    D2,D4
  2115.     SUBQ.L    #1,A2
  2116.     MOVE.W    (A2)+,D1
  2117.     IF    DEEBUG
  2118.     BRA    DEBUG
  2119.     ELSE
  2120.     JMP    ([A3,D1.W*4])
  2121.     ENDIF
  2122.  
  2123. MAIN9D:                ; 6502 STA nn,X**************
  2124.     ROL.W    #8,D1
  2125.     MOVE.B    (A2)+,D1
  2126.     ROL.W    #8,D1
  2127.     ADD.W    D2,D1
  2128.     BPL.B    .1
  2129.  
  2130.     CMPI.W    #$D400,D1
  2131.     BCC.B    .2
  2132.     CMPI.W    #$CFFF,D1
  2133.     BHI.B    .3
  2134.  
  2135. .2:    MOVE.W    (A2)+,D1    ; pointing at ROM do nothing
  2136.     IF    DEEBUG
  2137.     BRA    DEBUG
  2138.     ELSE
  2139.     JMP    ([A3,D1.W*4])
  2140.     ENDIF
  2141.  
  2142. .3:    MOVE.B    D0,D7        ; MOVE A TO D7 FOR SCREENWRITE
  2143.     MOVE.B    D0,(A0,D1.L)    ; SAVE BYTE TO REAL MEM
  2144.     BSR    _screenwrite
  2145.     MOVE.W    (A2)+,D1
  2146.     IF    DEEBUG
  2147.     BRA    DEBUG
  2148.     ELSE
  2149.     JMP    ([A3,D1.W*4])
  2150.     ENDIF
  2151.  
  2152. .1:    MOVE.B    D0,(A0,D1.L)    ; POINTING AT RAM -> DO INST
  2153.     MOVE.W    (A2)+,D1
  2154.     IF    DEEBUG
  2155.     BRA    DEBUG
  2156.     ELSE
  2157.     JMP    ([A3,D1.W*4])
  2158.     ENDIF
  2159.  
  2160. MAINA0:                ; 6502 LDY #n
  2161.     ANDI.B    #$F3,D5
  2162.     MOVE.B    D1,D3
  2163.     MOVE.W    CCR,D7
  2164.     ANDI.B    #$0C,D7
  2165.     OR.B    D7,D5
  2166.     MOVE.W    (A2)+,D1
  2167.     IF    DEEBUG
  2168.     BRA    DEBUG
  2169.     ELSE
  2170.     JMP    ([A3,D1.W*4])
  2171.     ENDIF
  2172.  
  2173. MAINA1:                ; 6502 LDA (n,X)
  2174.     ANDI.B    #$F3,D5
  2175.     ANDI.L    #$FF,D1
  2176.     ADD.B    D2,D1
  2177.     MOVE.W    (A0,D1.W),D1    
  2178.     ROL.W    #8,D1
  2179.     MOVE.B    (A0,D1.L),D0    
  2180.     MOVE.W    CCR,D7
  2181.     ANDI.B    #$0C,D7
  2182.     OR.B    D7,D5
  2183.     MOVE.W    (A2)+,D1
  2184.     IF    DEEBUG
  2185.     BRA    DEBUG
  2186.     ELSE
  2187.     JMP    ([A3,D1.W*4])
  2188.     ENDIF
  2189.  
  2190. MAINA2:                ; 6502 LDX #n
  2191.     ANDI.B    #$F3,D5
  2192.     MOVE.B    D1,D2
  2193.     MOVE.W    CCR,D7
  2194.     ANDI.B    #$0C,D7
  2195.     OR.B    D7,D5
  2196.     MOVE.W    (A2)+,D1
  2197.     IF    DEEBUG
  2198.     BRA    DEBUG
  2199.     ELSE
  2200.     JMP    ([A3,D1.W*4])
  2201.     ENDIF
  2202.  
  2203. MAINA4:                ; 6502 LDY n
  2204.     ANDI.B    #$F3,D5
  2205.     ANDI.W    #$FF,D1
  2206.     MOVE.B    (A0,D1.W),D3    
  2207.     MOVE.W    CCR,D7
  2208.     ANDI.B    #$0C,D7
  2209.     OR.B    D7,D5
  2210.     MOVE.W    (A2)+,D1
  2211.     IF    DEEBUG
  2212.     BRA    DEBUG
  2213.     ELSE
  2214.     JMP    ([A3,D1.W*4])
  2215.     ENDIF
  2216.  
  2217. MAINA5:                ; 6502 LDA n
  2218.     ANDI.B    #$F3,D5
  2219.     ANDI.W    #$FF,D1
  2220.     MOVE.B    (A0,D1.W),D0    
  2221.     MOVE.W    CCR,D7
  2222.     ANDI.B    #$0C,D7
  2223.     OR.B    D7,D5
  2224.     MOVE.W    (A2)+,D1
  2225.     IF    DEEBUG
  2226.     BRA    DEBUG
  2227.     ELSE
  2228.     JMP    ([A3,D1.W*4])
  2229.     ENDIF
  2230.  
  2231. MAINA6:                ; 6502 LDX n
  2232.     ANDI.B    #$F3,D5
  2233.     ANDI.W    #$FF,D1
  2234.     MOVE.B    (A0,D1.W),D2    
  2235.     MOVE.W    CCR,D7
  2236.     ANDI.B    #$0C,D7
  2237.     OR.B    D7,D5
  2238.     MOVE.W    (A2)+,D1
  2239.     IF    DEEBUG
  2240.     BRA    DEBUG
  2241.     ELSE
  2242.     JMP    ([A3,D1.W*4])
  2243.     ENDIF
  2244.  
  2245. MAINA8:                ; 6502 TAY  
  2246.     ANDI.B    #$F3,D5
  2247.     MOVE.B    D0,D3
  2248.     MOVE.W    CCR,D7
  2249.     ANDI.B    #$0C,D7
  2250.     OR.B    D7,D5
  2251.     SUBQ.L    #1,A2
  2252.     MOVE.W    (A2)+,D1
  2253.     IF    DEEBUG
  2254.     BRA    DEBUG
  2255.     ELSE
  2256.     JMP    ([A3,D1.W*4])
  2257.     ENDIF
  2258.  
  2259. MAINA9:                ; 6502 LDA #n
  2260.     ANDI.B    #$F3,D5
  2261.     MOVE.B    D1,D0
  2262.     MOVE.W    CCR,D7
  2263.     ANDI.B    #$0C,D7
  2264.     OR.B    D7,D5
  2265.     MOVE.W    (A2)+,D1
  2266.     IF    DEEBUG
  2267.     BRA    DEBUG
  2268.     ELSE
  2269.     JMP    ([A3,D1.W*4])
  2270.     ENDIF
  2271.  
  2272. MAINAA:                ; 6502 TAX  
  2273.     ANDI.B    #$F3,D5
  2274.     MOVE.B    D0,D2
  2275.     MOVE.W    CCR,D7
  2276.     ANDI.B    #$0C,D7
  2277.     OR.B    D7,D5
  2278.     SUBQ.L    #1,A2
  2279.     MOVE.W    (A2)+,D1
  2280.     IF    DEEBUG
  2281.     BRA    DEBUG
  2282.     ELSE
  2283.     JMP    ([A3,D1.W*4])
  2284.     ENDIF
  2285.  
  2286. MAINAC:                ; 6502 LDY nn
  2287.     ANDI.B    #$F3,D5
  2288.     ROL.W    #8,D1
  2289.     MOVE.B    (A2)+,D1
  2290.     ROL.W    #8,D1
  2291.     ANDI.L    #$FFFF,D1
  2292.     MOVE.B    (A0,D1.L),D3
  2293.     MOVE.W    CCR,D7
  2294.     ANDI.B    #$0C,D7
  2295.     OR.B    D7,D5
  2296.     MOVE.W    (A2)+,D1
  2297.     IF    DEEBUG
  2298.     BRA    DEBUG
  2299.     ELSE
  2300.     JMP    ([A3,D1.W*4])
  2301.     ENDIF
  2302.  
  2303. MAINAD:                ; 6502 LDA nn
  2304.     ANDI.B    #$F3,D5
  2305.     ROL.W    #8,D1
  2306.     MOVE.B    (A2)+,D1
  2307.     ROL.W    #8,D1
  2308.     ANDI.L    #$FFFF,D1
  2309.     MOVE.B    (A0,D1.L),D0    
  2310.     MOVE.W    CCR,D7
  2311.     ANDI.B    #$0C,D7
  2312.     OR.B    D7,D5
  2313.     MOVE.W    (A2)+,D1
  2314.     IF    DEEBUG
  2315.     BRA    DEBUG
  2316.     ELSE
  2317.     JMP    ([A3,D1.W*4])
  2318.     ENDIF
  2319.  
  2320. MAINAE:                ; 6502 LDX nn
  2321.     ANDI.B    #$F3,D5
  2322.     ROL.W    #8,D1
  2323.     MOVE.B    (A2)+,D1
  2324.     ROL.W    #8,D1
  2325.     ANDI.L    #$FFFF,D1
  2326.     MOVE.B    (A0,D1.L),D2    
  2327.     MOVE.W    CCR,D7
  2328.     ANDI.B    #$0C,D7
  2329.     OR.B    D7,D5
  2330.     MOVE.W    (A2)+,D1
  2331.     IF    DEEBUG
  2332.     BRA    DEBUG
  2333.     ELSE
  2334.     JMP    ([A3,D1.W*4])
  2335.     ENDIF
  2336.  
  2337. MAINB0:                ; 6502 BCS n
  2338.     EXT.W    D1
  2339.     MOVE.W    D5,CCR
  2340.     BCC.B    MB01
  2341.     ADDA.W    D1,A2
  2342.     MOVE.W    (A2)+,D1
  2343.     IF    DEEBUG
  2344.     BRA    DEBUG
  2345.     ELSE
  2346.     JMP    ([A3,D1.W*4])
  2347.     ENDIF
  2348.  
  2349. MB01:    MOVE.W    (A2)+,D1
  2350.     IF    DEEBUG
  2351.     BRA    DEBUG
  2352.     ELSE
  2353.     JMP    ([A3,D1.W*4])
  2354.     ENDIF
  2355.  
  2356. MAINB1:                ; 6502 LDA (n),Y
  2357.     ANDI.B    #$F3,D5
  2358.     ANDI.L    #$FF,D1
  2359.     MOVE.W    (A0,D1.W),D1    
  2360.     ROL.W    #8,D1
  2361.     ADD.W    D3,D1
  2362.     MOVE.B    (A0,D1.L),D0    
  2363.     MOVE.W    CCR,D7
  2364.     ANDI.B    #$0C,D7
  2365.     OR.B    D7,D5
  2366.     MOVE.W    (A2)+,D1
  2367.     IF    DEEBUG
  2368.     BRA    DEBUG
  2369.     ELSE
  2370.     JMP    ([A3,D1.W*4])
  2371.     ENDIF
  2372.  
  2373. MAINB4:                ; 6502 LDY n,X
  2374.     ANDI.B    #$F3,D5
  2375.     ADD.B    D2,D1
  2376.     ANDI.W    #$FF,D1
  2377.     MOVE.B    (A0,D1.W),D3    
  2378.     MOVE.W    CCR,D7
  2379.     ANDI.B    #$0C,D7
  2380.     OR.B    D7,D5
  2381.     MOVE.W    (A2)+,D1
  2382.     IF    DEEBUG
  2383.     BRA    DEBUG
  2384.     ELSE
  2385.     JMP    ([A3,D1.W*4])
  2386.     ENDIF
  2387.  
  2388. MAINB5:                ; 6502 LDA n,X
  2389.     ANDI.B    #$F3,D5
  2390.     ADD.B    D2,D1
  2391.     ANDI.W    #$FF,D1
  2392.     MOVE.B    (A0,D1.W),D0    
  2393.     MOVE.W    CCR,D7
  2394.     ANDI.B    #$0C,D7
  2395.     OR.B    D7,D5
  2396.     MOVE.W    (A2)+,D1
  2397.     IF    DEEBUG
  2398.     BRA    DEBUG
  2399.     ELSE
  2400.     JMP    ([A3,D1.W*4])
  2401.     ENDIF
  2402.  
  2403. MAINB6:                ; 6502 LDX n,Y
  2404.     ANDI.B    #$F3,D5
  2405.     ADD.B    D3,D1
  2406.     ANDI.W    #$FF,D1
  2407.     MOVE.B    (A0,D1.W),D2    
  2408.     MOVE.W    CCR,D7
  2409.     ANDI.B    #$0C,D7
  2410.     OR.B    D7,D5
  2411.     MOVE.W    (A2)+,D1
  2412.     IF    DEEBUG
  2413.     BRA    DEBUG
  2414.     ELSE
  2415.     JMP    ([A3,D1.W*4])
  2416.     ENDIF
  2417.  
  2418. MAINB8:                ; 6502 CLV
  2419.     ANDI.B    #$FD,D5
  2420.     SUBQ.L    #1,A2
  2421.     MOVE.W    (A2)+,D1
  2422.     IF    DEEBUG
  2423.     BRA    DEBUG
  2424.     ELSE
  2425.     JMP    ([A3,D1.W*4])
  2426.     ENDIF
  2427.  
  2428. MAINB9:                ; 6502 LDA nn,Y
  2429.     ANDI.B    #$F3,D5
  2430.     ROL.W    #8,D1
  2431.     MOVE.B    (A2)+,D1
  2432.     ROL.W    #8,D1
  2433.     ANDI.L    #$FFFF,D1
  2434.     ADD.W    D3,D1
  2435.     MOVE.B    (A0,D1.L),D0    
  2436.     MOVE.W    CCR,D7
  2437.     ANDI.B    #$0C,D7
  2438.     OR.B    D7,D5
  2439.     MOVE.W    (A2)+,D1
  2440.     IF    DEEBUG
  2441.     BRA    DEBUG
  2442.     ELSE
  2443.     JMP    ([A3,D1.W*4])
  2444.     ENDIF
  2445.  
  2446. MAINBA:                ; 6502 TSX  
  2447.     ANDI.B    #$F3,D5
  2448.     MOVE.B    D4,D2
  2449.     MOVE.W    CCR,D7
  2450.     ANDI.B    #$0C,D7
  2451.     OR.B    D7,D5
  2452.     SUBQ.L    #1,A2
  2453.     MOVE.W    (A2)+,D1
  2454.     IF    DEEBUG
  2455.     BRA    DEBUG
  2456.     ELSE
  2457.     JMP    ([A3,D1.W*4])
  2458.     ENDIF
  2459.  
  2460. MAINBC:                ; 6502 LDY nn,X
  2461.     ANDI.B    #$F3,D5
  2462.     ROL.W    #8,D1
  2463.     MOVE.B    (A2)+,D1
  2464.     ROL.W    #8,D1
  2465.     ANDI.L    #$FFFF,D1
  2466.     ADD.W    D2,D1
  2467.     MOVE.B    (A0,D1.L),D3    
  2468.     MOVE.W    CCR,D7
  2469.     ANDI.B    #$0C,D7
  2470.     OR.B    D7,D5
  2471.     MOVE.W    (A2)+,D1
  2472.     IF    DEEBUG
  2473.     BRA    DEBUG
  2474.     ELSE
  2475.     JMP    ([A3,D1.W*4])
  2476.     ENDIF
  2477.  
  2478. MAINBD:                ; 6502 LDA nn,X
  2479.     ANDI.B    #$F3,D5
  2480.     ROL.W    #8,D1
  2481.     MOVE.B    (A2)+,D1
  2482.     ROL.W    #8,D1
  2483.     ANDI.L    #$FFFF,D1
  2484.     ADD.W    D2,D1
  2485.     MOVE.B    (A0,D1.L),D0    
  2486.     MOVE.W    CCR,D7
  2487.     ANDI.B    #$0C,D7
  2488.     OR.B    D7,D5
  2489.     MOVE.W    (A2)+,D1
  2490.     IF    DEEBUG
  2491.     BRA    DEBUG
  2492.     ELSE
  2493.     JMP    ([A3,D1.W*4])
  2494.     ENDIF
  2495.  
  2496. MAINBE:                ; 6502 LDX nn,Y
  2497.     ANDI.B    #$F3,D5
  2498.     ROL.W    #8,D1
  2499.     MOVE.B    (A2)+,D1
  2500.     ROL.W    #8,D1
  2501.     ANDI.L    #$FFFF,D1
  2502.     ADD.W    D3,D1
  2503.     MOVE.B    (A0,D1.L),D2    
  2504.     MOVE.W    CCR,D7
  2505.     ANDI.B    #$0C,D7
  2506.     OR.B    D7,D5
  2507.     MOVE.W    (A2)+,D1
  2508.     IF    DEEBUG
  2509.     BRA    DEBUG
  2510.     ELSE
  2511.     JMP    ([A3,D1.W*4])
  2512.     ENDIF
  2513.  
  2514. MAINC0:                ; 6502 CPY #n
  2515.     ANDI.B    #$E2,D5
  2516.     CMP.B    D1,D3
  2517.     MOVE.W    CCR,D7
  2518.     ANDI.B    #$1D,D7
  2519.     OR.B    D7,D5
  2520.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2521.     ROL.B    #4,D7
  2522.     OR.B    D7,D5
  2523.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2524.     MOVE.W    (A2)+,D1
  2525.     IF    DEEBUG
  2526.     BRA    DEBUG
  2527.     ELSE
  2528.     JMP    ([A3,D1.W*4])
  2529.     ENDIF
  2530.  
  2531. MAINC1:                ; 6502 CMP (n,X)
  2532.     ANDI.B    #$E2,D5
  2533.     ANDI.L    #$FF,D1
  2534.     ADD.B    D2,D1
  2535.     MOVE.W    (A0,D1.W),D1    
  2536.     ROL.W    #8,D1
  2537.     CMP.B    (A0,D1.L),D0    
  2538.     MOVE.W    CCR,D7
  2539.     ANDI.B    #$1D,D7
  2540.     OR.B    D7,D5
  2541.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2542.     ROL.B    #4,D7
  2543.     OR.B    D7,D5
  2544.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2545.     MOVE.W    (A2)+,D1
  2546.     IF    DEEBUG
  2547.     BRA    DEBUG
  2548.     ELSE
  2549.     JMP    ([A3,D1.W*4])
  2550.     ENDIF
  2551.  
  2552. MAINC4:                ; 6502 CPY n
  2553.     ANDI.B    #$E2,D5
  2554.     ANDI.W    #$FF,D1
  2555.     CMP.B    (A0,D1.W),D3    
  2556.     MOVE.W    CCR,D7
  2557.     ANDI.B    #$1D,D7
  2558.     OR.B    D7,D5
  2559.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2560.     ROL.B    #4,D7
  2561.     OR.B    D7,D5
  2562.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2563.     MOVE.W    (A2)+,D1
  2564.     IF    DEEBUG
  2565.     BRA    DEBUG
  2566.     ELSE
  2567.     JMP    ([A3,D1.W*4])
  2568.     ENDIF
  2569.  
  2570. MAINC5:                ; 6502 CMP n
  2571.     ANDI.B    #$E2,D5
  2572.     ANDI.W    #$FF,D1
  2573.     CMP.B    (A0,D1.W),D0    
  2574.     MOVE.W    CCR,D7
  2575.     ANDI.B    #$1D,D7
  2576.     OR.B    D7,D5
  2577.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2578.     ROL.B    #4,D7
  2579.     OR.B    D7,D5
  2580.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2581.     MOVE.W    (A2)+,D1
  2582.     IF    DEEBUG
  2583.     BRA    DEBUG
  2584.     ELSE
  2585.     JMP    ([A3,D1.W*4])
  2586.     ENDIF
  2587.  
  2588. MAINC6:                ; 6502 DEC n
  2589.     ANDI.B    #$F3,D5
  2590.     ANDI.W    #$FF,D1
  2591.     SUBI.B    #1,(A0,D1.W)
  2592.     MOVE.W    CCR,D7
  2593.     ANDI.B    #$0C,D7
  2594.     OR.B    D7,D5
  2595.     MOVE.W    (A2)+,D1
  2596.     IF    DEEBUG
  2597.     BRA    DEBUG
  2598.     ELSE
  2599.     JMP    ([A3,D1.W*4])
  2600.     ENDIF
  2601.  
  2602. MAINC8:                ; 6502 INY
  2603.     ANDI.B    #$F3,D5
  2604.     ADDQ.B    #1,D3
  2605.     MOVE.W    CCR,D7
  2606.     ANDI.B    #$0C,D7
  2607.     OR.B    D7,D5
  2608.     SUBQ.L    #1,A2
  2609.     MOVE.W    (A2)+,D1
  2610.     IF    DEEBUG
  2611.     BRA    DEBUG
  2612.     ELSE
  2613.     JMP    ([A3,D1.W*4])
  2614.     ENDIF
  2615.  
  2616. MAINC9:                ; 6502 CMP #n
  2617.     ANDI.B    #$E2,D5
  2618.     CMP.B    D1,D0
  2619.     MOVE.W    CCR,D7
  2620.     ANDI.B    #$1D,D7
  2621.     OR.B    D7,D5
  2622.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2623.     ROL.B    #4,D7
  2624.     OR.B    D7,D5
  2625.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2626.     MOVE.W    (A2)+,D1
  2627.     IF    DEEBUG
  2628.     BRA    DEBUG
  2629.     ELSE
  2630.     JMP    ([A3,D1.W*4])
  2631.     ENDIF
  2632.  
  2633. MAINCA:                ; 6502 DEX
  2634.     ANDI.B    #$F3,D5
  2635.     SUBQ.B    #1,D2
  2636.     MOVE.W    CCR,D7
  2637.     ANDI.B    #$0C,D7
  2638.     OR.B    D7,D5
  2639.     SUBQ.L    #1,A2
  2640.     MOVE.W    (A2)+,D1
  2641.     IF    DEEBUG
  2642.     BRA    DEBUG
  2643.     ELSE
  2644.     JMP    ([A3,D1.W*4])
  2645.     ENDIF
  2646.  
  2647. MAINCC:                ; 6502 CPY nn
  2648.     ANDI.B    #$E2,D5
  2649.     ROL.W    #8,D1
  2650.     MOVE.B    (A2)+,D1
  2651.     ROL.W    #8,D1
  2652.     CMP.B    (A0,D1.L),D3
  2653.     MOVE.W    CCR,D7
  2654.     ANDI.B    #$1D,D7
  2655.     OR.B    D7,D5
  2656.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2657.     ROL.B    #4,D7
  2658.     OR.B    D7,D5
  2659.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2660.     MOVE.W    (A2)+,D1
  2661.     IF    DEEBUG
  2662.     BRA    DEBUG
  2663.     ELSE
  2664.     JMP    ([A3,D1.W*4])
  2665.     ENDIF
  2666.  
  2667. MAINCD:                ; 6502 CMP nn
  2668.     ANDI.B    #$E2,D5
  2669.     ROL.W    #8,D1
  2670.     MOVE.B    (A2)+,D1
  2671.     ROL.W    #8,D1
  2672.     CMP.B    (A0,D1.L),D0
  2673.     MOVE.W    CCR,D7
  2674.     ANDI.B    #$1D,D7
  2675.     OR.B    D7,D5
  2676.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2677.     ROL.B    #4,D7
  2678.     OR.B    D7,D5
  2679.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2680.     MOVE.W    (A2)+,D1
  2681.     IF    DEEBUG
  2682.     BRA    DEBUG
  2683.     ELSE
  2684.     JMP    ([A3,D1.W*4])
  2685.     ENDIF
  2686.  
  2687.  
  2688. MAINCE:                ; 6502 DEC nn*********************
  2689.     ANDI.B    #$F3,D5
  2690.     ROL.W    #8,D1
  2691.     MOVE.B    (A2)+,D1
  2692.     ROL.W    #8,D1
  2693.     BPL.B    .1
  2694.  
  2695.     MOVE.B    (A0,D1.L),D7    ; COND FLAGS BUT DONT CHANGE BYTE
  2696.     SUBQ.B    #1,D7        ; AS ADD IS 8000-FFFF
  2697.     MOVE.W    CCR,D7
  2698.     ANDI.B    #$0C,D7
  2699.     OR.B    D7,D5
  2700.     MOVE.W    (A2)+,D1
  2701.     IF    DEEBUG
  2702.     BRA    DEBUG
  2703.     ELSE
  2704.     JMP    ([A3,D1.W*4])
  2705.     ENDIF
  2706.  
  2707. .1:    SUBI.B    #1,(A0,D1.L)
  2708.     MOVE.W    CCR,D7
  2709.     ANDI.B    #$0C,D7
  2710.     OR.B    D7,D5
  2711.     MOVE.W    (A2)+,D1
  2712.     IF    DEEBUG
  2713.     BRA    DEBUG
  2714.     ELSE
  2715.     JMP    ([A3,D1.W*4])
  2716.     ENDIF
  2717.  
  2718. MAIND0:                ; 6502 BNE n
  2719.     EXT.W    D1
  2720.     MOVE.W    D5,CCR
  2721.     BEQ.B    MD01
  2722.     ADDA.W    D1,A2
  2723.     MOVE.W    (A2)+,D1
  2724.     IF    DEEBUG
  2725.     BRA    DEBUG
  2726.     ELSE
  2727.     JMP    ([A3,D1.W*4])
  2728.     ENDIF
  2729.  
  2730. MD01:    MOVE.W    (A2)+,D1
  2731.     IF    DEEBUG
  2732.     BRA    DEBUG
  2733.     ELSE
  2734.     JMP    ([A3,D1.W*4])
  2735.     ENDIF
  2736.  
  2737. MAIND1:                ; 6502 CMP (n),Y
  2738.     ANDI.B    #$E2,D5
  2739.     ANDI.L    #$FF,D1
  2740.     MOVE.W    (A0,D1.W),D1    
  2741.     ROL.W    #8,D1
  2742.     ADD.W    D3,D1
  2743.     CMP.B    (A0,D1.L),D0    
  2744.     MOVE.W    CCR,D7
  2745.     ANDI.B    #$1D,D7
  2746.     OR.B    D7,D5
  2747.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2748.     ROL.B    #4,D7
  2749.     OR.B    D7,D5
  2750.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2751.     MOVE.W    (A2)+,D1
  2752.     IF    DEEBUG
  2753.     BRA    DEBUG
  2754.     ELSE
  2755.     JMP    ([A3,D1.W*4])
  2756.     ENDIF
  2757.  
  2758.  
  2759. MAIND5:                ; 6502 CMP n,X
  2760.     ANDI.B    #$E2,D5
  2761.     ADD.B    D2,D1
  2762.     ANDI.W    #$FF,D1
  2763.     CMP.B    (A0,D1.W),D0    
  2764.     MOVE.W    CCR,D7
  2765.     ANDI.B    #$1D,D7
  2766.     OR.B    D7,D5
  2767.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2768.     ROL.B    #4,D7
  2769.     OR.B    D7,D5
  2770.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2771.     MOVE.W    (A2)+,D1
  2772.     IF    DEEBUG
  2773.     BRA    DEBUG
  2774.     ELSE
  2775.     JMP    ([A3,D1.W*4])
  2776.     ENDIF
  2777.  
  2778. MAIND6:                ; 6502 DEC n,X
  2779.     ANDI.B    #$F3,D5
  2780.     ADD.B    D2,D1
  2781.     ANDI.W    #$FF,D1
  2782.     SUBI.B    #1,(A0,D1.W)
  2783.     MOVE.W    CCR,D7
  2784.     ANDI.B    #$0C,D7
  2785.     OR.B    D7,D5
  2786.     MOVE.W    (A2)+,D1
  2787.     IF    DEEBUG
  2788.     BRA    DEBUG
  2789.     ELSE
  2790.     JMP    ([A3,D1.W*4])
  2791.     ENDIF
  2792.  
  2793. MAIND8:                ; 6502 CLD
  2794.     ANDI.B    #$F7,D6
  2795.     SUBQ.L    #1,A2
  2796.     MOVE.W    (A2)+,D1
  2797.     IF    DEEBUG
  2798.     BRA    DEBUG
  2799.     ELSE
  2800.     JMP    ([A3,D1.W*4])
  2801.     ENDIF
  2802.  
  2803. MAIND9:                ; 6502 CMP nn,Y
  2804.     ANDI.B    #$E2,D5
  2805.     ROL.W    #8,D1
  2806.     MOVE.B    (A2)+,D1
  2807.     ROL.W    #8,D1
  2808.     ADD.W    D3,D1
  2809.     CMP.B    (A0,D1.L),D0
  2810.     MOVE.W    CCR,D7
  2811.     ANDI.B    #$1D,D7
  2812.     OR.B    D7,D5
  2813.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2814.     ROL.B    #4,D7
  2815.     OR.B    D7,D5
  2816.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2817.     MOVE.W    (A2)+,D1
  2818.     IF    DEEBUG
  2819.     BRA    DEBUG
  2820.     ELSE
  2821.     JMP    ([A3,D1.W*4])
  2822.     ENDIF
  2823.  
  2824.     IF    P65C02
  2825. MAINDA:                ; 6502 PHX (65C02 ONLY)
  2826.     MOVE.B    D2,(A4,D4.W)
  2827.     SUBQ.B    #1,D4
  2828.     SUBQ.L    #1,A2
  2829.     MOVE.W    (A2)+,D1
  2830.     IF    DEEBUG
  2831.     BRA    DEBUG
  2832.     ELSE
  2833.     JMP    ([A3,D1.W*4])
  2834.     ENDIF
  2835.  
  2836.     ENDIF
  2837.  
  2838. MAINDD:                ; 6502 CMP nn,X
  2839.     ANDI.B    #$E2,D5
  2840.     ROL.W    #8,D1
  2841.     MOVE.B    (A2)+,D1
  2842.     ROL.W    #8,D1
  2843.     ADD.W    D2,D1
  2844.     CMP.B    (A0,D1.L),D0
  2845.     MOVE.W    CCR,D7
  2846.     ANDI.B    #$1D,D7
  2847.     OR.B    D7,D5
  2848.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2849.     ROL.B    #4,D7
  2850.     OR.B    D7,D5
  2851.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2852.     MOVE.W    (A2)+,D1
  2853.     IF    DEEBUG
  2854.     BRA    DEBUG
  2855.     ELSE
  2856.     JMP    ([A3,D1.W*4])
  2857.     ENDIF
  2858.  
  2859.  
  2860. MAINDE:                ; 6502 DEC nn,X*********************
  2861.     ANDI.B    #$F3,D5
  2862.     ROL.W    #8,D1
  2863.     MOVE.B    (A2)+,D1
  2864.     ROL.W    #8,D1
  2865.     ADD.W    D2,D1
  2866.     BPL.B    .1
  2867.  
  2868.     MOVE.B    (A0,D1.L),D7    ; COND FLAGS BUT DONT CHANGE BYTE
  2869.     SUBQ.B    #1,D7        ; AS ADD IS 8000-FFFF
  2870.     MOVE.W    CCR,D7
  2871.     ANDI.B    #$0C,D7
  2872.     OR.B    D7,D5
  2873.     MOVE.W    (A2)+,D1
  2874.     IF    DEEBUG
  2875.     BRA    DEBUG
  2876.     ELSE
  2877.     JMP    ([A3,D1.W*4])
  2878.     ENDIF
  2879.  
  2880. .1:    SUBI.B    #1,(A0,D1.L)
  2881.     MOVE.W    CCR,D7
  2882.     ANDI.B    #$0C,D7
  2883.     OR.B    D7,D5
  2884.     MOVE.W    (A2)+,D1
  2885.     IF    DEEBUG
  2886.     BRA    DEBUG
  2887.     ELSE
  2888.     JMP    ([A3,D1.W*4])
  2889.     ENDIF
  2890.  
  2891. MAINE0:                ; 6502 CPX #n
  2892.     ANDI.B    #$E2,D5
  2893.     CMP.B    D1,D2
  2894.     MOVE.W    CCR,D7
  2895.     ANDI.B    #$1D,D7
  2896.     OR.B    D7,D5
  2897.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2898.     ROL.B    #4,D7
  2899.     OR.B    D7,D5
  2900.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2901.     MOVE.W    (A2)+,D1
  2902.     IF    DEEBUG
  2903.     BRA    DEBUG
  2904.     ELSE
  2905.     JMP    ([A3,D1.W*4])
  2906.     ENDIF
  2907.  
  2908.  
  2909. MAINE1:                ; 6502 SBC (n,X)
  2910.     ANDI.W    #$FF,D1
  2911.     ADD.B    D2,D1
  2912.     MOVE.W    (A0,D1.W),D1    
  2913.     ROL.W    #8,D1
  2914.     MOVE.B    (A0,D1.L),D7    ; GET (n,X)
  2915.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  2916.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  2917.     MOVE.W    D5,CCR
  2918.     SUBX.B    D7,D0
  2919.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  2920.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  2921.     MOVE.W    (A2)+,D1
  2922.     IF    DEEBUG
  2923.     BRA    DEBUG
  2924.     ELSE
  2925.     JMP    ([A3,D1.W*4])
  2926.     ENDIF
  2927.  
  2928. MAINE4:                ; 6502 CPX n
  2929.     ANDI.B    #$E2,D5
  2930.     ANDI.W    #$FF,D1
  2931.     CMP.B    (A0,D1.W),D2
  2932.     MOVE.W    CCR,D7
  2933.     ANDI.B    #$1D,D7
  2934.     OR.B    D7,D5
  2935.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  2936.     ROL.B    #4,D7
  2937.     OR.B    D7,D5
  2938.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  2939.     MOVE.W    (A2)+,D1
  2940.     IF    DEEBUG
  2941.     BRA    DEBUG
  2942.     ELSE
  2943.     JMP    ([A3,D1.W*4])
  2944.     ENDIF
  2945.  
  2946.  
  2947. MAINE5:                ; 6502 SBC n 
  2948.     ANDI.W    #$FF,D1
  2949.     MOVE.B    (A0,D1.W),D7    ; GET (n)
  2950.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  2951.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  2952.     MOVE.W    D5,CCR
  2953.     SUBX.B    D7,D0
  2954.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  2955.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  2956.     MOVE.W    (A2)+,D1
  2957.     IF    DEEBUG
  2958.     BRA    DEBUG
  2959.     ELSE
  2960.     JMP    ([A3,D1.W*4])
  2961.     ENDIF
  2962.  
  2963. MAINE6:                ; 6502 INC n
  2964.     ANDI.B    #$F3,D5
  2965.     ANDI.W    #$FF,D1
  2966.     ADDI.B    #1,(A0,D1.W)
  2967.     MOVE.W    CCR,D7
  2968.     ANDI.B    #$0C,D7
  2969.     OR.B    D7,D5
  2970.     MOVE.W    (A2)+,D1
  2971.     IF    DEEBUG
  2972.     BRA    DEBUG
  2973.     ELSE
  2974.     JMP    ([A3,D1.W*4])
  2975.     ENDIF
  2976.  
  2977. MAINE8:                ; 6502 INX
  2978.     ANDI.B    #$F3,D5
  2979.     ADDQ.B    #1,D2
  2980.     MOVE.W    CCR,D7
  2981.     ANDI.B    #$0C,D7
  2982.     OR.B    D7,D5
  2983.     SUBQ.L    #1,A2
  2984.     MOVE.W    (A2)+,D1
  2985.     IF    DEEBUG
  2986.     BRA    DEBUG
  2987.     ELSE
  2988.     JMP    ([A3,D1.W*4])
  2989.     ENDIF
  2990.  
  2991. MAINE9:                ; 6502 SBC #n 
  2992.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  2993.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  2994.     MOVE.W    D5,CCR
  2995.     SUBX.B    D1,D0
  2996.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  2997.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  2998.     MOVE.W    (A2)+,D1
  2999.     IF    DEEBUG
  3000.     BRA    DEBUG
  3001.     ELSE
  3002.     JMP    ([A3,D1.W*4])
  3003.     ENDIF
  3004.  
  3005. MAINEA:                ; 6502 NOP
  3006.     SUBQ.L    #1,A2
  3007.     MOVE.W    (A2)+,D1
  3008.     IF    DEEBUG
  3009.     BRA    DEBUG
  3010.     ELSE
  3011.     JMP    ([A3,D1.W*4])
  3012.     ENDIF
  3013.  
  3014. MAINEC:                ; 6502 CPX nn
  3015.     ANDI.B    #$E2,D5
  3016.     ROL.W    #8,D1
  3017.     MOVE.B    (A2)+,D1
  3018.     ROL.W    #8,D1
  3019.     CMP.B    (A0,D1.L),D2
  3020.     MOVE.W    CCR,D7
  3021.     ANDI.B    #$1D,D7
  3022.     OR.B    D7,D5
  3023.     ANDI.B    #$01,D7        ; SET X IF C IS SET
  3024.     ROL.B    #4,D7
  3025.     OR.B    D7,D5
  3026.     EORI.B    #$11,D5        ; INVERT X,C FOR 6502
  3027.     MOVE.W    (A2)+,D1
  3028.     IF    DEEBUG
  3029.     BRA    DEBUG
  3030.     ELSE
  3031.     JMP    ([A3,D1.W*4])
  3032.     ENDIF
  3033.  
  3034. MAINED:                ; 6502 SBC nn
  3035.     ROL.W    #8,D1        ; GET nn
  3036.     MOVE.B    (A2)+,D1
  3037.     ROL.W    #8,D1
  3038.     MOVE.B    (A0,D1.L),D7    ; GET (nn)
  3039.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  3040.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  3041.     MOVE.W    D5,CCR
  3042.     SUBX.B    D7,D0
  3043.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  3044.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  3045.     MOVE.W    (A2)+,D1
  3046.     IF    DEEBUG
  3047.     BRA    DEBUG
  3048.     ELSE
  3049.     JMP    ([A3,D1.W*4])
  3050.     ENDIF
  3051.  
  3052. MAINEE:                ; 6502 INC nn*********************
  3053.     ANDI.B    #$F3,D5
  3054.     ROL.W    #8,D1
  3055.     MOVE.B    (A2)+,D1
  3056.     ROL.W    #8,D1
  3057.     BPL.B    .1
  3058.  
  3059.     MOVE.B    (A0,D1.L),D7    ; COND FLAGS BUT DONT CHANGE BYTE
  3060.     ADDQ.B    #1,D7        ; AS ADD IS 8000-FFFF
  3061.     MOVE.W    CCR,D7
  3062.     ANDI.B    #$0C,D7
  3063.     OR.B    D7,D5
  3064.     MOVE.W    (A2)+,D1
  3065.     IF    DEEBUG
  3066.     BRA    DEBUG
  3067.     ELSE
  3068.     JMP    ([A3,D1.W*4])
  3069.     ENDIF
  3070.  
  3071. .1:    ADDI.B    #1,(A0,D1.L)
  3072.     MOVE.W    CCR,D7
  3073.     ANDI.B    #$0C,D7
  3074.     OR.B    D7,D5
  3075.     MOVE.W    (A2)+,D1
  3076.     IF    DEEBUG
  3077.     BRA    DEBUG
  3078.     ELSE
  3079.     JMP    ([A3,D1.W*4])
  3080.     ENDIF
  3081.  
  3082. MAINF0:                ; 6502 BEQ n
  3083.     EXT.W    D1
  3084.     MOVE.W    D5,CCR
  3085.     BNE.B    MF01
  3086.     ADDA.W    D1,A2
  3087.     MOVE.W    (A2)+,D1
  3088.     IF    DEEBUG
  3089.     BRA    DEBUG
  3090.     ELSE
  3091.     JMP    ([A3,D1.W*4])
  3092.     ENDIF
  3093.  
  3094. MF01:    MOVE.W    (A2)+,D1
  3095.     IF    DEEBUG
  3096.     BRA    DEBUG
  3097.     ELSE
  3098.     JMP    ([A3,D1.W*4])
  3099.     ENDIF
  3100.  
  3101. MAINF1:                ; 6502 SBC (n),Y
  3102.     ANDI.L    #$FF,D1
  3103.     MOVE.W    (A0,D1.W),D1    
  3104.     ROL.W    #8,D1
  3105.     ADD.W    D3,D1
  3106.     MOVE.B    (A0,D1.L),D7    ; GET (n,X)
  3107.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  3108.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  3109.     MOVE.W    D5,CCR
  3110.     SUBX.B    D7,D0
  3111.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  3112.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  3113.     MOVE.W    (A2)+,D1
  3114.     IF    DEEBUG
  3115.     BRA    DEBUG
  3116.     ELSE
  3117.     JMP    ([A3,D1.W*4])
  3118.     ENDIF
  3119.  
  3120. MAINF5:                ; 6502 SBC n,X
  3121.     ADD.B    D2,D1        ; compute n,X
  3122.     ANDI.W    #$FF,D1
  3123.     MOVE.B    (A0,D1.W),D7    ; GET (n,X)
  3124.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  3125.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  3126.     MOVE.W    D5,CCR
  3127.     SUBX.B    D7,D0
  3128.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  3129.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  3130.     MOVE.W    (A2)+,D1
  3131.     IF    DEEBUG
  3132.     BRA    DEBUG
  3133.     ELSE
  3134.     JMP    ([A3,D1.W*4])
  3135.     ENDIF
  3136.  
  3137. MAINF6:                ; 6502 INC n,X
  3138.     ANDI.B    #$F3,D5
  3139.     ADD.B    D2,D1
  3140.     ANDI.W    #$FF,D1
  3141.     ADDI.B    #1,(A0,D1.W)
  3142.     MOVE.W    CCR,D7
  3143.     ANDI.B    #$0C,D7
  3144.     OR.B    D7,D5
  3145.     MOVE.W    (A2)+,D1
  3146.     IF    DEEBUG
  3147.     BRA    DEBUG
  3148.     ELSE
  3149.     JMP    ([A3,D1.W*4])
  3150.     ENDIF
  3151.  
  3152. MAINF8:                ; 6502 SED
  3153.     ORI.B    #$08,D6
  3154.     SUBQ.L    #1,A2
  3155.     MOVE.W    (A2)+,D1
  3156.     IF    DEEBUG
  3157.     BRA    DEBUG
  3158.     ELSE
  3159.     JMP    ([A3,D1.W*4])
  3160.     ENDIF
  3161.  
  3162. MAINF9:                ; 6502 SBC nn,Y
  3163.     ROL.W    #8,D1        ; GET nn
  3164.     MOVE.B    (A2)+,D1
  3165.     ROL.W    #8,D1
  3166.     ADD.W    D3,D1        ; ADD Y
  3167.     MOVE.B    (A0,D1.L),D7    ; GET (nn,Y)
  3168.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  3169.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  3170.     MOVE.W    D5,CCR
  3171.     SUBX.B    D7,D0
  3172.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  3173.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  3174.     MOVE.W    (A2)+,D1
  3175.     IF    DEEBUG
  3176.     BRA    DEBUG
  3177.     ELSE 
  3178.     JMP    ([A3,D1.W*4])
  3179.     ENDIF
  3180.  
  3181.     IF    P65C02
  3182. MAINFA:                ; 6502 PLX (65C02 ONLY)
  3183.     ADDQ.B    #1,D4
  3184.     MOVE.B    (A4,D4.W),D2
  3185.     SUBQ.L    #1,A2
  3186.     MOVE.W    (A2)+,D1
  3187.     IF    DEEBUG
  3188.     BRA    DEBUG
  3189.     ELSE
  3190.     JMP    ([A3,D1.W*4])
  3191.     ENDIF
  3192.  
  3193.     ENDIF
  3194.  
  3195. MAINFD:                ; 6502 SBC nn,X
  3196.     ROL.W    #8,D1        ; GET nn
  3197.     MOVE.B    (A2)+,D1
  3198.     ROL.W    #8,D1
  3199.     ADD.W    D2,D1        ; ADD X
  3200.     MOVE.B    (A0,D1.L),D7    ; GET (nn,X)
  3201.     ORI.B    #$04,D5        ; SET Z FOR SUBX INSTR
  3202.     EORI.B    #$11,D5        ; INVERT X,C TO SUIT 680x0
  3203.     MOVE.W    D5,CCR
  3204.     SUBX.B    D7,D0
  3205.     MOVE.W    CCR,D5        ; ALL 6502 FLAGS AFFECTED
  3206.     EORI.B    #$11,D5        ; INVERT X,C AS 6502 HAS REVERSED MEANING
  3207.     MOVE.W    (A2)+,D1
  3208.     IF    DEEBUG
  3209.     BRA    DEBUG
  3210.     ELSE
  3211.     JMP    ([A3,D1.W*4])
  3212.     ENDIF
  3213.  
  3214. MAINFE:                ; 6502 INC nn,X *********************
  3215.     ANDI.B    #$F3,D5
  3216.     ROL.W    #8,D1
  3217.     MOVE.B    (A2)+,D1
  3218.     ROL.W    #8,D1
  3219.     ADD.W    D2,D1
  3220.     BPL.B    .1
  3221.  
  3222.     MOVE.B    (A0,D1.L),D7    ; COND FLAGS BUT DONT CHANGE BYTE
  3223.     ADDQ.B    #1,D7        ; AS ADD IS 8000-FFFF
  3224.     MOVE.W    CCR,D7
  3225.     ANDI.B    #$0C,D7
  3226.     OR.B    D7,D5
  3227.     MOVE.W    (A2)+,D1
  3228.     IF    DEEBUG
  3229.     BRA    DEBUG
  3230.     ELSE
  3231.     JMP    ([A3,D1.W*4])
  3232.     ENDIF
  3233.  
  3234. .1:    ADDI.B    #1,(A0,D1.L)
  3235.     MOVE.W    CCR,D7
  3236.     ANDI.B    #$0C,D7
  3237.     OR.B    D7,D5
  3238.     MOVE.W    (A2)+,D1
  3239.     IF    DEEBUG
  3240.     BRA    DEBUG
  3241.     ELSE
  3242.     JMP    ([A3,D1.W*4])
  3243.     ENDIF
  3244.  
  3245.  
  3246.     SECTION 6502DATA,DATA
  3247.  
  3248. MNTBL:
  3249.  
  3250.     IF P65C02
  3251.  
  3252.     DC.L    MAIN80        ; 65C02 JMP TABLE
  3253.     DC.L    MAIN81
  3254.     DC.L    ILLEGAL
  3255.     DC.L    ILLEGAL
  3256.     DC.L    MAIN84
  3257.     DC.L    MAIN85
  3258.     DC.L    MAIN86
  3259.     DC.L    ILLEGAL
  3260.     DC.L    MAIN88
  3261.     DC.L    ILLEGAL
  3262.     DC.L    MAIN8A
  3263.     DC.L    ILLEGAL
  3264.     DC.L    MAIN8C
  3265.     DC.L    MAIN8D
  3266.     DC.L    MAIN8E
  3267.     DC.L    ILLEGAL
  3268.     DC.L    MAIN90
  3269.     DC.L    MAIN91
  3270.     DC.L    ILLEGAL
  3271.     DC.L    ILLEGAL
  3272.     DC.L    MAIN94
  3273.     DC.L    MAIN95
  3274.     DC.L    MAIN96
  3275.     DC.L    ILLEGAL
  3276.     DC.L    MAIN98
  3277.     DC.L    MAIN99
  3278.     DC.L    MAIN9A
  3279.     DC.L    ILLEGAL
  3280.     DC.L    ILLEGAL
  3281.     DC.L    MAIN9D
  3282.     DC.L    ILLEGAL
  3283.     DC.L    ILLEGAL
  3284.     DC.L    MAINA0
  3285.     DC.L    MAINA1
  3286.     DC.L    MAINA2
  3287.     DC.L    ILLEGAL
  3288.     DC.L    MAINA4
  3289.     DC.L    MAINA5
  3290.     DC.L    MAINA6
  3291.     DC.L    ILLEGAL
  3292.     DC.L    MAINA8
  3293.     DC.L    MAINA9
  3294.     DC.L    MAINAA
  3295.     DC.L    ILLEGAL
  3296.     DC.L    MAINAC
  3297.     DC.L    MAINAD
  3298.     DC.L    MAINAE
  3299.     DC.L    ILLEGAL
  3300.     DC.L    MAINB0
  3301.     DC.L    MAINB1
  3302.     DC.L    ILLEGAL
  3303.     DC.L    ILLEGAL
  3304.     DC.L    MAINB4
  3305.     DC.L    MAINB5
  3306.     DC.L    MAINB6
  3307.     DC.L    ILLEGAL
  3308.     DC.L    MAINB8
  3309.     DC.L    MAINB9
  3310.     DC.L    MAINBA
  3311.     DC.L    ILLEGAL
  3312.     DC.L    MAINBC
  3313.     DC.L    MAINBD
  3314.     DC.L    MAINBE
  3315.     DC.L    ILLEGAL
  3316.     DC.L    MAINC0
  3317.     DC.L    MAINC1
  3318.     DC.L    ILLEGAL
  3319.     DC.L    ILLEGAL
  3320.     DC.L    MAINC4
  3321.     DC.L    MAINC5
  3322.     DC.L    MAINC6
  3323.     DC.L    ILLEGAL
  3324.     DC.L    MAINC8
  3325.     DC.L    MAINC9
  3326.     DC.L    MAINCA
  3327.     DC.L    ILLEGAL
  3328.     DC.L    MAINCC
  3329.     DC.L    MAINCD
  3330.     DC.L    MAINCE
  3331.     DC.L    ILLEGAL
  3332.     DC.L    MAIND0
  3333.     DC.L    MAIND1
  3334.     DC.L    ILLEGAL
  3335.     DC.L    ILLEGAL
  3336.     DC.L    ILLEGAL
  3337.     DC.L    MAIND5
  3338.     DC.L    MAIND6
  3339.     DC.L    ILLEGAL
  3340.     DC.L    MAIND8
  3341.     DC.L    MAIND9
  3342.     DC.L    MAINDA
  3343.     DC.L    ILLEGAL
  3344.     DC.L    ILLEGAL
  3345.     DC.L    MAINDD
  3346.     DC.L    MAINDE
  3347.     DC.L    ILLEGAL
  3348.     DC.L    MAINE0
  3349.     DC.L    MAINE1
  3350.     DC.L    ILLEGAL
  3351.     DC.L    ILLEGAL
  3352.     DC.L    MAINE4
  3353.     DC.L    MAINE5
  3354.     DC.L    MAINE6
  3355.     DC.L    ILLEGAL
  3356.     DC.L    MAINE8
  3357.     DC.L    MAINE9
  3358.     DC.L    MAINEA
  3359.     DC.L    ILLEGAL
  3360.     DC.L    MAINEC
  3361.     DC.L    MAINED
  3362.     DC.L    MAINEE
  3363.     DC.L    ILLEGAL
  3364.     DC.L    MAINF0
  3365.     DC.L    MAINF1
  3366.     DC.L    ILLEGAL
  3367.     DC.L    ILLEGAL
  3368.     DC.L    ILLEGAL
  3369.     DC.L    MAINF5
  3370.     DC.L    MAINF6
  3371.     DC.L    ILLEGAL
  3372.     DC.L    MAINF8
  3373.     DC.L    MAINF9
  3374.     DC.L    MAINFA
  3375.     DC.L    ILLEGAL
  3376.     DC.L    ILLEGAL
  3377.     DC.L    MAINFD
  3378.     DC.L    MAINFE
  3379.     DC.L    ILLEGAL
  3380.     DC.L    MAIN00
  3381.     DC.L    MAIN01
  3382.     DC.L    ILLEGAL
  3383.     DC.L    ILLEGAL
  3384.     DC.L    ILLEGAL
  3385.     DC.L    MAIN05
  3386.     DC.L    MAIN06
  3387.     DC.L    ILLEGAL
  3388.     DC.L    MAIN08
  3389.     DC.L    MAIN09
  3390.     DC.L    MAIN0A
  3391.     DC.L    ILLEGAL
  3392.     DC.L    ILLEGAL
  3393.     DC.L    MAIN0D
  3394.     DC.L    MAIN0E
  3395.     DC.L    ILLEGAL
  3396.     DC.L    MAIN10
  3397.     DC.L    MAIN11
  3398.     DC.L    ILLEGAL
  3399.     DC.L    ILLEGAL
  3400.     DC.L    ILLEGAL
  3401.     DC.L    MAIN15
  3402.     DC.L    MAIN16
  3403.     DC.L    ILLEGAL
  3404.     DC.L    MAIN18
  3405.     DC.L    MAIN19
  3406.     DC.L    MAIN1A
  3407.     DC.L    ILLEGAL
  3408.     DC.L    ILLEGAL
  3409.     DC.L    MAIN1D
  3410.     DC.L    MAIN1E
  3411.     DC.L    ILLEGAL
  3412.     DC.L    MAIN20
  3413.     DC.L    MAIN21
  3414.     DC.L    ILLEGAL
  3415.     DC.L    ILLEGAL
  3416.     DC.L    MAIN24
  3417.     DC.L    MAIN25
  3418.     DC.L    MAIN26
  3419.     DC.L    ILLEGAL
  3420.     DC.L    MAIN28
  3421.     DC.L    MAIN29
  3422.     DC.L    MAIN2A
  3423.     DC.L    ILLEGAL
  3424.     DC.L    MAIN2C
  3425.     DC.L    MAIN2D
  3426.     DC.L    MAIN2E
  3427.     DC.L    ILLEGAL
  3428.     DC.L    MAIN30
  3429.     DC.L    MAIN31
  3430.     DC.L    ILLEGAL
  3431.     DC.L    ILLEGAL
  3432.     DC.L    ILLEGAL
  3433.     DC.L    MAIN35
  3434.     DC.L    MAIN36
  3435.     DC.L    ILLEGAL
  3436.     DC.L    MAIN38
  3437.     DC.L    MAIN39
  3438.     DC.L    MAIN3A
  3439.     DC.L    ILLEGAL
  3440.     DC.L    ILLEGAL
  3441.     DC.L    MAIN3D
  3442.     DC.L    MAIN3E
  3443.     DC.L    ILLEGAL
  3444.     DC.L    MAIN40
  3445.     DC.L    MAIN41
  3446.     DC.L    ILLEGAL
  3447.     DC.L    ILLEGAL
  3448.     DC.L    ILLEGAL
  3449.     DC.L    MAIN45
  3450.     DC.L    MAIN46
  3451.     DC.L    ILLEGAL
  3452.     DC.L    MAIN48
  3453.     DC.L    MAIN49
  3454.     DC.L    MAIN4A
  3455.     DC.L    ILLEGAL
  3456.     DC.L    MAIN4C
  3457.     DC.L    MAIN4D
  3458.     DC.L    MAIN4E
  3459.     DC.L    ILLEGAL
  3460.     DC.L    MAIN50
  3461.     DC.L    MAIN51
  3462.     DC.L    ILLEGAL
  3463.     DC.L    ILLEGAL
  3464.     DC.L    ILLEGAL
  3465.     DC.L    MAIN55
  3466.     DC.L    MAIN56
  3467.     DC.L    ILLEGAL
  3468.     DC.L    MAIN58
  3469.     DC.L    MAIN59
  3470.     DC.L    MAIN5A
  3471.     DC.L    ILLEGAL
  3472.     DC.L    ILLEGAL
  3473.     DC.L    MAIN5D
  3474.     DC.L    MAIN5E
  3475.     DC.L    ILLEGAL
  3476.     DC.L    MAIN60
  3477.     DC.L    MAIN61
  3478.     DC.L    ILLEGAL
  3479.     DC.L    ILLEGAL
  3480.     DC.L    ILLEGAL
  3481.     DC.L    MAIN65
  3482.     DC.L    MAIN66
  3483.     DC.L    ILLEGAL
  3484.     DC.L    MAIN68
  3485.     DC.L    MAIN69
  3486.     DC.L    MAIN6A
  3487.     DC.L    ILLEGAL
  3488.     DC.L    MAIN6C
  3489.     DC.L    MAIN6D
  3490.     DC.L    MAIN6E
  3491.     DC.L    ILLEGAL
  3492.     DC.L    MAIN70
  3493.     DC.L    MAIN71
  3494.     DC.L    ILLEGAL
  3495.     DC.L    ILLEGAL
  3496.     DC.L    ILLEGAL
  3497.     DC.L    MAIN75
  3498.     DC.L    MAIN76
  3499.     DC.L    ILLEGAL
  3500.     DC.L    MAIN78
  3501.     DC.L    MAIN79
  3502.     DC.L    MAIN7A
  3503.     DC.L    ILLEGAL
  3504.     DC.L    ILLEGAL
  3505.     DC.L    MAIN7D
  3506.     DC.L    MAIN7E
  3507.     DC.L    ILLEGAL
  3508.  
  3509.     ELSE
  3510.  
  3511.     DC.L    ILLEGAL        ; STANDARD 6502 JMP TABLE
  3512.     DC.L    MAIN81
  3513.     DC.L    ILLEGAL
  3514.     DC.L    ILLEGAL
  3515.     DC.L    MAIN84
  3516.     DC.L    MAIN85
  3517.     DC.L    MAIN86
  3518.     DC.L    ILLEGAL
  3519.     DC.L    MAIN88
  3520.     DC.L    ILLEGAL
  3521.     DC.L    MAIN8A
  3522.     DC.L    ILLEGAL
  3523.     DC.L    MAIN8C
  3524.     DC.L    MAIN8D
  3525.     DC.L    MAIN8E
  3526.     DC.L    ILLEGAL
  3527.     DC.L    MAIN90
  3528.     DC.L    MAIN91
  3529.     DC.L    ILLEGAL
  3530.     DC.L    ILLEGAL
  3531.     DC.L    MAIN94
  3532.     DC.L    MAIN95
  3533.     DC.L    MAIN96
  3534.     DC.L    ILLEGAL
  3535.     DC.L    MAIN98
  3536.     DC.L    MAIN99
  3537.     DC.L    MAIN9A
  3538.     DC.L    ILLEGAL
  3539.     DC.L    ILLEGAL
  3540.     DC.L    MAIN9D
  3541.     DC.L    ILLEGAL
  3542.     DC.L    ILLEGAL
  3543.     DC.L    MAINA0
  3544.     DC.L    MAINA1
  3545.     DC.L    MAINA2
  3546.     DC.L    ILLEGAL
  3547.     DC.L    MAINA4
  3548.     DC.L    MAINA5
  3549.     DC.L    MAINA6
  3550.     DC.L    ILLEGAL
  3551.     DC.L    MAINA8
  3552.     DC.L    MAINA9
  3553.     DC.L    MAINAA
  3554.     DC.L    ILLEGAL
  3555.     DC.L    MAINAC
  3556.     DC.L    MAINAD
  3557.     DC.L    MAINAE
  3558.     DC.L    ILLEGAL
  3559.     DC.L    MAINB0
  3560.     DC.L    MAINB1
  3561.     DC.L    ILLEGAL
  3562.     DC.L    ILLEGAL
  3563.     DC.L    MAINB4
  3564.     DC.L    MAINB5
  3565.     DC.L    MAINB6
  3566.     DC.L    ILLEGAL
  3567.     DC.L    MAINB8
  3568.     DC.L    MAINB9
  3569.     DC.L    MAINBA
  3570.     DC.L    ILLEGAL
  3571.     DC.L    MAINBC
  3572.     DC.L    MAINBD
  3573.     DC.L    MAINBE
  3574.     DC.L    ILLEGAL
  3575.     DC.L    MAINC0
  3576.     DC.L    MAINC1
  3577.     DC.L    ILLEGAL
  3578.     DC.L    ILLEGAL
  3579.     DC.L    MAINC4
  3580.     DC.L    MAINC5
  3581.     DC.L    MAINC6
  3582.     DC.L    ILLEGAL
  3583.     DC.L    MAINC8
  3584.     DC.L    MAINC9
  3585.     DC.L    MAINCA
  3586.     DC.L    ILLEGAL
  3587.     DC.L    MAINCC
  3588.     DC.L    MAINCD
  3589.     DC.L    MAINCE
  3590.     DC.L    ILLEGAL
  3591.     DC.L    MAIND0
  3592.     DC.L    MAIND1
  3593.     DC.L    ILLEGAL
  3594.     DC.L    ILLEGAL
  3595.     DC.L    ILLEGAL
  3596.     DC.L    MAIND5
  3597.     DC.L    MAIND6
  3598.     DC.L    ILLEGAL
  3599.     DC.L    MAIND8
  3600.     DC.L    MAIND9
  3601.     DC.L    ILLEGAL
  3602.     DC.L    ILLEGAL
  3603.     DC.L    ILLEGAL
  3604.     DC.L    MAINDD
  3605.     DC.L    MAINDE
  3606.     DC.L    ILLEGAL
  3607.     DC.L    MAINE0
  3608.     DC.L    MAINE1
  3609.     DC.L    ILLEGAL
  3610.     DC.L    ILLEGAL
  3611.     DC.L    MAINE4
  3612.     DC.L    MAINE5
  3613.     DC.L    MAINE6
  3614.     DC.L    ILLEGAL
  3615.     DC.L    MAINE8
  3616.     DC.L    MAINE9
  3617.     DC.L    MAINEA
  3618.     DC.L    ILLEGAL
  3619.     DC.L    MAINEC
  3620.     DC.L    MAINED
  3621.     DC.L    MAINEE
  3622.     DC.L    ILLEGAL
  3623.     DC.L    MAINF0
  3624.     DC.L    MAINF1
  3625.     DC.L    ILLEGAL
  3626.     DC.L    ILLEGAL
  3627.     DC.L    ILLEGAL
  3628.     DC.L    MAINF5
  3629.     DC.L    MAINF6
  3630.     DC.L    ILLEGAL
  3631.     DC.L    MAINF8
  3632.     DC.L    MAINF9
  3633.     DC.L    ILLEGAL
  3634.     DC.L    ILLEGAL
  3635.     DC.L    ILLEGAL
  3636.     DC.L    MAINFD
  3637.     DC.L    MAINFE
  3638.     DC.L    ILLEGAL
  3639.     DC.L    MAIN00
  3640.     DC.L    MAIN01
  3641.     DC.L    ILLEGAL
  3642.     DC.L    ILLEGAL
  3643.     DC.L    ILLEGAL
  3644.     DC.L    MAIN05
  3645.     DC.L    MAIN06
  3646.     DC.L    ILLEGAL
  3647.     DC.L    MAIN08
  3648.     DC.L    MAIN09
  3649.     DC.L    MAIN0A
  3650.     DC.L    ILLEGAL
  3651.     DC.L    ILLEGAL
  3652.     DC.L    MAIN0D
  3653.     DC.L    MAIN0E
  3654.     DC.L    ILLEGAL
  3655.     DC.L    MAIN10
  3656.     DC.L    MAIN11
  3657.     DC.L    ILLEGAL
  3658.     DC.L    ILLEGAL
  3659.     DC.L    ILLEGAL
  3660.     DC.L    MAIN15
  3661.     DC.L    MAIN16
  3662.     DC.L    ILLEGAL
  3663.     DC.L    MAIN18
  3664.     DC.L    MAIN19
  3665.     DC.L    ILLEGAL
  3666.     DC.L    ILLEGAL
  3667.     DC.L    ILLEGAL
  3668.     DC.L    MAIN1D
  3669.     DC.L    MAIN1E
  3670.     DC.L    ILLEGAL
  3671.     DC.L    MAIN20
  3672.     DC.L    MAIN21
  3673.     DC.L    ILLEGAL
  3674.     DC.L    ILLEGAL
  3675.     DC.L    MAIN24
  3676.     DC.L    MAIN25
  3677.     DC.L    MAIN26
  3678.     DC.L    ILLEGAL
  3679.     DC.L    MAIN28
  3680.     DC.L    MAIN29
  3681.     DC.L    MAIN2A
  3682.     DC.L    ILLEGAL
  3683.     DC.L    MAIN2C
  3684.     DC.L    MAIN2D
  3685.     DC.L    MAIN2E
  3686.     DC.L    ILLEGAL
  3687.     DC.L    MAIN30
  3688.     DC.L    MAIN31
  3689.     DC.L    ILLEGAL
  3690.     DC.L    ILLEGAL
  3691.     DC.L    ILLEGAL
  3692.     DC.L    MAIN35
  3693.     DC.L    MAIN36
  3694.     DC.L    ILLEGAL
  3695.     DC.L    MAIN38
  3696.     DC.L    MAIN39
  3697.     DC.L    ILLEGAL
  3698.     DC.L    ILLEGAL
  3699.     DC.L    ILLEGAL
  3700.     DC.L    MAIN3D
  3701.     DC.L    MAIN3E
  3702.     DC.L    ILLEGAL
  3703.     DC.L    MAIN40
  3704.     DC.L    MAIN41
  3705.     DC.L    ILLEGAL
  3706.     DC.L    ILLEGAL
  3707.     DC.L    ILLEGAL
  3708.     DC.L    MAIN45
  3709.     DC.L    MAIN46
  3710.     DC.L    ILLEGAL
  3711.     DC.L    MAIN48
  3712.     DC.L    MAIN49
  3713.     DC.L    MAIN4A
  3714.     DC.L    ILLEGAL
  3715.     DC.L    MAIN4C
  3716.     DC.L    MAIN4D
  3717.     DC.L    MAIN4E
  3718.     DC.L    ILLEGAL
  3719.     DC.L    MAIN50
  3720.     DC.L    MAIN51
  3721.     DC.L    ILLEGAL
  3722.     DC.L    ILLEGAL
  3723.     DC.L    ILLEGAL
  3724.     DC.L    MAIN55
  3725.     DC.L    MAIN56
  3726.     DC.L    ILLEGAL
  3727.     DC.L    MAIN58
  3728.     DC.L    MAIN59
  3729.     DC.L    ILLEGAL
  3730.     DC.L    ILLEGAL
  3731.     DC.L    ILLEGAL
  3732.     DC.L    MAIN5D
  3733.     DC.L    MAIN5E
  3734.     DC.L    ILLEGAL
  3735.     DC.L    MAIN60
  3736.     DC.L    MAIN61
  3737.     DC.L    ILLEGAL
  3738.     DC.L    ILLEGAL
  3739.     DC.L    ILLEGAL
  3740.     DC.L    MAIN65
  3741.     DC.L    MAIN66
  3742.     DC.L    ILLEGAL
  3743.     DC.L    MAIN68
  3744.     DC.L    MAIN69
  3745.     DC.L    MAIN6A
  3746.     DC.L    ILLEGAL
  3747.     DC.L    MAIN6C
  3748.     DC.L    MAIN6D
  3749.     DC.L    MAIN6E
  3750.     DC.L    ILLEGAL
  3751.     DC.L    MAIN70
  3752.     DC.L    MAIN71
  3753.     DC.L    ILLEGAL
  3754.     DC.L    ILLEGAL
  3755.     DC.L    ILLEGAL
  3756.     DC.L    MAIN75
  3757.     DC.L    MAIN76
  3758.     DC.L    ILLEGAL
  3759.     DC.L    MAIN78
  3760.     DC.L    MAIN79
  3761.     DC.L    ILLEGAL
  3762.     DC.L    ILLEGAL
  3763.     DC.L    ILLEGAL
  3764.     DC.L    MAIN7D
  3765.     DC.L    MAIN7E
  3766.     DC.L    ILLEGAL
  3767.  
  3768.     ENDIF
  3769.  
  3770.  
  3771.  
  3772. _JUMPTBL:    DS.L    1
  3773. FLAGTABL:            ; 680x0 -> 6502 flag conversion ($00-$1F)
  3774.  
  3775.     DC.B    $20,$21,$60,$61,$22,$23,$62,$63,$A0,$A1,$E0,$E1,$A2,$A3,$E2,$E3 ; SET UNUSED FLAG BIT 5
  3776.     DC.B    $20,$21,$60,$61,$22,$23,$62,$63,$A0,$A1,$E0,$E1,$A2,$A3,$E2,$E3
  3777.  
  3778.                 ; 6502 -> 680x0 FLAG CONVERSION ($00-$FF)
  3779.  
  3780.     DC.B    $00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15
  3781.     DC.B    $00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15
  3782.     DC.B    $00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15
  3783.     DC.B    $00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15,$00,$11,$04,$15
  3784.     DC.B    $02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17
  3785.     DC.B    $02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17
  3786.     DC.B    $02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17
  3787.     DC.B    $02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17,$02,$13,$06,$17
  3788.  
  3789.     DC.B    $08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D
  3790.     DC.B    $08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D
  3791.     DC.B    $08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D
  3792.     DC.B    $08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D,$08,$19,$0C,$1D
  3793.     DC.B    $0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F
  3794.     DC.B    $0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F
  3795.     DC.B    $0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F
  3796.     DC.B    $0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F,$0A,$1B,$0E,$1F
  3797.  
  3798.