void gtExec(void) {
#include "dispatch-exec.h"

  fprintf(stderr, "gtExec2()\n");
  goto *lab[register_PC];

      return;

L0000:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opNOP_A_B (57) */

      return;

L0001:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0002:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0003:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0f01;

      return;

L0005:

      /* opLDJimm_A_A (48) */
      register_J = 0x0008;

      return;

L0007:

      /* opLDPimm_A_A (80) */

      return;

L0008:

      /* Invariants: register_P = 0x0 */;
      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = register_A; /* store acc to RAM */

      return;

L0009:

      /* opLDIdir_A_A (c0) */
      register_I = ram[0x00]&0xff; /* set new register_I (8 bits) */

      return;

L000a:

      /* opNOP_A_B (57) */

      return;

L000b:

      /* opSTAirg_B_BB (e6) */
      ram[register_I] = register_B; /* store acc */

      return;

L000c:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L000d:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0008; return;};

      return;

L000e:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = register_A; /* store acc to RAM */

      return;

L000f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0010:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0011:

      /* opOUTbi_A_A (95) */
      /* opOUTsnd_A (95) */
      reset_coin_counter(1);

      return;

L0012:

      /* opLDJimm_A_A (44) */
      register_J = 0x0904;

      return;

L0014:

      /* opJMP_A_A (58) */
      {register_PC = 0x0904; return;};

      return;

L0026:

      /* Invariants: register_P = 0x8 register_I = 0x82 register_A = 0x01 */;
      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L0027:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1c;
      register_A = flag_C = acc_a0 = 0x091c;

      return;

L0029:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x82]))) & 0xFFF;
      set_watchdog();

      return;

L002a:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L002b:

      /* opNOP_A_A (5f) */

      return;

L002c:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L002d:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L002e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd3;
      register_A = flag_C = acc_a0 = 0x02d3;

      return;

L0030:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L0031:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x83] = 0x2d3; /* store acc to RAM */

      return;

L0032:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0033:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x22] = 0x2d3; /* store acc to RAM */

      return;

L0034:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x23] = 0x2d3; /* store acc to RAM */

      return;

L0035:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0036:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x2c] = 0x000; /* store acc to RAM */

      return;

L0037:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x2d] = 0x000; /* store acc to RAM */

      return;

L0038:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0039:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L003a:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x62] = 0x000; /* store acc to RAM */

      return;

L003b:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x60] = 0x000; /* store acc to RAM */

      return;

L003c:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x6a] = 0x000; /* store acc to RAM */

      return;

L003d:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x6c] = 0x000; /* store acc to RAM */

      return;

L003e:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x69] = 0x000; /* store acc to RAM */

      return;

L003f:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0040:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x61] = 0x001; /* store acc to RAM */

      return;

L0041:

      /* opINP_A_AA (17) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x7);
#else
      register_A = cmp_new = get_io_startbutton();
#endif

      return;

L0042:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0043:

      /* opLDJimm_A_A (48) */
      register_J = 0x0058;

      return;

L0045:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0058; return;};

      return;

L0046:

      /* opLDJimm_A_A (40) */
      register_J = 0x0000;

      return;

L0048:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0049:

      /* opJPP8_A_B (50) */
      register_PC = 0x1000; /* Jump to other rom bank */
      return;

      return;

L004a:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x001f))) & 0xFFF; /* add values */

      return;

L004c:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x3]) ^ 0xFFF) + 1 + register_A);

      return;

L004d:

      /* opLDJimm_A_A (46) */
      register_J = 0x0056;

      return;

L004f:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0056; return;};

      return;

L0050:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0051:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0052:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0053:

      /* opLDJimm_A_A (48) */
      register_J = 0x0058;

      return;

L0055:

      /* opJMP_A_A (58) */
      {register_PC = 0x0058; return;};

      return;

L0056:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0057:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0058:

      /* opNOP_A_A (5f) */

      return;

L0059:

      /* opNOP_A_A (5f) */

      return;

L005a:

      /* opNOP_A_B (57) */

      return;

L005b:

      /* opLDAimm_B_AA (03) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0300;

      return;

L005c:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L005d:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L005e:

      /* opLDJimm_A_A (40) */
      register_J = 0x0060;

      return;

L0060:

      /* opJDR_A_A (5a) */

      return;

L0061:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0062:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0063:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x12) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0065:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0066:

      /* opLDJimm_A_A (45) */
      register_J = 0x0065;

      return;

L0068:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0065; return;};

      return;

L0069:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L006a:

      /* opADDimm_A_AA (2b) */
      cmp_new = 0xb; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000b;
      

      return;

L006b:

      /* opNOP_A_B (57) */

      return;

L006c:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L006d:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L006e:

      /* opWAI_A_A (e5) */
      /* wait for a tick on the watchdog */
#ifndef DUALCPU
      CinemaClearScreen();
      bNewFrame = 1;
      bailOut = TRUE;
#endif
      register_PC = 0x006f;
      return; /* NOT REALLY A JUMP - ACTUALLY FOR GETTING BACK TO POLLING LOOP - NEEDS WORK */

      return;

L006f:

      /* Invariants: register_P = 0xdeadbeef register_A = 0x2c0 */;
      /* opWAI_A_A (e5) */
      /* wait for a tick on the watchdog */
#ifndef DUALCPU
      CinemaClearScreen();
      bNewFrame = 1;
      bailOut = TRUE;
#endif
      register_PC = 0x0070;
      return; /* NOT REALLY A JUMP - ACTUALLY FOR GETTING BACK TO POLLING LOOP - NEEDS WORK */

      return;

L0070:

      /* Invariants: register_P = 0xdeadbeef register_A = 0x2c0 */;
      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x02c1;
      

      return;

L0071:

      /* opAWDirg_A_AA (f7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0072:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0073:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0074:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L0075:

      /* opLDJimm_A_A (4e) */
      register_J = 0x00be;

      return;

L0077:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x00be; return;};

      return;

L0078:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0079:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L007b:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L007c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L007d:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L007e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L007f:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0080:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0081:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0082:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0083:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0084:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0085:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0086:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0087:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x001a;

      return;

L0089:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L008a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L008b:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L008c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L008d:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L008e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L008f:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0090:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0091:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0092:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0093:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0094:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0095:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x18;
      register_A = flag_C = acc_a0 = 0x0018;

      return;

L0097:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L0098:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0099:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L009a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L009b:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L009c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L009d:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L009e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L009f:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00a0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00a1:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00a2:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00a3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x16;
      register_A = flag_C = acc_a0 = 0x0016;

      return;

L00a5:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L00a6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00a7:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L00a8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00a9:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L00aa:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00ab:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L00ac:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00ad:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00ae:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00af:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00b0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00b1:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x14;
      register_A = flag_C = acc_a0 = 0x0014;

      return;

L00b3:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L00b4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00b5:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L00b6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00b7:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L00b8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00b9:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L00ba:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00bb:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00bc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L00bd:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L00be:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00bf:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L00c1:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L00c2:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L00c3:

      /* opLDJimm_A_A (4f) */
      register_J = 0x00df;

      return;

L00c5:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x00df; return;};

      return;

L00c6:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L00c7:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x15;
      register_A = flag_C = acc_a0 = 0x0115;

      return;

L00c9:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x33]) ^ 0xFFF) + 1 + register_A);

      return;

L00ca:

      /* opLDJimm_A_A (42) */
      register_J = 0x00e2;

      return;

L00cc:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x00e2; return;};

      return;

L00cd:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00ce:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x30]) ^ 0xFFF) + 1 + register_A);

      return;

L00cf:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x00e2; return;};

      return;

L00d0:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L00d1:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x69]; /* set I register */
      

      return;

L00d2:

      /* opLDJimm_A_A (4f) */
      register_J = 0x00df;

      return;

L00d4:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x00df; return;};

      return;

L00d5:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L00d6:

      /* opSTAirg_A_A (e6) */
      ram[0x69] = register_A; /* store acc */

      return;

L00d7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00d8:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L00d9:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L00da:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x72] = 0x00f; /* store acc to RAM */

      return;

L00db:

      /* opLDPimm_A_A (87) */

      return;

L00dc:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x73]; /* set I register */
      

      return;

L00dd:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L00de:

      /* opSTAirg_A_A (e6) */
      ram[0x73] = register_A; /* store acc */

      return;

L00df:

      /* Invariants: register_P = 0xdeadbeef register_I = 0x37 register_A = 0x17 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00e0:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L00e1:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x30] = 0x000; /* store acc to RAM */

      return;

L00e2:

      /* Invariants: register_P = 0x3 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00e3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L00e5:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L00e6:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L00e7:

      /* opLDJimm_A_A (43) */
      register_J = 0x0103;

      return;

L00e9:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0103; return;};

      return;

L00ea:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L00eb:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x15;
      register_A = flag_C = acc_a0 = 0x0115;

      return;

L00ed:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x43]) ^ 0xFFF) + 1 + register_A);

      return;

L00ee:

      /* opLDJimm_A_A (46) */
      register_J = 0x0106;

      return;

L00f0:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0106; return;};

      return;

L00f1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00f2:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x40]) ^ 0xFFF) + 1 + register_A);

      return;

L00f3:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0106; return;};

      return;

L00f4:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L00f5:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x69]; /* set I register */
      

      return;

L00f6:

      /* opLDJimm_A_A (43) */
      register_J = 0x0103;

      return;

L00f8:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0103; return;};

      return;

L00f9:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L00fa:

      /* opSTAirg_A_A (e6) */
      ram[0x69] = register_A; /* store acc */

      return;

L00fb:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L00fc:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L00fd:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L00fe:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x72] = 0x00f; /* store acc to RAM */

      return;

L00ff:

      /* opLDPimm_A_A (87) */

      return;

L0100:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x73]; /* set I register */
      

      return;

L0101:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0102:

      /* opSTAirg_A_A (e6) */
      ram[0x73] = register_A; /* store acc */

      return;

L0103:

      /* Invariants: register_P = 0xdeadbeef register_I = 0x47 register_A = 0x17 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0104:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L0105:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x40] = 0x000; /* store acc to RAM */

      return;

L0106:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0107:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L0109:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L010a:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L010b:

      /* opLDJimm_A_A (47) */
      register_J = 0x0127;

      return;

L010d:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0127; return;};

      return;

L010e:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L010f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x15;
      register_A = flag_C = acc_a0 = 0x0115;

      return;

L0111:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x53]) ^ 0xFFF) + 1 + register_A);

      return;

L0112:

      /* opLDJimm_A_A (4a) */
      register_J = 0x012a;

      return;

L0114:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x012a; return;};

      return;

L0115:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0116:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x50]) ^ 0xFFF) + 1 + register_A);

      return;

L0117:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x012a; return;};

      return;

L0118:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0119:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x69]; /* set I register */
      

      return;

L011a:

      /* opLDJimm_A_A (47) */
      register_J = 0x0127;

      return;

L011c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0127; return;};

      return;

L011d:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L011e:

      /* opSTAirg_A_A (e6) */
      ram[0x69] = register_A; /* store acc */

      return;

L011f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0120:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L0121:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L0122:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x72] = 0x00f; /* store acc to RAM */

      return;

L0123:

      /* opLDPimm_A_A (87) */

      return;

L0124:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x73]; /* set I register */
      

      return;

L0125:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0126:

      /* opSTAirg_A_A (e6) */
      ram[0x73] = register_A; /* store acc */

      return;

L0127:

      /* Invariants: register_P = 0xdeadbeef register_I = 0x57 register_A = 0x17 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0128:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L0129:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x50] = 0x000; /* store acc to RAM */

      return;

L012a:

      /* Invariants: register_P = 0x5 */;
      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L012b:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x73]; /* set I register */
      

      return;

L012c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L012d:

      /* opLDJimm_A_A (4e) */
      register_J = 0x013e;

      return;

L012f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x013e; return;};

      return;

L0130:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0131:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x14;
      register_A = flag_C = acc_a0 = 0x0014;

      return;

L0133:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L0134:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0135:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0136:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0137:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0138:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0139:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L013a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L013b:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L013c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L013d:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L013e:

      /* Invariants: register_P = 0x7 register_I = 0x73 register_A = 0x00 */;
      /* opLDJimm_A_A (40) */
      register_J = 0x0140;

      return;

L0140:

      /* opJDR_A_A (5a) */

      return;

L0141:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0142:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L0143:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0144:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa0;
      register_A = flag_C = acc_a0 = 0x00a0;

      return;

L0146:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L0147:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0xc1] = 0x0a0; /* store acc to RAM */

      return;

L0148:

      /* Invariants: register_P = 0xc register_I = 0xc1 */;
      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc1]; /* set I register */
      

      return;

L0149:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L014a:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0xc2] = register_A; /* store acc to RAM */

      return;

L014b:

      /* Invariants: register_P = 0xc */;
      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L014c:

      /* opADDimm_A_AA (28) */
      cmp_new = 0x8; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0408;
      

      return;

L014d:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L014e:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L014f:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0150:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0151:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0152:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0153:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0154:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0xc5] = register_A; /* store acc to RAM */

      return;

L0155:

      /* opNOP_A_B (57) */

      return;

L0156:

      /* opLDAimm_B_AA (03) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0300;

      return;

L0157:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L0158:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0159:

      /* opLDJimm_A_A (4b) */
      register_J = 0x015b;

      return;

L015b:

      /* opJDR_A_A (5a) */

      return;

L015c:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L015d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L015e:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc5]; /* set I register */
      

      return;

L015f:

      /* opLDJimm_A_A (44) */
      register_J = 0x0164;

      return;

L0161:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0164; return;};

      return;

L0162:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0163:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0164:

      /* Invariants: register_P = 0xc register_I = 0xc5 */;
      /* opSTAdir_A_A (d8) */
      ram[register_I = 0xc8] = register_A; /* store acc to RAM */

      return;

L0165:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0166:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0167:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L0168:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x70] = register_A; /* store acc to RAM */

      return;

L0169:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L016a:

      /* opADDimm_A_AA (24) */
      cmp_new = 0x4; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0004;
      

      return;

L016b:

      /* opLDPimm_A_A (87) */

      return;

L016c:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x73]) ^ 0xFFF) + 1 + register_A);

      return;

L016d:

      /* opLDJimm_A_A (4b) */
      register_J = 0x018b;

      return;

L016f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x018b; return;};

      return;

L0170:

      /* opNOP_A_B (57) */

      return;

L0171:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0172:

      /* opNOP_A_B (57) */

      return;

L0173:

      /* opSUBirg_B_AA (e8) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0174:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L0175:

      /* opNOP_A_B (57) */

      return;

L0176:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0177:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L0178:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc5]; /* set I register */
      

      return;

L0179:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L017a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L017b:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L017c:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L017d:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x74] = register_A; /* store acc to RAM */

      return;

L017e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L017f:

      /* opLDJimm_A_A (41) */
      register_J = 0x0181;

      return;

L0181:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0182:

      /* opNOP_A_B (57) */

      return;

L0183:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0184:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0181; return;};

      return;

L0185:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L0186:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0xc5]))) & 0xFFF; /* do acc operation */

      return;

L0187:

      /* opSTAirg_A_A (e6) */
      ram[0xc5] = register_A; /* store acc */

      return;

L0188:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0189:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L018a:

      /* opOUTbi_A_A (96) */
      vgColour = 0x0f;

      return;

L018b:

      /* Invariants: register_P = 0x7 register_I = 0x73 register_A = 0x04 */;
      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L018c:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc5]; /* set I register */
      

      return;

L018d:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L018e:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L018f:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0190:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L0191:

      /* opADDimm_A_AA (28) */
      cmp_new = 0x8; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0308;
      

      return;

L0192:

      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L0193:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0194:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0195:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0196:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0197:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0198:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0199:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0xc6] = register_A; /* store acc to RAM */

      return;

L019a:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L019b:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L019c:

      /* opLDJimm_A_A (41) */
      register_J = 0x01a1;

      return;

L019e:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x01a1; return;};

      return;

L019f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L01a0:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L01a1:

      /* Invariants: register_P = 0xc register_I = 0xc6 */;
      /* opSTAdir_A_A (d9) */
      ram[register_I = 0xc9] = register_A; /* store acc to RAM */

      return;

L01a2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L01a3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L01a4:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L01a5:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x70]))) & 0xFFF; /* do acc operation */

      return;

L01a6:

      /* opSTAirg_A_A (e6) */
      ram[0x70] = register_A; /* store acc */

      return;

L01a7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L01a8:

      /* opADDimm_A_AA (24) */
      cmp_new = 0x4; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0004;
      

      return;

L01a9:

      /* opLDPimm_A_A (87) */

      return;

L01aa:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x73]) ^ 0xFFF) + 1 + register_A);

      return;

L01ab:

      /* opLDJimm_A_A (46) */
      register_J = 0x01c6;

      return;

L01ad:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x01c6; return;};

      return;

L01ae:

      /* opNOP_A_B (57) */

      return;

L01af:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L01b0:

      /* opNOP_A_B (57) */

      return;

L01b1:

      /* opSUBirg_B_AA (e8) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L01b2:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L01b3:

      /* opNOP_A_B (57) */

      return;

L01b4:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L01b5:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L01b6:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc6]; /* set I register */
      

      return;

L01b7:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L01b8:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L01b9:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L01ba:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L01bb:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x74] = register_A; /* store acc to RAM */

      return;

L01bc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L01bd:

      /* opLDJimm_A_A (4f) */
      register_J = 0x01bf;

      return;

L01bf:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L01c0:

      /* opNOP_A_B (57) */

      return;

L01c1:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L01c2:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x01bf; return;};

      return;

L01c3:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L01c4:

      /* opADDdir_A_AA (66) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0xc6]))) & 0xFFF; /* do acc operation */

      return;

L01c5:

      /* opSTAirg_A_A (e6) */
      ram[0xc6] = register_A; /* store acc */

      return;

L01c6:

      /* Invariants: register_P = 0x7 register_I = 0x73 register_A = 0x04 */;
      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L01c7:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc6]; /* set I register */
      

      return;

L01c8:

      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L01c9:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L01ca:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L01cb:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L01cc:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L01cd:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L01ce:

      /* opLDJimm_A_A (4f) */
      register_J = 0x020f;

      return;

L01d0:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x020f; return;};

      return;

L01d1:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L01d2:

      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L01d3:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L01d4:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x020f; return;};

      return;

L01d5:

      /* opLDAdir_A_AA (a8) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc8]; /* set I register */
      

      return;

L01d6:

      /* opSUBimm_A_AA (34) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x4) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L01d7:

      /* opLDJimm_A_A (4f) */
      register_J = 0x01df;

      return;

L01d9:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x01df; return;};

      return;

L01da:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc9]; /* set I register */
      

      return;

L01db:

      /* opSUBimm_A_AA (35) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x5) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L01dc:

      /* opLDJimm_A_A (4f) */
      register_J = 0x020f;

      return;

L01de:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x020f; return;};

      return;

L01df:

      /* Invariants: register_P = 0xc */;
      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L01e0:

      /* opNOP_A_B (57) */

      return;

L01e1:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L01e2:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L01e3:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L01e4:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L01e5:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L01e6:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L01e7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L01e8:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x4e) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L01ea:

      /* Invariants: register_P = 0xc */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L01eb:

      /* opLDJimm_A_A (4a) */
      register_J = 0x01ea;

      return;

L01ed:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x01ea; return;};

      return;

L01ee:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L01ef:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x66;
      register_A = flag_C = acc_a0 = 0x0266;

      return;

L01f1:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L01f2:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x70]))) & 0xFFF; /* do acc operation */

      return;

L01f3:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L01f4:

      /* opNOP_A_A (5f) */

      return;

L01f5:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L01f6:

      /* opNOP_A_B (57) */

      return;

L01f7:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L01f8:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L01f9:

      /* opLDPimm_A_A (8c) */
      register_P = 0xc; /* set page register */

      return;

L01fa:

      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L01fb:

      /* opNOP_A_B (57) */

      return;

L01fc:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L01fd:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L01fe:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L01ff:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0200:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0201:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L0202:

      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc1]; /* set I register */
      

      return;

L0203:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L0204:

      /* opSTAirg_A_A (e6) */
      ram[0xc1] = register_A; /* store acc */

      return;

L0205:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0206:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xc0;
      register_A = flag_C = acc_a0 = 0x00c0;

      return;

L0208:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0209:

      /* opLDJimm_A_A (48) */
      register_J = 0x0148;

      return;

L020b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0148; return;};

      return;

L020c:

      /* opLDJimm_A_A (46) */
      register_J = 0x08b6;

      return;

L020e:

      /* opJMP_A_A (58) */
      {register_PC = 0x08b6; return;};

      return;

L020f:

      /* Invariants: register_P = 0xc */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0210:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x3f;
      register_A = flag_C = acc_a0 = 0x003f;

      return;

L0212:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0xc7]) ^ 0xFFF) + 1 + register_A);

      return;

L0213:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0214:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L0215:

      /* opSTAirg_A_A (e6) */
      ram[0xc7] = register_A; /* store acc */

      return;

L0216:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0217:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x74;
      register_A = flag_C = acc_a0 = 0x0274;

      return;

L0219:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0xc7]))) & 0xFFF; /* do acc operation */

      return;

L021a:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0xc5] = register_A; /* store acc to RAM */

      return;

L021b:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L021c:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L021d:

      /* opNOP_A_A (5f) */

      return;

L021e:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0220:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0221:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0222:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0223:

      /* opSTAdir_A_A (d6) */
      ram[register_I = (register_P << 4) + 0x6] = register_A; /* store acc to RAM */

      return;

L0224:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x05]; /* set I register */
      

      return;

L0225:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0226:

      /* opNOP_A_A (5f) */

      return;

L0227:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0229:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L022a:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L022b:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L022c:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L022d:

      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x00]; /* set I register */
      

      return;

L022e:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L022f:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0230:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0231:

      /* opNOP_A_A (5f) */

      return;

L0232:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0233:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0234:

      /* opNOP_A_A (5f) */

      return;

L0235:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0236:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L0237:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0238:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L023a:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L023b:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L023c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L023d:

      /* opLDJimm_A_A (43) */
      register_J = 0x0243;

      return;

L023f:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x0243; return;};
      

      return;

L0240:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0241:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0242:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0243:

      /* Invariants: register_P = 0xc register_I = 0xc3 */;
      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L0244:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0xc3]))) & 0xFFF;
      set_watchdog();

      return;

L0245:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0xc5]))) & 0xFFF; /* do acc operation */

      return;

L0246:

      /* opLDIdir_A_A (c1) */
      register_I = ram[0xc1]&0xff; /* set new register_I (8 bits) */

      return;

L0247:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0248:

      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0xc0]; /* set I register */
      

      return;

L0249:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L024a:

      /* opSTAirg_A_A (e6) */
      ram[0xc0] = register_A; /* store acc */

      return;

L024b:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L024c:

      /* opNOP_A_A (5f) */

      return;

L024d:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L024e:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L024f:

      /* opNOP_A_A (5f) */

      return;

L0250:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0251:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L0252:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0253:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L0255:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0256:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0257:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0258:

      /* opLDJimm_A_A (4e) */
      register_J = 0x025e;

      return;

L025a:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x025e; return;};
      

      return;

L025b:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L025c:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L025d:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L025e:

      /* Invariants: register_P = 0xc register_I = 0xc3 */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L025f:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0xc3]))) & 0xFFF;
      set_watchdog();

      return;

L0260:

      /* opADDdir_A_AA (66) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0xc6]))) & 0xFFF; /* do acc operation */

      return;

L0261:

      /* opLDIdir_A_A (c2) */
      register_I = ram[0xc2]&0xff; /* set new register_I (8 bits) */

      return;

L0262:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0263:

      /* opLDJimm_A_A (4b) */
      register_J = 0x014b;

      return;

L0265:

      /* opJMP_A_A (58) */
      {register_PC = 0x014b; return;};

      return;

L02b6:

      /* Invariants: register_P = 0x7 register_I = 0x7d register_A = 0x00 */;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L02b7:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x1f) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L02b9:

      /* opLDJimm_A_A (4c) */
      register_J = 0x02dc;

      return;

L02bb:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x02dc; return;};

      return;

L02bc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02bd:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L02be:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7d]) ^ 0xFFF) + 1 + register_A);

      return;

L02bf:

      /* opLDJimm_A_A (4d) */
      register_J = 0x08ed;

      return;

L02c1:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x08ed; return;};

      return;

L02c2:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L02c3:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7d]) ^ 0xFFF) + 1 + register_A);

      return;

L02c4:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x08ed; return;};

      return;

L02c5:

      /* opINP_A_AA (1f) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0xf);
#else
      register_A = cmp_new = get_io_bit(0xf);
#endif

      return;

L02c6:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L02c7:

      /* opLDPimm_A_A (87) */

      return;

L02c8:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x75] = register_A; /* store acc to RAM */

      return;

L02c9:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02ca:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L02cb:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L02cc:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x001e))) & 0xFFF; /* add values */

      return;

L02ce:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(register_A&1);

      return;

L02cf:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02d0:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L02d1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02d2:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L02d3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02d4:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L02d5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02d6:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L02d7:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02d8:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L02d9:

      /* opLDJimm_A_A (4b) */
      register_J = 0x08fb;

      return;

L02db:

      /* opJMP_A_A (58) */
      {register_PC = 0x08fb; return;};

      return;

L02dc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02dd:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L02de:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02df:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L02e0:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x73]) ^ 0xFFF) + 1 + register_A);

      return;

L02e1:

      /* opLDJimm_A_A (4d) */
      register_J = 0x02ed;

      return;

L02e3:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x02ed; return;};

      return;

L02e4:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L02e5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x08;
      register_A = flag_C = acc_a0 = 0x0308;

      return;

L02e7:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L02e8:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0x308; /* store acc to RAM */

      return;

L02e9:

      /* opLDJimm_A_A (40) */
      register_J = 0x0dc0;

      return;

L02eb:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L02ec:

      /* opJPP8_A_B (50) */
      register_PC = 0x1dc0; /* Jump to other rom bank */
      return;

      return;

L02ed:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02ee:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L02ef:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x62] = 0x000; /* store acc to RAM */

      return;

L02f0:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x60] = 0x000; /* store acc to RAM */

      return;

L02f1:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0005;
      

      return;

L02f2:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L02f3:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x73]) ^ 0xFFF) + 1 + register_A);

      return;

L02f4:

      /* opLDJimm_A_A (4a) */
      register_J = 0x004a;

      return;

L02f6:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x004a; return;};

      return;

L02f7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L02f8:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x15;
      register_A = flag_C = acc_a0 = 0x0015;

      return;

L02fa:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L02fb:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02fc:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L02fd:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L02fe:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L02ff:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0300:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0301:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0302:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0303:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0304:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0305:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0306:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0005;
      

      return;

L0307:

      /* opJMP_A_A (58) */
      {register_PC = 0x004a; return;};

      return;

L0308:

      /* opNOP_A_A (5f) */

      return;

L0309:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L030a:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L030b:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L030c:

      /* opLDJimm_A_A (49) */
      register_J = 0x0319;

      return;

L030e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0319; return;};

      return;

L030f:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x3d]; /* set I register */
      

      return;

L0310:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0319; return;};

      return;

L0311:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x33]))) & 0xFFF; /* do acc operation */

      return;

L0312:

      /* opSTAirg_A_A (e6) */
      ram[0x33] = register_A; /* store acc */

      return;

L0313:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0314:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x33]) ^ 0xFFF) + 1 + register_A);

      return;

L0315:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0319; return;};

      return;

L0316:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0317:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x30] = 0x000; /* store acc to RAM */

      return;

L0318:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x3d] = 0x000; /* store acc to RAM */

      return;

L0319:

      /* Invariants: register_P = 0x3 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L031a:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L031b:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L031c:

      /* opLDJimm_A_A (49) */
      register_J = 0x0329;

      return;

L031e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0329; return;};

      return;

L031f:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x4d]; /* set I register */
      

      return;

L0320:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0329; return;};

      return;

L0321:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x43]))) & 0xFFF; /* do acc operation */

      return;

L0322:

      /* opSTAirg_A_A (e6) */
      ram[0x43] = register_A; /* store acc */

      return;

L0323:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0324:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x43]) ^ 0xFFF) + 1 + register_A);

      return;

L0325:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0329; return;};

      return;

L0326:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0327:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x40] = 0x000; /* store acc to RAM */

      return;

L0328:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x4d] = 0x000; /* store acc to RAM */

      return;

L0329:

      /* Invariants: register_P = 0x4 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L032a:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L032b:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L032c:

      /* opLDJimm_A_A (49) */
      register_J = 0x0339;

      return;

L032e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0339; return;};

      return;

L032f:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x5d]; /* set I register */
      

      return;

L0330:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0339; return;};

      return;

L0331:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x53]))) & 0xFFF; /* do acc operation */

      return;

L0332:

      /* opSTAirg_A_A (e6) */
      ram[0x53] = register_A; /* store acc */

      return;

L0333:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0334:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x53]) ^ 0xFFF) + 1 + register_A);

      return;

L0335:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0339; return;};

      return;

L0336:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0337:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x50] = 0x000; /* store acc to RAM */

      return;

L0338:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x5d] = 0x000; /* store acc to RAM */

      return;

L0339:

      /* Invariants: register_P = 0x5 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L033a:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L033b:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L033c:

      /* opLDJimm_A_A (4f) */
      register_J = 0x086f;

      return;

L033e:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x086f; return;};

      return;

L033f:

      /* opINP_A_AA (16) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x6);
#else
      register_A = cmp_new = get_io_shields();
#endif

      return;

L0340:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0341:

      /* opLDJimm_A_A (4f) */
      register_J = 0x086f;

      return;

L0343:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x086f; return;};

      return;

L0344:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0345:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L0346:

      /* opCMPdir_A_AA (b1) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x81]) ^ 0xFFF) + 1 + register_A);

      return;

L0347:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x086f; return;};

      return;

L0348:

      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x80]; /* set I register */
      

      return;

L0349:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L034a:

      /* opSTAirg_A_A (e6) */
      ram[0x80] = register_A; /* store acc */

      return;

L034b:

      /* opSUBimm_A_AA (38) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x8) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L034c:

      /* opLDJimm_A_A (47) */
      register_J = 0x0377;

      return;

L034e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0377; return;};

      return;

L034f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0350:

      /* opSTAirg_A_A (e6) */
      ram[0x80] = 0x000; /* store acc */

      return;

L0351:

      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x81]; /* set I register */
      

      return;

L0352:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0353:

      /* opLDJimm_A_A (43) */
      register_J = 0x0373;

      return;

L0355:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0373; return;};

      return;

L0356:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L0358:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0359:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L035a:

      /* opLDJimm_A_A (4d) */
      register_J = 0x036d;

      return;

L035c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x036d; return;};

      return;

L035d:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L035e:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L035f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0360:

      /* opLDJimm_A_A (48) */
      register_J = 0x0368;

      return;

L0362:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0368; return;};

      return;

L0363:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0364:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0365:

      /* opLDJimm_A_A (46) */
      register_J = 0x0376;

      return;

L0367:

      /* opJMP_A_A (58) */
      {register_PC = 0x0376; return;};

      return;

L0368:

      /* Invariants: register_P = 0x8 register_I = 0x81 register_A = 0x00 */;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0369:

      /* opSUBimm_A_AA (37) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x7) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L036a:

      /* opLDJimm_A_A (46) */
      register_J = 0x0376;

      return;

L036c:

      /* opJMP_A_A (58) */
      {register_PC = 0x0376; return;};

      return;

L036d:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L036e:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x67) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0370:

      /* opLDJimm_A_A (46) */
      register_J = 0x0376;

      return;

L0372:

      /* opJMP_A_A (58) */
      {register_PC = 0x0376; return;};

      return;

L0373:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L0374:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x99;
      register_A = flag_C = acc_a0 = 0x0999;

      return;

L0376:

      /* Invariants: register_P = 0x8 register_I = 0x81 */;
      /* opSTAirg_A_A (e6) */
      ram[0x81] = register_A; /* store acc */

      return;

L0377:

      /* Invariants: register_P = 0x8 */;
      /* opNOP_A_B (57) */

      return;

L0378:

      /* opLDAimm_B_AA (03) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0300;

      return;

L0379:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L037a:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L037b:

      /* opNOP_A_B (57) */

      return;

L037c:

      /* opSTAdir_B_BB (d1) */
      ram[register_I = (register_P << 4) + 0x1] = register_B; /* set I register and store B to ram */

      return;

L037d:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L037e:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = 0x200; /* store acc to RAM */

      return;

L037f:

      /* opLDJimm_A_A (41) */
      register_J = 0x0381;

      return;

L0381:

      /* opJDR_A_A (5a) */

      return;

L0382:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0383:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0384:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x43) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0386:

      /* Invariants: register_P = 0x1 register_I = 0x10 */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0387:

      /* opLDJimm_A_A (46) */
      register_J = 0x0386;

      return;

L0389:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0386; return;};

      return;

L038a:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L038b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xcb;
      register_A = flag_C = acc_a0 = 0x03cb;

      return;

L038d:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0x3cb; /* store acc to RAM */

      return;

L038e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L038f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L0391:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x18] = 0x0ff; /* store acc to RAM */

      return;

L0392:

      /* Invariants: register_P = 0x1 */;
      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x10]; /* set I register */
      

      return;

L0393:

      /* opNOP_A_B (57) */

      return;

L0394:

      /* opLDAdir_B_AA (a1) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x01]; /* new acc value */

      return;

L0395:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0396:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L0397:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L0398:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L0399:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L039a:

      /* opNOP_A_A (5f) */

      return;

L039b:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1 + register_A);

      return;

L039c:

      /* opLDJimm_A_A (46) */
      register_J = 0x03e6;

      return;

L039e:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x03e6; return;};

      return;

L039f:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L03a0:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L03a1:

      /* opSUBdir_A_AA (70) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x0]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L03a2:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L03a3:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L03a4:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L03a5:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L03a6:

      /* opNOP_A_A (5f) */

      return;

L03a7:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L03a8:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L03a9:

      /* opSUBdir_A_AA (71) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x1]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L03aa:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_A; /* store acc to RAM */

      return;

L03ab:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x03]; /* set I register */
      

      return;

L03ac:

      /* opNOP_A_B (57) */

      return;

L03ad:

      /* opLDAdir_B_AA (a4) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* new acc value */

      return;

L03ae:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L03af:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x0]))) & 0xFFF; /* do acc operation */

      return;

L03b0:

      /* opNOP_A_B (57) */

      return;

L03b1:

      /* opADDdir_B_AA (61) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = (register_P << 4) + 0x01]))) & 0xFFF; /* do acc operation */

      return;

L03b2:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L03b3:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x03]; /* set I register */
      

      return;

L03b4:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x0]))) & 0xFFF; /* do acc operation */

      return;

L03b5:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L03b6:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* set I register */
      

      return;

L03b7:

      /* opADDdir_A_AA (61) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x1]))) & 0xFFF; /* do acc operation */

      return;

L03b8:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L03b9:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L03ba:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x83]) ^ 0xFFF) + 1 + register_A);

      return;

L03bb:

      /* opLDJimm_A_A (4d) */
      register_J = 0x03bd;

      return;

L03bd:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L03be:

      /* opNOP_A_B (57) */

      return;

L03bf:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L03c0:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L03c1:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L03c2:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x83]))) & 0xFFF;
      set_watchdog();

      return;

L03c3:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L03c4:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x83]))) & 0xFFF;
      set_watchdog();

      return;

L03c5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03c6:

      /* opSTAirg_A_A (e6) */
      ram[0x83] = register_A; /* store acc */

      return;

L03c7:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L03c8:

      /* opJDR_A_A (5a) */

      return;

L03c9:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L03ca:

      /* opLDJimm_A_A (42) */
      register_J = 0x0392;

      return;

L03cc:

      /* opJMP_A_A (58) */
      {register_PC = 0x0392; return;};

      return;

L03e6:

      /* Invariants: register_P = 0x1 register_I = 0x18 register_A = 0xff */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L03e7:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x19;
      register_A = flag_C = acc_a0 = 0x0019;

      return;

L03e9:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L03ea:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03eb:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L03ec:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03ed:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L03ee:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03ef:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L03f0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03f1:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L03f2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03f3:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L03f4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L03f5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x16;
      register_A = flag_C = acc_a0 = 0x0016;

      return;

L03f7:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L03f8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03f9:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L03fa:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03fb:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L03fc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03fd:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L03fe:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L03ff:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0400:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0401:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0402:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0403:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0404:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L0405:

      /* opLDJimm_A_A (4e) */
      register_J = 0x045e;

      return;

L0407:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x045e; return;};

      return;

L0408:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L0409:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x30]) ^ 0xFFF) + 1 + register_A);

      return;

L040a:

      /* opLDJimm_A_A (44) */
      register_J = 0x0424;

      return;

L040c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0424; return;};

      return;

L040d:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x3d]) ^ 0xFFF) + 1 + register_A);

      return;

L040e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0424; return;};

      return;

L040f:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0410:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x33]) ^ 0xFFF) + 1 + register_A);

      return;

L0411:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0424; return;};

      return;

L0412:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0413:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4d;
      register_A = flag_C = acc_a0 = 0x004d;

      return;

L0415:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x3d] = 0x04d; /* store acc to RAM */

      return;

L0416:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0417:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L0419:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L041a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L041b:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L041c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L041d:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L041e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L041f:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0420:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0421:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0422:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0423:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0424:

      /* Invariants: register_P = 0x3 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0425:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L0426:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x40]) ^ 0xFFF) + 1 + register_A);

      return;

L0427:

      /* opLDJimm_A_A (41) */
      register_J = 0x0441;

      return;

L0429:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0441; return;};

      return;

L042a:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x4d]) ^ 0xFFF) + 1 + register_A);

      return;

L042b:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0441; return;};

      return;

L042c:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L042d:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x43]) ^ 0xFFF) + 1 + register_A);

      return;

L042e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0441; return;};

      return;

L042f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0430:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4d;
      register_A = flag_C = acc_a0 = 0x004d;

      return;

L0432:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x4d] = 0x04d; /* store acc to RAM */

      return;

L0433:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0434:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L0436:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L0437:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0438:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0439:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L043a:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L043b:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L043c:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L043d:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L043e:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L043f:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0440:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0441:

      /* Invariants: register_P = 0x4 register_I = 0x43 register_A = 0x200 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0442:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L0443:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x50]) ^ 0xFFF) + 1 + register_A);

      return;

L0444:

      /* opLDJimm_A_A (4e) */
      register_J = 0x045e;

      return;

L0446:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x045e; return;};

      return;

L0447:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x5d]) ^ 0xFFF) + 1 + register_A);

      return;

L0448:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x045e; return;};

      return;

L0449:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L044a:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x53]) ^ 0xFFF) + 1 + register_A);

      return;

L044b:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x045e; return;};

      return;

L044c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L044d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4d;
      register_A = flag_C = acc_a0 = 0x004d;

      return;

L044f:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x5d] = 0x04d; /* store acc to RAM */

      return;

L0450:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0451:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L0453:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L0454:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0455:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0456:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0457:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0458:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0459:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L045a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L045b:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L045c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L045d:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L045e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L045f:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0460:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L0461:

      /* opLDJimm_A_A (46) */
      register_J = 0x0586;

      return;

L0463:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0586; return;};

      return;

L0464:

      /* opINP_A_AA (1e) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0xe);
#else
      register_A = cmp_new = get_io_bit(0xe);
#endif

      return;

L0465:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0466:

      /* opLDJimm_A_A (47) */
      register_J = 0x04d7;

      return;

L0468:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x04d7; return;};

      return;

L0469:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L046a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L046b:

      /* opOUTbi_A_A (97) */
      /* opOUTsnd_A (97) */
      put_io_bit(/*bitno*/0x7, /*set or clr*/0x0);

      return;

L046c:

      /* opLDJimm_A_A (4e) */
      register_J = 0x046e;

      return;

L046e:

      /* opJDR_A_A (5a) */

      return;

L046f:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2a]; /* set I register */
      

      return;

L0470:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x28] = register_A; /* store acc to RAM */

      return;

L0471:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L0472:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x78;
      register_A = flag_C = acc_a0 = 0x0478;

      return;

L0474:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x2d] = 0x478; /* store acc to RAM */

      return;

L0475:

      /* opLDJimm_A_A (45) */
      register_J = 0x0495;

      return;

L0477:

      /* opJMP_A_A (58) */
      {register_PC = 0x0495; return;};

      return;

L0495:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0496:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0497:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x800; /* store acc to RAM */

      return;

L0498:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0499:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = register_A; /* store acc to RAM */

      return;

L049a:

      /* opLDJimm_A_A (4c) */
      register_J = 0x049c;

      return;

L049c:

      /* opJDR_A_A (5a) */

      return;

L049d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L049e:

      /* opADDdir_A_AA (6f) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xf]))) & 0xFFF; /* do acc operation */

      return;

L049f:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L04a0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L04a1:

      /* opNOP_A_B (57) */

      return;

L04a2:

      /* opLDAimm_B_AA (01) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0100;

      return;

L04a3:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L04a4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L04a5:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x11) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L04a7:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L04a8:

      /* opLDJimm_A_A (47) */
      register_J = 0x04a7;

      return;

L04aa:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x04a7; return;};

      return;

L04ab:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L04ac:

      /* opLDJimm_A_A (43) */
      register_J = 0x04b3;

      return;

L04ae:

      /* opJEI_A_A (59) */

      return;

L04af:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L04b0:

      /* opLDJimm_A_A (44) */
      register_J = 0x04b4;

      return;

L04b2:

      /* opJMP_A_A (58) */
      {register_PC = 0x04b4; return;};

      return;

L04b4:

      /* opSTAdir_A_A (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_A; /* store acc to RAM */

      return;

L04b5:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L04b6:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L04b7:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1 + register_A);

      return;

L04b8:

      /* opLDJimm_A_A (41) */
      register_J = 0x04c1;

      return;

L04ba:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x04c1; return;};

      return;

L04bb:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L04bc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L04bd:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L04be:

      /* opLDJimm_A_A (4d) */
      register_J = 0x049d;

      return;

L04c0:

      /* opJMP_A_A (58) */
      {register_PC = 0x049d; return;};

      return;

L04c1:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L04c2:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L04c3:

      /* opSTAdir_A_A (de) */
      ram[register_I = (register_P << 4) + 0xe] = register_A; /* store acc to RAM */

      return;

L04c4:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L04c5:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1 + register_A);

      return;

L04c6:

      /* opLDJimm_A_A (4c) */
      register_J = 0x04cc;

      return;

L04c8:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x04cc; return;};

      return;

L04c9:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L04ca:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L04cb:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L04cc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L04cd:

      /* opADDimm_A_AA (27) */
      cmp_new = 0x7; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L04ce:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1 + register_A);

      return;

L04cf:

      /* opLDJimm_A_A (44) */
      register_J = 0x04d4;

      return;

L04d1:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x04d4; return;};

      return;

L04d2:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L04d3:

      /* opSTAdir_A_A (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_A; /* store acc to RAM */

      return;

L04d4:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xd]) ^ 0xFFF) + 1 + register_A);

      return;

L04d5:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[register_I];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L04d6:

      /* opJMP_A_A (58) */
      {register_PC = register_J; return;};

      return;

L04d7:

      /* Invariants: register_P = 0x6 register_I = 0x69 */;
      /* opINP_A_AA (11) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x1);
#else
      register_A = cmp_new = get_io_moveright();
#endif

      return;

L04d8:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L04d9:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = register_A; /* store acc to RAM */

      return;

L04da:

      /* opINP_A_AA (12) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x2);
#else
      register_A = cmp_new = get_io_moveleft();
#endif

      return;

L04db:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L04dc:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04dd:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04de:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04df:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04e0:

      /* opADDdir_A_AA (6a) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2a]))) & 0xFFF; /* do acc operation */

      return;

L04e1:

      /* opSTAirg_A_A (e6) */
      ram[0x2a] = register_A; /* store acc */

      return;

L04e2:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L04e3:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2a]) ^ 0xFFF) + 1 + register_A);

      return;

L04e4:

      /* opLDJimm_A_A (46) */
      register_J = 0x04f6;

      return;

L04e6:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x04f6; return;};

      return;

L04e7:

      /* opLDAimm_A_AA (0e) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0e00;

      return;

L04e8:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2a]) ^ 0xFFF) + 1 + register_A);

      return;

L04e9:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x04f6; return;};

      return;

L04ea:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L04eb:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2a]) ^ 0xFFF) + 1 + register_A);

      return;

L04ec:

      /* opLDJimm_A_A (44) */
      register_J = 0x04f4;

      return;

L04ee:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x04f4; return;};

      return;

L04ef:

      /* opLDAimm_A_AA (0e) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0e00;

      return;

L04f0:

      /* opSTAirg_A_A (e6) */
      ram[0x2a] = 0xe00; /* store acc */

      return;

L04f1:

      /* opLDJimm_A_A (46) */
      register_J = 0x04f6;

      return;

L04f3:

      /* opJMP_A_A (58) */
      {register_PC = 0x04f6; return;};

      return;

L04f4:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L04f5:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L04f6:

      /* Invariants: register_P = 0x2 register_I = 0x2a */;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L04f7:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x2c] = register_A; /* store acc to RAM */

      return;

L04f8:

      /* opINP_A_AA (13) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x3);
#else
      register_A = cmp_new = get_io_moveup();
#endif

      return;

L04f9:

      /* opLDPimm_A_A (82) */

      return;

L04fa:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = register_A; /* store acc to RAM */

      return;

L04fb:

      /* opINP_A_AA (14) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x4);
#else
      register_A = cmp_new = get_io_movedown();
#endif

      return;

L04fc:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L04fd:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04fe:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L04ff:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0500:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0501:

      /* opADDdir_A_AA (6b) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2b]))) & 0xFFF; /* do acc operation */

      return;

L0502:

      /* opSTAirg_A_A (e6) */
      ram[0x2b] = register_A; /* store acc */

      return;

L0503:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L0504:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0505:

      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2b]) ^ 0xFFF) + 1 + register_A);

      return;

L0506:

      /* opLDJimm_A_A (4b) */
      register_J = 0x051b;

      return;

L0508:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x051b; return;};

      return;

L0509:

      /* opLDAimm_A_AA (0d) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0d00;

      return;

L050a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L050b:

      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2b]) ^ 0xFFF) + 1 + register_A);

      return;

L050c:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x051b; return;};

      return;

L050d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L050e:

      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2b]) ^ 0xFFF) + 1 + register_A);

      return;

L050f:

      /* opLDJimm_A_A (48) */
      register_J = 0x0518;

      return;

L0511:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0518; return;};

      return;

L0512:

      /* opLDAimm_A_AA (0d) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0d00;

      return;

L0513:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0514:

      /* opSTAirg_A_A (e6) */
      ram[0x2b] = register_A; /* store acc */

      return;

L0515:

      /* opLDJimm_A_A (4b) */
      register_J = 0x051b;

      return;

L0517:

      /* opJMP_A_A (58) */
      {register_PC = 0x051b; return;};

      return;

L0518:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L0519:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L051a:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L051b:

      /* Invariants: register_P = 0x2 register_I = 0x2b */;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L051c:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x2d] = register_A; /* store acc to RAM */

      return;

L051d:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L051e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa4;
      register_A = flag_C = acc_a0 = 0x01a4;

      return;

L0520:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2c]) ^ 0xFFF) + 1 + register_A);

      return;

L0521:

      /* opLDJimm_A_A (47) */
      register_J = 0x0537;

      return;

L0523:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0537; return;};

      return;

L0524:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0525:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2c]) ^ 0xFFF) + 1 + register_A);

      return;

L0526:

      /* opLDJimm_A_A (43) */
      register_J = 0x0533;

      return;

L0528:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0533; return;};

      return;

L0529:

      /* opLDAimm_A_AA (0e) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0e00;

      return;

L052a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x84;
      register_A = flag_C = acc_a0 = 0x0e84;

      return;

L052c:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2c]) ^ 0xFFF) + 1 + register_A);

      return;

L052d:

      /* opLDJimm_A_A (46) */
      register_J = 0x0536;

      return;

L052f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0536; return;};

      return;

L0530:

      /* opLDJimm_A_A (47) */
      register_J = 0x0537;

      return;

L0532:

      /* opJMP_A_A (58) */
      {register_PC = 0x0537; return;};

      return;

L0533:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L0534:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa4;
      register_A = flag_C = acc_a0 = 0x01a4;

      return;

L0536:

      /* opSTAdir_A_A (dc) */
      ram[register_I = (register_P << 4) + 0xc] = register_A; /* store acc to RAM */

      return;

L0537:

      /* Invariants: register_P = 0x2 register_I = 0x2c */;
      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L0538:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2c;
      register_A = flag_C = acc_a0 = 0x012c;

      return;

L053a:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2d]) ^ 0xFFF) + 1 + register_A);

      return;

L053b:

      /* opLDJimm_A_A (41) */
      register_J = 0x0551;

      return;

L053d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0551; return;};

      return;

L053e:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L053f:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2d]) ^ 0xFFF) + 1 + register_A);

      return;

L0540:

      /* opLDJimm_A_A (4d) */
      register_J = 0x054d;

      return;

L0542:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x054d; return;};

      return;

L0543:

      /* opLDAimm_A_AA (0e) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0e00;

      return;

L0544:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd4;
      register_A = flag_C = acc_a0 = 0x0ed4;

      return;

L0546:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2d]) ^ 0xFFF) + 1 + register_A);

      return;

L0547:

      /* opLDJimm_A_A (40) */
      register_J = 0x0550;

      return;

L0549:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0550; return;};

      return;

L054a:

      /* opLDJimm_A_A (41) */
      register_J = 0x0551;

      return;

L054c:

      /* opJMP_A_A (58) */
      {register_PC = 0x0551; return;};

      return;

L054d:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L054e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2c;
      register_A = flag_C = acc_a0 = 0x012c;

      return;

L0550:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L0551:

      /* Invariants: register_P = 0x2 register_I = 0x2d */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L0552:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0553:

      /* opADDdir_A_AA (6d) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2d]))) & 0xFFF; /* do acc operation */

      return;

L0554:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0555:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x64] = register_A; /* store acc to RAM */

      return;

L0556:

      /* opNOP_A_B (57) */

      return;

L0557:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L0558:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0559:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L055a:

      /* opADDdir_A_AA (6c) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2c]))) & 0xFFF; /* do acc operation */

      return;

L055b:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L055c:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x63] = register_A; /* store acc to RAM */

      return;

L055d:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x1e) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L055f:

      /* opLDJimm_A_A (4f) */
      register_J = 0x055f;

      return;

L0561:

      /* opJDR_A_A (5a) */

      return;

L0562:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0563:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0564:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L0565:

      /* opINP_A_AA (15) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x5);
#else
      register_A = cmp_new = get_io_fire();
#endif

      return;

L0566:

      /* opLDPimm_A_A (86) */

      return;

L0567:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x6f] = register_A; /* store acc to RAM */

      return;

L0568:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0569:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x60]) ^ 0xFFF) + 1 + register_A);

      return;

L056a:

      /* opLDJimm_A_A (43) */
      register_J = 0x0573;

      return;

L056c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0573; return;};

      return;

L056d:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L056e:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L056f:

      /* opSTAirg_A_A (e6) */
      ram[0x60] = register_A; /* store acc */

      return;

L0570:

      /* opLDJimm_A_A (44) */
      register_J = 0x0584;

      return;

L0572:

      /* opJMP_A_A (58) */
      {register_PC = 0x0584; return;};

      return;

L0573:

      /* Invariants: register_P = 0x6 register_I = 0x60 register_A = 0x00 */;
      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6f]) ^ 0xFFF) + 1 + register_A);

      return;

L0574:

      /* opLDJimm_A_A (44) */
      register_J = 0x0584;

      return;

L0576:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0584; return;};

      return;

L0577:

      /* opINP_A_AA (16) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x6);
#else
      register_A = cmp_new = get_io_shields();
#endif

      return;

L0578:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0579:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0584; return;};

      return;

L057a:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6f]; /* set I register */
      

      return;

L057b:

      /* opCMPdir_A_AA (b1) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x61]) ^ 0xFFF) + 1 + register_A);

      return;

L057c:

      /* opLDJimm_A_A (44) */
      register_J = 0x0584;

      return;

L057e:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0584; return;};

      return;

L057f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0580:

      /* opADDimm_A_AA (29) */
      cmp_new = 0x9; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0009;
      

      return;

L0581:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x62] = 0x009; /* store acc to RAM */

      return;

L0582:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000c;
      

      return;

L0583:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x60] = 0x00c; /* store acc to RAM */

      return;

L0584:

      /* Invariants: register_P = 0x6 */;
      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6f]; /* set I register */
      

      return;

L0585:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x61] = register_A; /* store acc to RAM */

      return;

L0586:

      /* Invariants: register_P = 0x6 register_I = 0x61 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0587:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L0588:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x30]) ^ 0xFFF) + 1 + register_A);

      return;

L0589:

      /* opLDJimm_A_A (4f) */
      register_J = 0x05af;

      return;

L058b:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x05af; return;};

      return;

L058c:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L058d:

      /* opLDJimm_A_A (49) */
      register_J = 0x0599;

      return;

L058f:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0599; return;};

      return;

L0590:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x3d]) ^ 0xFFF) + 1 + register_A);

      return;

L0591:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0599; return;};

      return;

L0592:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x36] = 0x000; /* store acc to RAM */

      return;

L0593:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x34]; /* set I register */
      

      return;

L0594:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0595:

      /* opSTAirg_A_A (e6) */
      ram[0x34] = register_A; /* store acc */

      return;

L0596:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x35]; /* set I register */
      

      return;

L0597:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L0598:

      /* opSTAirg_A_A (e6) */
      ram[0x35] = register_A; /* store acc */

      return;

L0599:

      /* Invariants: register_P = 0x3 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L059a:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L059b:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L059c:

      /* opLDJimm_A_A (4c) */
      register_J = 0x05ac;

      return;

L059e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x05ac; return;};

      return;

L059f:

      /* opLDAimm_A_AA (05) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0500;

      return;

L05a0:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xb6;
      register_A = flag_C = acc_a0 = 0x05b6;

      return;

L05a2:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L05a3:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x5b6; /* store acc to RAM */

      return;

L05a4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L05a5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x31;
      register_A = flag_C = acc_a0 = 0x0031;

      return;

L05a7:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L05a8:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x031; /* store acc to RAM */

      return;

L05a9:

      /* opLDJimm_A_A (40) */
      register_J = 0x0c00;

      return;

L05ab:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c00; return;};

      return;

L05ac:

      /* Invariants: register_P = 0x3 register_I = 0x37 register_A = 0x02 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x37]; /* set I register */
      

      return;

L05ad:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L05ae:

      /* opSTAirg_A_A (e6) */
      ram[0x37] = register_A; /* store acc */

      return;

L05af:

      /* Invariants: register_P = 0x3 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L05b0:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x64) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L05b2:

      /* Invariants: register_P = 0x3 */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L05b3:

      /* opLDJimm_A_A (42) */
      register_J = 0x05b2;

      return;

L05b5:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x05b2; return;};

      return;

L05b6:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L05b7:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L05b8:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L05b9:

      /* opLDJimm_A_A (48) */
      register_J = 0x0648;

      return;

L05bb:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0648; return;};

      return;

L05bc:

      /* opLDPimm_A_A (86) */

      return;

L05bd:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x63]; /* set I register */
      

      return;

L05be:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L05bf:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = register_A; /* store acc to RAM */

      return;

L05c0:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x1e) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L05c2:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x13] = register_A; /* store acc to RAM */

      return;

L05c3:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L05c4:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x64]; /* set I register */
      

      return;

L05c5:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L05c6:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = register_A; /* store acc to RAM */

      return;

L05c7:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x14] = register_A; /* store acc to RAM */

      return;

L05c8:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L05c9:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x15;
      register_A = flag_C = acc_a0 = 0x0615;

      return;

L05cb:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0x615; /* store acc to RAM */

      return;

L05cc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L05cd:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L05cf:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x18] = 0x0ff; /* store acc to RAM */

      return;

L05d0:

      /* Invariants: register_P = 0x1 */;
      /* opLDJimm_A_A (40) */
      register_J = 0x05d0;

      return;

L05d2:

      /* opJDR_A_A (5a) */

      return;

L05d3:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L05d4:

      /* opNOP_A_B (57) */

      return;

L05d5:

      /* opLDAdir_B_AA (a4) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* new acc value */

      return;

L05d6:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L05d7:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L05d8:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L05d9:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L05da:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L05db:

      /* opNOP_A_A (5f) */

      return;

L05dc:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1 + register_A);

      return;

L05dd:

      /* opLDJimm_A_A (4f) */
      register_J = 0x05ff;

      return;

L05df:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x05ff; return;};

      return;

L05e0:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L05e2:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x3]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L05e3:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x0]))) & 0xFFF; /* do acc operation */

      return;

L05e4:

      /* opSTAdir_A_A (dc) */
      ram[register_I = (register_P << 4) + 0xc] = register_A; /* store acc to RAM */

      return;

L05e5:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L05e6:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L05e7:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L05e8:

      /* opNOP_A_A (5f) */

      return;

L05e9:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L05eb:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x4]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L05ec:

      /* opADDdir_A_AA (61) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x1]))) & 0xFFF; /* do acc operation */

      return;

L05ed:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L05ee:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0c]; /* set I register */
      

      return;

L05ef:

      /* opNOP_A_B (57) */

      return;

L05f0:

      /* opLDAdir_B_AA (ad) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x0d]; /* new acc value */

      return;

L05f1:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L05f2:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x3]))) & 0xFFF; /* do acc operation */

      return;

L05f3:

      /* opNOP_A_B (57) */

      return;

L05f4:

      /* opADDdir_B_AA (64) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = (register_P << 4) + 0x04]))) & 0xFFF; /* do acc operation */

      return;

L05f5:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L05f6:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0c]; /* set I register */
      

      return;

L05f7:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x3]))) & 0xFFF; /* do acc operation */

      return;

L05f8:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L05f9:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0d]; /* set I register */
      

      return;

L05fa:

      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x4]))) & 0xFFF; /* do acc operation */

      return;

L05fb:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L05fc:

      /* opLDJimm_A_A (40) */
      register_J = 0x05d0;

      return;

L05fe:

      /* opJMP_A_A (58) */
      {register_PC = 0x05d0; return;};

      return;

L05ff:

      /* Invariants: register_P = 0x1 register_I = 0x18 register_A = 0xff */;
      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L0600:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0601:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L0602:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0603:

      /* opNOP_A_A (5f) */

      return;

L0604:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1 + register_A);

      return;

L0605:

      /* opLDJimm_A_A (48) */
      register_J = 0x0648;

      return;

L0607:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0648; return;};

      return;

L0608:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L060a:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x0]))) & 0xFFF; /* do acc operation */

      return;

L060b:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L060c:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L060d:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L060e:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L060f:

      /* opNOP_A_A (5f) */

      return;

L0610:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0612:

      /* opADDdir_A_AA (61) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x1]))) & 0xFFF; /* do acc operation */

      return;

L0613:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_A; /* store acc to RAM */

      return;

L0614:

      /* opLDJimm_A_A (40) */
      register_J = 0x05d0;

      return;

L0616:

      /* opJMP_A_A (58) */
      {register_PC = 0x05d0; return;};

      return;

L0648:

      /* Invariants: register_P = 0x1 register_I = 0x18 register_A = 0xff */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0649:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L064a:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x62]) ^ 0xFFF) + 1 + register_A);

      return;

L064b:

      /* opLDJimm_A_A (49) */
      register_J = 0x06b9;

      return;

L064d:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x06b9; return;};

      return;

L064e:

      /* opINP_A_AA (18) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x8);
#else
      register_A = cmp_new = get_io_bit(0x8);
#endif

      return;

L064f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0650:

      /* opLDJimm_A_A (4d) */
      register_J = 0x065d;

      return;

L0652:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x065d; return;};

      return;

L0653:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0654:

      /* opADDimm_A_AA (26) */
      cmp_new = 0x6; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0006;
      

      return;

L0655:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0656:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x065d; return;};

      return;

L0657:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0658:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0659:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L065a:

      /* opLDJimm_A_A (4f) */
      register_J = 0x065f;

      return;

L065c:

      /* opJMP_A_A (58) */
      {register_PC = 0x065f; return;};

      return;

L065d:

      /* Invariants: register_P = 0x6 register_I = 0x62 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L065e:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L065f:

      /* Invariants: register_P = 0x6 register_I = 0x62 register_A = 0x01 */;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x001b;

      return;

L0661:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L0662:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0663:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0664:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0665:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0666:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0667:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0668:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0669:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L066a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L066b:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L066c:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L066d:

      /* opNOP_A_B (57) */

      return;

L066e:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L066f:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1 + register_A);

      return;

L0670:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0671:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0672:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0673:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0674:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L0675:

      /* opNOP_A_B (57) */

      return;

L0676:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L0677:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x63]; /* set I register */
      

      return;

L0678:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x65]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0679:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L067a:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x0a] = register_A; /* store acc to RAM */

      return;

L067b:

      /* opNOP_A_B (57) */

      return;

L067c:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L067d:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L067e:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L067f:

      /* opLDPimm_A_A (86) */

      return;

L0680:

      /* opCMPdir_A_AA (b4) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x64]) ^ 0xFFF) + 1 + register_A);

      return;

L0681:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0682:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0683:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0684:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0685:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L0686:

      /* opNOP_A_B (57) */

      return;

L0687:

      /* opSTAdir_B_BB (d6) */
      ram[register_I = (register_P << 4) + 0x6] = register_B; /* set I register and store B to ram */

      return;

L0688:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x64]; /* set I register */
      

      return;

L0689:

      /* opSUBdir_A_AA (76) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x66]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L068a:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L068b:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x0b] = register_A; /* store acc to RAM */

      return;

L068c:

      /* opNOP_A_B (57) */

      return;

L068d:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L068e:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0a]; /* set I register */
      

      return;

L068f:

      /* opLDJimm_A_A (41) */
      register_J = 0x0691;

      return;

L0691:

      /* opJDR_A_A (5a) */

      return;

L0692:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0693:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0694:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L0695:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x40]) ^ 0xFFF) + 1 + register_A);

      return;

L0696:

      /* opLDJimm_A_A (4d) */
      register_J = 0x06cd;

      return;

L0698:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x06cd; return;};

      return;

L0699:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L069a:

      /* opLDJimm_A_A (46) */
      register_J = 0x06a6;

      return;

L069c:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x06a6; return;};

      return;

L069d:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x4d]) ^ 0xFFF) + 1 + register_A);

      return;

L069e:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x06a6; return;};

      return;

L069f:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x46] = 0x000; /* store acc to RAM */

      return;

L06a0:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x44]; /* set I register */
      

      return;

L06a1:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L06a2:

      /* opSTAirg_A_A (e6) */
      ram[0x44] = register_A; /* store acc */

      return;

L06a3:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x45]; /* set I register */
      

      return;

L06a4:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L06a5:

      /* opSTAirg_A_A (e6) */
      ram[0x45] = register_A; /* store acc */

      return;

L06a6:

      /* Invariants: register_P = 0x4 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L06a7:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L06a8:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L06a9:

      /* opLDJimm_A_A (4a) */
      register_J = 0x06ca;

      return;

L06ab:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x06ca; return;};

      return;

L06ac:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L06ad:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd4;
      register_A = flag_C = acc_a0 = 0x06d4;

      return;

L06af:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L06b0:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x6d4; /* store acc to RAM */

      return;

L06b1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L06b2:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x41;
      register_A = flag_C = acc_a0 = 0x0041;

      return;

L06b4:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L06b5:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x041; /* store acc to RAM */

      return;

L06b6:

      /* opLDJimm_A_A (40) */
      register_J = 0x0c00;

      return;

L06b8:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c00; return;};

      return;

L06b9:

      /* Invariants: register_P = 0x6 register_I = 0x62 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L06ba:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x001a;

      return;

L06bc:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L06bd:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L06be:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L06bf:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L06c0:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L06c1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L06c2:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L06c3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L06c4:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L06c5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L06c6:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L06c7:

      /* opLDJimm_A_A (43) */
      register_J = 0x0693;

      return;

L06c9:

      /* opJMP_A_A (58) */
      {register_PC = 0x0693; return;};

      return;

L06ca:

      /* Invariants: register_P = 0x4 register_I = 0x47 register_A = 0x02 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x47]; /* set I register */
      

      return;

L06cb:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L06cc:

      /* opSTAirg_A_A (e6) */
      ram[0x47] = register_A; /* store acc */

      return;

L06cd:

      /* Invariants: register_P = 0x4 register_I = 0x47 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L06ce:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x64) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L06d0:

      /* Invariants: register_P = 0x4 register_I = 0x47 */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L06d1:

      /* opLDJimm_A_A (40) */
      register_J = 0x06d0;

      return;

L06d3:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x06d0; return;};

      return;

L06d4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L06d5:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L06d6:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x62]) ^ 0xFFF) + 1 + register_A);

      return;

L06d7:

      /* opLDJimm_A_A (4d) */
      register_J = 0x07bd;

      return;

L06d9:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x07bd; return;};

      return;

L06da:

      /* opINP_A_AA (1d) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0xd);
#else
      register_A = cmp_new = get_io_bit(0xd);
#endif

      return;

L06db:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L06dc:

      /* opLDJimm_A_A (44) */
      register_J = 0x0724;

      return;

L06de:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0724; return;};

      return;

L06df:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L06e0:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L06e1:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xc0;
      register_A = flag_C = acc_a0 = 0x0fc0;

      return;

L06e3:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L06e4:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0xfc0; /* store acc to RAM */

      return;

L06e5:

      /* opNOP_A_B (57) */

      return;

L06e6:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L06e7:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L06e8:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L06e9:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L06ea:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1 + register_A);

      return;

L06eb:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L06ec:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L06ed:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L06ee:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L06ef:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L06f0:

      /* opNOP_A_B (57) */

      return;

L06f1:

      /* opADDdir_B_AA (6a) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x0a]))) & 0xFFF; /* do acc operation */

      return;

L06f2:

      /* opNOP_A_B (57) */

      return;

L06f3:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L06f4:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0b]; /* set I register */
      

      return;

L06f5:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L06f6:

      /* opNOP_A_B (57) */

      return;

L06f7:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L06f8:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L06f9:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L06fa:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L06fb:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L06fc:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L06fd:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L06fe:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L06ff:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0700:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0701:

      /* opLDJimm_A_A (46) */
      register_J = 0x0706;

      return;

L0703:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0706; return;};

      return;

L0704:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0705:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0706:

      /* Invariants: register_P = 0x0 register_I = 0x07 */;
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L0707:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L0708:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0709:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x64]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L070a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L070b:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L070c:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L070d:

      /* opNOP_A_B (57) */

      return;

L070e:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L070f:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0710:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0711:

      /* opLDJimm_A_A (46) */
      register_J = 0x0716;

      return;

L0713:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0716; return;};

      return;

L0714:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0715:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0716:

      /* Invariants: register_P = 0x0 register_I = 0x08 */;
      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x0e]))) & 0xFFF; /* do acc operation */

      return;

L0717:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0718:

      /* opLDJimm_A_A (44) */
      register_J = 0x07a4;

      return;

L071a:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x07a4; return;};

      return;

L071b:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L071c:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L071d:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x05]))) & 0xFFF; /* do acc operation */

      return;

L071e:

      /* opNOP_A_B (57) */

      return;

L071f:

      /* opADDdir_B_AA (66) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x06]))) & 0xFFF; /* do acc operation */

      return;

L0720:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L0721:

      /* opLDJimm_A_A (44) */
      register_J = 0x07a4;

      return;

L0723:

      /* opJMP_A_A (58) */
      {register_PC = 0x07a4; return;};

      return;

L0724:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0725:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0726:

      /* opOUTbi_A_A (96) */
      vgColour = 0x0f;

      return;

L0727:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0728:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0a]; /* set I register */
      

      return;

L0729:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L072a:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L072b:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L072c:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L072d:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L072e:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0b]; /* set I register */
      

      return;

L072f:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0730:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x64]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0731:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0732:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0733:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L0734:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L0735:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0736:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0737:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L0738:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L0739:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa4;
      register_A = flag_C = acc_a0 = 0x07a4;

      return;

L073b:

      /* opSTAdir_A_A (d1) */
      ram[register_I = (register_P << 4) + 0x1] = register_A; /* store acc to RAM */

      return;

L073c:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L073d:

      /* opSTAdir_A_A (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_A; /* store acc to RAM */

      return;

L073e:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0b]; /* set I register */
      

      return;

L073f:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L0740:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x8]))) & 0xFFF; /* do acc operation */

      return;

L0741:

      /* opSTAdir_A_A (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_A; /* store acc to RAM */

      return;

L0742:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0743:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x7]))) & 0xFFF; /* do acc operation */

      return;

L0744:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L0745:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_A; /* store acc to RAM */

      return;

L0746:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L0747:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x81;
      register_A = flag_C = acc_a0 = 0x0781;

      return;

L0749:

      /* opSTAdir_A_A (dc) */
      ram[register_I = (register_P << 4) + 0xc] = 0x781; /* store acc to RAM */

      return;

L074a:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x02]; /* set I register */
      

      return;

L074b:

      /* opNOP_A_B (57) */

      return;

L074c:

      /* opLDAdir_B_AA (a3) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x03]; /* new acc value */

      return;

L074d:

      /* opLDJimm_A_A (4f) */
      register_J = 0x074f;

      return;

L074f:

      /* opJDR_A_A (5a) */

      return;

L0750:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0751:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0752:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x0b) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0754:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0755:

      /* opLDJimm_A_A (44) */
      register_J = 0x0754;

      return;

L0757:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0754; return;};

      return;

L0758:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L0759:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x3]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L075a:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L075b:

      /* opNOP_A_B (57) */

      return;

L075c:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L075d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L075e:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L075f:

      /* opLDJimm_A_A (44) */
      register_J = 0x0764;

      return;

L0761:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0764; return;};

      return;

L0762:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0763:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0764:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0765:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* set I register */
      

      return;

L0766:

      /* opSUBdir_A_AA (72) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x2]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0767:

      /* opSTAdir_A_A (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_A; /* store acc to RAM */

      return;

L0768:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0769:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L076a:

      /* opLDJimm_A_A (4f) */
      register_J = 0x076f;

      return;

L076c:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x076f; return;};

      return;

L076d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L076e:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L076f:

      /* opADDdir_A_AA (6d) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xd]))) & 0xFFF; /* do acc operation */

      return;

L0770:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0771:

      /* opLDJimm_A_A (4a) */
      register_J = 0x077a;

      return;

L0773:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x077a; return;};

      return;

L0774:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L0775:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L0776:

      /* opADDdir_A_AA (62) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x2]))) & 0xFFF; /* do acc operation */

      return;

L0777:

      /* opNOP_A_B (57) */

      return;

L0778:

      /* opADDdir_B_AA (63) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = (register_P << 4) + 0x03]))) & 0xFFF; /* do acc operation */

      return;

L0779:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L077a:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* set I register */
      

      return;

L077b:

      /* opSTAdir_A_A (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_A; /* store acc to RAM */

      return;

L077c:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L077d:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L077e:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xc]) ^ 0xFFF) + 1 + register_A);

      return;

L077f:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[register_I];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L0780:

      /* opJMP_A_A (58) */
      {register_PC = register_J; return;};

      return;

L07a4:

      /* Invariants: register_P = 0x0 register_I = 0x06 */;
      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L07a5:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L07a6:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L07a7:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x65] = register_A; /* store acc to RAM */

      return;

L07a8:

      /* opNOP_A_B (57) */

      return;

L07a9:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L07aa:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L07ab:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x65]) ^ 0xFFF) + 1 + register_A);

      return;

L07ac:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L07ad:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L07ae:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L07af:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L07b0:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L07b1:

      /* opNOP_A_B (57) */

      return;

L07b2:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L07b3:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L07b4:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x63]))) & 0xFFF; /* do acc operation */

      return;

L07b5:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L07b6:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x0a] = register_A; /* store acc to RAM */

      return;

L07b7:

      /* opNOP_A_B (57) */

      return;

L07b8:

      /* opLDAdir_B_AA (ab) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x0b]; /* new acc value */

      return;

L07b9:

      /* opLDJimm_A_A (4b) */
      register_J = 0x07bb;

      return;

L07bb:

      /* opJDR_A_A (5a) */

      return;

L07bc:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L07bd:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07be:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L07bf:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x50]) ^ 0xFFF) + 1 + register_A);

      return;

L07c0:

      /* opLDJimm_A_A (46) */
      register_J = 0x07e6;

      return;

L07c2:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x07e6; return;};

      return;

L07c3:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L07c4:

      /* opLDJimm_A_A (40) */
      register_J = 0x07d0;

      return;

L07c6:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x07d0; return;};

      return;

L07c7:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x5d]) ^ 0xFFF) + 1 + register_A);

      return;

L07c8:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x07d0; return;};

      return;

L07c9:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x56] = 0x000; /* store acc to RAM */

      return;

L07ca:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x54]; /* set I register */
      

      return;

L07cb:

      /* opSUBimm_A_AA (32) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x2) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L07cc:

      /* opSTAirg_A_A (e6) */
      ram[0x54] = register_A; /* store acc */

      return;

L07cd:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x55]; /* set I register */
      

      return;

L07ce:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L07cf:

      /* opSTAirg_A_A (e6) */
      ram[0x55] = register_A; /* store acc */

      return;

L07d0:

      /* Invariants: register_P = 0x5 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07d1:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L07d2:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L07d3:

      /* opLDJimm_A_A (43) */
      register_J = 0x07e3;

      return;

L07d5:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x07e3; return;};

      return;

L07d6:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L07d7:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xed;
      register_A = flag_C = acc_a0 = 0x07ed;

      return;

L07d9:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L07da:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x7ed; /* store acc to RAM */

      return;

L07db:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07dc:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x51;
      register_A = flag_C = acc_a0 = 0x0051;

      return;

L07de:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L07df:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x051; /* store acc to RAM */

      return;

L07e0:

      /* opLDJimm_A_A (40) */
      register_J = 0x0c00;

      return;

L07e2:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c00; return;};

      return;

L07e3:

      /* Invariants: register_P = 0x5 register_I = 0x57 register_A = 0x02 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x57]; /* set I register */
      

      return;

L07e4:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L07e5:

      /* opSTAirg_A_A (e6) */
      ram[0x57] = register_A; /* store acc */

      return;

L07e6:

      /* Invariants: register_P = 0x5 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07e7:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x64) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L07e9:

      /* Invariants: register_P = 0x5 */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L07ea:

      /* opLDJimm_A_A (49) */
      register_J = 0x07e9;

      return;

L07ec:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x07e9; return;};

      return;

L07ed:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07ee:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L07ef:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x62]) ^ 0xFFF) + 1 + register_A);

      return;

L07f0:

      /* opLDJimm_A_A (45) */
      register_J = 0x0855;

      return;

L07f2:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0855; return;};

      return;

L07f3:

      /* opINP_A_AA (1d) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0xd);
#else
      register_A = cmp_new = get_io_bit(0xd);
#endif

      return;

L07f4:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L07f5:

      /* opLDJimm_A_A (4e) */
      register_J = 0x083e;

      return;

L07f7:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x083e; return;};

      return;

L07f8:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L07f9:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;

      return;

L07fb:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L07fc:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x040; /* store acc to RAM */

      return;

L07fd:

      /* opNOP_A_B (57) */

      return;

L07fe:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L07ff:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0800:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L0801:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0802:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1 + register_A);

      return;

L0803:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0804:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0805:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0806:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0807:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L0808:

      /* opNOP_A_B (57) */

      return;

L0809:

      /* opADDdir_B_AA (6a) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x0a]))) & 0xFFF; /* do acc operation */

      return;

L080a:

      /* opNOP_A_B (57) */

      return;

L080b:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L080c:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0b]; /* set I register */
      

      return;

L080d:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L080e:

      /* opNOP_A_B (57) */

      return;

L080f:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L0810:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L0811:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L0812:

      /* opLDPimm_A_A (80) */

      return;

L0813:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L0814:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0815:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0816:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0817:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0818:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L0819:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L081a:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L081b:

      /* opLDJimm_A_A (40) */
      register_J = 0x0820;

      return;

L081d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0820; return;};

      return;

L081e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L081f:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0820:

      /* Invariants: register_P = 0x0 register_I = 0x07 */;
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L0821:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L0822:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0823:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x64]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0824:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0825:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0826:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L0827:

      /* opNOP_A_B (57) */

      return;

L0828:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L0829:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L082a:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L082b:

      /* opLDJimm_A_A (40) */
      register_J = 0x0830;

      return;

L082d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0830; return;};

      return;

L082e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L082f:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0830:

      /* Invariants: register_P = 0x0 register_I = 0x08 */;
      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x0e]))) & 0xFFF; /* do acc operation */

      return;

L0831:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0832:

      /* opLDJimm_A_A (45) */
      register_J = 0x0855;

      return;

L0834:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0855; return;};

      return;

L0835:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L0836:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L0837:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x05]))) & 0xFFF; /* do acc operation */

      return;

L0838:

      /* opNOP_A_B (57) */

      return;

L0839:

      /* opADDdir_B_AA (66) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x06]))) & 0xFFF; /* do acc operation */

      return;

L083a:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L083b:

      /* opLDJimm_A_A (45) */
      register_J = 0x0855;

      return;

L083d:

      /* opJMP_A_A (58) */
      {register_PC = 0x0855; return;};

      return;

L083e:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L083f:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0a]; /* set I register */
      

      return;

L0840:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0841:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x63]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0842:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0843:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0844:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L0845:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0b]; /* set I register */
      

      return;

L0846:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0847:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x64]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0848:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0849:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L084a:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L084b:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L084c:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L084d:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L084e:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L084f:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0850:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x55;
      register_A = flag_C = acc_a0 = 0x0855;

      return;

L0852:

      /* opLDJimm_A_A (4b) */
      register_J = 0x073b;

      return;

L0854:

      /* opJMP_A_A (58) */
      {register_PC = 0x073b; return;};

      return;

L0855:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0856:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0857:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x62]; /* set I register */
      

      return;

L0858:

      /* opLDJimm_A_A (4d) */
      register_J = 0x085d;

      return;

L085a:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x085d; return;};

      return;

L085b:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L085c:

      /* opSTAirg_A_A (e6) */
      ram[0x62] = register_A; /* store acc */

      return;

L085d:

      /* Invariants: register_P = 0x6 register_I = 0x62 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L085e:

      /* opLDPimm_A_A (86) */

      return;

L085f:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L0860:

      /* opLDJimm_A_A (4d) */
      register_J = 0x08ed;

      return;

L0862:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x08ed; return;};

      return;

L0863:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L0864:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L0865:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L0866:

      /* opLDJimm_A_A (4e) */
      register_J = 0x088e;

      return;

L0868:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x088e; return;};

      return;

L0869:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L086a:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x37]) ^ 0xFFF) + 1 + register_A);

      return;

L086b:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x088e; return;};

      return;

L086c:

      /* opLDJimm_A_A (48) */
      register_J = 0x0898;

      return;

L086e:

      /* opJMP_A_A (58) */
      {register_PC = 0x0898; return;};

      return;

L086f:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0x02 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0870:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x18;
      register_A = flag_C = acc_a0 = 0x0018;

      return;

L0872:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L0873:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0874:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0875:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0876:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0877:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0878:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0879:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L087a:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L087b:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L087c:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L087d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L087e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x16;
      register_A = flag_C = acc_a0 = 0x0016;

      return;

L0880:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L0881:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0882:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L0883:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0884:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L0885:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0886:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L0887:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0888:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L0889:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L088a:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L088b:

      /* opLDJimm_A_A (4e) */
      register_J = 0x045e;

      return;

L088d:

      /* opJMP_A_A (58) */
      {register_PC = 0x045e; return;};

      return;

L088e:

      /* Invariants: register_P = 0x3 register_I = 0x37 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L088f:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L0890:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L0891:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L0892:

      /* opLDJimm_A_A (49) */
      register_J = 0x08a9;

      return;

L0894:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x08a9; return;};

      return;

L0895:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L0896:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x47]) ^ 0xFFF) + 1 + register_A);

      return;

L0897:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x08a9; return;};

      return;

L0898:

      /* Invariants: register_P = 0xdeadbeef register_A = 0x07 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0899:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1f;
      register_A = flag_C = acc_a0 = 0x001f;

      return;

L089b:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L089c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L089d:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L089e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L089f:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L08a0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08a1:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L08a2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08a3:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08a4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08a5:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08a6:

      /* opLDJimm_A_A (4b) */
      register_J = 0x08fb;

      return;

L08a8:

      /* opJMP_A_A (58) */
      {register_PC = 0x08fb; return;};

      return;

L08a9:

      /* Invariants: register_P = 0x4 register_I = 0x47 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08aa:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L08ab:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L08ac:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L08ad:

      /* opLDJimm_A_A (4d) */
      register_J = 0x08ed;

      return;

L08af:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x08ed; return;};

      return;

L08b0:

      /* opADDimm_A_AA (25) */
      cmp_new = 0x5; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L08b1:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x57]) ^ 0xFFF) + 1 + register_A);

      return;

L08b2:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x08ed; return;};

      return;

L08b3:

      /* opLDJimm_A_A (48) */
      register_J = 0x0898;

      return;

L08b5:

      /* opJMP_A_A (58) */
      {register_PC = 0x0898; return;};

      return;

L08b6:

      /* Invariants: register_P = 0xc register_I = 0xc1 register_A = 0xc0 */;
      /* opNOP_A_A (5f) */

      return;

L08b7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08b8:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L08b9:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7a]) ^ 0xFFF) + 1 + register_A);

      return;

L08ba:

      /* opLDJimm_A_A (4d) */
      register_J = 0x08ed;

      return;

L08bc:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x08ed; return;};

      return;

L08bd:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L08be:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x30]) ^ 0xFFF) + 1 + register_A);

      return;

L08bf:

      /* opLDJimm_A_A (48) */
      register_J = 0x0308;

      return;

L08c1:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0308; return;};

      return;

L08c2:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L08c3:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x40]) ^ 0xFFF) + 1 + register_A);

      return;

L08c4:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0308; return;};

      return;

L08c5:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L08c6:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x50]) ^ 0xFFF) + 1 + register_A);

      return;

L08c7:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0308; return;};

      return;

L08c8:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L08c9:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7d]) ^ 0xFFF) + 1 + register_A);

      return;

L08ca:

      /* opLDJimm_A_A (46) */
      register_J = 0x02b6;

      return;

L08cc:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x02b6; return;};

      return;

L08cd:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L08ce:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L08cf:

      /* opLDJimm_A_A (4e) */
      register_J = 0x02de;

      return;

L08d1:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x02de; return;};

      return;

L08d2:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08d3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x14;
      register_A = flag_C = acc_a0 = 0x0014;

      return;

L08d5:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L08d6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08d7:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L08d8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08d9:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L08da:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08db:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L08dc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08dd:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08de:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08df:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08e0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08e1:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L08e2:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x73] = 0x000; /* store acc to RAM */

      return;

L08e3:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L08e4:

      /* opLDPimm_A_A (87) */

      return;

L08e5:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x7e] = 0xf00; /* store acc to RAM */

      return;

L08e6:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08e7:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x10;
      register_A = flag_C = acc_a0 = 0x0010;

      return;

L08e9:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x7c] = 0x010; /* store acc to RAM */

      return;

L08ea:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08eb:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L08ec:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x7d] = 0x001; /* store acc to RAM */

      return;

L08ed:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L08ee:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L08f0:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L08f1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08f2:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L08f3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08f4:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L08f5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08f6:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L08f7:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08f8:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08f9:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L08fa:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L08fb:

      /* Invariants: register_P = 0xdeadbeef register_A = 0x00 */;
      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L08fc:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x00;
      register_A = flag_C = acc_a0 = 0x0600;

      return;

L08fe:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L08ff:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x600; /* store acc to RAM */

      return;

L0900:

      /* opLDJimm_A_A (40) */
      register_J = 0x0080;

      return;

L0902:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0903:

      /* opJPP8_A_B (50) */
      register_PC = 0x1080; /* Jump to other rom bank */
      return;

      return;

L0904:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x01 */;
      /* opNOP_A_B (57) */

      return;

L0905:

      /* opINP_B_AA (11) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* save old accB */
#ifdef RAWIO
      register_B = cmp_new = (( ioSwitches >> 0x1 ) & 0x01);
#else
      register_B = cmp_new = get_shield_bit2();
#endif

      return;

L0906:

      /* opNOP_A_B (57) */

      return;

L0907:

      /* opLSLe_B_AA (ec) */
      cmp_new = 0x0CEC; acc_a0 = register_A; cmp_old = register_B; flag_C = (0x0CEC + register_B);
      register_B = (register_B << 1) & 0xFFF;

      return;

L0908:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L0909:

      /* opNOP_A_B (57) */

      return;

L090a:

      /* opSTAdir_B_BB (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_B; /* set I register and store B to ram */

      return;

L090b:

      /* opNOP_A_B (57) */

      return;

L090c:

      /* opINP_B_AA (14) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* save old accB */
#ifdef RAWIO
      register_B = cmp_new = (( ioSwitches >> 0x4 ) & 0x01);
#else
      register_B = cmp_new = get_shield_bit1();
#endif

      return;

L090d:

      /* opNOP_A_B (57) */

      return;

L090e:

      /* opAWDirg_B_AA (e7) */
      acc_a0 = register_A;
      cmp_old = register_B;
      register_B = (flag_C = (register_B + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L090f:

      /* opNOP_A_B (57) */

      return;

L0910:

      /* opLSLe_B_AA (ec) */
      cmp_new = 0x0CEC; acc_a0 = register_A; cmp_old = register_B; flag_C = (0x0CEC + register_B);
      register_B = (register_B << 1) & 0xFFF;

      return;

L0911:

      /* opNOP_A_B (57) */

      return;

L0912:

      /* opSTAirg_B_BB (e6) */
      ram[register_I] = register_B; /* store acc */

      return;

L0913:

      /* opNOP_A_B (57) */

      return;

L0914:

      /* opINP_B_AA (15) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* save old accB */
#ifdef RAWIO
      register_B = cmp_new = (( ioSwitches >> 0x5 ) & 0x01);
#else
      register_B = cmp_new = get_shield_bit0();
#endif

      return;

L0915:

      /* opNOP_A_B (57) */

      return;

L0916:

      /* opAWDirg_B_AA (e7) */
      acc_a0 = register_A;
      cmp_old = register_B;
      register_B = (flag_C = (register_B + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0917:

      /* opNOP_A_B (57) */

      return;

L0918:

      /* opSTAirg_B_BB (e6) */
      ram[register_I] = register_B; /* store acc */

      return;

L0919:

      /* opLDJimm_A_A (46) */
      register_J = 0x0026;

      return;

L091b:

      /* opJMP_A_A (58) */
      {register_PC = 0x0026; return;};

      return;

L0c00:

      /* Invariants: register_P = 0x1 register_I = 0x19 */;
      /* opLDPimm_A_A (81) */

      return;

L0c01:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c02:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c03:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = register_A; /* store acc to RAM */

      return;

L0c04:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c05:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c06:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c07:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c08:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c09:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = register_A; /* store acc to RAM */

      return;

L0c0a:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c0b:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c0c:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c0d:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c0e:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c0f:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */

      return;

L0c10:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c11:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c12:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c13:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c14:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c15:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x13] = register_A; /* store acc to RAM */

      return;

L0c16:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c17:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c18:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c19:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c1a:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c1b:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x14] = register_A; /* store acc to RAM */

      return;

L0c1c:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c1d:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c1e:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c1f:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c20:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c21:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x15] = register_A; /* store acc to RAM */

      return;

L0c22:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c23:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L0c24:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c25:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c26:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c27:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x1a] = register_A; /* store acc to RAM */

      return;

L0c28:

      /* opSUBdir_A_AA (70) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x10]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0c29:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c2a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c2b:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c2c:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c2d:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = register_A; /* store acc to RAM */

      return;

L0c2e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c2f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L0c31:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x16]) ^ 0xFFF) + 1 + register_A);

      return;

L0c32:

      /* opLDJimm_A_A (48) */
      register_J = 0x0c48;

      return;

L0c34:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c48; return;};

      return;

L0c35:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0c36:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x16]) ^ 0xFFF) + 1 + register_A);

      return;

L0c37:

      /* opLDJimm_A_A (44) */
      register_J = 0x0c44;

      return;

L0c39:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c44; return;};

      return;

L0c3a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c3b:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x1e) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0c3d:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x16]) ^ 0xFFF) + 1 + register_A);

      return;

L0c3e:

      /* opLDJimm_A_A (47) */
      register_J = 0x0c47;

      return;

L0c40:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c47; return;};

      return;

L0c41:

      /* opLDJimm_A_A (48) */
      register_J = 0x0c48;

      return;

L0c43:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c48; return;};

      return;

L0c44:

      /* Invariants: register_P = 0x1 register_I = 0x16 register_A = 0x800 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c45:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L0c47:

      /* Invariants: register_P = 0x1 register_I = 0x16 */;
      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = register_A; /* store acc to RAM */

      return;

L0c48:

      /* Invariants: register_P = 0x1 register_I = 0x16 */;
      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c49:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c4a:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c4b:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c4c:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c4d:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x1b] = register_A; /* store acc to RAM */

      return;

L0c4e:

      /* opSUBdir_A_AA (71) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x11]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0c4f:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c50:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c51:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c52:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L0c53:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = register_A; /* store acc to RAM */

      return;

L0c54:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c55:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L0c57:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x17]) ^ 0xFFF) + 1 + register_A);

      return;

L0c58:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0c6e;

      return;

L0c5a:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6e; return;};

      return;

L0c5b:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0c5c:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x17]) ^ 0xFFF) + 1 + register_A);

      return;

L0c5d:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0c6a;

      return;

L0c5f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6a; return;};

      return;

L0c60:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c61:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x1e) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0c63:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x17]) ^ 0xFFF) + 1 + register_A);

      return;

L0c64:

      /* opLDJimm_A_A (4d) */
      register_J = 0x0c6d;

      return;

L0c66:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6d; return;};

      return;

L0c67:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0c6e;

      return;

L0c69:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c6e; return;};

      return;

L0c6a:

      /* Invariants: register_P = 0x1 register_I = 0x17 register_A = 0x800 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c6b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L0c6d:

      /* Invariants: register_P = 0x1 register_I = 0x17 */;
      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = register_A; /* store acc to RAM */

      return;

L0c6e:

      /* Invariants: register_P = 0x1 register_I = 0x17 */;
      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c6f:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0c70:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c71:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0c72:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0c73:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x12]) ^ 0xFFF) + 1 + register_A);

      return;

L0c74:

      /* opLDJimm_A_A (41) */
      register_J = 0x0c81;

      return;

L0c76:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0c81; return;};

      return;

L0c77:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c78:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;

      return;

L0c7a:

      /* opSUBdir_A_AA (76) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x16]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0c7b:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L0c7c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c7d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;

      return;

L0c7f:

      /* opSUBdir_A_AA (77) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x17]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0c80:

      /* opSTAirg_A_A (e6) */
      ram[0x17] = register_A; /* store acc */

      return;

L0c81:

      /* Invariants: register_P = 0x1 register_I = 0x12 */;
      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0c82:

      /* opSUBimm_A_AA (36) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x6) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0c83:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0c84:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L0c85:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0c86:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L0c87:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c88:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L0c8a:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0c8b:

      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */

      return;

L0c8c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c8d:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0c8e:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0c9e;

      return;

L0c90:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0c9e; return;};

      return;

L0c91:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;

      return;

L0c93:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0c94:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0c9c;

      return;

L0c96:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c9c; return;};

      return;

L0c97:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c98:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0c99:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0c9e;

      return;

L0c9b:

      /* opJMP_A_A (58) */
      {register_PC = 0x0c9e; return;};

      return;

L0c9c:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x40 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0c9d:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0c9e:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x13]))) & 0xFFF; /* do acc operation */

      return;

L0c9f:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L0ca0:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0ca1:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0ca2:

      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;

      return;

L0ca3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa9;
      register_A = flag_C = acc_a0 = 0x0ca9;

      return;

L0ca5:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0xca9; /* store acc to RAM */

      return;

L0ca6:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0eeb;

      return;

L0ca8:

      /* opJMP_A_A (58) */
      {register_PC = 0x0eeb; return;};

      return;

L0ca9:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L0caa:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x1c] = register_A; /* store acc to RAM */

      return;

L0cab:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1b]; /* set I register */
      

      return;

L0cac:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x1d] = register_A; /* store acc to RAM */

      return;

L0cad:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0cae:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0caf:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0cb0:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x17]; /* set I register */
      

      return;

L0cb1:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0cb2:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L0cb3:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cb4:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L0cb6:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0cb7:

      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */

      return;

L0cb8:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cb9:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0cba:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0cca;

      return;

L0cbc:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0cca; return;};

      return;

L0cbd:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;

      return;

L0cbf:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0cc0:

      /* opLDJimm_A_A (48) */
      register_J = 0x0cc8;

      return;

L0cc2:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cc8; return;};

      return;

L0cc3:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cc4:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0cc5:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0cca;

      return;

L0cc7:

      /* opJMP_A_A (58) */
      {register_PC = 0x0cca; return;};

      return;

L0cc8:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x40 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cc9:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0cca:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x14]))) & 0xFFF; /* do acc operation */

      return;

L0ccb:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L0ccc:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0ccd:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0cce:

      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;

      return;

L0ccf:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd5;
      register_A = flag_C = acc_a0 = 0x0cd5;

      return;

L0cd1:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0xcd5; /* store acc to RAM */

      return;

L0cd2:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0eeb;

      return;

L0cd4:

      /* opJMP_A_A (58) */
      {register_PC = 0x0eeb; return;};

      return;

L0cd5:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opNOP_A_B (57) */

      return;

L0cd6:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0cd7:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0cd8:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1c]; /* set I register */
      

      return;

L0cd9:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0cde;

      return;

L0cdb:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cde; return;};

      return;

L0cdc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cdd:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0cde:

      /* Invariants: register_P = 0x1 register_I = 0x1c */;
      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1b]) ^ 0xFFF) + 1 + register_A);

      return;

L0cdf:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce0:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce1:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce2:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce3:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce4:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce5:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce6:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce7:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0ce8:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0ce9:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1c]) ^ 0xFFF) + 1 + register_A);

      return;

L0cea:

      /* opNOP_A_B (57) */

      return;

L0ceb:

      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */

      return;

L0cec:

      /* opLDJimm_A_A (42) */
      register_J = 0x0cf2;

      return;

L0cee:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cf2; return;};

      return;

L0cef:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cf0:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0cf1:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L0cf2:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */

      return;

L0cf3:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0cf4:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0cf5:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L0cf6:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0cfb;

      return;

L0cf8:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cfb; return;};

      return;

L0cf9:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0cfa:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0cfb:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1 + register_A);

      return;

L0cfc:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0cfd:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0cfe:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0cff:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d00:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d01:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d02:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d03:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d04:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d05:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d06:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L0d07:

      /* opNOP_A_B (57) */

      return;

L0d08:

      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */

      return;

L0d09:

      /* opLDJimm_A_A (4f) */
      register_J = 0x0d0f;

      return;

L0d0b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d0f; return;};

      return;

L0d0c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d0d:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0d0e:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L0d0f:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */

      return;

L0d10:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0d11:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d12:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L0d13:

      /* opLDJimm_A_A (48) */
      register_J = 0x0d18;

      return;

L0d15:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d18; return;};

      return;

L0d16:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d17:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0d18:

      /* Invariants: register_P = 0x1 register_I = 0x1a */;
      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1 + register_A);

      return;

L0d19:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d1f:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d20:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d21:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d22:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d23:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1a]) ^ 0xFFF) + 1 + register_A);

      return;

L0d24:

      /* opNOP_A_B (57) */

      return;

L0d25:

      /* opSTAdir_B_BB (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_B; /* set I register and store B to ram */

      return;

L0d26:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0d2c;

      return;

L0d28:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d2c; return;};

      return;

L0d29:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d2a:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0d2b:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L0d2c:

      /* Invariants: register_P = 0x1 register_I = 0x14 */;
      /* opNOP_A_B (57) */

      return;

L0d2d:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0d2e:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d2f:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1d]; /* set I register */
      

      return;

L0d30:

      /* opLDJimm_A_A (45) */
      register_J = 0x0d35;

      return;

L0d32:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d35; return;};

      return;

L0d33:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d34:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0d35:

      /* Invariants: register_P = 0x1 register_I = 0x1d */;
      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1b]) ^ 0xFFF) + 1 + register_A);

      return;

L0d36:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d37:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d38:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d39:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d3f:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d40:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1d]) ^ 0xFFF) + 1 + register_A);

      return;

L0d41:

      /* opNOP_A_B (57) */

      return;

L0d42:

      /* opSTAdir_B_BB (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_B; /* set I register and store B to ram */

      return;

L0d43:

      /* opLDJimm_A_A (49) */
      register_J = 0x0d49;

      return;

L0d45:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d49; return;};

      return;

L0d46:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d47:

      /* opSUBdir_A_AA (7f) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0d48:

      /* opSTAirg_A_A (e6) */
      ram[0x1f] = register_A; /* store acc */

      return;

L0d49:

      /* Invariants: register_P = 0x1 register_I = 0x1f register_A = 0x800 */;
      /* opNOP_A_B (57) */

      return;

L0d4a:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0d4b:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d4c:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L0d4d:

      /* opLDJimm_A_A (42) */
      register_J = 0x0d52;

      return;

L0d4f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d52; return;};

      return;

L0d50:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d51:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0d52:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1 + register_A);

      return;

L0d53:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d54:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d55:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d56:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d57:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d58:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d59:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d5a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d5b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0d5c:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0d5d:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L0d5e:

      /* opNOP_A_B (57) */

      return;

L0d5f:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L0d60:

      /* opLDJimm_A_A (46) */
      register_J = 0x0d66;

      return;

L0d62:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d66; return;};

      return;

L0d63:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d64:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0d65:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L0d66:

      /* Invariants: register_P = 0x1 register_I = 0x15 register_A = 0x800 */;
      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0d67:

      /* opSUBimm_A_AA (34) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x4) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0d68:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0d69:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L0d6a:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0d6b:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0d6c:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0d6d:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = register_A; /* store acc to RAM */

      return;

L0d6e:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0d6f:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0d70:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0d71:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x14]; /* set I register */
      

      return;

L0d72:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0d73:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0d74:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0d75:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = register_A; /* store acc to RAM */

      return;

L0d76:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0d77:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0d78:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0d79:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d7a:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0d7b:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0d7c:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L0d7d:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0d7e:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */

      return;

L0d7f:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0d80:

      /* opADDimm_A_AA (29) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x9))) & 0xFFF; /* add values, save carry */
      

      return;

L0d81:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0d82:

      /* opLDPimm_A_A (81) */

      return;

L0d83:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x12]; /* set I register */
      

      return;

L0d84:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0d85:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0d86:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */

      return;

L0d87:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0d88:

      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x10]; /* set I register */
      

      return;

L0d89:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0d8a:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = register_A; /* store acc to RAM */

      return;

L0d8b:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0d8c:

      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x11]; /* set I register */
      

      return;

L0d8d:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0d8e:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L0d8f:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0d90:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x0d] = 0x200; /* store acc to RAM */

      return;

L0d91:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0d92:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x000; /* store acc to RAM */

      return;

L0d93:

      /* Invariants: register_P = 0x0 register_I = 0x04 register_A = 0x00 */;
      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0d]; /* set I register */
      

      return;

L0d94:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L0d95:

      /* opLDJimm_A_A (43) */
      register_J = 0x0e03;

      return;

L0d97:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e03; return;};

      return;

L0d98:

      /* opNOP_A_B (57) */

      return;

L0d99:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0d9a:

      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0d9b:

      /* opNOP_A_B (57) */

      return;

L0d9c:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0d9d:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0d9e:

      /* opLDJimm_A_A (44) */
      register_J = 0x0da4;

      return;

L0da0:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0da4; return;};

      return;

L0da1:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0da2:

      /* opNOP_A_B (57) */

      return;

L0da3:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0da4:

      /* Invariants: register_P = 0x0 register_I = 0x09 register_A = 0x400 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0da5:

      /* opNOP_A_B (57) */

      return;

L0da6:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0da7:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0da8:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0dae;

      return;

L0daa:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dae; return;};

      return;

L0dab:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dac:

      /* opNOP_A_B (57) */

      return;

L0dad:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dae:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0daf:

      /* opNOP_A_B (57) */

      return;

L0db0:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0db1:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0db2:

      /* opLDJimm_A_A (48) */
      register_J = 0x0db8;

      return;

L0db4:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0db8; return;};

      return;

L0db5:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0db6:

      /* opNOP_A_B (57) */

      return;

L0db7:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0db8:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0db9:

      /* opNOP_A_B (57) */

      return;

L0dba:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0dbb:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0dbc:

      /* opLDJimm_A_A (42) */
      register_J = 0x0dc2;

      return;

L0dbe:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dc2; return;};

      return;

L0dbf:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dc0:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */

      return;

L0dc1:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dc2:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0dc3:

      /* opNOP_A_B (57) */

      return;

L0dc4:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0dc5:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0dc6:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0dcc;

      return;

L0dc8:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dcc; return;};

      return;

L0dc9:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dca:

      /* opNOP_A_B (57) */

      return;

L0dcb:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dcc:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0dcd:

      /* opNOP_A_B (57) */

      return;

L0dce:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0dcf:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0dd0:

      /* opLDJimm_A_A (46) */
      register_J = 0x0dd6;

      return;

L0dd2:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dd6; return;};

      return;

L0dd3:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dd4:

      /* opNOP_A_B (57) */

      return;

L0dd5:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dd6:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0dd7:

      /* opNOP_A_B (57) */

      return;

L0dd8:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0dd9:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0dda:

      /* opLDJimm_A_A (40) */
      register_J = 0x0de0;

      return;

L0ddc:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0de0; return;};

      return;

L0ddd:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dde:

      /* opNOP_A_B (57) */

      return;

L0ddf:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0de0:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0de1:

      /* opNOP_A_B (57) */

      return;

L0de2:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0de3:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0de4:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0dea;

      return;

L0de6:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dea; return;};

      return;

L0de7:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0de8:

      /* opNOP_A_B (57) */

      return;

L0de9:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dea:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0deb:

      /* opNOP_A_B (57) */

      return;

L0dec:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0ded:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0dee:

      /* opLDJimm_A_A (44) */
      register_J = 0x0df4;

      return;

L0df0:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0df4; return;};

      return;

L0df1:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0df2:

      /* opNOP_A_B (57) */

      return;

L0df3:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0df4:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L0df5:

      /* opNOP_A_B (57) */

      return;

L0df6:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0df7:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0df8:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0dfe;

      return;

L0dfa:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dfe; return;};

      return;

L0dfb:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L0dfc:

      /* opNOP_A_B (57) */

      return;

L0dfd:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L0dfe:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */

      return;

L0dff:

      /* opSTAdir_B_BB (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_B; /* set I register and store B to ram */

      return;

L0e00:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0e0b;

      return;

L0e02:

      /* opJMP_A_A (58) */
      {register_PC = 0x0e0b; return;};

      return;

L0e03:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e04:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L0e05:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* set I register */
      

      return;

L0e06:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0e07:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0e08:

      /* opLDJimm_A_A (43) */
      register_J = 0x0d93;

      return;

L0e0a:

      /* opJMP_A_A (58) */
      {register_PC = 0x0d93; return;};

      return;

L0e0b:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */

      return;

L0e0c:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0e0d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e0e:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L0e0f:

      /* opLDJimm_A_A (44) */
      register_J = 0x0e14;

      return;

L0e11:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e14; return;};

      return;

L0e12:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e13:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e14:

      /* Invariants: register_P = 0x0 register_I = 0x05 */;
      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L0e15:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e16:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e17:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e18:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e19:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e1f:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e20:

      /* opNOP_A_B (57) */

      return;

L0e21:

      /* opSTAdir_B_BB (d7) */
      ram[register_I = (register_P << 4) + 0x7] = register_B; /* set I register and store B to ram */

      return;

L0e22:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e23:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1 + register_A);

      return;

L0e24:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0e2a;

      return;

L0e26:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e2a; return;};

      return;

L0e27:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e28:

      /* opSUBdir_A_AA (77) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0e29:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L0e2a:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */

      return;

L0e2b:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0e2c:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e2d:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L0e2e:

      /* opLDJimm_A_A (43) */
      register_J = 0x0e33;

      return;

L0e30:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e33; return;};

      return;

L0e31:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e32:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e33:

      /* Invariants: register_P = 0x0 register_I = 0x06 */;
      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L0e34:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e35:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e36:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e37:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e38:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e39:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L0e3f:

      /* opNOP_A_B (57) */

      return;

L0e40:

      /* opSTAdir_B_BB (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_B; /* set I register and store B to ram */

      return;

L0e41:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e42:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x06]) ^ 0xFFF) + 1 + register_A);

      return;

L0e43:

      /* opLDJimm_A_A (49) */
      register_J = 0x0e49;

      return;

L0e45:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e49; return;};

      return;

L0e46:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e47:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x08]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0e48:

      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */

      return;

L0e49:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */

      return;

L0e4a:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L0e4b:

      /* opNOP_A_B (57) */

      return;

L0e4c:

      /* opSUBdir_B_AA (74) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = ram[register_I = (register_P << 4) + 0x04]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e4d:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0e5b;

      return;

L0e4f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0e5b; return;};

      return;

L0e50:

      /* opLDJimm_A_A (42) */
      register_J = 0x0e52;

      return;

L0e52:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x05]; /* set I register */
      

      return;

L0e53:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x7]))) & 0xFFF; /* do acc operation */

      return;

L0e54:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0e55:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L0e56:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x8]))) & 0xFFF; /* do acc operation */

      return;

L0e57:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0e58:

      /* opNOP_A_B (57) */

      return;

L0e59:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L0e5a:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0e52; return;};

      return;

L0e5b:

      /* Invariants: register_P = 0x0 register_I = 0x04 */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L0e5c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e5d:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x08]))) & 0xFFF; /* do acc operation */

      return;

L0e5e:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0e5f:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0e60:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0e61:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0e62:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0e63:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0e64:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0e65:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0e66:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x07]))) & 0xFFF; /* do acc operation */

      return;

L0e67:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0e68:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0e69:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0e6a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e6b:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0e6c:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x62]) ^ 0xFFF) + 1 + register_A);

      return;

L0e6d:

      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;

      return;

L0e6f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0ee7; return;};

      return;

L0e70:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L0e71:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x62]) ^ 0xFFF) + 1 + register_A);

      return;

L0e72:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0ee7; return;};

      return;

L0e73:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L0e74:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0e75:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x12]) ^ 0xFFF) + 1 + register_A);

      return;

L0e76:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; return;};

      return;

L0e77:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e78:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e79:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7b:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7d:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e7f:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0e80:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0016))) & 0xFFF; /* add values */

      return;

L0e82:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0e83:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */

      return;

L0e84:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0e85:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2c]; /* set I register */
      

      return;

L0e86:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0e87:

      /* opSUBdir_A_AA (77) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0e88:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L0e89:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e8a:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0e8b:

      /* opLDJimm_A_A (40) */
      register_J = 0x0e90;

      return;

L0e8d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e90; return;};

      return;

L0e8e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e8f:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0e90:

      /* Invariants: register_P = 0x0 register_I = 0x07 */;
      /* opSUBdir_A_AA (79) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0e91:

      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;

      return;

L0e93:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; return;};

      return;

L0e94:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0e95:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2d]; /* set I register */
      

      return;

L0e96:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0e97:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x08]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0e98:

      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */

      return;

L0e99:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L0e9a:

      /* opLDAdir_A_AA (a8) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x08]; /* set I register */
      

      return;

L0e9b:

      /* opLDJimm_A_A (40) */
      register_J = 0x0ea0;

      return;

L0e9d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ea0; return;};

      return;

L0e9e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0e9f:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0ea0:

      /* Invariants: register_P = 0x0 register_I = 0x08 */;
      /* opSUBdir_A_AA (79) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0ea1:

      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;

      return;

L0ea3:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; return;};

      return;

L0ea4:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L0ea5:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L0ea6:

      /* opSUBimm_A_AA (34) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x4) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0ea7:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L0ea8:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ea9:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L0eaa:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L0eab:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0eac:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ead:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0eae:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x6f] = 0x000; /* store acc to RAM */

      return;

L0eaf:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L0eb0:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L0eb1:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x71] = 0x00f; /* store acc to RAM */

      return;

L0eb2:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0eb3:

      /* opCMPdir_A_AA (b4) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x24]) ^ 0xFFF) + 1 + register_A);

      return;

L0eb4:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0eb5:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0eb6:

      /* opADDdir_A_AA (6b) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6b]))) & 0xFFF; /* do acc operation */

      return;

L0eb7:

      /* opSTAirg_A_A (e6) */
      ram[0x6b] = register_A; /* store acc */

      return;

L0eb8:

      /* opSUBimm_A_AA (3a) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0xa) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0eb9:

      /* opLDJimm_A_A (40) */
      register_J = 0x0ec0;

      return;

L0ebb:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0ec0; return;};

      return;

L0ebc:

      /* opSTAirg_A_A (e6) */
      ram[0x6b] = register_A; /* store acc */

      return;

L0ebd:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ebe:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L0ebf:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x6f] = 0x001; /* store acc to RAM */

      return;

L0ec0:

      /* Invariants: register_P = 0x6 */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0ec1:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x24]; /* set I register */
      

      return;

L0ec2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0ec3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0ec4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0ec5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L0ec6:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L0ec7:

      /* opADDdir_A_AA (6f) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6f]))) & 0xFFF; /* do acc operation */

      return;

L0ec8:

      /* opADDdir_A_AA (6a) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6a]))) & 0xFFF; /* do acc operation */

      return;

L0ec9:

      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */

      return;

L0eca:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ecb:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L0ecc:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0ecd:

      /* opSUBimm_A_AA (3a) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0xa) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0ece:

      /* opLDJimm_A_A (4f) */
      register_J = 0x0edf;

      return;

L0ed0:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0edf; return;};

      return;

L0ed1:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0ed2:

      /* opADDimm_A_AA (26) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x6))) & 0xFFF; /* add values, save carry */
      

      return;

L0ed3:

      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */

      return;

L0ed4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ed5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xf0;
      register_A = flag_C = acc_a0 = 0x00f0;

      return;

L0ed7:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0ed8:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0xa0) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0eda:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0edf; return;};

      return;

L0edb:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L0edc:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0060))) & 0xFFF; /* add values */

      return;

L0ede:

      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */

      return;

L0edf:

      /* Invariants: register_P = 0x6 register_I = 0x6a */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L0ee0:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x29]; /* set I register */
      

      return;

L0ee1:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L0ee2:

      /* opSTAirg_A_A (e6) */
      ram[0x29] = register_A; /* store acc */

      return;

L0ee3:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L0ee4:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0eac;

      return;

L0ee6:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0eac; return;};

      return;

L0ee7:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L0ee8:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x00]) ^ 0xFFF) + 1 + register_A);

      return;

L0ee9:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x00];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L0eea:

      /* opJMP_A_A (58) */
      {register_PC = register_J; return;};

      return;

L0eeb:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0eec:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L0eee:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0eef:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L0ef0:

      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */

      return;

L0ef1:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0ef2:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6c;
      register_A = flag_C = acc_a0 = 0x0f6c;

      return;

L0ef4:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x1a] = 0xf6c; /* store acc to RAM */

      return;

L0ef5:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0ef6:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0020;

      return;

L0ef8:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0ef9:

      /* opLDJimm_A_A (45) */
      register_J = 0x0f15;

      return;

L0efb:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f15; return;};

      return;

L0efc:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L0efd:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0efe:

      /* opLDJimm_A_A (41) */
      register_J = 0x0f21;

      return;

L0f00:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f21; return;};

      return;

L0f01:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */

      return;

L0f03:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L0f04:

      /* opLDJimm_A_A (45) */
      register_J = 0x0f35;

      return;

L0f06:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f35; return;};

      return;

L0f07:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L0f08:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1e]))) & 0xFFF; /* do acc operation */

      return;

L0f09:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0f0b:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f0c:

      /* opNOP_A_A (5f) */

      return;

L0f0d:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L0f0e:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0f0f:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0060))) & 0xFFF; /* add values */

      return;

L0f11:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0f12:

      /* opLDJimm_A_A (43) */
      register_J = 0x0f43;

      return;

L0f14:

      /* opJMP_A_A (58) */
      {register_PC = 0x0f43; return;};

      return;

L0f15:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x20 */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L0f16:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0f17:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f18:

      /* opNOP_A_A (5f) */

      return;

L0f19:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L0f1a:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L0f1b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4c;
      register_A = flag_C = acc_a0 = 0x0f4c;

      return;

L0f1d:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L0f1e:

      /* opLDJimm_A_A (4f) */
      register_J = 0x0f2f;

      return;

L0f20:

      /* opJMP_A_A (58) */
      {register_PC = 0x0f2f; return;};

      return;

L0f21:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0f22:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L0f23:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x40) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0f25:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f26:

      /* opNOP_A_A (5f) */

      return;

L0f27:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L0f28:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0f29:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0f2a:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0f2b:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0f2c:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */

      return;

L0f2e:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0f2f:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f30:

      /* opNOP_A_A (5f) */

      return;

L0f31:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L0f32:

      /* opLDJimm_A_A (49) */
      register_J = 0x0f49;

      return;

L0f34:

      /* opJMP_A_A (58) */
      {register_PC = 0x0f49; return;};

      return;

L0f35:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0f36:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0040))) & 0xFFF; /* add values */

      return;

L0f38:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L0f39:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f3a:

      /* opNOP_A_A (5f) */

      return;

L0f3b:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L0f3c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0f3d:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0f3e:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0f3f:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L0f40:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L0f41:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x60) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L0f43:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */

      return;

L0f44:

      /* opNOP_A_A (5f) */

      return;

L0f45:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L0f46:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L0f47:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L0f48:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L0f49:

      /* Invariants: register_P = 0x1 register_I = 0x1a */;
      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L0f4a:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x1f];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L0f4b:

      /* opJMP_A_A (58) */
      {register_PC = register_J; return;};
/*********************************************************/

      return;

L1000:

      state = state_A; /* Even if it's not! :-) */
      /* opNOP_A_A (5f) */

      return;

L1001:

      /* opNOP_A_A (5f) */

      return;

L1002:

      /* opLDJimm_A_A (40) */
      register_J = 0x0d70;

      return;

L1004:

      /* opJMP_A_A (58) */
      {register_PC = 0x1d70; return;};

      return;

L1005:

      /* opWAI_A_A (e5) */
      /* wait for a tick on the watchdog */
#ifndef DUALCPU
      CinemaClearScreen();
      bNewFrame = 1;
      bailOut = TRUE;
#endif
      register_PC = 0x1006;
      return; /* NOT REALLY A JUMP - ACTUALLY FOR GETTING BACK TO POLLING LOOP - NEEDS WORK */

      return;

L1006:

      /* opWAI_A_A (e5) */
      /* wait for a tick on the watchdog */
#ifndef DUALCPU
      CinemaClearScreen();
      bNewFrame = 1;
      bailOut = TRUE;
#endif
      register_PC = 0x1007;
      return; /* NOT REALLY A JUMP - ACTUALLY FOR GETTING BACK TO POLLING LOOP - NEEDS WORK */

      return;

L1007:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1008:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L1009:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L100a:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = 0x000; /* store acc to RAM */

      return;

L100b:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = 0x000; /* store acc to RAM */

      return;

L100c:

      /* opAWDirg_A_AA (f7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x11]))) & 0xFFF;
      set_watchdog();

      return;

L100d:

      /* opNOP_A_B (57) */

      return;

L100e:

      /* opLDAimm_B_AA (03) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0300;

      return;

L100f:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1010:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1011:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L1012:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1013:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x38) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1015:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1016:

      /* opLDJimm_A_A (45) */
      register_J = 0x0015;

      return;

L1018:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1015; return;};

      return;

L1019:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L101a:

      /* opSTAdir_A_A (d2) */
      ram[register_I = (register_P << 4) + 0x2] = 0x100; /* store acc to RAM */

      return;

L101b:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L101c:

      /* opSTAdir_A_A (dc) */
      ram[register_I = (register_P << 4) + 0xc] = 0x000; /* store acc to RAM */

      return;

L101d:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = 0x000; /* store acc to RAM */

      return;

L101e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L1020:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = 0x0ff; /* store acc to RAM */

      return;

L1021:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = 0x0ff; /* store acc to RAM */

      return;

L1022:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1023:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x31;
      register_A = flag_C = acc_a0 = 0x0031;

      return;

L1025:

      /* opSTAdir_A_A (d6) */
      ram[register_I = (register_P << 4) + 0x6] = 0x031; /* store acc to RAM */

      return;

L1026:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2e;
      register_A = flag_C = acc_a0 = 0x005f;

      return;

L1028:

      /* opSTAdir_A_A (d7) */
      ram[register_I = (register_P << 4) + 0x7] = 0x05f; /* store acc to RAM */

      return;

L1029:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L102a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x05;
      register_A = flag_C = acc_a0 = 0x0005;

      return;

L102c:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L102d:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x005; /* store acc to RAM */

      return;

L102e:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L1030:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L1072:

      /* Invariants: register_P = 0x1 register_I = 0x19 */;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1073:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1074:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L1075:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L1077:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1128; return;};

      return;

L1078:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1079:

      /* opOUTbi_A_A (96) */
      vgColour = 0x0f;

      return;

L107a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L1080:

      /* Invariants: register_P = 0x2 register_I = 0x00 register_A = 0x600 */;
      /* opNOP_A_A (5f) */

      return;

L1081:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1082:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1083:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x30]) ^ 0xFFF) + 1 + register_A);

      return;

L1084:

      /* opLDJimm_A_A (44) */
      register_J = 0x0094;

      return;

L1086:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1094; return;};

      return;

L1087:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1088:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x3b;
      register_A = flag_C = acc_a0 = 0x003b;

      return;

L108a:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L108b:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x03b; /* store acc to RAM */

      return;

L108c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L108d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x94;
      register_A = flag_C = acc_a0 = 0x0094;

      return;

L108f:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1090:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x094; /* store acc to RAM */

      return;

L1091:

      /* opLDJimm_A_A (47) */
      register_J = 0x00b7;

      return;

L1093:

      /* opJMP_A_A (58) */
      {register_PC = 0x10b7; return;};

      return;

L1094:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1095:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1096:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x40]) ^ 0xFFF) + 1 + register_A);

      return;

L1097:

      /* opLDJimm_A_A (47) */
      register_J = 0x00a7;

      return;

L1099:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x10a7; return;};

      return;

L109a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L109b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4b;
      register_A = flag_C = acc_a0 = 0x004b;

      return;

L109d:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L109e:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x04b; /* store acc to RAM */

      return;

L109f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L10a0:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa7;
      register_A = flag_C = acc_a0 = 0x00a7;

      return;

L10a2:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L10a3:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x0a7; /* store acc to RAM */

      return;

L10a4:

      /* opLDJimm_A_A (47) */
      register_J = 0x00b7;

      return;

L10a6:

      /* opJMP_A_A (58) */
      {register_PC = 0x10b7; return;};

      return;

L10a7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L10a8:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L10a9:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x50]) ^ 0xFFF) + 1 + register_A);

      return;

L10aa:

      /* opLDJimm_A_A (4d) */
      register_J = 0x047d;

      return;

L10ac:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x147d; return;};

      return;

L10ad:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L10ae:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x5b;
      register_A = flag_C = acc_a0 = 0x005b;

      return;

L10b0:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L10b1:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x05b; /* store acc to RAM */

      return;

L10b2:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L10b3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7d;
      register_A = flag_C = acc_a0 = 0x047d;

      return;

L10b5:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L10b6:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x47d; /* store acc to RAM */

      return;

L10b7:

      /* Invariants: register_P = 0x2 register_I = 0x2f */;
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L10b8:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L10b9:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10ba:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L10bb:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x26] = register_A; /* store acc to RAM */

      return;

L10bc:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L10bd:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x13] = register_A; /* store acc to RAM */

      return;

L10be:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L10bf:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L10c0:

      /* opLDJimm_A_A (49) */
      register_J = 0x0479;

      return;

L10c2:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1479; return;};

      return;

L10c3:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L10c4:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L10c5:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L10c6:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L10c7:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10c8:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L10c9:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x27] = register_A; /* store acc to RAM */

      return;

L10ca:

      /* opNOP_A_B (57) */

      return;

L10cb:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L10cc:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L10cd:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x27]) ^ 0xFFF) + 1 + register_A);

      return;

L10ce:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1479; return;};

      return;

L10cf:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L10d0:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L10d1:

      /* opLDJimm_A_A (43) */
      register_J = 0x00d3;

      return;

L10d3:

      /* opJDR_A_A (5a) */

      return;

L10d4:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L10d5:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L10d6:

      /* opSUBimm_A_AA (3c) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0xc) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L10d7:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L10d8:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L10d9:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10da:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = register_A; /* store acc to RAM */

      return;

L10db:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L10dc:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = register_A; /* store acc to RAM */

      return;

L10dd:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L10de:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L10df:

      /* opNOP_A_A (5f) */

      return;

L10e0:

      /* opSTAdir_A_A (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_A; /* store acc to RAM */

      return;

L10e1:

      /* opNOP_A_B (57) */

      return;

L10e2:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L10e3:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x07]; /* set I register */
      

      return;

L10e4:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L10e5:

      /* opNOP_A_A (5f) */

      return;

L10e6:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L10e7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L10e8:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L10e9:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L10ea:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L10eb:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L10ec:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L10ed:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L10ee:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L10ef:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L10f0:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L10f1:

      /* opLDIdir_A_A (c9) */
      register_I = ram[(register_P << 4) + 0x09]&0xff; /* set/mask new register_I */

      return;

L10f2:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10f3:

      /* opSTAdir_A_A (d0) */
      ram[register_I = (register_P << 4) + 0x0] = register_A; /* store acc to RAM */

      return;

L10f4:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L10f5:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L10f6:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L10f7:

      /* opLDIdir_A_A (c9) */
      register_I = ram[(register_P << 4) + 0x09]&0xff; /* set/mask new register_I */

      return;

L10f8:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10f9:

      /* opSTAdir_A_A (d1) */
      ram[register_I = (register_P << 4) + 0x1] = register_A; /* store acc to RAM */

      return;

L10fa:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L10fb:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L10fc:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L10fd:

      /* opLDIdir_A_A (c9) */
      register_I = ram[(register_P << 4) + 0x09]&0xff; /* set/mask new register_I */

      return;

L10fe:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L10ff:

      /* opSTAdir_A_A (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_A; /* store acc to RAM */

      return;

L1100:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* set I register */
      

      return;

L1101:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1102:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1103:

      /* opLDIdir_A_A (c9) */
      register_I = ram[(register_P << 4) + 0x09]&0xff; /* set/mask new register_I */

      return;

L1104:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1105:

      /* opSTAdir_A_A (de) */
      ram[register_I = (register_P << 4) + 0xe] = register_A; /* store acc to RAM */

      return;

L1106:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L1107:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x0d;
      register_A = flag_C = acc_a0 = 0x010d;

      return;

L1109:

      /* opSTAdir_A_A (df) */
      ram[register_I = (register_P << 4) + 0xf] = 0x10d; /* store acc to RAM */

      return;

L110a:

      /* opLDJimm_A_A (45) */
      register_J = 0x0575;

      return;

L110c:

      /* opJMP_A_A (58) */
      {register_PC = 0x1575; return;};

      return;

L110d:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L110e:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x1c] = register_A; /* store acc to RAM */

      return;

L110f:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1b]; /* set I register */
      

      return;

L1110:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x1d] = register_A; /* store acc to RAM */

      return;

L1111:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L1112:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1113:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L1114:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L1115:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1116:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L1117:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L1118:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x011e;

      return;

L111a:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0x11e; /* store acc to RAM */

      return;

L111b:

      /* opLDJimm_A_A (45) */
      register_J = 0x0575;

      return;

L111d:

      /* opJMP_A_A (58) */
      {register_PC = 0x1575; return;};

      return;

L111e:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L111f:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L1120:

      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */

      return;

L1121:

      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */

      return;

L1122:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1123:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = register_A; /* store acc to RAM */

      return;

L1124:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1125:

      /* opLDJimm_A_A (42) */
      register_J = 0x0072;

      return;

L1127:

      /* opJMP_A_A (58) */
      {register_PC = 0x1072; return;};

      return;

L1128:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1129:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L112b:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L112c:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x18] = 0x0ff; /* store acc to RAM */

      return;

L112d:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L112e:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L112f:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L1130:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1131:

      /* opSUBimm_A_AA (32) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x2) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1132:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1133:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = register_A; /* store acc to RAM */

      return;

L1134:

      /* Invariants: register_P = 0x0 register_I = 0x03 */;
      /* opLDPimm_A_A (80) */

      return;

L1135:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x03]; /* set I register */
      

      return;

L1136:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1137:

      /* opLDJimm_A_A (4c) */
      register_J = 0x039c;

      return;

L1139:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x139c; return;};
      

      return;

L113a:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L113b:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x16]; /* set I register */
      

      return;

L113c:

      /* opADDimm_A_AA (23) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x3))) & 0xFFF; /* add values, save carry */
      

      return;

L113d:

      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */

      return;

L113e:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L113f:

      /* opNOP_A_A (5f) */

      return;

L1140:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1 + register_A);

      return;

L1141:

      /* opLDJimm_A_A (41) */
      register_J = 0x0471;

      return;

L1143:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1471; return;};

      return;

L1144:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1146:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1147:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1148:

      /* opSTAdir_A_A (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_A; /* store acc to RAM */

      return;

L1149:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L114a:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L114b:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L114c:

      /* opNOP_A_A (5f) */

      return;

L114d:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L114f:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1150:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1151:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_A; /* store acc to RAM */

      return;

L1152:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L1153:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L1154:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1155:

      /* opNOP_A_A (5f) */

      return;

L1156:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1158:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1159:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L115a:

      /* opSTAdir_A_A (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_A; /* store acc to RAM */

      return;

L115b:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L115c:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x03]; /* set I register */
      

      return;

L115d:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L115e:

      /* opSTAirg_A_A (e6) */
      ram[0x03] = register_A; /* store acc */

      return;

L115f:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1160:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L1161:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1162:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L1163:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x14]; /* set I register */
      

      return;

L1164:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1165:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L1166:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1c]; /* set I register */
      

      return;

L1167:

      /* opADDdir_A_AA (6d) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1d]))) & 0xFFF; /* do acc operation */

      return;

L1168:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = register_A; /* store acc to RAM */

      return;

L1169:

      /* opNOP_A_B (57) */

      return;

L116a:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L116b:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L116c:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L116d:

      /* opLDJimm_A_A (42) */
      register_J = 0x0172;

      return;

L116f:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1172; return;};

      return;

L1170:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1171:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1172:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L1173:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1174:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1175:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1176:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1177:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1178:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1179:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L117a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L117b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L117c:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L117d:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L117e:

      /* opNOP_A_B (57) */

      return;

L117f:

      /* opSTAdir_B_BB (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_B; /* set I register and store B to ram */

      return;

L1180:

      /* opLDJimm_A_A (46) */
      register_J = 0x0186;

      return;

L1182:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1186; return;};

      return;

L1183:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1184:

      /* opSUBdir_A_AA (7f) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1185:

      /* opSTAirg_A_A (e6) */
      ram[0x1f] = register_A; /* store acc */

      return;

L1186:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x14]; /* set I register */
      

      return;

L1187:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x13]))) & 0xFFF; /* do acc operation */

      return;

L1188:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L1189:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L118a:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L118b:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L118c:

      /* opNOP_A_B (57) */

      return;

L118d:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L118e:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L118f:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1c]; /* set I register */
      

      return;

L1190:

      /* opLDJimm_A_A (45) */
      register_J = 0x0195;

      return;

L1192:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1195; return;};

      return;

L1193:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1194:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1195:

      /* Invariants: register_P = 0x1 register_I = 0x1c */;
      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L1196:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1197:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1198:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1199:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L119f:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11a0:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1c]) ^ 0xFFF) + 1 + register_A);

      return;

L11a1:

      /* opNOP_A_B (57) */

      return;

L11a2:

      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */

      return;

L11a3:

      /* opLDJimm_A_A (49) */
      register_J = 0x01a9;

      return;

L11a5:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x11a9; return;};

      return;

L11a6:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L11a7:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11a8:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L11a9:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */

      return;

L11aa:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L11ab:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11ac:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1d]; /* set I register */
      

      return;

L11ad:

      /* opLDJimm_A_A (42) */
      register_J = 0x01b2;

      return;

L11af:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x11b2; return;};

      return;

L11b0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L11b1:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L11b2:

      /* Invariants: register_P = 0x1 register_I = 0x1d */;
      /* opCMPdir_A_AA (b4) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1 + register_A);

      return;

L11b3:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b4:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b5:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b6:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b7:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b8:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11b9:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11ba:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11bb:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11bc:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11bd:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1d]) ^ 0xFFF) + 1 + register_A);

      return;

L11be:

      /* opNOP_A_B (57) */

      return;

L11bf:

      /* opSTAdir_B_BB (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_B; /* set I register and store B to ram */

      return;

L11c0:

      /* opLDJimm_A_A (46) */
      register_J = 0x01c6;

      return;

L11c2:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x11c6; return;};

      return;

L11c3:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L11c4:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11c5:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L11c6:

      /* Invariants: register_P = 0x1 register_I = 0x14 register_A = 0x800 */;
      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L11c7:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11c8:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L11c9:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L11ca:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L11cb:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11cc:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L11cd:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L11ce:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x14]; /* set I register */
      

      return;

L11cf:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L11d0:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L11d1:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x15]; /* set I register */
      

      return;

L11d2:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L11d3:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L11d4:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L11d5:

      /* opADDdir_A_AA (6b) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1b]))) & 0xFFF; /* do acc operation */

      return;

L11d6:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = register_A; /* store acc to RAM */

      return;

L11d7:

      /* opNOP_A_B (57) */

      return;

L11d8:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L11d9:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11da:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L11db:

      /* opLDJimm_A_A (40) */
      register_J = 0x01e0;

      return;

L11dd:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x11e0; return;};

      return;

L11de:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L11df:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L11e0:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opCMPdir_A_AA (b4) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1 + register_A);

      return;

L11e1:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e2:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e3:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e4:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e5:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e6:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e7:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e8:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11e9:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L11ea:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11eb:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L11ec:

      /* opNOP_A_B (57) */

      return;

L11ed:

      /* opSTAdir_B_BB (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_B; /* set I register and store B to ram */

      return;

L11ee:

      /* opLDJimm_A_A (44) */
      register_J = 0x01f4;

      return;

L11f0:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x11f4; return;};

      return;

L11f1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L11f2:

      /* opSUBdir_A_AA (7f) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11f3:

      /* opSTAirg_A_A (e6) */
      ram[0x1f] = register_A; /* store acc */

      return;

L11f4:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x15]; /* set I register */
      

      return;

L11f5:

      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x14]))) & 0xFFF; /* do acc operation */

      return;

L11f6:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L11f7:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L11f8:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L11f9:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L11fa:

      /* opNOP_A_B (57) */

      return;

L11fb:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L11fc:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L11fd:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L11fe:

      /* opLDJimm_A_A (43) */
      register_J = 0x0203;

      return;

L1200:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1203; return;};

      return;

L1201:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1202:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1203:

      /* Invariants: register_P = 0x1 register_I = 0x1a */;
      /* opCMPdir_A_AA (b4) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1 + register_A);

      return;

L1204:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1205:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1206:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1207:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1208:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1209:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L120a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L120b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L120c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L120d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L120e:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1a]) ^ 0xFFF) + 1 + register_A);

      return;

L120f:

      /* opNOP_A_B (57) */

      return;

L1210:

      /* opSTAdir_B_BB (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_B; /* set I register and store B to ram */

      return;

L1211:

      /* opLDJimm_A_A (47) */
      register_J = 0x0217;

      return;

L1213:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1217; return;};

      return;

L1214:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1215:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1216:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L1217:

      /* Invariants: register_P = 0x1 register_I = 0x14 */;
      /* opNOP_A_B (57) */

      return;

L1218:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L1219:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L121a:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1b]; /* set I register */
      

      return;

L121b:

      /* opLDJimm_A_A (40) */
      register_J = 0x0220;

      return;

L121d:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1220; return;};

      return;

L121e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L121f:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1220:

      /* Invariants: register_P = 0x1 register_I = 0x1b */;
      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1 + register_A);

      return;

L1221:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1222:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1223:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1224:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1225:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1226:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1227:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1228:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1229:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L122a:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L122b:

      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1b]) ^ 0xFFF) + 1 + register_A);

      return;

L122c:

      /* opNOP_A_B (57) */

      return;

L122d:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L122e:

      /* opLDJimm_A_A (44) */
      register_J = 0x0234;

      return;

L1230:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1234; return;};

      return;

L1231:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1232:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1233:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L1234:

      /* Invariants: register_P = 0x1 register_I = 0x15 */;
      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L1235:

      /* opSUBdir_A_AA (74) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x14]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1236:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1237:

      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

      return;

L1238:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L1239:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L123a:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L123b:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L123c:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L123d:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L123e:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L123f:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x15]; /* set I register */
      

      return;

L1240:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1241:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L1242:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1c]; /* set I register */
      

      return;

L1243:

      /* opADDdir_A_AA (6d) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1d]))) & 0xFFF; /* do acc operation */

      return;

L1244:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = register_A; /* store acc to RAM */

      return;

L1245:

      /* opNOP_A_B (57) */

      return;

L1246:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L1247:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1248:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L1249:

      /* opLDJimm_A_A (4e) */
      register_J = 0x024e;

      return;

L124b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x124e; return;};

      return;

L124c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L124d:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L124e:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L124f:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1250:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1251:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1252:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1253:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1254:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1255:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1256:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1257:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1258:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1259:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L125a:

      /* opNOP_A_B (57) */

      return;

L125b:

      /* opSTAdir_B_BB (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_B; /* set I register and store B to ram */

      return;

L125c:

      /* opLDJimm_A_A (42) */
      register_J = 0x0262;

      return;

L125e:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1262; return;};

      return;

L125f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1260:

      /* opSUBdir_A_AA (7f) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1261:

      /* opSTAirg_A_A (e6) */
      ram[0x1f] = register_A; /* store acc */

      return;

L1262:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x15]; /* set I register */
      

      return;

L1263:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x13]))) & 0xFFF; /* do acc operation */

      return;

L1264:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L1265:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1266:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1267:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L1268:

      /* opNOP_A_B (57) */

      return;

L1269:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L126a:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L126b:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1c]; /* set I register */
      

      return;

L126c:

      /* opLDJimm_A_A (41) */
      register_J = 0x0271;

      return;

L126e:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1271; return;};

      return;

L126f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1270:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1271:

      /* Invariants: register_P = 0x1 register_I = 0x1c */;
      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1 + register_A);

      return;

L1272:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1273:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1274:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1275:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1276:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1277:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1278:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1279:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L127a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L127b:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L127c:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1c]) ^ 0xFFF) + 1 + register_A);

      return;

L127d:

      /* opNOP_A_B (57) */

      return;

L127e:

      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */

      return;

L127f:

      /* opLDJimm_A_A (45) */
      register_J = 0x0285;

      return;

L1281:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1285; return;};

      return;

L1282:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1283:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1284:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L1285:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */

      return;

L1286:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L1287:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1288:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1d]; /* set I register */
      

      return;

L1289:

      /* opLDJimm_A_A (4e) */
      register_J = 0x028e;

      return;

L128b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x128e; return;};

      return;

L128c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L128d:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L128e:

      /* Invariants: register_P = 0x1 register_I = 0x1d */;
      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1 + register_A);

      return;

L128f:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1290:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1291:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1292:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1293:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1294:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1295:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1296:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1297:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1298:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1299:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1d]) ^ 0xFFF) + 1 + register_A);

      return;

L129a:

      /* opNOP_A_B (57) */

      return;

L129b:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L129c:

      /* opLDJimm_A_A (42) */
      register_J = 0x02a2;

      return;

L129e:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12a2; return;};

      return;

L129f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L12a0:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L12a1:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L12a2:

      /* Invariants: register_P = 0x1 register_I = 0x15 register_A = 0x800 */;
      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L12a3:

      /* opSUBdir_A_AA (73) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x13]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L12a4:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L12a5:

      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

      return;

L12a6:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1f]; /* set I register */
      

      return;

L12a7:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x15]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L12a8:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L12a9:

      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

      return;

L12aa:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x13]; /* set I register */
      

      return;

L12ab:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12ac:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12ad:

      /* opADDdir_A_AA (60) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x10]))) & 0xFFF; /* do acc operation */

      return;

L12ae:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L12af:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = register_A; /* store acc to RAM */

      return;

L12b0:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L12b1:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x14]; /* set I register */
      

      return;

L12b2:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12b3:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12b4:

      /* opADDdir_A_AA (61) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x11]))) & 0xFFF; /* do acc operation */

      return;

L12b5:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L12b6:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L12b7:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L12b8:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x15]; /* set I register */
      

      return;

L12b9:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12ba:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L12bb:

      /* opADDdir_A_AA (62) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x12]))) & 0xFFF; /* do acc operation */

      return;

L12bc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L12bd:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L12be:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */

      return;

L12bf:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L12c0:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x0d] = 0x200; /* store acc to RAM */

      return;

L12c1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L12c2:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x000; /* store acc to RAM */

      return;

L12c3:

      /* Invariants: register_P = 0x0 register_I = 0x04 register_A = 0x00 */;
      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0d]; /* set I register */
      

      return;

L12c4:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L12c5:

      /* opLDJimm_A_A (43) */
      register_J = 0x0333;

      return;

L12c7:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1333; return;};

      return;

L12c8:

      /* opNOP_A_B (57) */

      return;

L12c9:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L12ca:

      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12cb:

      /* opNOP_A_B (57) */

      return;

L12cc:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12cd:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L12ce:

      /* opLDJimm_A_A (44) */
      register_J = 0x02d4;

      return;

L12d0:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12d4; return;};

      return;

L12d1:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L12d2:

      /* opNOP_A_B (57) */

      return;

L12d3:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L12d4:

      /* Invariants: register_P = 0x0 register_I = 0x09 register_A = 0x400 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12d5:

      /* opNOP_A_B (57) */

      return;

L12d6:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12d7:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L12d8:

      /* opLDJimm_A_A (4e) */
      register_J = 0x02de;

      return;

L12da:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12de; return;};

      return;

L12db:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L12dc:

      /* opNOP_A_B (57) */

      return;

L12dd:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L12de:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12df:

      /* opNOP_A_B (57) */

      return;

L12e0:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12e1:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L12e2:

      /* opLDJimm_A_A (48) */
      register_J = 0x02e8;

      return;

L12e4:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12e8; return;};

      return;

L12e5:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L12e6:

      /* opNOP_A_B (57) */

      return;

L12e7:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L12e8:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12e9:

      /* opNOP_A_B (57) */

      return;

L12ea:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12eb:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L12ec:

      /* opLDJimm_A_A (42) */
      register_J = 0x02f2;

      return;

L12ee:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12f2; return;};

      return;

L12ef:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L12f0:

      /* opNOP_A_B (57) */

      return;

L12f1:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L12f2:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12f3:

      /* opNOP_A_B (57) */

      return;

L12f4:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12f5:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L12f6:

      /* opLDJimm_A_A (4c) */
      register_J = 0x02fc;

      return;

L12f8:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x12fc; return;};

      return;

L12f9:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L12fa:

      /* opNOP_A_B (57) */

      return;

L12fb:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L12fc:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L12fd:

      /* opNOP_A_B (57) */

      return;

L12fe:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L12ff:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1300:

      /* opLDJimm_A_A (46) */
      register_J = 0x0306;

      return;

L1302:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1306; return;};

      return;

L1303:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L1304:

      /* opNOP_A_B (57) */

      return;

L1305:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L1306:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L1307:

      /* opNOP_A_B (57) */

      return;

L1308:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L1309:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L130a:

      /* opLDJimm_A_A (40) */
      register_J = 0x0310;

      return;

L130c:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1310; return;};

      return;

L130d:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L130e:

      /* opNOP_A_B (57) */

      return;

L130f:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L1310:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L1311:

      /* opNOP_A_B (57) */

      return;

L1312:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L1313:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1314:

      /* opLDJimm_A_A (4a) */
      register_J = 0x031a;

      return;

L1316:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x131a; return;};

      return;

L1317:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L1318:

      /* opNOP_A_B (57) */

      return;

L1319:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L131a:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L131b:

      /* opNOP_A_B (57) */

      return;

L131c:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L131d:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L131e:

      /* opLDJimm_A_A (44) */
      register_J = 0x0324;

      return;

L1320:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1324; return;};

      return;

L1321:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L1322:

      /* opNOP_A_B (57) */

      return;

L1323:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L1324:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opLSLDe_A_AA (ef) */
      cmp_new = 0x0FEF; cmp_old = acc_a0 = register_A; flag_C = (0x0FEF + register_A);
      register_A = (register_A << 1) & 0xFFF; register_B = (register_B << 1) & 0xFFF;

      return;

L1325:

      /* opNOP_A_B (57) */

      return;

L1326:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L1327:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1328:

      /* opLDJimm_A_A (4e) */
      register_J = 0x032e;

      return;

L132a:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x132e; return;};

      return;

L132b:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();

      return;

L132c:

      /* opNOP_A_B (57) */

      return;

L132d:

      /* opSUBimm_B_AA (31) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = 0x1) ^ 0xFFF) + 1)) & 0xFFF; /* 1's-comp add */

      return;

L132e:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */

      return;

L132f:

      /* opSTAdir_B_BB (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_B; /* set I register and store B to ram */

      return;

L1330:

      /* opLDJimm_A_A (4b) */
      register_J = 0x033b;

      return;

L1332:

      /* opJMP_A_A (58) */
      {register_PC = 0x133b; return;};

      return;

L1333:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1334:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L1335:

      /* opLDAdir_A_AA (a4) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* set I register */
      

      return;

L1336:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1337:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1338:

      /* opLDJimm_A_A (43) */
      register_J = 0x02c3;

      return;

L133a:

      /* opJMP_A_A (58) */
      {register_PC = 0x12c3; return;};

      return;

L133b:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */

      return;

L133c:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L133d:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L133e:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L133f:

      /* opLDJimm_A_A (44) */
      register_J = 0x0344;

      return;

L1341:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1344; return;};

      return;

L1342:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1343:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1344:

      /* Invariants: register_P = 0x0 register_I = 0x05 */;
      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L1345:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1346:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1347:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1348:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1349:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L134f:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1350:

      /* opNOP_A_B (57) */

      return;

L1351:

      /* opSTAdir_B_BB (d7) */
      ram[register_I = (register_P << 4) + 0x7] = register_B; /* set I register and store B to ram */

      return;

L1352:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1353:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1 + register_A);

      return;

L1354:

      /* opLDJimm_A_A (4a) */
      register_J = 0x035a;

      return;

L1356:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x135a; return;};

      return;

L1357:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1358:

      /* opSUBdir_A_AA (77) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1359:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L135a:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */

      return;

L135b:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L135c:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L135d:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L135e:

      /* opLDJimm_A_A (43) */
      register_J = 0x0363;

      return;

L1360:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1363; return;};

      return;

L1361:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1362:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1363:

      /* Invariants: register_P = 0x0 register_I = 0x06 */;
      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x09]) ^ 0xFFF) + 1 + register_A);

      return;

L1364:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1365:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1366:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1367:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1368:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1369:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136a:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136b:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136c:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136d:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136e:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L136f:

      /* opNOP_A_B (57) */

      return;

L1370:

      /* opSTAdir_B_BB (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_B; /* set I register and store B to ram */

      return;

L1371:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1372:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x06]) ^ 0xFFF) + 1 + register_A);

      return;

L1373:

      /* opLDJimm_A_A (49) */
      register_J = 0x0379;

      return;

L1375:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1379; return;};

      return;

L1376:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1377:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x08]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1378:

      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */

      return;

L1379:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */

      return;

L137a:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L137b:

      /* opNOP_A_B (57) */

      return;

L137c:

      /* opSUBdir_B_AA (74) */
      acc_a0 = register_A;
      register_B = (flag_C = ((cmp_old = register_B) + ((cmp_new = ram[register_I = (register_P << 4) + 0x04]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L137d:

      /* opLDJimm_A_A (4b) */
      register_J = 0x038b;

      return;

L137f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x138b; return;};

      return;

L1380:

      /* opLDJimm_A_A (42) */
      register_J = 0x0382;

      return;

L1382:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x05]; /* set I register */
      

      return;

L1383:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x7]))) & 0xFFF; /* do acc operation */

      return;

L1384:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1385:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* set I register */
      

      return;

L1386:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x8]))) & 0xFFF; /* do acc operation */

      return;

L1387:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1388:

      /* opNOP_A_B (57) */

      return;

L1389:

      /* opADDimm_B_AA (21) */
      acc_a0 = register_A; /* save old accA bit0 */
      cmp_old = register_B; /* store old acc for later */
      register_B = (flag_C = (register_B + (cmp_new = 0x01))) & 0xFFF; /* add values */

      return;

L138a:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1382; return;};

      return;

L138b:

      /* Invariants: register_P = 0x0 register_I = 0x04 */;
      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x03]; /* set I register */
      

      return;

L138c:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00e0))) & 0xFFF; /* add values */

      return;

L138e:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L138f:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1390:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = register_A; /* store acc to RAM */

      return;

L1391:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1392:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x07]))) & 0xFFF; /* do acc operation */

      return;

L1393:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L1394:

      /* opLDIdir_A_A (ce) */
      register_I = ram[0x0e]&0xff; /* set new register_I (8 bits) */

      return;

L1395:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1396:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L1397:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1398:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x08]))) & 0xFFF; /* do acc operation */

      return;

L1399:

      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */

      return;

L139a:

      /* opLDIdir_A_A (cf) */
      register_I = ram[0x0f]&0xff; /* set new register_I (8 bits) */

      return;

L139b:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L139c:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L139d:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x17]; /* set I register */
      

      return;

L139e:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L139f:

      /* opNOP_A_A (5f) */

      return;

L13a0:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1 + register_A);

      return;

L13a1:

      /* opLDJimm_A_A (49) */
      register_J = 0x0479;

      return;

L13a3:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1479; return;};

      return;

L13a4:

      /* opLDJimm_A_A (44) */
      register_J = 0x0134;

      return;

L13a6:

      /* opJDR_A_A (5a) */

      return;

L13a7:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L13a8:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x0b] = register_A; /* store acc to RAM */

      return;

L13a9:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L13aa:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L13ab:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L13ac:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L13ad:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L13ae:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x03]) ^ 0xFFF) + 1 + register_A);

      return;

L13af:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1134; return;};

      return;

L13b0:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x0a] = register_A; /* store acc to RAM */

      return;

L13b1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L13b2:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L13b3:

      /* opCMPdir_A_AA (bb) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0b]) ^ 0xFFF) + 1 + register_A);

      return;

L13b4:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L13b5:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L13b6:

      /* opSTAirg_A_A (e6) */
      ram[0x0b] = register_A; /* store acc */

      return;

L13b7:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x03]) ^ 0xFFF) + 1 + register_A);

      return;

L13b8:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1134; return;};

      return;

L13b9:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0a]; /* set I register */
      

      return;

L13ba:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00e0))) & 0xFFF; /* add values */

      return;

L13bc:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L13bd:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L13be:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = register_A; /* store acc to RAM */

      return;

L13bf:

      /* opLDIdir_A_A (cf) */
      register_I = ram[0x0f]&0xff; /* set new register_I (8 bits) */

      return;

L13c0:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L13c1:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L13c2:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L13c3:

      /* opCMPdir_A_AA (b6) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x06]) ^ 0xFFF) + 1 + register_A);

      return;

L13c4:

      /* opLDJimm_A_A (44) */
      register_J = 0x0454;

      return;

L13c6:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1454; return;};

      return;

L13c7:

      /* opLDIdir_A_A (ce) */
      register_I = ram[0x0e]&0xff; /* set new register_I (8 bits) */

      return;

L13c8:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L13c9:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = register_A; /* store acc to RAM */

      return;

L13ca:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L13cb:

      /* opCMPdir_A_AA (b5) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1 + register_A);

      return;

L13cc:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1454; return;};

      return;

L13cd:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0b]; /* set I register */
      

      return;

L13ce:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00e0))) & 0xFFF; /* add values */

      return;

L13d0:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L13d1:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L13d2:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = register_A; /* store acc to RAM */

      return;

L13d3:

      /* opLDIdir_A_A (cf) */
      register_I = ram[0x0f]&0xff; /* set new register_I (8 bits) */

      return;

L13d4:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L13d5:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L13d6:

      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L13d7:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x08]) ^ 0xFFF) + 1 + register_A);

      return;

L13d8:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1454; return;};

      return;

L13d9:

      /* opLDIdir_A_A (ce) */
      register_I = ram[0x0e]&0xff; /* set new register_I (8 bits) */

      return;

L13da:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L13db:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L13dc:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L13dd:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1 + register_A);

      return;

L13de:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1454; return;};

      return;

L13df:

      /* opLDAdir_A_AA (a8) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x08]; /* set I register */
      

      return;

L13e0:

      /* opSUBdir_A_AA (76) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x06]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L13e1:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x08] = register_A; /* store acc to RAM */

      return;

L13e2:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L13e3:

      /* opSUBdir_A_AA (75) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x05]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L13e4:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L13e5:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L13e6:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L13e7:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L13e8:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x19]) ^ 0xFFF) + 1 + register_A);

      return;

L13e9:

      /* opLDJimm_A_A (4e) */
      register_J = 0x041e;

      return;

L13eb:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x141e; return;};

      return;

L13ec:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L13ed:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L13ee:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L13ef:

      /* opSUBdir_A_AA (76) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x26]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L13f0:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L13f1:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L13f2:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L13f3:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x0c] = register_A; /* store acc to RAM */

      return;

L13f4:

      /* opNOP_A_B (57) */

      return;

L13f5:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L13f6:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L13f7:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L13f8:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L13f9:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0c]) ^ 0xFFF) + 1 + register_A);

      return;

L13fa:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L13fb:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L13fc:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L13fd:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L13fe:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L13ff:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1400:

      /* opNOP_A_B (57) */

      return;

L1401:

      /* opADDdir_B_AA (66) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x26]))) & 0xFFF; /* do acc operation */

      return;

L1402:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1403:

      /* opNOP_A_B (57) */

      return;

L1404:

      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */

      return;

L1405:

      /* opLDPimm_A_A (80) */

      return;

L1406:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L1407:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1408:

      /* opSUBdir_A_AA (77) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x27]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1409:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L140a:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L140b:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L140c:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x0c] = register_A; /* store acc to RAM */

      return;

L140d:

      /* opNOP_A_B (57) */

      return;

L140e:

      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;

      return;

L140f:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1410:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x19]; /* set I register */
      

      return;

L1411:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1412:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0c]) ^ 0xFFF) + 1 + register_A);

      return;

L1413:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1414:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1415:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1416:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1417:

      /* opMULirg_A_AA (e3) */
      cmp_new = ram[register_I];
      register_B <<= 4; /* get sign bit 15 */
      register_B |= (register_A >> 8); /* bring in A high nibble */
      register_A = ((register_A & 0xFF) << 8) | (0xe3); /* pick up opcode */
      if (register_A & 0x100) /* 1bit shifted out? */ {
        acc_a0 = register_A = (register_A >> 8) | ((register_B & 0xFF) << 8);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)4)) /* SAR */;
        cmp_old = register_B & 0x0F;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)1)) /* SAR */;
        register_B &= 0xFFF;
        flag_C = (register_B += cmp_new);
        register_B &= 0xFFF;
      } else {
        register_A = (register_A >> 8) | /* Bhigh | Alow */ ((register_B & 0xFF) << 8);
        cmp_old = acc_a0 = register_A & 0xFFF;
        flag_C = (cmp_old + cmp_new);
        register_A >>= 1;
        register_A &= 0xFFF;
        register_B = ((signed short int)(((signed short int)register_B) >> (signed short int)5)) /* SAR */;
        register_B &= 0xFFF;
      }

      return;

L1418:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1419:

      /* opNOP_A_B (57) */

      return;

L141a:

      /* opADDdir_B_AA (67) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x27]))) & 0xFFF; /* do acc operation */

      return;

L141b:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L141c:

      /* opNOP_A_B (57) */

      return;

L141d:

      /* opSTAdir_B_BB (d6) */
      ram[register_I = (register_P << 4) + 0x6] = register_B; /* set I register and store B to ram */

      return;

L141e:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L141f:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L1420:

      /* opNOP_A_B (57) */

      return;

L1421:

      /* opLDAdir_B_AA (a6) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x06]; /* new acc value */

      return;

L1422:

      /* opLDJimm_A_A (42) */
      register_J = 0x0422;

      return;

L1424:

      /* opJDR_A_A (5a) */

      return;

L1425:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L1426:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1427:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L1428:

      /* opLDJimm_A_A (4d) */
      register_J = 0x042d;

      return;

L142a:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x142d; return;};

      return;

L142b:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L142c:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L142d:

      /* Invariants: register_P = 0x0 register_I = 0x07 */;
      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x0c] = register_A; /* store acc to RAM */

      return;

L142e:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L142f:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1430:

      /* opLDAdir_A_AA (a8) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x08]; /* set I register */
      

      return;

L1431:

      /* opLDJimm_A_A (46) */
      register_J = 0x0436;

      return;

L1433:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1436; return;};

      return;

L1434:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1435:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1436:

      /* Invariants: register_P = 0x0 register_I = 0x08 */;
      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = register_A; /* store acc to RAM */

      return;

L1437:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x0e]))) & 0xFFF; /* do acc operation */

      return;

L1438:

      /* opSTAirg_A_A (e6) */
      ram[0x0e] = register_A; /* store acc */

      return;

L1439:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L143a:

      /* opLDJimm_A_A (44) */
      register_J = 0x0454;

      return;

L143c:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1454; return;};

      return;

L143d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L143e:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x08) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1440:

      /* Invariants: register_P = 0x0 register_I = 0x0e */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1441:

      /* opLDJimm_A_A (40) */
      register_J = 0x0440;

      return;

L1443:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1440; return;};

      return;

L1444:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1445:

      /* opSUBimm_A_AA (37) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x7) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1446:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0f]) ^ 0xFFF) + 1 + register_A);

      return;

L1447:

      /* opLDJimm_A_A (4b) */
      register_J = 0x045b;

      return;

L1449:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x145b; return;};

      return;

L144a:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0c]) ^ 0xFFF) + 1 + register_A);

      return;

L144b:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x145b; return;};

      return;

L144c:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L144d:

      /* opNOP_A_B (57) */

      return;

L144e:

      /* opLDAdir_B_AA (a8) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x08]; /* new acc value */

      return;

L144f:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L1450:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x05]))) & 0xFFF; /* do acc operation */

      return;

L1451:

      /* opNOP_A_B (57) */

      return;

L1452:

      /* opADDdir_B_AA (66) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = 0x06]))) & 0xFFF; /* do acc operation */

      return;

L1453:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L1454:

      /* Invariants: register_P = 0x0 */;
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1455:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x17]; /* set I register */
      

      return;

L1456:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1457:

      /* opSTAirg_A_A (e6) */
      ram[0x17] = register_A; /* store acc */

      return;

L1458:

      /* opLDJimm_A_A (4c) */
      register_J = 0x039c;

      return;

L145a:

      /* opJMP_A_A (58) */
      {register_PC = 0x139c; return;};

      return;

L145b:

      /* opNOP_A_B (57) */

      return;

L145c:

      /* opLDAdir_B_AA (a8) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x08]; /* new acc value */

      return;

L145d:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L145e:

      /* opNOP_A_B (57) */

      return;

L145f:

      /* opSTAirg_B_BB (e6) */
      ram[register_I] = register_B; /* store acc */

      return;

L1460:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x07]; /* set I register */
      

      return;

L1461:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1462:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1463:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L1464:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x5]))) & 0xFFF; /* do acc operation */

      return;

L1465:

      /* opNOP_A_B (57) */

      return;

L1466:

      /* opADDdir_B_AA (66) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = (register_P << 4) + 0x06]))) & 0xFFF; /* do acc operation */

      return;

L1467:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L1468:

      /* opLDAdir_A_AA (a8) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x08]; /* set I register */
      

      return;

L1469:

      /* opADDdir_A_AA (66) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x6]))) & 0xFFF; /* do acc operation */

      return;

L146a:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L146b:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x07]; /* set I register */
      

      return;

L146c:

      /* opADDdir_A_AA (65) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x5]))) & 0xFFF; /* do acc operation */

      return;

L146d:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L146e:

      /* opLDJimm_A_A (4e) */
      register_J = 0x041e;

      return;

L1470:

      /* opJMP_A_A (58) */
      {register_PC = 0x141e; return;};

      return;

L1471:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1472:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x03]; /* set I register */
      

      return;

L1473:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1474:

      /* opSTAirg_A_A (e6) */
      ram[0x03] = register_A; /* store acc */

      return;

L1475:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1476:

      /* opLDJimm_A_A (4c) */
      register_J = 0x039c;

      return;

L1478:

      /* opJMP_A_A (58) */
      {register_PC = 0x139c; return;};

      return;

L1479:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L147a:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x2f]) ^ 0xFFF) + 1 + register_A);

      return;

L147b:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x2f];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L147c:

      /* opJMP_A_A (58) */
      {register_PC = 0x1000 | register_J; return;};

      return;

L147d:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L147e:

      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x00]) ^ 0xFFF) + 1 + register_A);

      return;

L147f:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x00];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L1480:

      /* opJMP_A_A (58) */
      {register_PC = 0x1000 | register_J; return;};

      return;

L1575:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1576:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L1578:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L1579:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L157a:

      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */

      return;

L157b:

      /* opLDAimm_A_AA (05) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0500;

      return;

L157c:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xf6;
      register_A = flag_C = acc_a0 = 0x05f6;

      return;

L157e:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x1a] = 0x5f6; /* store acc to RAM */

      return;

L157f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1580:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0020;

      return;

L1582:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L1583:

      /* opLDJimm_A_A (4f) */
      register_J = 0x059f;

      return;

L1585:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x159f; return;};

      return;

L1586:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1587:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L1588:

      /* opLDJimm_A_A (4b) */
      register_J = 0x05ab;

      return;

L158a:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x15ab; return;};

      return;

L158b:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */

      return;

L158d:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1 + register_A);

      return;

L158e:

      /* opLDJimm_A_A (4f) */
      register_J = 0x05bf;

      return;

L1590:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x15bf; return;};

      return;

L1591:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L1592:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1e]))) & 0xFFF; /* do acc operation */

      return;

L1593:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1595:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1596:

      /* opNOP_A_A (5f) */

      return;

L1597:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L1598:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L1599:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0060))) & 0xFFF; /* add values */

      return;

L159b:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L159c:

      /* opLDJimm_A_A (4d) */
      register_J = 0x05cd;

      return;

L159e:

      /* opJMP_A_A (58) */
      {register_PC = 0x15cd; return;};

      return;

L159f:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x20 */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L15a0:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L15a1:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L15a2:

      /* opNOP_A_A (5f) */

      return;

L15a3:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L15a4:

      /* opLDAimm_A_AA (05) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0500;

      return;

L15a5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd6;
      register_A = flag_C = acc_a0 = 0x05d6;

      return;

L15a7:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L15a8:

      /* opLDJimm_A_A (49) */
      register_J = 0x05b9;

      return;

L15aa:

      /* opJMP_A_A (58) */
      {register_PC = 0x15b9; return;};

      return;

L15ab:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x40 */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L15ac:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1e]))) & 0xFFF; /* do acc operation */

      return;

L15ad:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x40) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L15af:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L15b0:

      /* opNOP_A_A (5f) */

      return;

L15b1:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L15b2:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L15b3:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L15b4:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L15b5:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L15b6:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */

      return;

L15b8:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0xe]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L15b9:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L15ba:

      /* opNOP_A_A (5f) */

      return;

L15bb:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L15bc:

      /* opLDJimm_A_A (43) */
      register_J = 0x05d3;

      return;

L15be:

      /* opJMP_A_A (58) */
      {register_PC = 0x15d3; return;};

      return;

L15bf:

      /* Invariants: register_P = 0x1 register_I = 0x1e register_A = 0x60 */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x1a]; /* set I register */
      

      return;

L15c0:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0040))) & 0xFFF; /* add values */

      return;

L15c2:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x1e]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L15c3:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L15c4:

      /* opNOP_A_A (5f) */

      return;

L15c5:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L15c6:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L15c7:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L15c8:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L15c9:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L15ca:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0xe]))) & 0xFFF; /* do acc operation */

      return;

L15cb:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x60) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L15cd:

      /* Invariants: register_P = 0x1 register_I = 0x1e */;
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L15ce:

      /* opNOP_A_A (5f) */

      return;

L15cf:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L15d0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L15d1:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L15d2:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L15d3:

      /* Invariants: register_P = 0x1 register_I = 0x1a */;
      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L15d4:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x1f];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L15d5:

      /* opJMP_A_A (58) */
      {register_PC = 0x1000 | register_J; return;};

      return;

L1600:

      /* Invariants: register_P = 0x0 register_I = 0x00 */;
      /* opNOP_A_A (5f) */

      return;

L1601:

      /* opNOP_A_B (57) */

      return;

L1602:

      /* opLDAimm_B_AA (02) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0200;

      return;

L1603:

      /* opNOP_A_B (57) */

      return;

L1604:

      /* opADDimmX_B_AA (20) */
      cmp_old = register_B; acc_a0 = register_A; /* save old accA bit0 */
      cmp_new = 0x76;
      register_B = flag_C = 0x0276; cmp_new = 0x76; /* No carry */

      return;

L1606:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1607:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa0;
      register_A = flag_C = acc_a0 = 0x00a0;

      return;

L1609:

      /* opLDJimm_A_A (4b) */
      register_J = 0x060b;

      return;

L160b:

      /* opJDR_A_A (5a) */

      return;

L160c:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L160d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L160e:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x38) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1610:

      /* Invariants: register_P = 0x0 register_I = 0x00 */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1611:

      /* opLDJimm_A_A (40) */
      register_J = 0x0610;

      return;

L1613:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1610; return;};

      return;

L1614:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1615:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1616:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L1617:

      /* opLDJimm_A_A (4a) */
      register_J = 0x063a;

      return;

L1619:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x163a; return;};

      return;

L161a:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L161b:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L161c:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x96;
      register_A = flag_C = acc_a0 = 0x0096;

      return;

L161e:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L161f:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x096; /* store acc to RAM */

      return;

L1620:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1621:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8a;
      register_A = flag_C = acc_a0 = 0x028a;

      return;

L1623:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x28a; /* store acc to RAM */

      return;

L1624:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1625:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x11;
      register_A = flag_C = acc_a0 = 0x0011;

      return;

L1627:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x011; /* store acc to RAM */

      return;

L1628:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1629:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x000; /* store acc to RAM */

      return;

L162a:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L162b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x33;
      register_A = flag_C = acc_a0 = 0x0633;

      return;

L162d:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x633; /* store acc to RAM */

      return;

L162e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x07;
      register_A = flag_C = acc_a0 = 0x063a;

      return;

L1630:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x63a; /* store acc to RAM */

      return;

L1631:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L1633:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L163a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L163b:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L163c:

      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x71]; /* set I register */
      

      return;

L163d:

      /* opLDJimm_A_A (44) */
      register_J = 0x0644;

      return;

L163f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1644; return;};

      return;

L1640:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1641:

      /* opSTAirg_A_A (e6) */
      ram[0x71] = register_A; /* store acc */

      return;

L1642:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1643:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1644:

      /* Invariants: register_P = 0x7 register_I = 0x71 */;
      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L1645:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1646:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x10;
      register_A = flag_C = acc_a0 = 0x0010;

      return;

L1648:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1649:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L164a:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L164b:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L164c:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L164d:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L164e:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L164f:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1650:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1651:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1652:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1653:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1654:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa0;
      register_A = flag_C = acc_a0 = 0x00a0;

      return;

L1656:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1657:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x0a0; /* store acc to RAM */

      return;

L1658:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1659:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L165b:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x258; /* store acc to RAM */

      return;

L165c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L165d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x07;
      register_A = flag_C = acc_a0 = 0x0007;

      return;

L165f:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x007; /* store acc to RAM */

      return;

L1660:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1661:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1662:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1663:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L1665:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1666:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1667:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6a;
      register_A = flag_C = acc_a0 = 0x006a;

      return;

L1669:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x06a; /* store acc to RAM */

      return;

L166a:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L166b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x71;
      register_A = flag_C = acc_a0 = 0x0671;

      return;

L166d:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x671; /* store acc to RAM */

      return;

L166e:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L1670:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L1671:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1672:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xb8;
      register_A = flag_C = acc_a0 = 0x00b8;

      return;

L1674:

      /* opLDPimm_A_A (80) */

      return;

L1675:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x0b8; /* store acc to RAM */

      return;

L1676:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1677:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L1679:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x258; /* store acc to RAM */

      return;

L167a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L167b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x07;
      register_A = flag_C = acc_a0 = 0x0007;

      return;

L167d:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x007; /* store acc to RAM */

      return;

L167e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L167f:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1680:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1681:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L1683:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1684:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1685:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6b;
      register_A = flag_C = acc_a0 = 0x006b;

      return;

L1687:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x06b; /* store acc to RAM */

      return;

L1688:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L1689:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8f;
      register_A = flag_C = acc_a0 = 0x068f;

      return;

L168b:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x68f; /* store acc to RAM */

      return;

L168c:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L168e:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L168f:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1690:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1691:

      /* opLDAdir_A_AA (a0) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x20]; /* set I register */
      

      return;

L1692:

      /* opLDJimm_A_A (4a) */
      register_J = 0x069a;

      return;

L1694:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x169a; return;};

      return;

L1695:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1696:

      /* opSTAirg_A_A (e6) */
      ram[0x20] = register_A; /* store acc */

      return;

L1697:

      /* opLDJimm_A_A (44) */
      register_J = 0x0704;

      return;

L1699:

      /* opJMP_A_A (58) */
      {register_PC = 0x1704; return;};

      return;

L169a:

      /* Invariants: register_P = 0x2 register_I = 0x20 register_A = 0x00 */;
      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x25]; /* set I register */
      

      return;

L169b:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L169c:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x3f] = register_A; /* store acc to RAM */

      return;

L169d:

      /* opADDimm_A_AA (23) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x3))) & 0xFFF; /* add values, save carry */
      

      return;

L169e:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L169f:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x4f] = register_A; /* store acc to RAM */

      return;

L16a0:

      /* opADDimm_A_AA (23) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x3))) & 0xFFF; /* add values, save carry */
      

      return;

L16a1:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L16a2:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x5f] = register_A; /* store acc to RAM */

      return;

L16a3:

      /* opADDimm_A_AA (24) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x4))) & 0xFFF; /* add values, save carry */
      

      return;

L16a4:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L16a5:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x25] = register_A; /* store acc to RAM */

      return;

L16a6:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L16a7:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16a8:

      /* opNOP_A_A (5f) */

      return;

L16a9:

      /* opSTAdir_A_A (d0) */
      ram[register_I = (register_P << 4) + 0x0] = register_A; /* store acc to RAM */

      return;

L16aa:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0xff) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L16ac:

      /* opLDJimm_A_A (43) */
      register_J = 0x06b3;

      return;

L16ae:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x16b3; return;};

      return;

L16af:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L16b0:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x02ff;

      return;

L16b2:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L16b3:

      /* Invariants: register_P = 0x2 register_I = 0x20 */;
      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L16b4:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x3f]; /* set I register */
      

      return;

L16b5:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16b6:

      /* opNOP_A_A (5f) */

      return;

L16b7:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16b8:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16b9:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16ba:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16bb:

      /* opSTAdir_A_A (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_A; /* store acc to RAM */

      return;

L16bc:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16bd:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L16be:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16bf:

      /* opNOP_A_A (5f) */

      return;

L16c0:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16c1:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16c2:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16c3:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16c4:

      /* opSTAdir_A_A (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_A; /* store acc to RAM */

      return;

L16c5:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16c6:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L16c7:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16c8:

      /* opNOP_A_A (5f) */

      return;

L16c9:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16ca:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16cb:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16cc:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16cd:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L16ce:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L16cf:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x4f]; /* set I register */
      

      return;

L16d0:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16d1:

      /* opNOP_A_A (5f) */

      return;

L16d2:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16d3:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16d4:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16d5:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16d6:

      /* opSTAdir_A_A (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_A; /* store acc to RAM */

      return;

L16d7:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16d8:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L16d9:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16da:

      /* opNOP_A_A (5f) */

      return;

L16db:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16dc:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16dd:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16de:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16df:

      /* opSTAdir_A_A (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_A; /* store acc to RAM */

      return;

L16e0:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16e1:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L16e2:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16e3:

      /* opNOP_A_A (5f) */

      return;

L16e4:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16e5:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16e6:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16e7:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16e8:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L16e9:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L16ea:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x5f]; /* set I register */
      

      return;

L16eb:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16ec:

      /* opNOP_A_A (5f) */

      return;

L16ed:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16ee:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16ef:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16f0:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16f1:

      /* opSTAdir_A_A (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_A; /* store acc to RAM */

      return;

L16f2:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16f3:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L16f4:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16f5:

      /* opNOP_A_A (5f) */

      return;

L16f6:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16f7:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16f8:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16f9:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L16fa:

      /* opSTAdir_A_A (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_A; /* store acc to RAM */

      return;

L16fb:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0f]; /* set I register */
      

      return;

L16fc:

      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      

      return;

L16fd:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L16fe:

      /* opNOP_A_A (5f) */

      return;

L16ff:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1700:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1701:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1702:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1703:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L1704:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L1705:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x89]; /* set I register */
      

      return;

L1706:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1707:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x7a] = register_A; /* store acc to RAM */

      return;

L1708:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1709:

      /* opLDPimm_A_A (87) */

      return;

L170a:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x78] = 0x800; /* store acc to RAM */

      return;

L170b:

      /* opNOP_A_B (57) */

      return;

L170c:

      /* opINP_B_AA (17) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* save old accB */
#ifdef RAWIO
      register_B = cmp_new = (( ioSwitches >> 0x7 ) & 0x01);
#else
      register_B = cmp_new = get_coin_state(); /* apparently not used in tailgunner??? */
#endif

      return;

L170d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L170e:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L170f:

      /* opOUTbi_A_A (95) */
      /* opOUTsnd_A (95) */
      reset_coin_counter(1);

      return;

L1710:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1711:

      /* opOUTbi_A_A (95) */
      /* opOUTsnd_A (95) */
      reset_coin_counter(register_A&1);

      return;

L1712:

      /* opCMPdir_A_AA (b8) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x78]) ^ 0xFFF) + 1 + register_A);

      return;

L1713:

      /* opLDJimm_A_A (4e) */
      register_J = 0x072e;

      return;

L1715:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x172e; return;};

      return;

L1716:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1717:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1718:

      /* opSTAirg_A_A (e6) */
      ram[0x78] = 0x001; /* store acc */

      return;

L1719:

      /* opNOP_A_B (57) */

      return;

L171a:

      /* opINP_B_AA (10) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* save old accB */
#ifdef RAWIO
      register_B = cmp_new = (( ioSwitches >> 0x0 ) & 0x01);
#else
      register_B = cmp_new = get_quarters_per_game(); /* 1 => 1q/game, 0 => 2q/game */ 
#endif

      return;

L171b:

      /* opNOP_A_B (57) */

      return;

L171c:

      /* opCMPdir_B_AA (b8) */
      acc_a0 = register_A;
      flag_C = ((((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1) + (cmp_old = register_B)); /* ones compliment */

      return;

L171d:

      /* opLDJimm_A_A (4b) */
      register_J = 0x072b;

      return;

L171f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x172b; return;};

      return;

L1720:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x79]; /* set I register */
      

      return;

L1721:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1722:

      /* opSTAirg_A_A (e6) */
      ram[0x79] = register_A; /* store acc */

      return;

L1723:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1724:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1725:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x79]) ^ 0xFFF) + 1 + register_A);

      return;

L1726:

      /* opLDJimm_A_A (4e) */
      register_J = 0x072e;

      return;

L1728:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x172e; return;};

      return;

L1729:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L172a:

      /* opSTAirg_A_A (e6) */
      ram[0x79] = 0x000; /* store acc */

      return;

L172b:

      /* Invariants: register_P = 0x7 register_I = 0x78 register_A = 0x01 */;
      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7a]; /* set I register */
      

      return;

L172c:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L172d:

      /* opSTAirg_A_A (e6) */
      ram[0x7a] = register_A; /* store acc */

      return;

L172e:

      /* Invariants: register_P = 0x7 */;
      /* opLDPimm_A_A (87) */

      return;

L172f:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7a]; /* set I register */
      

      return;

L1730:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L1731:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x89] = register_A; /* store acc to RAM */

      return;

L1732:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1733:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1734:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x7a] = 0x000; /* store acc to RAM */

      return;

L1735:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1736:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L1737:

      /* opLDJimm_A_A (49) */
      register_J = 0x07b9;

      return;

L1739:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x17b9; return;};

      return;

L173a:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L173b:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L173c:

      /* opLDAdir_A_AA (a1) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x81]; /* set I register */
      

      return;

L173d:

      /* opLDJimm_A_A (49) */
      register_J = 0x0749;

      return;

L173f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1749; return;};

      return;

L1740:

      /* opSUBimm_A_AA (3a) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0xa) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1741:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1749; return;};

      return;

L1742:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x8b]; /* set I register */
      

      return;

L1743:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1744:

      /* opSTAirg_A_A (e6) */
      ram[0x8b] = register_A; /* store acc */

      return;

L1745:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1746:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1747:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1748:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L1749:

      /* Invariants: register_P = 0x8 register_I = 0x81 */;
      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L174a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xcc;
      register_A = flag_C = acc_a0 = 0x01cc;

      return;

L174c:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L174d:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x1cc; /* store acc to RAM */

      return;

L174e:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L174f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8a;
      register_A = flag_C = acc_a0 = 0x028a;

      return;

L1751:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x28a; /* store acc to RAM */

      return;

L1752:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1753:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x21;
      register_A = flag_C = acc_a0 = 0x0021;

      return;

L1755:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x021; /* store acc to RAM */

      return;

L1756:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1757:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1758:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1759:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L175b:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L175c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L175d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x81;
      register_A = flag_C = acc_a0 = 0x0081;

      return;

L175f:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x081; /* store acc to RAM */

      return;

L1760:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L1761:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x67;
      register_A = flag_C = acc_a0 = 0x0767;

      return;

L1763:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x767; /* store acc to RAM */

      return;

L1764:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L1766:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L1767:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1768:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1769:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x72]; /* set I register */
      

      return;

L176a:

      /* opLDJimm_A_A (41) */
      register_J = 0x0771;

      return;

L176c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1771; return;};

      return;

L176d:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L176e:

      /* opSTAirg_A_A (e6) */
      ram[0x72] = register_A; /* store acc */

      return;

L176f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1770:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1771:

      /* Invariants: register_P = 0x7 register_I = 0x72 register_A = 0x00 */;
      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L1772:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1773:

      /* opADDimm_A_AA (2a) */
      cmp_new = 0xa; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000a;
      

      return;

L1774:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1775:

      /* opSUBdir_A_AA (79) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1776:

      /* opSTAirg_A_A (e6) */
      ram[0x69] = register_A; /* store acc */

      return;

L1777:

      /* opSUBimm_A_AA (39) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x9) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1778:

      /* opLDJimm_A_A (44) */
      register_J = 0x0784;

      return;

L177a:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1784; return;};

      return;

L177b:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L177c:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7b]; /* set I register */
      

      return;

L177d:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L177e:

      /* opSTAirg_A_A (e6) */
      ram[0x7b] = register_A; /* store acc */

      return;

L177f:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1780:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1781:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1782:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1783:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L1784:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0xff7 */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L1785:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0320;

      return;

L1787:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1788:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x320; /* store acc to RAM */

      return;

L1789:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L178a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L178c:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x258; /* store acc to RAM */

      return;

L178d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L178e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x21;
      register_A = flag_C = acc_a0 = 0x0021;

      return;

L1790:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x021; /* store acc to RAM */

      return;

L1791:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1792:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1793:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1794:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L1796:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1797:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1798:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x69;
      register_A = flag_C = acc_a0 = 0x0069;

      return;

L179a:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x069; /* store acc to RAM */

      return;

L179b:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L179c:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa2;
      register_A = flag_C = acc_a0 = 0x07a2;

      return;

L179e:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x7a2; /* store acc to RAM */

      return;

L179f:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L17a1:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L17a2:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17a3:

      /* opADDimm_A_AA (2a) */
      cmp_new = 0xa; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000a;
      

      return;

L17a4:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L17a5:

      /* opSUBdir_A_AA (79) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L17a6:

      /* opSTAirg_A_A (e6) */
      ram[0x69] = register_A; /* store acc */

      return;

L17a7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17a8:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1d;
      register_A = flag_C = acc_a0 = 0x001d;

      return;

L17aa:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L17ab:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17ac:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L17ad:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17ae:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L17af:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17b0:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L17b1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17b2:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L17b3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17b4:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L17b5:

      /* opLDJimm_A_A (48) */
      register_J = 0x0058;

      return;

L17b7:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L17b8:

      /* opJPP8_A_B (50) */
      register_PC = 0x0058; /* Jump to other rom bank */
      return;

      return;

L17b9:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0x00 */;
      /* opLDPimm_A_A (86) */

      return;

L17ba:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6a]; /* set I register */
      

      return;

L17bb:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6c]) ^ 0xFFF) + 1 + register_A);

      return;

L17bc:

      /* opLDJimm_A_A (4b) */
      register_J = 0x07cb;

      return;

L17be:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x17cb; return;};

      return;

L17bf:

      /* opLDJimm_A_A (45) */
      register_J = 0x07c5;

      return;

L17c1:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x17c5; return;};

      return;

L17c2:

      /* opSTAirg_A_A (e6) */
      ram[0x6c] = register_A; /* store acc */

      return;

L17c3:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6b]; /* set I register */
      

      return;

L17c4:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x6d] = register_A; /* store acc to RAM */

      return;

L17c5:

      /* Invariants: register_P = 0x6 register_I = 0x6c register_A = 0x00 */;
      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6b]; /* set I register */
      

      return;

L17c6:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6d]) ^ 0xFFF) + 1 + register_A);

      return;

L17c7:

      /* opLDJimm_A_A (4b) */
      register_J = 0x07cb;

      return;

L17c9:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x17cb; return;};

      return;

L17ca:

      /* opSTAirg_A_A (e6) */
      ram[0x6d] = register_A; /* store acc */

      return;

L17cb:

      /* Invariants: register_P = 0x6 register_I = 0x6d register_A = 0x00 */;
      /* opJDR_A_A (5a) */

      return;

L17cc:

      /* opNOP_A_B (57) */

      return;

L17cd:

      /* opLDAimm_B_AA (02) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0200;

      return;

L17ce:

      /* opNOP_A_B (57) */

      return;

L17cf:

      /* opADDimmX_B_AA (20) */
      cmp_old = register_B; acc_a0 = register_A; /* save old accA bit0 */
      cmp_new = 0x76;
      register_B = flag_C = 0x0276; cmp_new = 0x76; /* No carry */

      return;

L17d1:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L17d2:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xda;
      register_A = flag_C = acc_a0 = 0x02da;

      return;

L17d4:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L17d5:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17d6:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L17d7:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L17d8:

      /* opLDPimm_A_A (86) */

      return;

L17d9:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x61] = 0x001; /* store acc to RAM */

      return;

L17da:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17db:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x62] = 0x000; /* store acc to RAM */

      return;

L17dc:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x60] = 0x000; /* store acc to RAM */

      return;

L17dd:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17de:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1c;
      register_A = flag_C = acc_a0 = 0x001c;

      return;

L17e0:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L17e1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17e2:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L17e3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17e4:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L17e5:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17e6:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L17e7:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17e8:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L17e9:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L17ea:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L17eb:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L17ec:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xbc;
      register_A = flag_C = acc_a0 = 0x02bc;

      return;

L17ee:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L17ef:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x2bc; /* store acc to RAM */

      return;

L17f0:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L17f1:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8a;
      register_A = flag_C = acc_a0 = 0x028a;

      return;

L17f3:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x28a; /* store acc to RAM */

      return;

L17f4:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17f5:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x21;
      register_A = flag_C = acc_a0 = 0x0021;

      return;

L17f7:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x021; /* store acc to RAM */

      return;

L17f8:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L17f9:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x000; /* store acc to RAM */

      return;

L17fa:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L17fb:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x03;
      register_A = flag_C = acc_a0 = 0x0803;

      return;

L17fd:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x803; /* store acc to RAM */

      return;

L17fe:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x0c;
      register_A = flag_C = acc_a0 = 0x080f;

      return;

L1800:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x80f; /* store acc to RAM */

      return;

L1801:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L1803:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L180f:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0xff */;
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1810:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xf8;
      register_A = flag_C = acc_a0 = 0x02f8;

      return;

L1812:

      /* opLDPimm_A_A (80) */

      return;

L1813:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x2f8; /* store acc to RAM */

      return;

L1814:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1815:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L1817:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x258; /* store acc to RAM */

      return;

L1818:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1819:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x07;
      register_A = flag_C = acc_a0 = 0x0007;

      return;

L181b:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x007; /* store acc to RAM */

      return;

L181c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L181d:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L181e:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L181f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L1821:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1822:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1823:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6c;
      register_A = flag_C = acc_a0 = 0x006c;

      return;

L1825:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x06c; /* store acc to RAM */

      return;

L1826:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1827:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2d;
      register_A = flag_C = acc_a0 = 0x082d;

      return;

L1829:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x82d; /* store acc to RAM */

      return;

L182a:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L182c:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L182d:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;

      return;

L182e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x10;
      register_A = flag_C = acc_a0 = 0x0310;

      return;

L1830:

      /* opLDPimm_A_A (80) */

      return;

L1831:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x310; /* store acc to RAM */

      return;

L1832:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1833:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L1835:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x258; /* store acc to RAM */

      return;

L1836:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1837:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x07;
      register_A = flag_C = acc_a0 = 0x0007;

      return;

L1839:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x007; /* store acc to RAM */

      return;

L183a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L183b:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L183c:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L183d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L183f:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1840:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1841:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6d;
      register_A = flag_C = acc_a0 = 0x006d;

      return;

L1843:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x06d; /* store acc to RAM */

      return;

L1844:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1845:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4b;
      register_A = flag_C = acc_a0 = 0x084b;

      return;

L1847:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x84b; /* store acc to RAM */

      return;

L1848:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L184a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L184b:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L184c:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L184d:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x89]) ^ 0xFFF) + 1 + register_A);

      return;

L184e:

      /* opLDJimm_A_A (4c) */
      register_J = 0x095c;

      return;

L1850:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x195c; return;};

      return;

L1851:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1852:

      /* opOUTbi_A_A (96) */
      vgColour = 0x07;

      return;

L1853:

      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

      return;

L1854:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1855:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x7a] = 0x001; /* store acc to RAM */

      return;

L1856:

      /* opAWDirg_A_AA (f7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x7a]))) & 0xFFF;
      set_watchdog();

      return;

L1857:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L1858:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x90;
      register_A = flag_C = acc_a0 = 0x0190;

      return;

L185a:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L185b:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x190; /* store acc to RAM */

      return;

L185c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L185d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x32;
      register_A = flag_C = acc_a0 = 0x0032;

      return;

L185f:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x032; /* store acc to RAM */

      return;

L1860:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1861:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4d;
      register_A = flag_C = acc_a0 = 0x004d;

      return;

L1863:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x04d; /* store acc to RAM */

      return;

L1864:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1865:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x000; /* store acc to RAM */

      return;

L1866:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1867:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6f;
      register_A = flag_C = acc_a0 = 0x086f;

      return;

L1869:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x86f; /* store acc to RAM */

      return;

L186a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x09;
      register_A = flag_C = acc_a0 = 0x0878;

      return;

L186c:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x878; /* store acc to RAM */

      return;

L186d:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L186f:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L1878:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0xff */;
      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L1879:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x89]; /* set I register */
      

      return;

L187a:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x8c] = register_A; /* store acc to RAM */

      return;

L187b:

      /* opSUBimm_A_AA (39) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x9) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L187c:

      /* opLDJimm_A_A (42) */
      register_J = 0x0882;

      return;

L187e:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1882; return;};

      return;

L187f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1880:

      /* opADDimm_A_AA (29) */
      cmp_new = 0x9; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0009;
      

      return;

L1881:

      /* opSTAirg_A_A (e6) */
      ram[0x8c] = 0x009; /* store acc */

      return;

L1882:

      /* Invariants: register_P = 0x8 register_I = 0x8c register_A = 0xff8 */;
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1883:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x58;
      register_A = flag_C = acc_a0 = 0x0258;

      return;

L1885:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1886:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x258; /* store acc to RAM */

      return;

L1887:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1888:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x32;
      register_A = flag_C = acc_a0 = 0x0032;

      return;

L188a:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x032; /* store acc to RAM */

      return;

L188b:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L188c:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x0b;
      register_A = flag_C = acc_a0 = 0x000b;

      return;

L188e:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x00b; /* store acc to RAM */

      return;

L188f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1890:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1891:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1892:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x01;
      register_A = flag_C = acc_a0 = 0x0004;

      return;

L1894:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x02] = 0x004; /* store acc to RAM */

      return;

L1895:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1896:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8c;
      register_A = flag_C = acc_a0 = 0x008c;

      return;

L1898:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x08c; /* store acc to RAM */

      return;

L1899:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L189a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa0;
      register_A = flag_C = acc_a0 = 0x08a0;

      return;

L189c:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x8a0; /* store acc to RAM */

      return;

L189d:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L189f:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L18a0:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18a1:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

      return;

L18a3:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L18a4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18a5:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18a6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18a7:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18a8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18a9:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18aa:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18ab:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18ac:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18ad:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18ae:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18af:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x001a;

      return;

L18b1:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L18b2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18b3:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18b4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18b5:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18b6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18b7:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18b8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18b9:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18ba:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18bb:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18bc:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18bd:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x14;
      register_A = flag_C = acc_a0 = 0x0014;

      return;

L18bf:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L18c0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18c1:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18c2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18c3:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18c4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18c5:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18c6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18c7:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18c8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18c9:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18ca:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18cb:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x16;
      register_A = flag_C = acc_a0 = 0x0016;

      return;

L18cd:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L18ce:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18cf:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18d0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18d1:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18d2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18d3:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18d4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18d5:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18d6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18d7:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18d8:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18d9:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x18;
      register_A = flag_C = acc_a0 = 0x0018;

      return;

L18db:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L18dc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18dd:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18de:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18df:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18e0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18e1:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18e2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18e3:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18e4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18e5:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18e6:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L18e7:

      /* opLDAdir_A_AA (ab) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7b]; /* set I register */
      

      return;

L18e8:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L18e9:

      /* opSTAirg_A_A (e6) */
      ram[0x7b] = register_A; /* store acc */

      return;

L18ea:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L18eb:

      /* opADDimm_A_AA (28) */
      cmp_new = 0x8; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0008;
      

      return;

L18ec:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L18ed:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18ee:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18ef:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18f0:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L18f1:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0012))) & 0xFFF; /* add values */

      return;

L18f3:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(register_A&1);

      return;

L18f4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18f5:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L18f6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18f7:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L18f8:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18f9:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L18fa:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18fb:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18fc:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L18fd:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L18fe:

      /* opAWDirg_A_AA (f7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x7b]))) & 0xFFF;
      set_watchdog();

      return;

L18ff:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L1900:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x90;
      register_A = flag_C = acc_a0 = 0x0190;

      return;

L1902:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L1903:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x03] = 0x190; /* store acc to RAM */

      return;

L1904:

      /* opLDAimm_A_AA (01) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0100;

      return;

L1905:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x90;
      register_A = flag_C = acc_a0 = 0x0190;

      return;

L1907:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x190; /* store acc to RAM */

      return;

L1908:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1909:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2c;
      register_A = flag_C = acc_a0 = 0x002c;

      return;

L190b:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = 0x02c; /* store acc to RAM */

      return;

L190c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L190d:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x000; /* store acc to RAM */

      return;

L190e:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L190f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0917;

      return;

L1911:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = 0x917; /* store acc to RAM */

      return;

L1912:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x0c;
      register_A = flag_C = acc_a0 = 0x0923;

      return;

L1914:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x923; /* store acc to RAM */

      return;

L1915:

      /* opLDJimm_A_A (43) */
      register_J = 0x0af3;

      return;

L1917:

      /* opJMP_A_A (58) */
      {register_PC = 0x1af3; return;};

      return;

L1923:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0xff */;
      /* opINP_A_AA (17) */
      cmp_old = flag_C = acc_a0 = register_A;
#ifdef RAWIO
      register_A = cmp_new = get_io_bit(0x7);
#else
      register_A = cmp_new = get_io_startbutton();
#endif

      return;

L1924:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1925:

      /* opLDJimm_A_A (43) */
      register_J = 0x09c3;

      return;

L1927:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x19c3; return;};

      return;

L1928:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L1929:

      /* opLDAdir_A_AA (a9) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x89]; /* set I register */
      

      return;

L192a:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L192b:

      /* opSTAirg_A_A (e6) */
      ram[0x89] = register_A; /* store acc */

      return;

L192c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L192d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x12;
      register_A = flag_C = acc_a0 = 0x0012;

      return;

L192f:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1930:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1931:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1932:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1933:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1934:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1935:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1936:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1937:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1938:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1939:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L193a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L193b:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L193c:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x2a] = 0x000; /* store acc to RAM */

      return;

L193d:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x2b] = 0x000; /* store acc to RAM */

      return;

L193e:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L193f:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x7a] = 0x000; /* store acc to RAM */

      return;

L1940:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x7d] = 0x000; /* store acc to RAM */

      return;

L1941:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1942:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x6a] = 0x000; /* store acc to RAM */

      return;

L1943:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x6b] = 0x000; /* store acc to RAM */

      return;

L1944:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1945:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x30] = 0x000; /* store acc to RAM */

      return;

L1946:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1947:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x40] = 0x000; /* store acc to RAM */

      return;

L1948:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1949:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x50] = 0x000; /* store acc to RAM */

      return;

L194a:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L194b:

      /* opSTAdir_A_A (db) */
      ram[register_I = 0x7b] = 0x000; /* store acc to RAM */

      return;

L194c:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L194d:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x80] = 0x000; /* store acc to RAM */

      return;

L194e:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x82]; /* set I register */
      

      return;

L194f:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x81] = register_A; /* store acc to RAM */

      return;

L1950:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1951:

      /* opADDimm_A_AA (2a) */
      cmp_new = 0xa; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000a;
      

      return;

L1952:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1953:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x69] = 0x00a; /* store acc to RAM */

      return;

L1954:

      /* opLDPimm_A_A (88) */
      register_P = 0x8; /* set page register */

      return;

L1955:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x8a]; /* set I register */
      

      return;

L1956:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1957:

      /* opSTAirg_A_A (e6) */
      ram[0x8a] = register_A; /* store acc */

      return;

L1958:

      /* opLDJimm_A_A (48) */
      register_J = 0x0058;

      return;

L195a:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L195b:

      /* opJPP8_A_B (50) */
      register_PC = 0x0058; /* Jump to other rom bank */
      return;

      return;

L195c:

      /* Invariants: register_P = 0x8 register_I = 0x89 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L195d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x12;
      register_A = flag_C = acc_a0 = 0x0012;

      return;

L195f:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1960:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1961:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1962:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1963:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1964:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1965:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1966:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1967:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1968:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1969:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L196a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L196b:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L196c:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7d]; /* set I register */
      

      return;

L196d:

      /* opLDJimm_A_A (43) */
      register_J = 0x09c3;

      return;

L196f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x19c3; return;};

      return;

L1970:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1971:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1972:

      /* opOUTbi_A_A (96) */
      vgColour = register_A & 0x01 ? 0x0f: 0x07;

      return;

L1973:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1974:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1975:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x19] = 0x000; /* store acc to RAM */

      return;

L1976:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = 0x000; /* store acc to RAM */

      return;

L1977:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = 0x000; /* store acc to RAM */

      return;

L1978:

      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x1c] = 0x000; /* store acc to RAM */

      return;

L1979:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L197b:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x1d] = 0x0ff; /* store acc to RAM */

      return;

L197c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L197d:

      /* opADDimm_A_AA (22) */
      cmp_new = 0x2; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0002;
      

      return;

L197e:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L197f:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7d]) ^ 0xFFF) + 1 + register_A);

      return;

L1980:

      /* opLDJimm_A_A (42) */
      register_J = 0x09b2;

      return;

L1982:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x19b2; return;};

      return;

L1983:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7c]; /* set I register */
      

      return;

L1984:

      /* opSUBimm_A_AA (33) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x3) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1985:

      /* opSTAirg_A_A (e6) */
      ram[0x7c] = register_A; /* store acc */

      return;

L1986:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1987:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L1988:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L1989:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x8f;
      register_A = flag_C = acc_a0 = 0x098f;

      return;

L198b:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0x98f; /* store acc to RAM */

      return;

L198c:

      /* opLDJimm_A_A (45) */
      register_J = 0x0575;

      return;

L198e:

      /* opJMP_A_A (58) */
      {register_PC = 0x1575; return;};

      return;

L198f:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1990:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1991:

      /* opCMPdir_A_AA (be) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7e]) ^ 0xFFF) + 1 + register_A);

      return;

L1992:

      /* opLDJimm_A_A (48) */
      register_J = 0x0998;

      return;

L1994:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1998; return;};

      return;

L1995:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1996:

      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1997:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x7d] = 0x003; /* store acc to RAM */

      return;

L1998:

      /* Invariants: register_P = 0x7 register_I = 0x7e register_A = 0x200 */;
      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7e]; /* set I register */
      

      return;

L1999:

      /* opSUBimm_A_AA (3b) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0xb) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L199a:

      /* opSTAirg_A_A (e6) */
      ram[0x7e] = register_A; /* store acc */

      return;

L199b:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L199c:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */

      return;

L199d:

      /* Invariants: register_P = 0x1 register_I = 0x12 */;
      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L199e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xc3;
      register_A = flag_C = acc_a0 = 0x09c3;

      return;

L19a0:

      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */

      return;

L19a1:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x00] = 0x9c3; /* store acc to RAM */

      return;

L19a2:

      /* opNOP_A_B (57) */

      return;

L19a3:

      /* opLDAimm_B_AA (03) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0x0300;

      return;

L19a4:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L19a5:

      /* opNOP_A_B (57) */

      return;

L19a6:

      /* opADDimmX_B_AA (20) */
      cmp_old = register_B; acc_a0 = register_A; /* save old accA bit0 */
      register_B = (flag_C = (register_B + (cmp_new = 0x32))) & 0xFFF; /* add values */

      return;

L19a8:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L19a9:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x32) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L19ab:

      /* opLDJimm_A_A (4d) */
      register_J = 0x09ad;

      return;

L19ad:

      /* opJDR_A_A (5a) */

      return;

L19ae:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L19af:

      /* opLDJimm_A_A (47) */
      register_J = 0x09c7;

      return;

L19b1:

      /* opJMP_A_A (58) */
      {register_PC = 0x19c7; return;};

      return;

L19b2:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L19b3:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L19b4:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L19b5:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0e]; /* set I register */
      

      return;

L19b6:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19b7:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */

      return;

L19b8:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L19b9:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x7c]; /* set I register */
      

      return;

L19ba:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19bb:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */

      return;

L19bc:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L19bd:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x9d;
      register_A = flag_C = acc_a0 = 0x099d;

      return;

L19bf:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0x99d; /* store acc to RAM */

      return;

L19c0:

      /* opLDJimm_A_A (45) */
      register_J = 0x0575;

      return;

L19c2:

      /* opJMP_A_A (58) */
      {register_PC = 0x1575; return;};

      return;

L19c3:

      /* Invariants: register_P = 0x0 register_I = 0x00 */;
      /* opLDJimm_A_A (48) */
      register_J = 0x0058;

      return;

L19c5:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19c6:

      /* opJPP8_A_B (50) */
      register_PC = 0x0058; /* Jump to other rom bank */
      return;

      return;

L19c7:

      /* Invariants: register_P = 0x0 register_I = 0x00 register_A = 0x1ce */;
      /* opLDAimm_A_AA (0a) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0a00;

      return;

L19c8:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1b;
      register_A = flag_C = acc_a0 = 0x0a1b;

      return;

L19ca:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19cb:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0xa1b; /* store acc to RAM */

      return;

L19cc:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x0a35;

      return;

L19ce:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = 0xa35; /* store acc to RAM */

      return;

L19cf:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L19d0:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd7;
      register_A = flag_C = acc_a0 = 0x09d7;

      return;

L19d2:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L19d3:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x9d7; /* store acc to RAM */

      return;

L19d4:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L19d6:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L19d7:

      /* Invariants: register_P = 0x2 register_I = 0x2f register_A = 0xff */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L19d8:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;

      return;

L19da:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L19db:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7c]) ^ 0xFFF) + 1 + register_A);

      return;

L19dc:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L19dd:

      /* opSTAirg_A_A (e6) */
      ram[0x7c] = register_A; /* store acc */

      return;

L19de:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x20) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L19e0:

      /* opLDJimm_A_A (4b) */
      register_J = 0x09eb;

      return;

L19e2:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x19eb; return;};

      return;

L19e3:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L19e4:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x60;
      register_A = flag_C = acc_a0 = 0x0060;

      return;

L19e6:

      /* opCMPdir_A_AA (bc) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x7c]) ^ 0xFFF) + 1 + register_A);

      return;

L19e7:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x19eb; return;};

      return;

L19e8:

      /* opLDJimm_A_A (4d) */
      register_J = 0x047d;

      return;

L19ea:

      /* opJMP_A_A (58) */
      {register_PC = 0x147d; return;};

      return;

L19eb:

      /* Invariants: register_P = 0x7 register_I = 0x7c */;
      /* opLDAimm_A_AA (0a) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0a00;

      return;

L19ec:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x3e;
      register_A = flag_C = acc_a0 = 0x0a3e;

      return;

L19ee:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19ef:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0xa3e; /* store acc to RAM */

      return;

L19f0:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x32;
      register_A = flag_C = acc_a0 = 0x0a70;

      return;

L19f2:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = 0xa70; /* store acc to RAM */

      return;

L19f3:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L19f4:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xfb;
      register_A = flag_C = acc_a0 = 0x09fb;

      return;

L19f6:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L19f7:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x9fb; /* store acc to RAM */

      return;

L19f8:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L19fa:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L19fb:

      /* Invariants: register_P = 0x2 register_I = 0x2f register_A = 0xff */;
      /* opLDAimm_A_AA (0a) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0a00;

      return;

L19fc:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7a;
      register_A = flag_C = acc_a0 = 0x0a7a;

      return;

L19fe:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L19ff:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0xa7a; /* store acc to RAM */

      return;

L1a00:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x32;
      register_A = flag_C = acc_a0 = 0x0aac;

      return;

L1a02:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = 0xaac; /* store acc to RAM */

      return;

L1a03:

      /* opLDAimm_A_AA (0a) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0a00;

      return;

L1a04:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x0b;
      register_A = flag_C = acc_a0 = 0x0a0b;

      return;

L1a06:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1a07:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0xa0b; /* store acc to RAM */

      return;

L1a08:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L1a0a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L1a0b:

      /* Invariants: register_P = 0x2 register_I = 0x2f register_A = 0xff */;
      /* opLDAimm_A_AA (0a) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0a00;

      return;

L1a0c:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xb8;
      register_A = flag_C = acc_a0 = 0x0ab8;

      return;

L1a0e:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1a0f:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = 0xab8; /* store acc to RAM */

      return;

L1a10:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x2f;
      register_A = flag_C = acc_a0 = 0x0ae7;

      return;

L1a12:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = 0xae7; /* store acc to RAM */

      return;

L1a13:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L1a14:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7d;
      register_A = flag_C = acc_a0 = 0x047d;

      return;

L1a16:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1a17:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x2f] = 0x47d; /* store acc to RAM */

      return;

L1a18:

      /* opLDJimm_A_A (48) */
      register_J = 0x0128;

      return;

L1a1a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1128; return;};

      return;

L1af3:

      /* Invariants: register_P = 0x0 register_I = 0x00 */;
      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x03]; /* set I register */
      

      return;

L1af4:

      /* opNOP_A_B (57) */

      return;

L1af5:

      /* opLDAdir_B_AA (a4) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x04]; /* new acc value */

      return;

L1af6:

      /* opLDJimm_A_A (46) */
      register_J = 0x0af6;

      return;

L1af8:

      /* opJDR_A_A (5a) */

      return;

L1af9:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L1afa:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1afb:

      /* opSUBdir_A_AA (7e) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x0e]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1afc:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1afd:

      /* Invariants: register_P = 0x0 register_I = 0x0e */;
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1afe:

      /* opLDJimm_A_A (4d) */
      register_J = 0x0afd;

      return;

L1b00:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1afd; return;};

      return;

L1b01:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L1b02:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0018))) & 0xFFF; /* add values */

      return;

L1b04:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */

      return;

L1b05:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1b06:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L1b08:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x01] = 0x0ff; /* store acc to RAM */

      return;

L1b09:

      /* Invariants: register_P = 0x0 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1b0a:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x0f]) ^ 0xFFF) + 1 + register_A);

      return;

L1b0b:

      /* opLDJimm_A_A (41) */
      register_J = 0x0b21;

      return;

L1b0d:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1b21; return;};

      return;

L1b0e:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L1b0f:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1b10:

      /* opSTAirg_A_A (e6) */
      ram[0x05] = register_A; /* store acc */

      return;

L1b11:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1b12:

      /* opNOP_A_A (5f) */

      return;

L1b13:

      /* Invariants: register_P = 0x0 */;
      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L1b14:

      /* opCMPdir_A_AA (b1) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x01]) ^ 0xFFF) + 1 + register_A);

      return;

L1b15:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0b6b;

      return;

L1b17:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b6b; return;};

      return;

L1b18:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x40) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1b1a:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0b6e;

      return;

L1b1c:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1b6e; return;};

      return;

L1b1d:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0039))) & 0xFFF; /* add values */

      return;

L1b1f:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L1b20:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b6e; return;};

      return;

L1b21:

      /* Invariants: register_P = 0x0 register_I = 0x0f register_A = 0x00 */;
      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x02]; /* set I register */
      

      return;

L1b22:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1b23:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0b6b;

      return;

L1b25:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b6b; return;};

      return;

L1b26:

      /* opSTAirg_A_A (e6) */
      ram[0x02] = register_A; /* store acc */

      return;

L1b27:

      /* opLDIdir_A_A (c5) */
      register_I = ram[0x05]&0xff; /* set new register_I (8 bits) */

      return;

L1b28:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1b29:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x07] = register_A; /* store acc to RAM */

      return;

L1b2a:

      /* opLDAdir_A_AA (af) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0f]; /* set I register */
      

      return;

L1b2b:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1b2c:

      /* opSTAirg_A_A (e6) */
      ram[0x0f] = register_A; /* store acc */

      return;

L1b2d:

      /* opLDJimm_A_A (43) */
      register_J = 0x0b63;

      return;

L1b2f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b63; return;};

      return;

L1b30:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1b31:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0b3c;

      return;

L1b33:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b3c; return;};

      return;

L1b34:

      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L1b35:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b36:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b37:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b38:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b39:

      /* opLDJimm_A_A (4d) */
      register_J = 0x0b3d;

      return;

L1b3b:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b3d; return;};

      return;

L1b3c:

      /* Invariants: register_P = 0x0 register_I = 0x0f register_A = 0x00 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L1b3d:

      /* Invariants: register_P = 0x0 register_I = 0x07 */;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b3e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b3f:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b40:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b41:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L1b42:

      /* Invariants: register_P = 0x0 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1b43:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L1b44:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1 + register_A);

      return;

L1b45:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1b46:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L1b47:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x0e]; /* set I register */
      

      return;

L1b48:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b49:

      /* opLDJimm_A_A (42) */
      register_J = 0x0b52;

      return;

L1b4b:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1b52; return;};
      

      return;

L1b4c:

      /* opCMPdir_A_AA (b7) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x07]) ^ 0xFFF) + 1 + register_A);

      return;

L1b4d:

      /* opLDJimm_A_A (48) */
      register_J = 0x0b58;

      return;

L1b4f:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b58; return;};

      return;

L1b50:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1b51:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x0e] = register_A; /* store acc to RAM */

      return;

L1b52:

      /* Invariants: register_P = 0x0 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L1b53:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0030))) & 0xFFF; /* add values */

      return;

L1b55:

      /* opLDJimm_A_A (43) */
      register_J = 0x0b13;

      return;

L1b57:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b13; return;};

      return;

L1b58:

      /* Invariants: register_P = 0x0 register_I = 0x07 register_A = 0x00 */;
      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x02]; /* set I register */
      

      return;

L1b59:

      /* opSUBimm_A_AA (31) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (((cmp_new = 0x1) ^ 0xFFF) + 1))) & 0xFFF; /* 1's-comp add */

      return;

L1b5a:

      /* opLDJimm_A_A (42) */
      register_J = 0x0b52;

      return;

L1b5c:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1b52; return;};

      return;

L1b5d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1b5e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x5b;
      register_A = flag_C = acc_a0 = 0x005b;

      return;

L1b60:

      /* opLDJimm_A_A (43) */
      register_J = 0x0b13;

      return;

L1b62:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b13; return;};

      return;

L1b63:

      /* Invariants: register_P = 0x0 register_I = 0x0f register_A = 0x00 */;
      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      

      return;

L1b64:

      /* opSTAdir_A_A (df) */
      ram[register_I = 0x0f] = 0x003; /* store acc to RAM */

      return;

L1b65:

      /* opLDAdir_A_AA (a5) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x05]; /* set I register */
      

      return;

L1b66:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1b67:

      /* opSTAirg_A_A (e6) */
      ram[0x05] = register_A; /* store acc */

      return;

L1b68:

      /* opLDJimm_A_A (42) */
      register_J = 0x0b42;

      return;

L1b6a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b42; return;};

      return;

L1b6b:

      /* Invariants: register_P = 0x0 */;
      /* opCMPdir_A_AA (b0) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x00]) ^ 0xFFF) + 1 + register_A);

      return;

L1b6c:

      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x00];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L1b6d:

      /* opJMP_A_A (58) */
      {register_PC = 0x1000 | register_J; return;};

      return;

L1b6e:

      /* Invariants: register_P = 0x0 */;
      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;

      return;

L1b6f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x29;
      register_A = flag_C = acc_a0 = 0x0c29;

      return;

L1b71:

      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x07]))) & 0xFFF; /* do acc operation */

      return;

L1b72:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1b73:

      /* opNOP_A_A (5f) */

      return;

L1b74:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1b75:

      /* opLDAimm_A_AA (0b) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0b00;

      return;

L1b76:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xef;
      register_A = flag_C = acc_a0 = 0x0bef;

      return;

L1b78:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1b79:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1b7a:

      /* Invariants: register_P = 0x0 */;
      /* opLDAdir_A_AA (a7) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x07]; /* set I register */
      

      return;

L1b7b:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1b7c:

      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

      return;

L1b7d:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1b7e:

      /* opNOP_A_A (5f) */

      return;

L1b7f:

      /* opCMPdir_A_AA (b1) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0x1]) ^ 0xFFF) + 1 + register_A);

      return;

L1b80:

      /* opLDJimm_A_A (41) */
      register_J = 0x0bc1;

      return;

L1b82:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1bc1; return;};

      return;

L1b83:

      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */

      return;

L1b84:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b85:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b86:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b87:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1b88:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1b89:

      /* opSTAdir_A_A (dc) */
      ram[register_I = (register_P << 4) + 0xc] = register_A; /* store acc to RAM */

      return;

L1b8a:

      /* opLDAimm_A_AA (0b) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0b00;

      return;

L1b8b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd2;
      register_A = flag_C = acc_a0 = 0x0bd2;

      return;

L1b8d:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1b8e:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1b8f:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1b90:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1b91:

      /* opNOP_A_A (5f) */

      return;

L1b92:

      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x4]))) & 0xFFF; /* do acc operation */

      return;

L1b93:

      /* opSTAdir_A_A (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_A; /* store acc to RAM */

      return;

L1b94:

      /* opLDAdir_A_AA (ac) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0c]; /* set I register */
      

      return;

L1b95:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1b96:

      /* opNOP_A_A (5f) */

      return;

L1b97:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x3]))) & 0xFFF; /* do acc operation */

      return;

L1b98:

      /* opSTAdir_A_A (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_A; /* store acc to RAM */

      return;

L1b99:

      /* opNOP_A_B (57) */

      return;

L1b9a:

      /* opLDAdir_B_AA (a9) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* new acc value */

      return;

L1b9b:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0b9b;

      return;

L1b9d:

      /* opJDR_A_A (5a) */

      return;

L1b9e:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L1b9f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1ba0:

      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      

      return;

L1ba1:

      /* opCMPdir_A_AA (bd) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = (register_P << 4) + 0xd]) ^ 0xFFF) + 1 + register_A);

      return;

L1ba2:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1ba3:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1ba4:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1ba5:

      /* opLDAimm_A_AA (0b) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0b00;

      return;

L1ba6:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd2;
      register_A = flag_C = acc_a0 = 0x0bd2;

      return;

L1ba8:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1ba9:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1baa:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1bab:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1bac:

      /* opNOP_A_A (5f) */

      return;

L1bad:

      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x4]))) & 0xFFF; /* do acc operation */

      return;

L1bae:

      /* opSUBdir_A_AA (79) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x9]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1baf:

      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */

      return;

L1bb0:

      /* opLDAdir_A_AA (ad) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0d]; /* set I register */
      

      return;

L1bb1:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1bb2:

      /* opNOP_A_A (5f) */

      return;

L1bb3:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x3]))) & 0xFFF; /* do acc operation */

      return;

L1bb4:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = (register_P << 4) + 0x8]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1bb5:

      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */

      return;

L1bb6:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0a]; /* set I register */
      

      return;

L1bb7:

      /* opNOP_A_B (57) */

      return;

L1bb8:

      /* opLDAdir_B_AA (ab) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x0b]; /* new acc value */

      return;

L1bb9:

      /* opLLT_A_AA (e4) */
      {CINEBYTE temp_byte = 0;
        for (;;) {
          if (   (((register_A >> 8) & 0x0A) && (((register_A >> 8) & 0x0A) ^ 0x0A))
            ||   (((register_B >> 8) & 0x0A) && (((register_B >> 8) & 0x0A) ^ 0x0A))  ) break;
          register_A <<= 1; register_B <<= 1;
          if (!(++temp_byte)) break /* This may not be correct */;
        }
        vgShiftLength = temp_byte & 0xfff; register_A &= 0x0FFF; register_B &= 0x0FFF;
      }

      return;

L1bba:

      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = (register_P << 4) + 0x8]))) & 0xFFF; /* do acc operation */

      return;

L1bbb:

      /* opNOP_A_B (57) */

      return;

L1bbc:

      /* opADDdir_B_AA (69) */
      acc_a0 = register_A; /* store old acc value */
      register_B = (flag_C = ((cmp_old = register_B) + (cmp_new = ram[register_I = (register_P << 4) + 0x09]))) & 0xFFF; /* do acc operation */

      return;

L1bbd:

      /* opVDR_A_A (e0) */
      {
      /* set ending points and draw the vector, or buffer for a later draw. */
      int ToX = register_A & 0xFFF;
      int ToY = register_B & 0xFFF;
      
      /* Sign extend from 20 bit CCPU to 32bit target machine */
      FromX = SEX(FromX);
      ToX = SEX(ToX);
      FromY = SEX(FromY);
      ToY = SEX(ToY);
      
      /* figure out the vector */
      ToX -= FromX;
      ToX = ((signed short int)(((signed short int)ToX) >> (signed short int)vgShiftLength)) /* SAR */;
      ToX += FromX;
      
      ToY -= FromY;
      ToY = ((signed short int)(((signed short int)ToY) >> (signed short int)vgShiftLength)) /* SAR */;
      ToY += FromY;
      
      /* render the line */
#ifndef DUALCPU
      CinemaVectorData (FromX, FromY, ToX, ToY, vgColour);
#endif
      
      }

      return;

L1bbe:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0b7a;

      return;

L1bc0:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b7a; return;};

      return;

L1bc1:

      /* Invariants: register_P = 0x0 register_I = 0x01 register_A = 0xff */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1bc2:

      /* opADDimm_A_AA (29) */
      cmp_new = 0x9; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0009;
      

      return;

L1bc3:

      /* opADDdir_A_AA (64) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x04]))) & 0xFFF; /* do acc operation */

      return;

L1bc4:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */

      return;

L1bc5:

      /* opLDAdir_A_AA (a6) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x06]; /* set I register */
      

      return;

L1bc6:

      /* opADDdir_A_AA (63) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x03]))) & 0xFFF; /* do acc operation */

      return;

L1bc7:

      /* opSTAirg_A_A (e6) */
      ram[0x03] = register_A; /* store acc */

      return;

L1bc8:

      /* opADDimm_A_AA (23) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x3))) & 0xFFF; /* add values, save carry */
      

      return;

L1bc9:

      /* opNOP_A_B (57) */

      return;

L1bca:

      /* opLDAdir_B_AA (a9) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x09]; /* new acc value */

      return;

L1bcb:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0bcb;

      return;

L1bcd:

      /* opJDR_A_A (5a) */

      return;

L1bce:

      /* opVIN_A_A (f0) */
      
      FromX = register_A & 0xFFF; /* regA goes to x-coord */
      FromY = register_B & 0xFFF; /* regB goes to y-coord */
      

      return;

L1bcf:

      /* opLDJimm_A_A (49) */
      register_J = 0x0b09;

      return;

L1bd1:

      /* opJMP_A_A (58) */
      {register_PC = 0x1b09; return;};

      return;

L1d70:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1d71:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1a;
      register_A = flag_C = acc_a0 = 0x001a;

      return;

L1d73:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1d74:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d75:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1d76:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d77:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1d78:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d79:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1d7a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d7b:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d7c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d7d:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d7e:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1d7f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x14;
      register_A = flag_C = acc_a0 = 0x0014;

      return;

L1d81:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1d82:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d83:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1d84:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d85:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1d86:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d87:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1d88:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d89:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d8a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d8b:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d8c:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1d8d:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1c;
      register_A = flag_C = acc_a0 = 0x001c;

      return;

L1d8f:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1d90:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d91:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1d92:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d93:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1d94:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d95:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1d96:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d97:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d98:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d99:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1d9a:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1d9b:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x18;
      register_A = flag_C = acc_a0 = 0x0018;

      return;

L1d9d:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(0);

      return;

L1d9e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1d9f:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1da0:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1da1:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1da2:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1da3:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1da4:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1da5:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1da6:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1da7:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1da8:

      /* opLDJimm_A_A (45) */
      register_J = 0x0005;

      return;

L1daa:

      /* opJMP_A_A (58) */
      {register_PC = 0x1005; return;};

      return;

L1dc0:

      /* Invariants: register_P = 0x2 register_I = 0x1f register_A = 0x308 */;
      /* opNOP_A_A (5f) */

      return;

L1dc1:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1dc2:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1dc3:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L1dc4:

      /* opLDJimm_A_A (45) */
      register_J = 0x0dd5;

      return;

L1dc6:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1dd5; return;};

      return;

L1dc7:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1dc8:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x11;
      register_A = flag_C = acc_a0 = 0x0011;

      return;

L1dca:

      /* opOUTbi_A_A (93) */
      /* opOUTsnd_A (93) */
      set_sound_data(1);

      return;

L1dcb:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1dcc:

      /* opOUTbi_A_A (90) */
      /* opOUTsnd_A (90) */
      set_sound_addr_A(register_A&1);

      return;

L1dcd:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1dce:

      /* opOUTbi_A_A (91) */
      /* opOUTsnd_A (91) */
      set_sound_addr_B(register_A&1);

      return;

L1dcf:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1dd0:

      /* opOUTbi_A_A (92) */
      /* opOUTsnd_A (92) */
      set_sound_addr_C(register_A&1);

      return;

L1dd1:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1dd2:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1dd3:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1dd4:

      /* opOUTbi_A_A (94) */
      /* opOUTsnd_A (94) */
      if (register_A&1) strobe_sound_on(); else strobe_sound_off();

      return;

L1dd5:

      /* Invariants: register_P = 0x6 register_I = 0x69 register_A = 0x00 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1dd6:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1dd7:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x29] = 0x000; /* store acc to RAM */

      return;

L1dd8:

      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */

      return;

L1dd9:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x73] = 0x000; /* store acc to RAM */

      return;

L1dda:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1ddb:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x37] = 0x000; /* store acc to RAM */

      return;

L1ddc:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x39] = 0x000; /* store acc to RAM */

      return;

L1ddd:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x3d] = 0x000; /* store acc to RAM */

      return;

L1dde:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1ddf:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x47] = 0x000; /* store acc to RAM */

      return;

L1de0:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x49] = 0x000; /* store acc to RAM */

      return;

L1de1:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x4d] = 0x000; /* store acc to RAM */

      return;

L1de2:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1de3:

      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x57] = 0x000; /* store acc to RAM */

      return;

L1de4:

      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x59] = 0x000; /* store acc to RAM */

      return;

L1de5:

      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x5d] = 0x000; /* store acc to RAM */

      return;

L1de6:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L1de7:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1de8:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x33] = 0xf00; /* store acc to RAM */

      return;

L1de9:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1dea:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x43] = 0xf00; /* store acc to RAM */

      return;

L1deb:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1dec:

      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x53] = 0xf00; /* store acc to RAM */

      return;

L1ded:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1dee:

      /* opNOP_A_B (57) */

      return;

L1def:

      /* opLDAdir_B_AA (a3) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x03]; /* new acc value */

      return;

L1df0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1df1:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1df2:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1df3:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1df4:

      /* opADDdir_A_AA (62) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x22]))) & 0xFFF; /* do acc operation */

      return;

L1df5:

      /* opNOP_A_B (57) */

      return;

L1df6:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L1df7:

      /* opSTAirg_A_A (e6) */
      ram[0x22] = register_A; /* store acc */

      return;

L1df8:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1df9:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1dfa:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1dfb:

      /* opSTAirg_A_A (e6) */
      ram[0x22] = register_A; /* store acc */

      return;

L1dfc:

      /* opNOP_A_B (57) */

      return;

L1dfd:

      /* opAWDirg_B_AA (e7) */
      acc_a0 = register_A;
      cmp_old = register_B;
      register_B = (flag_C = (register_B + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1dfe:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1dff:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1e00:

      /* opSTAirg_A_A (e6) */
      ram[0x23] = register_A; /* store acc */

      return;

L1e01:

      /* opNOP_A_B (57) */

      return;

L1e02:

      /* opSTAdir_B_BB (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_B; /* set I register and store B to ram */

      return;

L1e03:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1e04:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x00ff;

      return;

L1e06:

      /* opLDPimm_A_A (82) */

      return;

L1e07:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x23]) ^ 0xFFF) + 1 + register_A);

      return;

L1e08:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1e09:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00ff))) & 0xFFF; /* add values */

      return;

L1e0b:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e0c:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x58] = register_A; /* store acc to RAM */

      return;

L1e0d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1e0e:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e0f:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x38] = 0x000; /* store acc to RAM */

      return;

L1e10:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e11:

      /* opSUBdir_A_AA (78) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + ((cmp_new = ram[register_I = 0x58]) ^ 0xFFF) + 1)) & 0xFFF; /* set regI addr */

      return;

L1e12:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e13:

      /* opSTAdir_A_A (d8) */
      ram[register_I = 0x48] = register_A; /* store acc to RAM */

      return;

L1e14:

      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;

      return;

L1e15:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x4a] = 0xc00; /* store acc to RAM */

      return;

L1e16:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e17:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x5a] = 0xc00; /* store acc to RAM */

      return;

L1e18:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e19:

      /* opSTAdir_A_A (da) */
      ram[register_I = 0x3a] = 0xc00; /* store acc to RAM */

      return;

L1e1a:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1e1b:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x22]; /* set I register */
      

      return;

L1e1c:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1e1d:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1e1e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1e1f:

      /* opLDJimm_A_A (4d) */
      register_J = 0x0e9d;

      return;

L1e21:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1e9d; return;};
      

      return;

L1e22:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1e23:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1e9d; return;};
      

      return;

L1e24:

      /* opLDPimm_A_A (82) */

      return;

L1e25:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1e26:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e27:

      /* opLDJimm_A_A (4b) */
      register_J = 0x0e5b;

      return;

L1e29:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1e5b; return;};
      

      return;

L1e2a:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e2b:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x32] = register_A; /* store acc to RAM */

      return;

L1e2c:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e2d:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x32]))) & 0xFFF;
      set_watchdog();

      return;

L1e2e:

      /* opSTAirg_A_A (e6) */
      ram[0x32] = register_A; /* store acc */

      return;

L1e2f:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x7f) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1e31:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e32:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x42] = register_A; /* store acc to RAM */

      return;

L1e33:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00fe))) & 0xFFF; /* add values */

      return;

L1e35:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e36:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x52] = register_A; /* store acc to RAM */

      return;

L1e37:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e38:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e39:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e3a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e3b:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e3c:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e3d:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e3e:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x55] = register_A; /* store acc to RAM */

      return;

L1e3f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1e40:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1e41:

      /* opSTAirg_A_A (e6) */
      ram[0x55] = register_A; /* store acc */

      return;

L1e42:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e43:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x45] = register_A; /* store acc to RAM */

      return;

L1e44:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e45:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x35] = register_A; /* store acc to RAM */

      return;

L1e46:

      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;

      return;

L1e47:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1e48:

      /* opCMPdir_A_AA (b3) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x23]) ^ 0xFFF) + 1 + register_A);

      return;

L1e49:

      /* opLDJimm_A_A (48) */
      register_J = 0x0e88;

      return;

L1e4b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1e88; return;};

      return;

L1e4c:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L1e4d:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e4e:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x31] = 0x900; /* store acc to RAM */

      return;

L1e4f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xff;
      register_A = flag_C = acc_a0 = 0x09ff;

      return;

L1e51:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e52:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x41] = 0x9ff; /* store acc to RAM */

      return;

L1e53:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e54:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x51] = 0x9ff; /* store acc to RAM */

      return;

L1e55:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1e56:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0020;

      return;

L1e58:

      /* opLDJimm_A_A (44) */
      register_J = 0x0e94;

      return;

L1e5a:

      /* opJMP_A_A (58) */
      {register_PC = 0x1e94; return;};

      return;

L1e5b:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e5c:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x31] = register_A; /* store acc to RAM */

      return;

L1e5d:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x7f) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1e5f:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e60:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x41] = register_A; /* store acc to RAM */

      return;

L1e61:

      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x00fe))) & 0xFFF; /* add values */

      return;

L1e63:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e64:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x51] = register_A; /* store acc to RAM */

      return;

L1e65:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e66:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e67:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e68:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e69:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e6a:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e6b:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1e6c:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x54] = register_A; /* store acc to RAM */

      return;

L1e6d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1e6e:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1e6f:

      /* opSTAirg_A_A (e6) */
      ram[0x54] = register_A; /* store acc */

      return;

L1e70:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e71:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x44] = register_A; /* store acc to RAM */

      return;

L1e72:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e73:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x34] = register_A; /* store acc to RAM */

      return;

L1e74:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L1e75:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e76:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x42] = 0x700; /* store acc to RAM */

      return;

L1e77:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e78:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x52] = 0x700; /* store acc to RAM */

      return;

L1e79:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0xff) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1e7b:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e7c:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x32] = register_A; /* store acc to RAM */

      return;

L1e7d:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L1e7e:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xe0;
      register_A = flag_C = acc_a0 = 0x0fe0;

      return;

L1e80:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x35] = 0xfe0; /* store acc to RAM */

      return;

L1e81:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e82:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x55] = 0xfe0; /* store acc to RAM */

      return;

L1e83:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e84:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x45] = 0xfe0; /* store acc to RAM */

      return;

L1e85:

      /* opLDJimm_A_A (4a) */
      register_J = 0x0e9a;

      return;

L1e87:

      /* opJMP_A_A (58) */
      {register_PC = 0x1e9a; return;};

      return;

L1e88:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L1e89:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e8a:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x31] = 0x700; /* store acc to RAM */

      return;

L1e8b:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0xff) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1e8d:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e8e:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x41] = register_A; /* store acc to RAM */

      return;

L1e8f:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e90:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x51] = register_A; /* store acc to RAM */

      return;

L1e91:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L1e92:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xe0;
      register_A = flag_C = acc_a0 = 0x0fe0;

      return;

L1e94:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1e95:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x34] = register_A; /* store acc to RAM */

      return;

L1e96:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1e97:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x44] = register_A; /* store acc to RAM */

      return;

L1e98:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1e99:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x54] = register_A; /* store acc to RAM */

      return;

L1e9a:

      /* opLDJimm_A_A (48) */
      register_J = 0x0ef8;

      return;

L1e9c:

      /* opJMP_A_A (58) */
      {register_PC = 0x1ef8; return;};

      return;

L1e9d:

      /* Invariants: register_P = 0x2 register_I = 0x22 */;
      /* opLDPimm_A_A (82) */

      return;

L1e9e:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1e9f:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea0:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1ea1:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x42] = register_A; /* store acc to RAM */

      return;

L1ea2:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea3:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x42]))) & 0xFFF;
      set_watchdog();

      return;

L1ea4:

      /* opSTAirg_A_A (e6) */
      ram[0x42] = register_A; /* store acc */

      return;

L1ea5:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea6:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea7:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea8:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ea9:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eaa:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eab:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eac:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x45] = register_A; /* store acc to RAM */

      return;

L1ead:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1eae:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1eaf:

      /* opSTAirg_A_A (e6) */
      ram[0x45] = register_A; /* store acc */

      return;

L1eb0:

      /* opLDAimm_A_AA (09) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0900;

      return;

L1eb1:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x41] = 0x900; /* store acc to RAM */

      return;

L1eb2:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1eb3:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x18;
      register_A = flag_C = acc_a0 = 0x0018;

      return;

L1eb5:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x44] = 0x018; /* store acc to RAM */

      return;

L1eb6:

      /* opLDAimm_A_AA (07) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0700;

      return;

L1eb7:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1eb8:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x32] = 0x700; /* store acc to RAM */

      return;

L1eb9:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1eba:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x51] = 0x700; /* store acc to RAM */

      return;

L1ebb:

      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;

      return;

L1ebc:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xe8;
      register_A = flag_C = acc_a0 = 0x0fe8;

      return;

L1ebe:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x54] = 0xfe8; /* store acc to RAM */

      return;

L1ebf:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1ec0:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x35] = 0xfe8; /* store acc to RAM */

      return;

L1ec1:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1ec2:

      /* opLDAdir_A_AA (a2) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x22]; /* set I register */
      

      return;

L1ec3:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1ec4:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1ec5:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ec6:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1ec7:

      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x31] = register_A; /* store acc to RAM */

      return;

L1ec8:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ec9:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eca:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ecb:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ecc:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ecd:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ece:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ecf:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x34] = register_A; /* store acc to RAM */

      return;

L1ed0:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1ed1:

      /* opNOP_A_B (57) */

      return;

L1ed2:

      /* opLDAdir_B_AA (a3) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* store old acc */
      register_B = cmp_new = ram[register_I = (register_P << 4) + 0x03]; /* new acc value */

      return;

L1ed3:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1ed4:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1ed5:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1ed6:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1ed7:

      /* opADDdir_A_AA (62) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x22]))) & 0xFFF; /* do acc operation */

      return;

L1ed8:

      /* opNOP_A_B (57) */

      return;

L1ed9:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L1eda:

      /* opSTAirg_A_A (e6) */
      ram[0x22] = register_A; /* store acc */

      return;

L1edb:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1edc:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1edd:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1ede:

      /* opSTAirg_A_A (e6) */
      ram[0x22] = register_A; /* store acc */

      return;

L1edf:

      /* opNOP_A_B (57) */

      return;

L1ee0:

      /* opAWDirg_B_AA (e7) */
      acc_a0 = register_A;
      cmp_old = register_B;
      register_B = (flag_C = (register_B + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1ee1:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1ee2:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1ee3:

      /* opSTAirg_A_A (e6) */
      ram[0x23] = register_A; /* store acc */

      return;

L1ee4:

      /* opNOP_A_B (57) */

      return;

L1ee5:

      /* opSTAdir_B_BB (d2) */
      ram[register_I = (register_P << 4) + 0x2] = register_B; /* set I register and store B to ram */

      return;

L1ee6:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1ee7:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ee8:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1ee9:

      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x52] = register_A; /* store acc to RAM */

      return;

L1eea:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eeb:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x52]))) & 0xFFF;
      set_watchdog();

      return;

L1eec:

      /* opSTAirg_A_A (e6) */
      ram[0x52] = register_A; /* store acc */

      return;

L1eed:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eee:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1eef:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ef0:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ef1:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ef2:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ef3:

      /* opASRe_A_AA (ed) */
      cmp_new = 0xDED; cmp_old = flag_C = acc_a0 = register_A;
      register_A = SEX(register_A); /* make signed */
      register_A = (((signed short int)(((signed short int)register_A) >> (signed short int)1)) /* SAR */) & 0xFFF;

      return;

L1ef4:

      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x55] = register_A; /* store acc to RAM */

      return;

L1ef5:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1ef6:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

      return;

L1ef7:

      /* opSTAirg_A_A (e6) */
      ram[0x55] = register_A; /* store acc */

      return;

L1ef8:

      /* Invariants: register_P = 0x5 register_I = 0x55 */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1ef9:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0020;

      return;

L1efb:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1efc:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = 0x020; /* store acc to RAM */

      return;

L1efd:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1efe:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6a]) ^ 0xFFF) + 1 + register_A);

      return;

L1eff:

      /* opLDJimm_A_A (48) */
      register_J = 0x0f48;

      return;

L1f01:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1f48; return;};

      return;

L1f02:

      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;

      return;

L1f03:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6a]) ^ 0xFFF) + 1 + register_A);

      return;

L1f04:

      /* opLDJimm_A_A (4e) */
      register_J = 0x0f3e;

      return;

L1f06:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1f3e; return;};

      return;

L1f07:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1f08:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6a]) ^ 0xFFF) + 1 + register_A);

      return;

L1f09:

      /* opLDJimm_A_A (40) */
      register_J = 0x0f30;

      return;

L1f0b:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1f30; return;};

      return;

L1f0c:

      /* opLDAimm_A_AA (06) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0600;

      return;

L1f0d:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6a]) ^ 0xFFF) + 1 + register_A);

      return;

L1f0e:

      /* opLDJimm_A_A (41) */
      register_J = 0x0f21;

      return;

L1f10:

      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x1f21; return;};

      return;

L1f11:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f12:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x3c;
      register_A = flag_C = acc_a0 = 0x003c;

      return;

L1f14:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f15:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = 0x03c; /* store acc to RAM */

      return;

L1f16:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1f17:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6a]; /* set I register */
      

      return;

L1f18:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f19:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f1a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f1b:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f1c:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x60) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1f1e:

      /* opLDJimm_A_A (41) */
      register_J = 0x0f41;

      return;

L1f20:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f41; return;};

      return;

L1f21:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f22:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x38;
      register_A = flag_C = acc_a0 = 0x0038;

      return;

L1f24:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f25:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = 0x038; /* store acc to RAM */

      return;

L1f26:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1f27:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6a]; /* set I register */
      

      return;

L1f28:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f29:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f2a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f2b:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1f2d:

      /* opLDJimm_A_A (41) */
      register_J = 0x0f41;

      return;

L1f2f:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f41; return;};

      return;

L1f30:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f31:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x30;
      register_A = flag_C = acc_a0 = 0x0030;

      return;

L1f33:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f34:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = 0x030; /* store acc to RAM */

      return;

L1f35:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1f36:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6a]; /* set I register */
      

      return;

L1f37:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f38:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f39:

      /* opSUBimmX_A_AA (30) */
      cmp_old = acc_a0 = register_A; /* back up regA */
      register_A = (flag_C = (register_A + (((cmp_new = 0x80) ^ 0xFFF) + 1))) & 0xFFF; /* add */

      return;

L1f3b:

      /* opLDJimm_A_A (41) */
      register_J = 0x0f41;

      return;

L1f3d:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f41; return;};

      return;

L1f3e:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1f3f:

      /* opLDAdir_A_AA (aa) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x6a]; /* set I register */
      

      return;

L1f40:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f41:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f42:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f43:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f44:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f45:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f46:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2e]))) & 0xFFF; /* do acc operation */

      return;

L1f47:

      /* opSTAirg_A_A (e6) */
      ram[0x2e] = register_A; /* store acc */

      return;

L1f48:

      /* Invariants: register_P = 0x6 register_I = 0x6a register_A = 0x20 */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f49:

      /* opLDAdir_A_AA (a3) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x23]; /* set I register */
      

      return;

L1f4a:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f4b:

      /* opLDJimm_A_A (4c) */
      register_J = 0x0f6c;

      return;

L1f4d:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1f6c; return;};
      

      return;

L1f4e:

      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f4f:

      /* opLDJimm_A_A (4f) */
      register_J = 0x0f5f;

      return;

L1f51:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1f5f; return;};
      

      return;

L1f52:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f53:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x23;
      register_A = flag_C = acc_a0 = 0x0023;

      return;

L1f55:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x24] = 0x023; /* store acc to RAM */

      return;

L1f56:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2e]; /* set I register */
      

      return;

L1f57:

      /* opADDimm_A_AA (2c) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0xc))) & 0xFFF; /* add values, save carry */
      

      return;

L1f58:

      /* opSTAirg_A_A (e6) */
      ram[0x2e] = register_A; /* store acc */

      return;

L1f59:

      /* opLDAimm_A_AA (05) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0500;

      return;

L1f5a:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x39;
      register_A = flag_C = acc_a0 = 0x0539;

      return;

L1f5c:

      /* opLDJimm_A_A (43) */
      register_J = 0x0f83;

      return;

L1f5e:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f83; return;};

      return;

L1f5f:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f60:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x17;
      register_A = flag_C = acc_a0 = 0x0017;

      return;

L1f62:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = 0x017; /* store acc to RAM */

      return;

L1f63:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0e]; /* set I register */
      

      return;

L1f64:

      /* opADDimm_A_AA (28) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x8))) & 0xFFF; /* add values, save carry */
      

      return;

L1f65:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1f66:

      /* opLDAimm_A_AA (05) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0500;

      return;

L1f67:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x03;
      register_A = flag_C = acc_a0 = 0x0503;

      return;

L1f69:

      /* opLDJimm_A_A (43) */
      register_J = 0x0f83;

      return;

L1f6b:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f83; return;};

      return;

L1f6c:

      /* Invariants: register_P = 0x2 register_I = 0x23 register_A = 0x196 */;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;

      return;

L1f6d:

      /* opLDJimm_A_A (4d) */
      register_J = 0x0f7d;

      return;

L1f6f:

      /* opJA0_A_A (5e) */
      if (acc_a0 & 0x01) {register_PC = 0x1f7d; return;};
      

      return;

L1f70:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f71:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x11;
      register_A = flag_C = acc_a0 = 0x0011;

      return;

L1f73:

      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x24] = 0x011; /* store acc to RAM */

      return;

L1f74:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2e]; /* set I register */
      

      return;

L1f75:

      /* opADDimm_A_AA (24) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x4))) & 0xFFF; /* add values, save carry */
      

      return;

L1f76:

      /* opSTAirg_A_A (e6) */
      ram[0x2e] = register_A; /* store acc */

      return;

L1f77:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L1f78:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xc7;
      register_A = flag_C = acc_a0 = 0x04c7;

      return;

L1f7a:

      /* opLDJimm_A_A (43) */
      register_J = 0x0f83;

      return;

L1f7c:

      /* opJMP_A_A (58) */
      {register_PC = 0x1f83; return;};

      return;

L1f7d:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f7e:

      /* opADDimm_A_AA (27) */
      cmp_new = 0x7; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L1f7f:

      /* opSTAdir_A_A (d4) */
      ram[register_I = (register_P << 4) + 0x4] = 0x007; /* store acc to RAM */

      return;

L1f80:

      /* opLDAimm_A_AA (04) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0400;

      return;

L1f81:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x81;
      register_A = flag_C = acc_a0 = 0x0481;

      return;

L1f83:

      /* Invariants: register_P = 0x2 register_I = 0x2e */;
      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1f84:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x30] = register_A; /* store acc to RAM */

      return;

L1f85:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1f86:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x40] = register_A; /* store acc to RAM */

      return;

L1f87:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1f88:

      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x50] = register_A; /* store acc to RAM */

      return;

L1f89:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1f8a:

      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */

      return;

L1f8b:

      /* opCMPdir_A_AA (b9) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x69]) ^ 0xFFF) + 1 + register_A);

      return;

L1f8c:

      /* opLDJimm_A_A (49) */
      register_J = 0x0f99;

      return;

L1f8e:

      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x1f99; return;};

      return;

L1f8f:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x10;
      register_A = flag_C = acc_a0 = 0x0010;

      return;

L1f91:

      /* opLDPimm_A_A (86) */

      return;

L1f92:

      /* opCMPdir_A_AA (ba) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x6a]) ^ 0xFFF) + 1 + register_A);

      return;

L1f93:

      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x1f99; return;};

      return;

L1f94:

      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];

      return;

L1f95:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1f96:

      /* opADDimm_A_AA (2f) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0xf))) & 0xFFF; /* add values, save carry */
      

      return;

L1f97:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f98:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = register_A; /* store acc to RAM */

      return;

L1f99:

      /* Invariants: register_P = 0xdeadbeef register_I = 0x2e */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1f9a:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = 0x2e]; /* set I register */
      

      return;

L1f9b:

      /* opLDPimm_A_A (83) */
      register_P = 0x3; /* set page register */

      return;

L1f9c:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x36] = register_A; /* store acc to RAM */

      return;

L1f9d:

      /* opLDPimm_A_A (84) */
      register_P = 0x4; /* set page register */

      return;

L1f9e:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x46] = register_A; /* store acc to RAM */

      return;

L1f9f:

      /* opLDPimm_A_A (85) */
      register_P = 0x5; /* set page register */

      return;

L1fa0:

      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x56] = register_A; /* store acc to RAM */

      return;

L1fa1:

      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;

      return;

L1fa2:

      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7e;
      register_A = flag_C = acc_a0 = 0x0c7e;

      return;

L1fa4:

      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */

      return;

L1fa5:

      /* opSTAdir_A_A (de) */
      ram[register_I = 0x2e] = 0xc7e; /* store acc to RAM */

      return;

L1fa6:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1fa7:

      /* opADDimm_A_AA (27) */
      cmp_new = 0x7; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L1fa8:

      /* opLDPimm_A_A (82) */

      return;

L1fa9:

      /* opCMPdir_A_AA (b2) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x22]) ^ 0xFFF) + 1 + register_A);

      return;

L1faa:

      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);

      return;

L1fab:

      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;

      return;

L1fac:

      /* opLDPimm_A_A (82) */

      return;

L1fad:

      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x2e]))) & 0xFFF; /* do acc operation */

      return;

L1fae:

      /* opSTAirg_A_A (e6) */
      ram[0x2e] = register_A; /* store acc */

      return;

L1faf:

      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      

      return;

L1fb0:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1fb1:

      /* opNOP_A_A (5f) */

      return;

L1fb2:

      /* opSTAdir_A_A (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_A; /* store acc to RAM */

      return;

L1fb3:

      /* opNOP_A_B (57) */

      return;

L1fb4:

      /* opLDAirg_B_AA (ea) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B;
      register_B = cmp_new = ram[register_I];
      

      return;

L1fb5:

      /* opLDAdir_A_AA (ae) */
      cmp_old = flag_C = acc_a0 = register_A; /* store old acc */
      register_A = cmp_new = ram[register_I = (register_P << 4) + 0x0e]; /* set I register */
      

      return;

L1fb6:

      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[0x1000 | register_A]; /* new acc value */

      return;

L1fb7:

      /* opNOP_A_A (5f) */

      return;

L1fb8:

      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

      return;

L1fb9:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1fba:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1fbb:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1fbc:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1fbd:

      /* opASRDe_A_AA (ee) */
      cmp_new = 0x0EEE; cmp_old = acc_a0 = register_A; flag_C = (0x0EEE + register_A);
      register_A = (register_A >> 1) | ((register_B & 1) << 11);
      register_B = (register_B >> 1) | (register_B & 0x800);

      return;

L1fbe:

      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();

      return;

L1fbf:

      /* opSTAdir_A_A (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_A; /* store acc to RAM */

      return;

L1fc0:

      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;

      return;

L1fc1:

      /* opADDimm_A_AA (27) */
      cmp_new = 0x7; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0007;
      

      return;

L1fc2:

      /* opSTAdir_A_A (d0) */
      ram[register_I = (register_P << 4) + 0x0] = 0x007; /* store acc to RAM */

      return;

L1fc3:

      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */

      return;

L1fc4:

      /* opCMPdir_A_AA (bf) */
      cmp_old = acc_a0 = register_A; /* backup old acc */
      flag_C = (((cmp_new = ram[register_I = 0x1f]) ^ 0xFFF) + 1 + register_A);

      return;

L1fc5:

      /* Invariants: register_P = 0x1 register_I = 0x1f register_A = 0x07 */;
      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x1f];
      if ((register_J & (~0xfff)) != 0) ERROR("Ram value must have been > 12 bits!\n");

      return;

L1fc6:

      /* opLDPimm_A_A (81) */

      return;

L1fc7:

      /* opJPP8_A_B (50) */
      register_PC = register_J; /* Jump to other rom bank */
      /* WARNING: UNKNOWN JUMP DESTINATION - MAY FOUL UP CODE OPTIMISATIONS */
      return;
      return;
Lelse: UNFINISHED("ELSE");
} /* End of gtExec() */

