|
|
1.1 root 1: ; RAZE - register definitions
2:
3: ;----------------------------------------------------------------------------;
4: ; Flags
5: %define FLAG_C 01h ; carry
6: %define FLAG_N 02h ; negative
7: %define FLAG_P 04h ; parity/overflow
8: %define FLAG_3 08h ; bit 3
9: %define FLAG_H 10h ; half-carry
10: %define FLAG_5 20h ; bit 5
11: %define FLAG_Z 40h ; zero
12: %define FLAG_S 80h ; sign
13:
14: ; set the register mappings.
15: ; we avoid bugs this way and make it simpler.
16:
17: ; 16-bit registers
18: %define zAF ax
19: %define zHL bx
20: %define zBC cx
21: %define zDE word [z80_DE]
22: %define zPC si
23: %define zSP word [z80_SP]
24: %define zIX word [z80_IX]
25: %define zIY word [z80_IY]
26:
27: ; 16-bit registers, zero-extended to 32-bit
28: ; for when a dword transfer is better
29: %define ezAF eax
30: %define ezHL ebx
31: %define ezBC ecx
32: %define ezDE dword [z80_DE]
33: %define ezPC esi
34: %define ezSP dword [z80_SP]
35: %define ezIX dword [z80_IX]
36: %define ezIY dword [z80_IY]
37:
38: ; 8-bit registers
39: %define zF ah
40: %define zA al
41: %define zB ch
42: %define zC cl
43: %define zD byte [z80_DE+1]
44: %define zE byte [z80_DE]
45: %define zH bh
46: %define zL bl
47: %define zIXh byte [z80_IX+1]
48: %define zIXl byte [z80_IX]
49: %define zIYh byte [z80_IY+1]
50: %define zIYl byte [z80_IY]
51:
52: ; 8-bit registers, (accessible by 16-bit registers with l or h)
53: %define hzAF zA
54: %define lzAF zF
55: %define hzBC zB
56: %define lzBC zC
57: %define hzDE zD
58: %define lzDE zE
59: %define hzHL zH
60: %define lzHL zL
61: %define hzIX zIXh
62: %define lzIX zIXl
63: %define hzIY zIYh
64: %define lzIY zIYl
65: %define hzSP byte [z80_SP+1]
66: %define lzSP byte [z80_SP]
67:
68: ; 16-bit registers (prime)
69: %define zAF2 word [z80_AF2]
70: %define zHL2 word [z80_HL2]
71: %define zBC2 word [z80_BC2]
72: %define zDE2 word [z80_DE2]
73:
74: ; 16-bit registers (prime), zero-extended to 32-bit
75: ; for when a dword transfer is better
76: %define ezAF2 dword [z80_AF2]
77: %define ezHL2 dword [z80_HL2]
78: %define ezBC2 dword [z80_BC2]
79: %define ezDE2 dword [z80_DE2]
80:
81: ; Misc
82: %define zI byte [z80_I]
83: %define zR ebp
84:
85: ; get/set reg values
86: %define Z80_REG_AF 0
87: %define Z80_REG_BC 1
88: %define Z80_REG_DE 2
89: %define Z80_REG_HL 3
90: %define Z80_REG_IX 4
91: %define Z80_REG_IY 5
92: %define Z80_REG_PC 6
93: %define Z80_REG_SP 7
94: %define Z80_REG_AF2 8
95: %define Z80_REG_BC2 9
96: %define Z80_REG_DE2 10
97: %define Z80_REG_HL2 11
98: %define Z80_REG_IFF1 12
99: %define Z80_REG_IFF2 13
100: %define Z80_REG_IR 14
101: %define Z80_REG_IM 15
102: %define Z80_REG_IRQVector 16
103: %define Z80_REG_IRQLine 17
104: %define Z80_REG_Halted 18
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.