-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSpaceGameboy.cs
More file actions
128 lines (121 loc) · 55 KB
/
SpaceGameboy.cs
File metadata and controls
128 lines (121 loc) · 55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// You need a timer set to TRIGGER itself and call this script.
// Paste your rom here AFTER converting it at http://jpillora.com/base64-encoder
// DONT PASTE THE ROM IN GAME, COPY THE SCRIPT TO A TEXT EDITOR FIRST.
// IT WILL FREEZE THE GAME IF YOU EVEN CLICK ON THE FOLLOWING LINE IN GAME!
string rom="";
//rom source: https://github.com/Skillath/GameBoyFlappyBird
// Adjust the throttle/frameSkips to eliminate complexity errors.
static int throttle = 1000;
static int frameSkips = 4;
static string lcdName = "SpaceGameboy LCD";
static int tapLength = 4;
int stage = 0;
SpaceGameboy gb;
Dictionary<string, bool> tgls = new Dictionary<string, bool>() {
{"up", false},
{"down", false},
{"right", false},
{"left", false},
{"a", false},
{"b", false},
{"start", false},
{"select", false}
};
Dictionary<string, int> taps = new Dictionary<string, int>() {
{"up", 0},
{"down", 0},
{"right", 0},
{"left", 0},
{"a", 0},
{"b", 0},
{"start", 0},
{"select", 0}
};
Dictionary<string, bool> tgl = new Dictionary<string, bool>() {
{"up", false},
{"down", false},
{"right", false},
{"left", false},
};
public Program()
{
Runtime.UpdateFrequency = UpdateFrequency.Update1;
}
public void Main(string arg)
{
switch(stage)
{
case 0:
if(arg == "storage" || rom == "") rom = Storage;
var lcd = GridTerminalSystem.GetBlockWithName(lcdName) as IMyTextPanel;
if(lcd != null)
{
gb = new SpaceGameboy(lcd,Echo);
}
else
{
throw new Exception(lcdName + " not found!");
}
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
gb.reset(rom, stage);
break;
default:
foreach(var b in new string[]{"up", "down", "left", "right", "a", "b", "start", "select"})
{
if(taps[b] > 0)
{
taps[b]--;
if(taps[b] == 0) gb.keyup(b);
}
}
if(arg.EndsWith("On")) gb.keydown(arg.Remove(arg.Length - 2));
else if(arg.EndsWith("Off")) gb.keyup(arg.Remove(arg.Length - 3));
else if(arg.EndsWith("Toggle"))
{
string btn = arg.Remove(arg.Length - 6);
if(tgls[btn])
{
gb.keyup(btn);
tgls[btn] = false;
}
else
{
gb.keydown(btn);
tgls[btn] = true;
}
}
else if(arg.EndsWith("Arrow"))
{
string btn = arg.Remove(arg.Length - 5);
gb.keydown(btn);
foreach(var b in new string[]{"up", "down", "right", "left"})
{
if(tgl[b])
{
gb.keyup(b);
tgl[b] = false;
}
else if(btn == b)
{
tgl[btn] = true;
}
}
}
else
{
gb.keydown(arg);
taps[arg] = tapLength;
}
gb.frame(throttle, frameSkips, stage);
if((stage % 2) == 0) gb.update();
break;
}
stage++;
}
class aa{public int tile,palette,yflip,xflip,prio,num,y,x;public aa(int num){this.num=num;y=-16;x=-8;tile=0;palette=0;yflip=0;xflip=0;prio=0;num=0;}}class ab{public char[]data=new char[161*144];public int[]_vram=new int[8192];public int[]_oam=new int[160];int[]g=new int[256];int[][][]p=new int[512][][];aa[]q=new aa[40];int[]s=new int[160];char[]t=new char[4];char[]u=new char[4];char[]w=new char[4];int z=0;int A=0;int B=0;int C=0;int D=0;int E=0;int F=0;bool G=false;bool H=false;bool I=false;bool J=false;int K=7;int L=0;int M=8;int N=0x1800;int O=0x0000;int P=0x1800;int Q=0;IMyTextPanel R;bool S=true,T=false,U=false;ai V;ae W;public ab(IMyTextPanel screen){this.R=screen;screen.ShowPublicTextOnScreen();}public void drawNow(){if(T==false){T=true;}}public void update(){if(U){R.WritePublicText(new String(data),false);}}public void reset(ai z80,ae mMU){this.V=z80;this.W=mMU;Array.Clear(_vram,0x00,_vram.Length);Array.Clear(_oam,0x00,_oam.Length);t[0]='\uE00F';t[1]='\uE00E';t[2]='\uE00D';t[3]='\uE006';u[0]='\uE00F';u[1]='\uE00E';u[2]='\uE00D';u[3]='\uE006';w[0]='\uE00F';w[1]='\uE00E';w[2]='\uE00D';w[3]='\uE006';for(int i=0;i<512;i++){p[i]=new int[8][];for(int j=0;j<8;j++){p[i][j]=new int[9];for(int k=0;k<8;k++){p[i][j][k]=0x00;}}}}public void reset2(){for(int i=0;i<data.Length/2;i++)data[i]=t[3];}public void reset3(){for(int i=data.Length/2;i<data.Length;i++)data[i]=t[3];}public void reset4(){for(int n=160;n<data.Length;n+=161)data[n]="\n"[0];update();z=0;A=0;B=2;C=0;D=0;E=0;F=0;G=false;H=false;I=true;M=8;for(int i=0;i<160;i++)s[i]=0;for(int i=0;i<40;i++){q[i]=new aa(i);}O=0x0000;P=0x1800;}int X,Y,Z,_,a0,a1,a2,a3,a4;int[]a5;char[]a6;aa a7;public void checkline(){if(!this.S&&!this.T&&!this.U)return;C+=V.r.m;switch(B){case 0:{if(C>=51){if(z==143){B=1;if(this.S){this.S=false;this.U=true;}else if(this.T){this.T=false;this.S=true;}}else{B=2;}z++;A+=161;C=0;}break;}case 1:{if(C>=114){C=0;z++;if(z>153){z=0;A=0;B=2;}}break;}case 2:{if(C>=20){C=0;B=3;}break;}case 3:{if(C>=43){C=0;B=0;if(G){if(H){a0=A;_=P+((((z+D)&0xFF)>>0x03)<<0x05);Z=(z+D)&7;Y=E&7;X=(E>>3)&31;if(O!=0){a1=_vram[_+X];if(a1<128)a1=(256+a1);a5=p[a1][Z];for(Q=160;Q>0;Q--){s[159-Y]=a5[Y];data[a0]=t[a5[Y]];Y++;if(Y==8){X=(X+1)&31;Y=0;a1=_vram[_+X];if(a1<128){a1=(256+a1);}a5=p[a1][Z];}a0++;}}else{a5=p[_vram[_+X]][Z];for(Q=160;Q>0;Q--){s[159-Y]=a5[Y];data[a0]=t[a5[Y]];Y++;if(Y==8){X=(X+1)&31;Y=0;a5=p[_vram[_+X]][Z];}a0++;}}}if(J&&false){a0=A;_=N+((((z+L)&0xFF)>>0x03)<<0x05);Z=(z+L)&7;Y=K&7;X=(K>>3)&31;if(N!=0){a1=_vram[_+X];if(a1<128)a1=(256+a1);a5=p[a1][Z];for(Q=160;Q>0;Q--){s[159-Y]=a5[Y];if(!I||t[a5[Y]]!='\uE00F')data[a0]=t[a5[Y]];Y++;if(Y==8){X=(X+1)&31;Y=0;a1=_vram[_+X];if(a1<128){a1=(256+a1);}a5=p[a1][Z];}a0++;}}else{a5=p[_vram[_+X]][Z];for(Q=160;Q>0;Q--){s[159-Y]=a5[Y];if(!I||t[a5[Y]]!='\uE00F')data[a0]=t[a5[Y]];Y++;if(Y==8){X=(X+1)&31;Y=0;a5=p[_vram[_+X]][Z];}a0++;}}}{a0=A;a3=z*161;for(a4=0;a4<40;a4++){a7=q[a4];if(a7.y<=z&&(a7.y+M)>z){if(a7.yflip>0)a5=p[a7.tile+((((M-1-(z-a7.y)))>7)?1:0)][(M-1-(z-a7.y))%8];else a5=p[a7.tile+(((z-a7.y)>7)?1:0)][(z-a7.y)%8];if(a7.palette>0)a6=w;else a6=u;a0=(a3+a7.x);if(a7.xflip>0){for(Y=0;Y<8;Y++){if(a7.x+Y>=0&&a7.x+Y<160){if(a5[7-Y]>0&&(a7.prio>0||!(s[Y]>0))){data[a0]=a6[a5[7-Y]];}}a0++;}}else{for(Y=0;Y<8;Y++){if(a7.x+Y>=0&&a7.x+Y<160){if(a5[Y]>0&&(a7.prio>0||!(s[Y]>0))){data[a0]=a6[a5[Y]];}}a0++;}}}}}}}break;}}}int a8;int a9;public void updatetile(int addr,int val){var saddr=addr;if((addr&1)>0){saddr--;addr--;}var tile=(addr>>4)&511;var y=(addr>>1)&7;int sx;for(var x=0;x<8;x++){sx=1<<(7-x);p[tile][y][x]=((((_vram[saddr]&sx)>0)?0x01:0x00)|(((_vram[saddr+1]&sx)>0)?0x02:0x00));}}public void updateoam(int addr,int val){addr-=0xFE00;var o=addr>>2;if(o<40&&o>=0){switch(addr&3){case 0:q[o].y=val-16;break;case 1:q[o].x=val-8;break;case 2:if(M!=8)q[o].tile=(val&0xFE);else q[o].tile=val;break;case 3:q[o].palette=((val&0x10)>0)?1:0;q[o].xflip=((val&0x20)>0)?1:0;q[o].yflip=((val&0x40)>0)?1:0;q[o].prio=((val&0x80)>0)?1:0;break;}}}public int rb(int addr){a8=addr-0xFF40;switch(a8){case 0:return((G?0x80:0)|((N==0x1C00)?0x40:0)|(J?0x20:0x00)|((O==0x0000)?0x10:0)|((P==0x1C00)?0x08:0)|((M==16)?0x04:0)|(I?0x00:0x02)|(H?0x01:0x00));case 1:return((z==F?4:0)|B);case 2:return D;case 3:return E;case 4:return z;case 5:return F;default:return g[a8];}}public void wb(int addr,int val){a8=addr-0xFF40;g[a8]=val;switch(a8){case 0:G=((val&0x80)>0)?true:false;N=((val&0x40)>0)?0x1C00:0x1800;J=((val&0x20)>0)?true:false;O=((val&0x10)>0)?0x0000:0x0800;P=((val&0x08)>0)?0x1C00:0x1800;M=((val&0x04)>0)?16:8;I=((val&0x02)>0)?false:true;H=((val&0x01)>0)?true:false;break;case 2:D=val;break;case 3:E=val;break;case 5:F=val;break;case 6:for(a4=0;a4<160;a4++){a9=W.rb((val<<8)+a4);_oam[a4]=a9;updateoam(0xFE00+a4,a9);}break;case 7:for(a4=0;a4<4;a4++){switch((val>>(a4*2))&3){case 3:t[a4]='\uE00F';break;case 2:t[a4]='\uE00E';break;case 1:t[a4]='\uE00D';break;case 0:t[a4]='\uE006';break;}}break;case 8:for(a4=0;a4<4;a4++){switch((val>>(a4*2))&3){case 3:u[a4]='\uE00F';break;case 2:u[a4]='\uE00E';break;case 1:u[a4]='\uE00D';break;case 0:u[a4]='\uE006';break;}}break;case 9:for(a4=0;a4<4;a4++){switch((val>>(a4*2))&3){case 3:w[a4]='\uE00F';break;case 2:w[a4]='\uE00E';break;case 1:w[a4]='\uE00D';break;case 0:w[a4]='\uE006';break;}}break;case 10:L=val;break;case 11:if(val>166)J=false;K=val;break;}}}class ac{int[]g=new int[2]{0x0F,0x0F};int p=0;public void reset(){g=new int[2]{0x0F,0x0F};p=0x00;}public int rb(){switch(p){case 0x00:return 0x00;case 0x10:return g[0];case 0x20:return g[1];default:return 0x00;}}public void wb(int v){p=v&0x30;}public void keydown(string key){switch(key){case "right":g[1]&=0xE;break;case "left":g[1]&=0xD;break;case "up":g[1]&=0xB;break;case "down":g[1]&=0x7;break;case "a":g[0]&=0xE;break;case "b":g[0]&=0xD;break;case "select":g[0]&=0xB;break;case "start":g[0]&=0x7;break;}}public void keyup(string key){switch(key){case "right":g[1]|=0x1;break;case "left":g[1]|=0x2;break;case "up":g[1]|=0x4;break;case "down":g[1]|=0x8;break;case "a":g[0]|=0x1;break;case "b":g[0]|=0x2;break;case "select":g[0]|=0x5;break;case "start":g[0]|=0x8;break;}}}class ad{public int rombank=0,rambank=0,ramon=0,mode=0;}class ae{public byte[]_rom;int g=0;ad p=new ad();ad q=new ad();int s=0x4000;int t=0;public byte[]mem=new byte[65536];int[]u=new int[8192];int[]w=new int[32768];int[]z=new int[128];public int[]_timer=new int[4];public int _ie=0;public int _if=0;ab A;ac B;ai C;int D,E;public void reset(ab gPU,ac kEY,ai z80){this.A=gPU;this.B=kEY;this.C=z80;_timer=new int[4]{0,0,0,0};int i;for(i=0;i<8192;i++)u[i]=0;for(i=0;i<32768;i++)w[i]=0;for(i=0;i<127;i++)z[i]=0;_ie=0;_if=0;g=0;p=new ad();q=new ad();s=0x4000;t=0;}public void load(byte[]rom){_rom=rom;g=_rom[0x0147];}public int rb(int addr){if(addr<=0x3FFF){return _rom[addr];}switch(addr&0xF000){case 0xF000:{if(addr<=0xFDFF){return u[addr&0x1FFF];}else if(addr<=0xFEFF){return(((addr&0xFF)<0xA0)?A._oam[addr&0xFF]:0x00);}else if(addr<=0xFF0F)switch(addr&0xF){case 0:return B.rb();case 4:case 5:case 6:case 7:return _timer[addr&0xF-4];case 15:return _if;default:return 0x00;}else if(addr<=0xFF3F)return 0x00;else if(addr<=0xFF7F)return A.rb(addr);else if(addr==0xFFFF){return _ie;}else{return z[addr&0x7F];}}case 0x0000:case 0x1000:case 0x2000:case 0x3000:{return _rom[addr];}case 0x4000:case 0x5000:case 0x6000:case 0x7000:{return _rom[s+(addr&0x3FFF)];}case 0x8000:case 0x9000:{return A._vram[addr&0x1FFF];}case 0xA000:case 0xB000:{return w[t+(addr&0x1FFF)];}case 0xC000:case 0xD000:case 0xE000:{return u[addr&0x1FFF];}}return 0x00;}public int rw(int addr){return rb(addr)+(rb(addr+1)<<8);}public void wb(int addr,int val){D=addr&0xF000;if(D==0x0000||D==0x1000){switch(g){case 1:case 2:case 3:q.ramon=((val&0xF)==0xA)?1:0;break;}}else if(D==0x2000||D==0x3000){switch(g){case 1:case 2:case 3:q.rombank&=0x60;val&=0x1F;if(!(val!=0))val=1;q.rombank|=val;s=q.rombank*0x4000;break;}}else if(D==0x4000||D==0x5000){switch(g){case 1:case 2:case 3:if(q.mode!=0){q.rambank=(val&3);t=q.rambank*0x2000;}else{q.rombank&=0x1F;q.rombank|=((val&3)<<5);s=q.rombank*0x4000;}break;}}else if(D==0x6000||D==0x7000){switch(g){case 1:q.mode=val&1;break;}}else if(D==0x8000||D==0x9000){A._vram[addr&0x1FFF]=val;A.updatetile(addr&0x1FFF,val);}else if(D==0xA000||D==0xB000){w[t+(addr&0x1FFF)]=val;}else if(D==0xC000||D==0xD000||D==0xE000){u[addr&0x1FFF]=val;}else if(D==0xF000){E=addr&0x0F00;if(E<=0xD00){u[addr&0x1FFF]=val;}else if(E==0xE00){if((addr&0xFF)<0xA0)A._oam[addr&0xFF]=val;A.updateoam(addr,val);}else if(E==0xF00){if(addr==0xFFFF){_ie=val;}else if(addr>0xFF7F){z[addr&0x7F]=val;}else switch(addr&0xF0){case 0x00:switch(addr&0xF){case 0:B.wb(val);break;case 4:_timer[addr&0xF-4]=0x00;break;case 5:case 6:case 7:_timer[addr&0xF-4]=val;break;case 15:_if=val;break;}break;case 0x10:case 0x20:case 0x30:break;case 0x40:case 0x50:case 0x60:case 0x70:A.wb(addr,val);break;}}}}public void ww(int addr,int val){wb(addr,val&0xFF);wb(addr+1,val>>8);}}public class SpaceGameboy{private ab g;private ae p;private ai q;private ac s;static public Action<string>Echo;public SpaceGameboy(IMyTextPanel screen,Action<string>Echo){SpaceGameboy.Echo=Echo;this.g=new ab(screen);this.p=new ae();this.q=new ai();this.s=new ac();}long t=0,u=0,w,z=0;long A=0;int B,C;public void frame(int throttle,int frameSkip,int stage){B=q._clock.m+17556;if((stage%frameSkip)==0)g.drawNow();z=System.DateTime.Now.Ticks;p._timer[0]=(int)((z-t)/610.3515625);switch(p._timer[3]&0x3){case 0:p._timer[1]+=(int)(((z-u)/610.3515625)/1024);break;case 1:p._timer[1]+=(int)(((z-u)/610.3515625)/16);break;case 2:p._timer[1]+=(int)(((z-u)/610.3515625)/64);break;case 3:p._timer[1]+=(int)(((z-u)/610.3515625)/256);break;}if(p._timer[1]>255){p._if|=0x04;u=z;}if(z-w>283813){p._if|=0x01;w=z;A++;}u=z;for(;q._clock.m<B&&throttle>0;throttle--){q._map[p.rb(q.r.pc++)]();q.r.pc&=65535;if(q.r.ime!=0&&p._ie!=0&&p._if!=0){q._halt=0;q.r.ime=0;C=p._ie&p._if;if((C&1)!=0){p._if&=0xFE;q.RST40();}else if((C&2)!=0){p._if&=0xFD;q.RST48();}else if((C&4)!=0){p._if&=0xFB;q.RST50();}else if((C&8)!=0){p._if&=0xF7;q.RST58();}else if((C&16)!=0){p._if&=0xEF;q.RST60();}else{q.r.ime=1;}}q._clock.m+=q.r.m;g.checkline();}}public void update(){g.update();}public void reset(string rom,int stage){switch(stage){case 1:g.reset(this.q,this.p);break;case 2:g.reset2();break;case 3:g.reset3();break;case 4:g.reset4();break;case 5:p.reset(g,s,q);q.reset(p);s.reset();q.r.pc=0x100;q.r.sp=0xFFFE;q.r.c=0x13;q.r.e=0xD8;q.r.a=1;break;case 6:byte[]r;if(rom.Substring(0,13)=="data:;base64,")r=Convert.FromBase64String(rom.Substring(13));else r=Convert.FromBase64String(rom);p.load(r);this.run();break;}t=w=System.DateTime.Now.Ticks;}public void run(){q._stop=0;}public void keydown(string key){s.keydown(key);}public void keyup(string key){s.keyup(key);}}class af{public int a=0,b=0,c=0,d=0,e=0,h=0,l=0,f=0,sp=0,pc=0,i=0,r=0,m=0,ime=0;}class ag{public int a=0,b=0,c=0,d=0,e=0,h=0,l=0,f=0;}class ah{public int m=0;}class ai{public af r=new af();public ag rv=new ag();public ah _clock=new ah();public int _halt=0;public int _stop=0;ae g;int p,q,s,t,u,w,z;public ai(){this._map=new Action[256]{NOP,LDBCnn,LDBCmA,INCBC,INCr_b,DECr_b,LDrn_b,RLCA,LDmmSP,ADDHLBC,LDABCm,DECBC,INCr_c,DECr_c,LDrn_c,RRCA,DJNZn,LDDEnn,LDDEmA,INCDE,INCr_d,DECr_d,LDrn_d,RLA,JRn,ADDHLDE,LDADEm,DECDE,INCr_e,DECr_e,LDrn_e,RRA,JRNZn,LDHLnn,LDHLIA,INCHL,INCr_h,DECr_h,LDrn_h,DAA,JRZn,ADDHLHL,LDAHLI,DECHL,INCr_l,DECr_l,LDrn_l,CPL,JRNCn,LDSPnn,LDHLDA,INCSP,INCHLm,DECHLm,LDHLmn,SCF,JRCn,ADDHLSP,LDAHLD,DECSP,INCr_a,DECr_a,LDrn_a,CCF,LDrr_bb,LDrr_bc,LDrr_bd,LDrr_be,LDrr_bh,LDrr_bl,LDrHLm_b,LDrr_ba,LDrr_cb,LDrr_cc,LDrr_cd,LDrr_ce,LDrr_ch,LDrr_cl,LDrHLm_c,LDrr_ca,LDrr_db,LDrr_dc,LDrr_dd,LDrr_de,LDrr_dh,LDrr_dl,LDrHLm_d,LDrr_da,LDrr_eb,LDrr_ec,LDrr_ed,LDrr_ee,LDrr_eh,LDrr_el,LDrHLm_e,LDrr_ea,LDrr_hb,LDrr_hc,LDrr_hd,LDrr_he,LDrr_hh,LDrr_hl,LDrHLm_h,LDrr_ha,LDrr_lb,LDrr_lc,LDrr_ld,LDrr_le,LDrr_lh,LDrr_ll,LDrHLm_l,LDrr_la,LDHLmr_b,LDHLmr_c,LDHLmr_d,LDHLmr_e,LDHLmr_h,LDHLmr_l,HALT,LDHLmr_a,LDrr_ab,LDrr_ac,LDrr_ad,LDrr_ae,LDrr_ah,LDrr_al,LDrHLm_a,LDrr_aa,ADDr_b,ADDr_c,ADDr_d,ADDr_e,ADDr_h,ADDr_l,ADDHL,ADDr_a,ADCr_b,ADCr_c,ADCr_d,ADCr_e,ADCr_h,ADCr_l,ADCHL,ADCr_a,SUBr_b,SUBr_c,SUBr_d,SUBr_e,SUBr_h,SUBr_l,SUBHL,SUBr_a,SBCr_b,SBCr_c,SBCr_d,SBCr_e,SBCr_h,SBCr_l,SBCHL,SBCr_a,ANDr_b,ANDr_c,ANDr_d,ANDr_e,ANDr_h,ANDr_l,ANDHL,ANDr_a,XORr_b,XORr_c,XORr_d,XORr_e,XORr_h,XORr_l,XORHL,XORr_a,ORr_b,ORr_c,ORr_d,ORr_e,ORr_h,ORr_l,ORHL,ORr_a,CPr_b,CPr_c,CPr_d,CPr_e,CPr_h,CPr_l,CPHL,CPr_a,RETNZ,POPBC,JPNZnn,JPnn,CALLNZnn,PUSHBC,ADDn,RST00,RETZ,RET,JPZnn,MAPcb,CALLZnn,CALLnn,ADCn,RST08,RETNC,POPDE,JPNCnn,XX,CALLNCnn,PUSHDE,SUBn,RST10,RETC,RETI,JPCnn,XX,CALLCnn,XX,SBCn,RST18,LDIOnA,POPHL,LDIOCA,XX,XX,PUSHHL,ANDn,RST20,ADDSPn,JPHL,LDmmA,XX,XX,XX,XORn,RST28,LDAIOn,POPAF,LDAIOC,DI,XX,PUSHAF,ORn,RST30,LDHLSPn,XX,LDAmm,EI,XX,XX,CPn,RST38};this._cbmap=new Action[256]{RLCr_b,RLCr_c,RLCr_d,RLCr_e,RLCr_h,RLCr_l,RLCHL,RLCr_a,RRCr_b,RRCr_c,RRCr_d,RRCr_e,RRCr_h,RRCr_l,RRCHL,RRCr_a,RLr_b,RLr_c,RLr_d,RLr_e,RLr_h,RLr_l,RLHL,RLr_a,RRr_b,RRr_c,RRr_d,RRr_e,RRr_h,RRr_l,RRHL,RRr_a,SLAr_b,SLAr_c,SLAr_d,SLAr_e,SLAr_h,SLAr_l,XX,SLAr_a,SRAr_b,SRAr_c,SRAr_d,SRAr_e,SRAr_h,SRAr_l,XX,SRAr_a,SWAPr_b,SWAPr_c,SWAPr_d,SWAPr_e,SWAPr_h,SWAPr_l,XX,SWAPr_a,SRLr_b,SRLr_c,SRLr_d,SRLr_e,SRLr_h,SRLr_l,XX,SRLr_a,BIT0b,BIT0c,BIT0d,BIT0e,BIT0h,BIT0l,BIT0m,BIT0a,BIT1b,BIT1c,BIT1d,BIT1e,BIT1h,BIT1l,BIT1m,BIT1a,BIT2b,BIT2c,BIT2d,BIT2e,BIT2h,BIT2l,BIT2m,BIT2a,BIT3b,BIT3c,BIT3d,BIT3e,BIT3h,BIT3l,BIT3m,BIT3a,BIT4b,BIT4c,BIT4d,BIT4e,BIT4h,BIT4l,BIT4m,BIT4a,BIT5b,BIT5c,BIT5d,BIT5e,BIT5h,BIT5l,BIT5m,BIT5a,BIT6b,BIT6c,BIT6d,BIT6e,BIT6h,BIT6l,BIT6m,BIT6a,BIT7b,BIT7c,BIT7d,BIT7e,BIT7h,BIT7l,BIT7m,BIT7a,RES0b,RES0c,RES0d,RES0e,RES0h,RES0l,RES0m,RES0a,RES1b,RES1c,RES1d,RES1e,RES1h,RES1l,RES1m,RES1a,RES2b,RES2c,RES2d,RES2e,RES2h,RES2l,RES2m,RES2a,RES3b,RES3c,RES3d,RES3e,RES3h,RES3l,RES3m,RES3a,RES4b,RES4c,RES4d,RES4e,RES4h,RES4l,RES4m,RES4a,RES5b,RES5c,RES5d,RES5e,RES5h,RES5l,RES5m,RES5a,RES6b,RES6c,RES6d,RES6e,RES6h,RES6l,RES6m,RES6a,RES7b,RES7c,RES7d,RES7e,RES7h,RES7l,RES7m,RES7a,SET0b,SET0c,SET0d,SET0e,SET0h,SET0l,SET0m,SET0a,SET1b,SET1c,SET1d,SET1e,SET1h,SET1l,SET1m,SET1a,SET2b,SET2c,SET2d,SET2e,SET2h,SET2l,SET2m,SET2a,SET3b,SET3c,SET3d,SET3e,SET3h,SET3l,SET3m,SET3a,SET4b,SET4c,SET4d,SET4e,SET4h,SET4l,SET4m,SET4a,SET5b,SET5c,SET5d,SET5e,SET5h,SET5l,SET5m,SET5a,SET6b,SET6c,SET6d,SET6e,SET6h,SET6l,SET6m,SET6a,SET7b,SET7c,SET7d,SET7e,SET7h,SET7l,SET7m,SET7a,};}public void reset(ae mMU){this.g=mMU;r.a=0;r.b=0;r.c=0;r.d=0;r.e=0;r.h=0;r.l=0;r.f=0;r.sp=0;r.pc=0;r.i=0;r.r=0;r.m=0;_halt=0;_stop=0;_clock.m=0;r.ime=1;}public void exec(){r.r=(r.r+1)&127;_map[g.rb(r.pc++)]();r.pc&=65535;_clock.m+=r.m;}public Action[]_map;public Action[]_cbmap;public void LDrr_bb(){r.m=1;}public void LDrr_bc(){r.b=r.c;r.m=1;}public void LDrr_bd(){r.b=r.d;r.m=1;}public void LDrr_be(){r.b=r.e;r.m=1;}public void LDrr_bh(){r.b=r.h;r.m=1;}public void LDrr_bl(){r.b=r.l;r.m=1;}public void LDrr_ba(){r.b=r.a;r.m=1;}public void LDrr_cb(){r.c=r.b;r.m=1;}public void LDrr_cc(){r.m=1;}public void LDrr_cd(){r.c=r.d;r.m=1;}public void LDrr_ce(){r.c=r.e;r.m=1;}public void LDrr_ch(){r.c=r.h;r.m=1;}public void LDrr_cl(){r.c=r.l;r.m=1;}public void LDrr_ca(){r.c=r.a;r.m=1;}public void LDrr_db(){r.d=r.b;r.m=1;}public void LDrr_dc(){r.d=r.c;r.m=1;}public void LDrr_dd(){r.m=1;}public void LDrr_de(){r.d=r.e;r.m=1;}public void LDrr_dh(){r.d=r.h;r.m=1;}public void LDrr_dl(){r.d=r.l;r.m=1;}public void LDrr_da(){r.d=r.a;r.m=1;}public void LDrr_eb(){r.e=r.b;r.m=1;}public void LDrr_ec(){r.e=r.c;r.m=1;}public void LDrr_ed(){r.e=r.d;r.m=1;}public void LDrr_ee(){r.m=1;}public void LDrr_eh(){r.e=r.h;r.m=1;}public void LDrr_el(){r.e=r.l;r.m=1;}public void LDrr_ea(){r.e=r.a;r.m=1;}public void LDrr_hb(){r.h=r.b;r.m=1;}public void LDrr_hc(){r.h=r.c;r.m=1;}public void LDrr_hd(){r.h=r.d;r.m=1;}public void LDrr_he(){r.h=r.e;r.m=1;}public void LDrr_hh(){r.m=1;}public void LDrr_hl(){r.h=r.l;r.m=1;}public void LDrr_ha(){r.h=r.a;r.m=1;}public void LDrr_lb(){r.l=r.b;r.m=1;}public void LDrr_lc(){r.l=r.c;r.m=1;}public void LDrr_ld(){r.l=r.d;r.m=1;}public void LDrr_le(){r.l=r.e;r.m=1;}public void LDrr_lh(){r.l=r.h;r.m=1;}public void LDrr_ll(){r.m=1;}public void LDrr_la(){r.l=r.a;r.m=1;}public void LDrr_ab(){r.a=r.b;r.m=1;}public void LDrr_ac(){r.a=r.c;r.m=1;}public void LDrr_ad(){r.a=r.d;r.m=1;}public void LDrr_ae(){r.a=r.e;r.m=1;}public void LDrr_ah(){r.a=r.h;r.m=1;}public void LDrr_al(){r.a=r.l;r.m=1;}public void LDrr_aa(){r.m=1;}public void LDrHLm_b(){r.b=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_c(){r.c=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_d(){r.d=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_e(){r.e=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_h(){r.h=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_l(){r.l=g.rb((r.h<<8)+r.l);r.m=2;}public void LDrHLm_a(){r.a=g.rb((r.h<<8)+r.l);r.m=2;}public void LDHLmr_b(){g.wb((r.h<<8)+r.l,(byte)r.b);r.m=2;}public void LDHLmr_c(){g.wb((r.h<<8)+r.l,(byte)r.c);r.m=2;}public void LDHLmr_d(){g.wb((r.h<<8)+r.l,(byte)r.d);r.m=2;}public void LDHLmr_e(){g.wb((r.h<<8)+r.l,(byte)r.e);r.m=2;}public void LDHLmr_h(){g.wb((r.h<<8)+r.l,(byte)r.h);r.m=2;}public void LDHLmr_l(){g.wb((r.h<<8)+r.l,(byte)r.l);r.m=2;}public void LDHLmr_a(){g.wb((r.h<<8)+r.l,(byte)r.a);r.m=2;}public void LDrn_b(){r.b=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_c(){r.c=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_d(){r.d=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_e(){r.e=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_h(){r.h=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_l(){r.l=g.rb(r.pc);r.pc++;r.m=2;}public void LDrn_a(){r.a=g.rb(r.pc);r.pc++;r.m=2;}public void LDHLmn(){g.wb((r.h<<8)+r.l,(byte)g.rb(r.pc));r.pc++;r.m=3;}public void LDBCmA(){g.wb((r.b<<8)+r.c,(byte)r.a);r.m=2;}public void LDDEmA(){g.wb((r.d<<8)+r.e,(byte)r.a);r.m=2;}public void LDmmA(){g.wb(g.rw(r.pc),(byte)r.a);r.pc+=2;r.m=4;}public void LDmmSP(){}public void LDABCm(){r.a=g.rb((r.b<<8)+r.c);r.m=2;}public void LDADEm(){r.a=g.rb((r.d<<8)+r.e);r.m=2;}public void LDAmm(){s=g.rw(r.pc);r.a=(s<0x4000)?g._rom[s]:g.rb(s);r.pc+=2;r.m=4;}public void LDBCnn(){r.c=g.rb(r.pc);r.b=g.rb(r.pc+1);r.pc+=2;r.m=3;}public void LDDEnn(){r.e=g.rb(r.pc);r.d=g.rb(r.pc+1);r.pc+=2;r.m=3;}public void LDHLnn(){r.l=g.rb(r.pc);r.h=g.rb(r.pc+1);r.pc+=2;r.m=3;}public void LDSPnn(){r.sp=g.rw(r.pc);r.pc+=2;r.m=3;}public void LDHLmm(){s=g.rw(r.pc);r.pc+=2;r.l=g.rb(s);r.h=g.rb(s+1);r.m=5;}public void LDmmHL(){s=g.rw(r.pc);r.pc+=2;g.ww(s,(r.h<<8)+r.l);r.m=5;}public void LDHLIA(){g.wb((r.h<<8)+r.l,(byte)r.a);r.l=(r.l+1)&0xFF;if(!(r.l>0))r.h=(r.h+1)&0xFF;r.m=2;}public void LDAHLI(){r.a=g.rb((r.h<<8)+r.l);r.l=(r.l+1)&0xFF;if(!(r.l>0))r.h=(r.h+1)&0xFF;r.m=2;}public void LDHLDA(){g.wb((r.h<<8)+r.l,(byte)r.a);r.l=(r.l-1)&0xFF;if(r.l==0xFF)r.h=(r.h-1)&0xFF;r.m=2;}public void LDAHLD(){r.a=g.rb((r.h<<8)+r.l);r.l=(r.l-1)&0xFF;if(r.l==0xFF)r.h=(r.h-1)&0xFF;r.m=2;}public void LDAIOn(){r.a=g.rb(0xFF00+g.rb(r.pc));r.pc++;r.m=3;}public void LDIOnA(){g.wb(0xFF00+g.rb(r.pc),(byte)r.a);r.pc++;r.m=3;}public void LDAIOC(){r.a=g.rb(0xFF00+r.c);r.m=2;}public void LDIOCA(){g.wb(0xFF00+r.c,(byte)r.a);r.m=2;}public void LDHLSPn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;s+=r.sp;r.h=(s>>8)&0xFF;r.l=s&0xFF;r.m=3;}public void SWAPr_b(){t=r.b;r.b=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.b>0)?0:0x80;r.m=1;}public void SWAPr_c(){t=r.c;r.c=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.c>0)?0:0x80;r.m=1;}public void SWAPr_d(){t=r.d;r.d=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.d>0)?0:0x80;r.m=1;}public void SWAPr_e(){t=r.e;r.e=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.e>0)?0:0x80;r.m=1;}public void SWAPr_h(){t=r.h;r.h=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.h>0)?0:0x80;r.m=1;}public void SWAPr_l(){t=r.l;r.l=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.l>0)?0:0x80;r.m=1;}public void SWAPr_a(){t=r.a;r.a=((t&0xF)<<4)|((t&0xF0)>>4);r.f=(r.a>0)?0:0x80;r.m=1;}public void ADDr_b(){u=r.a;r.a+=r.b;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.b^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_c(){u=r.a;r.a+=r.c;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.c^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_d(){u=r.a;r.a+=r.d;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.d^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_e(){u=r.a;r.a+=r.e;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.e^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_h(){u=r.a;r.a+=r.h;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.h^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_l(){u=r.a;r.a+=r.l;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.l^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDr_a(){u=r.a;r.a+=r.a;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.a^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADDHL(){u=r.a;z=g.rb((r.h<<8)+r.l);r.a+=z;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^u^z)&0x10)>0)r.f|=0x20;r.m=2;}public void ADDn(){u=r.a;z=g.rb(r.pc);r.a+=z;r.pc++;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^u^z)&0x10)>0)r.f|=0x20;r.m=2;}public void ADDHLBC(){w=(r.h<<8)+r.l;w+=(r.b<<8)+r.c;if(w>65535)r.f|=0x10;else r.f&=0xEF;r.h=(w>>8)&0xFF;r.l=w&0xFF;r.m=3;}public void ADDHLDE(){w=(r.h<<8)+r.l;w+=(r.d<<8)+r.e;if(w>65535)r.f|=0x10;else r.f&=0xEF;r.h=(w>>8)&0xFF;r.l=w&0xFF;r.m=3;}public void ADDHLHL(){w=(r.h<<8)+r.l;w+=(r.h<<8)+r.l;if(w>65535)r.f|=0x10;else r.f&=0xEF;r.h=(w>>8)&0xFF;r.l=w&0xFF;r.m=3;}public void ADDHLSP(){w=(r.h<<8)+r.l;w+=r.sp;if(w>65535)r.f|=0x10;else r.f&=0xEF;r.h=(w>>8)&0xFF;r.l=w&0xFF;r.m=3;}public void ADDSPn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.sp+=s;r.m=4;}public void ADCr_b(){u=r.a;r.a+=r.b;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.b^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_c(){u=r.a;r.a+=r.c;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.c^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_d(){u=r.a;r.a+=r.d;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.d^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_e(){u=r.a;r.a+=r.e;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.e^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_h(){u=r.a;r.a+=r.h;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.h^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_l(){u=r.a;r.a+=r.l;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.l^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCr_a(){u=r.a;r.a+=r.a;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.a^u)&0x10)>0)r.f|=0x20;r.m=1;}public void ADCHL(){u=r.a;z=g.rb((r.h<<8)+r.l);r.a+=z;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void ADCn(){u=r.a;z=g.rb(r.pc);r.a+=z;r.pc++;r.a+=((r.f&0x10)>0)?1:0;r.f=(r.a>0xFF)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void SUBr_b(){u=r.a;r.a-=r.b;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.b^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_c(){u=r.a;r.a-=r.c;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.c^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_d(){u=r.a;r.a-=r.d;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.d^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_e(){u=r.a;r.a-=r.e;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.e^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_h(){u=r.a;r.a-=r.h;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.h^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_l(){u=r.a;r.a-=r.l;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.l^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBr_a(){u=r.a;r.a-=r.a;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.a^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SUBHL(){u=r.a;z=g.rb((r.h<<8)+r.l);r.a-=z;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void SUBn(){u=r.a;z=g.rb(r.pc);r.a-=z;r.pc++;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void SBCr_b(){u=r.a;r.a-=r.b;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.b^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_c(){u=r.a;r.a-=r.c;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.c^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_d(){u=r.a;r.a-=r.d;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.d^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_e(){u=r.a;r.a-=r.e;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.e^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_h(){u=r.a;r.a-=r.h;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.h^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_l(){u=r.a;r.a-=r.l;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.l^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCr_a(){u=r.a;r.a-=r.a;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^r.a^u)&0x10)>0)r.f|=0x20;r.m=1;}public void SBCHL(){u=r.a;z=g.rb((r.h<<8)+r.l);r.a-=z;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void SBCn(){u=r.a;z=g.rb(r.pc);r.a-=z;r.pc++;r.a-=((r.f&0x10)>0)?1:0;r.f=(r.a<0)?0x50:0x40;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;if(((r.a^z^u)&0x10)>0)r.f|=0x20;r.m=2;}public void CPr_b(){int i=r.a;i-=r.b;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.b^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_c(){int i=r.a;i-=r.c;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.c^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_d(){int i=r.a;i-=r.d;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.d^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_e(){int i=r.a;i-=r.e;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.e^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_h(){int i=r.a;i-=r.h;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.h^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_l(){int i=r.a;i-=r.l;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.l^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPr_a(){int i=r.a;i-=r.a;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^r.a^i)&0x10)>0)r.f|=0x20;r.m=1;}public void CPHL(){int i=r.a;z=g.rb((r.h<<8)+r.l);i-=z;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^i^z)&0x10)>0)r.f|=0x20;r.m=2;}public void CPn(){int i=r.a;z=g.rb(r.pc);i-=z;r.pc++;r.f=(i<0)?0x50:0x40;i&=0xFF;if(!(i>0))r.f|=0x80;if(((r.a^i^z)&0x10)>0)r.f|=0x20;r.m=2;}public void DAA(){u=r.a;if((r.f&0x20)>0||((r.a&15)>9))r.a+=6;r.f&=0xEF;if(((r.f&0x20)>0)||(u>0x99)){r.a+=0x60;r.f|=0x10;}r.m=1;}public void ANDr_b(){r.a&=r.b;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_c(){r.a&=r.c;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_d(){r.a&=r.d;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_e(){r.a&=r.e;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_h(){r.a&=r.h;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_l(){r.a&=r.l;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDr_a(){r.a&=r.a;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ANDHL(){r.a&=g.rb((r.h<<8)+r.l);r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void ANDn(){r.a&=g.rb(r.pc);r.pc++;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void ORr_b(){r.a|=r.b;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_c(){r.a|=r.c;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_d(){r.a|=r.d;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_e(){r.a|=r.e;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_h(){r.a|=r.h;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_l(){r.a|=r.l;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORr_a(){r.a|=r.a;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void ORHL(){r.a|=g.rb((r.h<<8)+r.l);r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void ORn(){r.a|=g.rb(r.pc);r.pc++;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void XORr_b(){r.a^=r.b;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_c(){r.a^=r.c;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_d(){r.a^=r.d;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_e(){r.a^=r.e;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_h(){r.a^=r.h;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_l(){r.a^=r.l;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORr_a(){r.a^=r.a;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void XORHL(){r.a^=g.rb((r.h<<8)+r.l);r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void XORn(){r.a^=g.rb(r.pc);r.pc++;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=2;}public void INCr_b(){r.b++;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.m=1;}public void INCr_c(){r.c++;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.m=1;}public void INCr_d(){r.d++;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.m=1;}public void INCr_e(){r.e++;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.m=1;}public void INCr_h(){r.h++;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.m=1;}public void INCr_l(){r.l++;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.m=1;}public void INCr_a(){r.a++;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void INCHLm(){int i=g.rb((r.h<<8)+r.l)+1;i&=0xFF;g.wb((r.h<<8)+r.l,(byte)i);r.f=(i>0)?0:0x80;r.m=3;}public void DECr_b(){r.b--;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.m=1;}public void DECr_c(){r.c--;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.m=1;}public void DECr_d(){r.d--;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.m=1;}public void DECr_e(){r.e--;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.m=1;}public void DECr_h(){r.h--;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.m=1;}public void DECr_l(){r.l--;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.m=1;}public void DECr_a(){r.a--;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void DECHLm(){int i=g.rb((r.h<<8)+r.l)-1;i&=0xFF;g.wb((r.h<<8)+r.l,(byte)i);r.f=(i>0)?0:0x80;r.m=3;}public void INCBC(){r.c=(r.c+1)&0xFF;if(!(r.c>0))r.b=(r.b+1)&0xFF;r.m=1;}public void INCDE(){r.e=(r.e+1)&0xFF;if(!(r.e>0))r.d=(r.d+1)&0xFF;r.m=1;}public void INCHL(){r.l=(r.l+1)&0xFF;if(!(r.l>0))r.h=(r.h+1)&0xFF;r.m=1;}public void INCSP(){r.sp=(r.sp+1)&65535;r.m=1;}public void DECBC(){r.c=(r.c-1)&0xFF;if(r.c==0xFF)r.b=(r.b-1)&0xFF;r.m=1;}public void DECDE(){r.e=(r.e-1)&0xFF;if(r.e==0xFF)r.d=(r.d-1)&0xFF;r.m=1;}public void DECHL(){r.l=(r.l-1)&0xFF;if(r.l==0xFF)r.h=(r.h-1)&0xFF;r.m=1;}public void DECSP(){r.sp=(r.sp-1)&65535;r.m=1;}public void BIT0b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x01)>0)?0:0x80;r.m=2;}public void BIT0c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x01)>0)?0:0x80;r.m=2;}public void BIT0d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x01)>0)?0:0x80;r.m=2;}public void BIT0e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x01)>0)?0:0x80;r.m=2;}public void BIT0h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x01)>0)?0:0x80;r.m=2;}public void BIT0l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x01)>0)?0:0x80;r.m=2;}public void BIT0a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x01)>0)?0:0x80;r.m=2;}public void BIT0m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x01)>0)?0:0x80;r.m=3;}public void RES0b(){r.b&=0xFE;r.m=2;}public void RES0c(){r.c&=0xFE;r.m=2;}public void RES0d(){r.d&=0xFE;r.m=2;}public void RES0e(){r.e&=0xFE;r.m=2;}public void RES0h(){r.h&=0xFE;r.m=2;}public void RES0l(){r.l&=0xFE;r.m=2;}public void RES0a(){r.a&=0xFE;r.m=2;}public void RES0m(){int i=g.rb((r.h<<8)+r.l);i&=0xFE;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET0b(){r.b|=0x01;r.m=2;}public void SET0c(){r.b|=0x01;r.m=2;}public void SET0d(){r.b|=0x01;r.m=2;}public void SET0e(){r.b|=0x01;r.m=2;}public void SET0h(){r.b|=0x01;r.m=2;}public void SET0l(){r.b|=0x01;r.m=2;}public void SET0a(){r.b|=0x01;r.m=2;}public void SET0m(){int i=g.rb((r.h<<8)+r.l);i|=0x01;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT1b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x02)>0)?0:0x80;r.m=2;}public void BIT1c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x02)>0)?0:0x80;r.m=2;}public void BIT1d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x02)>0)?0:0x80;r.m=2;}public void BIT1e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x02)>0)?0:0x80;r.m=2;}public void BIT1h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x02)>0)?0:0x80;r.m=2;}public void BIT1l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x02)>0)?0:0x80;r.m=2;}public void BIT1a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x02)>0)?0:0x80;r.m=2;}public void BIT1m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x02)>0)?0:0x80;r.m=3;}public void RES1b(){r.b&=0xFD;r.m=2;}public void RES1c(){r.c&=0xFD;r.m=2;}public void RES1d(){r.d&=0xFD;r.m=2;}public void RES1e(){r.e&=0xFD;r.m=2;}public void RES1h(){r.h&=0xFD;r.m=2;}public void RES1l(){r.l&=0xFD;r.m=2;}public void RES1a(){r.a&=0xFD;r.m=2;}public void RES1m(){int i=g.rb((r.h<<8)+r.l);i&=0xFD;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET1b(){r.b|=0x02;r.m=2;}public void SET1c(){r.b|=0x02;r.m=2;}public void SET1d(){r.b|=0x02;r.m=2;}public void SET1e(){r.b|=0x02;r.m=2;}public void SET1h(){r.b|=0x02;r.m=2;}public void SET1l(){r.b|=0x02;r.m=2;}public void SET1a(){r.b|=0x02;r.m=2;}public void SET1m(){int i=g.rb((r.h<<8)+r.l);i|=0x02;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT2b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x04)>0)?0:0x80;r.m=2;}public void BIT2c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x04)>0)?0:0x80;r.m=2;}public void BIT2d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x04)>0)?0:0x80;r.m=2;}public void BIT2e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x04)>0)?0:0x80;r.m=2;}public void BIT2h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x04)>0)?0:0x80;r.m=2;}public void BIT2l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x04)>0)?0:0x80;r.m=2;}public void BIT2a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x04)>0)?0:0x80;r.m=2;}public void BIT2m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x04)>0)?0:0x80;r.m=3;}public void RES2b(){r.b&=0xFB;r.m=2;}public void RES2c(){r.c&=0xFB;r.m=2;}public void RES2d(){r.d&=0xFB;r.m=2;}public void RES2e(){r.e&=0xFB;r.m=2;}public void RES2h(){r.h&=0xFB;r.m=2;}public void RES2l(){r.l&=0xFB;r.m=2;}public void RES2a(){r.a&=0xFB;r.m=2;}public void RES2m(){int i=g.rb((r.h<<8)+r.l);i&=0xFB;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET2b(){r.b|=0x04;r.m=2;}public void SET2c(){r.b|=0x04;r.m=2;}public void SET2d(){r.b|=0x04;r.m=2;}public void SET2e(){r.b|=0x04;r.m=2;}public void SET2h(){r.b|=0x04;r.m=2;}public void SET2l(){r.b|=0x04;r.m=2;}public void SET2a(){r.b|=0x04;r.m=2;}public void SET2m(){int i=g.rb((r.h<<8)+r.l);i|=0x04;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT3b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x08)>0)?0:0x80;r.m=2;}public void BIT3c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x08)>0)?0:0x80;r.m=2;}public void BIT3d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x08)>0)?0:0x80;r.m=2;}public void BIT3e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x08)>0)?0:0x80;r.m=2;}public void BIT3h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x08)>0)?0:0x80;r.m=2;}public void BIT3l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x08)>0)?0:0x80;r.m=2;}public void BIT3a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x08)>0)?0:0x80;r.m=2;}public void BIT3m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x08)>0)?0:0x80;r.m=3;}public void RES3b(){r.b&=0xF7;r.m=2;}public void RES3c(){r.c&=0xF7;r.m=2;}public void RES3d(){r.d&=0xF7;r.m=2;}public void RES3e(){r.e&=0xF7;r.m=2;}public void RES3h(){r.h&=0xF7;r.m=2;}public void RES3l(){r.l&=0xF7;r.m=2;}public void RES3a(){r.a&=0xF7;r.m=2;}public void RES3m(){int i=g.rb((r.h<<8)+r.l);i&=0xF7;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET3b(){r.b|=0x08;r.m=2;}public void SET3c(){r.b|=0x08;r.m=2;}public void SET3d(){r.b|=0x08;r.m=2;}public void SET3e(){r.b|=0x08;r.m=2;}public void SET3h(){r.b|=0x08;r.m=2;}public void SET3l(){r.b|=0x08;r.m=2;}public void SET3a(){r.b|=0x08;r.m=2;}public void SET3m(){int i=g.rb((r.h<<8)+r.l);i|=0x08;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT4b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x10)>0)?0:0x80;r.m=2;}public void BIT4c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x10)>0)?0:0x80;r.m=2;}public void BIT4d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x10)>0)?0:0x80;r.m=2;}public void BIT4e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x10)>0)?0:0x80;r.m=2;}public void BIT4h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x10)>0)?0:0x80;r.m=2;}public void BIT4l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x10)>0)?0:0x80;r.m=2;}public void BIT4a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x10)>0)?0:0x80;r.m=2;}public void BIT4m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x10)>0)?0:0x80;r.m=3;}public void RES4b(){r.b&=0xEF;r.m=2;}public void RES4c(){r.c&=0xEF;r.m=2;}public void RES4d(){r.d&=0xEF;r.m=2;}public void RES4e(){r.e&=0xEF;r.m=2;}public void RES4h(){r.h&=0xEF;r.m=2;}public void RES4l(){r.l&=0xEF;r.m=2;}public void RES4a(){r.a&=0xEF;r.m=2;}public void RES4m(){int i=g.rb((r.h<<8)+r.l);i&=0xEF;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET4b(){r.b|=0x10;r.m=2;}public void SET4c(){r.b|=0x10;r.m=2;}public void SET4d(){r.b|=0x10;r.m=2;}public void SET4e(){r.b|=0x10;r.m=2;}public void SET4h(){r.b|=0x10;r.m=2;}public void SET4l(){r.b|=0x10;r.m=2;}public void SET4a(){r.b|=0x10;r.m=2;}public void SET4m(){int i=g.rb((r.h<<8)+r.l);i|=0x10;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT5b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x20)>0)?0:0x80;r.m=2;}public void BIT5c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x20)>0)?0:0x80;r.m=2;}public void BIT5d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x20)>0)?0:0x80;r.m=2;}public void BIT5e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x20)>0)?0:0x80;r.m=2;}public void BIT5h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x20)>0)?0:0x80;r.m=2;}public void BIT5l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x20)>0)?0:0x80;r.m=2;}public void BIT5a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x20)>0)?0:0x80;r.m=2;}public void BIT5m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x20)>0)?0:0x80;r.m=3;}public void RES5b(){r.b&=0xDF;r.m=2;}public void RES5c(){r.c&=0xDF;r.m=2;}public void RES5d(){r.d&=0xDF;r.m=2;}public void RES5e(){r.e&=0xDF;r.m=2;}public void RES5h(){r.h&=0xDF;r.m=2;}public void RES5l(){r.l&=0xDF;r.m=2;}public void RES5a(){r.a&=0xDF;r.m=2;}public void RES5m(){int i=g.rb((r.h<<8)+r.l);i&=0xDF;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET5b(){r.b|=0x20;r.m=2;}public void SET5c(){r.b|=0x20;r.m=2;}public void SET5d(){r.b|=0x20;r.m=2;}public void SET5e(){r.b|=0x20;r.m=2;}public void SET5h(){r.b|=0x20;r.m=2;}public void SET5l(){r.b|=0x20;r.m=2;}public void SET5a(){r.b|=0x20;r.m=2;}public void SET5m(){int i=g.rb((r.h<<8)+r.l);i|=0x20;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT6b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x40)>0)?0:0x80;r.m=2;}public void BIT6c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x40)>0)?0:0x80;r.m=2;}public void BIT6d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x40)>0)?0:0x80;r.m=2;}public void BIT6e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x40)>0)?0:0x80;r.m=2;}public void BIT6h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x40)>0)?0:0x80;r.m=2;}public void BIT6l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x40)>0)?0:0x80;r.m=2;}public void BIT6a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x40)>0)?0:0x80;r.m=2;}public void BIT6m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x40)>0)?0:0x80;r.m=3;}public void RES6b(){r.b&=0xBF;r.m=2;}public void RES6c(){r.c&=0xBF;r.m=2;}public void RES6d(){r.d&=0xBF;r.m=2;}public void RES6e(){r.e&=0xBF;r.m=2;}public void RES6h(){r.h&=0xBF;r.m=2;}public void RES6l(){r.l&=0xBF;r.m=2;}public void RES6a(){r.a&=0xBF;r.m=2;}public void RES6m(){int i=g.rb((r.h<<8)+r.l);i&=0xBF;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET6b(){r.b|=0x40;r.m=2;}public void SET6c(){r.b|=0x40;r.m=2;}public void SET6d(){r.b|=0x40;r.m=2;}public void SET6e(){r.b|=0x40;r.m=2;}public void SET6h(){r.b|=0x40;r.m=2;}public void SET6l(){r.b|=0x40;r.m=2;}public void SET6a(){r.b|=0x40;r.m=2;}public void SET6m(){int i=g.rb((r.h<<8)+r.l);i|=0x40;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void BIT7b(){r.f&=0x1F;r.f|=0x20;r.f=((r.b&0x80)>0)?0:0x80;r.m=2;}public void BIT7c(){r.f&=0x1F;r.f|=0x20;r.f=((r.c&0x80)>0)?0:0x80;r.m=2;}public void BIT7d(){r.f&=0x1F;r.f|=0x20;r.f=((r.d&0x80)>0)?0:0x80;r.m=2;}public void BIT7e(){r.f&=0x1F;r.f|=0x20;r.f=((r.e&0x80)>0)?0:0x80;r.m=2;}public void BIT7h(){r.f&=0x1F;r.f|=0x20;r.f=((r.h&0x80)>0)?0:0x80;r.m=2;}public void BIT7l(){r.f&=0x1F;r.f|=0x20;r.f=((r.l&0x80)>0)?0:0x80;r.m=2;}public void BIT7a(){r.f&=0x1F;r.f|=0x20;r.f=((r.a&0x80)>0)?0:0x80;r.m=2;}public void BIT7m(){r.f&=0x1F;r.f|=0x20;r.f=((g.rb((r.h<<8)+r.l)&0x80)>0)?0:0x80;r.m=3;}public void RES7b(){r.b&=0x7F;r.m=2;}public void RES7c(){r.c&=0x7F;r.m=2;}public void RES7d(){r.d&=0x7F;r.m=2;}public void RES7e(){r.e&=0x7F;r.m=2;}public void RES7h(){r.h&=0x7F;r.m=2;}public void RES7l(){r.l&=0x7F;r.m=2;}public void RES7a(){r.a&=0x7F;r.m=2;}public void RES7m(){int i=g.rb((r.h<<8)+r.l);i&=0x7F;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void SET7b(){r.b|=0x80;r.m=2;}public void SET7c(){r.b|=0x80;r.m=2;}public void SET7d(){r.b|=0x80;r.m=2;}public void SET7e(){r.b|=0x80;r.m=2;}public void SET7h(){r.b|=0x80;r.m=2;}public void SET7l(){r.b|=0x80;r.m=2;}public void SET7a(){r.b|=0x80;r.m=2;}public void SET7m(){int i=g.rb((r.h<<8)+r.l);i|=0x80;g.wb((r.h<<8)+r.l,(byte)i);r.m=4;}public void RLA(){p=((r.f&0x10)>0)?1:0;q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)+p;r.a&=0xFF;r.f=(r.f&0xEF)+q;r.m=1;}public void RLCA(){p=((r.a&0x80)>0)?1:0;q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)+p;r.a&=0xFF;r.f=(r.f&0xEF)+q;r.m=1;}public void RRA(){p=((r.f&0x10)>0)?0x80:0;q=((r.a&1)>0)?0x10:0;r.a=(r.a>>1)+p;r.a&=0xFF;r.f=(r.f&0xEF)+q;r.m=1;}public void RRCA(){p=((r.a&1)>0)?0x80:0;q=((r.a&1)>0)?0x10:0;r.a=(r.a>>1)+p;r.a&=0xFF;r.f=(r.f&0xEF)+q;r.m=1;}public void RLr_b(){p=((r.f&0x10)>0)?1:0;q=((r.b&0x80)>0)?0x10:0;r.b=(r.b<<1)+p;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_c(){p=((r.f&0x10)>0)?1:0;q=((r.c&0x80)>0)?0x10:0;r.c=(r.c<<1)+p;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_d(){p=((r.f&0x10)>0)?1:0;q=((r.d&0x80)>0)?0x10:0;r.d=(r.d<<1)+p;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_e(){p=((r.f&0x10)>0)?1:0;q=((r.e&0x80)>0)?0x10:0;r.e=(r.e<<1)+p;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_h(){p=((r.f&0x10)>0)?1:0;q=((r.h&0x80)>0)?0x10:0;r.h=(r.h<<1)+p;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_l(){p=((r.f&0x10)>0)?1:0;q=((r.l&0x80)>0)?0x10:0;r.l=(r.l<<1)+p;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLr_a(){p=((r.f&0x10)>0)?1:0;q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)+p;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLHL(){int i=g.rb((r.h<<8)+r.l);p=((r.f&0x10)>0)?1:0;q=((i&0x80)>0)?0x10:0;i=(i<<1)+p;i&=0xFF;r.f=(i>0)?0:0x80;g.wb((r.h<<8)+r.l,(byte)i);r.f=(r.f&0xEF)+q;r.m=4;}public void RLCr_b(){p=((r.b&0x80)>0)?1:0;q=((r.b&0x80)>0)?0x10:0;r.b=(r.b<<1)+p;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_c(){p=((r.c&0x80)>0)?1:0;q=((r.c&0x80)>0)?0x10:0;r.c=(r.c<<1)+p;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_d(){p=((r.d&0x80)>0)?1:0;q=((r.d&0x80)>0)?0x10:0;r.d=(r.d<<1)+p;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_e(){p=((r.e&0x80)>0)?1:0;q=((r.e&0x80)>0)?0x10:0;r.e=(r.e<<1)+p;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_h(){p=((r.h&0x80)>0)?1:0;q=((r.h&0x80)>0)?0x10:0;r.h=(r.h<<1)+p;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_l(){p=((r.l&0x80)>0)?1:0;q=((r.l&0x80)>0)?0x10:0;r.l=(r.l<<1)+p;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCr_a(){p=((r.a&0x80)>0)?1:0;q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)+p;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RLCHL(){int i=g.rb((r.h<<8)+r.l);p=((i&0x80)>0)?1:0;q=((i&0x80)>0)?0x10:0;i=(i<<1)+p;i&=0xFF;r.f=(i>0)?0:0x80;g.wb((r.h<<8)+r.l,(byte)i);r.f=(r.f&0xEF)+q;r.m=4;}public void RRr_b(){p=((r.f&0x10)>0)?0x80:0;q=((r.b&1)>0)?0x10:0;r.b=(r.b>>1)+p;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_c(){p=((r.f&0x10)>0)?0x80:0;q=((r.c&1)>0)?0x10:0;r.c=(r.c>>1)+p;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_d(){p=((r.f&0x10)>0)?0x80:0;q=((r.d&1)>0)?0x10:0;r.d=(r.d>>1)+p;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_e(){p=((r.f&0x10)>0)?0x80:0;q=((r.e&1)>0)?0x10:0;r.e=(r.e>>1)+p;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_h(){p=((r.f&0x10)>0)?0x80:0;q=((r.h&1)>0)?0x10:0;r.h=(r.h>>1)+p;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_l(){p=((r.f&0x10)>0)?0x80:0;q=((r.l&1)>0)?0x10:0;r.l=(r.l>>1)+p;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRr_a(){p=((r.f&0x10)>0)?0x80:0;q=((r.a&1)>0)?0x10:0;r.a=(r.a>>1)+p;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRHL(){int i=g.rb((r.h<<8)+r.l);p=((r.f&0x10)>0)?0x80:0;q=((i&1)>0)?0x10:0;i=(i>>1)+p;i&=0xFF;g.wb((r.h<<8)+r.l,(byte)i);r.f=(i>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=4;}public void RRCr_b(){p=((r.b&1)>0)?0x80:0;q=((r.b&1)>0)?0x10:0;r.b=(r.b>>1)+p;r.b&=0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_c(){p=((r.c&1)>0)?0x80:0;q=((r.c&1)>0)?0x10:0;r.c=(r.c>>1)+p;r.c&=0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_d(){p=((r.d&1)>0)?0x80:0;q=((r.d&1)>0)?0x10:0;r.d=(r.d>>1)+p;r.d&=0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_e(){p=((r.e&1)>0)?0x80:0;q=((r.e&1)>0)?0x10:0;r.e=(r.e>>1)+p;r.e&=0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_h(){p=((r.h&1)>0)?0x80:0;q=((r.h&1)>0)?0x10:0;r.h=(r.h>>1)+p;r.h&=0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_l(){p=((r.l&1)>0)?0x80:0;q=((r.l&1)>0)?0x10:0;r.l=(r.l>>1)+p;r.l&=0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCr_a(){p=((r.a&1)>0)?0x80:0;q=((r.a&1)>0)?0x10:0;r.a=(r.a>>1)+p;r.a&=0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void RRCHL(){int i=g.rb((r.h<<8)+r.l);p=((i&1)>0)?0x80:0;q=((i&1)>0)?0x10:0;i=(i>>1)+p;i&=0xFF;g.wb((r.h<<8)+r.l,(byte)i);r.f=(i>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=4;}public void SLAr_b(){q=((r.b&0x80)>0)?0x10:0;r.b=(r.b<<1)&0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_c(){q=((r.c&0x80)>0)?0x10:0;r.c=(r.c<<1)&0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_d(){q=((r.d&0x80)>0)?0x10:0;r.d=(r.d<<1)&0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_e(){q=((r.e&0x80)>0)?0x10:0;r.e=(r.e<<1)&0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_h(){q=((r.h&0x80)>0)?0x10:0;r.h=(r.h<<1)&0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_l(){q=((r.l&0x80)>0)?0x10:0;r.l=(r.l<<1)&0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLAr_a(){q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)&0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_b(){q=((r.b&0x80)>0)?0x10:0;r.b=(r.b<<1)&0xFF+1;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_c(){q=((r.c&0x80)>0)?0x10:0;r.c=(r.c<<1)&0xFF+1;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_d(){q=((r.d&0x80)>0)?0x10:0;r.d=(r.d<<1)&0xFF+1;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_e(){q=((r.e&0x80)>0)?0x10:0;r.e=(r.e<<1)&0xFF+1;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_h(){q=((r.h&0x80)>0)?0x10:0;r.h=(r.h<<1)&0xFF+1;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_l(){q=((r.l&0x80)>0)?0x10:0;r.l=(r.l<<1)&0xFF+1;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SLLr_a(){q=((r.a&0x80)>0)?0x10:0;r.a=(r.a<<1)&0xFF+1;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_b(){p=r.b&0x80;q=((r.b&1)>0)?0x10:0;r.b=((r.b>>1)+p)&0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_c(){p=r.c&0x80;q=((r.c&1)>0)?0x10:0;r.c=((r.c>>1)+p)&0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_d(){p=r.d&0x80;q=((r.d&1)>0)?0x10:0;r.d=((r.d>>1)+p)&0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_e(){p=r.e&0x80;q=((r.e&1)>0)?0x10:0;r.e=((r.e>>1)+p)&0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_h(){p=r.h&0x80;q=((r.h&1)>0)?0x10:0;r.h=((r.h>>1)+p)&0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_l(){p=r.l&0x80;q=((r.l&1)>0)?0x10:0;r.l=((r.l>>1)+p)&0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRAr_a(){p=r.a&0x80;q=((r.a&1)>0)?0x10:0;r.a=((r.a>>1)+p)&0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_b(){q=((r.b&1)>0)?0x10:0;r.b=(r.b>>1)&0xFF;r.f=(r.b>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_c(){q=((r.c&1)>0)?0x10:0;r.c=(r.c>>1)&0xFF;r.f=(r.c>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_d(){q=((r.d&1)>0)?0x10:0;r.d=(r.d>>1)&0xFF;r.f=(r.d>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_e(){q=((r.e&1)>0)?0x10:0;r.e=(r.e>>1)&0xFF;r.f=(r.e>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_h(){q=((r.h&1)>0)?0x10:0;r.h=(r.h>>1)&0xFF;r.f=(r.h>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_l(){q=((r.l&1)>0)?0x10:0;r.l=(r.l>>1)&0xFF;r.f=(r.l>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void SRLr_a(){q=((r.a&1)>0)?0x10:0;r.a=(r.a>>1)&0xFF;r.f=(r.a>0)?0:0x80;r.f=(r.f&0xEF)+q;r.m=2;}public void CPL(){r.a^=0xFF;r.f=(r.a>0)?0:0x80;r.m=1;}public void NEG(){r.a=0-r.a;r.f=(r.a<0)?0x10:0;r.a&=0xFF;if(!(r.a>0))r.f|=0x80;r.m=2;}public void CCF(){p=((r.f&0x10)>0)?0:0x10;r.f=(r.f&0xEF)+p;r.m=1;}public void SCF(){r.f|=0x10;r.m=1;}public void PUSHBC(){r.sp--;g.wb(r.sp,(byte)r.b);r.sp--;g.wb(r.sp,(byte)r.c);r.m=3;}public void PUSHDE(){r.sp--;g.wb(r.sp,(byte)r.d);r.sp--;g.wb(r.sp,(byte)r.e);r.m=3;}public void PUSHHL(){r.sp--;g.wb(r.sp,(byte)r.h);r.sp--;g.wb(r.sp,(byte)r.l);r.m=3;}public void PUSHAF(){r.sp--;g.wb(r.sp,(byte)r.a);r.sp--;g.wb(r.sp,(byte)r.f);r.m=3;}public void POPBC(){r.c=g.rb(r.sp);r.sp++;r.b=g.rb(r.sp);r.sp++;r.m=3;}public void POPDE(){r.e=g.rb(r.sp);r.sp++;r.d=g.rb(r.sp);r.sp++;r.m=3;}public void POPHL(){r.l=g.rb(r.sp);r.sp++;r.h=g.rb(r.sp);r.sp++;r.m=3;}public void POPAF(){r.f=g.rb(r.sp);r.sp++;r.a=g.rb(r.sp);r.sp++;r.m=3;}public void JPnn(){r.pc=g.rw(r.pc);r.m=3;}public void JPHL(){r.pc=(r.h<<8)+r.l;r.m=1;}public void JPNZnn(){r.m=3;if((r.f&0x80)==0x00){r.pc=g.rw(r.pc);r.m++;}else r.pc+=2;}public void JPZnn(){r.m=3;if((r.f&0x80)==0x80){r.pc=g.rw(r.pc);r.m++;}else r.pc+=2;}public void JPNCnn(){r.m=3;if((r.f&0x10)==0x00){r.pc=g.rw(r.pc);r.m++;}else r.pc+=2;}public void JPCnn(){r.m=3;if((r.f&0x10)==0x10){r.pc=g.rw(r.pc);r.m++;}else r.pc+=2;}public void JRn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;r.pc+=s;r.m++;}public void JRNZn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;if((r.f&0x80)==0x00){r.pc+=s;r.m++;}}public void JRZn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;if((r.f&0x80)==0x80){r.pc+=s;r.m++;}}public void JRNCn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;if((r.f&0x10)==0x00){r.pc+=s;r.m++;}}public void JRCn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;if((r.f&0x10)==0x10){r.pc+=s;r.m++;}}public void DJNZn(){s=g.rb(r.pc);if(s>127)s=-((~s+1)&0xFF);r.pc++;r.m=2;r.b--;if(r.b>0){r.pc+=s;r.m++;}}public void CALLnn(){r.sp-=2;g.ww(r.sp,r.pc+2);r.pc=g.rw(r.pc);r.m=5;}public void CALLNZnn(){r.m=3;if((r.f&0x80)==0x00){r.sp-=2;g.ww(r.sp,r.pc+2);r.pc=g.rw(r.pc);r.m+=2;}else r.pc+=2;}public void CALLZnn(){r.m=3;if((r.f&0x80)==0x80){r.sp-=2;g.ww(r.sp,r.pc+2);r.pc=g.rw(r.pc);r.m+=2;}else r.pc+=2;}public void CALLNCnn(){r.m=3;if((r.f&0x10)==0x00){r.sp-=2;g.ww(r.sp,r.pc+2);r.pc=g.rw(r.pc);r.m+=2;}else r.pc+=2;}public void CALLCnn(){r.m=3;if((r.f&0x10)==0x10){r.sp-=2;g.ww(r.sp,r.pc+2);r.pc=g.rw(r.pc);r.m+=2;}else r.pc+=2;}public void RET(){r.pc=g.rw(r.sp);r.sp+=2;r.m=3;}public void RETI(){r.ime=1;rrs();r.pc=g.rw(r.sp);r.sp+=2;r.m=3;}public void RETNZ(){r.m=1;if((r.f&0x80)==0x00){r.pc=g.rw(r.sp);r.sp+=2;r.m+=2;}}public void RETZ(){r.m=1;if((r.f&0x80)==0x80){r.pc=g.rw(r.sp);r.sp+=2;r.m+=2;}}public void RETNC(){r.m=1;if((r.f&0x10)==0x00){r.pc=g.rw(r.sp);r.sp+=2;r.m+=2;}}public void RETC(){r.m=1;if((r.f&0x10)==0x10){r.pc=g.rw(r.sp);r.sp+=2;r.m+=2;}}public void RST00(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x00;r.m=3;}public void RST08(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x08;r.m=3;}public void RST10(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x10;r.m=3;}public void RST18(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x18;r.m=3;}public void RST20(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x20;r.m=3;}public void RST28(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x28;r.m=3;}public void RST30(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x30;r.m=3;}public void RST38(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x38;r.m=3;}public void RST40(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x40;r.m=3;}public void RST48(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x48;r.m=3;}public void RST50(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x50;r.m=3;}public void RST58(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x58;r.m=3;}public void RST60(){rsv();r.sp-=2;g.ww(r.sp,r.pc);r.pc=0x60;r.m=3;}public void NOP(){r.m=1;}public void HALT(){_halt=1;r.m=1;}public void DI(){r.ime=0;r.m=1;}public void EI(){r.ime=1;r.m=1;}public void rsv(){rv.a=r.a;rv.b=r.b;rv.c=r.c;rv.d=r.d;rv.e=r.e;rv.f=r.f;rv.h=r.h;rv.l=r.l;}public void rrs(){r.a=rv.a;r.b=rv.b;r.c=rv.c;r.d=rv.d;r.e=rv.e;r.f=rv.f;r.h=rv.h;r.l=rv.l;}public void MAPcb(){int i=g.rb(r.pc);r.pc++;r.pc&=65535;if(_cbmap[i]!=null)_cbmap[i]();}public void XX(){_stop=1;}}