//        ORG   $0000
      //        FCC   "g GCE 1982"
      //        FDB   $80
      //        FDB   music3
      //        FCB   $F8, $50               ; h,w of raster image
      //        FCB   $20, $C0               ; y,x of raster image
      //        FCC   "ARMOR ATTACK"
      //        FDB   $80
      #include <stdint.h>
      int main(int argc, char **argv) {
        typedef uint32_t UINT32;
        typedef int32_t  SINT32;
        typedef uint16_t UINT16;
        typedef int16_t  SINT16;
        typedef uint8_t  UINT8;
        typedef int8_t   SINT8;
      
        UINT8 memory[0x10000], *memory_DP = &memory[0xD000];
      
        // Modify this header to suit your target...
        SINT32 res, A, B, D, C;
        UINT16 PC, X, Y, S, U, Z, DP = 0xD0, arg, ea, msn, lsn, val;
        UINT8  N, H, V, CC;
      
      #define JUMP do {} while (0)
      
      L001F://        LDX   #$C880                  ; 001F: 8E C8 80      
      X = 0xc880;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDD   #$0280                  ; 0022: CC 02 80      
      A = (UINT8)((0x0280) >> 8);
      B = (UINT8)((0x0280) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   Clear_x_d               ; 0025: BD F5 48      
      memory[--S] = 0x0028 & 0xff; memory[--S] = 0x0028 >> 8;
      PC = 0xf548;
      JUMP;
      
      L0028://        LDD   #$0203                  ; 0028: CC 02 03      
      A = (UINT8)((0x0203) >> 8);
      B = (UINT8)((0x0203) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   Select_Game             ; 002B: BD F7 A9      
      memory[--S] = 0x002e & 0xff; memory[--S] = 0x002e >> 8;
      PC = 0xf7a9;
      JUMP;
      DP = 0xc8 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L002E://        JSR   DP_to_C8                ; 002E: BD F1 AF      
      memory[--S] = 0x0031 & 0xff; memory[--S] = 0x0031 >> 8;
      PC = 0xf1af;
      JUMP;
      DP = 0xc8 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L0031://        LDA   #$FF                    ; 0031: 86 FF         
      A = (SINT8)0xff;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$29                    ; 0033: 97 29         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x29] = A;
      
            //        LDB   #$BB                    ; 0035: C6 BB         
      B = (SINT8)0xbb;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   <$7A                    ; 0037: 96 7A         
      A = memory_DP[0x7a];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        CMPA  #$01                    ; 0039: 81 01         
      res = A - (SINT8)0x01;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x01) & (A ^ res);
      
            //        BEQ   $45                     ; 003B: 27 08         
      if (!Z) {
      PC = 0x0045;
      JUMP;
      }
      
            //        LDB   #$88                    ; 003D: C6 88         
      B = (SINT8)0x88;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        CMPA  #$02                    ; 003F: 81 02         
      res = A - (SINT8)0x02;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x02) & (A ^ res);
      
            //        BEQ   $45                     ; 0041: 27 02         
      if (!Z) {
      PC = 0x0045;
      JUMP;
      }
      
            //        INC   <$29                    ; 0043: 0C 29         
      res = (UINT8)((memory_DP[0x29]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0x29]);
      memory_DP[0x29] = res;
      
      L0045://        STB   <$F0                    ; 0045: D7 F0         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xf0] = B;
      
            //        CLR   <$20                    ; 0047: 0F 20         
      memory_DP[0x20] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        CLR   <$22                    ; 0049: 0F 22         
      memory_DP[0x22] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDD   #$7F7F                  ; 004B: CC 7F 7F      
      A = (UINT8)((0x7f7f) >> 8);
      B = (UINT8)((0x7f7f) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$C9                    ; 004E: DD C9         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xc9] = A;
      memory_DP[0xc9 + 1] = B;
      
      L0050://        LDA   <$79                    ; 0050: 96 79         
      A = memory_DP[0x79];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$C8                    ; 0052: 97 C8         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xc8] = A;
      
            //        CLR   <$87                    ; 0054: 0F 87         
      memory_DP[0x87] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDA   #$10                    ; 0056: 86 10         
      A = (SINT8)0x10;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$1A                    ; 0058: 97 1A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x1a] = A;
      
            //        LDD   #$FA38                  ; 005A: CC FA 38      
      A = (UINT8)((0xfa38) >> 8);
      B = (UINT8)((0xfa38) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$2A                    ; 005D: DD 2A         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x2a] = A;
      memory_DP[0x2a + 1] = B;
      
            //        LDX   #$C8DE                  ; 005F: 8E C8 DE      
      X = 0xc8de;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #$0D3F                  ; 0062: CE 0D 3F      
      U = 0x0d3f;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   #$07                    ; 0065: 86 07         
      A = (SINT8)0x07;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   $0CF6                   ; 0067: BD 0C F6      
      memory[--S] = 0x006a & 0xff; memory[--S] = 0x006a >> 8;
      PC = 0x0cf6;
      JUMP;
      
      L006A://        LDX   #$CA88                  ; 006A: 8E CA 88      
      X = 0xca88;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDD   #$7888                  ; 006D: CC 78 88      
      A = (UINT8)((0x7888) >> 8);
      B = (UINT8)((0x7888) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   ,X++                    ; 0070: ED 81         
      ea = X; X = X + 2;
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[ea] = A;
      memory[ea + 1] = B;
      
            //        JSR   Clear_Score             ; 0072: BD F8 4F      
      memory[--S] = 0x0075 & 0xff; memory[--S] = 0x0075 >> 8;
      PC = 0xf84f;
      JUMP;
      
      L0075://        LEAX  $07,X                   ; 0075: 30 07         
      X = (X + 0x0007);
  //  Z = X;
      
            //        LDD   #$7838                  ; 0077: CC 78 38      
      A = (UINT8)((0x7838) >> 8);
      B = (UINT8)((0x7838) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   ,X++                    ; 007A: ED 81         
      ea = X; X = X + 2;
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[ea] = A;
      memory[ea + 1] = B;
      
            //        JSR   Clear_Score             ; 007C: BD F8 4F      
      memory[--S] = 0x007f & 0xff; memory[--S] = 0x007f >> 8;
      PC = 0xf84f;
      JUMP;
      
      L007F://        JSR   Init_Music_Buf          ; 007F: BD F5 33      
      memory[--S] = 0x0082 & 0xff; memory[--S] = 0x0082 >> 8;
      PC = 0xf533;
      JUMP;
      
      L0082://        LDA   #$FF                    ; 0082: 86 FF         
      A = (SINT8)0xff;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$71                    ; 0084: 97 71         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x71] = A;
      
            //        STA   <$8A                    ; 0086: 97 8A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x8a] = A;
      
            //        STA   <$E9                    ; 0088: 97 E9         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xe9] = A;
      
            //        STA   <$ED                    ; 008A: 97 ED         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xed] = A;
      
            //        STA   <$91                    ; 008C: 97 91         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x91] = A;
      
            //        LDX   #$0FEE                  ; 008E: 8E 0F EE      
      X = 0x0fee;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #$CA9A                  ; 0091: CE CA 9A      
      U = 0xca9a;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDB   #$02                    ; 0094: C6 02         
      B = (SINT8)0x02;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   $0CAC                   ; 0096: BD 0C AC      
      memory[--S] = 0x0099 & 0xff; memory[--S] = 0x0099 >> 8;
      PC = 0x0cac;
      JUMP;
      
      L0099://        LDA   <$E1                    ; 0099: 96 E1         
      A = memory_DP[0xe1];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$2E                    ; 009B: 97 2E         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x2e] = A;
      
            //        LDA   <$E0                    ; 009D: 96 E0         
      A = memory_DP[0xe0];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$2F                    ; 009F: 97 2F         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x2f] = A;
      
            //        LDA   <$DE                    ; 00A1: 96 DE         
      A = memory_DP[0xde];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$30                    ; 00A3: 97 30         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x30] = A;
      
            //        JSR   $084B                   ; 00A5: BD 08 4B      
      memory[--S] = 0x00a8 & 0xff; memory[--S] = 0x00a8 >> 8;
      PC = 0x084b;
      JUMP;
      
      L00A8://        JSR   $0CD4                   ; 00A8: BD 0C D4      
      memory[--S] = 0x00ab & 0xff; memory[--S] = 0x00ab >> 8;
      PC = 0x0cd4;
      JUMP;
      
      L00AB://        CLR   <$94                    ; 00AB: 0F 94         
      memory_DP[0x94] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDX   #$C9C0                  ; 00AD: 8E C9 C0      
      X = 0xc9c0;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDD   #$0807                  ; 00B0: CC 08 07      
      A = (UINT8)((0x0807) >> 8);
      B = (UINT8)((0x0807) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0CDA                   ; 00B3: BD 0C DA      
      memory[--S] = 0x00b6 & 0xff; memory[--S] = 0x00b6 >> 8;
      PC = 0x0cda;
      JUMP;
      
      L00B6://        CLR   <$67                    ; 00B6: 0F 67         
      memory_DP[0x67] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDA   <$E2                    ; 00B8: 96 E2         
      A = memory_DP[0xe2];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $DD                     ; 00BA: 26 21         
      if (Z) {
      PC = 0x00dd;
      JUMP;
      }
      
            //        LDX   #$CA8A                  ; 00BC: 8E CA 8A      
      X = 0xca8a;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LEAU  $09,X                   ; 00BF: 33 09         
      U = (X + 0x0009);
      
            //        JSR   Compare_Score           ; 00C1: BD F8 C7      
      memory[--S] = 0x00c4 & 0xff; memory[--S] = 0x00c4 >> 8;
      PC = 0xf8c7;
      JUMP;
      
      L00C4://        CMPA  #$02                    ; 00C4: 81 02         
      res = A - (SINT8)0x02;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x02) & (A ^ res);
      
            //        BNE   $CA                     ; 00C6: 26 02         
      if (Z) {
      PC = 0x00ca;
      JUMP;
      }
      
            //        LEAX  ,U                      ; 00C8: 30 C4         
      X = U;
  //  Z = X;
      
      L00CA://        LDU   #Vec_High_Score         ; 00CA: CE CB EB      
      U = 0xcbeb;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        JSR   New_High_Score          ; 00CD: BD F8 D8      
      memory[--S] = 0x00d0 & 0xff; memory[--S] = 0x00d0 >> 8;
      PC = 0xf8d8;
      JUMP;
      
      L00D0://        CLR   <$ED                    ; 00D0: 0F ED         
      memory_DP[0xed] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        LDD   #$0BFF                  ; 00D2: CC 0B FF      
      A = (UINT8)((0x0bff) >> 8);
      B = (UINT8)((0x0bff) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$32                    ; 00D5: DD 32         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x32] = A;
      memory_DP[0x32 + 1] = B;
      
            //        LDA   <$C8                    ; 00D7: 96 C8         
      A = memory_DP[0xc8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$E9                    ; 00D9: 97 E9         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0xe9] = A;
      
            //        BRA   $011B                   ; 00DB: 20 3E         
      PC = 0x011b;
      JUMP;
      
      
      L00DD://        LDA   <$C7                    ; 00DD: 96 C7         
      A = memory_DP[0xc7];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $EF                     ; 00DF: 26 0E         
      if (Z) {
      PC = 0x00ef;
      JUMP;
      }
      
            //        LDA   <$2E                    ; 00E1: 96 2E         
      A = memory_DP[0x2e];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $99                     ; 00E3: 27 B4         
      if (!Z) {
      PC = 0x0099;
      JUMP;
      }
      
            //        LDA   <$C8                    ; 00E5: 96 C8         
      A = memory_DP[0xc8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$E9                    ; 00E7: 97 E9         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xe9] = A;
      
            //        DEC   <$2E                    ; 00E9: 0A 2E         
      res = (UINT8)(memory_DP[0x2e] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0x2e] & ~res;
      memory_DP[0x2e] = res;
      
            //        BNE   $011B                   ; 00EB: 26 2E         
      if (Z) {
      PC = 0x011b;
      JUMP;
      }
      
            //        COM   <$E9                    ; 00ED: 03 E9         
      memory_DP[0xe9] = memory_DP[0xe9] ^ 0xff;
  //  Z = memory_DP[0xe9];
  //  N = memory_DP[0xe9];
  //  V = 0;
  //  C = 1;
      
      L00EF://        LDB   <$C7                    ; 00EF: D6 C7         
      B = memory_DP[0xc7];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BEQ   $A8                     ; 00F1: 27 B5         
      if (!Z) {
      PC = 0x00a8;
      JUMP;
      }
      
            //        LDA   <$8A                    ; 00F3: 96 8A         
      A = memory_DP[0x8a];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BPL   $010F                   ; 00F5: 2A 18         
      if ((SINT8)N >= 0) {
      PC = 0x010f;
      JUMP;
      }
      
            //        NEGA                          ; 00F7: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        STA   <$8A                    ; 00F8: 97 8A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x8a] = A;
      
            //        ANDA  #$03                    ; 00FA: 84 03         
      A = A & (SINT8)0x03;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        CMPA  #$01                    ; 00FC: 81 01         
      res = A - (SINT8)0x01;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x01) & (A ^ res);
      
            //        BNE   $010F                   ; 00FE: 26 0F         
      if (Z) {
      PC = 0x010f;
      JUMP;
      }
      
            //        LDB   <$87                    ; 0100: D6 87         
      B = memory_DP[0x87];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDU   #$0CFF                  ; 0102: CE 0C FF      
      U = 0x0cff;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LEAU  B,U                     ; 0105: 33 C5         
      U = (U + (SINT8)B);
      
            //        LDX   #$C880                  ; 0107: 8E C8 80      
      X = 0xc880;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDA   #$08                    ; 010A: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   $0CF6                   ; 010C: BD 0C F6      
      memory[--S] = 0x010f & 0xff; memory[--S] = 0x010f >> 8;
      PC = 0x0cf6;
      JUMP;
      
      L010F://        JSR   $0A59                   ; 010F: BD 0A 59      
      memory[--S] = 0x0112 & 0xff; memory[--S] = 0x0112 >> 8;
      PC = 0x0a59;
      JUMP;
      
      L0112://        JSR   $08BA                   ; 0112: BD 08 BA      
      memory[--S] = 0x0115 & 0xff; memory[--S] = 0x0115 >> 8;
      PC = 0x08ba;
      JUMP;
      
      L0115://        JSR   $039D                   ; 0115: BD 03 9D      
      memory[--S] = 0x0118 & 0xff; memory[--S] = 0x0118 >> 8;
      PC = 0x039d;
      JUMP;
      
      L0118://        JSR   $06C6                   ; 0118: BD 06 C6      
      memory[--S] = 0x011b & 0xff; memory[--S] = 0x011b >> 8;
      PC = 0x06c6;
      JUMP;
      
      L011B://        INC   <$EE                    ; 011B: 0C EE         
      res = (UINT8)((memory_DP[0xee]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0xee]);
      memory_DP[0xee] = res;
      
            //        JSR   $0BD3                   ; 011D: BD 0B D3      
      memory[--S] = 0x0120 & 0xff; memory[--S] = 0x0120 >> 8;
      PC = 0x0bd3;
      JUMP;
      
      L0120://        JSR   $0185                   ; 0120: BD 01 85      
      memory[--S] = 0x0123 & 0xff; memory[--S] = 0x0123 >> 8;
      PC = 0x0185;
      JUMP;
      
      L0123://        LDA   <$ED                    ; 0123: 96 ED         
      A = memory_DP[0xed];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BMI   $EF                     ; 0125: 2B C8         
      if ((SINT8)N <  0) {
      PC = 0x00ef;
      JUMP;
      }
      
            //        LDB   <$0F                    ; 0127: D6 0F         
      B = memory_DP[0x0f];
      N = B;
      Z = B;
      V = 0;
      
            //        LBNE  $50                     ; 0129: 10 26 FF 23   
      if (Z) {
      PC = 0x0050;
      JUMP;
      }
      
            //        DEC   <$33                    ; 012D: 0A 33         
      res = (UINT8)(memory_DP[0x33] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0x33] & ~res;
      memory_DP[0x33] = res;
      
            //        BNE   $011B                   ; 012F: 26 EA         
      if (Z) {
      PC = 0x011b;
      JUMP;
      }
      
            //        DEC   <$32                    ; 0131: 0A 32         
      res = (UINT8)(memory_DP[0x32] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0x32] & ~res;
      memory_DP[0x32] = res;
      
            //        BNE   $011B                   ; 0133: 26 E6         
      if (Z) {
      PC = 0x011b;
      JUMP;
      }
      
            //        LDD   #$06FF                  ; 0135: CC 06 FF      
      A = (UINT8)((0x06ff) >> 8);
      B = (UINT8)((0x06ff) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$32                    ; 0138: DD 32         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x32] = A;
      memory_DP[0x32 + 1] = B;
      
      L013A://        JSR   Wait_Recal              ; 013A: BD F1 92      
      memory[--S] = 0x013d & 0xff; memory[--S] = 0x013d >> 8;
      PC = 0xf192;
      JUMP;
      DP = 0xd0 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L013D://        JSR   Read_Btns               ; 013D: BD F1 BA      
      memory[--S] = 0x0140 & 0xff; memory[--S] = 0x0140 >> 8;
      PC = 0xf1ba;
      JUMP;
      
      L0140://        JSR   DP_to_C8                ; 0140: BD F1 AF      
      memory[--S] = 0x0143 & 0xff; memory[--S] = 0x0143 >> 8;
      PC = 0xf1af;
      JUMP;
      DP = 0xc8 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L0143://        LDX   <$32                    ; 0143: 9E 32         
      X = ((memory_DP[0x32]<<8)|memory_DP[0x32 + 1]);
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LEAX  $FFFF,X                 ; 0145: 30 1F         
      X = (X + 0xffff);
  //  Z = X;
      
            //        STX   <$32                    ; 0147: 9F 32         
      Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      memory_DP[0x32] = (UINT8)((X) >> 8);
      memory_DP[(UINT16)(0x32 + 1)] = (UINT8)((X) & 0xff);
      
            //        BEQ   $0150                   ; 0149: 27 05         
      if (!Z) {
      PC = 0x0150;
      JUMP;
      }
      
            //        LDA   Vec_Btn_State           ; 014B: B6 C8 0F      
      A = memory[0xc80f];
      N = A;
      Z = A;
      V = 0;
      
            //        BEQ   $013A                   ; 014E: 27 EA         
      if (!Z) {
      PC = 0x013a;
      JUMP;
      }
      
      L0150://        JMP   Cold_Start              ; 0150: 7E F0 00      
      PC = 0xf000;
      JUMP;
      
      
      L0153://        STA   <$04                    ; 0153: 97 04         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x04] = A;
      
            //        LDD   ,U++                    ; 0155: EC C1         
      ea = U; U = U + 2;
      A = memory[ea];
      B = memory[(UINT16)((ea)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   Moveto_d                ; 0157: BD F3 12      
      memory[--S] = 0x015a & 0xff; memory[--S] = 0x015a >> 8;
      PC = 0xf312;
      JUMP;
      
      L015A://        LDA   #$3F                    ; 015A: 86 3F         
      A = (SINT8)0x3f;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$04                    ; 015C: 97 04         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x04] = A;
      
            //        LDA   $03,S                   ; 015E: A6 63         
      A = memory[(UINT16)(S + 0x0003)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   Vec_Misc_Count          ; 0160: B7 C8 23      
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[0xc823] = A;
      
            //        JSR   Draw_Pat_VL             ; 0163: BD F4 37      
      memory[--S] = 0x0166 & 0xff; memory[--S] = 0x0166 >> 8;
      PC = 0xf437;
      JUMP;
      
      L0166://        DEC   $02,S                   ; 0166: 6A 62         
      res = (UINT8)(memory[(UINT16)(S + 0x0002)] - 1);
      N = res;
      Z = res;
      V = memory[(UINT16)(S + 0x0002)] & ~res;
      memory[(UINT16)(S + 0x0002)] = res;
      
            //        RTS                           ; 0168: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0169://        LDD   ,U++                    ; 0169: EC C1         
      ea = U; U = U + 2;
      A = memory[ea];
      B = memory[(UINT16)((ea)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        PSHS  X,B,A                   ; 016B: 34 16         
      memory[--S] = X & 0xff; memory[--S] = X >> 8;
      memory[--S] = B;
      memory[--S] = A;
      
      L016D://        LDX   $02,S                   ; 016D: AE 62         
      X = ((memory[(UINT16)(S + 0x0002)]<<8)|memory[(UINT16)(((UINT16)(S + 0x0002))+1)]);
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDA   $C8CA                   ; 016F: B6 C8 CA      
      A = memory[0xc8ca];
      N = A;
      Z = A;
      V = 0;
      
            //        BSR   $0153                   ; 0172: 8D DF         
      memory[--S] = 0x0174 & 0xff; memory[--S] = 0x0174 >> 8;
      PC = 0x0153;
      JUMP;
      
      L0174://        BNE   $016D                   ; 0174: 26 F7         
      if (Z) {
      PC = 0x016d;
      JUMP;
      }
      
            //        PULS  A,B,X,PC                ; 0176: 35 96             ;(PUL? PC=RTS)
      A = memory[S++];
      B = memory[S++];
      X = memory[S++]<<8;
      X |= memory[S++];
      PC = memory[S++]<<8;
      PC |= memory[S++];
      
      
      L0178://        LDD   ,U++                    ; 0178: EC C1         
      ea = U; U = U + 2;
      A = memory[ea];
      B = memory[(UINT16)((ea)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        PSHS  B,A                     ; 017A: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
      L017C://        LDA   $C8C9                   ; 017C: B6 C8 C9      
      A = memory[0xc8c9];
      N = A;
      Z = A;
      V = 0;
      
            //        BSR   $0153                   ; 017F: 8D D2         
      memory[--S] = 0x0181 & 0xff; memory[--S] = 0x0181 >> 8;
      PC = 0x0153;
      JUMP;
      
      L0181://        BNE   $017C                   ; 0181: 26 F9         
      if (Z) {
      PC = 0x017c;
      JUMP;
      }
      
            //        PULS  A,B,PC                  ; 0183: 35 86             ;(PUL? PC=RTS)
      A = memory[S++];
      B = memory[S++];
      PC = memory[S++]<<8;
      PC |= memory[S++];
      
      
      L0185://        INC   <$24                    ; 0185: 0C 24         
      res = (UINT8)((memory_DP[0x24]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0x24]);
      memory_DP[0x24] = res;
      
            //        JSR   Wait_Recal              ; 0187: BD F1 92      
      memory[--S] = 0x018a & 0xff; memory[--S] = 0x018a >> 8;
      PC = 0xf192;
      JUMP;
      DP = 0xd0 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L018A://        JSR   Do_Sound                ; 018A: BD F2 89      
      memory[--S] = 0x018d & 0xff; memory[--S] = 0x018d >> 8;
      PC = 0xf289;
      JUMP;
      
      L018D://        JSR   Intensity_5F            ; 018D: BD F2 A5      
      memory[--S] = 0x0190 & 0xff; memory[--S] = 0x0190 >> 8;
      PC = 0xf2a5;
      JUMP;
      
      L0190://        LDX   #$0E18                  ; 0190: 8E 0E 18      
      X = 0x0e18;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #$0EA4                  ; 0193: CE 0E A4      
      U = 0x0ea4;
      Z = U;
      N = (U) >> 8;
      V = 0;
      
            //        BSR   $0178                   ; 0196: 8D E0         
      memory[--S] = 0x0198 & 0xff; memory[--S] = 0x0198 >> 8;
      PC = 0x0178;
      JUMP;
      
      L0198://        LDX   #$0E60                  ; 0198: 8E 0E 60      
      X = 0x0e60;
      Z = X;
      N = (X) >> 8;
      V = 0;
      
            //        BSR   $0169                   ; 019B: 8D CC         
      memory[--S] = 0x019d & 0xff; memory[--S] = 0x019d >> 8;
      PC = 0x0169;
      JUMP;
      
      L019D://        LEAX  $0C,X                   ; 019D: 30 0C         
      X = (X + 0x000c);
      Z = X;
      
            //        BSR   $0169                   ; 019F: 8D C8         
      memory[--S] = 0x01a1 & 0xff; memory[--S] = 0x01a1 >> 8;
      PC = 0x0169;
      JUMP;
      
      L01A1://        LEAX  $08,X                   ; 01A1: 30 08         
      X = (X + 0x0008);
      Z = X;
      
            //        BSR   $0178                   ; 01A3: 8D D3         
      memory[--S] = 0x01a5 & 0xff; memory[--S] = 0x01a5 >> 8;
      PC = 0x0178;
      JUMP;
      
      L01A5://        CLR   Vec_0Ref_Enable         ; 01A5: 7F C8 24      
      memory[0xc824] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LEAS  $FFF6,S                 ; 01A8: 32 76         
      S = (S + 0xfff6);
      
            //        LDU   #$C900                  ; 01AA: CE C9 00      
      U = 0xc900;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDD   #$038F                  ; 01AD: CC 03 8F      
      A = (UINT8)((0x038f) >> 8);
      B = (UINT8)((0x038f) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   ,S                      ; 01B0: ED E4         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[S] = A;
      memory[S + 1] = B;
      
            //        LDD   #$0275                  ; 01B2: CC 02 75      
      A = (UINT8)((0x0275) >> 8);
      B = (UINT8)((0x0275) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $02,S                   ; 01B5: ED 62         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0x0002)] = A;
      memory[(UINT16)(S + 0x0002) + 1] = B;
      
            //        LDA   $C881                   ; 01B7: B6 C8 81      
      A = memory[0xc881];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   #$40                    ; 01BA: C6 40         
      B = (SINT8)0x40;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   $0381                   ; 01BC: BD 03 81      
      memory[--S] = 0x01bf & 0xff; memory[--S] = 0x01bf >> 8;
      PC = 0x0381;
      JUMP;
      
      L01BF://        LDU   #$CA00                  ; 01BF: CE CA 00      
      U = 0xca00;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDD   #$02E6                  ; 01C2: CC 02 E6      
      A = (UINT8)((0x02e6) >> 8);
      B = (UINT8)((0x02e6) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $02,S                   ; 01C5: ED 62         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0x0002)] = A;
      memory[(UINT16)(S + 0x0002) + 1] = B;
      
            //        LDA   $C8C8                   ; 01C7: B6 C8 C8      
      A = memory[0xc8c8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   #$27                    ; 01CA: C6 27         
      B = (SINT8)0x27;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   $0381                   ; 01CC: BD 03 81      
      memory[--S] = 0x01cf & 0xff; memory[--S] = 0x01cf >> 8;
      PC = 0x0381;
      JUMP;
      
      L01CF://        LDU   #$C9C0                  ; 01CF: CE C9 C0      
      U = 0xc9c0;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDD   #$02B2                  ; 01D2: CC 02 B2      
      A = (UINT8)((0x02b2) >> 8);
      B = (UINT8)((0x02b2) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $02,S                   ; 01D5: ED 62         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0x0002)] = A;
      memory[(UINT16)(S + 0x0002) + 1] = B;
      
            //        LDY   #$CA56                  ; 01D7: 10 8E CA 56   
      Y = 0xca56;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      
            //        LDD   #$0807                  ; 01DB: CC 08 07      
      A = (UINT8)((0x0807) >> 8);
      B = (UINT8)((0x0807) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0381                   ; 01DE: BD 03 81      
      memory[--S] = 0x01e1 & 0xff; memory[--S] = 0x01e1 >> 8;
      PC = 0x0381;
      JUMP;
      
      L01E1://        LDU   #$C894                  ; 01E1: CE C8 94      
      U = 0xc894;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDD   #$0308                  ; 01E4: CC 03 08      
      A = (UINT8)((0x0308) >> 8);
      B = (UINT8)((0x0308) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $02,S                   ; 01E7: ED 62         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0x0002)] = A;
      memory[(UINT16)(S + 0x0002) + 1] = B;
      
            //        LDA   #$01                    ; 01E9: 86 01         
      A = (SINT8)0x01;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   $0381                   ; 01EB: BD 03 81      
      memory[--S] = 0x01ee & 0xff; memory[--S] = 0x01ee >> 8;
      PC = 0x0381;
      JUMP;
      
      L01EE://        LDD   #$0CA3                  ; 01EE: CC 0C A3      
      A = (UINT8)((0x0ca3) >> 8);
      B = (UINT8)((0x0ca3) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   ,S                      ; 01F1: ED E4         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[S] = A;
      memory[S + 1] = B;
      
            //        LDX   #$CA8A                  ; 01F3: 8E CA 8A      
      X = 0xca8a;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #$C8E5                  ; 01F6: CE C8 E5      
      U = 0xc8e5;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   $C8C8                   ; 01F9: B6 C8 C8      
      A = memory[0xc8c8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   $0381                   ; 01FC: BD 03 81      
      memory[--S] = 0x01ff & 0xff; memory[--S] = 0x01ff >> 8;
      PC = 0x0381;
      JUMP;
      
      L01FF://        LDD   #$7E7F                  ; 01FF: CC 7E 7F      
      A = (UINT8)((0x7e7f) >> 8);
      B = (UINT8)((0x7e7f) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STB   <$04                    ; 0202: D7 04         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x04] = B;
      
            //        JSR   Intensity_a             ; 0204: BD F2 AB      
      memory[--S] = 0x0207 & 0xff; memory[--S] = 0x0207 >> 8;
      PC = 0xf2ab;
      JUMP;
      
      L0207://        LDA   $C8E9                   ; 0207: B6 C8 E9      
      A = memory[0xc8e9];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BMI   $021A                   ; 020A: 2B 0E         
      if ((SINT8)N <  0) {
      PC = 0x021a;
      JUMP;
      }
      
            //        LDA   $C8C8                   ; 020C: B6 C8 C8      
      A = memory[0xc8c8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDX   #Print_Str_yx           ; 020F: 8E F3 78      
      X = 0xf378;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        STX   ,S                      ; 0212: AF E4         
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      memory[S] = (UINT8)((X) >> 8);
      memory[(UINT16)(S + 1)] = (UINT8)((X) & 0xff);
      
            //        LDU   #$CA88                  ; 0214: CE CA 88      
      U = 0xca88;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        JSR   $0381                   ; 0217: BD 03 81      
      memory[--S] = 0x021a & 0xff; memory[--S] = 0x021a >> 8;
      PC = 0x0381;
      JUMP;
      
      L021A://        LEAS  $0A,S                   ; 021A: 32 6A         
      S = (S + 0x000a);
      
            //        LDA   $C8E9                   ; 021C: B6 C8 E9      
      A = memory[0xc8e9];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BMI   $0237                   ; 021F: 2B 16         
      if ((SINT8)N <  0) {
      PC = 0x0237;
      JUMP;
      }
      
            //        LDX   #$78EF                  ; 0221: 8E 78 EF      
      X = 0x78ef;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDB   $C8E2                   ; 0224: F6 C8 E2      
      B = memory[0xc8e2];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   #$60                    ; 0227: 86 60         
      A = (SINT8)0x60;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Print_Ships             ; 0229: BD F3 93      
      memory[--S] = 0x022c & 0xff; memory[--S] = 0x022c >> 8;
      PC = 0xf393;
      JUMP;
      
      L022C://        LDA   $C8ED                   ; 022C: B6 C8 ED      
      A = memory[0xc8ed];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $0237                   ; 022F: 26 06         
      if (Z) {
      PC = 0x0237;
      JUMP;
      }
      
            //        LDU   #$0FF4                  ; 0231: CE 0F F4      
      U = 0x0ff4;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        JSR   Print_Str_yx            ; 0234: BD F3 78      
      memory[--S] = 0x0237 & 0xff; memory[--S] = 0x0237 >> 8;
      PC = 0xf378;
      JUMP;
      
      L0237://        LDA   $C8F0                   ; 0237: B6 C8 F0      
      A = memory[0xc8f0];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Read_Btns_Mask          ; 023A: BD F1 B4      
      memory[--S] = 0x023d & 0xff; memory[--S] = 0x023d >> 8;
      PC = 0xf1b4;
      JUMP;
      
      L023D://        JSR   Joy_Digital             ; 023D: BD F1 F8      
      memory[--S] = 0x0240 & 0xff; memory[--S] = 0x0240 >> 8;
      PC = 0xf1f8;
      JUMP;
      
      L0240://        LDA   $C8C8                   ; 0240: B6 C8 C8      
      A = memory[0xc8c8];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $026F                   ; 0243: 27 2A         
      if (!Z) {
      PC = 0x026f;
      JUMP;
      }
      
            //        LDX   #$CA4E                  ; 0245: 8E CA 4E      
      X = 0xca4e;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #Vec_Button_1_1         ; 0248: CE C8 12      
      U = 0xc812;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDY   #Vec_Joy_1_X            ; 024B: 10 8E C8 1B   
      Y = 0xc81b;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      
      L024F://        PSHS  X,A                     ; 024F: 34 12         
      memory[--S] = X & 0xff; memory[--S] = X >> 8;
      memory[--S] = A;
      
            //        LDD   ,U++                    ; 0251: EC C1         
      ea = U; U = U + 2;
      A = memory[ea];
      B = memory[(UINT16)((ea)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   ,X+                     ; 0253: ED 80         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[X++] = A;  // 1
      memory[X] = B;
      
            //        LDD   ,U++                    ; 0255: EC C1         
      ea = U; U = U + 2;
      A = memory[ea];
      B = memory[(UINT16)((ea)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $01,X                   ; 0257: ED 01         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0001)] = A;
      memory[(UINT16)(X + 0x0001) + 1] = B;
      
            //        CLRB                          ; 0259: 5F            
      B = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        LDA   ,Y++                    ; 025A: A6 A1         
      ea = Y; Y = Y + 2;
      A = memory[ea];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0268                   ; 025C: 27 0A         
      if (!Z) {
      PC = 0x0268;
      JUMP;
      }
      
            //        ROLA                          ; 025E: 49            
      res = ((A) << 1) + (C != 0);
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ROLB                          ; 025F: 59            
      res = ((B) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = res ^ (B);
      B = res;
      
            //        BEQ   $0264                   ; 0260: 27 02         
      if (!Z) {
      PC = 0x0264;
      JUMP;
      }
      
            //        COMA                          ; 0262: 43            
      A = A ^ 0xff;
  //  Z = A;
  //  N = A;
  //  V = 0;
  //  C = 1;
      
            //        NEGB                          ; 0263: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
      C = B;
      
      L0264://        ORA   B,X                     ; 0264: AA 85         
      A = A | memory[(UINT16)(X + (SINT8)B)];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   B,X                     ; 0266: A7 85         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + (SINT8)B)] = A;
      
      L0268://        PULS  A,X                     ; 0268: 35 12         
      A = memory[S++];
      X = memory[S++]<<8;
      X |= memory[S++];
      
            //        LEAX  $04,X                   ; 026A: 30 04         
      X = (X + 0x0004);
  //  Z = X;
      
            //        DECA                          ; 026C: 4A            
      res = (UINT8)(A - 1);
      N = res;
      Z = res;
      V = A & ~res;
      A = res;
      
            //        BNE   $024F                   ; 026D: 26 E0         
      if (Z) {
      PC = 0x024f;
      JUMP;
      }
      
      L026F://        JSR   Reset0Ref               ; 026F: BD F3 54      
      memory[--S] = 0x0272 & 0xff; memory[--S] = 0x0272 >> 8;
      PC = 0xf354;
      JUMP;
      
      L0272://        JMP   DP_to_C8                ; 0272: 7E F1 AF      
      PC = 0xf1af;
      JUMP;
      
      
      L0381://        PSHS  B,A                     ; 0381: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        TSTA                          ; 0383: 4D            
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BEQ   $038D                   ; 0384: 27 07         
      if (!Z) {
      PC = 0x038d;
      JUMP;
      }
      
      L0386://        JSR   [$04,S]                 ; 0386: AD F8 04      
      memory[--S] = 0x0389 & 0xff; memory[--S] = 0x0389 >> 8;
      PC = ((memory[(UINT16)(S + (SINT8)0x04)]<<8)|memory[(UINT16)(S + (SINT8)0x04 + 1)]);
      JUMP;
      
      L0389://        DEC   ,S                      ; 0389: 6A E4         
      res = (UINT8)(memory[S] - 1);
      N = res;
      Z = res;
      V = memory[S] & ~res;
      memory[S] = res;
      
            //        BNE   $0386                   ; 038B: 26 F9         
      if (Z) {
      PC = 0x0386;
      JUMP;
      }
      
      L038D://        PULS  A,B,PC                  ; 038D: 35 86             ;(PUL? PC=RTS)
      A = memory[S++];
      B = memory[S++];
      PC = memory[S++]<<8;
      PC |= memory[S++];
      
      
      L039D://        LDA   #$FC                    ; 039D: 86 FC         
      A = (SINT8)0xfc;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  <$67                    ; 039F: 94 67         
      A = A & memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 03A1: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        LDA   <$2F                    ; 03A3: 96 2F         
      A = memory_DP[0x2f];
      N = A;
      Z = A;
      V = 0;
      
            //        LBEQ  $0448                   ; 03A5: 10 27 00 9F   
      if (!Z) {
      PC = 0x0448;
      JUMP;
      }
      
            //        DEC   <$2F                    ; 03A9: 0A 2F         
      res = (UINT8)(memory_DP[0x2f] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0x2f] & ~res;
      memory_DP[0x2f] = res;
      
            //        BNE   $03E9                   ; 03AB: 26 3C         
      if (Z) {
      PC = 0x03e9;
      JUMP;
      }
      
            //        COM   <$8A                    ; 03AD: 03 8A         
      memory_DP[0x8a] = memory_DP[0x8a] ^ 0xff;
  //  Z = memory_DP[0x8a];
  //  N = memory_DP[0x8a];
  //  V = 0;
  //  C = 1;
      
            //        LDX   #$CB00                  ; 03AF: 8E CB 00      
      X = 0xcb00;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDU   #$0E6C                  ; 03B2: CE 0E 6C      
      U = 0x0e6c;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   #$04                    ; 03B5: 86 04         
      A = (SINT8)0x04;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        PSHS  A                       ; 03B7: 34 02         
      memory[--S] = A;
      
      L03B9://        LDD   #$0408                  ; 03B9: CC 04 08      
      A = (UINT8)((0x0408) >> 8);
      B = (UINT8)((0x0408) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0CE1                   ; 03BC: BD 0C E1      
      memory[--S] = 0x03bf & 0xff; memory[--S] = 0x03bf >> 8;
      PC = 0x0ce1;
      JUMP;
      
      L03BF://        DEC   ,S                      ; 03BF: 6A E4         
      res = (UINT8)(memory[S] - 1);
  //  N = res;
      Z = res;
  //  V = memory[S] & ~res;
      memory[S] = res;
      
            //        BNE   $03B9                   ; 03C1: 26 F6         
      if (Z) {
      PC = 0x03b9;
      JUMP;
      }
      
            //        PULS  A                       ; 03C3: 35 02         
      A = memory[S++];
      
            //        LDA   <$80                    ; 03C5: 96 80         
      A = memory_DP[0x80];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$88                    ; 03C7: 97 88         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x88] = A;
      
            //        CMPA  #$01                    ; 03C9: 81 01         
      res = A - (SINT8)0x01;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x01) & (A ^ res);
      
            //        BNE   $03D2                   ; 03CB: 26 05         
      if (Z) {
      PC = 0x03d2;
      JUMP;
      }
      
            //        LDD   #$01FD                  ; 03CD: CC 01 FD      
      A = (UINT8)((0x01fd) >> 8);
      B = (UINT8)((0x01fd) & 0xff);
      Z = A|B;
      N = A;
      V = 0;
      
            //        BRA   $03D5                   ; 03D0: 20 03         
      PC = 0x03d5;
      JUMP;
      
      
      L03D2://        LDD   #$02FE                  ; 03D2: CC 02 FE      
      A = (UINT8)((0x02fe) >> 8);
      B = (UINT8)((0x02fe) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
      L03D5://        STD   <$EB                    ; 03D5: DD EB         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xeb] = A;
      memory_DP[0xeb + 1] = B;
      
            //        JSR   $0CD4                   ; 03D7: BD 0C D4      
      memory[--S] = 0x03da & 0xff; memory[--S] = 0x03da >> 8;
      PC = 0x0cd4;
      JUMP;
      
      L03DA://        LDA   <$82                    ; 03DA: 96 82         
      A = memory_DP[0x82];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$89                    ; 03DC: 97 89         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x89] = A;
      
            //        LDX   #$C900                  ; 03DE: 8E C9 00      
      X = 0xc900;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDB   <$81                    ; 03E1: D6 81         
      B = memory_DP[0x81];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   <$8B                    ; 03E3: D7 8B         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x8b] = B;
      
      L03E5://        STB   <$CD                    ; 03E5: D7 CD         
      Z = B;
      N = B;
      V = 0;
      memory_DP[0xcd] = B;
      
            //        BNE   $03EA                   ; 03E7: 26 01         
      if (Z) {
      PC = 0x03ea;
      JUMP;
      }
      
      L03E9://        RTS                           ; 03E9: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L03EA://        LDA   #$09                    ; 03EA: 86 09         
      A = (SINT8)0x09;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        MUL                           ; 03EC: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LDU   #$0D7C                  ; 03ED: CE 0D 7C      
      U = 0x0d7c;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LEAU  B,U                     ; 03F0: 33 C5         
      U = (U + (SINT8)B);
      
            //        INCA                          ; 03F2: 4C            
      res = (UINT8)((A) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(A);
      A = res;
      
            //        STA   ,X+                     ; 03F3: A7 80         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X++] = A;
      
            //        LDA   #$08                    ; 03F5: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
      L03F7://        CLR   ,X+                     ; 03F7: 6F 80         
      memory[X++] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        DECA                          ; 03F9: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
      Z = res;
  //  V = A & ~res;
      A = res;
      
            //        BNE   $03F7                   ; 03FA: 26 FB         
      if (Z) {
      PC = 0x03f7;
      JUMP;
      }
      
            //        JSR   Random_3                ; 03FC: BD F5 11      
      memory[--S] = 0x03ff & 0xff; memory[--S] = 0x03ff >> 8;
      PC = 0xf511;
      JUMP;
      
      L03FF://        ANDA  #$03                    ; 03FF: 84 03         
      A = A & (SINT8)0x03;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   ,X+                     ; 0401: A7 80         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X++] = A;
      
            //        LDA   #$09                    ; 0403: 86 09         
      A = (SINT8)0x09;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   $0CF6                   ; 0405: BD 0C F6      
      memory[--S] = 0x0408 & 0xff; memory[--S] = 0x0408 >> 8;
      PC = 0x0cf6;
      JUMP;
      
      L0408://        LEAU  $FFFE,X                 ; 0408: 33 1E         
      U = (X + 0xfffe);
      
            //        LDA   ,U                      ; 040A: A6 C4         
      A = memory[U];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $0410                   ; 040C: 26 02         
      if (Z) {
      PC = 0x0410;
      JUMP;
      }
      
            //        LDA   ,-U                     ; 040E: A6 C2         
      A = memory[--U];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
      L0410://        LDB   <$88                    ; 0410: D6 88         
      B = memory_DP[0x88];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        MUL                           ; 0412: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        NEGB                          ; 0413: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
            //        STB   ,U                      ; 0414: E7 C4         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[U] = B;
      
            //        LDB   $FFF6,X                 ; 0416: E6 16         
      B = memory[(UINT16)(X + 0xfff6)];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BEQ   $0427                   ; 0418: 27 0D         
      if (!Z) {
      PC = 0x0427;
      JUMP;
      }
      
            //        LEAU  $FFFB,X                 ; 041A: 33 1B         
      U = (X + 0xfffb);
      
            //        COMA                          ; 041C: 43            
      A = A ^ 0xff;
  //  Z = A;
  //  N = A;
  //  V = 0;
  //  C = 1;
      
      L041D://        NEGA                          ; 041D: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        LEAU  A,U                     ; 041E: 33 C6         
      U = (U + (SINT8)A);
      
            //        NEG   ,U                      ; 0420: 60 C4         
  //  V = (UINT8)(-memory[U]) & (memory[U]);
      memory[U] = (UINT8)(-memory[U]);
  //  Z = memory[U];
  //  N = memory[U];
  //  C = memory[U];
      
            //        NEG   $02,U                   ; 0422: 60 42         
  //  V = (UINT8)(-memory[(UINT16)(U + 0x0002)]) & (memory[(UINT16)(U + 0x0002)]);
      memory[(UINT16)(U + 0x0002)] = (UINT8)(-memory[(UINT16)(U + 0x0002)]);
  //  Z = memory[(UINT16)(U + 0x0002)];
  //  N = memory[(UINT16)(U + 0x0002)];
  //  C = memory[(UINT16)(U + 0x0002)];
      
            //        DECB                          ; 0424: 5A            
      res = (UINT8)(B - 1);
  //  N = res;
      Z = res;
  //  V = B & ~res;
      B = res;
      
            //        BNE   $041D                   ; 0425: 26 F6         
      if (Z) {
      PC = 0x041d;
      JUMP;
      }
      
      L0427://        CLRA                          ; 0427: 4F            
      A = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        TFR   D,Y                     ; 0428: 1F 02         
      Y = ((A << 8) | B);
      
            //        LDD   $FFFB,X                 ; 042A: EC 1B         
      A = memory[(UINT16)(X + 0xfffb)];
      B = memory[(UINT16)(((UINT16)(X + 0xfffb))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0C80                   ; 042C: BD 0C 80      
      memory[--S] = 0x042f & 0xff; memory[--S] = 0x042f >> 8;
      PC = 0x0c80;
      JUMP;
      
      L042F://        STA   $FFF3,X                 ; 042F: A7 13         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfff3)] = A;
      
            //        LDA   $FFFF,X                 ; 0431: A6 1F         
      A = memory[(UINT16)(X + 0xffff)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LEAU  ,X                      ; 0433: 33 84         
      U = X;
      
            //        LDX   #$0EC8                  ; 0435: 8E 0E C8      
      X = 0x0ec8;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        JSR   Rot_VL_Mode_a           ; 0438: BD F6 1F      
      memory[--S] = 0x043b & 0xff; memory[--S] = 0x043b >> 8;
      PC = 0xf61f;
      JUMP;
      
      L043B://        LDA   -$20,U                  ; 043B: A6 C8 E0      
      A = memory[(UINT16)(U + (SINT8)0xe0)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Rot_VL_Mode_a           ; 043E: BD F6 1F      
      memory[--S] = 0x0441 & 0xff; memory[--S] = 0x0441 >> 8;
      PC = 0xf61f;
      JUMP;
      
      L0441://        LEAX  $01,U                   ; 0441: 30 41         
      X = (U + 0x0001);
  //  Z = X;
      
            //        LDB   <$CD                    ; 0443: D6 CD         
      B = memory_DP[0xcd];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        DECB                          ; 0445: 5A            
      res = (UINT8)(B - 1);
      N = res;
      Z = res;
      V = B & ~res;
      B = res;
      
            //        BRA   $03E5                   ; 0446: 20 9D         
      PC = 0x03e5;
      JUMP;
      
      
      L0448://        LDA   <$8B                    ; 0448: 96 8B         
      A = memory_DP[0x8b];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $0451                   ; 044A: 26 05         
      if (Z) {
      PC = 0x0451;
      JUMP;
      }
      
            //        LDA   <$E0                    ; 044C: 96 E0         
      A = memory_DP[0xe0];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$2F                    ; 044E: 97 2F         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0x2f] = A;
      
            //        RTS                           ; 0450: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0451://        LDB   $C900                   ; 0451: F6 C9 00      
      B = memory[0xc900];
      N = B;
      Z = B;
      V = 0;
      
            //        BGT   $0464                   ; 0454: 2E 0E         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0464;
      JUMP;
      }
      
            //        LDB   $C940                   ; 0456: F6 C9 40      
      B = memory[0xc940];
      N = B;
      Z = B;
      V = 0;
      
            //        BGT   $0464                   ; 0459: 2E 09         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0464;
      JUMP;
      }
      
            //        LDB   $C980                   ; 045B: F6 C9 80      
      B = memory[0xc980];
      N = B;
      Z = B;
      V = 0;
      
            //        BGT   $0464                   ; 045E: 2E 04         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0464;
      JUMP;
      }
      
            //        LDA   #$FC                    ; 0460: 86 FC         
      A = (SINT8)0xfc;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$EC                    ; 0462: 97 EC         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xec] = A;
      
      L0464://        LDA   <$67                    ; 0464: 96 67         
      A = memory_DP[0x67];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ORA   <$EB                    ; 0466: 9A EB         
      A = A | memory_DP[0xeb];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        ANDA  <$EC                    ; 0468: 94 EC         
      A = A & memory_DP[0xec];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 046A: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        LDX   #$C8C8                  ; 046C: 8E C8 C8      
      X = 0xc8c8;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDB   <$8E                    ; 046F: D6 8E         
      B = memory_DP[0x8e];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L0471://        INCB                          ; 0471: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        ANDB  #$03                    ; 0472: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$8E                    ; 0474: D7 8E         
      Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x8e] = B;
      
            //        BEQ   $0471                   ; 0476: 27 F9         
      if (!Z) {
      PC = 0x0471;
      JUMP;
      }
      
            //        LDA   #$40                    ; 0478: 86 40         
      A = (SINT8)0x40;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        MUL                           ; 047A: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
      C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        ABX                           ; 047B: 3A            
      X = X + B;
      
            //        LDA   $FFF8,X                 ; 047C: A6 18         
      A = memory[(UINT16)(X + 0xfff8)];
      N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $048B                   ; 047E: 27 0B         
      if (!Z) {
      PC = 0x048b;
      JUMP;
      }
      
            //        BMI   $04A5                   ; 0480: 2B 23         
      if ((SINT8)N <  0) {
      PC = 0x04a5;
      JUMP;
      }
      
            //        LDB   $FFF9,X                 ; 0482: E6 19         
      B = memory[(UINT16)(X + 0xfff9)];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BNE   $048C                   ; 0484: 26 06         
      if (Z) {
      PC = 0x048c;
      JUMP;
      }
      
            //        TSTA                          ; 0486: 4D            
      Z = A;
      N = A;
      V = 0;
      
            //        LBNE  $0552                   ; 0487: 10 26 00 C7   
      if (Z) {
      PC = 0x0552;
      JUMP;
      }
      
      L048B://        RTS                           ; 048B: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L048C://        LDA   #$80                    ; 048C: 86 80         
      A = (SINT8)0x80;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $FFF8,X                 ; 048E: A7 18         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfff8)] = A;
      
            //        LDU   #$CB00                  ; 0490: CE CB 00      
      U = 0xcb00;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        STU   $02,X                   ; 0493: EF 02         
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      memory[(UINT16)(X + 0x0002)] = (UINT8)((U) >> 8);
      memory[(UINT16)((X + 0x0002) + 1)] = (UINT8)((U) & 0xff);
      
            //        LDB   #$10                    ; 0495: C6 10         
      B = (SINT8)0x10;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   $0A,X                   ; 0497: A6 0A         
      A = memory[(UINT16)(X + 0x000a)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STB   $04,X                   ; 0499: E7 04         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = B;
      
            //        CLR   $05,X                   ; 049B: 6F 05         
      memory[(UINT16)(X + 0x0005)] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        LEAU  $0B,X                   ; 049D: 33 0B         
      U = (X + 0x000b);
      
            //        LDX   #$0EF4                  ; 049F: 8E 0E F4      
      X = 0x0ef4;
      Z = X;
      N = (X) >> 8;
      V = 0;
      
            //        JMP   Rot_VL_Mode_a           ; 04A2: 7E F6 1F      
      PC = 0xf61f;
      JUMP;
      
      
      L04A5://        INC   $FFF8,X                 ; 04A5: 6C 18         
      res = (UINT8)((memory[(UINT16)(X + 0xfff8)]) + 1);
      Z = res;
  //  N = res;
  //  V = res & ~(memory[(UINT16)(X + 0xfff8)]);
      memory[(UINT16)(X + 0xfff8)] = res;
      
            //        BNE   $04B2                   ; 04A7: 26 09         
      if (Z) {
      PC = 0x04b2;
      JUMP;
      }
      
            //        CLR   $FFF9,X                 ; 04A9: 6F 19         
      memory[(UINT16)(X + 0xfff9)] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        DEC   <$8B                    ; 04AB: 0A 8B         
      res = (UINT8)(memory_DP[0x8b] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0x8b] & ~res;
      memory_DP[0x8b] = res;
      
            //        BNE   $04B1                   ; 04AD: 26 02         
      if (Z) {
      PC = 0x04b1;
      JUMP;
      }
      
            //        CLR   <$EB                    ; 04AF: 0F EB         
      memory_DP[0xeb] = 0;
      V = 0;
      Z = 0;
      N = 0;
      C = 0;
      
      L04B1://        RTS                           ; 04B1: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L04B2://        CMPA  #$F8                    ; 04B2: 81 F8         
      res = A - (SINT8)0xf8;
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (A ^ (SINT8)0xf8) & (A ^ res);
      
            //        BLT   $04BC                   ; 04B4: 2D 06         
      if ((SINT8)(N^V) <  0) {
      PC = 0x04bc;
      JUMP;
      }
      
            //        LDA   #$02                    ; 04B6: 86 02         
      A = (SINT8)0x02;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ADDA  $04,X                   ; 04B8: AB 04         
      A = (UINT8)(A + memory[(UINT16)(X + 0x0004)]);
      res = A + memory[(UINT16)(X + 0x0004)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ memory[(UINT16)(X + 0x0004)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STA   $04,X                   ; 04BA: A7 04         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = A;
      
      L04BC://        JSR   $0709                   ; 04BC: BD 07 09      
      memory[--S] = 0x04bf & 0xff; memory[--S] = 0x04bf >> 8;
      PC = 0x0709;
      JUMP;
      
      L04BF://        LDB   $FFF9,X                 ; 04BF: E6 19         
      B = memory[(UINT16)(X + 0xfff9)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        DECB                          ; 04C1: 5A            
      res = (UINT8)(B - 1);
  //  N = res;
      Z = res;
  //  V = B & ~res;
      B = res;
      
            //        BEQ   $04CF                   ; 04C2: 27 0B         
      if (!Z) {
      PC = 0x04cf;
      JUMP;
      }
      
            //        LDU   #$0F07                  ; 04C4: CE 0F 07      
      U = 0x0f07;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LEAX  $1E,X                   ; 04C7: 30 88 1E      
      X = (X + (SINT8)0x1e);
  //  Z = X;
      
            //        LDA   #$19                    ; 04CA: 86 19         
      A = (SINT8)0x19;
      N = A;
      Z = A;
      V = 0;
      
            //        JMP   $0CF6                   ; 04CC: 7E 0C F6      
      PC = 0x0cf6;
      JUMP;
      
      
      L04CF://        DEC   $FFFA,X                 ; 04CF: 6A 1A         
      res = (UINT8)(memory[(UINT16)(X + 0xfffa)] - 1);
      N = res;
      Z = res;
      V = memory[(UINT16)(X + 0xfffa)] & ~res;
      memory[(UINT16)(X + 0xfffa)] = res;
      
            //        BGT   $0501                   ; 04D1: 2E 2E         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0501;
      JUMP;
      }
      
            //        LDU   #$C9DC                  ; 04D3: CE C9 DC      
      U = 0xc9dc;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDB   <$8E                    ; 04D6: D6 8E         
      B = memory_DP[0x8e];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   #$07                    ; 04D8: 86 07         
      A = (SINT8)0x07;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        MUL                           ; 04DA: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LEAU  B,U                     ; 04DB: 33 C5         
      U = (U + (SINT8)B);
      
            //        LDB   ,U                      ; 04DD: E6 C4         
      B = memory[U];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BNE   $0501                   ; 04DF: 26 20         
      if (Z) {
      PC = 0x0501;
      JUMP;
      }
      
            //        LDD   $06,X                   ; 04E1: EC 06         
      A = memory[(UINT16)(X + 0x0006)];
      B = memory[(UINT16)(((UINT16)(X + 0x0006))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $01,U                   ; 04E3: ED 41         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0x0001)] = A;
      memory[(UINT16)(U + 0x0001) + 1] = B;
      
            //        LDB   $FFFE,X                 ; 04E5: E6 1E         
      B = memory[(UINT16)(X + 0xfffe)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   <$86                    ; 04E7: 96 86         
      A = memory_DP[0x86];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $FFFA,X                 ; 04E9: A7 1A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfffa)] = A;
      
      L04EB://        LDA   #$07                    ; 04EB: 86 07         
      A = (SINT8)0x07;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Rise_Run_X              ; 04ED: BD F5 FF      
      memory[--S] = 0x04f0 & 0xff; memory[--S] = 0x04f0 >> 8;
      PC = 0xf5ff;
      JUMP;
      
      L04F0://        STD   $03,U                   ; 04F0: ED 43         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0x0003)] = A;
      memory[(UINT16)(U + 0x0003) + 1] = B;
      
            //        ASRA                          ; 04F2: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        ASRB                          ; 04F3: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        STD   $05,U                   ; 04F4: ED 45         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0x0005)] = A;
      memory[(UINT16)(U + 0x0005) + 1] = B;
      
            //        LDD   $03,U                   ; 04F6: EC 43         
      A = memory[(UINT16)(U + 0x0003)];
      B = memory[(UINT16)(((UINT16)(U + 0x0003))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        SUBA  $05,U                   ; 04F8: A0 45         
      A = (UINT8)(A - memory[(UINT16)(U + 0x0005)]);
  //  res = A - memory[(UINT16)(U + 0x0005)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory[(UINT16)(U + 0x0005)])) & ((A) ^ res);
      
            //        SUBB  $06,U                   ; 04FA: E0 46         
      B = (UINT8)(B - memory[(UINT16)(U + 0x0006)]);
      res = B - memory[(UINT16)(U + 0x0006)];
      C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((B) ^ (memory[(UINT16)(U + 0x0006)])) & ((B) ^ res);
      
            //        STD   $03,U                   ; 04FC: ED 43         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0x0003)] = A;
      memory[(UINT16)(U + 0x0003) + 1] = B;
      
            //        DEC   ,U                      ; 04FE: 6A C4         
      res = (UINT8)(memory[U] - 1);
      N = res;
      Z = res;
      V = memory[U] & ~res;
      memory[U] = res;
      
      L0500://        RTS                           ; 0500: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0501://        LDA   #$7F                    ; 0501: 86 7F         
      A = (SINT8)0x7f;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$D0                    ; 0503: 97 D0         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xd0] = A;
      
            //        LDU   #$CA06                  ; 0505: CE CA 06      
      U = 0xca06;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   $FFFA,U                 ; 0508: A6 5A         
      A = memory[(UINT16)(U + 0xfffa)];
      N = A;
      Z = A;
      V = 0;
      
            //        BLE   $0517                   ; 050A: 2F 0B         
      if (((SINT8)(N^V) <  0) || (!Z)) {
      PC = 0x0517;
      JUMP;
      }
      
            //        LDD   $06,X                   ; 050C: EC 06         
      A = memory[(UINT16)(X + 0x0006)];
      B = memory[(UINT16)(((UINT16)(X + 0x0006))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0C76                   ; 050E: BD 0C 76      
      memory[--S] = 0x0511 & 0xff; memory[--S] = 0x0511 >> 8;
      PC = 0x0c76;
      JUMP;
      
      L0511://        CMPB  #$04                    ; 0511: C1 04         
      res = B - (SINT8)0x04;
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (B ^ (SINT8)0x04) & (B ^ res);
      
            //        BLT   $0549                   ; 0513: 2D 34         
      if ((SINT8)(N^V) <  0) {
      PC = 0x0549;
      JUMP;
      }
      
            //        STD   <$CF                    ; 0515: DD CF         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcf] = A;
      memory_DP[0xcf + 1] = B;
      
      L0517://        LDA   <$C8                    ; 0517: 96 C8         
      A = memory_DP[0xc8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        DECA                          ; 0519: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
      Z = res;
  //  V = A & ~res;
      A = res;
      
            //        BEQ   $0530                   ; 051A: 27 14         
      if (!Z) {
      PC = 0x0530;
      JUMP;
      }
      
            //        LEAU  $27,U                   ; 051C: 33 C8 27      
      U = (U + (SINT8)0x27);
      
            //        LDA   $FFFA,U                 ; 051F: A6 5A         
      A = memory[(UINT16)(U + 0xfffa)];
      N = A;
  //  Z = A;
      V = 0;
      
            //        BLT   $0530                   ; 0521: 2D 0D         
      if ((SINT8)(N^V) <  0) {
      PC = 0x0530;
      JUMP;
      }
      
            //        LDD   $06,X                   ; 0523: EC 06         
      A = memory[(UINT16)(X + 0x0006)];
      B = memory[(UINT16)(((UINT16)(X + 0x0006))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        JSR   $0C76                   ; 0525: BD 0C 76      
      memory[--S] = 0x0528 & 0xff; memory[--S] = 0x0528 >> 8;
      PC = 0x0c76;
      JUMP;
      
      L0528://        CMPB  #$04                    ; 0528: C1 04         
      res = B - (SINT8)0x04;
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (B ^ (SINT8)0x04) & (B ^ res);
      
            //        BLT   $0549                   ; 052A: 2D 1D         
      if ((SINT8)(N^V) <  0) {
      PC = 0x0549;
      JUMP;
      }
      
            //        CMPB  <$D0                    ; 052C: D1 D0         
      res = B - memory_DP[0xd0];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (B ^ memory_DP[0xd0]) & (B ^ res);
      
            //        BLT   $0532                   ; 052E: 2D 02         
      if ((SINT8)(N^V) <  0) {
      PC = 0x0532;
      JUMP;
      }
      
      L0530://        LDA   <$CF                    ; 0530: 96 CF         
      A = memory_DP[0xcf];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
      L0532://        ANDA  <$84                    ; 0532: 94 84         
      A = A & memory_DP[0x84];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        CMPA  $FFFE,X                 ; 0534: A1 1E         
      res = A - memory[(UINT16)(X + 0xfffe)];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ memory[(UINT16)(X + 0xfffe)]) & (A ^ res);
      
            //        BEQ   $0500                   ; 0536: 27 C8         
      if (!Z) {
      PC = 0x0500;
      JUMP;
      }
      
            //        LDB   <$EE                    ; 0538: D6 EE         
      B = memory_DP[0xee];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        BITB  #$01                    ; 053A: C5 01         
      res = B & (SINT8)0x01;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BEQ   $0500                   ; 053C: 27 C2         
      if (!Z) {
      PC = 0x0500;
      JUMP;
      }
      
            //        STA   $FFFE,X                 ; 053E: A7 1E         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfffe)] = A;
      
            //        LEAU  $1E,X                   ; 0540: 33 88 1E      
      U = (X + (SINT8)0x1e);
      
            //        LDX   #$0EDB                  ; 0543: 8E 0E DB      
      X = 0x0edb;
      Z = X;
      N = (X) >> 8;
      V = 0;
      
            //        JMP   Rot_VL_Mode_a           ; 0546: 7E F6 1F      
      PC = 0xf61f;
      JUMP;
      
      
      L0549://        LDA   #$02                    ; 0549: 86 02         
      A = (SINT8)0x02;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $FFF9,X                 ; 054B: A7 19         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfff9)] = A;
      
            //        LDA   #$80                    ; 054D: 86 80         
      A = (SINT8)0x80;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $FFFA,U                 ; 054F: A7 5A         
      Z = A;
      N = A;
      V = 0;
      memory[(UINT16)(U + 0xfffa)] = A;
      
            //        RTS                           ; 0551: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0552://        LDA   ,X                      ; 0552: A6 84         
      A = memory[X];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0568                   ; 0554: 27 12         
      if (!Z) {
      PC = 0x0568;
      JUMP;
      }
      
            //        SUBA  <$89                    ; 0556: 90 89         
      A = (UINT8)(A - memory_DP[0x89]);
  //  res = A - memory_DP[0x89];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory_DP[0x89])) & ((A) ^ res);
      
            //        STA   ,X                      ; 0558: A7 84         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X] = A;
      
            //        LDA   $0A,X                   ; 055A: A6 0A         
      A = memory[(UINT16)(X + 0x000a)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ADDA  $FFFD,X                 ; 055C: AB 1D         
      A = (UINT8)(A + memory[(UINT16)(X + 0xfffd)]);
      res = A + memory[(UINT16)(X + 0xfffd)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ memory[(UINT16)(X + 0xfffd)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STA   $0A,X                   ; 055E: A7 0A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x000a)] = A;
      
            //        LEAU  $0B,X                   ; 0560: 33 0B         
      U = (X + 0x000b);
      
            //        LDX   #$0EC8                  ; 0562: 8E 0E C8      
      X = 0x0ec8;
      Z = X;
      N = (X) >> 8;
      V = 0;
      
            //        JMP   Rot_VL_Mode_a           ; 0565: 7E F6 1F      
      PC = 0xf61f;
      JUMP;
      
      
      L0568://        LDY   #$0DA0                  ; 0568: 10 8E 0D A0   
      Y = 0x0da0;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      
            //        LDA   $05,X                   ; 056C: A6 05         
      A = memory[(UINT16)(X + 0x0005)];
      N = A;
      Z = A;
      V = 0;
      
            //        LBEQ  $0600                   ; 056E: 10 27 00 8E   
      if (!Z) {
      PC = 0x0600;
      JUMP;
      }
      
            //        LEAU  $40,X                   ; 0572: 33 88 40      
      U = (X + (SINT8)0x40);
      
            //        CMPU  #$C9C8                  ; 0575: 11 83 C9 C8   
      res = (U) - (0xc9c8);
  //  C = res & 0x10000;
      res = (UINT16)res;
      Z = res;
  //  N = res >> 8;
  //  V = (((U) ^ (0xc9c8)) & ((U) ^ res)) >> 8;
      
            //        BNE   $057E                   ; 0579: 26 03         
      if (Z) {
      PC = 0x057e;
      JUMP;
      }
      
            //        LDU   #$C908                  ; 057B: CE C9 08      
      U = 0xc908;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
      L057E://        LDA   $FFF8,U                 ; 057E: A6 58         
      A = memory[(UINT16)(U + 0xfff8)];
      N = A;
      Z = A;
      V = 0;
      
            //        BLE   $05DD                   ; 0580: 2F 5B         
      if (((SINT8)(N^V) <  0) || (!Z)) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        LDD   $06,U                   ; 0582: EC 46         
      A = memory[(UINT16)(U + 0x0006)];
      B = memory[(UINT16)(((UINT16)(U + 0x0006))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        SUBA  $06,X                   ; 0584: A0 06         
      A = (UINT8)(A - memory[(UINT16)(X + 0x0006)]);
      res = A - memory[(UINT16)(X + 0x0006)];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      V = ((A) ^ (memory[(UINT16)(X + 0x0006)])) & ((A) ^ res);
      
            //        BVS   $05DD                   ; 0586: 29 55         
      if ((SINT8)V <  0) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        SUBB  $07,X                   ; 0588: E0 07         
      B = (UINT8)(B - memory[(UINT16)(X + 0x0007)]);
      res = B - memory[(UINT16)(X + 0x0007)];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      V = ((B) ^ (memory[(UINT16)(X + 0x0007)])) & ((B) ^ res);
      
            //        BVS   $05DD                   ; 058A: 29 51         
      if ((SINT8)V <  0) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        JSR   Abs_a_b                 ; 058C: BD F5 84      
      memory[--S] = 0x058f & 0xff; memory[--S] = 0x058f >> 8;
      PC = 0xf584;
      JUMP;
      
      L058F://        STD   <$CB                    ; 058F: DD CB         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcb] = A;
      memory_DP[0xcb + 1] = B;
      
            //        TSTA                          ; 0591: 4D            
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BEQ   $0597                   ; 0592: 27 03         
      if (!Z) {
      PC = 0x0597;
      JUMP;
      }
      
            //        TSTB                          ; 0594: 5D            
      Z = B;
  //  N = B;
  //  V = 0;
      
            //        BNE   $05DD                   ; 0595: 26 46         
      if (Z) {
      PC = 0x05dd;
      JUMP;
      }
      
      L0597://        ADDA  <$CC                    ; 0597: 9B CC         
      A = (UINT8)(A + memory_DP[0xcc]);
  //  res = A + memory_DP[0xcc];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory_DP[0xcc] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        CMPA  #$0C                    ; 0599: 81 0C         
      res = A - (SINT8)0x0c;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (A ^ (SINT8)0x0c) & (A ^ res);
      
            //        BGT   $05DD                   ; 059B: 2E 40         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        LDA   $03,X                   ; 059D: A6 03         
      A = memory[(UINT16)(X + 0x0003)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        CMPA  $02,X                   ; 059F: A1 02         
      res = A - memory[(UINT16)(X + 0x0002)];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ memory[(UINT16)(X + 0x0002)]) & (A ^ res);
      
            //        BEQ   $05DD                   ; 05A1: 27 3A         
      if (!Z) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        DECA                          ; 05A3: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
            //        LDB   #$08                    ; 05A4: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        MUL                           ; 05A6: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LEAY  $04,Y                   ; 05A7: 31 24         
      Y = (Y + 0x0004);
  //  Z = Y;
      
            //        LEAY  D,Y                     ; 05A9: 31 AB         
      Y = (Y + D);
  //  Z = Y;
      
            //        LDB   $04,X                   ; 05AB: E6 04         
      B = memory[(UINT16)(X + 0x0004)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   B,Y                     ; 05AD: A6 A5         
      A = memory[(UINT16)(Y + (SINT8)B)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        SUBA  $05,X                   ; 05AF: A0 05         
      A = (UINT8)(A - memory[(UINT16)(X + 0x0005)]);
      res = A - memory[(UINT16)(X + 0x0005)];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = ((A) ^ (memory[(UINT16)(X + 0x0005)])) & ((A) ^ res);
      
            //        BEQ   $05DD                   ; 05B1: 27 2A         
      if (!Z) {
      PC = 0x05dd;
      JUMP;
      }
      
            //        STA   $05,X                   ; 05B3: A7 05         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0005)] = A;
      
            //        ADDB  #$02                    ; 05B5: CB 02         
      B = (UINT8)(B + (SINT8)0x02);
  //  res = B + (SINT8)0x02;
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = B ^ (SINT8)0x02 ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ANDB  #$03                    ; 05B7: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   $04,X                   ; 05B9: E7 04         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = B;
      
            //        LEAY  $FFFC,Y                 ; 05BB: 31 3C         
      Y = (Y + 0xfffc);
  //  Z = Y;
      
            //        INCB                          ; 05BD: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        ANDB  #$03                    ; 05BE: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        LDA   B,Y                     ; 05C0: A6 A5         
      A = memory[(UINT16)(Y + (SINT8)B)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $05CF                   ; 05C2: 26 0B         
      if (Z) {
      PC = 0x05cf;
      JUMP;
      }
      
            //        INCB                          ; 05C4: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        INCB                          ; 05C5: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        ANDB  #$03                    ; 05C6: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        LDA   B,Y                     ; 05C8: A6 A5         
      A = memory[(UINT16)(Y + (SINT8)B)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $05CF                   ; 05CA: 26 03         
      if (Z) {
      PC = 0x05cf;
      JUMP;
      }
      
            //        INCB                          ; 05CC: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        ANDB  #$03                    ; 05CD: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
      L05CF://        STB   $FFFC,X                 ; 05CF: E7 1C         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0xfffc)] = B;
      
            //        NEG   $08,X                   ; 05D1: 60 08         
  //  V = (UINT8)(-memory[(UINT16)(X + 0x0008)]) & (memory[(UINT16)(X + 0x0008)]);
      memory[(UINT16)(X + 0x0008)] = (UINT8)(-memory[(UINT16)(X + 0x0008)]);
  //  Z = memory[(UINT16)(X + 0x0008)];
  //  N = memory[(UINT16)(X + 0x0008)];
  //  C = memory[(UINT16)(X + 0x0008)];
      
            //        NEG   $09,X                   ; 05D3: 60 09         
  //  V = (UINT8)(-memory[(UINT16)(X + 0x0009)]) & (memory[(UINT16)(X + 0x0009)]);
      memory[(UINT16)(X + 0x0009)] = (UINT8)(-memory[(UINT16)(X + 0x0009)]);
  //  Z = memory[(UINT16)(X + 0x0009)];
  //  N = memory[(UINT16)(X + 0x0009)];
  //  C = memory[(UINT16)(X + 0x0009)];
      
            //        CLR   $FFFF,X                 ; 05D5: 6F 1F         
      memory[(UINT16)(X + 0xffff)] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDD   $02,X                   ; 05D7: EC 02         
      A = memory[(UINT16)(X + 0x0002)];
      B = memory[(UINT16)(((UINT16)(X + 0x0002))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STA   $03,X                   ; 05D9: A7 03         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = A;
      
            //        STB   $02,X                   ; 05DB: E7 02         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0002)] = B;
      
      L05DD://        LDA   $05,X                   ; 05DD: A6 05         
      A = memory[(UINT16)(X + 0x0005)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        SUBA  <$88                    ; 05DF: 90 88         
      A = (UINT8)(A - memory_DP[0x88]);
      res = A - memory_DP[0x88];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
  //  V = ((A) ^ (memory_DP[0x88])) & ((A) ^ res);
      
            //        BPL   $05F3                   ; 05E1: 2A 10         
      if ((SINT8)N >= 0) {
      PC = 0x05f3;
      JUMP;
      }
      
            //        LEAY  $09,X                   ; 05E3: 31 09         
      Y = (X + 0x0009);
  //  Z = Y;
      
            //        LDB   ,Y                      ; 05E5: E6 A4         
      B = memory[Y];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BNE   $05EB                   ; 05E7: 26 02         
      if (Z) {
      PC = 0x05eb;
      JUMP;
      }
      
            //        LDB   ,-Y                     ; 05E9: E6 A2         
      B = memory[--Y];
      N = B;
  //  Z = B;
  //  V = 0;
      
      L05EB://        BPL   $05EE                   ; 05EB: 2A 01         
      if ((SINT8)N >= 0) {
      PC = 0x05ee;
      JUMP;
      }
      
            //        NEGA                          ; 05ED: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
      L05EE://        ADDA  ,--Y                    ; 05EE: AB A3         
      Y = Y - 2;
      A = (UINT8)(A + memory[Y]);
  //  res = A + memory[Y];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory[Y] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        STA   ,Y                      ; 05F0: A7 A4         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[Y] = A;
      
            //        CLRA                          ; 05F2: 4F            
      A = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
      L05F3://        STA   $05,X                   ; 05F3: A7 05         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0005)] = A;
      
            //        LDD   $06,X                   ; 05F5: EC 06         
      A = memory[(UINT16)(X + 0x0006)];
      B = memory[(UINT16)(((UINT16)(X + 0x0006))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ADDA  $08,X                   ; 05F7: AB 08         
      A = (UINT8)(A + memory[(UINT16)(X + 0x0008)]);
  //  res = A + memory[(UINT16)(X + 0x0008)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory[(UINT16)(X + 0x0008)] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ADDB  $09,X                   ; 05F9: EB 09         
      B = (UINT8)(B + memory[(UINT16)(X + 0x0009)]);
      res = B + memory[(UINT16)(X + 0x0009)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory[(UINT16)(X + 0x0009)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STD   $06,X                   ; 05FB: ED 06         
      Z = A | B;
      N = A;
      V = 0;
      memory[(UINT16)(X + 0x0006)] = A;
      memory[(UINT16)(X + 0x0006) + 1] = B;
      
            //        JMP   $04CF                   ; 05FD: 7E 04 CF      
      PC = 0x04cf;
      JUMP;
      
      
      L0600://        LDA   $FFFB,X                 ; 0600: A6 1B         
      A = memory[(UINT16)(X + 0xfffb)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0618                   ; 0602: 27 14         
      if (!Z) {
      PC = 0x0618;
      JUMP;
      }
      
            //        LDB   #$08                    ; 0604: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   $05,X                   ; 0606: E7 05         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0005)] = B;
      
            //        SUBA  $01,X                   ; 0608: A0 01         
      A = (UINT8)(A - memory[(UINT16)(X + 0x0001)]);
  //  res = A - memory[(UINT16)(X + 0x0001)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory[(UINT16)(X + 0x0001)])) & ((A) ^ res);
      
            //        ANDA  #$03                    ; 060A: 84 03         
      A = A & (SINT8)0x03;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   $01,X                   ; 060C: A7 01         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0001)] = A;
      
            //        LDA   $FFFB,X                 ; 060E: A6 1B         
      A = memory[(UINT16)(X + 0xfffb)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  #$02                    ; 0610: 84 02         
      A = A & (SINT8)0x02;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        ASRA                          ; 0612: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        STA   $04,X                   ; 0613: A7 04         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = A;
      
            //        CLR   $FFFB,X                 ; 0615: 6F 1B         
      memory[(UINT16)(X + 0xfffb)] = 0;
      V = 0;
      Z = 0;
      N = 0;
      C = 0;
      
            //        RTS                           ; 0617: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0618://        LDA   $02,X                   ; 0618: A6 02         
      A = memory[(UINT16)(X + 0x0002)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        DECA                          ; 061A: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
            //        LDB   #$08                    ; 061B: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        MUL                           ; 061D: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LEAY  D,Y                     ; 061E: 31 AB         
      Y = (Y + D);
  //  Z = Y;
      
            //        LDB   $FFFC,X                 ; 0620: E6 1C         
      B = memory[(UINT16)(X + 0xfffc)];
      N = B;
  //  Z = B;
  //  V = 0;
      
            //        BMI   $0628                   ; 0622: 2B 04         
      if ((SINT8)N <  0) {
      PC = 0x0628;
      JUMP;
      }
      
            //        COM   $FFFC,X                 ; 0624: 63 1C         
      memory[(UINT16)(X + 0xfffc)] = memory[(UINT16)(X + 0xfffc)] ^ 0xff;
      Z = memory[(UINT16)(X + 0xfffc)];
      N = memory[(UINT16)(X + 0xfffc)];
      V = 0;
      C = 1;
      
            //        BSR   $065F                   ; 0626: 8D 37         
      memory[--S] = 0x0628 & 0xff; memory[--S] = 0x0628 >> 8;
      PC = 0x065f;
      JUMP;
      
      L0628://        LDB   $FFFE,X                 ; 0628: E6 1E         
      B = memory[(UINT16)(X + 0xfffe)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LSRB                          ; 062A: 54            
  //  C = (B) & 1;
      B = (B) >> 1;
  //  N = 0;
  //  Z = B;
      
            //        LSRB                          ; 062B: 54            
  //  C = (B) & 1;
      B = (B) >> 1;
  //  N = 0;
  //  Z = B;
      
            //        LSRB                          ; 062C: 54            
  //  C = (B) & 1;
      B = (B) >> 1;
  //  N = 0;
  //  Z = B;
      
            //        LSRB                          ; 062D: 54            
  //  C = (B) & 1;
      B = (B) >> 1;
  //  N = 0;
  //  Z = B;
      
            //        CMPB  $01,X                   ; 062E: E1 01         
      res = B - memory[(UINT16)(X + 0x0001)];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ memory[(UINT16)(X + 0x0001)]) & (B ^ res);
      
            //        BNE   $0633                   ; 0630: 26 01         
      if (Z) {
      PC = 0x0633;
      JUMP;
      }
      
            //        NEGB                          ; 0632: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
      L0633://        ADDB  $01,X                   ; 0633: EB 01         
      B = (UINT8)(B + memory[(UINT16)(X + 0x0001)]);
      res = B + memory[(UINT16)(X + 0x0001)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory[(UINT16)(X + 0x0001)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        CMPB  #$04                    ; 0635: C1 04         
      res = B - (SINT8)0x04;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x04) & (B ^ res);
      
            //        BNE   $063B                   ; 0637: 26 02         
      if (Z) {
      PC = 0x063b;
      JUMP;
      }
      
            //        LDB   #$02                    ; 0639: C6 02         
      B = (SINT8)0x02;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L063B://        ANDB  #$03                    ; 063B: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        TFR   B,A                     ; 063D: 1F 98         
      A = B;
      
            //        INCA                          ; 063F: 4C            
      res = (UINT8)((A) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(A);
      A = res;
      
            //        PSHS  B,A                     ; 0640: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        JSR   Random                  ; 0642: BD F5 17      
      memory[--S] = 0x0645 & 0xff; memory[--S] = 0x0645 >> 8;
      PC = 0xf517;
      JUMP;
      
      L0645://        PULS  A,B                     ; 0645: 35 06         
      A = memory[S++];
      B = memory[S++];
      
            //        BCC   $064B                   ; 0647: 24 02         
      if (!C) {
      PC = 0x064b;
      JUMP;
      }
      
            //        EXG   A,B                     ; 0649: 1E 89         
      val = A;
      A = B;
      B = val;
      
      L064B://        STA   <$CB                    ; 064B: 97 CB         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0xcb] = A;
      
            //        BSR   $065F                   ; 064D: 8D 10         
      memory[--S] = 0x064f & 0xff; memory[--S] = 0x064f >> 8;
      PC = 0x065f;
      JUMP;
      
      L064F://        LDB   <$CB                    ; 064F: D6 CB         
      B = memory_DP[0xcb];
      N = B;
      Z = B;
      V = 0;
      
            //        BSR   $065F                   ; 0651: 8D 0C         
      memory[--S] = 0x0653 & 0xff; memory[--S] = 0x0653 >> 8;
      PC = 0x065f;
      JUMP;
      
      L0653://        LDB   $04,X                   ; 0653: E6 04         
      B = memory[(UINT16)(X + 0x0004)];
      N = B;
      Z = B;
      V = 0;
      
            //        BSR   $065F                   ; 0655: 8D 08         
      memory[--S] = 0x0657 & 0xff; memory[--S] = 0x0657 >> 8;
      PC = 0x065f;
      JUMP;
      
      L0657://        LDB   #$03                    ; 0657: C6 03         
      B = (SINT8)0x03;
      N = B;
      Z = B;
      V = 0;
      
      L0659://        BSR   $065F                   ; 0659: 8D 04         
      memory[--S] = 0x065b & 0xff; memory[--S] = 0x065b >> 8;
      PC = 0x065f;
      JUMP;
      
      L065B://        DECB                          ; 065B: 5A            
      res = (UINT8)(B - 1);
      N = res;
      Z = res;
      V = B & ~res;
      B = res;
      
            //        BPL   $0659                   ; 065C: 2A FB         
      if ((SINT8)N >= 0) {
      PC = 0x0659;
      JUMP;
      }
      
            //        RTS                           ; 065E: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L065F://        ANDB  #$03                    ; 065F: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        LDA   B,Y                     ; 0661: A6 A5         
      A = memory[(UINT16)(Y + (SINT8)B)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $066D                   ; 0663: 27 08         
      if (!Z) {
      PC = 0x066d;
      JUMP;
      }
      
            //        CMPA  $03,X                   ; 0665: A1 03         
      res = A - memory[(UINT16)(X + 0x0003)];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ memory[(UINT16)(X + 0x0003)]) & (A ^ res);
      
            //        BNE   $066E                   ; 0667: 26 05         
      if (Z) {
      PC = 0x066e;
      JUMP;
      }
      
            //        TST   $FFFF,X                 ; 0669: 6D 1F         
      Z = memory[(UINT16)(X + 0xffff)];
      N = memory[(UINT16)(X + 0xffff)];
      V = 0;
      
            //        BEQ   $0672                   ; 066B: 27 05         
      if (!Z) {
      PC = 0x0672;
      JUMP;
      }
      
      L066D://        RTS                           ; 066D: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L066E://        CLR   $FFFF,X                 ; 066E: 6F 1F         
      memory[(UINT16)(X + 0xffff)] = 0;
      V = 0;
      Z = 0;
      N = 0;
      C = 0;
      
            //        BRA   $0674                   ; 0670: 20 02         
      PC = 0x0674;
      JUMP;
      
      
      L0672://        INC   $FFFF,X                 ; 0672: 6C 1F         
      res = (UINT8)((memory[(UINT16)(X + 0xffff)]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory[(UINT16)(X + 0xffff)]);
      memory[(UINT16)(X + 0xffff)] = res;
      
      L0674://        STD   ,S++                    ; 0674: ED E1         
      ea = S; S = S + 2;
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[ea] = A;
      memory[ea + 1] = B;
      
            //        CMPA  $02,X                   ; 0676: A1 02         
      res = A - memory[(UINT16)(X + 0x0002)];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ memory[(UINT16)(X + 0x0002)]) & (A ^ res);
      
            //        BNE   $0683                   ; 0678: 26 09         
      if (Z) {
      PC = 0x0683;
      JUMP;
      }
      
            //        RORB                          ; 067A: 56            
      res = B;
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      B = res;
      
            //        BCS   $067F                   ; 067B: 25 02         
      if (C) {
      PC = 0x067f;
      JUMP;
      }
      
            //        ADDB  #$02                    ; 067D: CB 02         
      B = (UINT8)(B + (SINT8)0x02);
  //  res = B + (SINT8)0x02;
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = B ^ (SINT8)0x02 ^ res ^ C;
  //  H = res;
  //  V = res;
      
      L067F://        ADDB  #$02                    ; 067F: CB 02         
      B = (UINT8)(B + (SINT8)0x02);
      res = B + (SINT8)0x02;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ (SINT8)0x02 ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STB   $FFFB,X                 ; 0681: E7 1B         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0xfffb)] = B;
      
      L0683://        LDA   $02,X                   ; 0683: A6 02         
      A = memory[(UINT16)(X + 0x0002)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $03,X                   ; 0685: A7 03         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = A;
      
            //        LDD   $FFFE,S                 ; 0687: EC 7E         
      A = memory[(UINT16)(S + 0xfffe)];
      B = memory[(UINT16)(((UINT16)(S + 0xfffe))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STA   $02,X                   ; 0689: A7 02         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0002)] = A;
      
            //        LEAY  B,Y                     ; 068B: 31 A5         
      Y = (Y + (SINT8)B);
  //  Z = Y;
      
            //        LDA   $04,Y                   ; 068D: A6 24         
      A = memory[(UINT16)(Y + 0x0004)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $05,X                   ; 068F: A7 05         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0005)] = A;
      
            //        TFR   B,A                     ; 0691: 1F 98         
      A = B;
      
            //        SUBB  $04,X                   ; 0693: E0 04         
      B = (UINT8)(B - memory[(UINT16)(X + 0x0004)]);
  //  res = B - memory[(UINT16)(X + 0x0004)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((B) ^ (memory[(UINT16)(X + 0x0004)])) & ((B) ^ res);
      
            //        ANDB  #$03                    ; 0695: C4 03         
      B = B & (SINT8)0x03;
      Z = B;
  //  N = B;
  //  V = 0;
      
            //        BEQ   $06A5                   ; 0697: 27 0C         
      if (!Z) {
      PC = 0x06a5;
      JUMP;
      }
      
            //        STA   $04,X                   ; 0699: A7 04         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = A;
      
            //        CMPB  #$02                    ; 069B: C1 02         
      res = B - (SINT8)0x02;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x02) & (B ^ res);
      
            //        BNE   $06A6                   ; 069D: 26 07         
      if (Z) {
      PC = 0x06a6;
      JUMP;
      }
      
            //        LDD   $08,X                   ; 069F: EC 08         
      A = memory[(UINT16)(X + 0x0008)];
      B = memory[(UINT16)(((UINT16)(X + 0x0008))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        NEGA                          ; 06A1: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
      L06A2://        NEGB                          ; 06A2: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
      C = B;
      
      L06A3://        STD   $08,X                   ; 06A3: ED 08         
      Z = A | B;
      N = A;
      V = 0;
      memory[(UINT16)(X + 0x0008)] = A;
      memory[(UINT16)(X + 0x0008) + 1] = B;
      
      L06A5://        RTS                           ; 06A5: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L06A6://        LDA   #$10                    ; 06A6: 86 10         
      A = (SINT8)0x10;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   ,X                      ; 06A8: A7 84         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X] = A;
      
            //        LDA   $01,X                   ; 06AA: A6 01         
      A = memory[(UINT16)(X + 0x0001)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        RORA                          ; 06AC: 46            
      res = A;
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      A = res;
      
            //        BCC   $06B3                   ; 06AD: 24 04         
      if (!C) {
      PC = 0x06b3;
      JUMP;
      }
      
            //        ADDB  #$02                    ; 06AF: CB 02         
      B = (UINT8)(B + (SINT8)0x02);
      res = B + (SINT8)0x02;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ (SINT8)0x02 ^ res ^ C;
      H = res;
  //  V = res;
      
            //        ANDB  #$03                    ; 06B1: C4 03         
      B = B & (SINT8)0x03;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
      L06B3://        LDA   <$89                    ; 06B3: 96 89         
      A = memory_DP[0x89];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $FFFD,X                 ; 06B5: A7 1D         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0xfffd)] = A;
      
            //        LDA   $09,X                   ; 06B7: A6 09         
      A = memory[(UINT16)(X + 0x0009)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        PSHS  B                       ; 06B9: 34 04         
      memory[--S] = B;
      
            //        LDB   $08,X                   ; 06BB: E6 08         
      B = memory[(UINT16)(X + 0x0008)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        DEC   ,S+                     ; 06BD: 6A E0         
      res = (UINT8)(memory[S++] - 1);
  //  N = res;
      Z = res;
  //  V = memory[S++] & ~res;
      memory[S++] = res;
      
            //        BEQ   $06A2                   ; 06BF: 27 E1         
      if (!Z) {
      PC = 0x06a2;
      JUMP;
      }
      
            //        NEGA                          ; 06C1: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        NEG   $FFFD,X                 ; 06C2: 60 1D         
      V = (UINT8)(-memory[(UINT16)(X + 0xfffd)]) & (memory[(UINT16)(X + 0xfffd)]);
      memory[(UINT16)(X + 0xfffd)] = (UINT8)(-memory[(UINT16)(X + 0xfffd)]);
      Z = memory[(UINT16)(X + 0xfffd)];
      N = memory[(UINT16)(X + 0xfffd)];
      C = memory[(UINT16)(X + 0xfffd)];
      
            //        BRA   $06A3                   ; 06C4: 20 DD         
      PC = 0x06a3;
      JUMP;
      
      
      L06C6://        LDX   #$CA00                  ; 06C6: 8E CA 00      
      X = 0xca00;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        CLRA                          ; 06C9: 4F            
      A = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        STA   <$DA                    ; 06CA: 97 DA         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xda] = A;
      
            //        LDY   #$CA4E                  ; 06CC: 10 8E CA 4E   
      Y = 0xca4e;
      Z = Y;
      N = (Y) >> 8;
      V = 0;
      
      L06D0://        BSR   $0711                   ; 06D0: 8D 3F         
      memory[--S] = 0x06d2 & 0xff; memory[--S] = 0x06d2 >> 8;
      PC = 0x0711;
      JUMP;
      
      L06D2://        LDA   #$02                    ; 06D2: 86 02         
      A = (SINT8)0x02;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$DA                    ; 06D4: 97 DA         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xda] = A;
      
            //        LEAY  $04,Y                   ; 06D6: 31 24         
      Y = (Y + 0x0004);
  //  Z = Y;
      
            //        LEAX  $27,X                   ; 06D8: 30 88 27      
      X = (X + (SINT8)0x27);
  //  Z = X;
      
            //        CMPX  #$CA4E                  ; 06DB: 8C CA 4E      
      res = (X) - (0xca4e);
      C = res & 0x10000;
      res = (UINT16)res;
      Z = res;
      N = res >> 8;
      V = (((X) ^ (0xca4e)) & ((X) ^ res)) >> 8;
      
            //        BNE   $06D0                   ; 06DE: 26 F0         
      if (Z) {
      PC = 0x06d0;
      JUMP;
      }
      
            //        RTS                           ; 06E0: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L06E1://        LDB   $03,X                   ; 06E1: E6 03         
      B = memory[(UINT16)(X + 0x0003)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        CMPA  #$80                    ; 06E3: 81 80         
      res = A - (SINT8)0x80;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x80) & (A ^ res);
      
            //        BNE   $06EF                   ; 06E5: 26 08         
      if (Z) {
      PC = 0x06ef;
      JUMP;
      }
      
            //        LDB   #$02                    ; 06E7: C6 02         
      B = (SINT8)0x02;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   $04,X                   ; 06E9: E7 04         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = B;
      
            //        LDB   #$01                    ; 06EB: C6 01         
      B = (SINT8)0x01;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   $03,X                   ; 06ED: E7 03         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = B;
      
      L06EF://        INCA                          ; 06EF: 4C            
      res = (UINT8)((A) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(A);
      A = res;
      
            //        STA   ,X                      ; 06F0: A7 84         
      Z = A;
  //  N = A;
  //  V = 0;
      memory[X] = A;
      
            //        BNE   $06FB                   ; 06F2: 26 07         
      if (Z) {
      PC = 0x06fb;
      JUMP;
      }
      
            //        DEC   <$C7                    ; 06F4: 0A C7         
      res = (UINT8)(memory_DP[0xc7] - 1);
  //  N = res;
      Z = res;
  //  V = memory_DP[0xc7] & ~res;
      memory_DP[0xc7] = res;
      
            //        BNE   $06FA                   ; 06F6: 26 02         
      if (Z) {
      PC = 0x06fa;
      JUMP;
      }
      
            //        DEC   <$E2                    ; 06F8: 0A E2         
      res = (UINT8)(memory_DP[0xe2] - 1);
      N = res;
      Z = res;
      V = memory_DP[0xe2] & ~res;
      memory_DP[0xe2] = res;
      
      L06FA://        RTS                           ; 06FA: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L06FB://        CMPA  #$C2                    ; 06FB: 81 C2         
      res = A - (SINT8)0xc2;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0xc2) & (A ^ res);
      
            //        BNE   $0701                   ; 06FD: 26 02         
      if (Z) {
      PC = 0x0701;
      JUMP;
      }
      
            //        NEG   $04,X                   ; 06FF: 60 04         
  //  V = (UINT8)(-memory[(UINT16)(X + 0x0004)]) & (memory[(UINT16)(X + 0x0004)]);
      memory[(UINT16)(X + 0x0004)] = (UINT8)(-memory[(UINT16)(X + 0x0004)]);
  //  Z = memory[(UINT16)(X + 0x0004)];
  //  N = memory[(UINT16)(X + 0x0004)];
  //  C = memory[(UINT16)(X + 0x0004)];
      
      L0701://        ASRA                          ; 0701: 47            
      C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        BCS   $06FA                   ; 0702: 25 F6         
      if (C) {
      PC = 0x06fa;
      JUMP;
      }
      
            //        ADDB  $04,X                   ; 0704: EB 04         
      B = (UINT8)(B + memory[(UINT16)(X + 0x0004)]);
      res = B + memory[(UINT16)(X + 0x0004)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory[(UINT16)(X + 0x0004)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STB   $03,X                   ; 0706: E7 03         
      Z = B;
      N = B;
      V = 0;
      memory[(UINT16)(X + 0x0003)] = B;
      
            //        RTS                           ; 0708: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0709://        LDA   $05,X                   ; 0709: A6 05         
      A = memory[(UINT16)(X + 0x0005)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        INCA                          ; 070B: 4C            
      res = (UINT8)((A) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(A);
      A = res;
      
            //        ANDA  #$03                    ; 070C: 84 03         
      A = A & (SINT8)0x03;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   $05,X                   ; 070E: A7 05         
      Z = A;
      N = A;
      V = 0;
      memory[(UINT16)(X + 0x0005)] = A;
      
      L0710://        RTS                           ; 0710: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0711://        LDA   ,X                      ; 0711: A6 84         
      A = memory[X];
      N = A;
      Z = A;
  //  V = 0;
      
            //        BMI   $06E1                   ; 0713: 2B CC         
      if ((SINT8)N <  0) {
      PC = 0x06e1;
      JUMP;
      }
      
            //        BEQ   $0710                   ; 0715: 27 F9         
      if (!Z) {
      PC = 0x0710;
      JUMP;
      }
      
            //        PSHS  X                       ; 0717: 34 10         
      memory[--S] = X & 0xff; memory[--S] = X >> 8;
      
            //        LDA   $03,X                   ; 0719: A6 03         
      A = memory[(UINT16)(X + 0x0003)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0721                   ; 071B: 27 04         
      if (!Z) {
      PC = 0x0721;
      JUMP;
      }
      
            //        DEC   $03,X                   ; 071D: 6A 03         
      res = (UINT8)(memory[(UINT16)(X + 0x0003)] - 1);
  //  N = res;
      Z = res;
  //  V = memory[(UINT16)(X + 0x0003)] & ~res;
      memory[(UINT16)(X + 0x0003)] = res;
      
            //        BNE   $0771                   ; 071F: 26 50         
      if (Z) {
      PC = 0x0771;
      JUMP;
      }
      
      L0721://        LDA   $03,Y                   ; 0721: A6 23         
      A = memory[(UINT16)(Y + 0x0003)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0771                   ; 0723: 27 4C         
      if (!Z) {
      PC = 0x0771;
      JUMP;
      }
      
            //        LDB   <$DA                    ; 0725: D6 DA         
      B = memory_DP[0xda];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDU   $01,X                   ; 0727: EE 01         
      U = ((memory[(UINT16)(X + 0x0001)]<<8)|memory[(UINT16)(((UINT16)(X + 0x0001))+1)]);
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   ,U                      ; 0729: A6 C4         
      A = memory[U];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0734                   ; 072B: 27 07         
      if (!Z) {
      PC = 0x0734;
      JUMP;
      }
      
            //        INCB                          ; 072D: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
            //        LEAU  $07,U                   ; 072E: 33 47         
      U = (U + 0x0007);
      
            //        LDA   ,U                      ; 0730: A6 C4         
      A = memory[U];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BNE   $0771                   ; 0732: 26 3D         
      if (Z) {
      PC = 0x0771;
      JUMP;
      }
      
      L0734://        STB   <$CB                    ; 0734: D7 CB         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xcb] = B;
      
            //        DEC   ,U                      ; 0736: 6A C4         
      res = (UINT8)(memory[U] - 1);
  //  N = res;
  //  Z = res;
  //  V = memory[U] & ~res;
      memory[U] = res;
      
            //        LDA   #$10                    ; 0738: 86 10         
      A = (SINT8)0x10;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ORA   <$67                    ; 073A: 9A 67         
      A = A | memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 073C: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        LDA   $06,X                   ; 073E: A6 06         
      A = memory[(UINT16)(X + 0x0006)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   $08,X                   ; 0740: E6 08         
      B = memory[(UINT16)(X + 0x0008)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STD   $01,U                   ; 0742: ED 41         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0x0001)] = A;
      memory[(UINT16)(U + 0x0001) + 1] = B;
      
            //        LDB   $0A,X                   ; 0744: E6 0A         
      B = memory[(UINT16)(X + 0x000a)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   $04EB                   ; 0746: BD 04 EB      
      memory[--S] = 0x0749 & 0xff; memory[--S] = 0x0749 >> 8;
      PC = 0x04eb;
      JUMP;
      
      L0749://        LDA   #$08                    ; 0749: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   $03,X                   ; 074B: A7 03         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = A;
      
            //        LDB   #$0A                    ; 074D: C6 0A         
      B = (SINT8)0x0a;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   <$CB                    ; 074F: 96 CB         
      A = memory_DP[0xcb];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        MUL                           ; 0751: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
      C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LDU   #$CA56                  ; 0752: CE CA 56      
      U = 0xca56;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LEAU  B,U                     ; 0755: 33 C5         
      U = (U + (SINT8)B);
      
            //        LDA   $0A,X                   ; 0757: A6 0A         
      A = memory[(UINT16)(X + 0x000a)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDX   #$0D7B                  ; 0759: 8E 0D 7B      
      X = 0x0d7b;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDB   #$04                    ; 075C: C6 04         
      B = (SINT8)0x04;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   Rot_VL_ab               ; 075E: BD F6 10      
      memory[--S] = 0x0761 & 0xff; memory[--S] = 0x0761 >> 8;
      PC = 0xf610;
      JUMP;
      DP = 0xc8 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L0761://        LDA   <$EF                    ; 0761: 96 EF         
      A = memory_DP[0xef];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BMI   $076F                   ; 0763: 2B 0A         
      if ((SINT8)N <  0) {
      PC = 0x076f;
      JUMP;
      }
      
            //        LDA   #$80                    ; 0765: 86 80         
      A = (SINT8)0x80;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ORA   <$67                    ; 0767: 9A 67         
      A = A | memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 0769: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        LDA   #$20                    ; 076B: 86 20         
      A = (SINT8)0x20;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$EF                    ; 076D: 97 EF         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0xef] = A;
      
      L076F://        PULS  X,PC                    ; 076F: 35 90             ;(PUL? PC=RTS)
      X = memory[S++]<<8;
      X |= memory[S++];
      PC = memory[S++]<<8;
      PC |= memory[S++];
      
      
      L0771://        LDA   $02,Y                   ; 0771: A6 22         
      A = memory[(UINT16)(Y + 0x0002)];
  //  N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $07CD                   ; 0773: 27 58         
      if (!Z) {
      PC = 0x07cd;
      JUMP;
      }
      
            //        LDB   $04,X                   ; 0775: E6 04         
      B = memory[(UINT16)(X + 0x0004)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        SEX                           ; 0777: 1D            
  //  Z = B;
  //  N = B & 0x80;
      A = ((B & 0x80) != 0) ? 0xff : 0;
      
            //        ASLB                          ; 0778: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 0779: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ASLB                          ; 077A: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 077B: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ASLB                          ; 077C: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 077D: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        STD   <$CB                    ; 077E: DD CB         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcb] = A;
      memory_DP[0xcb + 1] = B;
      
            //        ADDD  $06,X                   ; 0780: E3 06         
      arg = (A << 8) | B;
      res = arg + ((memory[(UINT16)(X + 0x0006)]<<8)|memory[(UINT16)(((UINT16)(X + 0x0006))+1)]);
  //  C = res & 0x10000;
      res = (UINT16)res;
  //  Z = res;
  //  V = ((arg ^ res) & ((((memory[(UINT16)(X + 0x0006)]<<8)|memory[(UINT16)(((UINT16)(X + 0x0006))+1)])) ^ res)) >> 8;
  //  N = res >> 8;
      A = (UINT8)(res >> 8);
      B = (UINT8)(res & 0xff);
      
            //        STD   $06,X                   ; 0782: ED 06         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0006)] = A;
      memory[(UINT16)(X + 0x0006) + 1] = B;
      
            //        LDB   $05,X                   ; 0784: E6 05         
      B = memory[(UINT16)(X + 0x0005)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        SEX                           ; 0786: 1D            
  //  Z = B;
  //  N = B & 0x80;
      A = ((B & 0x80) != 0) ? 0xff : 0;
      
            //        ASLB                          ; 0787: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 0788: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ASLB                          ; 0789: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 078A: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ASLB                          ; 078B: 58            
      res = B << 1;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = B ^ res;
      B = res;
      
            //        ROLA                          ; 078C: 49            
      res = ((A) << 1) + (C != 0);
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        STD   <$CD                    ; 078D: DD CD         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcd] = A;
      memory_DP[0xcd + 1] = B;
      
            //        ADDD  $08,X                   ; 078F: E3 08         
      arg = (A << 8) | B;
      res = arg + ((memory[(UINT16)(X + 0x0008)]<<8)|memory[(UINT16)(((UINT16)(X + 0x0008))+1)]);
  //  C = res & 0x10000;
      res = (UINT16)res;
  //  Z = res;
  //  V = ((arg ^ res) & ((((memory[(UINT16)(X + 0x0008)]<<8)|memory[(UINT16)(((UINT16)(X + 0x0008))+1)])) ^ res)) >> 8;
  //  N = res >> 8;
      A = (UINT8)(res >> 8);
      B = (UINT8)(res & 0xff);
      
            //        STD   $08,X                   ; 0791: ED 08         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0008)] = A;
      memory[(UINT16)(X + 0x0008) + 1] = B;
      
            //        CLRB                          ; 0793: 5F            
      B = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDA   $06,X                   ; 0794: A6 06         
      A = memory[(UINT16)(X + 0x0006)];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BPL   $079A                   ; 0796: 2A 02         
      if ((SINT8)N >= 0) {
      PC = 0x079a;
      JUMP;
      }
      
            //        NEGA                          ; 0798: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        INCB                          ; 0799: 5C            
      res = (UINT8)((B) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(B);
      B = res;
      
      L079A://        STA   <$DB                    ; 079A: 97 DB         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xdb] = A;
      
            //        LDA   $08,X                   ; 079C: A6 08         
      A = memory[(UINT16)(X + 0x0008)];
      N = A;
  //  Z = A;
  //  V = 0;
      
            //        BPL   $07A3                   ; 079E: 2A 03         
      if ((SINT8)N >= 0) {
      PC = 0x07a3;
      JUMP;
      }
      
            //        NEGA                          ; 07A0: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
      C = A;
      
            //        ORB   #$02                    ; 07A1: CA 02         
      B = B | (SINT8)0x02;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
      L07A3://        STA   <$DC                    ; 07A3: 97 DC         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xdc] = A;
      
            //        PSHS  B                       ; 07A5: 34 04         
      memory[--S] = B;
      
            //        LDB   <$DB                    ; 07A7: D6 DB         
      B = memory_DP[0xdb];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDU   #$0F6A                  ; 07A9: CE 0F 6A      
      U = 0x0f6a;
      Z = U;
      N = (U) >> 8;
      V = 0;
      
            //        BSR   $081C                   ; 07AC: 8D 6E         
      memory[--S] = 0x07ae & 0xff; memory[--S] = 0x07ae >> 8;
      PC = 0x081c;
      JUMP;
      
      L07AE://        BVC   $07B2                   ; 07AE: 28 02         
      if ((SINT8)V >= 0) {
      PC = 0x07b2;
      JUMP;
      }
      
            //        STB   <$DB                    ; 07B0: D7 DB         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xdb] = B;
      
      L07B2://        LDB   <$DC                    ; 07B2: D6 DC         
      B = memory_DP[0xdc];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDU   #$0F20                  ; 07B4: CE 0F 20      
      U = 0x0f20;
      Z = U;
      N = (U) >> 8;
      V = 0;
      
            //        BSR   $081C                   ; 07B7: 8D 63         
      memory[--S] = 0x07b9 & 0xff; memory[--S] = 0x07b9 >> 8;
      PC = 0x081c;
      JUMP;
      
      L07B9://        BVC   $07BD                   ; 07B9: 28 02         
      if ((SINT8)V >= 0) {
      PC = 0x07bd;
      JUMP;
      }
      
            //        STB   <$DC                    ; 07BB: D7 DC         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xdc] = B;
      
      L07BD://        LDD   <$DB                    ; 07BD: DC DB         
      A = memory_DP[0xdb];
      B = memory_DP[0xdb + 1];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ROR   ,S                      ; 07BF: 66 E4         
      res = memory[S];
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      memory[S] = res;
      
            //        BCC   $07C4                   ; 07C1: 24 01         
      if (!C) {
      PC = 0x07c4;
      JUMP;
      }
      
            //        NEGA                          ; 07C3: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
      C = A;
      
      L07C4://        STA   $06,X                   ; 07C4: A7 06         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0006)] = A;
      
            //        ROR   ,S+                     ; 07C6: 66 E0         
      res = memory[S++];
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      memory[S++] = res;
      
            //        BCC   $07CB                   ; 07C8: 24 01         
      if (!C) {
      PC = 0x07cb;
      JUMP;
      }
      
            //        NEGB                          ; 07CA: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
      L07CB://        STB   $08,X                   ; 07CB: E7 08         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0008)] = B;
      
      L07CD://        CLRA                          ; 07CD: 4F            
      A = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDB   ,Y                      ; 07CE: E6 A4         
      B = memory[Y];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BEQ   $07D3                   ; 07D0: 27 01         
      if (!Z) {
      PC = 0x07d3;
      JUMP;
      }
      
            //        INCA                          ; 07D2: 4C            
      res = (UINT8)((A) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(A);
      A = res;
      
      L07D3://        LDB   $01,Y                   ; 07D3: E6 21         
      B = memory[(UINT16)(Y + 0x0001)];
  //  N = B;
      Z = B;
  //  V = 0;
      
            //        BEQ   $07D8                   ; 07D5: 27 01         
      if (!Z) {
      PC = 0x07d8;
      JUMP;
      }
      
            //        DECA                          ; 07D7: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
      L07D8://        TSTA                          ; 07D8: 4D            
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BEQ   $07FA                   ; 07D9: 27 1F         
      if (!Z) {
      PC = 0x07fa;
      JUMP;
      }
      
            //        ADDA  $0A,X                   ; 07DB: AB 0A         
      A = (UINT8)(A + memory[(UINT16)(X + 0x000a)]);
      res = A + memory[(UINT16)(X + 0x000a)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ memory[(UINT16)(X + 0x000a)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        ANDA  #$3F                    ; 07DD: 84 3F         
      A = A & (SINT8)0x3f;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   $0A,X                   ; 07DF: A7 0A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x000a)] = A;
      
            //        TFR   A,B                     ; 07E1: 1F 89         
      B = A;
      
            //        LDA   #$20                    ; 07E3: 86 20         
      A = (SINT8)0x20;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Rise_Run_X              ; 07E5: BD F5 FF      
      memory[--S] = 0x07e8 & 0xff; memory[--S] = 0x07e8 >> 8;
      PC = 0xf5ff;
      JUMP;
      
      L07E8://        STD   $04,X                   ; 07E8: ED 04         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = A;
      memory[(UINT16)(X + 0x0004) + 1] = B;
      
            //        LDA   <$DA                    ; 07EA: 96 DA         
      A = memory_DP[0xda];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   #$0E                    ; 07EC: C6 0E         
      B = (SINT8)0x0e;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        MUL                           ; 07EE: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
      C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LDA   $0A,X                   ; 07EF: A6 0A         
      A = memory[(UINT16)(X + 0x000a)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LEAU  $0B,X                   ; 07F1: 33 0B         
      U = (X + 0x000b);
      
            //        LDX   #$0D46                  ; 07F3: 8E 0D 46      
      X = 0x0d46;
      Z = X;
      N = (X) >> 8;
      V = 0;
      
            //        ABX                           ; 07F6: 3A            
      X = X + B;
      
            //        JSR   Rot_VL_Mode_a           ; 07F7: BD F6 1F      
      memory[--S] = 0x07fa & 0xff; memory[--S] = 0x07fa >> 8;
      PC = 0xf61f;
      JUMP;
      
      L07FA://        PULS  X,PC                    ; 07FA: 35 90             ;(PUL? PC=RTS)
      X = memory[S++]<<8;
      X |= memory[S++];
      PC = memory[S++]<<8;
      PC |= memory[S++];
      
      
      L081C://        SUBB  #$0A                    ; 081C: C0 0A         
      B = (UINT8)(B - (SINT8)0x0a);
      res = B - (SINT8)0x0a;
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
  //  V = ((B) ^ ((SINT8)0x0a)) & ((B) ^ res);
      
            //        BMI   $084A                   ; 081E: 2B 2A         
      if ((SINT8)N <  0) {
      PC = 0x084a;
      JUMP;
      }
      
            //        ANDB  #$70                    ; 0820: C4 70         
      B = B & (SINT8)0x70;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        ASRB                          ; 0822: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        ASRB                          ; 0823: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        ASRB                          ; 0824: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        LDD   B,U                     ; 0825: EC C5         
      A = memory[(UINT16)(U + (SINT8)B)];
      B = memory[(UINT16)(((UINT16)(U + (SINT8)B))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        LEAU  A,U                     ; 0827: 33 C6         
      U = (U + (SINT8)A);
      
            //        STB   <$DD                    ; 0829: D7 DD         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xdd] = B;
      
      L082B://        LDD   <$DB                    ; 082B: DC DB         
      A = memory_DP[0xdb];
      B = memory_DP[0xdb + 1];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        SUBA  ,U                      ; 082D: A0 C4         
      A = (UINT8)(A - memory[U]);
      res = A - memory[U];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
  //  V = ((A) ^ (memory[U])) & ((A) ^ res);
      
            //        BMI   $0842                   ; 082F: 2B 11         
      if ((SINT8)N <  0) {
      PC = 0x0842;
      JUMP;
      }
      
            //        CMPA  $01,U                   ; 0831: A1 41         
      res = A - memory[(UINT16)(U + 0x0001)];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (A ^ memory[(UINT16)(U + 0x0001)]) & (A ^ res);
      
            //        BGT   $0842                   ; 0833: 2E 0D         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0842;
      JUMP;
      }
      
            //        SUBB  $02,U                   ; 0835: E0 42         
      B = (UINT8)(B - memory[(UINT16)(U + 0x0002)]);
      res = B - memory[(UINT16)(U + 0x0002)];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
  //  V = ((B) ^ (memory[(UINT16)(U + 0x0002)])) & ((B) ^ res);
      
            //        BMI   $0842                   ; 0837: 2B 09         
      if ((SINT8)N <  0) {
      PC = 0x0842;
      JUMP;
      }
      
            //        CMPB  $03,U                   ; 0839: E1 43         
      res = B - memory[(UINT16)(U + 0x0003)];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (B ^ memory[(UINT16)(U + 0x0003)]) & (B ^ res);
      
            //        BGT   $0842                   ; 083B: 2E 05         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0842;
      JUMP;
      }
      
            //        LDB   $04,U                   ; 083D: E6 44         
      B = memory[(UINT16)(U + 0x0004)];
      N = B;
      Z = B;
  //  V = 0;
      
            //        ORCC  #$02                    ; 083F: 1A 02         
      V = 1;
      
            //        RTS                           ; 0841: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0842://        LEAU  $05,U                   ; 0842: 33 45         
      U = (U + 0x0005);
      
            //        DEC   <$DD                    ; 0844: 0A DD         
      res = (UINT8)(memory_DP[0xdd] - 1);
      N = res;
      Z = res;
  //  V = memory_DP[0xdd] & ~res;
      memory_DP[0xdd] = res;
      
            //        BNE   $082B                   ; 0846: 26 E3         
      if (Z) {
      PC = 0x082b;
      JUMP;
      }
      
            //        ANDCC #$FD                    ; 0848: 1C FD         
      V = 0;
      
      L084A://        RTS                           ; 084A: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L084B://        LDU   #$CA00                  ; 084B: CE CA 00      
      U = 0xca00;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDY   #$C9C0                  ; 084E: 10 8E C9 C0   
      Y = 0xc9c0;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      
            //        LDX   #$0D46                  ; 0852: 8E 0D 46      
      X = 0x0d46;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDA   <$C8                    ; 0855: 96 C8         
      A = memory_DP[0xc8];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$C7                    ; 0857: 97 C7         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xc7] = A;
      
            //        LDB   #$20                    ; 0859: C6 20         
      B = (SINT8)0x20;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L085B://        PSHS  B,A                     ; 085B: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        STA   ,U+                     ; 085D: A7 C0         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[U++] = A;
      
            //        STY   ,U++                    ; 085F: 10 AF C1      
      ea = U; U = U + 2;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      memory[ea] = (UINT8)((Y) >> 8);
      memory[(UINT16)(ea + 1)] = (UINT8)((Y) & 0xff);
      
            //        LDB   #$08                    ; 0862: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L0864://        CLR   ,U+                     ; 0864: 6F C0         
      memory[U++] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        DECB                          ; 0866: 5A            
      res = (UINT8)(B - 1);
  //  N = res;
      Z = res;
  //  V = B & ~res;
      B = res;
      
            //        BNE   $0864                   ; 0867: 26 FB         
      if (Z) {
      PC = 0x0864;
      JUMP;
      }
      
            //        LDD   ,S                      ; 0869: EC E4         
      A = memory[S];
      B = memory[(UINT16)((S)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $FFFA,U                 ; 086B: ED 5A         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(U + 0xfffa)] = A;
      memory[(UINT16)(U + 0xfffa) + 1] = B;
      
            //        JSR   Rot_VL_Mode_a           ; 086D: BD F6 1F      
      memory[--S] = 0x0870 & 0xff; memory[--S] = 0x0870 >> 8;
      PC = 0xf61f;
      JUMP;
      
      L0870://        LEAY  $0E,Y                   ; 0870: 31 2E         
      Y = (Y + 0x000e);
  //  Z = Y;
      
            //        PULS  A,B                     ; 0872: 35 06         
      A = memory[S++];
      B = memory[S++];
      
            //        NEGB                          ; 0874: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
      C = B;
      
            //        DECA                          ; 0875: 4A            
      res = (UINT8)(A - 1);
      N = res;
      Z = res;
      V = A & ~res;
      A = res;
      
            //        BNE   $085B                   ; 0876: 26 E3         
      if (Z) {
      PC = 0x085b;
      JUMP;
      }
      
            //        RTS                           ; 0878: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0879://        NEGA                          ; 0879: 40            
      V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        BVC   $088D                   ; 087A: 28 11         
      if ((SINT8)V >= 0) {
      PC = 0x088d;
      JUMP;
      }
      
            //        DECA                          ; 087C: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
            //        CLRB                          ; 087D: 5F            
      B = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        STD   <$92                    ; 087E: DD 92         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x92] = A;
      memory_DP[0x92 + 1] = B;
      
            //        ASR   <$A3                    ; 0880: 07 A3         
  //  C = memory_DP[0xa3] & 1;
      memory_DP[0xa3] = (UINT8)(memory_DP[0xa3] >> 1);
  //  Z = memory_DP[0xa3];
  //  N = memory_DP[0xa3];
      
            //        ASR   <$A4                    ; 0882: 07 A4         
  //  C = memory_DP[0xa4] & 1;
      memory_DP[0xa4] = (UINT8)(memory_DP[0xa4] >> 1);
  //  Z = memory_DP[0xa4];
  //  N = memory_DP[0xa4];
      
            //        DECB                          ; 0884: 5A            
      res = (UINT8)(B - 1);
  //  N = res;
  //  Z = res;
  //  V = B & ~res;
      B = res;
      
            //        STB   <$EF                    ; 0885: D7 EF         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xef] = B;
      
            //        LDA   #$80                    ; 0887: 86 80         
      A = (SINT8)0x80;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ORA   <$67                    ; 0889: 9A 67         
      A = A | memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 088B: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
      L088D://        INC   <$94                    ; 088D: 0C 94         
      res = (UINT8)((memory_DP[0x94]) + 1);
      Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0x94]);
      memory_DP[0x94] = res;
      
            //        BNE   $089A                   ; 088F: 26 09         
      if (Z) {
      PC = 0x089a;
      JUMP;
      }
      
            //        CLR   <$EF                    ; 0891: 0F EF         
      memory_DP[0xef] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        LDA   #$F7                    ; 0893: 86 F7         
      A = (SINT8)0xf7;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  <$67                    ; 0895: 94 67         
      A = A & memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 0897: 97 67         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0x67] = A;
      
            //        RTS                           ; 0899: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L089A://        RORA                          ; 089A: 46            
      res = A;
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      A = res;
      
            //        BCC   $08B7                   ; 089B: 24 1A         
      if (!C) {
      PC = 0x08b7;
      JUMP;
      }
      
            //        INC   <$A5                    ; 089D: 0C A5         
      res = (UINT8)((memory_DP[0xa5]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0xa5]);
      memory_DP[0xa5] = res;
      
            //        DEC   <$A6                    ; 089F: 0A A6         
      res = (UINT8)(memory_DP[0xa6] - 1);
  //  N = res;
  //  Z = res;
  //  V = memory_DP[0xa6] & ~res;
      memory_DP[0xa6] = res;
      
            //        RORA                          ; 08A1: 46            
      res = A;
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      A = res;
      
            //        BCC   $08A8                   ; 08A2: 24 04         
      if (!C) {
      PC = 0x08a8;
      JUMP;
      }
      
            //        DEC   <$92                    ; 08A4: 0A 92         
      res = (UINT8)(memory_DP[0x92] - 1);
  //  N = res;
  //  Z = res;
  //  V = memory_DP[0x92] & ~res;
      memory_DP[0x92] = res;
      
            //        INC   <$93                    ; 08A6: 0C 93         
      res = (UINT8)((memory_DP[0x93]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0x93]);
      memory_DP[0x93] = res;
      
      L08A8://        LDA   <$A6                    ; 08A8: 96 A6         
      A = memory_DP[0xa6];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LEAU  $0A,X                   ; 08AA: 33 0A         
      U = (X + 0x000a);
      
            //        LDX   #$0FCE                  ; 08AC: 8E 0F CE      
      X = 0x0fce;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        JSR   Rot_VL_Mode_a           ; 08AF: BD F6 1F      
      memory[--S] = 0x08b2 & 0xff; memory[--S] = 0x08b2 >> 8;
      PC = 0xf61f;
      JUMP;
      
      L08B2://        LDA   <$A6                    ; 08B2: 96 A6         
      A = memory_DP[0xa6];
      N = A;
      Z = A;
      V = 0;
      
            //        JSR   Rot_VL_Mode_a           ; 08B4: BD F6 1F      
      memory[--S] = 0x08b7 & 0xff; memory[--S] = 0x08b7 >> 8;
      PC = 0xf61f;
      JUMP;
      
      L08B7://        JMP   $0965                   ; 08B7: 7E 09 65      
      PC = 0x0965;
      JUMP;
      
      
      L08BA://        LDX   <$30                    ; 08BA: 9E 30         
      X = ((memory_DP[0x30]<<8)|memory_DP[0x30 + 1]);
      Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        BEQ   $0911                   ; 08BC: 27 53         
      if (!Z) {
      PC = 0x0911;
      JUMP;
      }
      
            //        LEAX  $FFFF,X                 ; 08BE: 30 1F         
      X = (X + 0xffff);
  //  Z = X;
      
            //        STX   <$30                    ; 08C0: 9F 30         
      Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      memory_DP[0x30] = (UINT8)((X) >> 8);
      memory_DP[(UINT16)(0x30 + 1)] = (UINT8)((X) & 0xff);
      
            //        BNE   $0910                   ; 08C2: 26 4C         
      if (Z) {
      PC = 0x0910;
      JUMP;
      }
      
            //        LDA   #$F7                    ; 08C4: 86 F7         
      A = (SINT8)0xf7;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  <$67                    ; 08C6: 94 67         
      A = A & memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 08C8: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        COM   <$8A                    ; 08CA: 03 8A         
      memory_DP[0x8a] = memory_DP[0x8a] ^ 0xff;
  //  Z = memory_DP[0x8a];
  //  N = memory_DP[0x8a];
  //  V = 0;
  //  C = 1;
      
            //        LDX   #$C894                  ; 08CC: 8E C8 94      
      X = 0xc894;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDB   #$19                    ; 08CF: C6 19         
      B = (SINT8)0x19;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   Clear_x_b               ; 08D1: BD F5 3F      
      memory[--S] = 0x08d4 & 0xff; memory[--S] = 0x08d4 >> 8;
      PC = 0xf53f;
      JUMP;
      
      L08D4://        LDA   #$00                    ; 08D4: 86 00         
      A = (SINT8)0x00;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$71                    ; 08D6: 97 71         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x71] = A;
      
            //        LDA   #$02                    ; 08D8: 86 02         
      A = (SINT8)0x02;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$94                    ; 08DA: 97 94         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x94] = A;
      
            //        DECA                          ; 08DC: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
            //        STA   <$95                    ; 08DD: 97 95         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x95] = A;
      
            //        LDD   #$CA00                  ; 08DF: CC CA 00      
      A = (UINT8)((0xca00) >> 8);
      B = (UINT8)((0xca00) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$9B                    ; 08E2: DD 9B         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x9b] = A;
      memory_DP[0x9b + 1] = B;
      
            //        LDA   <$83                    ; 08E4: 96 83         
      A = memory_DP[0x83];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$96                    ; 08E6: 97 96         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x96] = A;
      
            //        LDA   <$86                    ; 08E8: 96 86         
      A = memory_DP[0x86];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$9A                    ; 08EA: 97 9A         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x9a] = A;
      
            //        LEAX  $09,X                   ; 08EC: 30 09         
      X = (X + 0x0009);
  //  Z = X;
      
            //        JSR   Random                  ; 08EE: BD F5 17      
      memory[--S] = 0x08f1 & 0xff; memory[--S] = 0x08f1 >> 8;
      PC = 0xf517;
      JUMP;
      
      L08F1://        CLRB                          ; 08F1: 5F            
      B = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        ROLA                          ; 08F2: 49            
      res = ((A) << 1) + (C != 0);
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        ROLB                          ; 08F3: 59            
      res = ((B) << 1) + (C != 0);
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (B);
      B = res;
      
            //        LEAX  B,X                     ; 08F4: 30 85         
      X = (X + (SINT8)B);
  //  Z = X;
      
            //        STB   <$CB                    ; 08F6: D7 CB         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xcb] = B;
      
            //        LDB   #$7F                    ; 08F8: C6 7F         
      B = (SINT8)0x7f;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        ROLA                          ; 08FA: 49            
      res = ((A) << 1) + (C != 0);
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = res ^ (A);
      A = res;
      
            //        BCC   $08FE                   ; 08FB: 24 01         
      if (!C) {
      PC = 0x08fe;
      JUMP;
      }
      
            //        NEGB                          ; 08FD: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
      L08FE://        STB   ,X                      ; 08FE: E7 84         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[X] = B;
      
            //        ASRB                          ; 0900: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        ASRB                          ; 0901: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        STB   $02,X                   ; 0902: E7 02         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0002)] = B;
      
            //        LDA   #$07                    ; 0904: 86 07         
      A = (SINT8)0x07;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        SUBA  <$CB                    ; 0906: 90 CB         
      A = (UINT8)(A - memory_DP[0xcb]);
  //  res = A - memory_DP[0xcb];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory_DP[0xcb])) & ((A) ^ res);
      
            //        SUBA  <$CB                    ; 0908: 90 CB         
      A = (UINT8)(A - memory_DP[0xcb]);
  //  res = A - memory_DP[0xcb];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory_DP[0xcb])) & ((A) ^ res);
      
            //        LEAX  A,X                     ; 090A: 30 86         
      X = (X + (SINT8)A);
  //  Z = X;
      
            //        INC   ,X                      ; 090C: 6C 84         
      res = (UINT8)((memory[X]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory[X]);
      memory[X] = res;
      
            //        COM   <$98                    ; 090E: 03 98         
      memory_DP[0x98] = memory_DP[0x98] ^ 0xff;
      Z = memory_DP[0x98];
      N = memory_DP[0x98];
      V = 0;
      C = 1;
      
      L0910://        RTS                           ; 0910: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0911://        LDX   #$C894                  ; 0911: 8E C8 94      
      X = 0xc894;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        JSR   $0709                   ; 0914: BD 07 09      
      memory[--S] = 0x0917 & 0xff; memory[--S] = 0x0917 >> 8;
      PC = 0x0709;
      JUMP;
      
      L0917://        LEAX  $09,X                   ; 0917: 30 09         
      X = (X + 0x0009);
  //  Z = X;
      
            //        LDA   <$94                    ; 0919: 96 94         
      A = memory_DP[0x94];
      N = A;
      Z = A;
      V = 0;
      
            //        LBMI  $0879                   ; 091B: 10 2B FF 5A   
      if ((SINT8)N <  0) {
      PC = 0x0879;
      JUMP;
      }
      
            //        BNE   $0928                   ; 091F: 26 07         
      if (Z) {
      PC = 0x0928;
      JUMP;
      }
      
            //        STD   <$8C                    ; 0921: DD 8C         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x8c] = A;
      memory_DP[0x8c + 1] = B;
      
            //        LDD   <$DE                    ; 0923: DC DE         
      A = memory_DP[0xde];
      B = memory_DP[0xde + 1];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$30                    ; 0925: DD 30         
      Z = A | B;
      N = A;
      V = 0;
      memory_DP[0x30] = A;
      memory_DP[0x30 + 1] = B;
      
            //        RTS                           ; 0927: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0928://        LDA   #$08                    ; 0928: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ORA   <$67                    ; 092A: 9A 67         
      A = A | memory_DP[0x67];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STA   <$67                    ; 092C: 97 67         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x67] = A;
      
            //        LDB   <$98                    ; 092E: D6 98         
      B = memory_DP[0x98];
      N = B;
  //  Z = B;
  //  V = 0;
      
            //        BPL   $0940                   ; 0930: 2A 0E         
      if ((SINT8)N >= 0) {
      PC = 0x0940;
      JUMP;
      }
      
            //        LEAU  $0A,X                   ; 0932: 33 0A         
      U = (X + 0x000a);
      
            //        LDX   #$0FAF                  ; 0934: 8E 0F AF      
      X = 0x0faf;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDA   <$A6                    ; 0937: 96 A6         
      A = memory_DP[0xa6];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        JSR   Rot_VL_Mode_a           ; 0939: BD F6 1F      
      memory[--S] = 0x093c & 0xff; memory[--S] = 0x093c >> 8;
      PC = 0xf61f;
      JUMP;
      
      L093C://        CLR   <$98                    ; 093C: 0F 98         
      memory_DP[0x98] = 0;
      V = 0;
      Z = 0;
      N = 0;
      C = 0;
      
            //        BRA   $0965                   ; 093E: 20 25         
      PC = 0x0965;
      JUMP;
      
      
      L0940://        LDD   <$8C                    ; 0940: DC 8C         
      A = memory_DP[0x8c];
      B = memory_DP[0x8c + 1];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        TFR   D,Y                     ; 0942: 1F 02         
      Y = ((A << 8) | B);
      
            //        JSR   $0C66                   ; 0944: BD 0C 66      
      memory[--S] = 0x0947 & 0xff; memory[--S] = 0x0947 >> 8;
      PC = 0x0c66;
      JUMP;
      
      L0947://        ANDA  <$84                    ; 0947: 94 84         
      A = A & memory_DP[0x84];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        STD   <$CD                    ; 0949: DD CD         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcd] = A;
      memory_DP[0xcd + 1] = B;
      
            //        LEAX  $09,X                   ; 094B: 30 09         
      X = (X + 0x0009);
  //  Z = X;
      
            //        CMPB  #$08                    ; 094D: C1 08         
      res = B - (SINT8)0x08;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x08) & (B ^ res);
      
            //        BLS   $0959                   ; 094F: 23 08         
      if ((!Z) || C) {
      PC = 0x0959;
      JUMP;
      }
      
            //        SUBA  <$A6                    ; 0951: 90 A6         
      A = (UINT8)(A - memory_DP[0xa6]);
      res = A - memory_DP[0xa6];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = ((A) ^ (memory_DP[0xa6])) & ((A) ^ res);
      
            //        BEQ   $0959                   ; 0953: 27 04         
      if (!Z) {
      PC = 0x0959;
      JUMP;
      }
      
            //        BSR   $0989                   ; 0955: 8D 32         
      memory[--S] = 0x0957 & 0xff; memory[--S] = 0x0957 >> 8;
      PC = 0x0989;
      JUMP;
      
      L0957://        DEC   <$98                    ; 0957: 0A 98         
      res = (UINT8)(memory_DP[0x98] - 1);
  //  N = res;
  //  Z = res;
  //  V = memory_DP[0x98] & ~res;
      memory_DP[0x98] = res;
      
      L0959://        LEAX  $FFFF,X                 ; 0959: 30 1F         
      X = (X + 0xffff);
  //  Z = X;
      
            //        LDA   <$95                    ; 095B: 96 95         
      A = memory_DP[0x95];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  #$01                    ; 095D: 84 01         
      A = A & (SINT8)0x01;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        ASLA                          ; 095F: 48            
      res = A << 1;
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = A ^ res;
      A = res;
      
            //        LDU   #$0A55                  ; 0960: CE 0A 55      
      U = 0x0a55;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        JSR   [A,U]                   ; 0963: AD D6         
      memory[--S] = 0x0965 & 0xff; memory[--S] = 0x0965 >> 8;
      PC = ((memory[(UINT16)(U + (SINT8)A)]<<8)|memory[(UINT16)(U + (SINT8)A + 1)]);
      JUMP;
      
      L0965://        LDD   #$78FF                  ; 0965: CC 78 FF      
      A = (UINT8)((0x78ff) >> 8);
      B = (UINT8)((0x78ff) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        LEAX  $FFFA,X                 ; 0968: 30 1A         
      X = (X + 0xfffa);
  //  Z = X;
      
            //        CMPA  ,X+                     ; 096A: A1 80         
      res = A - memory[X++];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (A ^ memory[X]) & (A ^ res);
      
            //        BLT   $097E                   ; 096C: 2D 10         
      if ((SINT8)(N^V) <  0) {
      PC = 0x097e;
      JUMP;
      }
      
            //        CMPA  ,X+                     ; 096E: A1 80         
      res = A - memory[X++];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (A ^ memory[X]) & (A ^ res);
      
            //        BLT   $097E                   ; 0970: 2D 0C         
      if ((SINT8)(N^V) <  0) {
      PC = 0x097e;
      JUMP;
      }
      
            //        NEGA                          ; 0972: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
            //        NEGB                          ; 0973: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
            //        LEAX  $FFFE,X                 ; 0974: 30 1E         
      X = (X + 0xfffe);
  //  Z = X;
      
            //        CMPA  ,X+                     ; 0976: A1 80         
      res = A - memory[X++];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (A ^ memory[X]) & (A ^ res);
      
            //        BGT   $097E                   ; 0978: 2E 04         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x097e;
      JUMP;
      }
      
            //        CMPA  ,X+                     ; 097A: A1 80         
      res = A - memory[X++];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (A ^ memory[X]) & (A ^ res);
      
            //        BLT   $0980                   ; 097C: 2D 02         
      if ((SINT8)(N^V) <  0) {
      PC = 0x0980;
      JUMP;
      }
      
      L097E://        STB   $03,X                   ; 097E: E7 03         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = B;
      
      L0980://        LDD   <$9F                    ; 0980: DC 9F         
      A = memory_DP[0x9f];
      B = memory_DP[0x9f + 1];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ADDA  <$A3                    ; 0982: 9B A3         
      A = (UINT8)(A + memory_DP[0xa3]);
  //  res = A + memory_DP[0xa3];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory_DP[0xa3] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ADDB  <$A4                    ; 0984: DB A4         
      B = (UINT8)(B + memory_DP[0xa4]);
      res = B + memory_DP[0xa4];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory_DP[0xa4] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STD   <$9F                    ; 0986: DD 9F         
      Z = A | B;
      N = A;
      V = 0;
      memory_DP[0x9f] = A;
      memory_DP[0x9f + 1] = B;
      
            //        RTS                           ; 0988: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0989://        ANDA  #$3F                    ; 0989: 84 3F         
      A = A & (SINT8)0x3f;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        LDB   #$01                    ; 098B: C6 01         
      B = (SINT8)0x01;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        CMPA  #$20                    ; 098D: 81 20         
      res = A - (SINT8)0x20;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (A ^ (SINT8)0x20) & (A ^ res);
      
            //        BLE   $0992                   ; 098F: 2F 01         
      if (((SINT8)(N^V) <  0) || (!Z)) {
      PC = 0x0992;
      JUMP;
      }
      
            //        NEGB                          ; 0991: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
      L0992://        STB   <$CF                    ; 0992: D7 CF         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xcf] = B;
      
            //        ADDB  ,X                      ; 0994: EB 84         
      B = (UINT8)(B + memory[X]);
  //  res = B + memory[X];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = B ^ memory[X] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ANDB  #$3F                    ; 0996: C4 3F         
      B = B & (SINT8)0x3f;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        CMPB  <$CD                    ; 0998: D1 CD         
      res = B - memory_DP[0xcd];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ memory_DP[0xcd]) & (B ^ res);
      
            //        BEQ   $09A0                   ; 099A: 27 04         
      if (!Z) {
      PC = 0x09a0;
      JUMP;
      }
      
            //        ADDB  <$CF                    ; 099C: DB CF         
      B = (UINT8)(B + memory_DP[0xcf]);
      res = B + memory_DP[0xcf];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory_DP[0xcf] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        ANDB  #$3F                    ; 099E: C4 3F         
      B = B & (SINT8)0x3f;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
      L09A0://        STB   ,X                      ; 09A0: E7 84         
      Z = B;
      N = B;
      V = 0;
      memory[X] = B;
      
            //        RTS                           ; 09A2: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0A59://        NEG   <$91                    ; 0A59: 00 91         
  //  V = (UINT8)(-memory_DP[0x91]) & (memory_DP[0x91]);
      memory_DP[0x91] = (UINT8)(-memory_DP[0x91]);
  //  Z = memory_DP[0x91];
  //  N = memory_DP[0x91];
  //  C = memory_DP[0x91];
      
            //        LDY   #$C8E3                  ; 0A5B: 10 8E C8 E3   
      Y = 0xc8e3;
  //  Z = Y;
  //  N = (Y) >> 8;
  //  V = 0;
      
            //        CLR   $02,Y                   ; 0A5F: 6F 22         
      memory[(UINT16)(Y + 0x0002)] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        CLR   $03,Y                   ; 0A61: 6F 23         
      memory[(UINT16)(Y + 0x0003)] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
  //  C = 0;
      
            //        LDA   #$02                    ; 0A63: 86 02         
      A = (SINT8)0x02;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$DA                    ; 0A65: 97 DA         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xda] = A;
      
            //        LDX   #$C9C0                  ; 0A67: 8E C9 C0      
      X = 0xc9c0;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDD   #$0B6E                  ; 0A6A: CC 0B 6E      
      A = (UINT8)((0x0b6e) >> 8);
      B = (UINT8)((0x0b6e) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   <$CC                    ; 0A6D: DD CC         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xcc] = A;
      memory_DP[0xcc + 1] = B;
      
            //        LDB   #$08                    ; 0A6F: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L0A71://        STB   <$D2                    ; 0A71: D7 D2         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xd2] = B;
      
            //        LDA   ,X                      ; 0A73: A6 84         
      A = memory[X];
      N = A;
      Z = A;
  //  V = 0;
      
            //        BMI   $0AAD                   ; 0A75: 2B 36         
      if ((SINT8)N <  0) {
      PC = 0x0aad;
      JUMP;
      }
      
            //        BEQ   $0A92                   ; 0A77: 27 19         
      if (!Z) {
      PC = 0x0a92;
      JUMP;
      }
      
            //        LDU   #$CB00                  ; 0A79: CE CB 00      
      U = 0xcb00;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        DECA                          ; 0A7C: 4A            
      res = (UINT8)(A - 1);
  //  N = res;
  //  Z = res;
  //  V = A & ~res;
      A = res;
      
            //        STA   ,X                      ; 0A7D: A7 84         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X] = A;
      
            //        ANDA  #$03                    ; 0A7F: 84 03         
      A = A & (SINT8)0x03;
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BNE   $0A8B                   ; 0A81: 26 08         
      if (Z) {
      PC = 0x0a8b;
      JUMP;
      }
      
            //        LDB   $04,X                   ; 0A83: E6 04         
      B = memory[(UINT16)(X + 0x0004)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        ADDB  $04,X                   ; 0A85: EB 04         
      B = (UINT8)(B + memory[(UINT16)(X + 0x0004)]);
      res = B + memory[(UINT16)(X + 0x0004)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ memory[(UINT16)(X + 0x0004)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STB   $04,X                   ; 0A87: E7 04         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[(UINT16)(X + 0x0004)] = B;
      
            //        DEC   $03,X                   ; 0A89: 6A 03         
      res = (UINT8)(memory[(UINT16)(X + 0x0003)] - 1);
  //  N = res;
  //  Z = res;
  //  V = memory[(UINT16)(X + 0x0003)] & ~res;
      memory[(UINT16)(X + 0x0003)] = res;
      
      L0A8B://        LDB   #$08                    ; 0A8B: C6 08         
      B = (SINT8)0x08;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        MUL                           ; 0A8D: 3D            
      res = (UINT16)(A * B);
  //  Z = res;
  //  C = res & 0x80; /* ??? 8000 ??? */
      A = res >> 8;
      B = (UINT8)res;
      
            //        LEAU  B,U                     ; 0A8E: 33 C5         
      U = (U + (SINT8)B);
      
            //        STU   $05,X                   ; 0A90: EF 05         
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      memory[(UINT16)(X + 0x0005)] = (UINT8)((U) >> 8);
      memory[(UINT16)((X + 0x0005) + 1)] = (UINT8)((U) & 0xff);
      
      L0A92://        LEAX  $07,X                   ; 0A92: 30 07         
      X = (X + 0x0007);
  //  Z = X;
      
            //        LDB   <$D2                    ; 0A94: D6 D2         
      B = memory_DP[0xd2];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        DECB                          ; 0A96: 5A            
      res = (UINT8)(B - 1);
  //  N = res;
      Z = res;
  //  V = B & ~res;
      B = res;
      
            //        BEQ   $0AAC                   ; 0A97: 27 13         
      if (!Z) {
      PC = 0x0aac;
      JUMP;
      }
      
            //        CMPB  #$06                    ; 0A99: C1 06         
      res = B - (SINT8)0x06;
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x06) & (B ^ res);
      
            //        BNE   $0A9F                   ; 0A9B: 26 02         
      if (Z) {
      PC = 0x0a9f;
      JUMP;
      }
      
            //        INC   <$DA                    ; 0A9D: 0C DA         
      res = (UINT8)((memory_DP[0xda]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0xda]);
      memory_DP[0xda] = res;
      
      L0A9F://        CMPB  #$04                    ; 0A9F: C1 04         
      res = B - (SINT8)0x04;
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x04) & (B ^ res);
      
            //        BNE   $0A71                   ; 0AA1: 26 CE         
      if (Z) {
      PC = 0x0a71;
      JUMP;
      }
      
            //        LDU   #$0B2C                  ; 0AA3: CE 0B 2C      
      U = 0x0b2c;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        STU   <$CC                    ; 0AA6: DF CC         
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      memory_DP[0xcc] = (UINT8)((U) >> 8);
      memory_DP[(UINT16)(0xcc + 1)] = (UINT8)((U) & 0xff);
      
            //        INC   <$DA                    ; 0AA8: 0C DA         
      res = (UINT8)((memory_DP[0xda]) + 1);
      Z = res;
      N = res;
      V = res & ~(memory_DP[0xda]);
      memory_DP[0xda] = res;
      
            //        BRA   $0A71                   ; 0AAA: 20 C5         
      PC = 0x0a71;
      JUMP;
      
      
      L0AAC://        RTS                           ; 0AAC: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0AAD://        LDA   <$91                    ; 0AAD: 96 91         
      A = memory_DP[0x91];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ADDA  #$04                    ; 0AAF: 8B 04         
      A = (UINT8)(A + (SINT8)0x04);
  //  res = A + (SINT8)0x04;
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ (SINT8)0x04 ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        LEAU  A,X                     ; 0AB1: 33 86         
      U = (X + (SINT8)A);
      
            //        LDD   $01,X                   ; 0AB3: EC 01         
      A = memory[(UINT16)(X + 0x0001)];
      B = memory[(UINT16)(((UINT16)(X + 0x0001))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ADDA  ,U                      ; 0AB5: AB C4         
      A = (UINT8)(A + memory[U]);
  //  res = A + memory[U];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory[U] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ADDB  $01,U                   ; 0AB7: EB 41         
      B = (UINT8)(B + memory[(UINT16)(U + 0x0001)]);
  //  res = B + memory[(UINT16)(U + 0x0001)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = B ^ memory[(UINT16)(U + 0x0001)] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        STD   $01,X                   ; 0AB9: ED 01         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0001)] = A;
      memory[(UINT16)(X + 0x0001) + 1] = B;
      
            //        JSR   Abs_a_b                 ; 0ABB: BD F5 84      
      memory[--S] = 0x0abe & 0xff; memory[--S] = 0x0abe >> 8;
      PC = 0xf584;
      JUMP;
      
      L0ABE://        STD   <$DB                    ; 0ABE: DD DB         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0xdb] = A;
      memory_DP[0xdb + 1] = B;
      
            //        CMPA  #$78                    ; 0AC0: 81 78         
      res = A - (SINT8)0x78;
      C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = (A ^ (SINT8)0x78) & (A ^ res);
      
            //        BCC   $0B1B                   ; 0AC2: 24 57         
      if (!C) {
      PC = 0x0b1b;
      JUMP;
      }
      
            //        CMPB  #$78                    ; 0AC4: C1 78         
      res = B - (SINT8)0x78;
      C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = (B ^ (SINT8)0x78) & (B ^ res);
      
            //        BCC   $0B1B                   ; 0AC6: 24 53         
      if (!C) {
      PC = 0x0b1b;
      JUMP;
      }
      
            //        LDU   #$0F20                  ; 0AC8: CE 0F 20      
      U = 0x0f20;
  //  Z = U;
  //  N = (U) >> 8;
      V = 0;
      
            //        JSR   $081C                   ; 0ACB: BD 08 1C      
      memory[--S] = 0x0ace & 0xff; memory[--S] = 0x0ace >> 8;
      PC = 0x081c;
      JUMP;
      
      L0ACE://        BVS   $0B1B                   ; 0ACE: 29 4B         
      if ((SINT8)V <  0) {
      PC = 0x0b1b;
      JUMP;
      }
      
            //        LDB   <$DB                    ; 0AD0: D6 DB         
      B = memory_DP[0xdb];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDU   #$0F6A                  ; 0AD2: CE 0F 6A      
      U = 0x0f6a;
  //  Z = U;
  //  N = (U) >> 8;
      V = 0;
      
            //        JSR   $081C                   ; 0AD5: BD 08 1C      
      memory[--S] = 0x0ad8 & 0xff; memory[--S] = 0x0ad8 >> 8;
      PC = 0x081c;
      JUMP;
      
      L0AD8://        BVS   $0B1B                   ; 0AD8: 29 41         
      if ((SINT8)V <  0) {
      PC = 0x0b1b;
      JUMP;
      }
      
            //        LDU   #$C900                  ; 0ADA: CE C9 00      
      U = 0xc900;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDB   <$81                    ; 0ADD: D6 81         
      B = memory_DP[0x81];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
      L0ADF://        STB   <$CB                    ; 0ADF: D7 CB         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0xcb] = B;
      
            //        SUBB  <$D2                    ; 0AE1: D0 D2         
      B = (UINT8)(B - memory_DP[0xd2]);
  //  res = B - memory_DP[0xd2];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((B) ^ (memory_DP[0xd2])) & ((B) ^ res);
      
            //        ADDB  #$03                    ; 0AE3: CB 03         
      B = (UINT8)(B + (SINT8)0x03);
      res = B + (SINT8)0x03;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = B ^ (SINT8)0x03 ^ res ^ C;
      H = res;
  //  V = res;
      
            //        SUBB  <$81                    ; 0AE5: D0 81         
      B = (UINT8)(B - memory_DP[0x81]);
      res = B - memory_DP[0x81];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
  //  N = res;
  //  V = ((B) ^ (memory_DP[0x81])) & ((B) ^ res);
      
            //        BEQ   $0B0B                   ; 0AE7: 27 22         
      if (!Z) {
      PC = 0x0b0b;
      JUMP;
      }
      
            //        LDD   ,U                      ; 0AE9: EC C4         
      A = memory[U];
      B = memory[(UINT16)((U)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        TSTA                          ; 0AEB: 4D            
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BEQ   $0B0B                   ; 0AEC: 27 1D         
      if (!Z) {
      PC = 0x0b0b;
      JUMP;
      }
      
            //        CMPB  #$02                    ; 0AEE: C1 02         
      res = B - (SINT8)0x02;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = (B ^ (SINT8)0x02) & (B ^ res);
      
            //        BGE   $0B0B                   ; 0AF0: 2C 19         
      if ((SINT8)(N^V) >= 0) {
      PC = 0x0b0b;
      JUMP;
      }
      
            //        LDA   #$05                    ; 0AF2: 86 05         
      A = (SINT8)0x05;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$E8                    ; 0AF4: 97 E8         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0xe8] = A;
      
            //        LDD   $0E,U                   ; 0AF6: EC 4E         
      A = memory[(UINT16)(U + 0x000e)];
      B = memory[(UINT16)(((UINT16)(U + 0x000e))+1)];
      Z = A|B;
      N = A;
      V = 0;
      
            //        BSR   $0B52                   ; 0AF8: 8D 58         
      memory[--S] = 0x0afa & 0xff; memory[--S] = 0x0afa >> 8;
      PC = 0x0b52;
      JUMP;
      
      L0AFA://        BVC   $0B0B                   ; 0AFA: 28 0F         
      if ((SINT8)V >= 0) {
      PC = 0x0b0b;
      JUMP;
      }
      
            //        LDB   $01,U                   ; 0AFC: E6 41         
      B = memory[(UINT16)(U + 0x0001)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   B,Y                     ; 0AFE: A6 A5         
      A = memory[(UINT16)(Y + (SINT8)B)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   <$DA                    ; 0B00: D6 DA         
      B = memory_DP[0xda];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        ADDA  B,Y                     ; 0B02: AB A5         
      A = (UINT8)(A + memory[(UINT16)(Y + (SINT8)B)]);
      res = A + memory[(UINT16)(Y + (SINT8)B)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ memory[(UINT16)(Y + (SINT8)B)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        DAA                           ; 0B04: 19            
      res = A;
      msn = res & 0xf0;
      lsn = res & 0x0f;
      res = res | (((lsn > 0x09) || (H & 0x10)) ? 0x06 : 0);
      res = res | (((msn > 0x80) && (lsn > 0x09)) ? 0x60 : 0);
      res = res | (((msn > 0x90) || (C != 0)) ? 0x60 : 0);
      C = C | (res & 0x100);
      res = (UINT8)res;
      A = res;
  //  N = res;
  //  Z = res;
  //  V = 0;
      
            //        STA   B,Y                     ; 0B05: A7 A5         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(Y + (SINT8)B)] = A;
      
            //        INC   $01,U                   ; 0B07: 6C 41         
      res = (UINT8)((memory[(UINT16)(U + 0x0001)]) + 1);
      Z = res;
      N = res;
      V = res & ~(memory[(UINT16)(U + 0x0001)]);
      memory[(UINT16)(U + 0x0001)] = res;
      
            //        BRA   $0B1B                   ; 0B09: 20 10         
      PC = 0x0b1b;
      JUMP;
      
      
      L0B0B://        LEAU  $40,U                   ; 0B0B: 33 C8 40      
      U = (U + (SINT8)0x40);
      
            //        LDB   <$CB                    ; 0B0E: D6 CB         
      B = memory_DP[0xcb];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        DECB                          ; 0B10: 5A            
      res = (UINT8)(B - 1);
      N = res;
      Z = res;
      V = B & ~res;
      B = res;
      
            //        BNE   $0ADF                   ; 0B11: 26 CC         
      if (Z) {
      PC = 0x0adf;
      JUMP;
      }
      
            //        JSR   [$C8CC]                 ; 0B13: AD 9F C8 CC   
      memory[--S] = 0x0b17 & 0xff; memory[--S] = 0x0b17 >> 8;
      PC = ((memory[0xc8cc]<<8)|memory[(UINT16)((0xc8cc)+1)]);
      JUMP;
      
      L0B17://        LBVC  $0A92                   ; 0B17: 10 28 FF 77   
      if ((SINT8)V >= 0) {
      PC = 0x0a92;
      JUMP;
      }
      
      L0B1B://        LDA   #$08                    ; 0B1B: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   ,X                      ; 0B1D: A7 84         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[X] = A;
      
            //        LDD   #$090A                  ; 0B1F: CC 09 0A      
      A = (UINT8)((0x090a) >> 8);
      B = (UINT8)((0x090a) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $03,X                   ; 0B22: ED 03         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(X + 0x0003)] = A;
      memory[(UINT16)(X + 0x0003) + 1] = B;
      
            //        LDD   #$CB00                  ; 0B24: CC CB 00      
      A = (UINT8)((0xcb00) >> 8);
      B = (UINT8)((0xcb00) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        STD   $05,X                   ; 0B27: ED 05         
      Z = A | B;
      N = A;
      V = 0;
      memory[(UINT16)(X + 0x0005)] = A;
      memory[(UINT16)(X + 0x0005) + 1] = B;
      
            //        JMP   $0A92                   ; 0B29: 7E 0A 92      
      PC = 0x0a92;
      JUMP;
      
      
      L0B52://        SUBA  $01,X                   ; 0B52: A0 01         
      A = (UINT8)(A - memory[(UINT16)(X + 0x0001)]);
      res = A - memory[(UINT16)(X + 0x0001)];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = ((A) ^ (memory[(UINT16)(X + 0x0001)])) & ((A) ^ res);
      
            //        BVS   $0B6B                   ; 0B54: 29 15         
      if ((SINT8)V <  0) {
      PC = 0x0b6b;
      JUMP;
      }
      
            //        BPL   $0B59                   ; 0B56: 2A 01         
      if ((SINT8)N >= 0) {
      PC = 0x0b59;
      JUMP;
      }
      
            //        NEGA                          ; 0B58: 40            
  //  V = (UINT8)(-A) & (A);
      A = (UINT8)(-A);
  //  Z = A;
  //  N = A;
  //  C = A;
      
      L0B59://        SUBB  $02,X                   ; 0B59: E0 02         
      B = (UINT8)(B - memory[(UINT16)(X + 0x0002)]);
      res = B - memory[(UINT16)(X + 0x0002)];
  //  C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
      N = res;
      V = ((B) ^ (memory[(UINT16)(X + 0x0002)])) & ((B) ^ res);
      
            //        BVS   $0B6B                   ; 0B5B: 29 0E         
      if ((SINT8)V <  0) {
      PC = 0x0b6b;
      JUMP;
      }
      
            //        BPL   $0B60                   ; 0B5D: 2A 01         
      if ((SINT8)N >= 0) {
      PC = 0x0b60;
      JUMP;
      }
      
            //        NEGB                          ; 0B5F: 50            
  //  V = (UINT8)(-B) & (B);
      B = (UINT8)(-B);
  //  Z = B;
  //  N = B;
  //  C = B;
      
      L0B60://        CMPA  <$E8                    ; 0B60: 91 E8         
      res = A - memory_DP[0xe8];
  //  C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (A ^ memory_DP[0xe8]) & (A ^ res);
      
            //        BGT   $0B6B                   ; 0B62: 2E 07         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0b6b;
      JUMP;
      }
      
            //        CMPB  <$E8                    ; 0B64: D1 E8         
      res = B - memory_DP[0xe8];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      V = (B ^ memory_DP[0xe8]) & (B ^ res);
      
            //        BGT   $0B6B                   ; 0B66: 2E 03         
      if (((SINT8)(N^V) >= 0) && Z) {
      PC = 0x0b6b;
      JUMP;
      }
      
            //        ORCC  #$02                    ; 0B68: 1A 02         
      V = 1;
      
            //        RTS                           ; 0B6A: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0B6B://        ANDCC #$FD                    ; 0B6B: 1C FD         
      V = 0;
      
            //        RTS                           ; 0B6D: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0BD0://        JMP   Explosion_Snd           ; 0BD0: 7E F9 2E      
      PC = 0xf92e;
      JUMP;
      
      
      L0BD3://        LDU   #$0C5E                  ; 0BD3: CE 0C 5E      
      U = 0x0c5e;
  //  Z = U;
  //  N = (U) >> 8;
  //  V = 0;
      
            //        LDA   <$EF                    ; 0BD6: 96 EF         
      A = memory_DP[0xef];
      N = A;
      Z = A;
  //  V = 0;
      
            //        BEQ   $0BE5                   ; 0BD8: 27 0B         
      if (!Z) {
      PC = 0x0be5;
      JUMP;
      }
      
            //        BMI   $0BD0                   ; 0BDA: 2B F4         
      if ((SINT8)N <  0) {
      PC = 0x0bd0;
      JUMP;
      }
      
            //        DEC   <$EF                    ; 0BDC: 0A EF         
      res = (UINT8)(memory_DP[0xef] - 1);
      N = res;
      Z = res;
      V = memory_DP[0xef] & ~res;
      memory_DP[0xef] = res;
      
            //        LEAU  $04,U                   ; 0BDE: 33 44         
      U = (U + 0x0004);
      
            //        JSR   Explosion_Snd           ; 0BE0: BD F9 2E      
      memory[--S] = 0x0be3 & 0xff; memory[--S] = 0x0be3 >> 8;
      PC = 0xf92e;
      JUMP;
      
      L0BE3://        BRA   $0C33                   ; 0BE3: 20 4E         
      PC = 0x0c33;
      JUMP;
      
      
      L0BE5://        LDA   #$0F                    ; 0BE5: 86 0F         
      A = (SINT8)0x0f;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$44                    ; 0BE7: 97 44         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x44] = A;
      
            //        STA   <$43                    ; 0BE9: 97 43         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x43] = A;
      
            //        STA   <$42                    ; 0BEB: 97 42         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x42] = A;
      
            //        LDB   <$45                    ; 0BED: D6 45         
      B = memory_DP[0x45];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   <$67                    ; 0BEF: 96 67         
      A = memory_DP[0x67];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        ANDA  #$03                    ; 0BF1: 84 03         
      A = A & (SINT8)0x03;
      Z = A;
  //  N = A;
  //  V = 0;
      
            //        BEQ   $0C2F                   ; 0BF3: 27 3A         
      if (!Z) {
      PC = 0x0c2f;
      JUMP;
      }
      
            //        ANDB  #$F9                    ; 0BF5: C4 F9         
      B = B & (SINT8)0xf9;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        ORB   #$30                    ; 0BF7: CA 30         
      B = B | (SINT8)0x30;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$45                    ; 0BF9: D7 45         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x45] = B;
      
            //        ADDA  <$76                    ; 0BFB: 9B 76         
      A = (UINT8)(A + memory_DP[0x76]);
  //  res = A + memory_DP[0x76];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory_DP[0x76] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        STA   <$76                    ; 0BFD: 97 76         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x76] = A;
      
            //        BITA  #$08                    ; 0BFF: 85 08         
      res = A & (SINT8)0x08;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BNE   $0C07                   ; 0C01: 26 04         
      if (Z) {
      PC = 0x0c07;
      JUMP;
      }
      
            //        ORB   #$04                    ; 0C03: CA 04         
      B = B | (SINT8)0x04;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$45                    ; 0C05: D7 45         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x45] = B;
      
      L0C07://        BITA  #$10                    ; 0C07: 85 10         
      res = A & (SINT8)0x10;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BNE   $0C0D                   ; 0C09: 26 02         
      if (Z) {
      PC = 0x0c0d;
      JUMP;
      }
      
            //        EORA  #$07                    ; 0C0B: 88 07         
      A = A ^ (SINT8)0x07;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
      L0C0D://        ANDA  #$07                    ; 0C0D: 84 07         
      A = A & (SINT8)0x07;
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        ADDA  #$10                    ; 0C0F: 8B 10         
      A = (UINT8)(A + (SINT8)0x10);
      res = A + (SINT8)0x10;
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ (SINT8)0x10 ^ res ^ C;
      H = res;
  //  V = res;
      
            //        STA   <$48                    ; 0C11: 97 48         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x48] = A;
      
            //        CLR   <$47                    ; 0C13: 0F 47         
      memory_DP[0x47] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        LDA   #$08                    ; 0C15: 86 08         
      A = (SINT8)0x08;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$42                    ; 0C17: 97 42         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory_DP[0x42] = A;
      
            //        LDA   <$67                    ; 0C19: 96 67         
      A = memory_DP[0x67];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        BITA  #$01                    ; 0C1B: 85 01         
      res = A & (SINT8)0x01;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BEQ   $0C24                   ; 0C1D: 27 05         
      if (!Z) {
      PC = 0x0c24;
      JUMP;
      }
      
            //        LDD   #$0FFF                  ; 0C1F: CC 0F FF      
      A = (UINT8)((0x0fff) >> 8);
      B = (UINT8)((0x0fff) & 0xff);
      Z = A|B;
      N = A;
      V = 0;
      
            //        BRA   $0C27                   ; 0C22: 20 03         
      PC = 0x0c27;
      JUMP;
      
      
      L0C24://        LDD   #$0BFF                  ; 0C24: CC 0B FF      
      A = (UINT8)((0x0bff) >> 8);
      B = (UINT8)((0x0bff) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
      L0C27://        STD   <$49                    ; 0C27: DD 49         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x49] = A;
      memory_DP[0x49 + 1] = B;
      
            //        LDA   #$0E                    ; 0C29: 86 0E         
      A = (SINT8)0x0e;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STD   <$43                    ; 0C2B: DD 43         
      Z = A | B;
      N = A;
      V = 0;
      memory_DP[0x43] = A;
      memory_DP[0x43 + 1] = B;
      
            //        BRA   $0C33                   ; 0C2D: 20 04         
      PC = 0x0c33;
      JUMP;
      
      
      L0C2F://        ORB   #$36                    ; 0C2F: CA 36         
      B = B | (SINT8)0x36;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$45                    ; 0C31: D7 45         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x45] = B;
      
      L0C33://        LDB   <$45                    ; 0C33: D6 45         
      B = memory_DP[0x45];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        LDA   <$67                    ; 0C35: 96 67         
      A = memory_DP[0x67];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        BITA  #$08                    ; 0C37: 85 08         
      res = A & (SINT8)0x08;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BEQ   $0C59                   ; 0C39: 27 1E         
      if (!Z) {
      PC = 0x0c59;
      JUMP;
      }
      
            //        INC   <$6A                    ; 0C3B: 0C 6A         
      res = (UINT8)((memory_DP[0x6a]) + 1);
  //  Z = res;
  //  N = res;
  //  V = res & ~(memory_DP[0x6a]);
      memory_DP[0x6a] = res;
      
            //        LDA   <$6A                    ; 0C3D: 96 6A         
      A = memory_DP[0x6a];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        BITA  #$02                    ; 0C3F: 85 02         
      res = A & (SINT8)0x02;
      Z = res;
  //  N = res;
  //  V = 0;
      
            //        BEQ   $0C59                   ; 0C41: 27 16         
      if (!Z) {
      PC = 0x0c59;
      JUMP;
      }
      
            //        ANDB  #$F7                    ; 0C43: C4 F7         
      B = B & (SINT8)0xf7;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$45                    ; 0C45: D7 45         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x45] = B;
      
            //        RORA                          ; 0C47: 46            
      res = A;
      res = res | (C != 0) ? 0x100 : 0;
      C = res & 1;
      res = res >> 1;
  //  Z = res;
  //  N = res;
      A = res;
      
            //        LDB   #$20                    ; 0C48: C6 20         
      B = (SINT8)0x20;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        BCS   $0C4D                   ; 0C4A: 25 01         
      if (C) {
      PC = 0x0c4d;
      JUMP;
      }
      
            //        LSRB                          ; 0C4C: 54            
  //  C = (B) & 1;
      B = (B) >> 1;
  //  N = 0;
  //  Z = B;
      
      L0C4D://        CLRA                          ; 0C4D: 4F            
      A = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        STD   <$4B                    ; 0C4E: DD 4B         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory_DP[0x4b] = A;
      memory_DP[0x4b + 1] = B;
      
            //        LDB   #$03                    ; 0C50: C6 03         
      B = (SINT8)0x03;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   <$46                    ; 0C52: D7 46         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory_DP[0x46] = B;
      
            //        LDA   #$0D                    ; 0C54: 86 0D         
      A = (SINT8)0x0d;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   <$44                    ; 0C56: 97 44         
      Z = A;
      N = A;
      V = 0;
      memory_DP[0x44] = A;
      
            //        RTS                           ; 0C58: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0C59://        ORB   #$09                    ; 0C59: CA 09         
      B = B | (SINT8)0x09;
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        STB   <$45                    ; 0C5B: D7 45         
      Z = B;
      N = B;
      V = 0;
      memory_DP[0x45] = B;
      
            //        RTS                           ; 0C5D: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0C66://        LDD   ,X                      ; 0C66: EC 84         
      A = memory[X];
      B = memory[(UINT16)((X)+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ASRA                          ; 0C68: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        ASRB                          ; 0C69: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        STD   $FFFE,S                 ; 0C6A: ED 7E         
  //  Z = A | B;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0xfffe)] = A;
      memory[(UINT16)(S + 0xfffe) + 1] = B;
      
            //        LDD   $02,X                   ; 0C6C: EC 02         
      A = memory[(UINT16)(X + 0x0002)];
      B = memory[(UINT16)(((UINT16)(X + 0x0002))+1)];
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
            //        ASRA                          ; 0C6E: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        ASRB                          ; 0C6F: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        ADDA  $FFFE,S                 ; 0C70: AB 7E         
      A = (UINT8)(A + memory[(UINT16)(S + 0xfffe)]);
  //  res = A + memory[(UINT16)(S + 0xfffe)];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ memory[(UINT16)(S + 0xfffe)] ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        ADDB  $FFFF,S                 ; 0C72: EB 7F         
      B = (UINT8)(B + memory[(UINT16)(S + 0xffff)]);
      res = B + memory[(UINT16)(S + 0xffff)];
      C = res & 0x100;
      res = (UINT8)res;
      Z = res;
      N = res;
      res = B ^ memory[(UINT16)(S + 0xffff)] ^ res ^ C;
      H = res;
      V = res;
      
            //        BRA   $0C82                   ; 0C74: 20 0C         
      PC = 0x0c82;
      JUMP;
      
      
      L0C76://        PSHS  B,A                     ; 0C76: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        LDA   ,U                      ; 0C78: A6 C4         
      A = memory[U];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        LDB   $02,U                   ; 0C7A: E6 42         
      B = memory[(UINT16)(U + 0x0002)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        TFR   D,Y                     ; 0C7C: 1F 02         
      Y = ((A << 8) | B);
      
            //        PULS  A,B                     ; 0C7E: 35 06         
      A = memory[S++];
      B = memory[S++];
      
      L0C80://        ASRA                          ; 0C80: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        ASRB                          ; 0C81: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
      L0C82://        PSHS  B,A                     ; 0C82: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        TFR   Y,D                     ; 0C84: 1F 20         
      A = (UINT8)((Y) >> 8);
      B = (UINT8)((Y) & 0xff);
      
            //        ASRA                          ; 0C86: 47            
  //  C = A & 1;
      A = (UINT8)(A >> 1);
  //  Z = A;
  //  N = A;
      
            //        ASRB                          ; 0C87: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        SUBA  ,S+                     ; 0C88: A0 E0         
      A = (UINT8)(A - memory[S++]);
  //  res = A - memory[S];
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((A) ^ (memory[S])) & ((A) ^ res);
      
            //        SUBB  ,S+                     ; 0C8A: E0 E0         
      B = (UINT8)(B - memory[S++]);
      res = B - memory[S];
      C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  V = ((B) ^ (memory[S])) & ((B) ^ res);
      
            //        PSHS  B,A                     ; 0C8C: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        JSR   Rise_Run_Angle          ; 0C8E: BD F5 93      
      memory[--S] = 0x0c91 & 0xff; memory[--S] = 0x0c91 >> 8;
      PC = 0xf593;
      JUMP;
      
      L0C91://        PULS  A,B                     ; 0C91: 35 06         
      A = memory[S++];
      B = memory[S++];
      
            //        JSR   Abs_a_b                 ; 0C93: BD F5 84      
      memory[--S] = 0x0c96 & 0xff; memory[--S] = 0x0c96 >> 8;
      PC = 0xf584;
      JUMP;
      
      L0C96://        PSHS  A                       ; 0C96: 34 02         
      memory[--S] = A;
      
            //        ORB   ,S+                     ; 0C98: EA E0         
      B = B | memory[S++];
  //  Z = B;
  //  N = B;
  //  V = 0;
      
            //        LDA   <$36                    ; 0C9A: 96 36         
      A = memory_DP[0x36];
      N = A;
      Z = A;
      V = 0;
      
            //        RTS                           ; 0C9C: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0CAC://        LEAY  ,X                      ; 0CAC: 31 84         
      Y = X;
  //  Z = Y;
      
            //        LDA   #$04                    ; 0CAE: 86 04         
      A = (SINT8)0x04;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        PSHS  B,A                     ; 0CB0: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        LDB   #$04                    ; 0CB2: C6 04         
      B = (SINT8)0x04;
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        PSHS  B,A                     ; 0CB4: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
      L0CB6://        LDA   $01,S                   ; 0CB6: A6 61         
      A = memory[(UINT16)(S + 0x0001)];
  //  N = A;
  //  Z = A;
  //  V = 0;
      
      L0CB8://        ADDA  #$10                    ; 0CB8: 8B 10         
      A = (UINT8)(A + (SINT8)0x10);
  //  res = A + (SINT8)0x10;
  //  C = res & 0x100;
  //  res = (UINT8)res;
  //  Z = res;
  //  N = res;
  //  res = A ^ (SINT8)0x10 ^ res ^ C;
  //  H = res;
  //  V = res;
      
            //        STA   $01,S                   ; 0CBA: A7 61         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[(UINT16)(S + 0x0001)] = A;
      
            //        LDB   $03,S                   ; 0CBC: E6 63         
      B = memory[(UINT16)(S + 0x0003)];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        JSR   Rot_VL_ab               ; 0CBE: BD F6 10      
      memory[--S] = 0x0cc1 & 0xff; memory[--S] = 0x0cc1 >> 8;
      PC = 0xf610;
      JUMP;
      DP = 0xc8 << 8; memory_DP = &memory[DP]; // Unfortunately this should be inserted after the label below.
      
      L0CC1://        LEAX  ,Y                      ; 0CC1: 30 A4         
      X = Y;
  //  Z = X;
      
            //        DEC   ,S                      ; 0CC3: 6A E4         
      res = (UINT8)(memory[S] - 1);
  //  N = res;
      Z = res;
  //  V = memory[S] & ~res;
      memory[S] = res;
      
            //        BNE   $0CB6                   ; 0CC5: 26 EF         
      if (Z) {
      PC = 0x0cb6;
      JUMP;
      }
      
            //        LDA   #$04                    ; 0CC7: 86 04         
      A = (SINT8)0x04;
  //  N = A;
  //  Z = A;
  //  V = 0;
      
            //        STA   ,S                      ; 0CC9: A7 E4         
  //  Z = A;
  //  N = A;
  //  V = 0;
      memory[S] = A;
      
            //        ADDA  $01,S                   ; 0CCB: AB 61         
      A = (UINT8)(A + memory[(UINT16)(S + 0x0001)]);
      res = A + memory[(UINT16)(S + 0x0001)];
      C = res & 0x100;
      res = (UINT8)res;
  //  Z = res;
  //  N = res;
      res = A ^ memory[(UINT16)(S + 0x0001)] ^ res ^ C;
      H = res;
  //  V = res;
      
            //        DEC   $02,S                   ; 0CCD: 6A 62         
      res = (UINT8)(memory[(UINT16)(S + 0x0002)] - 1);
      N = res;
      Z = res;
      V = memory[(UINT16)(S + 0x0002)] & ~res;
      memory[(UINT16)(S + 0x0002)] = res;
      
            //        BNE   $0CB8                   ; 0CCF: 26 E7         
      if (Z) {
      PC = 0x0cb8;
      JUMP;
      }
      
            //        LEAS  $04,S                   ; 0CD1: 32 64         
      S = (S + 0x0004);
      
            //        RTS                           ; 0CD3: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0CD4://        LDX   #$C900                  ; 0CD4: 8E C9 00      
      X = 0xc900;
  //  Z = X;
  //  N = (X) >> 8;
  //  V = 0;
      
            //        LDD   #$0340                  ; 0CD7: CC 03 40      
      A = (UINT8)((0x0340) >> 8);
      B = (UINT8)((0x0340) & 0xff);
  //  Z = A|B;
  //  N = A;
  //  V = 0;
      
      L0CDA://        CLR   ,X                      ; 0CDA: 6F 84         
      memory[X] = 0;
  //  V = 0;
  //  Z = 0;
  //  N = 0;
      C = 0;
      
            //        ABX                           ; 0CDC: 3A            
      X = X + B;
      
            //        DECA                          ; 0CDD: 4A            
      res = (UINT8)(A - 1);
      N = res;
      Z = res;
      V = A & ~res;
      A = res;
      
            //        BNE   $0CDA                   ; 0CDE: 26 FA         
      if (Z) {
      PC = 0x0cda;
      JUMP;
      }
      
            //        RTS                           ; 0CE0: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0CE1://        PSHS  B,A                     ; 0CE1: 34 06         
      memory[--S] = B;
      memory[--S] = A;
      
            //        JSR   Random                  ; 0CE3: BD F5 17      
      memory[--S] = 0x0ce6 & 0xff; memory[--S] = 0x0ce6 >> 8;
      PC = 0xf517;
      JUMP;
      
      L0CE6://        ANDA  ,S+                     ; 0CE6: A4 E0         
      A = A & memory[S++];
  //  Z = A;
  //  N = A;
  //  V = 0;
      
            //        LEAU  A,U                     ; 0CE8: 33 C6         
      U = (U + (SINT8)A);
      
            //        PULS  A                       ; 0CEA: 35 02         
      A = memory[S++];
      
      L0CEC://        LDB   ,U+                     ; 0CEC: E6 C0         
      B = memory[U++];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        ASRB                          ; 0CEE: 57            
  //  C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        ASRB                          ; 0CEF: 57            
      C = B & 1;
      B = (UINT8)(B >> 1);
  //  Z = B;
  //  N = B;
      
            //        STB   ,X+                     ; 0CF0: E7 80         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[X++] = B;
      
            //        DECA                          ; 0CF2: 4A            
      res = (UINT8)(A - 1);
      N = res;
      Z = res;
      V = A & ~res;
      A = res;
      
            //        BNE   $0CEC                   ; 0CF3: 26 F7         
      if (Z) {
      PC = 0x0cec;
      JUMP;
      }
      
            //        RTS                           ; 0CF5: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      
      L0CF6://        LDB   ,U+                     ; 0CF6: E6 C0         
      B = memory[U++];
  //  N = B;
  //  Z = B;
  //  V = 0;
      
            //        STB   ,X+                     ; 0CF8: E7 80         
  //  Z = B;
  //  N = B;
  //  V = 0;
      memory[X++] = B;
      
            //        DECA                          ; 0CFA: 4A            
      res = (UINT8)(A - 1);
      N = res;
      Z = res;
      V = A & ~res;
      A = res;
      
            //        BNE   $0CF6                   ; 0CFB: 26 F9         
      if (Z) {
      PC = 0x0cf6;
      JUMP;
      }
      
            //        RTS                           ; 0CFD: 39            
      PC = memory[S++]<<8;
      PC |= memory[S++];
      JUMP;
      
      }