1
0
Fork
You've already forked z80-cpp
0
A Z80 emulator study in C++
  • C++ 100%
Find a file
2015年09月11日 19:38:11 +02:00
z80 Implement CP 2015年09月11日 19:35:43 +02:00
z80.xcodeproj Initial commit 2015年09月11日 15:02:39 +02:00
.gitignore Initial commit 2015年09月11日 15:02:39 +02:00
Readme.md Update readme 2015年09月11日 19:38:11 +02:00

Z80

A Z80 emulator study in C++. By Sijmen Mulder ik@sjmulder.nl.

Input:

int main()
{
	Z80 cpu;
	cpu.ram() = {
		JR, 0x0C, // -+
		'H', 'e', 'l', 'l', 'o', ' ', // |
		'W', 'o', 'r', 'l', 'd', '!', // |
		 // |
		// calculate 3 * 4 // |
		EXT_FD, FD_LD_A_imm, 0x00, // <-+
		EXT_DD, DD_LD_B_imm, 0x04,
		EXT_DD, DD_LD_C_imm, 0x03,
		ADD_A_C, // <-+
		DJNZ, 0xFD, // -+
		XOR_A_imm, 0xFF,
	
		NOOP
	};
}

Output:

A: 0x00 F: 0x00 A': 0x00 F': 0x00
B: 0x00 C: 0x00 B': 0x00 C': 0x00
D: 0x00 E: 0x00 D': 0x00 E': 0x00
H: 0x00 L: 0x00 H': 0x00 L': 0x00
I: 0x00 R: 0x00
IX: 0x0000
IY: 0x0000
SP: 0x0000
PC: 0x0000
S: 0 Z: 0 H: 0 PV: 0 N: 0 C: 0
> jr 0x0c
// ...
> djnz 0xfd
A: 0x09 F: 0x08 A': 0x00 F': 0x00
B: 0x01 C: 0x03 B': 0x00 C': 0x00
D: 0x00 E: 0x00 D': 0x00 E': 0x00
H: 0x00 L: 0x00 H': 0x00 L': 0x00
I: 0x00 R: 0x00
IX: 0x0000
IY: 0x0000
SP: 0x0000
PC: 0x0017
S: 0 Z: 0 H: 1 PV: 0 N: 0 C: 0
> add a, c
A: 0x0c F: 0x08 A': 0x00 F': 0x00
B: 0x01 C: 0x03 B': 0x00 C': 0x00
D: 0x00 E: 0x00 D': 0x00 E': 0x00
H: 0x00 L: 0x00 H': 0x00 L': 0x00
I: 0x00 R: 0x00
IX: 0x0000
IY: 0x0000
SP: 0x0000
PC: 0x0018
S: 0 Z: 0 H: 1 PV: 0 N: 0 C: 0
> djnz 0xfd
A: 0x0c F: 0x08 A': 0x00 F': 0x00
B: 0x00 C: 0x03 B': 0x00 C': 0x00
D: 0x00 E: 0x00 D': 0x00 E': 0x00
H: 0x00 L: 0x00 H': 0x00 L': 0x00
I: 0x00 R: 0x00
IX: 0x0000
IY: 0x0000
SP: 0x0000
PC: 0x001a
S: 0 Z: 0 H: 1 PV: 0 N: 0 C: 0
> xor a, 0xff
A: 0xf3 F: 0x84 A': 0x00 F': 0x00
B: 0x00 C: 0x03 B': 0x00 C': 0x00
D: 0x00 E: 0x00 D': 0x00 E': 0x00
H: 0x00 L: 0x00 H': 0x00 L': 0x00
I: 0x00 R: 0x00
IX: 0x0000
IY: 0x0000
SP: 0x0000
PC: 0x001c
S: 1 Z: 0 H: 0 PV: 1 N: 0 C: 0
> noop