- the big mergecheit
This commit is contained in:
27
z80.cpp
27
z80.cpp
@@ -1,7 +1,7 @@
|
||||
#include "z80.h"
|
||||
#include "z80debug.h"
|
||||
#include "z80mem.h"
|
||||
#include "zx_tape.h"
|
||||
//#include "zx_tape.h"
|
||||
#include <stdio.h>
|
||||
|
||||
namespace z80
|
||||
@@ -15,8 +15,8 @@ namespace z80
|
||||
bool options[Z80_NUM_OPTIONS] = { true, false };
|
||||
int calls_stacked = 0;
|
||||
|
||||
int (*in_ports[65536])(int);
|
||||
void (*out_ports[65536])(int, int);
|
||||
int (*in_ports[256])(int);
|
||||
void (*out_ports[256])(int, int);
|
||||
|
||||
//#define _rM16(a) (uint16_t*)&memory[a]
|
||||
//#define rM16(a) *_rM16(a)
|
||||
@@ -186,10 +186,10 @@ namespace z80
|
||||
{
|
||||
t+=1;
|
||||
reading_m1 = true;
|
||||
if (rPC==0x056c) {
|
||||
/*if (rPC==0x056c) {
|
||||
zx_tape::rewind();
|
||||
zx_tape::play();
|
||||
}
|
||||
}*/
|
||||
return READ_MEM_8();
|
||||
}
|
||||
|
||||
@@ -1008,6 +1008,7 @@ namespace z80
|
||||
t+=4;
|
||||
if (port == 0x10000) {
|
||||
port = rBC;
|
||||
if (rC==0xfe) port = 0xfe;
|
||||
}
|
||||
if (out_ports[port&0xff]) out_ports[port&0xff](port, val);
|
||||
}
|
||||
@@ -2265,7 +2266,7 @@ namespace z80
|
||||
switch (opcode)
|
||||
{
|
||||
case 0x40: rB = IN(); break;
|
||||
case 0x41: OUT(rB, rC); break;
|
||||
case 0x41: OUT(rB); break;
|
||||
case 0x42: SBC16(_rHL, rBC); break;
|
||||
case 0x43: WRITE_MEM_16(READ_MEM_16(), rBC);break;
|
||||
case 0x44: NEG(); break;
|
||||
@@ -2273,42 +2274,42 @@ namespace z80
|
||||
case 0x46: IM(0); break;
|
||||
case 0x47: rI = rA; t++; break;
|
||||
case 0x48: rC = IN(); break;
|
||||
case 0x49: OUT(rC, rC); break;
|
||||
case 0x49: OUT(rC); break;
|
||||
case 0x4A: ADC16(_rHL, rBC); break;
|
||||
case 0x4B: rBC = READ_MEM_16(READ_MEM_16());break;
|
||||
case 0x4D: RETI(); break;
|
||||
case 0x4F: rR = rA; t++; break;
|
||||
|
||||
case 0x50: rD = IN(); break;
|
||||
case 0x51: OUT(rD, rC); break;
|
||||
case 0x51: OUT(rD); break;
|
||||
case 0x52: SBC16(_rHL, rDE); break;
|
||||
case 0x53: WRITE_MEM_16(READ_MEM_16(), rDE);break;
|
||||
case 0x56: IM(1); break;
|
||||
case 0x57: LD_A_I(); break;
|
||||
case 0x58: rE = IN(); break;
|
||||
case 0x59: OUT(rE, rC); break;
|
||||
case 0x59: OUT(rE); break;
|
||||
case 0x5A: ADC16(_rHL, rDE); break;
|
||||
case 0x5B: rDE = READ_MEM_16(READ_MEM_16());break;
|
||||
case 0x5E: IM(2); break;
|
||||
case 0x5F: LD_A_R(); break;
|
||||
|
||||
case 0x60: rH = IN(); break;
|
||||
case 0x61: OUT(rH, rC); break;
|
||||
case 0x61: OUT(rH); break;
|
||||
case 0x62: SBC16(_rHL, rHL); break;
|
||||
case 0x63: WRITE_MEM_16(READ_MEM_16(), rHL);break;
|
||||
case 0x67: RRD(); break;
|
||||
case 0x68: rL = IN(); break;
|
||||
case 0x69: OUT(rL, rC); break;
|
||||
case 0x69: OUT(rL); break;
|
||||
case 0x6A: ADC16(_rHL, rHL); break;
|
||||
case 0x6B: rHL = READ_MEM_16(READ_MEM_16());break;
|
||||
case 0x6F: RLD(); break;
|
||||
|
||||
case 0x70: IN(); break;
|
||||
case 0x71: OUT(0, rC); break;
|
||||
case 0x71: OUT(0); break;
|
||||
case 0x72: SBC16(_rHL, rSP); break;
|
||||
case 0x73: WRITE_MEM_16(READ_MEM_16(), rSP);break;
|
||||
case 0x78: rA = IN(); break;
|
||||
case 0x79: OUT(rA, rC); break;
|
||||
case 0x79: OUT(rA); break;
|
||||
case 0x7A: ADC16(_rHL, rSP); break;
|
||||
case 0x7B: rSP = READ_MEM_16(READ_MEM_16());break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user