emu48-mirror/OPCODES.H

425 lines
27 KiB
C
Raw Normal View History

/* Copyright (C) 1995 Sebastien Carlier (sebc@cybera.anet.fr) */
o00: ticks-=60; HST|=XM; pc = rstkpop(); goto o_done;
o01: ticks-=60; pc = rstkpop(); goto o_done;
o02: ticks-=60; CARRY=1; pc = rstkpop(); goto o_done;
o03: ticks-=60; CARRY=0; pc = rstkpop(); goto o_done;
o04: ticks-=24; pc+=2; MODE=16; goto o_done;
o05: ticks-=24; pc+=2; MODE=10; goto o_done;
o06: ticks-=44; pc+=2; rstkpush(Npack(C,5)); goto o_done;
o07: ticks-=44; pc+=2; Nunpack(C, rstkpop(), 5); goto o_done;
o08: ticks-=32; pc+=2; Nzero(ST,4); goto o_done;
o09: ticks-=32; pc+=2; Ncopy(C, ST, 4); goto o_done;
o0A: ticks-=32; pc+=2; Ncopy(ST, C, 4); goto o_done;
o0B: ticks-=32; pc+=2; Nxchg(C, ST, 4); goto o_done;
o0C: ticks-=24; pc+=2; P++; if (P>15) { P=0; CARRY=1; } else CARRY=0; PCHANGED goto o_done;
o0D: ticks-=24; pc+=2; P--; if (P<0) { P=15; CARRY=1; } else CARRY=0; PCHANGED goto o_done;
o0Ef0: ticks-=40+F04[(int)I[2]];pc+=4; NFand(A,B,I[2]); goto o_done;
o0Ef1: ticks-=40+F04[(int)I[2]];pc+=4; NFand(B,C,I[2]); goto o_done;
o0Ef2: ticks-=40+F04[(int)I[2]];pc+=4; NFand(C,A,I[2]); goto o_done;
o0Ef3: ticks-=40+F04[(int)I[2]];pc+=4; NFand(D,C,I[2]); goto o_done;
o0Ef4: ticks-=40+F04[(int)I[2]];pc+=4; NFand(B,A,I[2]); goto o_done;
o0Ef5: ticks-=40+F04[(int)I[2]];pc+=4; NFand(C,B,I[2]); goto o_done;
o0Ef6: ticks-=40+F04[(int)I[2]];pc+=4; NFand(A,C,I[2]); goto o_done;
o0Ef7: ticks-=40+F04[(int)I[2]];pc+=4; NFand(C,D,I[2]); goto o_done;
o0Ef8: ticks-=40+F04[(int)I[2]];pc+=4; NFor(A,B,I[2]); goto o_done;
o0Ef9: ticks-=40+F04[(int)I[2]];pc+=4; NFor(B,C,I[2]); goto o_done;
o0EfA: ticks-=40+F04[(int)I[2]];pc+=4; NFor(C,A,I[2]); goto o_done;
o0EfB: ticks-=40+F04[(int)I[2]];pc+=4; NFor(D,C,I[2]); goto o_done;
o0EfC: ticks-=40+F04[(int)I[2]];pc+=4; NFor(B,A,I[2]); goto o_done;
o0EfD: ticks-=40+F04[(int)I[2]];pc+=4; NFor(C,B,I[2]); goto o_done;
o0EfE: ticks-=40+F04[(int)I[2]];pc+=4; NFor(A,C,I[2]); goto o_done;
o0EfF: ticks-=40+F04[(int)I[2]];pc+=4; NFor(C,D,I[2]); goto o_done;
o0F: ticks-=60; if (INTD&&INTE) {INTD=0;pc=0xf;} else {INTP=0;pc=rstkpop();} goto o_done;
o100: ticks-=93; pc+=3; Ncopy(R0, A, 16); goto o_done;
o101: ticks-=93; pc+=3; Ncopy(R1, A, 16); goto o_done;
o102: ticks-=93; pc+=3; Ncopy(R2, A, 16); goto o_done;
o103: ticks-=93; pc+=3; Ncopy(R3, A, 16); goto o_done;
o104: ticks-=93; pc+=3; Ncopy(R4, A, 16); goto o_done;
o108: ticks-=93; pc+=3; Ncopy(R0, C, 16); goto o_done;
o109: ticks-=93; pc+=3; Ncopy(R1, C, 16); goto o_done;
o10A: ticks-=93; pc+=3; Ncopy(R2, C, 16); goto o_done;
o10B: ticks-=93; pc+=3; Ncopy(R3, C, 16); goto o_done;
o10C: ticks-=93; pc+=3; Ncopy(R4, C, 16); goto o_done;
o110: ticks-=93; pc+=3; Ncopy(A, R0, 16); goto o_done;
o111: ticks-=93; pc+=3; Ncopy(A, R1, 16); goto o_done;
o112: ticks-=93; pc+=3; Ncopy(A, R2, 16); goto o_done;
o113: ticks-=93; pc+=3; Ncopy(A, R3, 16); goto o_done;
o114: ticks-=93; pc+=3; Ncopy(A, R4, 16); goto o_done;
o118: ticks-=93; pc+=3; Ncopy(C, R0, 16); goto o_done;
o119: ticks-=93; pc+=3; Ncopy(C, R1, 16); goto o_done;
o11A: ticks-=93; pc+=3; Ncopy(C, R2, 16); goto o_done;
o11B: ticks-=93; pc+=3; Ncopy(C, R3, 16); goto o_done;
o11C: ticks-=93; pc+=3; Ncopy(C, R4, 16); goto o_done;
o120: ticks-=93; pc+=3; Nxchg(A, R0, 16); goto o_done;
o121: ticks-=93; pc+=3; Nxchg(A, R1, 16); goto o_done;
o122: ticks-=93; pc+=3; Nxchg(A, R2, 16); goto o_done;
o123: ticks-=93; pc+=3; Nxchg(A, R3, 16); goto o_done;
o124: ticks-=93; pc+=3; Nxchg(A, R4, 16); goto o_done;
o128: ticks-=93; pc+=3; Nxchg(C, R0, 16); goto o_done;
o129: ticks-=93; pc+=3; Nxchg(C, R1, 16); goto o_done;
o12A: ticks-=93; pc+=3; Nxchg(C, R2, 16); goto o_done;
o12B: ticks-=93; pc+=3; Nxchg(C, R3, 16); goto o_done;
o12C: ticks-=93; pc+=3; Nxchg(C, R4, 16); goto o_done;
o130: ticks-=49; pc+=3; d0 = Npack(A, 5); goto o_done;
o131: ticks-=49; pc+=3; d1 = Npack(A, 5); goto o_done;
o132: ticks-=49; pc+=3; d = d0; d0=Npack(A, 5); Nunpack(A, d, 5); goto o_done;
o133: ticks-=49; pc+=3; d = d1; d1=Npack(A, 5); Nunpack(A, d, 5); goto o_done;
o134: ticks-=49; pc+=3; d0 = Npack(C, 5); goto o_done;
o135: ticks-=49; pc+=3; d1 = Npack(C, 5); goto o_done;
o136: ticks-=49; pc+=3; d = d0; d0=Npack(C, 5); Nunpack(C, d, 5); goto o_done;
o137: ticks-=49; pc+=3; d = d1; d1=Npack(C, 5); Nunpack(C, d, 5); goto o_done;
o138: ticks-=45; pc+=3; d0&=0xf0000; d0|=Npack(A, 4); goto o_done;
o139: ticks-=45; pc+=3; d1&=0xf0000; d1|=Npack(A, 4); goto o_done;
o13A: ticks-=45; pc+=3; d = d0; d0&=0xf0000; d0|=Npack(A, 4); Nunpack(A, d, 4); goto o_done;
o13B: ticks-=45; pc+=3; d = d1; d1&=0xf0000; d1|=Npack(A, 4); Nunpack(A, d, 4); goto o_done;
o13C: ticks-=45; pc+=3; d0&=0xf0000; d0|=Npack(C, 4); goto o_done;
o13D: ticks-=45; pc+=3; d1&=0xf0000; d1|=Npack(C, 4); goto o_done;
o13E: ticks-=45; pc+=3; d = d0; d0&=0xf0000; d0|=Npack(C, 4); Nunpack(C, d, 4); goto o_done;
o13F: ticks-=45; pc+=3; d = d1; d1&=0xf0000; d1|=Npack(C, 4); Nunpack(C, d, 4); goto o_done;
o140: ticks-=148; pc+=3; Nwrite(A, d0, 5); goto o_done;
o141: ticks-=148; pc+=3; Nwrite(A, d1, 5); goto o_done;
o142: ticks-=138; pc+=3; NCread(A, d0, 5); goto o_done;
o143: ticks-=138; pc+=3; NCread(A, d1, 5); goto o_done;
o144: ticks-=148; pc+=3; Nwrite(C, d0, 5); goto o_done;
o145: ticks-=148; pc+=3; Nwrite(C, d1, 5); goto o_done;
o146: ticks-=138; pc+=3; NCread(C, d0, 5); goto o_done;
o147: ticks-=138; pc+=3; NCread(C, d1, 5); goto o_done;
o148: ticks-=98; pc+=3; Nwrite(A, d0, 2); goto o_done;
o149: ticks-=98; pc+=3; Nwrite(A, d1, 2); goto o_done;
o14A: ticks-=114; pc+=3; NCread(A, d0, 2); goto o_done;
o14B: ticks-=114; pc+=3; NCread(A, d1, 2); goto o_done;
o14C: ticks-=98; pc+=3; Nwrite(C, d0, 2); goto o_done;
o14D: ticks-=98; pc+=3; Nwrite(C, d1, 2); goto o_done;
o14E: ticks-=114; pc+=3; NCread(C, d0, 2); goto o_done;
o14F: ticks-=114; pc+=3; NCread(C, d1, 2); goto o_done;
o150a: ticks-=FWR[(int)I[3]];pc+=4; NFwrite(A, d0, I[3]); goto o_done;
o151a: ticks-=FWR[(int)I[3]];pc+=4; NFwrite(A, d1, I[3]); goto o_done;
o152a: ticks-=FRD[(int)I[3]];pc+=4; NCFread(A, d0, I[3]); goto o_done;
o153a: ticks-=FRD[(int)I[3]];pc+=4; NCFread(A, d1, I[3]); goto o_done;
o154a: ticks-=FWR[(int)I[3]];pc+=4; NFwrite(C, d0, I[3]); goto o_done;
o155a: ticks-=FWR[(int)I[3]];pc+=4; NFwrite(C, d1, I[3]); goto o_done;
o156a: ticks-=FRD[(int)I[3]];pc+=4; NCFread(C, d0, I[3]); goto o_done;
o157a: ticks-=FRD[(int)I[3]];pc+=4; NCFread(C, d1, I[3]); goto o_done;
o158x: ticks-=NWR[(int)I[3]];pc+=4; Nwrite(A, d0, I[3]+1); goto o_done;
o159x: ticks-=NWR[(int)I[3]];pc+=4; Nwrite(A, d1, I[3]+1); goto o_done;
o15Ax: ticks-=NRD[(int)I[3]];pc+=4; NCread(A, d0, I[3]+1); goto o_done;
o15Bx: ticks-=NRD[(int)I[3]];pc+=4; NCread(A, d1, I[3]+1); goto o_done;
o15Cx: ticks-=NWR[(int)I[3]];pc+=4; Nwrite(C, d0, I[3]+1); goto o_done;
o15Dx: ticks-=NWR[(int)I[3]];pc+=4; Nwrite(C, d1, I[3]+1); goto o_done;
o15Ex: ticks-=NRD[(int)I[3]];pc+=4; NCread(C, d0, I[3]+1); goto o_done;
o15Fx: ticks-=NRD[(int)I[3]];pc+=4; NCread(C, d1, I[3]+1); goto o_done;
o16x: ticks-=45; pc+=3; d0+=I[2]+1; if (d0>0xfffff) { d0&=0xfffff; CARRY=1; } else CARRY=0; goto o_done;
o17x: ticks-=45; pc+=3; d1+=I[2]+1; if (d1>0xfffff) { d1&=0xfffff; CARRY=1; } else CARRY=0; goto o_done;
o18x: ticks-=45; pc+=3; d0-=I[2]+1; if (d0<0) { d0&=0xfffff; CARRY=1; } else CARRY=0; goto o_done;
o19d2: ticks-=40; pc+=4; d0&=0xfff00; d0|=Npack(I+2, 2); goto o_done;
o1Ad4: ticks-=60; pc+=6; d0&=0xf0000; d0|=Npack(I+2, 4); goto o_done;
o1Bd5: ticks-=70; pc+=7; d0=Npack(I+2, 5); goto o_done;
o1Cx: ticks-=45; pc+=3; d1-=I[2]+1; if (d1<0) { d1&=0xfffff; CARRY=1; } else CARRY=0; goto o_done;
o1Dd2: ticks-=40; pc+=4; d1&=0xfff00; d1|=Npack(I+2, 2); goto o_done;
o1Ed4: ticks-=60; pc+=6; d1&=0xf0000; d1|=Npack(I+2, 4); goto o_done;
o1Fd5: ticks-=70; pc+=7; d1=Npack(I+2, 5); goto o_done;
o2n: ticks-=20; pc+=2; P=I[1]; PCHANGED goto o_done;
o3X: ticks-=30+D10[(int)I[1]];n=I[1]+1; pc+=2+n; if (P+n<=16) Ncopy(C+P, I+2, n); else { Ncopy(C+P, I+2, 16-P); Ncopy(C, I+2+(16-P), n-(16-P)); } goto o_done;
o4d2: ticks-=30; if ( CARRY) { d=Npack(I+1,2); if (d) { ticks-=40; if (d&0x80) pc-=(d^0xff); else pc+=d+1;} else pc=rstkpop(); } else pc+=3; goto o_done;
o5d2: ticks-=30; if (!CARRY) { d=Npack(I+1,2); if (d) { ticks-=40; if (d&0x80) pc-=(d^0xff); else pc+=d+1;} else pc=rstkpop(); } else pc+=3; goto o_done;
o6d3: ticks-=80; d=Npack(I+1,3); if (d&0x800) pc-=(d^0xfff); else pc+=d+1; goto o_done;
o7d3: ticks-=82; rstkpush(pc+4); d=Npack(I+1,3); if (d&0x800) pc-=(d^0xfff)-3; else pc+=d+4; goto o_done;
o800: ticks-=33; pc+=3; OUT&=0xff0; OUT|=C[0]; goto o_done;
o801: ticks-=41; pc+=3; OUT = Npack(C, 3); update_out(); goto o_done;
o802: ticks-=70; pc+=3; update_in(); Nunpack(A, IN, 4); goto o_done;
o803: ticks-=70; pc+=3; update_in(); Nunpack(C, IN, 4); goto o_done;
o804: ticks-=73; pc+=3; unconfig(); goto o_done;
o805: ticks-=73; pc+=3; config(); goto o_done;
o806: ticks-=73; pc+=3; c_eq_id(); goto o_done;
o807: ticks-=60; pc+=3; SHUTDN = 1; goto o_done;
o8080: ticks-=42; pc+=4; INTE=1; if (INTD&&(!INTP)) {INTD=0;INTERRUPT("DL");} goto o_done;
o80810: ticks-=53; pc+=5; if (IN) {if (!INTP) INTERRUPT("RS") else INTD=1;} goto o_done;
o8082X: ticks-=60+D10[(int)I[1]];n=I[4]+1; pc+=5+n; if (P+n<=16) Ncopy(A+P, I+5, n); else { Ncopy(A+P, I+5, 16-P); Ncopy(A, I+5+(16-P), n-(16-P)); } goto o_done;
o8083: ticks-=73; pc+=4; goto o_done;
o8084n: ticks-=53; pc+=5; Nbit0(A, I[4]); goto o_done;
o8085n: ticks-=53; pc+=5; Nbit1(A, I[4]); goto o_done;
o8086n: ticks-=117; pc+=5; Tbit0(A, I[4]); goyes(5); goto o_done;
o8087n: ticks-=117; pc+=5; Tbit1(A, I[4]); goyes(5); goto o_done;
o8088n: ticks-=53; pc+=5; Nbit0(C, I[4]); goto o_done;
o8089n: ticks-=53; pc+=5; Nbit1(C, I[4]); goto o_done;
o808An: ticks-=117; pc+=5; Tbit0(C, I[4]); goyes(5); goto o_done;
o808Bn: ticks-=117; pc+=5; Tbit1(C, I[4]); goyes(5); goto o_done;
o808C: ticks-=230; pc = Npack(nibble_ptr(Npack(A,5)), 5); goto o_done;
o808D: ticks-=73; pc+=4; goto o_done;
o808E: ticks-=230; pc = Npack(nibble_ptr(Npack(C,5)), 5); goto o_done;
o808F: ticks-=42; pc+=4; INTE = 0; goto o_done;
o809: ticks-=49; pc+=3; d=Npack(C, 5); d+=P+1; if (d>0xfffff) { d&=0xfffff; CARRY=1; } else CARRY=0; Nunpack(C, d, 5); goto o_done;
o80A: ticks-=73; pc+=3; reset(); goto o_done;
o80B: ticks-=73; pc+=3; goto o_done;
o80Cn: ticks-=48; pc+=4; C[(int)I[3]] = P; goto o_done;
o80Dn: ticks-=48; pc+=4; P = C[(int)I[3]]; PCHANGED goto o_done;
o80E: ticks-=58; pc+=3; C[0]=0; goto o_done;
o80Fn: ticks-=48; pc+=4; n = P; P = C[(int)I[3]]; C[(int)I[3]] = n; PCHANGED goto o_done;
o810: ticks-=101; pc+=3; Nslc(A, 16); goto o_done;
o811: ticks-=101; pc+=3; Nslc(B, 16); goto o_done;
o812: ticks-=101; pc+=3; Nslc(C, 16); goto o_done;
o813: ticks-=101; pc+=3; Nslc(D, 16); goto o_done;
o814: ticks-=101; pc+=3; Nsrc(A, 16); goto o_done;
o815: ticks-=101; pc+=3; Nsrc(B, 16); goto o_done;
o816: ticks-=101; pc+=3; Nsrc(C, 16); goto o_done;
o817: ticks-=101; pc+=3; Nsrc(D, 16); goto o_done;
o818f0x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFadd(A, X, I[3]); goto o_done;
o818f1x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFadd(B, X, I[3]); goto o_done;
o818f2x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFadd(C, X, I[3]); goto o_done;
o818f3x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFadd(D, X, I[3]); goto o_done;
o818f8x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFsub(A, X, I[3]); goto o_done;
o818f9x: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFsub(B, X, I[3]); goto o_done;
o818fAx: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFsub(C, X, I[3]); goto o_done;
o818fBx: ticks-=S00[(int)I[3]];pc+=6; NFunpack(X,I[5]+1,I[3]); NFsub(D, X, I[3]); goto o_done;
o819f0: ticks-=53+F04[(int)I[3]];pc+=5; NFsrb(A, I[3]); goto o_done;
o819f1: ticks-=53+F04[(int)I[3]];pc+=5; NFsrb(B, I[3]); goto o_done;
o819f2: ticks-=53+F04[(int)I[3]];pc+=5; NFsrb(C, I[3]); goto o_done;
o819f3: ticks-=53+F04[(int)I[3]];pc+=5; NFsrb(D, I[3]); goto o_done;
o81Af00: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R0, A, I[3]); goto o_done;
o81Af01: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R1, A, I[3]); goto o_done;
o81Af02: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R2, A, I[3]); goto o_done;
o81Af03: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R3, A, I[3]); goto o_done;
o81Af04: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R4, A, I[3]); goto o_done;
o81Af08: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R0, C, I[3]); goto o_done;
o81Af09: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R1, C, I[3]); goto o_done;
o81Af0A: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R2, C, I[3]); goto o_done;
o81Af0B: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R3, C, I[3]); goto o_done;
o81Af0C: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(R4, C, I[3]); goto o_done;
o81Af10: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(A, R0, I[3]); goto o_done;
o81Af11: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(A, R1, I[3]); goto o_done;
o81Af12: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(A, R2, I[3]); goto o_done;
o81Af13: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(A, R3, I[3]); goto o_done;
o81Af14: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(A, R4, I[3]); goto o_done;
o81Af18: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(C, R0, I[3]); goto o_done;
o81Af19: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(C, R1, I[3]); goto o_done;
o81Af1A: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(C, R2, I[3]); goto o_done;
o81Af1B: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(C, R3, I[3]); goto o_done;
o81Af1C: ticks-=60+F04[(int)I[3]];pc+=6; NFcopy(C, R4, I[3]); goto o_done;
o81Af20: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(A, R0, I[3]); goto o_done;
o81Af21: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(A, R1, I[3]); goto o_done;
o81Af22: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(A, R2, I[3]); goto o_done;
o81Af23: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(A, R3, I[3]); goto o_done;
o81Af24: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(A, R4, I[3]); goto o_done;
o81Af28: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(C, R0, I[3]); goto o_done;
o81Af29: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(C, R1, I[3]); goto o_done;
o81Af2A: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(C, R2, I[3]); goto o_done;
o81Af2B: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(C, R3, I[3]); goto o_done;
o81Af2C: ticks-=60+F04[(int)I[3]];pc+=6; NFxchg(C, R4, I[3]); goto o_done;
o81B2: ticks-=100; pc = Npack(A, 5); goto o_done;
o81B3: ticks-=100; pc = Npack(C, 5); goto o_done;
o81B4: ticks-=60; pc+=4; Nunpack(A, pc, 5); goto o_done;
o81B5: ticks-=60; pc+=4; Nunpack(C, pc, 5); goto o_done;
o81B6: ticks-=100; d = pc+4; pc = Npack(A, 5); Nunpack(A, d, 5); goto o_done;
o81B7: ticks-=100; d = pc+4; pc = Npack(C, 5); Nunpack(C, d, 5); goto o_done;
o81C: ticks-=97; pc+=3; Nsrb(A, 16); goto o_done;
o81D: ticks-=97; pc+=3; Nsrb(B, 16); goto o_done;
o81E: ticks-=97; pc+=3; Nsrb(C, 16); goto o_done;
o81F: ticks-=97; pc+=3; Nsrb(D, 16); goto o_done;
o82n: ticks-=30; pc+=3; HST&=~I[2]; goto o_done;
o83n: ticks-=53; pc+=3; CARRY=(HST&I[2])?0:1; goyes(3); goto o_done;
o84n: ticks-=33; pc+=3; Nbit0(ST, I[2]); goto o_done;
o85n: ticks-=33; pc+=3; Nbit1(ST, I[2]); goto o_done;
o86n: ticks-=57; pc+=3; Tbit0(ST, I[2]); goyes(3); goto o_done;
o87n: ticks-=57; pc+=3; Tbit1(ST, I[2]); goyes(3); goto o_done;
o88n: ticks-=53; pc+=3; if (P!=I[2]) CARRY=1; else CARRY=0; goyes(3); goto o_done;
o89n: ticks-=53; pc+=3; if (P==I[2]) CARRY=1; else CARRY=0; goyes(3); goto o_done;
o8A0: ticks-=73; pc+=3; Te(A, B, 5); goyes(3); goto o_done;
o8A1: ticks-=73; pc+=3; Te(B, C, 5); goyes(3); goto o_done;
o8A2: ticks-=73; pc+=3; Te(C, A, 5); goyes(3); goto o_done;
o8A3: ticks-=73; pc+=3; Te(D, C, 5); goyes(3); goto o_done;
o8A4: ticks-=73; pc+=3; Tne(A, B, 5); goyes(3); goto o_done;
o8A5: ticks-=73; pc+=3; Tne(B, C, 5); goyes(3); goto o_done;
o8A6: ticks-=73; pc+=3; Tne(C, A, 5); goyes(3); goto o_done;
o8A7: ticks-=73; pc+=3; Tne(D, C, 5); goyes(3); goto o_done;
o8A8: ticks-=73; pc+=3; Tz(A, 5); goyes(3); goto o_done;
o8A9: ticks-=73; pc+=3; Tz(B, 5); goyes(3); goto o_done;
o8AA: ticks-=73; pc+=3; Tz(C, 5); goyes(3); goto o_done;
o8AB: ticks-=73; pc+=3; Tz(D, 5); goyes(3); goto o_done;
o8AC: ticks-=73; pc+=3; Tnz(A, 5); goyes(3); goto o_done;
o8AD: ticks-=73; pc+=3; Tnz(B, 5); goyes(3); goto o_done;
o8AE: ticks-=73; pc+=3; Tnz(C, 5); goyes(3); goto o_done;
o8AF: ticks-=73; pc+=3; Tnz(D, 5); goyes(3); goto o_done;
o8B0: ticks-=73; pc+=3; Ta(A, B, 5); goyes(3); goto o_done;
o8B1: ticks-=73; pc+=3; Ta(B, C, 5); goyes(3); goto o_done;
o8B2: ticks-=73; pc+=3; Ta(C, A, 5); goyes(3); goto o_done;
o8B3: ticks-=73; pc+=3; Ta(D, C, 5); goyes(3); goto o_done;
o8B4: ticks-=73; pc+=3; Tb(A, B, 5); goyes(3); goto o_done;
o8B5: ticks-=73; pc+=3; Tb(B, C, 5); goyes(3); goto o_done;
o8B6: ticks-=73; pc+=3; Tb(C, A, 5); goyes(3); goto o_done;
o8B7: ticks-=73; pc+=3; Tb(D, C, 5); goyes(3); goto o_done;
o8B8: ticks-=73; pc+=3; Tae(A, B, 5); goyes(3); goto o_done;
o8B9: ticks-=73; pc+=3; Tae(B, C, 5); goyes(3); goto o_done;
o8BA: ticks-=73; pc+=3; Tae(C, A, 5); goyes(3); goto o_done;
o8BB: ticks-=73; pc+=3; Tae(D, C, 5); goyes(3); goto o_done;
o8BC: ticks-=73; pc+=3; Tbe(A, B, 5); goyes(3); goto o_done;
o8BD: ticks-=73; pc+=3; Tbe(B, C, 5); goyes(3); goto o_done;
o8BE: ticks-=73; pc+=3; Tbe(C, A, 5); goyes(3); goto o_done;
o8BF: ticks-=73; pc+=3; Tbe(D, C, 5); goyes(3); goto o_done;
o8Cd4: ticks-=100; d=Npack(I+2, 4); if (d&0x8000) pc-=(d^0xffff)-1; else pc+=d+2; goto o_done;
o8Dd5: ticks-=109; pc=Npack(I+2, 5);; goto o_done;
o8Ed4: ticks-=104; rstkpush(pc+6); d=Npack(I+2,4); if (d&0x8000) pc-=(d^0xffff)-5; else pc+=d+6; goto o_done;
o8Fd5: ticks-=113; rstkpush(pc+7); pc=Npack(I+2, 5); goto o_done;
o9a0: ticks-=53+F04[(int)I[1]];pc+=3; TFe(A, B, I[1]); goyes(3); goto o_done;
o9a1: ticks-=53+F04[(int)I[1]];pc+=3; TFe(B, C, I[1]); goyes(3); goto o_done;
o9a2: ticks-=53+F04[(int)I[1]];pc+=3; TFe(C, A, I[1]); goyes(3); goto o_done;
o9a3: ticks-=53+F04[(int)I[1]];pc+=3; TFe(D, C, I[1]); goyes(3); goto o_done;
o9a4: ticks-=53+F04[(int)I[1]];pc+=3; TFne(A, B, I[1]); goyes(3); goto o_done;
o9a5: ticks-=53+F04[(int)I[1]];pc+=3; TFne(B, C, I[1]); goyes(3); goto o_done;
o9a6: ticks-=53+F04[(int)I[1]];pc+=3; TFne(C, A, I[1]); goyes(3); goto o_done;
o9a7: ticks-=53+F04[(int)I[1]];pc+=3; TFne(D, C, I[1]); goyes(3); goto o_done;
o9a8: ticks-=53+F04[(int)I[1]];pc+=3; TFz(A, I[1]); goyes(3); goto o_done;
o9a9: ticks-=53+F04[(int)I[1]];pc+=3; TFz(B, I[1]); goyes(3); goto o_done;
o9aA: ticks-=53+F04[(int)I[1]];pc+=3; TFz(C, I[1]); goyes(3); goto o_done;
o9aB: ticks-=53+F04[(int)I[1]];pc+=3; TFz(D, I[1]); goyes(3); goto o_done;
o9aC: ticks-=53+F04[(int)I[1]];pc+=3; TFnz(A, I[1]); goyes(3); goto o_done;
o9aD: ticks-=53+F04[(int)I[1]];pc+=3; TFnz(B, I[1]); goyes(3); goto o_done;
o9aE: ticks-=53+F04[(int)I[1]];pc+=3; TFnz(C, I[1]); goyes(3); goto o_done;
o9aF: ticks-=53+F04[(int)I[1]];pc+=3; TFnz(D, I[1]); goyes(3); goto o_done;
o9b0: ticks-=53+F04[(int)I[1]];pc+=3; TFa(A, B, I[1]&7); goyes(3); goto o_done;
o9b1: ticks-=53+F04[(int)I[1]];pc+=3; TFa(B, C, I[1]&7); goyes(3); goto o_done;
o9b2: ticks-=53+F04[(int)I[1]];pc+=3; TFa(C, A, I[1]&7); goyes(3); goto o_done;
o9b3: ticks-=53+F04[(int)I[1]];pc+=3; TFa(D, C, I[1]&7); goyes(3); goto o_done;
o9b4: ticks-=53+F04[(int)I[1]];pc+=3; TFb(A, B, I[1]&7); goyes(3); goto o_done;
o9b5: ticks-=53+F04[(int)I[1]];pc+=3; TFb(B, C, I[1]&7); goyes(3); goto o_done;
o9b6: ticks-=53+F04[(int)I[1]];pc+=3; TFb(C, A, I[1]&7); goyes(3); goto o_done;
o9b7: ticks-=53+F04[(int)I[1]];pc+=3; TFb(D, C, I[1]&7); goyes(3); goto o_done;
o9b8: ticks-=53+F04[(int)I[1]];pc+=3; TFae(A, B, I[1]&7); goyes(3); goto o_done;
o9b9: ticks-=53+F04[(int)I[1]];pc+=3; TFae(B, C, I[1]&7); goyes(3); goto o_done;
o9bA: ticks-=53+F04[(int)I[1]];pc+=3; TFae(C, A, I[1]&7); goyes(3); goto o_done;
o9bB: ticks-=53+F04[(int)I[1]];pc+=3; TFae(D, C, I[1]&7); goyes(3); goto o_done;
o9bC: ticks-=53+F04[(int)I[1]];pc+=3; TFbe(A, B, I[1]&7); goyes(3); goto o_done;
o9bD: ticks-=53+F04[(int)I[1]];pc+=3; TFbe(B, C, I[1]&7); goyes(3); goto o_done;
o9bE: ticks-=53+F04[(int)I[1]];pc+=3; TFbe(C, A, I[1]&7); goyes(3); goto o_done;
o9bF: ticks-=53+F04[(int)I[1]];pc+=3; TFbe(D, C, I[1]&7); goyes(3); goto o_done;
oAa0: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(A, B, I[1]); goto o_done;
oAa1: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(B, C, I[1]); goto o_done;
oAa2: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(C, A, I[1]); goto o_done;
oAa3: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(D, C, I[1]); goto o_done;
oAa4: ticks-=33+F04[(int)I[1]];pc+=3; NFdbl(A, I[1]); goto o_done;
oAa5: ticks-=33+F04[(int)I[1]];pc+=3; NFdbl(B, I[1]); goto o_done;
oAa6: ticks-=33+F04[(int)I[1]];pc+=3; NFdbl(C, I[1]); goto o_done;
oAa7: ticks-=33+F04[(int)I[1]];pc+=3; NFdbl(D, I[1]); goto o_done;
oAa8: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(B, A, I[1]); goto o_done;
oAa9: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(C, B, I[1]); goto o_done;
oAaA: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(A, C, I[1]); goto o_done;
oAaB: ticks-=33+F04[(int)I[1]];pc+=3; NFadd(C, D, I[1]); goto o_done;
oAaC: ticks-=33+F04[(int)I[1]];pc+=3; NFdec(A, I[1]); goto o_done;
oAaD: ticks-=33+F04[(int)I[1]];pc+=3; NFdec(B, I[1]); goto o_done;
oAaE: ticks-=33+F04[(int)I[1]];pc+=3; NFdec(C, I[1]); goto o_done;
oAaF: ticks-=33+F04[(int)I[1]];pc+=3; NFdec(D, I[1]); goto o_done;
oAb0: ticks-=33+F04[(int)I[1]];pc+=3; NFzero(A, I[1]&7); goto o_done;
oAb1: ticks-=33+F04[(int)I[1]];pc+=3; NFzero(B, I[1]&7); goto o_done;
oAb2: ticks-=33+F04[(int)I[1]];pc+=3; NFzero(C, I[1]&7); goto o_done;
oAb3: ticks-=33+F04[(int)I[1]];pc+=3; NFzero(D, I[1]&7); goto o_done;
oAb4: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(A, B, I[1]&7); goto o_done;
oAb5: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(B, C, I[1]&7); goto o_done;
oAb6: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(C, A, I[1]&7); goto o_done;
oAb7: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(D, C, I[1]&7); goto o_done;
oAb8: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(B, A, I[1]&7); goto o_done;
oAb9: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(C, B, I[1]&7); goto o_done;
oAbA: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(A, C, I[1]&7); goto o_done;
oAbB: ticks-=33+F04[(int)I[1]];pc+=3; NFcopy(C, D, I[1]&7); goto o_done;
oAbC: ticks-=33+F04[(int)I[1]];pc+=3; NFxchg(A, B, I[1]&7); goto o_done;
oAbD: ticks-=33+F04[(int)I[1]];pc+=3; NFxchg(B, C, I[1]&7); goto o_done;
oAbE: ticks-=33+F04[(int)I[1]];pc+=3; NFxchg(C, A, I[1]&7); goto o_done;
oAbF: ticks-=33+F04[(int)I[1]];pc+=3; NFxchg(D, C, I[1]&7); goto o_done;
oBa0: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(A, B, I[1]); goto o_done;
oBa1: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(B, C, I[1]); goto o_done;
oBa2: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(C, A, I[1]); goto o_done;
oBa3: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(D, C, I[1]); goto o_done;
oBa4: ticks-=33+F04[(int)I[1]];pc+=3; NFinc(A, I[1]); goto o_done;
oBa5: ticks-=33+F04[(int)I[1]];pc+=3; NFinc(B, I[1]); goto o_done;
oBa6: ticks-=33+F04[(int)I[1]];pc+=3; NFinc(C, I[1]); goto o_done;
oBa7: ticks-=33+F04[(int)I[1]];pc+=3; NFinc(D, I[1]); goto o_done;
oBa8: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(B, A, I[1]); goto o_done;
oBa9: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(C, B, I[1]); goto o_done;
oBaA: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(A, C, I[1]); goto o_done;
oBaB: ticks-=33+F04[(int)I[1]];pc+=3; NFsub(C, D, I[1]); goto o_done;
oBaC: ticks-=33+F04[(int)I[1]];pc+=3; NFrsub(A, B, I[1]); goto o_done;
oBaD: ticks-=33+F04[(int)I[1]];pc+=3; NFrsub(B, C, I[1]); goto o_done;
oBaE: ticks-=33+F04[(int)I[1]];pc+=3; NFrsub(C, A, I[1]); goto o_done;
oBaF: ticks-=33+F04[(int)I[1]];pc+=3; NFrsub(D, C, I[1]); goto o_done;
oBb0: ticks-=33+F04[(int)I[1]];pc+=3; NFsl(A, I[1]&7); goto o_done;
oBb1: ticks-=33+F04[(int)I[1]];pc+=3; NFsl(B, I[1]&7); goto o_done;
oBb2: ticks-=33+F04[(int)I[1]];pc+=3; NFsl(C, I[1]&7); goto o_done;
oBb3: ticks-=33+F04[(int)I[1]];pc+=3; NFsl(D, I[1]&7); goto o_done;
oBb4: ticks-=33+F04[(int)I[1]];pc+=3; NFsr(A, I[1]&7); goto o_done;
oBb5: ticks-=33+F04[(int)I[1]];pc+=3; NFsr(B, I[1]&7); goto o_done;
oBb6: ticks-=33+F04[(int)I[1]];pc+=3; NFsr(C, I[1]&7); goto o_done;
oBb7: ticks-=33+F04[(int)I[1]];pc+=3; NFsr(D, I[1]&7); goto o_done;
oBb8: ticks-=33+F04[(int)I[1]];pc+=3; NFneg(A, I[1]&7); goto o_done;
oBb9: ticks-=33+F04[(int)I[1]];pc+=3; NFneg(B, I[1]&7); goto o_done;
oBbA: ticks-=33+F04[(int)I[1]];pc+=3; NFneg(C, I[1]&7); goto o_done;
oBbB: ticks-=33+F04[(int)I[1]];pc+=3; NFneg(D, I[1]&7); goto o_done;
oBbC: ticks-=33+F04[(int)I[1]];pc+=3; NFnot(A, I[1]&7); goto o_done;
oBbD: ticks-=33+F04[(int)I[1]];pc+=3; NFnot(B, I[1]&7); goto o_done;
oBbE: ticks-=33+F04[(int)I[1]];pc+=3; NFnot(C, I[1]&7); goto o_done;
oBbF: ticks-=33+F04[(int)I[1]];pc+=3; NFnot(D, I[1]&7); goto o_done;
oC0: ticks-=40; pc+=2; Nadd(A, B, 5); goto o_done;
oC1: ticks-=40; pc+=2; Nadd(B, C, 5); goto o_done;
oC2: ticks-=40; pc+=2; Nadd(C, A, 5); goto o_done;
oC3: ticks-=40; pc+=2; Nadd(D, C, 5); goto o_done;
oC4: ticks-=40; pc+=2; Ndbl(A, 5); goto o_done;
oC5: ticks-=40; pc+=2; Ndbl(B, 5); goto o_done;
oC6: ticks-=40; pc+=2; Ndbl(C, 5); goto o_done;
oC7: ticks-=40; pc+=2; Ndbl(D, 5); goto o_done;
oC8: ticks-=40; pc+=2; Nadd(B, A, 5); goto o_done;
oC9: ticks-=40; pc+=2; Nadd(C, B, 5); goto o_done;
oCA: ticks-=40; pc+=2; Nadd(A, C, 5); goto o_done;
oCB: ticks-=40; pc+=2; Nadd(C, D, 5); goto o_done;
oCC: ticks-=40; pc+=2; Ndec(A, 5); goto o_done;
oCD: ticks-=40; pc+=2; Ndec(B, 5); goto o_done;
oCE: ticks-=40; pc+=2; Ndec(C, 5); goto o_done;
oCF: ticks-=40; pc+=2; Ndec(D, 5); goto o_done;
oD0: ticks-=40; pc+=2; Nzero(A, 5); goto o_done;
oD1: ticks-=40; pc+=2; Nzero(B, 5); goto o_done;
oD2: ticks-=40; pc+=2; Nzero(C, 5); goto o_done;
oD3: ticks-=40; pc+=2; Nzero(D, 5); goto o_done;
oD4: ticks-=40; pc+=2; Ncopy(A, B, 5); goto o_done;
oD5: ticks-=40; pc+=2; Ncopy(B, C, 5); goto o_done;
oD6: ticks-=40; pc+=2; Ncopy(C, A, 5); goto o_done;
oD7: ticks-=40; pc+=2; Ncopy(D, C, 5); goto o_done;
oD8: ticks-=40; pc+=2; Ncopy(B, A, 5); goto o_done;
oD9: ticks-=40; pc+=2; Ncopy(C, B, 5); goto o_done;
oDA: ticks-=40; pc+=2; Ncopy(A, C, 5); goto o_done;
oDB: ticks-=40; pc+=2; Ncopy(C, D, 5); goto o_done;
oDC: ticks-=40; pc+=2; Nxchg(A, B, 5); goto o_done;
oDD: ticks-=40; pc+=2; Nxchg(B, C, 5); goto o_done;
oDE: ticks-=40; pc+=2; Nxchg(C, A, 5); goto o_done;
oDF: ticks-=40; pc+=2; Nxchg(D, C, 5); goto o_done;
oE0: ticks-=40; pc+=2; Nsub(A, B, 5); goto o_done;
oE1: ticks-=40; pc+=2; Nsub(B, C, 5); goto o_done;
oE2: ticks-=40; pc+=2; Nsub(C, A, 5); goto o_done;
oE3: ticks-=40; pc+=2; Nsub(D, C, 5); goto o_done;
oE4: ticks-=40; pc+=2; Ninc(A, 5); goto o_done;
oE5: ticks-=40; pc+=2; Ninc(B, 5); goto o_done;
oE6: ticks-=40; pc+=2; Ninc(C, 5); goto o_done;
oE7: ticks-=40; pc+=2; Ninc(D, 5); goto o_done;
oE8: ticks-=40; pc+=2; Nsub(B, A, 5); goto o_done;
oE9: ticks-=40; pc+=2; Nsub(C, B, 5); goto o_done;
oEA: ticks-=40; pc+=2; Nsub(A, C, 5); goto o_done;
oEB: ticks-=40; pc+=2; Nsub(C, D, 5); goto o_done;
oEC: ticks-=40; pc+=2; Nrsub(A, B, 5); goto o_done;
oED: ticks-=40; pc+=2; Nrsub(B, C, 5); goto o_done;
oEE: ticks-=40; pc+=2; Nrsub(C, A, 5); goto o_done;
oEF: ticks-=40; pc+=2; Nrsub(D, C, 5); goto o_done;
oF0: ticks-=44; pc+=2; Nsl(A, 5); goto o_done;
oF1: ticks-=44; pc+=2; Nsl(B, 5); goto o_done;
oF2: ticks-=44; pc+=2; Nsl(C, 5); goto o_done;
oF3: ticks-=44; pc+=2; Nsl(D, 5); goto o_done;
oF4: ticks-=44; pc+=2; Nsr(A, 5); goto o_done;
oF5: ticks-=44; pc+=2; Nsr(B, 5); goto o_done;
oF6: ticks-=44; pc+=2; Nsr(C, 5); goto o_done;
oF7: ticks-=44; pc+=2; Nsr(D, 5); goto o_done;
oF8: ticks-=40; pc+=2; Nneg(A, 5); goto o_done;
oF9: ticks-=40; pc+=2; Nneg(B, 5); goto o_done;
oFA: ticks-=40; pc+=2; Nneg(C, 5); goto o_done;
oFB: ticks-=40; pc+=2; Nneg(D, 5); goto o_done;
oFC: ticks-=40; pc+=2; Nnot(A, 5); goto o_done;
oFD: ticks-=40; pc+=2; Nnot(B, 5); goto o_done;
oFE: ticks-=40; pc+=2; Nnot(C, 5); goto o_done;
oFF: ticks-=40; pc+=2; Nnot(D, 5); goto o_done;
/* 424 lines, 1 instructions */