📄 pgbcpu.java
字号:
bit(6, DE.getH());
cv = 8;
break;
case 0x73: // BIT 6,E
bit(6, DE.getL());
cv = 8;
break;
case 0x74: // BIT 6,H
bit(6, HL.getH());
cv = 8;
break;
case 0x75: // BIT 6,L
bit(6, HL.getL());
cv = 8;
break;
case 0x76: // BIT 6,(HL)
bit(6, HL.getI(mem));
cv = 16;
break;
case 0x77: // BIT 6,A
bit(6, AF.getH());
cv = 8;
break;
case 0x78: // BIT 7,B
bit(7, BC.getH());
cv = 8;
break;
case 0x79: // BIT 7,C
bit(7, BC.getL());
cv = 8;
break;
case 0x7A: // BIT 7,D
bit(7, DE.getH());
cv = 8;
break;
case 0x7B: // BIT 7,E
bit(7, DE.getL());
cv = 8;
break;
case 0x7C: // BIT 7,H
bit(7, HL.getH());
cv = 8;
break;
case 0x7D: // BIT 7,L
bit(7, HL.getL());
cv = 8;
break;
case 0x7E: // BIT 7,(HL)
bit(7, HL.getI(mem));
cv = 16;
break;
case 0x7F: // BIT 7,A
bit(7, AF.getH());
cv = 8;
break;
case 0x80: // RES 0,B
resH(0, BC);
cv = 8;
break;
case 0x81: // RES 0,C
resL(0, BC);
cv = 8;
break;
case 0x82: // RES 0,D
resH(0, DE);
cv = 8;
break;
case 0x83: // RES 0,E
resL(0, DE);
cv = 8;
break;
case 0x84: // RES 0,H
resH(0, HL);
cv = 8;
break;
case 0x85: // RES 0,L
resL(0, HL);
cv = 8;
break;
case 0x86: // RES 0,(HL)
resI(0, HL.getR());
cv = 16;
break;
case 0x87: // RES 0,A
resH(0, AF);
cv = 8;
break;
case 0x88: // RES 1,B
resH(1, BC);
cv = 8;
break;
case 0x89: // RES 1,C
resL(1, BC);
cv = 8;
break;
case 0x8A: // RES 1,D
resH(1, DE);
cv = 8;
break;
case 0x8B: // RES 1,E
resL(1, DE);
cv = 8;
break;
case 0x8C: // RES 1,H
resH(1, HL);
cv = 8;
break;
case 0x8D: // RES 1,L
resL(1, HL);
cv = 8;
break;
case 0x8E: // RES 1,(HL)
resI(1, HL.getR());
cv = 16;
break;
case 0x8F: // RES 1,A
resH(1, AF);
cv = 8;
break;
case 0x90: // RES 2,B
resH(2, BC);
cv = 8;
break;
case 0x91: // RES 2,C
resL(2, BC);
cv = 8;
break;
case 0x92: // RES 2,D
resH(2, DE);
cv = 8;
break;
case 0x93: // RES 2,E
resL(2, DE);
cv = 8;
break;
case 0x94: // RES 2,H
resH(2, HL);
cv = 8;
break;
case 0x95: // RES 2,L
resL(2, HL);
cv = 8;
break;
case 0x96: // RES 2,(HL)
resI(2, HL.getR());
cv = 16;
break;
case 0x97: // RES 2,A
resH(2, AF);
cv = 8;
break;
case 0x98: // RES 3,B
resH(3, BC);
cv = 8;
break;
case 0x99: // RES 3,C
resL(3, BC);
cv = 8;
break;
case 0x9A: // RES 3,D
resH(3, DE);
cv = 8;
break;
case 0x9B: // RES 3,E
resL(3, DE);
cv = 8;
break;
case 0x9C: // RES 3,H
resH(3, HL);
cv = 8;
break;
case 0x9D: // RES 3,L
resL(3, HL);
cv = 8;
break;
case 0x9E: // RES 3,(HL)
resI(3, HL.getR());
cv = 16;
break;
case 0x9F: // RES 3,A
resH(3, AF);
cv = 8;
break;
case 0xA0: // RES 4,B
resH(4, BC);
cv = 8;
break;
case 0xA1: // RES 4,C
resL(4, BC);
cv = 8;
break;
case 0xA2: // RES 4,D
resH(4, DE);
cv = 8;
break;
case 0xA3: // RES 4,E
resL(4, DE);
cv = 8;
break;
case 0xA4: // RES 4,H
resH(4, HL);
cv = 8;
break;
case 0xA5: // RES 4,L
resL(4, HL);
cv = 8;
break;
case 0xA6: // RES 4,(HL)
resI(4, HL.getR());
cv = 16;
break;
case 0xA7: // RES 4,A
resH(4, AF);
cv = 8;
break;
case 0xA8: // RES 5,B
resH(5, BC);
cv = 8;
break;
case 0xA9: // RES 5,C
resL(5, BC);
cv = 8;
break;
case 0xAA: // RES 5,D
resH(5, DE);
cv = 8;
break;
case 0xAB: // RES 5,E
resL(5, DE);
cv = 8;
break;
case 0xAC: // RES 5,H
resH(5, HL);
cv = 8;
break;
case 0xAD: // RES 5,L
resL(5, HL);
cv = 8;
break;
case 0xAE: // RES 5,(HL)
resI(5, HL.getR());
cv = 16;
break;
case 0xAF: // RES 5,A
resH(5, AF);
cv = 8;
break;
case 0xB0: // RES 6,B
resH(6, BC);
cv = 8;
break;
case 0xB1: // RES 6,C
resL(6, BC);
cv = 8;
break;
case 0xB2: // RES 6,D
resH(6, DE);
cv = 8;
break;
case 0xB3: // RES 6,E
resL(6, DE);
cv = 8;
break;
case 0xB4: // RES 6,H
resH(6, HL);
cv = 8;
break;
case 0xB5: // RES 6,L
resL(6, HL);
cv = 8;
break;
case 0xB6: // RES 6,(HL)
resI(6, HL.getR());
cv = 16;
break;
case 0xB7: // RES 6,A
resH(6, AF);
cv = 8;
break;
case 0xB8: // RES 7,B
resH(7, BC);
cv = 8;
break;
case 0xB9: // RES 7,C
resL(7, BC);
cv = 8;
break;
case 0xBA: // RES 7,D
resH(7, DE);
cv = 8;
break;
case 0xBB: // RES 7,E
resL(7, DE);
cv = 8;
break;
case 0xBC: // RES 7,H
resH(7, HL);
cv = 8;
break;
case 0xBD: // RES 7,L
resL(7, HL);
cv = 8;
break;
case 0xBE: // RES 7,(HL)
resI(7, HL.getR());
cv = 16;
break;
case 0xBF: // RES 7,A
resH(7, AF);
cv = 8;
break;
case 0xC0: // SET 0,B
setH(0, BC);
cv = 8;
break;
case 0xC1: // SET 0,C
setL(0, BC);
cv = 8;
break;
case 0xC2: // SET 0,D
setH(0, DE);
cv = 8;
break;
case 0xC3: // SET 0,E
setL(0, DE);
cv = 8;
break;
case 0xC4: // SET 0,H
setH(0, HL);
cv = 8;
break;
case 0xC5: // SET 0,L
setL(0, HL);
cv = 8;
break;
case 0xC6: // SET 0,(HL)
setI(0, HL.getR());
cv = 16;
break;
case 0xC7: // SET 0,A
setH(0, AF);
cv = 8;
break;
case 0xC8: // SET 1,B
setH(1, BC);
cv = 8;
break;
case 0xC9: // SET 1,C
setL(1, BC);
cv = 8;
break;
case 0xCA: // SET 1,D
setH(1, DE);
cv = 8;
break;
case 0xCB: // SET 1,E
setL(1, DE);
cv = 8;
break;
case 0xCC: // SET 1,H
setH(1, HL);
cv = 8;
break;
case 0xCD: // SET 1,L
setL(1, HL);
cv = 8;
break;
case 0xCE: // SET 1,(HL)
setI(1, HL.getR());
cv = 8;
break;
case 0xCF: // SET 1,A
setH(1, AF);
cv = 8;
break;
case 0xD0: // SET 2,B
setH(2, BC);
cv = 8;
break;
case 0xD1: // SET 2,C
setL(2, BC);
cv = 8;
break;
case 0xD2: // SET 2,D
setH(2, DE);
cv = 8;
break;
case 0xD3: // SET 2,E
setL(2, DE);
cv = 8;
break;
case 0xD4: // SET 2,H
setH(2, HL);
cv = 8;
break;
case 0xD5: // SET 2,L
setL(2, HL);
cv = 8;
break;
case 0xD6: // SET 2,(HL)
setI(2, HL.getR());
cv = 16;
break;
case 0xD7: // SET 2,A
setH(2, AF);
cv = 8;
break;
case 0xD8: // SET 3,B
setH(3, BC);
cv = 8;
break;
case 0xD9: // SET 3,C
setL(3, BC);
cv = 8;
break;
case 0xDA: // SET 3,D
setH(3, DE);
cv = 8;
break;
case 0xDB: // SET 3,E
setL(3, DE);
cv = 8;
break;
case 0xDC: // SET 3,H
setH(3, HL);
cv = 8;
break;
case 0xDD: // SET 3,L
setL(3, HL);
cv = 8;
break;
case 0xDE: // SET 3,(HL)
setI(3, HL.getR());
cv = 16;
break;
case 0xDF: // SET 3,A
setH(3, AF);
cv = 8;
break;
case 0xE0: // SET 4,B
setH(4, BC);
cv = 8;
break;
case 0xE1: // SET 4,C
setL(4, BC);
cv = 8;
break;
case 0xE2: // SET 4,D
setH(4, DE);
cv = 8;
break;
case 0xE3: // SET 4,E
setL(4, DE);
cv = 8;
break;
case 0xE4: // SET 4,H
setH(4, HL);
cv = 8;
break;
case 0xE5: // SET 4,L
setL(4, HL);
cv = 8;
break;
case 0xE6: // SET 4,(HL)
setI(4, HL.getR());
cv = 16;
break;
case 0xE7: // SET 4,A
setH(4, AF);
cv = 8;
break;
case 0xE8: // SET 5,B
setH(5, BC);
cv = 8;
break;
case 0xE9: // SET 5,C
setL(5, BC);
cv = 8;
break;
case 0xEA: // SET 5,D
setH(5, DE);
cv = 8;
break;
case 0xEB: // SET 5,E
setL(5, DE);
cv = 8;
break;
case 0xEC: // SET 5,H
setH(5, HL);
cv = 8;
break;
case 0xED: // SET 5,L
setL(5, HL);
cv = 8;
break;
case 0xEE: // SET 5,(HL)
setI(5, HL.getR());
cv = 16;
break;
case 0xEF: // SET 5,A
setH(5, AF);
cv = 8;
break;
case 0xF0: // SET 6,B
setH(6, BC);
cv = 8;
break;
case 0xF1: // SET 6,C
setL(6, BC);
cv = 8;
break;
case 0xF2: // SET 6,D
setH(6, DE);
cv = 8;
break;
case 0xF3: // SET 6,E
setL(6, DE);
cv = 8;
break;
case 0xF4: // SET 6,H
setH(6, HL);
cv = 8;
break;
case 0xF5: // SET 6,L
setL(6, HL);
cv = 8;
break;
case 0xF6: // SET 6,(HL)
setI(6, HL.getR());
cv = 16;
break;
case 0xF7: // SET 6,A
setH(6, AF);
cv = 8;
break;
case 0xF8: // SET 7,B
setH(7, BC);
cv = 8;
break;
case 0xF9: // SET 7,C
setL(7, BC);
cv = 8;
break;
case 0xFA: // SET 7,D
setH(7, DE);
cv = 8;
break;
case 0xFB: // SET 7,E
setL(7, DE);
cv = 8;
break;
case 0xFC: // SET 7,H
setH(7, HL);
cv = 8;
break;
case 0xFD: // SET 7,L
setL(7, HL);
cv = 8;
break;
case 0xFE: // SET 7,(HL)
setI(7, HL.getR());
cv = 16;
break;
case 0xFF: // SET 7,A
setH(7, AF);
cv = 8;
break;
default:
//cv = cbcodes[b].exec();
unsupportedCB(b);
cv = 4;
}
break;
case 0xCC: // CALL Z,nnnn
if(getZ()) {
call(readWord());
cv = 24;
} else {
readWord();
cv = 12;
}
break;
case 0xCD: // CALL nnnn
call(readWord());
cv = 24;
break;
case 0xCE: // ADC A,nn
adc(readByte());
cv = 8;
break;
case 0xCF: // RST 8H
rst(0x8);
cv = 16;
break;
case 0xD0: // RET NC
if(!getC()) {
ret();
cv = 20;
} else {
cv = 8;
}
break;
case 0xD1: // POP DE
pop(DE);
cv = 10;
break;
case 0xD2: // JP NC,nnnn
if(!getC()) {
jp(readWord());
cv = 20;
} else {
readWord();
cv = 8;
}
break;
case 0xD3: // -
unsupported(0xD3);
cv = 4;
break;
case 0xD4: // CALL NC,nnnn
if(!getC()) {
call(readWord());
cv = 24;
} else {
readWord();
cv = 12;
}
break;
case 0xD5: // PUSH DE
push(DE);
cv = 16;
break;
case 0xD6: // SUB nn
sub(readByte());
cv = 8;
break;
case 0xD7: // RST 10h
rst(0x10);
cv = 16;
break;
case 0xD8: // RET C
if(getC()) {
ret();
cv = 20;
} else {
cv = 8;
}
break;
case 0xD9: // RETI
ret();
ei();
cv = 16;
break;
case 0xDA: // JP C,nnnn
if(getC()) {
jp(readWord());
cv = 16;
} else {
readWord();
cv = 12;
}
break;
case 0xDB: // -
unsupported(0xDB);
cv = 4;
break;
case 0xDC: // CALL C,nnnn
if(getC()) {
call(readWord());
cv = 24;
} else {
readWord();
cv = 12;
}
break;
case 0xDD: // -
unsupported(0xDD);
cv = 4;
break;
case 0xDE: // SBC A,nn
sbc(readByte());
cv = 8;
break;
case 0xDF: // RST 18h
rst(0x18);
cv = 16;
break;
case 0xE0: // LD ($FF00+nn),A
mem.write(0xFF00 + readByte(), AF.getH());
cv = 12;
break;
case 0xE1: // POP HL
pop(HL);
cv = 12;
break;
case 0xE2: // LD ($FF00+C),A
mem.write(0xFF00 + BC.getL(), AF.getH());
cv = 8;
break;
case 0xE3: // -
unsupported(0xE3);
cv = 4;
break;
case 0xE4: // -
unsupported(0xE4);
cv = 4;
break;
case 0xE5: // PUSH HL
push(HL);
cv = 16;
break;
case 0xE6: // AND nn
and(readByte());
cv = 8;
break;
case 0xE7: // RST 20h
rst(0x20);
cv = 16;
break;
case 0xE8: // ADD SP,dd
SP.setR(SP.getR() + (byte)readByte());
setZ(false);
cv = 16;
break;
case 0xE9: // JP (HL)
jp(HL.getR());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -