#include "externs.h"

void cineExecute0c00(void) {
    switch (register_PC) {

case 0x0c00:

      /* Invariants: register_P = 0x1 register_I = 0x19 */;
      /* opLDPimm_A_A (81) */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d3) */
      ram[register_I = 0x13] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x14] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x15] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (22) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x2))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (da) */
      ram[register_I = 0x1a] = register_A; /* store acc to RAM */
      /* 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 */
      /* 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;
      /* 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;
      /* 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;
      /* 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;
      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;
      /* 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);
      /* opLDJimm_A_A (48) */
      register_J = 0x0c48;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c48; break;};
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opLDJimm_A_A (44) */
      register_J = 0x0c44;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c44; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* 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);
      /* opLDJimm_A_A (47) */
      register_J = 0x0c47;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c47; break;};
      /* opLDJimm_A_A (48) */
      register_J = 0x0c48;
      /* opJMP_A_A (58) */
      {register_PC = 0x0c48; break;};

case 0x0c44:

      /* 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;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

case 0x0c47:

      /* Invariants: register_P = 0x1 register_I = 0x16 */;
      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x16] = register_A; /* store acc to RAM */

case 0x0c48:

      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opSTAdir_A_A (db) */
      ram[register_I = 0x1b] = register_A; /* store acc to RAM */
      /* 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 */
      /* 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;
      /* 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;
      /* 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;
      /* 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;
      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;
      /* 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);
      /* opLDJimm_A_A (4e) */
      register_J = 0x0c6e;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6e; break;};
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opLDJimm_A_A (4a) */
      register_J = 0x0c6a;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6a; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* 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);
      /* opLDJimm_A_A (4d) */
      register_J = 0x0c6d;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c6d; break;};
      /* opLDJimm_A_A (4e) */
      register_J = 0x0c6e;
      /* opJMP_A_A (58) */
      {register_PC = 0x0c6e; break;};

case 0x0c6a:

      /* 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;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x1e;
      register_A = flag_C = acc_a0 = 0x001e;

case 0x0c6d:

      /* Invariants: register_P = 0x1 register_I = 0x17 */;
      /* opSTAdir_A_A (d7) */
      ram[register_I = 0x17] = register_A; /* store acc to RAM */

case 0x0c6e:

      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* 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);
      /* opLDJimm_A_A (41) */
      register_J = 0x0c81;
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0c81; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x16] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x17] = register_A; /* store acc */

case 0x0c81:

      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* 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 */
      
      /* 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 */
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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);
      /* opLDJimm_A_A (4e) */
      register_J = 0x0c9e;
      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0c9e; break;};
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;
      /* 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);
      /* opLDJimm_A_A (4c) */
      register_J = 0x0c9c;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0c9c; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opLDJimm_A_A (4e) */
      register_J = 0x0c9e;
      /* opJMP_A_A (58) */
      {register_PC = 0x0c9e; break;};

case 0x0c9c:

      /* 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;
      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

case 0x0c9e:

      /* 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 */
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xa9;
      register_A = flag_C = acc_a0 = 0x0ca9;
      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0xca9; /* store acc to RAM */
      /* opLDJimm_A_A (4b) */
      register_J = 0x0eeb;
      /* opJMP_A_A (58) */
      {register_PC = 0x0eeb; break;};

case 0x0ca9:

      /* 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 */
      
      /* opSTAdir_A_A (dc) */
      ram[register_I = 0x1c] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x1d] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* 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 */
      
      /* 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 */
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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);
      /* opLDJimm_A_A (4a) */
      register_J = 0x0cca;
      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0cca; break;};
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x40;
      register_A = flag_C = acc_a0 = 0x0040;
      /* 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);
      /* opLDJimm_A_A (48) */
      register_J = 0x0cc8;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cc8; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opLDJimm_A_A (4a) */
      register_J = 0x0cca;
      /* opJMP_A_A (58) */
      {register_PC = 0x0cca; break;};

case 0x0cc8:

      /* 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;
      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      

case 0x0cca:

      /* 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 */
      /* opSTAdir_A_A (de) */
      ram[register_I = 0x1e] = register_A; /* store acc to RAM */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opLDAimm_A_AA (0c) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0c00;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xd5;
      register_A = flag_C = acc_a0 = 0x0cd5;
      /* opSTAdir_A_A (df) */
      ram[register_I = 0x1f] = 0xcd5; /* store acc to RAM */
      /* opLDJimm_A_A (4b) */
      register_J = 0x0eeb;
      /* opJMP_A_A (58) */
      {register_PC = 0x0eeb; break;};

case 0x0cd5:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (4e) */
      register_J = 0x0cde;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cde; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0cde:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (42) */
      register_J = 0x0cf2;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cf2; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

case 0x0cf2:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (4b) */
      register_J = 0x0cfb;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0cfb; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0cfb:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d3) */
      ram[register_I = (register_P << 4) + 0x3] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (4f) */
      register_J = 0x0d0f;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d0f; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x13] = register_A; /* store acc */

case 0x0d0f:

      /* Invariants: register_P = 0x1 register_I = 0x13 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (48) */
      register_J = 0x0d18;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d18; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0d18:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d4) */
      ram[register_I = (register_P << 4) + 0x4] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (4c) */
      register_J = 0x0d2c;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d2c; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x14] = register_A; /* store acc */

case 0x0d2c:

      /* Invariants: register_P = 0x1 register_I = 0x14 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (45) */
      register_J = 0x0d35;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d35; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0d35:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (df) */
      ram[register_I = (register_P << 4) + 0xf] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (49) */
      register_J = 0x0d49;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d49; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x1f] = register_A; /* store acc */

case 0x0d49:

      /* Invariants: register_P = 0x1 register_I = 0x1f register_A = 0x800 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (42) */
      register_J = 0x0d52;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d52; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0d52:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d5) */
      ram[register_I = (register_P << 4) + 0x5] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (46) */
      register_J = 0x0d66;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0d66; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x15] = register_A; /* store acc */

case 0x0d66:

      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* 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 */
      
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opSTAdir_A_A (d0) */
      ram[register_I = 0x10] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* 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 */
      
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x11] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[register_I]))) & 0xFFF;
      set_watchdog();
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opSTAdir_A_A (d2) */
      ram[register_I = 0x12] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (29) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x9))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDPimm_A_A (81) */
      /* 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 */
      
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* 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 */
      
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* opSTAdir_A_A (d5) */
      ram[register_I = 0x05] = register_A; /* store acc to RAM */
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* 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 */
      
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* opSTAdir_A_A (d6) */
      ram[register_I = 0x06] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;
      /* opSTAdir_A_A (dd) */
      ram[register_I = 0x0d] = 0x200; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSTAdir_A_A (d4) */
      ram[register_I = 0x04] = 0x000; /* store acc to RAM */

case 0x0d93:

      /* 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 */
      
      /* 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);
      /* opLDJimm_A_A (43) */
      register_J = 0x0e03;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e03; break;};
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (44) */
      register_J = 0x0da4;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0da4; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0da4:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (4e) */
      register_J = 0x0dae;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dae; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dae:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (48) */
      register_J = 0x0db8;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0db8; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0db8:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (42) */
      register_J = 0x0dc2;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dc2; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dc2:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (4c) */
      register_J = 0x0dcc;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dcc; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dcc:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (46) */
      register_J = 0x0dd6;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dd6; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dd6:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (40) */
      register_J = 0x0de0;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0de0; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0de0:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (4a) */
      register_J = 0x0dea;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dea; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dea:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (44) */
      register_J = 0x0df4;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0df4; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0df4:

      /* 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;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLDJimm_A_A (4e) */
      register_J = 0x0dfe;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0dfe; break;};
      /* opAWDirg_A_AA (e7) */
      cmp_old = acc_a0 = register_A;
      register_A = (flag_C = (register_A + (cmp_new = ram[0x09]))) & 0xFFF;
      set_watchdog();
      /* opNOP_A_B (57) */
      /* 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 */

case 0x0dfe:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d9) */
      ram[register_I = (register_P << 4) + 0x9] = register_B; /* set I register and store B to ram */
      /* opLDJimm_A_A (4b) */
      register_J = 0x0e0b;
      /* opJMP_A_A (58) */
      {register_PC = 0x0e0b; break;};

case 0x0e03:

      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opSTAdir_A_A (dd) */
      ram[register_I = (register_P << 4) + 0xd] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opLDJimm_A_A (43) */
      register_J = 0x0d93;
      /* opJMP_A_A (58) */
      {register_PC = 0x0d93; break;};

case 0x0e0b:

      /* Invariants: register_P = 0x0 register_I = 0x09 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (44) */
      register_J = 0x0e14;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e14; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0e14:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d7) */
      ram[register_I = (register_P << 4) + 0x7] = register_B; /* set I register and store B to ram */
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opLDJimm_A_A (4a) */
      register_J = 0x0e2a;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e2a; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */

case 0x0e2a:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (43) */
      register_J = 0x0e33;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e33; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0e33:

      /* 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);
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opMULirg_A_AA (e3) */
        MUL();
      /* opNOP_A_B (57) */
      /* opSTAdir_B_BB (d8) */
      ram[register_I = (register_P << 4) + 0x8] = register_B; /* set I register and store B to ram */
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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);
      /* opLDJimm_A_A (49) */
      register_J = 0x0e49;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e49; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */

case 0x0e49:

      /* Invariants: register_P = 0x0 */;
      /* opNOP_A_B (57) */
      /* opLDAimm_B_AA (00) */
      flag_C = acc_a0 = register_A;
      cmp_old = register_B; /* step back cmp flag */
      register_B = cmp_new = 0;
      /* opNOP_A_B (57) */
      /* 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 */
      /* opLDJimm_A_A (4b) */
      register_J = 0x0e5b;
      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0e5b; break;};
      /* opLDJimm_A_A (42) */
      register_J = 0x0e52;

case 0x0e52:

      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opNOP_A_B (57) */
      /* 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 */
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0e52; break;};

case 0x0e5b:

      /* Invariants: register_P = 0x0 register_I = 0x04 */;
      /* opLDAimm_A_AA (03) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0300;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opADDdir_A_AA (68) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x08]))) & 0xFFF; /* do acc operation */
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* opADDdir_A_AA (67) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x07]))) & 0xFFF; /* do acc operation */
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */
      /* 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);
      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;
      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0ee7; break;};
      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      
      /* 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);
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0ee7; break;};
      /* opLDAimm_A_AA (02) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0200;
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* 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);
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0016))) & 0xFFF; /* add values */
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* opSTAdir_A_A (d9) */
      ram[register_I = 0x09] = register_A; /* store acc to RAM */
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */
      /* 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 */
      
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x07] = register_A; /* store acc */
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opLDJimm_A_A (40) */
      register_J = 0x0e90;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0e90; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0e90:

      /* 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 */
      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; break;};
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */
      /* 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 */
      
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x08] = register_A; /* store acc */
      /* opLDAimm_A_AA (08) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0800;
      /* 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 */
      
      /* opLDJimm_A_A (40) */
      register_J = 0x0ea0;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ea0; break;};
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */

case 0x0ea0:

      /* 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 */
      /* opLDJimm_A_A (47) */
      register_J = 0x0ee7;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0ee7; break;};
      /* opLDPimm_A_A (81) */
      register_P = 0x1; /* set page register */
      /* 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 */
      
      /* 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 */
      /* opSTAirg_A_A (e6) */
      ram[0x19] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimm_A_AA (23) */
      cmp_new = 0x3; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0003;
      
      /* opLDIdir_A_A (c9) */
      register_I = ram[0x19]&0xff; /* set new register_I (8 bits) */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

case 0x0eac:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */
      /* opSTAdir_A_A (df) */
      ram[register_I = 0x6f] = 0x000; /* store acc to RAM */
      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      
      /* opLDPimm_A_A (87) */
      register_P = 0x7; /* set page register */
      /* opSTAdir_A_A (d1) */
      ram[register_I = 0x71] = 0x00f; /* store acc to RAM */
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */
      /* 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);
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */
      /* opADDdir_A_AA (6b) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6b]))) & 0xFFF; /* do acc operation */
      /* opSTAirg_A_A (e6) */
      ram[0x6b] = register_A; /* store acc */
      /* 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 */
      /* opLDJimm_A_A (40) */
      register_J = 0x0ec0;
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0ec0; break;};
      /* opSTAirg_A_A (e6) */
      ram[0x6b] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimm_A_AA (21) */
      cmp_new = 0x1; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x0001;
      
      /* opSTAdir_A_A (df) */
      ram[register_I = 0x6f] = 0x001; /* store acc to RAM */

case 0x0ec0:

      /* Invariants: register_P = 0x6 */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */
      /* 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 */
      
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLSRe_A_AA (eb) */
      cmp_new = 0x0BEB; cmp_old = acc_a0 = register_A; flag_C = (0x0BEB + register_A);
      register_A >>= 1;
      /* opLDPimm_A_A (86) */
      register_P = 0x6; /* set page register */
      /* opADDdir_A_AA (6f) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6f]))) & 0xFFF; /* do acc operation */
      /* opADDdir_A_AA (6a) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x6a]))) & 0xFFF; /* do acc operation */
      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimm_A_AA (2f) */
      cmp_new = 0xf; cmp_old = acc_a0 = register_A; register_A = flag_C = 0x000f;
      
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* 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 */
      /* opLDJimm_A_A (4f) */
      register_J = 0x0edf;
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0edf; break;};
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opADDimm_A_AA (26) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x6))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0xf0;
      register_A = flag_C = acc_a0 = 0x00f0;
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* 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 */
      /* opJNC_A_AA (5d) */
      if (!(flag_C & CARRYBIT)) {register_PC = 0x0edf; break;};
      /* opLDAirg_A_AA (ea) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = ram[register_I];
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0060))) & 0xFFF; /* add values */
      /* opSTAirg_A_A (e6) */
      ram[0x6a] = register_A; /* store acc */

case 0x0edf:

      /* Invariants: register_P = 0x6 register_I = 0x6a */;
      /* opLDPimm_A_A (82) */
      register_P = 0x2; /* set page register */
      /* 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 */
      
      /* opADDimm_A_AA (21) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = 0x1))) & 0xFFF; /* add values, save carry */
      
      /* opSTAirg_A_A (e6) */
      ram[0x29] = register_A; /* store acc */
      /* 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 */
      /* opLDJimm_A_A (4c) */
      register_J = 0x0eac;
      /* opJEQ_A_AA (5c) */
      if (cmp_new == cmp_old) {register_PC = 0x0eac; break;};

case 0x0ee7:

      /* Invariants: register_P = 0xdeadbeef */;
      /* opLDPimm_A_A (80) */
      register_P = 0x0; /* set page register */
      /* 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);
      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x00];
      /* opJMP_A_A (58) */
      {register_PC = register_J; break;};

case 0x0eeb:

      /* Invariants: register_P = 0x1 register_I = 0x1f */;
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x7f;
      register_A = flag_C = acc_a0 = 0x007f;
      /* 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);
      /* opANDirg_A_AA (e9) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A &= (cmp_new = ram[register_I]);
      /* opSTAirg_A_A (e6) */
      ram[0x1e] = register_A; /* store acc */
      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x6c;
      register_A = flag_C = acc_a0 = 0x0f6c;
      /* opSTAdir_A_A (da) */
      ram[register_I = 0x1a] = 0xf6c; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x20;
      register_A = flag_C = acc_a0 = 0x0020;
      /* 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);
      /* opLDJimm_A_A (45) */
      register_J = 0x0f15;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f15; break;};
      /* opLSLe_A_AA (ec) */
      cmp_new = 0x0CEC;
      cmp_old = acc_a0 = register_A;
      flag_C = (0x0CEC + register_A);
      register_A = (register_A << 1) & 0x0FFF;
      /* 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);
      /* opLDJimm_A_A (41) */
      register_J = 0x0f21;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f21; break;};
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */
      /* 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);
      /* opLDJimm_A_A (45) */
      register_J = 0x0f35;
      /* opJLT_A_A (5b) */
      if (cmp_new < cmp_old) {register_PC = 0x0f35; break;};
      /* 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 */
      
      /* opADDdir_A_AA (6e) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + (cmp_new = ram[register_I = 0x1e]))) & 0xFFF; /* do acc operation */
      /* 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 */
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */
      /* 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 */
      
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0060))) & 0xFFF; /* add values */
      /* 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 */
      /* opLDJimm_A_A (43) */
      register_J = 0x0f43;
      /* opJMP_A_A (58) */
      {register_PC = 0x0f43; break;};

case 0x0f15:

      /* 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 */
      
      /* 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 */
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (0f) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0x0f00;
      /* opADDimmX_A_AA (20) */
      cmp_old = register_A; cmp_new = 0x4c;
      register_A = flag_C = acc_a0 = 0x0f4c;
      /* 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 */
      /* opLDJimm_A_A (4f) */
      register_J = 0x0f2f;
      /* opJMP_A_A (58) */
      {register_PC = 0x0f2f; break;};

case 0x0f21:

      /* 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 */
      
      /* 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 */
      /* 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 */
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* 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 */
      
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0020))) & 0xFFF; /* add values */
      /* 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 */

case 0x0f2f:

      /* 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 */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */
      /* opLDJimm_A_A (49) */
      register_J = 0x0f49;
      /* opJMP_A_A (58) */
      {register_PC = 0x0f49; break;};

case 0x0f35:

      /* 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 */
      
      /* opADDimmX_A_AA (20) */
      register_A = (flag_C = ((acc_a0 = cmp_old = register_A) + (cmp_new = 0x0040))) & 0xFFF; /* add values */
      /* 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 */
      /* opXLT_A_AA (e2) */
      cmp_old = register_A; register_A = cmp_new = rom[register_A]; /* new acc value */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (db) */
      ram[register_I = (register_P << 4) + 0xb] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */
      /* 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 */
      
      /* 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 */
      /* 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 */

case 0x0f43:

      /* 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 */
      /* opNOP_A_A (5f) */
      /* opSTAdir_A_A (da) */
      ram[register_I = (register_P << 4) + 0xa] = register_A; /* store acc to RAM */
      /* opLDAimm_A_AA (00) */
      cmp_old = flag_C = acc_a0 = register_A;
      register_A = cmp_new = 0;
      /* opSUBirg_A_AA (e8) */
      register_A = (flag_C = ((cmp_old = acc_a0 = register_A) + ((cmp_new = ram[register_I]) ^ 0xFFF) + 1)) & 0xFFF; /* ones compliment */
      /* opSTAirg_A_A (e6) */
      ram[register_I] = register_A; /* store acc */

case 0x0f49:

      /* 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);
      /* opLDJirg_A_A (e1) */
      /* load J reg from value at last dir addr */
      register_J = ram[0x1f];
      /* opJMP_A_A (58) */
      {register_PC = register_J; break;};
/*********************************************************/
    default:
        /* Jumping to any illegal address or end of eprom will come here */
        /* we ought to reinitialise or something */
        ;
    }
}


