mirror of
https://github.com/trebonian/visual6502.git
synced 2025-02-15 04:31:26 +00:00
(3 commits squashed together to reduce the size, as they each affect seggefs.js) - updated segdefs.js to fix some panelization artefacts - override drawSeg() to deal with holes in shapes; updated segdefs.js - updated segdefs.js with adjacent diagonals just touching
2571 lines
58 KiB
JavaScript
2571 lines
58 KiB
JavaScript
// chip-specific support functions
|
|
//
|
|
// may override function definitions made previously
|
|
|
|
chipname='z80';
|
|
|
|
grChipSize=5000;
|
|
grChipOffsetX=150;
|
|
grChipOffsetY=0;
|
|
grCanvasSize=5000;
|
|
grMaxZoom=24;
|
|
|
|
ngnd = nodenames['vss'];
|
|
npwr = nodenames['vcc'];
|
|
|
|
nodenamereset = '_reset';
|
|
|
|
presetLogLists=[
|
|
['cycle',],
|
|
['ab', 'db', '_m1', '_rd', '_wr', '_mreq', '_iorq', 'State', 'pc', 'Fetch'],
|
|
['a', 'f', 'bc', 'de', 'hl', 'ix', 'iy', 'sp'],
|
|
['wz', 'ir'],
|
|
['alubus', '-alua', '-alub', 'aluout', 'alulat'],
|
|
['d_u', 'r_u', '-ubus', 'r_v', 'u_v', '-vbus', 'regbit', 'r_p', 'pcbit', 'rl_wr', 'rh_wr', 'r_x1'],
|
|
['dp_dl', 'dl_dp', '-dlatch', 'dl_d', 'd_dl', '-dbus', 'instr', 'load_ir'],
|
|
['a2', 'f2', 'bc2', 'de2', 'hl2'],
|
|
['_int','_nmi', nodenamereset],
|
|
];
|
|
|
|
// Override ChipSim getNodeValue() function to allow an estimate of capacitance
|
|
// (number of connections) to be used when joining floating segments.
|
|
|
|
function getNodeValue(){
|
|
// 1. deal with power connections first
|
|
if(arrayContains(group, ngnd)) return false;
|
|
if(arrayContains(group, npwr)) return true;
|
|
// 2. deal with pullup/pulldowns next
|
|
for(var i in group){
|
|
var nn = group[i];
|
|
var n = nodes[nn];
|
|
if(n.pullup) return true;
|
|
if(n.pulldown) return false;
|
|
}
|
|
// 3. resolve connected set of floating nodes
|
|
// based on state of largest (by #connections) node
|
|
// (previously this was any node with state true wins)
|
|
var max_state = false;
|
|
var max_connections = 0;
|
|
for(var i in group){
|
|
var nn = group[i];
|
|
var n = nodes[nn];
|
|
var connections = n.gates.length + n.c1c2s.length;
|
|
if (connections > max_connections) {
|
|
max_connections = connections;
|
|
max_state = n.state;
|
|
}
|
|
}
|
|
return max_state;
|
|
}
|
|
|
|
// Override ChipSim drawSeg() to deal with holes
|
|
function drawSeg(ctx, seg){
|
|
var dx = grChipOffsetX;
|
|
var dy = grChipOffsetY;
|
|
ctx.beginPath();
|
|
var moveTo = true;
|
|
var sx;
|
|
var sy;
|
|
for (var i=0;i<seg.length;i+=2) {
|
|
if (moveTo) {
|
|
sx = seg[i];
|
|
sy = seg[i+1];
|
|
ctx.moveTo(grScale(sx+dx), grScale(grChipSize-sy+dy));
|
|
moveTo = false;
|
|
} else if (seg[i] == sx && seg[i + 1] == sy) {
|
|
ctx.closePath();
|
|
moveTo = true;
|
|
} else {
|
|
ctx.lineTo(grScale(seg[i]+dx), grScale(grChipSize-seg[i+1]+dy));
|
|
}
|
|
}
|
|
if (!moveTo) {
|
|
ctx.closePath();
|
|
}
|
|
}
|
|
|
|
function setupTransistors(){
|
|
for(i in transdefs){
|
|
var tdef = transdefs[i];
|
|
var name = tdef[0];
|
|
var gate = tdef[1];
|
|
var c1 = tdef[2];
|
|
var c2 = tdef[3];
|
|
var bb = tdef[4];
|
|
if(tdef[6])
|
|
// just ignore all the 'weak' transistors for now
|
|
continue;
|
|
if(c1==ngnd) {c1=c2;c2=ngnd;}
|
|
if(c1==npwr) {c1=c2;c2=npwr;}
|
|
var trans = {name: name, on: false, gate: gate, c1: c1, c2: c2, bb: bb};
|
|
nodes[gate].gates.push(trans);
|
|
nodes[c1].c1c2s.push(trans);
|
|
nodes[c2].c1c2s.push(trans);
|
|
transistors[name] = trans;
|
|
}
|
|
}
|
|
|
|
function stepBack(){
|
|
if(cycle==0) return;
|
|
showState(trace[--cycle].chip);
|
|
setMem(trace[cycle].mem);
|
|
var clk = isNodeHigh(nodenames['clk']);
|
|
if(!clk) writeDataBus(mRead(readAddressBus()));
|
|
chipStatus();
|
|
}
|
|
|
|
// simulate a single clock phase with no update to graphics or trace
|
|
function halfStep(){
|
|
var clk = isNodeHigh(nodenames['clk']);
|
|
eval(clockTriggers[cycle]);
|
|
if (clk) {setLow('clk'); }
|
|
else {setHigh('clk'); }
|
|
// DMB: It's almost certainly wrong to execute these on both clock edges
|
|
handleBusRead();
|
|
handleBusWrite();
|
|
}
|
|
|
|
function goUntilSyncOrWrite(){
|
|
halfStep();
|
|
cycle++;
|
|
while(
|
|
!isNodeHigh(nodenames['clk']) ||
|
|
( isNodeHigh(nodenames['_m1']) && isNodeHigh(nodenames['_wr']) )
|
|
) {
|
|
halfStep();
|
|
cycle++;
|
|
}
|
|
chipStatus();
|
|
}
|
|
|
|
function initChip(){
|
|
var start = now();
|
|
for(var nn in nodes) {
|
|
nodes[nn].state = false;
|
|
nodes[nn].float = true;
|
|
}
|
|
|
|
nodes[ngnd].state = false;
|
|
nodes[ngnd].float = false;
|
|
nodes[npwr].state = true;
|
|
nodes[npwr].float = false;
|
|
for(var tn in transistors) transistors[tn].on = false;
|
|
setLow(nodenamereset);
|
|
setHigh('clk');
|
|
setHigh('_busrq');
|
|
setHigh('_int');
|
|
setHigh('_nmi');
|
|
setHigh('_wait');
|
|
recalcNodeList(allNodes());
|
|
// DMB: Not sure why the 6800 sim did something like this
|
|
//for(var i=0;i<8;i++){
|
|
// setHigh('clk');
|
|
// setLow('clk');
|
|
//}
|
|
for(var i=0;i<31;i++){halfStep();} // avoid updating graphics and trace buffer before user code
|
|
setHigh(nodenamereset);
|
|
refresh();
|
|
cycle = 0;
|
|
trace = Array();
|
|
if(typeof expertMode != "undefined")
|
|
updateLogList();
|
|
chipStatus();
|
|
if(ctrace)console.log('initChip done after', now()-start);
|
|
}
|
|
|
|
var prefix = 0x00;
|
|
var opcode = 0x00;
|
|
var state = 0;
|
|
var last_rd_done = 1;
|
|
|
|
function handleBusRead(){
|
|
if(!isNodeHigh(nodenames['_rd']) && !isNodeHigh(nodenames['_mreq'])) {
|
|
// Memory read
|
|
var a = readAddressBus();
|
|
var d = eval(readTriggers[a]);
|
|
if(d == undefined)
|
|
d = mRead(readAddressBus());
|
|
if(!isNodeHigh(nodenames['_m1'])) {
|
|
eval(fetchTriggers[d]);
|
|
}
|
|
writeDataBus(d);
|
|
} else if(!isNodeHigh(nodenames['_m1']) && !isNodeHigh(nodenames['_iorq'])) {
|
|
// Interrupt acknownledge cycle, force 0xFF onto the bus
|
|
// In IM0 this is seen as JP (HL)
|
|
// In IM1 this is ignored
|
|
// In IM2 this is used as the low byte of the vector
|
|
// TODO: ideally this "vector" would be a configurable parameter
|
|
writeDataBus(0xe9);
|
|
} else {
|
|
// In all other cases we set the data bus to FF
|
|
// as a crude indicateion that it's not being driven
|
|
writeDataBus(0xff);
|
|
}
|
|
|
|
// Prefix / displacement / opcode state machine, deals with:
|
|
// CB <op>
|
|
// ED <op>
|
|
// [DD|FD]+ <op>
|
|
// [DD|FD]+ CB <displacement> <op>
|
|
|
|
// Only advance the state machine on the falling edge of read
|
|
if (last_rd_done && !isNodeHigh(nodenames['_rd']) && !isNodeHigh(nodenames['_mreq'])) {
|
|
switch (state) {
|
|
case 0:
|
|
// In state 0 we are ready to start a new instruction
|
|
if(!isNodeHigh(nodenames['_m1'])) {
|
|
prefix = 0;
|
|
opcode = d;
|
|
switch (d) {
|
|
case 0xcb: case 0xed:
|
|
state = 1;
|
|
break;
|
|
case 0xdd: case 0xfd:
|
|
state = 2;
|
|
break;
|
|
}
|
|
} else {
|
|
// This case covers other reads in the instruction
|
|
prefix = 0;
|
|
opcode = -1; // If opcode < 0, then no fetch will be displayed
|
|
}
|
|
break;
|
|
case 1:
|
|
// In state 1 we have just seen the CB/ED prefix and expect the opcode
|
|
prefix = opcode; // The prefix(s) just seen
|
|
opcode = d;
|
|
state = 0;
|
|
break;
|
|
case 2:
|
|
// In state 2 we have just seen the DD/FD prefix
|
|
prefix = opcode; // the prefix just seen
|
|
opcode = d;
|
|
switch (d) {
|
|
case 0xdd: case 0xfd:
|
|
state = 2; // remain in state 1
|
|
break;
|
|
case 0xcb:
|
|
state = 3;
|
|
break;
|
|
default:
|
|
state = 0;
|
|
break;
|
|
}
|
|
break;
|
|
case 3:
|
|
// In state 3 we expect the displacement byte
|
|
prefix = (prefix << 8) | opcode; // The prefix(s) just seen
|
|
opcode = 0x100; // Trick the disassembler into marking fetch as DISP
|
|
state = 4;
|
|
break;
|
|
case 4:
|
|
// In state 4 we expect the opcode
|
|
opcode = d;
|
|
state = 0;
|
|
break;
|
|
default:
|
|
// This should never be needd
|
|
prefix = 0;
|
|
opcode = -1;
|
|
state = 0;
|
|
break;
|
|
}
|
|
}
|
|
last_rd_done = (isNodeHigh(nodenames['_rd']) || isNodeHigh(nodenames['_mreq']));
|
|
}
|
|
|
|
function handleBusWrite(){
|
|
if(!isNodeHigh(nodenames['_wr'])){
|
|
var a = readAddressBus();
|
|
var d = readDataBus();
|
|
eval(writeTriggers[a]);
|
|
mWrite(a,d);
|
|
if(a<0x200) setCellValue(a,d);
|
|
}
|
|
}
|
|
|
|
function readA() {
|
|
if (!isNodeHigh(nodenames['ex_af'])) {
|
|
return readBits('reg_aa', 8);
|
|
} else {
|
|
return readBits('reg_a', 8);
|
|
}
|
|
}
|
|
|
|
function readF() {
|
|
if (!isNodeHigh(nodenames['ex_af'])) {
|
|
return readBits('reg_ff', 8);
|
|
} else {
|
|
return readBits('reg_f', 8);
|
|
}
|
|
}
|
|
|
|
function readB() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
return readBits('reg_bb', 8);
|
|
} else {
|
|
return readBits('reg_b', 8);
|
|
}
|
|
}
|
|
|
|
function readC() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
return readBits('reg_cc', 8);
|
|
} else {
|
|
return readBits('reg_c', 8);
|
|
}
|
|
}
|
|
|
|
function readD() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_hh', 8);
|
|
} else {
|
|
return readBits('reg_dd', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_h', 8);
|
|
} else {
|
|
return readBits('reg_d', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readE() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_ll', 8);
|
|
} else {
|
|
return readBits('reg_ee', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_l', 8);
|
|
} else {
|
|
return readBits('reg_e', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readH() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_dd', 8);
|
|
} else {
|
|
return readBits('reg_hh', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_d', 8);
|
|
} else {
|
|
return readBits('reg_h', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readL() {
|
|
if (isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_ee', 8);
|
|
} else {
|
|
return readBits('reg_ll', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_e', 8);
|
|
} else {
|
|
return readBits('reg_l', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readA2() {
|
|
if (isNodeHigh(nodenames['ex_af'])) {
|
|
return readBits('reg_aa', 8);
|
|
} else {
|
|
return readBits('reg_a', 8);
|
|
}
|
|
}
|
|
|
|
function readF2() {
|
|
if (isNodeHigh(nodenames['ex_af'])) {
|
|
return readBits('reg_ff', 8);
|
|
} else {
|
|
return readBits('reg_f', 8);
|
|
}
|
|
}
|
|
|
|
function readB2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
return readBits('reg_bb', 8);
|
|
} else {
|
|
return readBits('reg_b', 8);
|
|
}
|
|
}
|
|
|
|
function readC2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
return readBits('reg_cc', 8);
|
|
} else {
|
|
return readBits('reg_c', 8);
|
|
}
|
|
}
|
|
|
|
function readD2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_hh', 8);
|
|
} else {
|
|
return readBits('reg_dd', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_h', 8);
|
|
} else {
|
|
return readBits('reg_d', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readE2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_ll', 8);
|
|
} else {
|
|
return readBits('reg_ee', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_l', 8);
|
|
} else {
|
|
return readBits('reg_e', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readH2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_dd', 8);
|
|
} else {
|
|
return readBits('reg_hh', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_d', 8);
|
|
} else {
|
|
return readBits('reg_h', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readL2() {
|
|
if (!isNodeHigh(nodenames['ex_bcdehl'])) {
|
|
if (isNodeHigh(nodenames['ex_dehl1'])) {
|
|
return readBits('reg_ee', 8);
|
|
} else {
|
|
return readBits('reg_ll', 8);
|
|
}
|
|
} else {
|
|
if (isNodeHigh(nodenames['ex_dehl0'])) {
|
|
return readBits('reg_e', 8);
|
|
} else {
|
|
return readBits('reg_l', 8);
|
|
}
|
|
}
|
|
}
|
|
|
|
function readI(){return readBits('reg_i', 8);}
|
|
function readR(){return readBits('reg_r', 8);}
|
|
function readW(){return readBits('reg_w', 8);}
|
|
function readZ(){return readBits('reg_z', 8);}
|
|
|
|
function readIX(){return (readBits('reg_ixh', 8)<<8) + readBits('reg_ixl', 8);}
|
|
function readIY(){return (readBits('reg_iyh', 8)<<8) + readBits('reg_iyl', 8);}
|
|
function readSP(){return (readBits('reg_sph', 8)<<8) + readBits('reg_spl', 8);}
|
|
function readPC(){return (readBits('reg_pch', 8)<<8) + readBits('reg_pcl', 8);}
|
|
function readPCL(){return readBits('reg_pcl', 8);}
|
|
function readPCH(){return readBits('reg_pch', 8);}
|
|
|
|
function formatFstring(f){
|
|
var result;
|
|
result=
|
|
((f & 0x80)?'S':'s') +
|
|
((f & 0x40)?'Z':'z') +
|
|
((f & 0x20)?'Y':'y') +
|
|
((f & 0x10)?'H':'h') +
|
|
((f & 0x08)?'X':'x') +
|
|
((f & 0x04)?'P':'p') +
|
|
((f & 0x02)?'N':'n') +
|
|
((f & 0x01)?'C':'c');
|
|
return result;
|
|
}
|
|
|
|
// The 6800 state control is something like a branching shift register
|
|
// ... but not quite like that
|
|
TCStates=[
|
|
"m1", "m2", "m3", "m4", "m5",
|
|
"t1", "t2", "t3", "t4", "t5", "t6",
|
|
];
|
|
|
|
function listActiveTCStates() {
|
|
var s=[];
|
|
for(var i=0;i<TCStates.length;i++){
|
|
var t=TCStates[i];
|
|
if (isNodeHigh(nodenames[t])) s.push(t.slice(0,3));
|
|
}
|
|
return s.join(" ");
|
|
}
|
|
|
|
function busToString(busname){
|
|
// takes a signal name or prefix
|
|
// returns an appropriate string representation
|
|
// some 'signal names' are CPU-specific aliases to user-friendly string output
|
|
if(busname=='cycle')
|
|
return cycle>>1;
|
|
if(busname=='a')
|
|
return hexByte(readA());
|
|
if(busname=='f')
|
|
return formatFstring(readF());
|
|
if(busname=='bc')
|
|
return hexByte(readB()) + hexByte(readC());
|
|
if(busname=='de')
|
|
return hexByte(readD()) + hexByte(readE());
|
|
if(busname=='hl')
|
|
return hexByte(readH()) + hexByte(readL());
|
|
if(busname=='a2')
|
|
return hexByte(readA2());
|
|
if(busname=='f2')
|
|
return formatFstring(readF2());
|
|
if(busname=='bc2')
|
|
return hexByte(readB2()) + hexByte(readC2());
|
|
if(busname=='de2')
|
|
return hexByte(readD2()) + hexByte(readE2());
|
|
if(busname=='hl2')
|
|
return hexByte(readH2()) + hexByte(readL2());
|
|
if(busname=='ir')
|
|
return busToHex('reg_i') + busToHex('reg_r');
|
|
if(busname=='wz')
|
|
return busToHex('reg_w') + busToHex('reg_z');
|
|
if(busname=='pc')
|
|
return busToHex('reg_pch') + busToHex('reg_pcl');
|
|
if(busname=='sp')
|
|
return busToHex('reg_sph') + busToHex('reg_spl');
|
|
if(busname=='ix')
|
|
return busToHex('reg_ixh') + busToHex('reg_ixl');
|
|
if(busname=='iy')
|
|
return busToHex('reg_iyh') + busToHex('reg_iyl');
|
|
if(busname=='State')
|
|
return listActiveTCStates();
|
|
// DMB: TODO
|
|
// if(busname=='Execute')
|
|
// return disassemblytoHTML(readBits('ir',8));
|
|
if(busname=='Fetch')
|
|
return (!isNodeHigh(nodenames['_mreq']) && !isNodeHigh(nodenames['_rd']) && (opcode >= 0))?disassemblytoHTML(prefix,opcode):"";
|
|
if(busname[0]=="-"){
|
|
// invert the value of the bus for display
|
|
var value=busToHex(busname.slice(1))
|
|
if(typeof value != "undefined")
|
|
return value.replace(/./g,function(x){return (15-parseInt(x,16)).toString(16)});
|
|
else
|
|
return undefined;;
|
|
} else {
|
|
return busToHex(busname);
|
|
}
|
|
}
|
|
|
|
function chipStatus(){
|
|
var ab = readAddressBus();
|
|
var machine1 =
|
|
' halfcyc:' + cycle +
|
|
' clk:' + readBit('clk') +
|
|
' AB:' + hexWord(ab) +
|
|
' D:' + hexByte(readDataBus()) +
|
|
' M1:' + readBit('_m1') +
|
|
' RD:' + readBit('_rd') +
|
|
' WR:' + readBit('_wr') +
|
|
' MREQ:' + readBit('_mreq') +
|
|
' IORQ:' + readBit('_iorq');
|
|
var machine2 =
|
|
' PC:' + hexWord(readPC()) +
|
|
' A:' + hexByte(readA()) +
|
|
' F:' + formatFstring(readF()) +
|
|
' BC:' + hexByte(readB()) + hexByte(readC()) +
|
|
' DE:' + hexByte(readD()) + hexByte(readE()) +
|
|
' HL:' + hexByte(readH()) + hexByte(readL()) +
|
|
' IX:' + hexWord(readIX()) +
|
|
' IY:' + hexWord(readIY()) +
|
|
' SP:' + hexWord(readSP()) +
|
|
' IR:' + hexByte(readI()) + hexByte(readR()) +
|
|
' WZ:' + hexByte(readW()) + hexByte(readZ());
|
|
var machine3 =
|
|
'State: ' + busToString('State') +
|
|
' Hz: ' + estimatedHz().toFixed(1);
|
|
if(typeof expertMode != "undefined") {
|
|
// machine3 += ' Exec: ' + busToString('Execute'); // no T-state info for 6800 yet
|
|
if(!isNodeHigh(nodenames['_m1']) && !isNodeHigh(nodenames['_mreq']) && !isNodeHigh(nodenames['_rd']))
|
|
machine3 += ' (Fetch: ' + busToString('Fetch') + ')';
|
|
if(goldenChecksum != undefined)
|
|
machine3 += " Chk:" + traceChecksum + ((traceChecksum==goldenChecksum)?" OK":" no match");
|
|
}
|
|
|
|
setStatus(machine1, machine2, machine3);
|
|
if (logThese.length>1) {
|
|
updateLogbox(logThese);
|
|
}
|
|
selectCell(ab);
|
|
}
|
|
|
|
// sanitised opcode for HTML output
|
|
function disassemblytoHTML(prefix, opcode){
|
|
|
|
var disassembly;
|
|
switch (prefix) {
|
|
case 0xCB: disassembly = disassembly_cb; break;
|
|
case 0xDD: disassembly = disassembly_dd; break;
|
|
case 0xED: disassembly = disassembly_ed; break;
|
|
case 0xFD: disassembly = disassembly_fd; break;
|
|
case 0xDDCB: disassembly = disassembly_ddcb; break;
|
|
case 0xFDCB: disassembly = disassembly_ddfd; break;
|
|
default: disassembly = disassembly_00; break;
|
|
}
|
|
|
|
var opstr=disassembly[opcode];
|
|
if(typeof opstr == "undefined")
|
|
return "unknown"
|
|
return opstr.replace(/ /,' ');
|
|
}
|
|
|
|
|
|
var disassembly_00={
|
|
|
|
0x00: "NOP",
|
|
0x01: "LD BC,NNNN",
|
|
0x02: "LD (BC),A",
|
|
0x03: "INC BC",
|
|
0x04: "INC B",
|
|
0x05: "DEC B",
|
|
0x06: "LD B,NN",
|
|
0x07: "RLCA",
|
|
0x08: "EX AF,AF'",
|
|
0x09: "ADD HL,BC",
|
|
0x0A: "LD A,(BC)",
|
|
0x0B: "DEC BC",
|
|
0x0C: "INC C",
|
|
0x0D: "DEC C",
|
|
0x0E: "LD C,NN",
|
|
0x0F: "RRCA",
|
|
|
|
0x10: "DJNZ REL",
|
|
0x11: "LD DE,NNNN",
|
|
0x12: "LD (DE),A",
|
|
0x13: "INC DE",
|
|
0x14: "INC D",
|
|
0x15: "DEC D",
|
|
0x16: "LD D,NN",
|
|
0x17: "RLA",
|
|
0x18: "JR REL",
|
|
0x19: "ADD HL,DE",
|
|
0x1A: "LD A,(DE)",
|
|
0x1B: "DEC DE",
|
|
0x1C: "INC E",
|
|
0x1D: "DEC E",
|
|
0x1E: "LD E,NN",
|
|
0x1F: "RRA",
|
|
|
|
0x20: "JR NZ,REL",
|
|
0x21: "LD HL,NNNN",
|
|
0x22: "LD (NNNN),HL",
|
|
0x23: "INC HL",
|
|
0x24: "INC H",
|
|
0x25: "DEC H",
|
|
0x26: "LD H,NN",
|
|
0x27: "DAA",
|
|
0x28: "JR Z,REL",
|
|
0x29: "ADD HL,HL",
|
|
0x2A: "LD HL,(NNNN)",
|
|
0x2B: "DEC HL",
|
|
0x2C: "INC L",
|
|
0x2D: "DEC L",
|
|
0x2E: "LD L,NN",
|
|
0x2F: "CPL",
|
|
|
|
0x30: "JR NC,REL",
|
|
0x31: "LD SP,NNNN",
|
|
0x32: "LD (NNNN),A",
|
|
0x33: "INC SP",
|
|
0x34: "INC (HL)",
|
|
0x35: "DEC (HL)",
|
|
0x36: "LD (HL),NN",
|
|
0x37: "SCF",
|
|
0x38: "JR C,REL",
|
|
0x39: "ADD HL,SP",
|
|
0x3A: "LD A,(NNNN)",
|
|
0x3B: "DEC SP",
|
|
0x3C: "INC A",
|
|
0x3D: "DEC A",
|
|
0x3E: "LD A,NN",
|
|
0x3F: "CCF",
|
|
|
|
0x40: "LD B,B",
|
|
0x41: "LD B,C",
|
|
0x42: "LD B,D",
|
|
0x43: "LD B,E",
|
|
0x44: "LD B,H",
|
|
0x45: "LD B,L",
|
|
0x46: "LD B,(HL)",
|
|
0x47: "LD B,A",
|
|
0x48: "LD C,B",
|
|
0x49: "LD C,C",
|
|
0x4A: "LD C,D",
|
|
0x4B: "LD C,E",
|
|
0x4C: "LD C,H",
|
|
0x4D: "LD C,L",
|
|
0x4E: "LD C,(HL)",
|
|
0x4F: "LD C,A",
|
|
|
|
0x50: "LD D,B",
|
|
0x51: "LD D,C",
|
|
0x52: "LD D,D",
|
|
0x53: "LD D,E",
|
|
0x54: "LD D,H",
|
|
0x55: "LD D,L",
|
|
0x56: "LD D,(HL)",
|
|
0x57: "LD D,A",
|
|
0x58: "LD E,B",
|
|
0x59: "LD E,C",
|
|
0x5A: "LD E,D",
|
|
0x5B: "LD E,E",
|
|
0x5C: "LD E,H",
|
|
0x5D: "LD E,L",
|
|
0x5E: "LD E,(HL)",
|
|
0x5F: "LD E,A",
|
|
|
|
0x60: "LD H,B",
|
|
0x61: "LD H,C",
|
|
0x62: "LD H,D",
|
|
0x63: "LD H,E",
|
|
0x64: "LD H,H",
|
|
0x65: "LD H,L",
|
|
0x66: "LD H,(HL)",
|
|
0x67: "LD H,A",
|
|
0x68: "LD L,B",
|
|
0x69: "LD L,C",
|
|
0x6A: "LD L,D",
|
|
0x6B: "LD L,E",
|
|
0x6C: "LD L,H",
|
|
0x6D: "LD L,L",
|
|
0x6E: "LD L,(HL)",
|
|
0x6F: "LD L,A",
|
|
|
|
0x70: "LD (HL),B",
|
|
0x71: "LD (HL),C",
|
|
0x72: "LD (HL),D",
|
|
0x73: "LD (HL),E",
|
|
0x74: "LD (HL),H",
|
|
0x75: "LD (HL),L",
|
|
0x76: "HALT",
|
|
0x77: "LD (HL),A",
|
|
0x78: "LD A,B",
|
|
0x79: "LD A,C",
|
|
0x7A: "LD A,D",
|
|
0x7B: "LD A,E",
|
|
0x7C: "LD A,H",
|
|
0x7D: "LD A,L",
|
|
0x7E: "LD A,(HL)",
|
|
0x7F: "LD A,A",
|
|
|
|
0x80: "ADD A,B",
|
|
0x81: "ADD A,C",
|
|
0x82: "ADD A,D",
|
|
0x83: "ADD A,E",
|
|
0x84: "ADD A,H",
|
|
0x85: "ADD A,L",
|
|
0x86: "ADD A,(HL)",
|
|
0x87: "ADD A,A",
|
|
0x88: "ADC A,B",
|
|
0x89: "ADC A,C",
|
|
0x8A: "ADC A,D",
|
|
0x8B: "ADC A,E",
|
|
0x8C: "ADC A,H",
|
|
0x8D: "ADC A,L",
|
|
0x8E: "ADC A,(HL)",
|
|
0x8F: "ADC A,A",
|
|
|
|
0x90: "SUB B",
|
|
0x91: "SUB C",
|
|
0x92: "SUB D",
|
|
0x93: "SUB E",
|
|
0x94: "SUB H",
|
|
0x95: "SUB L",
|
|
0x96: "SUB (HL)",
|
|
0x97: "SUB A",
|
|
0x98: "SBC A,B",
|
|
0x99: "SBC A,C",
|
|
0x9A: "SBC A,D",
|
|
0x9B: "SBC A,E",
|
|
0x9C: "SBC A,H",
|
|
0x9D: "SBC A,L",
|
|
0x9E: "SBC A,(HL)",
|
|
0x9F: "SBC A,A",
|
|
|
|
0xA0: "AND B",
|
|
0xA1: "AND C",
|
|
0xA2: "AND D",
|
|
0xA3: "AND E",
|
|
0xA4: "AND H",
|
|
0xA5: "AND L",
|
|
0xA6: "AND (HL)",
|
|
0xA7: "AND A",
|
|
0xA8: "XOR B",
|
|
0xA9: "XOR C",
|
|
0xAA: "XOR D",
|
|
0xAB: "XOR E",
|
|
0xAC: "XOR H",
|
|
0xAD: "XOR L",
|
|
0xAE: "XOR (HL)",
|
|
0xAF: "XOR A",
|
|
|
|
0xB0: "OR B",
|
|
0xB1: "OR C",
|
|
0xB2: "OR D",
|
|
0xB3: "OR E",
|
|
0xB4: "OR H",
|
|
0xB5: "OR L",
|
|
0xB6: "OR (HL)",
|
|
0xB7: "OR A",
|
|
0xB8: "CP B",
|
|
0xB9: "CP C",
|
|
0xBA: "CP D",
|
|
0xBB: "CP E",
|
|
0xBC: "CP H",
|
|
0xBD: "CP L",
|
|
0xBE: "CP (HL)",
|
|
0xBF: "CP A",
|
|
|
|
0xC0: "RET NZ",
|
|
0xC1: "POP BC",
|
|
0xC2: "JP NZ,NNNN",
|
|
0xC3: "JP NNNN",
|
|
0xC4: "CALL NZ,NNNN",
|
|
0xC5: "PUSH BC",
|
|
0xC6: "ADD A,NN",
|
|
0xC7: "RST 00h",
|
|
0xC8: "RET Z",
|
|
0xC9: "RET",
|
|
0xCA: "JP Z,NNNN",
|
|
0xCB: "CB PREFIX",
|
|
0xCC: "CALL Z,NNNN",
|
|
0xCD: "CALL NNNN",
|
|
0xCE: "ADC A,NN",
|
|
0xCF: "RST 08h",
|
|
|
|
0xD0: "RET NC",
|
|
0xD1: "POP DE",
|
|
0xD2: "JP NC,NNNN",
|
|
0xD3: "OUT (NN),A",
|
|
0xD4: "CALL NC,NNNN",
|
|
0xD5: "PUSH DE",
|
|
0xD6: "SUB NN",
|
|
0xD7: "RST 10h",
|
|
0xD8: "RET C",
|
|
0xD9: "EXX",
|
|
0xDA: "JP C,NNNN",
|
|
0xDB: "IN A,(NN)",
|
|
0xDC: "CALL C,NNNN",
|
|
0xDD: "DD PREFIX",
|
|
0xDE: "SBC A,NN",
|
|
0xDF: "RST 18h",
|
|
|
|
0xE0: "RET PO",
|
|
0xE1: "POP HL",
|
|
0xE2: "JP PO,NNNN",
|
|
0xE3: "EX (SP),HL",
|
|
0xE4: "CALL PO,NNNN",
|
|
0xE5: "PUSH HL",
|
|
0xE6: "AND NN",
|
|
0xE7: "RST 20h",
|
|
0xE8: "RET PE",
|
|
0xE9: "JP (HL)",
|
|
0xEA: "JP PE,NNNN",
|
|
0xEB: "EX DE,HL",
|
|
0xEC: "CALL PE,NNNN",
|
|
0xED: "ED PREFIX",
|
|
0xEE: "XOR NN",
|
|
0xEF: "RST 28h",
|
|
|
|
0xF0: "RET P",
|
|
0xF1: "POP AF",
|
|
0xF2: "JP P,NNNN",
|
|
0xF3: "DI",
|
|
0xF4: "CALL P,NNNN",
|
|
0xF5: "PUSH AF",
|
|
0xF6: "OR NN",
|
|
0xF7: "RST 30h",
|
|
0xF8: "RET M",
|
|
0xF9: "LD SP,HL",
|
|
0xFA: "JP M,NNNN",
|
|
0xFB: "EI",
|
|
0xFC: "CALL M,NNNN",
|
|
0xFD: "FD PREFIX",
|
|
0xFE: "CP NN",
|
|
0xFF: "RST 38h"
|
|
};
|
|
|
|
var disassembly_ed={
|
|
|
|
0x00: "???",
|
|
0x01: "???",
|
|
0x02: "???",
|
|
0x03: "???",
|
|
0x04: "???",
|
|
0x05: "???",
|
|
0x06: "???",
|
|
0x07: "???",
|
|
0x08: "???",
|
|
0x09: "???",
|
|
0x0A: "???",
|
|
0x0B: "???",
|
|
0x0C: "???",
|
|
0x0D: "???",
|
|
0x0E: "???",
|
|
0x0F: "???",
|
|
|
|
0x10: "???",
|
|
0x11: "???",
|
|
0x12: "???",
|
|
0x13: "???",
|
|
0x14: "???",
|
|
0x15: "???",
|
|
0x16: "???",
|
|
0x17: "???",
|
|
0x18: "???",
|
|
0x19: "???",
|
|
0x1A: "???",
|
|
0x1B: "???",
|
|
0x1C: "???",
|
|
0x1D: "???",
|
|
0x1E: "???",
|
|
0x1F: "???",
|
|
|
|
0x20: "???",
|
|
0x21: "???",
|
|
0x22: "???",
|
|
0x23: "???",
|
|
0x24: "???",
|
|
0x25: "???",
|
|
0x26: "???",
|
|
0x27: "???",
|
|
0x28: "???",
|
|
0x29: "???",
|
|
0x2A: "???",
|
|
0x2B: "???",
|
|
0x2C: "???",
|
|
0x2D: "???",
|
|
0x2E: "???",
|
|
0x2F: "???",
|
|
|
|
0x30: "???",
|
|
0x31: "???",
|
|
0x32: "???",
|
|
0x33: "???",
|
|
0x34: "???",
|
|
0x35: "???",
|
|
0x36: "???",
|
|
0x37: "???",
|
|
0x38: "???",
|
|
0x39: "???",
|
|
0x3A: "???",
|
|
0x3B: "???",
|
|
0x3C: "???",
|
|
0x3D: "???",
|
|
0x3E: "???",
|
|
0x3F: "???",
|
|
|
|
0x40: "IN B,(C)",
|
|
0x41: "OUT (C),B",
|
|
0x42: "SBC HL,BC",
|
|
0x43: "LD (NNNN),BC",
|
|
0x44: "NEG",
|
|
0x45: "RETN",
|
|
0x46: "IM 0",
|
|
0x47: "LD I,A",
|
|
0x48: "IN C,(C)",
|
|
0x49: "OUT (C),C",
|
|
0x4A: "ADC HL,BC",
|
|
0x4B: "LD BC,(NNNN)",
|
|
0x4C: "NEG",
|
|
0x4D: "RETI",
|
|
0x4E: "IM 0/1",
|
|
0x4F: "LD R,A",
|
|
|
|
0x50: "IN D,(C)",
|
|
0x51: "OUT (C),D",
|
|
0x52: "SBC HL,DE",
|
|
0x53: "LD (NNNN),DE",
|
|
0x54: "NEG",
|
|
0x55: "RETN",
|
|
0x56: "IM 1",
|
|
0x57: "LD A,I",
|
|
0x58: "IN E,(C)",
|
|
0x59: "OUT (C),E",
|
|
0x5A: "ADC HL,DE",
|
|
0x5B: "LD DE,(NNNN)",
|
|
0x5C: "NEG",
|
|
0x5D: "RETN",
|
|
0x5E: "IM 2",
|
|
0x5F: "LD A,R",
|
|
|
|
0x60: "IN H,(C)",
|
|
0x61: "OUT (C),H",
|
|
0x62: "SBC HL,HL",
|
|
0x63: "LD (NNNN),HL",
|
|
0x64: "NEG",
|
|
0x65: "RETN",
|
|
0x66: "IM 0",
|
|
0x67: "RRD",
|
|
0x68: "IN L,(C)",
|
|
0x69: "OUT (C),L",
|
|
0x6A: "ADC HL,HL",
|
|
0x6B: "LD HL,(NNNN)",
|
|
0x6C: "NEG",
|
|
0x6D: "RETN",
|
|
0x6E: "IM 0/1",
|
|
0x6F: "RLD",
|
|
|
|
0x70: "IN (C)",
|
|
0x71: "OUT (C),0",
|
|
0x72: "SBC HL,SP",
|
|
0x73: "LD (NNNN),SP",
|
|
0x74: "NEG",
|
|
0x75: "RETN",
|
|
0x76: "IM 1",
|
|
0x77: "???",
|
|
0x78: "IN A,(C)",
|
|
0x79: "OUT (C),A",
|
|
0x7A: "ADC HL,SP",
|
|
0x7B: "LD SP,(NNNN)",
|
|
0x7C: "NEG",
|
|
0x7D: "RETN",
|
|
0x7E: "IM 2",
|
|
0x7F: "???",
|
|
|
|
0x80: "???",
|
|
0x81: "???",
|
|
0x82: "???",
|
|
0x83: "???",
|
|
0x84: "???",
|
|
0x85: "???",
|
|
0x86: "???",
|
|
0x87: "???",
|
|
0x88: "???",
|
|
0x89: "???",
|
|
0x8A: "???",
|
|
0x8B: "???",
|
|
0x8C: "???",
|
|
0x8D: "???",
|
|
0x8E: "???",
|
|
0x8F: "???",
|
|
|
|
0x90: "???",
|
|
0x91: "???",
|
|
0x92: "???",
|
|
0x93: "???",
|
|
0x94: "???",
|
|
0x95: "???",
|
|
0x96: "???",
|
|
0x97: "???",
|
|
0x98: "???",
|
|
0x99: "???",
|
|
0x9A: "???",
|
|
0x9B: "???",
|
|
0x9C: "???",
|
|
0x9D: "???",
|
|
0x9E: "???",
|
|
0x9F: "???",
|
|
|
|
0xA0: "LDI",
|
|
0xA1: "CPI",
|
|
0xA2: "INI",
|
|
0xA3: "OUTI",
|
|
0xA4: "???",
|
|
0xA5: "???",
|
|
0xA6: "???",
|
|
0xA7: "???",
|
|
0xA8: "LDD",
|
|
0xA9: "CPD",
|
|
0xAA: "IND",
|
|
0xAB: "OUTD",
|
|
0xAC: "???",
|
|
0xAD: "???",
|
|
0xAE: "???",
|
|
0xAF: "???",
|
|
|
|
0xB0: "LDIR",
|
|
0xB1: "CPIR",
|
|
0xB2: "INIR",
|
|
0xB3: "OTIR",
|
|
0xB4: "???",
|
|
0xB5: "???",
|
|
0xB6: "???",
|
|
0xB7: "???",
|
|
0xB8: "LDDR",
|
|
0xB9: "CPDR",
|
|
0xBA: "INDR",
|
|
0xBB: "OTDR",
|
|
0xBC: "???",
|
|
0xBD: "???",
|
|
0xBE: "???",
|
|
0xBF: "???",
|
|
|
|
0xC0: "???",
|
|
0xC1: "???",
|
|
0xC2: "???",
|
|
0xC3: "???",
|
|
0xC4: "???",
|
|
0xC5: "???",
|
|
0xC6: "???",
|
|
0xC7: "???",
|
|
0xC8: "???",
|
|
0xC9: "???",
|
|
0xCA: "???",
|
|
0xCB: "???",
|
|
0xCC: "???",
|
|
0xCD: "???",
|
|
0xCE: "???",
|
|
0xCF: "???",
|
|
|
|
0xD0: "???",
|
|
0xD1: "???",
|
|
0xD2: "???",
|
|
0xD3: "???",
|
|
0xD4: "???",
|
|
0xD5: "???",
|
|
0xD6: "???",
|
|
0xD7: "???",
|
|
0xD8: "???",
|
|
0xD9: "???",
|
|
0xDA: "???",
|
|
0xDB: "???",
|
|
0xDC: "???",
|
|
0xDD: "???",
|
|
0xDE: "???",
|
|
0xDF: "???",
|
|
|
|
0xE0: "???",
|
|
0xE1: "???",
|
|
0xE2: "???",
|
|
0xE3: "???",
|
|
0xE4: "???",
|
|
0xE5: "???",
|
|
0xE6: "???",
|
|
0xE7: "???",
|
|
0xE8: "???",
|
|
0xE9: "???",
|
|
0xEA: "???",
|
|
0xEB: "???",
|
|
0xEC: "???",
|
|
0xED: "???",
|
|
0xEE: "???",
|
|
0xEF: "???",
|
|
|
|
0xF0: "???",
|
|
0xF1: "???",
|
|
0xF2: "???",
|
|
0xF3: "???",
|
|
0xF4: "???",
|
|
0xF5: "???",
|
|
0xF6: "???",
|
|
0xF7: "???",
|
|
0xF8: "???",
|
|
0xF9: "???",
|
|
0xFA: "???",
|
|
0xFB: "???",
|
|
0xFC: "???",
|
|
0xFD: "???",
|
|
0xFE: "???",
|
|
0xFF: "???"
|
|
};
|
|
|
|
|
|
var disassembly_cb={
|
|
|
|
0x00: "RLC B",
|
|
0x01: "RLC C",
|
|
0x02: "RLC D",
|
|
0x03: "RLC E",
|
|
0x04: "RLC H",
|
|
0x05: "RLC L",
|
|
0x06: "RLC (HL)",
|
|
0x07: "RLC A",
|
|
0x08: "RRC B",
|
|
0x09: "RRC C",
|
|
0x0A: "RRC D",
|
|
0x0B: "RRC E",
|
|
0x0C: "RRC H",
|
|
0x0D: "RRC L",
|
|
0x0E: "RRC (HL)",
|
|
0x0F: "RRC A",
|
|
|
|
0x10: "RL B",
|
|
0x11: "RL C",
|
|
0x12: "RL D",
|
|
0x13: "RL E",
|
|
0x14: "RL H",
|
|
0x15: "RL L",
|
|
0x16: "RL (HL)",
|
|
0x17: "RL A",
|
|
0x18: "RR B",
|
|
0x19: "RR C",
|
|
0x1A: "RR D",
|
|
0x1B: "RR E",
|
|
0x1C: "RR H",
|
|
0x1D: "RR L",
|
|
0x1E: "RR (HL)",
|
|
0x1F: "RR A",
|
|
|
|
0x20: "SLA B",
|
|
0x21: "SLA C",
|
|
0x22: "SLA D",
|
|
0x23: "SLA E",
|
|
0x24: "SLA H",
|
|
0x25: "SLA L",
|
|
0x26: "SLA (HL)",
|
|
0x27: "SLA A",
|
|
0x28: "SRA B",
|
|
0x29: "SRA C",
|
|
0x2A: "SRA D",
|
|
0x2B: "SRA E",
|
|
0x2C: "SRA H",
|
|
0x2D: "SRA L",
|
|
0x2E: "SRA (HL)",
|
|
0x2F: "SRA A",
|
|
|
|
0x30: "SLL B",
|
|
0x31: "SLL C",
|
|
0x32: "SLL D",
|
|
0x33: "SLL E",
|
|
0x34: "SLL H",
|
|
0x35: "SLL L",
|
|
0x36: "SLL (HL)",
|
|
0x37: "SLL A",
|
|
0x38: "SRL B",
|
|
0x39: "SRL C",
|
|
0x3A: "SRL D",
|
|
0x3B: "SRL E",
|
|
0x3C: "SRL H",
|
|
0x3D: "SRL L",
|
|
0x3E: "SRL (HL)",
|
|
0x3F: "SRL A",
|
|
|
|
0x40: "BIT 0,B",
|
|
0x41: "BIT 0,C",
|
|
0x42: "BIT 0,D",
|
|
0x43: "BIT 0,E",
|
|
0x44: "BIT 0,H",
|
|
0x45: "BIT 0,L",
|
|
0x46: "BIT 0,(HL)",
|
|
0x47: "BIT 0,A",
|
|
0x48: "BIT 1,B",
|
|
0x49: "BIT 1,C",
|
|
0x4A: "BIT 1,D",
|
|
0x4B: "BIT 1,E",
|
|
0x4C: "BIT 1,H",
|
|
0x4D: "BIT 1,L",
|
|
0x4E: "BIT 1,(HL)",
|
|
0x4F: "BIT 1,A",
|
|
|
|
0x50: "BIT 2,B",
|
|
0x51: "BIT 2,C",
|
|
0x52: "BIT 2,D",
|
|
0x53: "BIT 2,E",
|
|
0x54: "BIT 2,H",
|
|
0x55: "BIT 2,L",
|
|
0x56: "BIT 2,(HL)",
|
|
0x57: "BIT 2,A",
|
|
0x58: "BIT 3,B",
|
|
0x59: "BIT 3,C",
|
|
0x5A: "BIT 3,D",
|
|
0x5B: "BIT 3,E",
|
|
0x5C: "BIT 3,H",
|
|
0x5D: "BIT 3,L",
|
|
0x5E: "BIT 3,(HL)",
|
|
0x5F: "BIT 3,A",
|
|
|
|
0x60: "BIT 4,B",
|
|
0x61: "BIT 4,C",
|
|
0x62: "BIT 4,D",
|
|
0x63: "BIT 4,E",
|
|
0x64: "BIT 4,H",
|
|
0x65: "BIT 4,L",
|
|
0x66: "BIT 4,(HL)",
|
|
0x67: "BIT 4,A",
|
|
0x68: "BIT 5,B",
|
|
0x69: "BIT 5,C",
|
|
0x6A: "BIT 5,D",
|
|
0x6B: "BIT 5,E",
|
|
0x6C: "BIT 5,H",
|
|
0x6D: "BIT 5,L",
|
|
0x6E: "BIT 5,(HL)",
|
|
0x6F: "BIT 5,A",
|
|
|
|
0x70: "BIT 6,B",
|
|
0x71: "BIT 6,C",
|
|
0x72: "BIT 6,D",
|
|
0x73: "BIT 6,E",
|
|
0x74: "BIT 6,H",
|
|
0x75: "BIT 6,L",
|
|
0x76: "BIT 6,(HL)",
|
|
0x77: "BIT 6,A",
|
|
0x78: "BIT 7,B",
|
|
0x79: "BIT 7,C",
|
|
0x7A: "BIT 7,D",
|
|
0x7B: "BIT 7,E",
|
|
0x7C: "BIT 7,H",
|
|
0x7D: "BIT 7,L",
|
|
0x7E: "BIT 7,(HL)",
|
|
0x7F: "BIT 7,A",
|
|
|
|
0x80: "RES 0,B",
|
|
0x81: "RES 0,C",
|
|
0x82: "RES 0,D",
|
|
0x83: "RES 0,E",
|
|
0x84: "RES 0,H",
|
|
0x85: "RES 0,L",
|
|
0x86: "RES 0,(HL)",
|
|
0x87: "RES 0,A",
|
|
0x88: "RES 1,B",
|
|
0x89: "RES 1,C",
|
|
0x8A: "RES 1,D",
|
|
0x8B: "RES 1,E",
|
|
0x8C: "RES 1,H",
|
|
0x8D: "RES 1,L",
|
|
0x8E: "RES 1,(HL)",
|
|
0x8F: "RES 1,A",
|
|
|
|
0x90: "RES 2,B",
|
|
0x91: "RES 2,C",
|
|
0x92: "RES 2,D",
|
|
0x93: "RES 2,E",
|
|
0x94: "RES 2,H",
|
|
0x95: "RES 2,L",
|
|
0x96: "RES 2,(HL)",
|
|
0x97: "RES 2,A",
|
|
0x98: "RES 3,B",
|
|
0x99: "RES 3,C",
|
|
0x9A: "RES 3,D",
|
|
0x9B: "RES 3,E",
|
|
0x9C: "RES 3,H",
|
|
0x9D: "RES 3,L",
|
|
0x9E: "RES 3,(HL)",
|
|
0x9F: "RES 3,A",
|
|
|
|
0xA0: "RES 4,B",
|
|
0xA1: "RES 4,C",
|
|
0xA2: "RES 4,D",
|
|
0xA3: "RES 4,E",
|
|
0xA4: "RES 4,H",
|
|
0xA5: "RES 4,L",
|
|
0xA6: "RES 4,(HL)",
|
|
0xA7: "RES 4,A",
|
|
0xA8: "RES 5,B",
|
|
0xA9: "RES 5,C",
|
|
0xAA: "RES 5,D",
|
|
0xAB: "RES 5,E",
|
|
0xAC: "RES 5,H",
|
|
0xAD: "RES 5,L",
|
|
0xAE: "RES 5,(HL)",
|
|
0xAF: "RES 5,A",
|
|
|
|
0xB0: "RES 6,B",
|
|
0xB1: "RES 6,C",
|
|
0xB2: "RES 6,D",
|
|
0xB3: "RES 6,E",
|
|
0xB4: "RES 6,H",
|
|
0xB5: "RES 6,L",
|
|
0xB6: "RES 6,(HL)",
|
|
0xB7: "RES 6,A",
|
|
0xB8: "RES 7,B",
|
|
0xB9: "RES 7,C",
|
|
0xBA: "RES 7,D",
|
|
0xBB: "RES 7,E",
|
|
0xBC: "RES 7,H",
|
|
0xBD: "RES 7,L",
|
|
0xBE: "RES 7,(HL)",
|
|
0xBF: "RES 7,A",
|
|
|
|
0xC0: "SET 0,B",
|
|
0xC1: "SET 0,C",
|
|
0xC2: "SET 0,D",
|
|
0xC3: "SET 0,E",
|
|
0xC4: "SET 0,H",
|
|
0xC5: "SET 0,L",
|
|
0xC6: "SET 0,(HL)",
|
|
0xC7: "SET 0,A",
|
|
0xC8: "SET 1,B",
|
|
0xC9: "SET 1,C",
|
|
0xCA: "SET 1,D",
|
|
0xCB: "SET 1,E",
|
|
0xCC: "SET 1,H",
|
|
0xCD: "SET 1,L",
|
|
0xCE: "SET 1,(HL)",
|
|
0xCF: "SET 1,A",
|
|
|
|
0xD0: "SET 2,B",
|
|
0xD1: "SET 2,C",
|
|
0xD2: "SET 2,D",
|
|
0xD3: "SET 2,E",
|
|
0xD4: "SET 2,H",
|
|
0xD5: "SET 2,L",
|
|
0xD6: "SET 2,(HL)",
|
|
0xD7: "SET 2,A",
|
|
0xD8: "SET 3,B",
|
|
0xD9: "SET 3,C",
|
|
0xDA: "SET 3,D",
|
|
0xDB: "SET 3,E",
|
|
0xDC: "SET 3,H",
|
|
0xDD: "SET 3,L",
|
|
0xDE: "SET 3,(HL)",
|
|
0xDF: "SET 3,A",
|
|
|
|
0xE0: "SET 4,B",
|
|
0xE1: "SET 4,C",
|
|
0xE2: "SET 4,D",
|
|
0xE3: "SET 4,E",
|
|
0xE4: "SET 4,H",
|
|
0xE5: "SET 4,L",
|
|
0xE6: "SET 4,(HL)",
|
|
0xE7: "SET 4,A",
|
|
0xE8: "SET 5,B",
|
|
0xE9: "SET 5,C",
|
|
0xEA: "SET 5,D",
|
|
0xEB: "SET 5,E",
|
|
0xEC: "SET 5,H",
|
|
0xED: "SET 5,L",
|
|
0xEE: "SET 5,(HL)",
|
|
0xEF: "SET 5,A",
|
|
|
|
0xF0: "SET 6,B",
|
|
0xF1: "SET 6,C",
|
|
0xF2: "SET 6,D",
|
|
0xF3: "SET 6,E",
|
|
0xF4: "SET 6,H",
|
|
0xF5: "SET 6,L",
|
|
0xF6: "SET 6,(HL)",
|
|
0xF7: "SET 6,A",
|
|
0xF8: "SET 7,B",
|
|
0xF9: "SET 7,C",
|
|
0xFA: "SET 7,D",
|
|
0xFB: "SET 7,E",
|
|
0xFC: "SET 7,H",
|
|
0xFD: "SET 7,L",
|
|
0xFE: "SET 7,(HL)",
|
|
0xFF: "SET 7,A"
|
|
};
|
|
|
|
|
|
var disassembly_dd={
|
|
|
|
0x00: "NOP",
|
|
0x01: "LD BC,NNNN",
|
|
0x02: "LD (BC),A",
|
|
0x03: "INC BC",
|
|
0x04: "INC B",
|
|
0x05: "DEC B",
|
|
0x06: "LD B,NN",
|
|
0x07: "RLCA",
|
|
0x08: "EX AF,AF'",
|
|
0x09: "ADD IX,BC",
|
|
0x0A: "LD A,(BC)",
|
|
0x0B: "DEC BC",
|
|
0x0C: "INC C",
|
|
0x0D: "DEC C",
|
|
0x0E: "LD C,NN",
|
|
0x0F: "RRCA",
|
|
|
|
0x10: "DJNZ REL",
|
|
0x11: "LD DE,NNNN",
|
|
0x12: "LD (DE),A",
|
|
0x13: "INC DE",
|
|
0x14: "INC D",
|
|
0x15: "DEC D",
|
|
0x16: "LD D,NN",
|
|
0x17: "RLA",
|
|
0x18: "JR REL",
|
|
0x19: "ADD IX,DE",
|
|
0x1A: "LD A,(DE)",
|
|
0x1B: "DEC DE",
|
|
0x1C: "INC E",
|
|
0x1D: "DEC E",
|
|
0x1E: "LD E,NN",
|
|
0x1F: "RRA",
|
|
|
|
0x20: "JR NZ,REL",
|
|
0x21: "LD IX,NNNN",
|
|
0x22: "LD (NNNN),IX",
|
|
0x23: "INC IX",
|
|
0x24: "INC IXH",
|
|
0x25: "DEC IXH",
|
|
0x26: "LD IXH,NN",
|
|
0x27: "DAA",
|
|
0x28: "JR Z,REL",
|
|
0x29: "ADD IX,IX",
|
|
0x2A: "LD IX,(NNNN)",
|
|
0x2B: "DEC IX",
|
|
0x2C: "INC IXL",
|
|
0x2D: "DEC IXL",
|
|
0x2E: "LD IXL,NN",
|
|
0x2F: "CPL",
|
|
|
|
0x30: "JR NC,REL",
|
|
0x31: "LD SP,NNNN",
|
|
0x32: "LD (NNNN),A",
|
|
0x33: "INC SP",
|
|
0x34: "INC (IX+d)",
|
|
0x35: "DEC (IX+d)",
|
|
0x36: "LD (IX+d),NN",
|
|
0x37: "SCF",
|
|
0x38: "JR C,REL",
|
|
0x39: "ADD IX,SP",
|
|
0x3A: "LD A,(NNNN)",
|
|
0x3B: "DEC SP",
|
|
0x3C: "INC A",
|
|
0x3D: "DEC A",
|
|
0x3D: "LD A,NN",
|
|
0x3F: "CCF",
|
|
|
|
0x40: "LD B,B",
|
|
0x41: "LD B,C",
|
|
0x42: "LD B,D",
|
|
0x44: "LD B,E",
|
|
0x44: "LD B,IXH",
|
|
0x45: "LD B,IXL",
|
|
0x46: "LD B,(IX+d)",
|
|
0x47: "LD B,A",
|
|
0x48: "LD C,B",
|
|
0x49: "LD C,C",
|
|
0x4A: "LD C,D",
|
|
0x4B: "LD C,E",
|
|
0x4C: "LD C,IXH",
|
|
0x4D: "LD C,IXL",
|
|
0x4E: "LD C,(IX+d)",
|
|
0x4F: "LD C,A",
|
|
|
|
0x50: "LD D,B",
|
|
0x51: "LD D,C",
|
|
0x52: "LD D,D",
|
|
0x52: "LD D,E",
|
|
0x54: "LD D,IXH",
|
|
0x55: "LD D,IXL",
|
|
0x56: "LD D,(IX+d)",
|
|
0x57: "LD D,A",
|
|
0x58: "LD E,B",
|
|
0x59: "LD E,C",
|
|
0x5A: "LD E,D",
|
|
0x5B: "LD E,E",
|
|
0x5C: "LD E,IXH",
|
|
0x5D: "LD E,IXL",
|
|
0x5E: "LD E,(IX+d)",
|
|
0x5F: "LD E,A",
|
|
|
|
0x60: "LD IXH,B",
|
|
0x61: "LD IXH,C",
|
|
0x62: "LD IXH,D",
|
|
0x63: "LD IXH,E",
|
|
0x64: "LD IXH,IXH",
|
|
0x65: "LD IXH,IXL",
|
|
0x66: "LD H,(IX+d)",
|
|
0x67: "LD IXH,A",
|
|
0x68: "LD IXL,B",
|
|
0x69: "LD IXL,C",
|
|
0x6A: "LD IXL,D",
|
|
0x6B: "LD IXL,E",
|
|
0x6C: "LD IXL,IXH",
|
|
0x6D: "LD IXL,IXL",
|
|
0x6E: "LD L,(IX+d)",
|
|
0x6F: "LD IXL,A",
|
|
|
|
0x70: "LD (IX+d),B",
|
|
0x71: "LD (IX+d),C",
|
|
0x72: "LD (IX+d),D",
|
|
0x73: "LD (IX+d),E",
|
|
0x74: "LD (IX+d),H",
|
|
0x75: "LD (IX+d),L",
|
|
0x76: "HALT",
|
|
0x77: "LD (IX+d),A",
|
|
0x78: "LD A,B",
|
|
0x79: "LD A,C",
|
|
0x7A: "LD A,D",
|
|
0x7B: "LD A,E",
|
|
0x7C: "LD A,IXH",
|
|
0x7D: "LD A,IXL",
|
|
0x7E: "LD A,(IX+d)",
|
|
0x7F: "LD A,A",
|
|
|
|
0x80: "ADD A,B",
|
|
0x81: "ADD A,C",
|
|
0x82: "ADD A,D",
|
|
0x83: "ADD A,E",
|
|
0x84: "ADD A,IXH",
|
|
0x85: "ADD A,IXL",
|
|
0x86: "ADD A,(IX+d)",
|
|
0x87: "ADD A,A",
|
|
0x88: "ADC A,B",
|
|
0x89: "ADC A,C",
|
|
0x8A: "ADC A,D",
|
|
0x8B: "ADC A,E",
|
|
0x8C: "ADC A,IXH",
|
|
0x8D: "ADC A,IXL",
|
|
0x8E: "ADC A,(IX+d)",
|
|
0x8F: "ADC A,A",
|
|
|
|
0x90: "SUB B",
|
|
0x91: "SUB C",
|
|
0x92: "SUB D",
|
|
0x93: "SUB E",
|
|
0x94: "SUB IXH",
|
|
0x95: "SUB IXL",
|
|
0x96: "SUB (IX+d)",
|
|
0x97: "SUB A",
|
|
0x98: "SBC A,B",
|
|
0x99: "SBC A,C",
|
|
0x9A: "SBC A,D",
|
|
0x9B: "SBC A,E",
|
|
0x9C: "SBC A,IXH",
|
|
0x9D: "SBC A,IXL",
|
|
0x9E: "SBC A,(IX+d)",
|
|
0x9F: "SBC A,A",
|
|
|
|
0xA0: "AND B",
|
|
0xA1: "AND C",
|
|
0xA2: "AND D",
|
|
0xA3: "AND E",
|
|
0xA4: "AND IXH",
|
|
0xA5: "AND IXL",
|
|
0xA6: "AND (IX+d)",
|
|
0xA7: "AND A",
|
|
0xA8: "XOR B",
|
|
0xA9: "XOR C",
|
|
0xAA: "XOR D",
|
|
0xAB: "XOR E",
|
|
0xAC: "XOR IXH",
|
|
0xAD: "XOR IXL",
|
|
0xAE: "XOR (IX+d)",
|
|
0xEF: "XOR A",
|
|
|
|
0xB0: "OR B",
|
|
0xB1: "OR C",
|
|
0xB2: "OR D",
|
|
0xB3: "OR E",
|
|
0xB4: "OR IXH",
|
|
0xB5: "OR IXL",
|
|
0xB6: "OR (IX+d)",
|
|
0xB7: "OR A",
|
|
0xB8: "CP B",
|
|
0xB9: "CP C",
|
|
0xBA: "CP D",
|
|
0xBB: "CP E",
|
|
0xBC: "CP IXH",
|
|
0xBD: "CP IXL",
|
|
0xBE: "CP (IX+d)",
|
|
0xBF: "CP A",
|
|
|
|
0xC0: "RET NZ",
|
|
0xC1: "POP BC",
|
|
0xC2: "JP NZ,NNNN",
|
|
0xC3: "JP NNNN",
|
|
0xC4: "CALL NZ,NNNN",
|
|
0xC5: "PUSH BC",
|
|
0xC6: "ADD A,NN",
|
|
0xC7: "RST 00h",
|
|
0xC8: "RET Z",
|
|
0xC9: "RET",
|
|
0xCA: "JP Z,NNNN",
|
|
0xCB: "CB PREFIX",
|
|
0xCC: "CALL Z,NNNN",
|
|
0xCD: "CALL NNNN",
|
|
0xCE: "ADC A,NN",
|
|
0xCF: "RST 08h",
|
|
|
|
0xD0: "RET NC",
|
|
0xD1: "POP DE",
|
|
0xD2: "JP NC,NNNN",
|
|
0xD3: "OUT (NN),A",
|
|
0xD4: "CALL NC,NNNN",
|
|
0xD5: "PUSH DE",
|
|
0xD6: "SUB NN",
|
|
0xD7: "RST 10h",
|
|
0xD8: "RET C",
|
|
0xD9: "EXX",
|
|
0xDA: "JP C,NNNN",
|
|
0xDB: "IN A,(NN)",
|
|
0xDC: "CALL C,NNNN",
|
|
0xDD: "DD PREFIX",
|
|
0xDE: "SBC A,NN",
|
|
0xDF: "RST 18h",
|
|
|
|
0xE0: "RET PO",
|
|
0xE1: "POP IX",
|
|
0xE2: "JP PO,NNNN",
|
|
0xE3: "EX (SP),IX",
|
|
0xE4: "CALL PO,NNNN",
|
|
0xE5: "PUSH IX",
|
|
0xE6: "AND NN",
|
|
0xE7: "RST 20h",
|
|
0xE8: "RET PE",
|
|
0xE9: "JP (IX)",
|
|
0xEA: "JP PE,NNNN",
|
|
0xEB: "EX DE,HL",
|
|
0xEC: "CALL PE,NNNN",
|
|
0xED: "ED PREFIX",
|
|
0xEE: "XOR NN",
|
|
0xEF: "RST 28h",
|
|
|
|
0xF0: "RET P",
|
|
0xF1: "POP AF",
|
|
0xF2: "JP P,NNNN",
|
|
0xF3: "DI",
|
|
0xF4: "CALL P,NNNN",
|
|
0xF5: "PUSH AF",
|
|
0xF7: "OR NN",
|
|
0xF7: "RST 30h",
|
|
0xF8: "RET M",
|
|
0xF9: "LD SP,IX",
|
|
0xFA: "JP M,NNNN",
|
|
0xFB: "EI",
|
|
0xFC: "CALL M,NNNN",
|
|
0xFD: "FD PREFIX",
|
|
0xFE: "CP NN",
|
|
0xFF: "RST 38h"
|
|
};
|
|
|
|
var disassembly_fd={
|
|
|
|
0x00: "NOP",
|
|
0x01: "LD BC,NNNN",
|
|
0x02: "LD (BC),A",
|
|
0x03: "INC BC",
|
|
0x04: "INC B",
|
|
0x05: "DEC B",
|
|
0x06: "LD B,NN",
|
|
0x07: "RLCA",
|
|
0x08: "EX AF,AF'",
|
|
0x09: "ADD IY,BC",
|
|
0x0A: "LD A,(BC)",
|
|
0x0B: "DEC BC",
|
|
0x0C: "INC C",
|
|
0x0D: "DEC C",
|
|
0x0E: "LD C,NN",
|
|
0x0F: "RRCA",
|
|
|
|
0x10: "DJNZ REL",
|
|
0x11: "LD DE,NNNN",
|
|
0x12: "LD (DE),A",
|
|
0x13: "INC DE",
|
|
0x14: "INC D",
|
|
0x15: "DEC D",
|
|
0x16: "LD D,NN",
|
|
0x17: "RLA",
|
|
0x18: "JR REL",
|
|
0x19: "ADD IY,DE",
|
|
0x1A: "LD A,(DE)",
|
|
0x1B: "DEC DE",
|
|
0x1C: "INC E",
|
|
0x1D: "DEC E",
|
|
0x1E: "LD E,NN",
|
|
0x1F: "RRA",
|
|
|
|
0x20: "JR NZ,REL",
|
|
0x21: "LD IY,NNNN",
|
|
0x22: "LD (NNNN),IY",
|
|
0x23: "INC IY",
|
|
0x24: "INC IYH",
|
|
0x25: "DEC IYH",
|
|
0x26: "LD IYH,NN",
|
|
0x27: "DAA",
|
|
0x28: "JR Z,REL",
|
|
0x29: "ADD IY,IY",
|
|
0x2A: "LD IY,(NNNN)",
|
|
0x2B: "DEC IY",
|
|
0x2C: "INC IYL",
|
|
0x2D: "DEC IYL",
|
|
0x2E: "LD IYL,NN",
|
|
0x2F: "CPL",
|
|
|
|
0x30: "JR NC,REL",
|
|
0x31: "LD SP,NNNN",
|
|
0x32: "LD (NNNN),A",
|
|
0x33: "INC SP",
|
|
0x34: "INC (IY+d)",
|
|
0x35: "DEC (IY+d)",
|
|
0x36: "LD (IY+d),NN",
|
|
0x37: "SCF",
|
|
0x38: "JR C,REL",
|
|
0x39: "ADD IY,SP",
|
|
0x3A: "LD A,(NNNN)",
|
|
0x3B: "DEC SP",
|
|
0x3C: "INC A",
|
|
0x3D: "DEC A",
|
|
0x3D: "LD A,NN",
|
|
0x3F: "CCF",
|
|
|
|
0x40: "LD B,B",
|
|
0x41: "LD B,C",
|
|
0x42: "LD B,D",
|
|
0x44: "LD B,E",
|
|
0x44: "LD B,IYH",
|
|
0x45: "LD B,IYL",
|
|
0x46: "LD B,(IY+d)",
|
|
0x47: "LD B,A",
|
|
0x48: "LD C,B",
|
|
0x49: "LD C,C",
|
|
0x4A: "LD C,D",
|
|
0x4B: "LD C,E",
|
|
0x4C: "LD C,IYH",
|
|
0x4D: "LD C,IYL",
|
|
0x4E: "LD C,(IY+d)",
|
|
0x4F: "LD C,A",
|
|
|
|
0x50: "LD D,B",
|
|
0x51: "LD D,C",
|
|
0x52: "LD D,D",
|
|
0x52: "LD D,E",
|
|
0x54: "LD D,IYH",
|
|
0x55: "LD D,IYL",
|
|
0x56: "LD D,(IY+d)",
|
|
0x57: "LD D,A",
|
|
0x58: "LD E,B",
|
|
0x59: "LD E,C",
|
|
0x5A: "LD E,D",
|
|
0x5B: "LD E,E",
|
|
0x5C: "LD E,IYH",
|
|
0x5D: "LD E,IYL",
|
|
0x5E: "LD E,(IY+d)",
|
|
0x5F: "LD E,A",
|
|
|
|
0x60: "LD IYH,B",
|
|
0x61: "LD IYH,C",
|
|
0x62: "LD IYH,D",
|
|
0x63: "LD IYH,E",
|
|
0x64: "LD IYH,IYH",
|
|
0x65: "LD IYH,IYL",
|
|
0x66: "LD H,(IY+d)",
|
|
0x67: "LD IYH,A",
|
|
0x68: "LD IYL,B",
|
|
0x69: "LD IYL,C",
|
|
0x6A: "LD IYL,D",
|
|
0x6B: "LD IYL,E",
|
|
0x6C: "LD IYL,IYH",
|
|
0x6D: "LD IYL,IYL",
|
|
0x6E: "LD L,(IY+d)",
|
|
0x6F: "LD IYL,A",
|
|
|
|
0x70: "LD (IY+d),B",
|
|
0x71: "LD (IY+d),C",
|
|
0x72: "LD (IY+d),D",
|
|
0x73: "LD (IY+d),E",
|
|
0x74: "LD (IY+d),H",
|
|
0x75: "LD (IY+d),L",
|
|
0x76: "HALT",
|
|
0x77: "LD (IY+d),A",
|
|
0x78: "LD A,B",
|
|
0x79: "LD A,C",
|
|
0x7A: "LD A,D",
|
|
0x7B: "LD A,E",
|
|
0x7C: "LD A,IYH",
|
|
0x7D: "LD A,IYL",
|
|
0x7E: "LD A,(IY+d)",
|
|
0x7F: "LD A,A",
|
|
|
|
0x80: "ADD A,B",
|
|
0x81: "ADD A,C",
|
|
0x82: "ADD A,D",
|
|
0x83: "ADD A,E",
|
|
0x84: "ADD A,IYH",
|
|
0x85: "ADD A,IYL",
|
|
0x86: "ADD A,(IY+d)",
|
|
0x87: "ADD A,A",
|
|
0x88: "ADC A,B",
|
|
0x89: "ADC A,C",
|
|
0x8A: "ADC A,D",
|
|
0x8B: "ADC A,E",
|
|
0x8C: "ADC A,IYH",
|
|
0x8D: "ADC A,IYL",
|
|
0x8E: "ADC A,(IY+d)",
|
|
0x8F: "ADC A,A",
|
|
|
|
0x90: "SUB B",
|
|
0x91: "SUB C",
|
|
0x92: "SUB D",
|
|
0x93: "SUB E",
|
|
0x94: "SUB IYH",
|
|
0x95: "SUB IYL",
|
|
0x96: "SUB (IY+d)",
|
|
0x97: "SUB A",
|
|
0x98: "SBC A,B",
|
|
0x99: "SBC A,C",
|
|
0x9A: "SBC A,D",
|
|
0x9B: "SBC A,E",
|
|
0x9C: "SBC A,IYH",
|
|
0x9D: "SBC A,IYL",
|
|
0x9E: "SBC A,(IY+d)",
|
|
0x9F: "SBC A,A",
|
|
|
|
0xA0: "AND B",
|
|
0xA1: "AND C",
|
|
0xA2: "AND D",
|
|
0xA3: "AND E",
|
|
0xA4: "AND IYH",
|
|
0xA5: "AND IYL",
|
|
0xA6: "AND (IY+d)",
|
|
0xA7: "AND A",
|
|
0xA8: "XOR B",
|
|
0xA9: "XOR C",
|
|
0xAA: "XOR D",
|
|
0xAB: "XOR E",
|
|
0xAC: "XOR IYH",
|
|
0xAD: "XOR IYL",
|
|
0xAE: "XOR (IY+d)",
|
|
0xEF: "XOR A",
|
|
|
|
0xB0: "OR B",
|
|
0xB1: "OR C",
|
|
0xB2: "OR D",
|
|
0xB3: "OR E",
|
|
0xB4: "OR IYH",
|
|
0xB5: "OR IYL",
|
|
0xB6: "OR (IY+d)",
|
|
0xB7: "OR A",
|
|
0xB8: "CP B",
|
|
0xB9: "CP C",
|
|
0xBA: "CP D",
|
|
0xBB: "CP E",
|
|
0xBC: "CP IYH",
|
|
0xBD: "CP IYL",
|
|
0xBE: "CP (IY+d)",
|
|
0xBF: "CP A",
|
|
|
|
0xC0: "RET NZ",
|
|
0xC1: "POP BC",
|
|
0xC2: "JP NZ,NNNN",
|
|
0xC3: "JP NNNN",
|
|
0xC4: "CALL NZ,NNNN",
|
|
0xC5: "PUSH BC",
|
|
0xC6: "ADD A,NN",
|
|
0xC7: "RST 00h",
|
|
0xC8: "RET Z",
|
|
0xC9: "RET",
|
|
0xCA: "JP Z,NNNN",
|
|
0xCB: "CB PREFIX",
|
|
0xCC: "CALL Z,NNNN",
|
|
0xCD: "CALL NNNN",
|
|
0xCE: "ADC A,NN",
|
|
0xCF: "RST 08h",
|
|
|
|
0xD0: "RET NC",
|
|
0xD1: "POP DE",
|
|
0xD2: "JP NC,NNNN",
|
|
0xD3: "OUT (NN),A",
|
|
0xD4: "CALL NC,NNNN",
|
|
0xD5: "PUSH DE",
|
|
0xD6: "SUB NN",
|
|
0xD7: "RST 10h",
|
|
0xD8: "RET C",
|
|
0xD9: "EXX",
|
|
0xDA: "JP C,NNNN",
|
|
0xDB: "IN A,(NN)",
|
|
0xDC: "CALL C,NNNN",
|
|
0xDD: "DD PREFIX",
|
|
0xDE: "SBC A,NN",
|
|
0xDF: "RST 18h",
|
|
|
|
0xE0: "RET PO",
|
|
0xE1: "POP IY",
|
|
0xE2: "JP PO,NNNN",
|
|
0xE3: "EX (SP),IY",
|
|
0xE4: "CALL PO,NNNN",
|
|
0xE5: "PUSH IY",
|
|
0xE6: "AND NN",
|
|
0xE7: "RST 20h",
|
|
0xE8: "RET PE",
|
|
0xE9: "JP (IY)",
|
|
0xEA: "JP PE,NNNN",
|
|
0xEB: "EX DE,HL",
|
|
0xEC: "CALL PE,NNNN",
|
|
0xED: "ED PREFIX",
|
|
0xEE: "XOR NN",
|
|
0xEF: "RST 28h",
|
|
|
|
0xF0: "RET P",
|
|
0xF1: "POP AF",
|
|
0xF2: "JP P,NNNN",
|
|
0xF3: "DI",
|
|
0xF4: "CALL P,NNNN",
|
|
0xF5: "PUSH AF",
|
|
0xF7: "OR NN",
|
|
0xF7: "RST 30h",
|
|
0xF8: "RET M",
|
|
0xF9: "LD SP,IY",
|
|
0xFA: "JP M,NNNN",
|
|
0xFB: "EI",
|
|
0xFC: "CALL M,NNNN",
|
|
0xFD: "FD PREFIX",
|
|
0xFE: "CP NN",
|
|
0xFF: "RST 38h"
|
|
};
|
|
|
|
var disassembly_ddcb={
|
|
|
|
0x00: "RLC (IX+d),B",
|
|
0x01: "RLC (IX+d),C",
|
|
0x02: "RLC (IX+d),D",
|
|
0x03: "RLC (IX+d),E",
|
|
0x04: "RLC (IX+d),H",
|
|
0x05: "RLC (IX+d),L",
|
|
0x06: "RLC (IX+d)",
|
|
0x07: "RLC (IX+d),A",
|
|
0x08: "RRC (IX+d),B",
|
|
0x09: "RRC (IX+d),C",
|
|
0x0A: "RRC (IX+d),D",
|
|
0x0B: "RRC (IX+d),E",
|
|
0x0C: "RRC (IX+d),H",
|
|
0x0D: "RRC (IX+d),L",
|
|
0x0E: "RRC (IX+d)",
|
|
0x0F: "RRC (IX+d),A",
|
|
|
|
0x10: "RL (IX+d),B",
|
|
0x11: "RL (IX+d),C",
|
|
0x12: "RL (IX+d),D",
|
|
0x13: "RL (IX+d),E",
|
|
0x14: "RL (IX+d),H",
|
|
0x15: "RL (IX+d),L",
|
|
0x16: "RL (IX+d)",
|
|
0x17: "RL (IX+d),A",
|
|
0x18: "RR (IX+d),B",
|
|
0x19: "RR (IX+d),C",
|
|
0x1A: "RR (IX+d),D",
|
|
0x1B: "RR (IX+d),E",
|
|
0x1C: "RR (IX+d),H",
|
|
0x1D: "RR (IX+d),L",
|
|
0x1E: "RR (IX+d)",
|
|
0x1F: "RR (IX+d),A",
|
|
|
|
0x20: "SLA (IX+d),B",
|
|
0x21: "SLA (IX+d),C",
|
|
0x22: "SLA (IX+d),D",
|
|
0x23: "SLA (IX+d),E",
|
|
0x24: "SLA (IX+d),H",
|
|
0x25: "SLA (IX+d),L",
|
|
0x26: "SLA (IX+d)",
|
|
0x27: "SLA (IX+d),A",
|
|
0x28: "SRA (IX+d),B",
|
|
0x29: "SRA (IX+d),C",
|
|
0x2A: "SRA (IX+d),D",
|
|
0x2B: "SRA (IX+d),E",
|
|
0x2C: "SRA (IX+d),H",
|
|
0x2D: "SRA (IX+d),L",
|
|
0x2E: "SRA (IX+d)",
|
|
0x2F: "SRA (IX+d),A",
|
|
|
|
0x30: "SLL (IX+d),B",
|
|
0x31: "SLL (IX+d),C",
|
|
0x32: "SLL (IX+d),D",
|
|
0x33: "SLL (IX+d),E",
|
|
0x34: "SLL (IX+d),H",
|
|
0x35: "SLL (IX+d),L",
|
|
0x36: "SLL (IX+d)",
|
|
0x37: "SLL (IX+d),A",
|
|
0x38: "SRL (IX+d),B",
|
|
0x39: "SRL (IX+d),C",
|
|
0x3A: "SRL (IX+d),D",
|
|
0x3B: "SRL (IX+d),E",
|
|
0x3C: "SRL (IX+d),H",
|
|
0x3D: "SRL (IX+d),L",
|
|
0x3E: "SRL (IX+d)",
|
|
0x3F: "SRL (IX+d),A",
|
|
|
|
0x40: "BIT 0,(IX+d)",
|
|
0x41: "BIT 0,(IX+d)",
|
|
0x42: "BIT 0,(IX+d)",
|
|
0x43: "BIT 0,(IX+d)",
|
|
0x44: "BIT 0,(IX+d)",
|
|
0x45: "BIT 0,(IX+d)",
|
|
0x46: "BIT 0,(IX+d)",
|
|
0x47: "BIT 0,(IX+d)",
|
|
0x48: "BIT 1,(IX+d)",
|
|
0x49: "BIT 1,(IX+d)",
|
|
0x4A: "BIT 1,(IX+d)",
|
|
0x4B: "BIT 1,(IX+d)",
|
|
0x4C: "BIT 1,(IX+d)",
|
|
0x4D: "BIT 1,(IX+d)",
|
|
0x4E: "BIT 1,(IX+d)",
|
|
0x4F: "BIT 1,(IX+d)",
|
|
|
|
0x50: "BIT 2,(IX+d)",
|
|
0x51: "BIT 2,(IX+d)",
|
|
0x52: "BIT 2,(IX+d)",
|
|
0x53: "BIT 2,(IX+d)",
|
|
0x54: "BIT 2,(IX+d)",
|
|
0x55: "BIT 2,(IX+d)",
|
|
0x56: "BIT 2,(IX+d)",
|
|
0x57: "BIT 2,(IX+d)",
|
|
0x58: "BIT 3,(IX+d)",
|
|
0x59: "BIT 3,(IX+d)",
|
|
0x5A: "BIT 3,(IX+d)",
|
|
0x5B: "BIT 3,(IX+d)",
|
|
0x5C: "BIT 3,(IX+d)",
|
|
0x5D: "BIT 3,(IX+d)",
|
|
0x5E: "BIT 3,(IX+d)",
|
|
0x5F: "BIT 3,(IX+d)",
|
|
|
|
0x60: "BIT 4,(IX+d)",
|
|
0x61: "BIT 4,(IX+d)",
|
|
0x62: "BIT 4,(IX+d)",
|
|
0x63: "BIT 4,(IX+d)",
|
|
0x64: "BIT 4,(IX+d)",
|
|
0x65: "BIT 4,(IX+d)",
|
|
0x66: "BIT 4,(IX+d)",
|
|
0x67: "BIT 4,(IX+d)",
|
|
0x68: "BIT 5,(IX+d)",
|
|
0x69: "BIT 5,(IX+d)",
|
|
0x6A: "BIT 5,(IX+d)",
|
|
0x6B: "BIT 5,(IX+d)",
|
|
0x6C: "BIT 5,(IX+d)",
|
|
0x6D: "BIT 5,(IX+d)",
|
|
0x6E: "BIT 5,(IX+d)",
|
|
0x6F: "BIT 5,(IX+d)",
|
|
|
|
0x70: "BIT 6,(IX+d)",
|
|
0x71: "BIT 6,(IX+d)",
|
|
0x72: "BIT 6,(IX+d)",
|
|
0x73: "BIT 6,(IX+d)",
|
|
0x74: "BIT 6,(IX+d)",
|
|
0x75: "BIT 6,(IX+d)",
|
|
0x76: "BIT 6,(IX+d)",
|
|
0x77: "BIT 6,(IX+d)",
|
|
0x78: "BIT 7,(IX+d)",
|
|
0x79: "BIT 7,(IX+d)",
|
|
0x7A: "BIT 7,(IX+d)",
|
|
0x7B: "BIT 7,(IX+d)",
|
|
0x7C: "BIT 7,(IX+d)",
|
|
0x7D: "BIT 7,(IX+d)",
|
|
0x7E: "BIT 7,(IX+d)",
|
|
0x7F: "BIT 7,(IX+d)",
|
|
|
|
0x80: "RES 0,(IX+d),B",
|
|
0x81: "RES 0,(IX+d),C",
|
|
0x82: "RES 0,(IX+d),D",
|
|
0x83: "RES 0,(IX+d),E",
|
|
0x84: "RES 0,(IX+d),H",
|
|
0x85: "RES 0,(IX+d),L",
|
|
0x86: "RES 0,(IX+d)",
|
|
0x87: "RES 0,(IX+d),A",
|
|
0x88: "RES 1,(IX+d),B",
|
|
0x89: "RES 1,(IX+d),C",
|
|
0x8A: "RES 1,(IX+d),D",
|
|
0x8B: "RES 1,(IX+d),E",
|
|
0x8C: "RES 1,(IX+d),H",
|
|
0x8D: "RES 1,(IX+d),L",
|
|
0x8E: "RES 1,(IX+d)",
|
|
0x8F: "RES 1,(IX+d),A",
|
|
|
|
0x90: "RES 2,(IX+d),B",
|
|
0x91: "RES 2,(IX+d),C",
|
|
0x92: "RES 2,(IX+d),D",
|
|
0x93: "RES 2,(IX+d),E",
|
|
0x94: "RES 2,(IX+d),H",
|
|
0x95: "RES 2,(IX+d),L",
|
|
0x96: "RES 2,(IX+d)",
|
|
0x97: "RES 2,(IX+d),A",
|
|
0x98: "RES 3,(IX+d),B",
|
|
0x99: "RES 3,(IX+d),C",
|
|
0x9A: "RES 3,(IX+d),D",
|
|
0x9B: "RES 3,(IX+d),E",
|
|
0x9C: "RES 3,(IX+d),H",
|
|
0x9D: "RES 3,(IX+d),L",
|
|
0x9E: "RES 3,(IX+d)",
|
|
0x9F: "RES 3,(IX+d),A",
|
|
|
|
0xA0: "RES 4,(IX+d),B",
|
|
0xA1: "RES 4,(IX+d),C",
|
|
0xA2: "RES 4,(IX+d),D",
|
|
0xA3: "RES 4,(IX+d),E",
|
|
0xA4: "RES 4,(IX+d),H",
|
|
0xA5: "RES 4,(IX+d),L",
|
|
0xA6: "RES 4,(IX+d)",
|
|
0xA7: "RES 4,(IX+d),A",
|
|
0xA8: "RES 5,(IX+d),B",
|
|
0xA9: "RES 5,(IX+d),C",
|
|
0xAA: "RES 5,(IX+d),D",
|
|
0xAB: "RES 5,(IX+d),E",
|
|
0xAC: "RES 5,(IX+d),H",
|
|
0xAD: "RES 5,(IX+d),L",
|
|
0xAE: "RES 5,(IX+d)",
|
|
0xAF: "RES 5,(IX+d),A",
|
|
|
|
0xB0: "RES 6,(IX+d),B",
|
|
0xB1: "RES 6,(IX+d),C",
|
|
0xB2: "RES 6,(IX+d),D",
|
|
0xB3: "RES 6,(IX+d),E",
|
|
0xB4: "RES 6,(IX+d),H",
|
|
0xB5: "RES 6,(IX+d),L",
|
|
0xB6: "RES 6,(IX+d)",
|
|
0xB7: "RES 6,(IX+d),A",
|
|
0xB8: "RES 7,(IX+d),B",
|
|
0xB9: "RES 7,(IX+d),C",
|
|
0xBA: "RES 7,(IX+d),D",
|
|
0xBB: "RES 7,(IX+d),E",
|
|
0xBC: "RES 7,(IX+d),H",
|
|
0xBD: "RES 7,(IX+d),L",
|
|
0xBE: "RES 7,(IX+d)",
|
|
0xBF: "RES 7,(IX+d),A",
|
|
|
|
0xC0: "SET 0,(IX+d),B",
|
|
0xC1: "SET 0,(IX+d),C",
|
|
0xC2: "SET 0,(IX+d),D",
|
|
0xC3: "SET 0,(IX+d),E",
|
|
0xC4: "SET 0,(IX+d),H",
|
|
0xC5: "SET 0,(IX+d),L",
|
|
0xC6: "SET 0,(IX+d)",
|
|
0xC7: "SET 0,(IX+d),A",
|
|
0xC8: "SET 1,(IX+d),B",
|
|
0xC9: "SET 1,(IX+d),C",
|
|
0xCA: "SET 1,(IX+d),D",
|
|
0xCB: "SET 1,(IX+d),E",
|
|
0xCC: "SET 1,(IX+d),H",
|
|
0xCD: "SET 1,(IX+d),L",
|
|
0xCE: "SET 1,(IX+d)",
|
|
0xCF: "SET 1,(IX+d),A",
|
|
|
|
0xD0: "SET 2,(IX+d),B",
|
|
0xD1: "SET 2,(IX+d),C",
|
|
0xD2: "SET 2,(IX+d),D",
|
|
0xD3: "SET 2,(IX+d),E",
|
|
0xD4: "SET 2,(IX+d),H",
|
|
0xD5: "SET 2,(IX+d),L",
|
|
0xD6: "SET 2,(IX+d)",
|
|
0xD7: "SET 2,(IX+d),A",
|
|
0xD8: "SET 3,(IX+d),B",
|
|
0xD9: "SET 3,(IX+d),C",
|
|
0xDA: "SET 3,(IX+d),D",
|
|
0xDB: "SET 3,(IX+d),E",
|
|
0xDC: "SET 3,(IX+d),H",
|
|
0xDD: "SET 3,(IX+d),L",
|
|
0xDE: "SET 3,(IX+d)",
|
|
0xDF: "SET 3,(IX+d),A",
|
|
|
|
0xE0: "SET 4,(IX+d),B",
|
|
0xE1: "SET 4,(IX+d),C",
|
|
0xE2: "SET 4,(IX+d),D",
|
|
0xE3: "SET 4,(IX+d),E",
|
|
0xE4: "SET 4,(IX+d),H",
|
|
0xE5: "SET 4,(IX+d),L",
|
|
0xE6: "SET 4,(IX+d)",
|
|
0xE7: "SET 4,(IX+d),A",
|
|
0xE8: "SET 5,(IX+d),B",
|
|
0xE9: "SET 5,(IX+d),C",
|
|
0xEA: "SET 5,(IX+d),D",
|
|
0xEB: "SET 5,(IX+d),E",
|
|
0xEC: "SET 5,(IX+d),H",
|
|
0xED: "SET 5,(IX+d),L",
|
|
0xEE: "SET 5,(IX+d)",
|
|
0xEF: "SET 5,(IX+d),A",
|
|
|
|
0xF0: "SET 6,(IX+d),B",
|
|
0xF1: "SET 6,(IX+d),C",
|
|
0xF2: "SET 6,(IX+d),D",
|
|
0xF3: "SET 6,(IX+d),E",
|
|
0xF4: "SET 6,(IX+d),H",
|
|
0xF5: "SET 6,(IX+d),L",
|
|
0xF6: "SET 6,(IX+d)",
|
|
0xF7: "SET 6,(IX+d),A",
|
|
0xF8: "SET 7,(IX+d),B",
|
|
0xF9: "SET 7,(IX+d),C",
|
|
0xFA: "SET 7,(IX+d),D",
|
|
0xFB: "SET 7,(IX+d),E",
|
|
0xFC: "SET 7,(IX+d),H",
|
|
0xFD: "SET 7,(IX+d),L",
|
|
0xFE: "SET 7,(IX+d)",
|
|
0xFF: "SET 7,(IX+d),A",
|
|
|
|
0x100: "DISPLACEMENT"
|
|
};
|
|
|
|
var disassembly_fdcb={
|
|
|
|
0x00: "RLC (IY+d),B",
|
|
0x01: "RLC (IY+d),C",
|
|
0x02: "RLC (IY+d),D",
|
|
0x03: "RLC (IY+d),E",
|
|
0x04: "RLC (IY+d),H",
|
|
0x05: "RLC (IY+d),L",
|
|
0x06: "RLC (IY+d)",
|
|
0x07: "RLC (IY+d),A",
|
|
0x08: "RRC (IY+d),B",
|
|
0x09: "RRC (IY+d),C",
|
|
0x0A: "RRC (IY+d),D",
|
|
0x0B: "RRC (IY+d),E",
|
|
0x0C: "RRC (IY+d),H",
|
|
0x0D: "RRC (IY+d),L",
|
|
0x0E: "RRC (IY+d)",
|
|
0x0F: "RRC (IY+d),A",
|
|
|
|
0x10: "RL (IY+d),B",
|
|
0x11: "RL (IY+d),C",
|
|
0x12: "RL (IY+d),D",
|
|
0x13: "RL (IY+d),E",
|
|
0x14: "RL (IY+d),H",
|
|
0x15: "RL (IY+d),L",
|
|
0x16: "RL (IY+d)",
|
|
0x17: "RL (IY+d),A",
|
|
0x18: "RR (IY+d),B",
|
|
0x19: "RR (IY+d),C",
|
|
0x1A: "RR (IY+d),D",
|
|
0x1B: "RR (IY+d),E",
|
|
0x1C: "RR (IY+d),H",
|
|
0x1D: "RR (IY+d),L",
|
|
0x1E: "RR (IY+d)",
|
|
0x1F: "RR (IY+d),A",
|
|
|
|
0x20: "SLA (IY+d),B",
|
|
0x21: "SLA (IY+d),C",
|
|
0x22: "SLA (IY+d),D",
|
|
0x23: "SLA (IY+d),E",
|
|
0x24: "SLA (IY+d),H",
|
|
0x25: "SLA (IY+d),L",
|
|
0x26: "SLA (IY+d)",
|
|
0x27: "SLA (IY+d),A",
|
|
0x28: "SRA (IY+d),B",
|
|
0x29: "SRA (IY+d),C",
|
|
0x2A: "SRA (IY+d),D",
|
|
0x2B: "SRA (IY+d),E",
|
|
0x2C: "SRA (IY+d),H",
|
|
0x2D: "SRA (IY+d),L",
|
|
0x2E: "SRA (IY+d)",
|
|
0x2F: "SRA (IY+d),A",
|
|
|
|
0x30: "SLL (IY+d),B",
|
|
0x31: "SLL (IY+d),C",
|
|
0x32: "SLL (IY+d),D",
|
|
0x33: "SLL (IY+d),E",
|
|
0x34: "SLL (IY+d),H",
|
|
0x35: "SLL (IY+d),L",
|
|
0x36: "SLL (IY+d)",
|
|
0x37: "SLL (IY+d),A",
|
|
0x38: "SRL (IY+d),B",
|
|
0x39: "SRL (IY+d),C",
|
|
0x3A: "SRL (IY+d),D",
|
|
0x3B: "SRL (IY+d),E",
|
|
0x3C: "SRL (IY+d),H",
|
|
0x3D: "SRL (IY+d),L",
|
|
0x3E: "SRL (IY+d)",
|
|
0x3F: "SRL (IY+d),A",
|
|
|
|
0x40: "BIT 0,(IY+d)",
|
|
0x41: "BIT 0,(IY+d)",
|
|
0x42: "BIT 0,(IY+d)",
|
|
0x43: "BIT 0,(IY+d)",
|
|
0x44: "BIT 0,(IY+d)",
|
|
0x45: "BIT 0,(IY+d)",
|
|
0x46: "BIT 0,(IY+d)",
|
|
0x47: "BIT 0,(IY+d)",
|
|
0x48: "BIT 1,(IY+d)",
|
|
0x49: "BIT 1,(IY+d)",
|
|
0x4A: "BIT 1,(IY+d)",
|
|
0x4B: "BIT 1,(IY+d)",
|
|
0x4C: "BIT 1,(IY+d)",
|
|
0x4D: "BIT 1,(IY+d)",
|
|
0x4E: "BIT 1,(IY+d)",
|
|
0x4F: "BIT 1,(IY+d)",
|
|
|
|
0x50: "BIT 2,(IY+d)",
|
|
0x51: "BIT 2,(IY+d)",
|
|
0x52: "BIT 2,(IY+d)",
|
|
0x53: "BIT 2,(IY+d)",
|
|
0x54: "BIT 2,(IY+d)",
|
|
0x55: "BIT 2,(IY+d)",
|
|
0x56: "BIT 2,(IY+d)",
|
|
0x57: "BIT 2,(IY+d)",
|
|
0x58: "BIT 3,(IY+d)",
|
|
0x59: "BIT 3,(IY+d)",
|
|
0x5A: "BIT 3,(IY+d)",
|
|
0x5B: "BIT 3,(IY+d)",
|
|
0x5C: "BIT 3,(IY+d)",
|
|
0x5D: "BIT 3,(IY+d)",
|
|
0x5E: "BIT 3,(IY+d)",
|
|
0x5F: "BIT 3,(IY+d)",
|
|
|
|
0x60: "BIT 4,(IY+d)",
|
|
0x61: "BIT 4,(IY+d)",
|
|
0x62: "BIT 4,(IY+d)",
|
|
0x63: "BIT 4,(IY+d)",
|
|
0x64: "BIT 4,(IY+d)",
|
|
0x65: "BIT 4,(IY+d)",
|
|
0x66: "BIT 4,(IY+d)",
|
|
0x67: "BIT 4,(IY+d)",
|
|
0x68: "BIT 5,(IY+d)",
|
|
0x69: "BIT 5,(IY+d)",
|
|
0x6A: "BIT 5,(IY+d)",
|
|
0x6B: "BIT 5,(IY+d)",
|
|
0x6C: "BIT 5,(IY+d)",
|
|
0x6D: "BIT 5,(IY+d)",
|
|
0x6E: "BIT 5,(IY+d)",
|
|
0x6F: "BIT 5,(IY+d)",
|
|
|
|
0x70: "BIT 6,(IY+d)",
|
|
0x71: "BIT 6,(IY+d)",
|
|
0x72: "BIT 6,(IY+d)",
|
|
0x73: "BIT 6,(IY+d)",
|
|
0x74: "BIT 6,(IY+d)",
|
|
0x75: "BIT 6,(IY+d)",
|
|
0x76: "BIT 6,(IY+d)",
|
|
0x77: "BIT 6,(IY+d)",
|
|
0x78: "BIT 7,(IY+d)",
|
|
0x79: "BIT 7,(IY+d)",
|
|
0x7A: "BIT 7,(IY+d)",
|
|
0x7B: "BIT 7,(IY+d)",
|
|
0x7C: "BIT 7,(IY+d)",
|
|
0x7D: "BIT 7,(IY+d)",
|
|
0x7E: "BIT 7,(IY+d)",
|
|
0x7F: "BIT 7,(IY+d)",
|
|
|
|
0x80: "RES 0,(IY+d),B",
|
|
0x81: "RES 0,(IY+d),C",
|
|
0x82: "RES 0,(IY+d),D",
|
|
0x83: "RES 0,(IY+d),E",
|
|
0x84: "RES 0,(IY+d),H",
|
|
0x85: "RES 0,(IY+d),L",
|
|
0x86: "RES 0,(IY+d)",
|
|
0x87: "RES 0,(IY+d),A",
|
|
0x88: "RES 1,(IY+d),B",
|
|
0x89: "RES 1,(IY+d),C",
|
|
0x8A: "RES 1,(IY+d),D",
|
|
0x8B: "RES 1,(IY+d),E",
|
|
0x8C: "RES 1,(IY+d),H",
|
|
0x8D: "RES 1,(IY+d),L",
|
|
0x8E: "RES 1,(IY+d)",
|
|
0x8F: "RES 1,(IY+d),A",
|
|
|
|
0x90: "RES 2,(IY+d),B",
|
|
0x91: "RES 2,(IY+d),C",
|
|
0x92: "RES 2,(IY+d),D",
|
|
0x93: "RES 2,(IY+d),E",
|
|
0x94: "RES 2,(IY+d),H",
|
|
0x95: "RES 2,(IY+d),L",
|
|
0x96: "RES 2,(IY+d)",
|
|
0x97: "RES 2,(IY+d),A",
|
|
0x98: "RES 3,(IY+d),B",
|
|
0x99: "RES 3,(IY+d),C",
|
|
0x9A: "RES 3,(IY+d),D",
|
|
0x9B: "RES 3,(IY+d),E",
|
|
0x9C: "RES 3,(IY+d),H",
|
|
0x9D: "RES 3,(IY+d),L",
|
|
0x9E: "RES 3,(IY+d)",
|
|
0x9F: "RES 3,(IY+d),A",
|
|
|
|
0xA0: "RES 4,(IY+d),B",
|
|
0xA1: "RES 4,(IY+d),C",
|
|
0xA2: "RES 4,(IY+d),D",
|
|
0xA3: "RES 4,(IY+d),E",
|
|
0xA4: "RES 4,(IY+d),H",
|
|
0xA5: "RES 4,(IY+d),L",
|
|
0xA6: "RES 4,(IY+d)",
|
|
0xA7: "RES 4,(IY+d),A",
|
|
0xA8: "RES 5,(IY+d),B",
|
|
0xA9: "RES 5,(IY+d),C",
|
|
0xAA: "RES 5,(IY+d),D",
|
|
0xAB: "RES 5,(IY+d),E",
|
|
0xAC: "RES 5,(IY+d),H",
|
|
0xAD: "RES 5,(IY+d),L",
|
|
0xAE: "RES 5,(IY+d)",
|
|
0xAF: "RES 5,(IY+d),A",
|
|
|
|
0xB0: "RES 6,(IY+d),B",
|
|
0xB1: "RES 6,(IY+d),C",
|
|
0xB2: "RES 6,(IY+d),D",
|
|
0xB3: "RES 6,(IY+d),E",
|
|
0xB4: "RES 6,(IY+d),H",
|
|
0xB5: "RES 6,(IY+d),L",
|
|
0xB6: "RES 6,(IY+d)",
|
|
0xB7: "RES 6,(IY+d),A",
|
|
0xB8: "RES 7,(IY+d),B",
|
|
0xB9: "RES 7,(IY+d),C",
|
|
0xBA: "RES 7,(IY+d),D",
|
|
0xBB: "RES 7,(IY+d),E",
|
|
0xBC: "RES 7,(IY+d),H",
|
|
0xBD: "RES 7,(IY+d),L",
|
|
0xBE: "RES 7,(IY+d)",
|
|
0xBF: "RES 7,(IY+d),A",
|
|
|
|
0xC0: "SET 0,(IY+d),B",
|
|
0xC1: "SET 0,(IY+d),C",
|
|
0xC2: "SET 0,(IY+d),D",
|
|
0xC3: "SET 0,(IY+d),E",
|
|
0xC4: "SET 0,(IY+d),H",
|
|
0xC5: "SET 0,(IY+d),L",
|
|
0xC6: "SET 0,(IY+d)",
|
|
0xC7: "SET 0,(IY+d),A",
|
|
0xC8: "SET 1,(IY+d),B",
|
|
0xC9: "SET 1,(IY+d),C",
|
|
0xCA: "SET 1,(IY+d),D",
|
|
0xCB: "SET 1,(IY+d),E",
|
|
0xCC: "SET 1,(IY+d),H",
|
|
0xCD: "SET 1,(IY+d),L",
|
|
0xCE: "SET 1,(IY+d)",
|
|
0xCF: "SET 1,(IY+d),A",
|
|
|
|
0xD0: "SET 2,(IY+d),B",
|
|
0xD1: "SET 2,(IY+d),C",
|
|
0xD2: "SET 2,(IY+d),D",
|
|
0xD3: "SET 2,(IY+d),E",
|
|
0xD4: "SET 2,(IY+d),H",
|
|
0xD5: "SET 2,(IY+d),L",
|
|
0xD6: "SET 2,(IY+d)",
|
|
0xD7: "SET 2,(IY+d),A",
|
|
0xD8: "SET 3,(IY+d),B",
|
|
0xD9: "SET 3,(IY+d),C",
|
|
0xDA: "SET 3,(IY+d),D",
|
|
0xDB: "SET 3,(IY+d),E",
|
|
0xDC: "SET 3,(IY+d),H",
|
|
0xDD: "SET 3,(IY+d),L",
|
|
0xDE: "SET 3,(IY+d)",
|
|
0xDF: "SET 3,(IY+d),A",
|
|
|
|
0xE0: "SET 4,(IY+d),B",
|
|
0xE1: "SET 4,(IY+d),C",
|
|
0xE2: "SET 4,(IY+d),D",
|
|
0xE3: "SET 4,(IY+d),E",
|
|
0xE4: "SET 4,(IY+d),H",
|
|
0xE5: "SET 4,(IY+d),L",
|
|
0xE6: "SET 4,(IY+d)",
|
|
0xE7: "SET 4,(IY+d),A",
|
|
0xE8: "SET 5,(IY+d),B",
|
|
0xE9: "SET 5,(IY+d),C",
|
|
0xEA: "SET 5,(IY+d),D",
|
|
0xEB: "SET 5,(IY+d),E",
|
|
0xEC: "SET 5,(IY+d),H",
|
|
0xED: "SET 5,(IY+d),L",
|
|
0xEE: "SET 5,(IY+d)",
|
|
0xEF: "SET 5,(IY+d),A",
|
|
|
|
0xF0: "SET 6,(IY+d),B",
|
|
0xF1: "SET 6,(IY+d),C",
|
|
0xF2: "SET 6,(IY+d),D",
|
|
0xF3: "SET 6,(IY+d),E",
|
|
0xF4: "SET 6,(IY+d),H",
|
|
0xF5: "SET 6,(IY+d),L",
|
|
0xF6: "SET 6,(IY+d)",
|
|
0xF7: "SET 6,(IY+d),A",
|
|
0xF8: "SET 7,(IY+d),B",
|
|
0xF9: "SET 7,(IY+d),C",
|
|
0xFA: "SET 7,(IY+d),D",
|
|
0xFB: "SET 7,(IY+d),E",
|
|
0xFC: "SET 7,(IY+d),H",
|
|
0xFD: "SET 7,(IY+d),L",
|
|
0xFE: "SET 7,(IY+d)",
|
|
0xFF: "SET 7,(IY+d),A",
|
|
|
|
0x100: "DISPLACEMENT"
|
|
};
|