Skip to content

Instantly share code, notes, and snippets.

@Blecki
Created October 24, 2013 22:02
Show Gist options
  • Select an option

  • Save Blecki/7145872 to your computer and use it in GitHub Desktop.

Select an option

Save Blecki/7145872 to your computer and use it in GitHub Desktop.
//Setup memory and registers
byte[] MEM = new byte[0xFFFF];
byte A, B, C, D, E, H, L = 0;
ushort IP, SP = 0;
byte O = 0;
uint CLOCK = 0;
byte[] PORT = new byte[0xFF];
byte N { get { CLOCK++; return MEM[IP++]; } }
byte HL { get { return ((ushort)H << 8) + (ushort)L; }}
while (true)
{
switch (N)
{
case 0 : /* CAL */ { CLOCK+=4; MEM[--SP] = (byte)IP; MEM[--SP] = (byte)(IP >> 8); IP = HL; break; }
case 1 : /* MTA A B */ { CLOCK+=1; A = B; break; }
case 2 : /* MTA A C */ { CLOCK+=1; A = C; break; }
case 3 : /* MTA A D */ { CLOCK+=1; A = D; break; }
case 4 : /* MTA A E */ { CLOCK+=1; A = E; break; }
case 5 : /* MTA A H */ { CLOCK+=1; A = H; break; }
case 6 : /* MTA A L */ { CLOCK+=1; A = L; break; }
case 7 : /* MTA A N */ { CLOCK+=1; A = N; break; }
case 8 : /* MTA B A */ { CLOCK+=1; B = A; break; }
case 9 : /* RET */ { CLOCK+=4; H = MEM[SP++]; L = MEM[SP++]; IP = HL; break; }
case 10 : /* MTA B C */ { CLOCK+=1; B = C; break; }
case 11 : /* MTA B D */ { CLOCK+=1; B = D; break; }
case 12 : /* MTA B E */ { CLOCK+=1; B = E; break; }
case 13 : /* MTA B H */ { CLOCK+=1; B = H; break; }
case 14 : /* MTA B L */ { CLOCK+=1; B = L; break; }
case 15 : /* MTA B N */ { CLOCK+=1; B = N; break; }
case 16 : /* */ { CLOCK+=1; break; }
case 17 : /* */ { CLOCK+=1; break; }
case 18 : /* MFA A C */ { CLOCK+=1; C = A; break; }
case 19 : /* MFA A D */ { CLOCK+=1; D = A; break; }
case 20 : /* MFA A E */ { CLOCK+=1; E = A; break; }
case 21 : /* MFA A H */ { CLOCK+=1; H = A; break; }
case 22 : /* MFA A L */ { CLOCK+=1; L = A; break; }
case 23 : /* NOT A */ { CLOCK+=2; A = !A; break; }
case 24 : /* */ { CLOCK+=1; break; }
case 25 : /* */ { CLOCK+=1; break; }
case 26 : /* MFA B C */ { CLOCK+=1; C = B; break; }
case 27 : /* MFA B D */ { CLOCK+=1; D = B; break; }
case 28 : /* MFA B E */ { CLOCK+=1; E = B; break; }
case 29 : /* MFA B H */ { CLOCK+=1; H = B; break; }
case 30 : /* MFA B L */ { CLOCK+=1; L = B; break; }
case 31 : /* NOT B */ { CLOCK+=2; B = !B; break; }
case 32 : /* ADD A A */ { CLOCK+=2; A += A; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 33 : /* ADD A B */ { CLOCK+=2; A += B; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 34 : /* ADD A C */ { CLOCK+=2; A += C; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 35 : /* ADD A D */ { CLOCK+=2; A += D; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 36 : /* ADD A E */ { CLOCK+=2; A += E; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 37 : /* ADD A H */ { CLOCK+=2; A += H; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 38 : /* ADD A L */ { CLOCK+=2; A += L; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 39 : /* ADD A N */ { CLOCK+=2; A += N; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 40 : /* ADD B A */ { CLOCK+=2; B += A; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 41 : /* ADD B B */ { CLOCK+=2; B += B; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 42 : /* ADD B C */ { CLOCK+=2; B += C; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 43 : /* ADD B D */ { CLOCK+=2; B += D; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 44 : /* ADD B E */ { CLOCK+=2; B += E; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 45 : /* ADD B H */ { CLOCK+=2; B += H; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 46 : /* ADD B L */ { CLOCK+=2; B += L; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 47 : /* ADD B N */ { CLOCK+=2; B += N; O = (byte)(((ushort)_1 + (ushort)_2) & 0xFF00) >> 8; break; }
case 48 : /* SUB A A */ { CLOCK+=2; A -= A; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 49 : /* SUB A B */ { CLOCK+=2; A -= B; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 50 : /* SUB A C */ { CLOCK+=2; A -= C; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 51 : /* SUB A D */ { CLOCK+=2; A -= D; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 52 : /* SUB A E */ { CLOCK+=2; A -= E; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 53 : /* SUB A H */ { CLOCK+=2; A -= H; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 54 : /* SUB A L */ { CLOCK+=2; A -= L; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 55 : /* SUB A N */ { CLOCK+=2; A -= N; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 56 : /* SUB B A */ { CLOCK+=2; B -= A; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 57 : /* SUB B B */ { CLOCK+=2; B -= B; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 58 : /* SUB B C */ { CLOCK+=2; B -= C; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 59 : /* SUB B D */ { CLOCK+=2; B -= D; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 60 : /* SUB B E */ { CLOCK+=2; B -= E; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 61 : /* SUB B H */ { CLOCK+=2; B -= H; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 62 : /* SUB B L */ { CLOCK+=2; B -= L; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 63 : /* SUB B N */ { CLOCK+=2; B -= N; O = (byte)((ushort)_1 << 8) - ((ushort)_2 << 8); break; }
case 64 : /* MUL A A */ { CLOCK+=8; A *= A; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 65 : /* MUL A B */ { CLOCK+=8; A *= B; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 66 : /* MUL A C */ { CLOCK+=8; A *= C; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 67 : /* MUL A D */ { CLOCK+=8; A *= D; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 68 : /* MUL A E */ { CLOCK+=8; A *= E; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 69 : /* MUL A H */ { CLOCK+=8; A *= H; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 70 : /* MUL A L */ { CLOCK+=8; A *= L; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 71 : /* MUL A N */ { CLOCK+=8; A *= N; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 72 : /* MUL B A */ { CLOCK+=8; B *= A; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 73 : /* MUL B B */ { CLOCK+=8; B *= B; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 74 : /* MUL B C */ { CLOCK+=8; B *= C; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 75 : /* MUL B D */ { CLOCK+=8; B *= D; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 76 : /* MUL B E */ { CLOCK+=8; B *= E; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 77 : /* MUL B H */ { CLOCK+=8; B *= H; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 78 : /* MUL B L */ { CLOCK+=8; B *= L; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 79 : /* MUL B N */ { CLOCK+=8; B *= N; O = (byte)(((ushort)_1 * (ushort)_2) & 0xFF00) >> 8; break; }
case 80 : /* DIV A A */ { CLOCK+=32; A /= A; O = 0; break; }
case 81 : /* DIV A B */ { CLOCK+=32; A /= B; O = 0; break; }
case 82 : /* DIV A C */ { CLOCK+=32; A /= C; O = 0; break; }
case 83 : /* DIV A D */ { CLOCK+=32; A /= D; O = 0; break; }
case 84 : /* DIV A E */ { CLOCK+=32; A /= E; O = 0; break; }
case 85 : /* DIV A H */ { CLOCK+=32; A /= H; O = 0; break; }
case 86 : /* DIV A L */ { CLOCK+=32; A /= L; O = 0; break; }
case 87 : /* DIV A N */ { CLOCK+=32; A /= N; O = 0; break; }
case 88 : /* DIV B A */ { CLOCK+=32; B /= A; O = 0; break; }
case 89 : /* DIV B B */ { CLOCK+=32; B /= B; O = 0; break; }
case 90 : /* DIV B C */ { CLOCK+=32; B /= C; O = 0; break; }
case 91 : /* DIV B D */ { CLOCK+=32; B /= D; O = 0; break; }
case 92 : /* DIV B E */ { CLOCK+=32; B /= E; O = 0; break; }
case 93 : /* DIV B H */ { CLOCK+=32; B /= H; O = 0; break; }
case 94 : /* DIV B L */ { CLOCK+=32; B /= L; O = 0; break; }
case 95 : /* DIV B N */ { CLOCK+=32; B /= N; O = 0; break; }
case 96 : /* MOD A A */ { CLOCK+=32; A %= A; O = 0; break; }
case 97 : /* MOD A B */ { CLOCK+=32; A %= B; O = 0; break; }
case 98 : /* MOD A C */ { CLOCK+=32; A %= C; O = 0; break; }
case 99 : /* MOD A D */ { CLOCK+=32; A %= D; O = 0; break; }
case 100: /* MOD A E */ { CLOCK+=32; A %= E; O = 0; break; }
case 101: /* MOD A H */ { CLOCK+=32; A %= H; O = 0; break; }
case 102: /* MOD A L */ { CLOCK+=32; A %= L; O = 0; break; }
case 103: /* MOD A N */ { CLOCK+=32; A %= N; O = 0; break; }
case 104: /* MOD B A */ { CLOCK+=32; B %= A; O = 0; break; }
case 105: /* MOD B B */ { CLOCK+=32; B %= B; O = 0; break; }
case 106: /* MOD B C */ { CLOCK+=32; B %= C; O = 0; break; }
case 107: /* MOD B D */ { CLOCK+=32; B %= D; O = 0; break; }
case 108: /* MOD B E */ { CLOCK+=32; B %= E; O = 0; break; }
case 109: /* MOD B H */ { CLOCK+=32; B %= H; O = 0; break; }
case 110: /* MOD B L */ { CLOCK+=32; B %= L; O = 0; break; }
case 111: /* MOD B N */ { CLOCK+=32; B %= N; O = 0; break; }
case 112: /* OVA */ { CLOCK+=1; A = O; break; }
case 113: /* AND A B */ { CLOCK+=2; A &= B; O = 0; break; }
case 114: /* AND A C */ { CLOCK+=2; A &= C; O = 0; break; }
case 115: /* AND A D */ { CLOCK+=2; A &= D; O = 0; break; }
case 116: /* AND A E */ { CLOCK+=2; A &= E; O = 0; break; }
case 117: /* AND A H */ { CLOCK+=2; A &= H; O = 0; break; }
case 118: /* AND A L */ { CLOCK+=2; A &= L; O = 0; break; }
case 119: /* AND A N */ { CLOCK+=2; A &= N; O = 0; break; }
case 120: /* AND B A */ { CLOCK+=2; B &= A; O = 0; break; }
case 121: /* OVB */ { CLOCK+=1; B = O; break; }
case 122: /* AND B C */ { CLOCK+=2; B &= C; O = 0; break; }
case 123: /* AND B D */ { CLOCK+=2; B &= D; O = 0; break; }
case 124: /* AND B E */ { CLOCK+=2; B &= E; O = 0; break; }
case 125: /* AND B H */ { CLOCK+=2; B &= H; O = 0; break; }
case 126: /* AND B L */ { CLOCK+=2; B &= L; O = 0; break; }
case 127: /* AND B N */ { CLOCK+=2; B &= N; O = 0; break; }
case 128: /* MUS */ { CLOCK+=8; B = (byte)((sbyte)A * (sbyte)B); O = (byte)(((sbyte)A * (sbyte)B) >> 8); break; }
case 129: /* BOR A B */ { CLOCK+=2; A |= B; O = 0; break; }
case 130: /* BOR A C */ { CLOCK+=2; A |= C; O = 0; break; }
case 131: /* BOR A D */ { CLOCK+=2; A |= D; O = 0; break; }
case 132: /* BOR A E */ { CLOCK+=2; A |= E; O = 0; break; }
case 133: /* BOR A H */ { CLOCK+=2; A |= H; O = 0; break; }
case 134: /* BOR A L */ { CLOCK+=2; A |= L; O = 0; break; }
case 135: /* BOR A N */ { CLOCK+=2; A |= N; O = 0; break; }
case 136: /* BOR B A */ { CLOCK+=2; B |= A; O = 0; break; }
case 137: /* DIS */ { CLOCK+=32; B = (byte)((sbyte)A / (sbyte)B); O = 0; break; }
case 138: /* BOR B C */ { CLOCK+=2; B |= C; O = 0; break; }
case 139: /* BOR B D */ { CLOCK+=2; B |= D; O = 0; break; }
case 140: /* BOR B E */ { CLOCK+=2; B |= E; O = 0; break; }
case 141: /* BOR B H */ { CLOCK+=2; B |= H; O = 0; break; }
case 142: /* BOR B L */ { CLOCK+=2; B |= L; O = 0; break; }
case 143: /* BOR B N */ { CLOCK+=2; B |= N; O = 0; break; }
case 144: /* XOR A A */ { CLOCK+=2; A ^= A; O = 0; break; }
case 145: /* XOR A B */ { CLOCK+=2; A ^= B; O = 0; break; }
case 146: /* XOR A C */ { CLOCK+=2; A ^= C; O = 0; break; }
case 147: /* XOR A D */ { CLOCK+=2; A ^= D; O = 0; break; }
case 148: /* XOR A E */ { CLOCK+=2; A ^= E; O = 0; break; }
case 149: /* XOR A H */ { CLOCK+=2; A ^= H; O = 0; break; }
case 150: /* XOR A L */ { CLOCK+=2; A ^= L; O = 0; break; }
case 151: /* XOR A N */ { CLOCK+=2; A ^= N; O = 0; break; }
case 152: /* XOR B A */ { CLOCK+=2; B ^= A; O = 0; break; }
case 153: /* XOR B B */ { CLOCK+=2; B ^= B; O = 0; break; }
case 154: /* XOR B C */ { CLOCK+=2; B ^= C; O = 0; break; }
case 155: /* XOR B D */ { CLOCK+=2; B ^= D; O = 0; break; }
case 156: /* XOR B E */ { CLOCK+=2; B ^= E; O = 0; break; }
case 157: /* XOR B H */ { CLOCK+=2; B ^= H; O = 0; break; }
case 158: /* XOR B L */ { CLOCK+=2; B ^= L; O = 0; break; }
case 159: /* XOR B N */ { CLOCK+=2; B ^= N; O = 0; break; }
case 160: /* PSH A */ { CLOCK+=4; MEM[--SP] = A; break; }
case 161: /* PSH B */ { CLOCK+=4; MEM[--SP] = B; break; }
case 162: /* PSH C */ { CLOCK+=4; MEM[--SP] = C; break; }
case 163: /* PSH D */ { CLOCK+=4; MEM[--SP] = D; break; }
case 164: /* PSH E */ { CLOCK+=4; MEM[--SP] = E; break; }
case 165: /* PSH H */ { CLOCK+=4; MEM[--SP] = H; break; }
case 166: /* PSH L */ { CLOCK+=4; MEM[--SP] = L; break; }
case 167: /* PSH N */ { CLOCK+=4; MEM[--SP] = N; break; }
case 168: /* POP A */ { CLOCK+=4; A = MEM[SP++]; break; }
case 169: /* POP B */ { CLOCK+=4; B = MEM[SP++]; break; }
case 170: /* POP C */ { CLOCK+=4; C = MEM[SP++]; break; }
case 171: /* POP D */ { CLOCK+=4; D = MEM[SP++]; break; }
case 172: /* POP E */ { CLOCK+=4; E = MEM[SP++]; break; }
case 173: /* POP H */ { CLOCK+=4; H = MEM[SP++]; break; }
case 174: /* POP L */ { CLOCK+=4; L = MEM[SP++]; break; }
case 175: /* RSP */ { CLOCK+=2; H = (byte)(SP >> 8); L = (byte)SP; break; }
case 176: /* PEK A */ { CLOCK+=2; A = MEM[SP]; break; }
case 177: /* PEK B */ { CLOCK+=2; B = MEM[SP]; break; }
case 178: /* PEK C */ { CLOCK+=2; C = MEM[SP]; break; }
case 179: /* PEK D */ { CLOCK+=2; D = MEM[SP]; break; }
case 180: /* PEK E */ { CLOCK+=2; E = MEM[SP]; break; }
case 181: /* PEK H */ { CLOCK+=2; H = MEM[SP]; break; }
case 182: /* PEK L */ { CLOCK+=2; L = MEM[SP]; break; }
case 183: /* SSP */ { CLOCK+=2; SP = HL; break; }
case 184: /* LOD A */ { CLOCK+=8; A = MEM[HL]; break; }
case 185: /* LOD B */ { CLOCK+=8; B = MEM[HL]; break; }
case 186: /* LOD C */ { CLOCK+=8; C = MEM[HL]; break; }
case 187: /* LOD D */ { CLOCK+=8; D = MEM[HL]; break; }
case 188: /* LOD E */ { CLOCK+=8; E = MEM[HL]; break; }
case 189: /* LOD H */ { CLOCK+=8; H = MEM[HL]; break; }
case 190: /* LOD L */ { CLOCK+=8; L = MEM[HL]; break; }
case 191: /* LLT */ { CLOCK+=2; H = N; L = N; break; }
case 192: /* STR A */ { CLOCK+=8; MEM[HL] = A; break; }
case 193: /* STR B */ { CLOCK+=8; MEM[HL] = B; break; }
case 194: /* STR C */ { CLOCK+=8; MEM[HL] = C; break; }
case 195: /* STR D */ { CLOCK+=8; MEM[HL] = D; break; }
case 196: /* STR E */ { CLOCK+=8; MEM[HL] = E; break; }
case 197: /* STR H */ { CLOCK+=8; MEM[HL] = H; break; }
case 198: /* STR L */ { CLOCK+=8; MEM[HL] = L; break; }
case 199: /* STR N */ { CLOCK+=8; MEM[HL] = N; break; }
case 200: /* LDW */ { CLOCK+=12; if (HL%2 == 1) ALIGN_FAULT(); A = MEM[HL]; B = MEM[HL + 1]; break; }
case 201: /* SDW */ { CLOCK+=12; if (HL%2 == 1) ALIGN_FAULT(); MEM[HL] = A; MEM[HL + 1] = B; break; }
case 202: /* STP */ { CLOCK+=1; STOP(); break; }
case 203: /* CFP */ { CLOCK+=2; H = D; L = E; break; }
case 204: /* SWP */ { CLOCK+=2; var T = D; D = H; H = T; T = E; E = L; L = T; break; }
case 205: /* RIP */ { CLOCK+=2; H = (byte)(IP >> 8); L = (byte)IP; break; }
case 206: /* JMP */ { CLOCK+=2; IP = HL; break; }
case 207: /* JPL */ { CLOCK+=2; H = N; L = N; IP = HL; break; }
case 208: /* BIE */ { CLOCK+=8; if (A == B) IP = HL; break; }
case 209: /* BNE */ { CLOCK+=8; if (A != B) IP = HL; break; }
case 210: /* BGT */ { CLOCK+=8; if (A > B) IP = HL; break; }
case 211: /* BLT */ { CLOCK+=8; if (A < B) IP = HL; break; }
case 212: /* BEG */ { CLOCK+=8; if (A >= B) IP = HL; break; }
case 213: /* BEL */ { CLOCK+=8; if (A <= B) IP = HL; break; }
case 214: /* BSL */ { CLOCK+=8; if ((sbyte)A < (sbyte)B) IP = HL; break; }
case 215: /* BSG */ { CLOCK+=8; if ((sbyte)A > (sbyte)B) IP = HL; break; }
case 216: /* CAD A */ { CLOCK+=4; var T = HL; T += A; L = (byte)T; H = (byte)(T >> 8); break; }
case 217: /* CAD B */ { CLOCK+=4; var T = HL; T += B; L = (byte)T; H = (byte)(T >> 8); break; }
case 218: /* CAD C */ { CLOCK+=4; var T = HL; T += C; L = (byte)T; H = (byte)(T >> 8); break; }
case 219: /* CAD D */ { CLOCK+=4; var T = HL; T += D; L = (byte)T; H = (byte)(T >> 8); break; }
case 220: /* CAD E */ { CLOCK+=4; var T = HL; T += E; L = (byte)T; H = (byte)(T >> 8); break; }
case 221: /* CAD H */ { CLOCK+=4; var T = HL; T += H; L = (byte)T; H = (byte)(T >> 8); break; }
case 222: /* CAD L */ { CLOCK+=4; var T = HL; T += L; L = (byte)T; H = (byte)(T >> 8); break; }
case 223: /* CAD N */ { CLOCK+=4; var T = HL; T += N; L = (byte)T; H = (byte)(T >> 8); break; }
case 224: /* CSB A */ { CLOCK+=4; var T = HL; T -= A; L = (byte)T; H = (byte)(T >> 8); break; }
case 225: /* CSB B */ { CLOCK+=4; var T = HL; T -= B; L = (byte)T; H = (byte)(T >> 8); break; }
case 226: /* CSB C */ { CLOCK+=4; var T = HL; T -= C; L = (byte)T; H = (byte)(T >> 8); break; }
case 227: /* CSB D */ { CLOCK+=4; var T = HL; T -= D; L = (byte)T; H = (byte)(T >> 8); break; }
case 228: /* CSB E */ { CLOCK+=4; var T = HL; T -= E; L = (byte)T; H = (byte)(T >> 8); break; }
case 229: /* CSB H */ { CLOCK+=4; var T = HL; T -= H; L = (byte)T; H = (byte)(T >> 8); break; }
case 230: /* CSB L */ { CLOCK+=4; var T = HL; T -= L; L = (byte)T; H = (byte)(T >> 8); break; }
case 231: /* CSB N */ { CLOCK+=4; var T = HL; T -= N; L = (byte)T; H = (byte)(T >> 8); break; }
case 232: /* ADS A */ { CLOCK+=4; SP += A; break; }
case 233: /* ADS B */ { CLOCK+=4; SP += B; break; }
case 234: /* ADS C */ { CLOCK+=4; SP += C; break; }
case 235: /* ADS D */ { CLOCK+=4; SP += D; break; }
case 236: /* ADS E */ { CLOCK+=4; SP += E; break; }
case 237: /* ADS H */ { CLOCK+=4; SP += H; break; }
case 238: /* ADS L */ { CLOCK+=4; SP += L; break; }
case 239: /* ADS N */ { CLOCK+=4; SP += N; break; }
case 240: /* SBS A */ { CLOCK+=4; SP -= A; break; }
case 241: /* SBS B */ { CLOCK+=4; SP -= B; break; }
case 242: /* SBS C */ { CLOCK+=4; SP -= C; break; }
case 243: /* SBS D */ { CLOCK+=4; SP -= D; break; }
case 244: /* SBS E */ { CLOCK+=4; SP -= E; break; }
case 245: /* SBS H */ { CLOCK+=4; SP -= H; break; }
case 246: /* SBS L */ { CLOCK+=4; SP -= L; break; }
case 247: /* SBS N */ { CLOCK+=4; SP -= N; break; }
case 248: /* OUT */ { CLOCK+=2; PORT[A] = B; break; }
case 249: /* IIN */ { CLOCK+=2; B = PORT[A]; break; }
case 250: /* */ { CLOCK+=1; break; }
case 251: /* */ { CLOCK+=1; break; }
case 252: /* */ { CLOCK+=1; break; }
case 253: /* CLK */ { CLOCK+=4; D = (byte)(CLOCK>>24); E = (byte)(CLOCK>>16); H = (byte)(CLOCK>>8); L = (byte)CLOCK; break; }
case 254: /* SFJ */ { CLOCK+=2; IP += N; break; }
case 255: /* SBJ */ { CLOCK+=2; IP -= N; break; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment