File:  [Generator SEGA Genesis emulator] / generator / raze / raze.reg
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed Mar 4 04:46:43 2020 UTC (6 years, 4 months ago) by root
Branches: MAIN, JamesPonder
CVS tags: v0_35, v0_34, v0_33, v0_32, HEAD
0.32

; RAZE - register definitions

;----------------------------------------------------------------------------;
; Flags
%define FLAG_C   01h         ; carry
%define FLAG_N   02h         ; negative
%define FLAG_P   04h         ; parity/overflow
%define FLAG_3   08h         ; bit 3
%define FLAG_H   10h         ; half-carry
%define FLAG_5   20h         ; bit 5
%define FLAG_Z   40h         ; zero
%define FLAG_S   80h         ; sign

; set the register mappings.
; we avoid bugs this way and make it simpler.

; 16-bit registers
%define zAF ax
%define zHL bx
%define zBC cx
%define zDE word [z80_DE]
%define zPC si
%define zSP word [z80_SP]
%define zIX word [z80_IX]
%define zIY word [z80_IY]

; 16-bit registers, zero-extended to 32-bit
; for when a dword transfer is better
%define ezAF eax
%define ezHL ebx
%define ezBC ecx
%define ezDE dword [z80_DE]
%define ezPC esi
%define ezSP dword [z80_SP]
%define ezIX dword [z80_IX]
%define ezIY dword [z80_IY]

; 8-bit registers
%define zF ah
%define zA al
%define zB ch
%define zC cl
%define zD byte [z80_DE+1]
%define zE byte [z80_DE]
%define zH bh
%define zL bl
%define zIXh byte [z80_IX+1]
%define zIXl byte [z80_IX]
%define zIYh byte [z80_IY+1]
%define zIYl byte [z80_IY]

; 8-bit registers, (accessible by 16-bit registers with l or h)
%define hzAF zA
%define lzAF zF
%define hzBC zB
%define lzBC zC
%define hzDE zD
%define lzDE zE
%define hzHL zH
%define lzHL zL
%define hzIX zIXh
%define lzIX zIXl
%define hzIY zIYh
%define lzIY zIYl
%define hzSP byte [z80_SP+1]
%define lzSP byte [z80_SP]

; 16-bit registers (prime)
%define zAF2 word [z80_AF2]
%define zHL2 word [z80_HL2]
%define zBC2 word [z80_BC2]
%define zDE2 word [z80_DE2]

; 16-bit registers (prime), zero-extended to 32-bit
; for when a dword transfer is better
%define ezAF2 dword [z80_AF2]
%define ezHL2 dword [z80_HL2]
%define ezBC2 dword [z80_BC2]
%define ezDE2 dword [z80_DE2]

; Misc
%define zI byte [z80_I]
%define zR ebp

; get/set reg values
%define Z80_REG_AF         0
%define Z80_REG_BC         1
%define Z80_REG_DE         2
%define Z80_REG_HL         3
%define Z80_REG_IX         4
%define Z80_REG_IY         5
%define Z80_REG_PC         6
%define Z80_REG_SP         7
%define Z80_REG_AF2        8
%define Z80_REG_BC2        9
%define Z80_REG_DE2       10
%define Z80_REG_HL2       11
%define Z80_REG_IFF1      12
%define Z80_REG_IFF2      13
%define Z80_REG_IR        14
%define Z80_REG_IM        15
%define Z80_REG_IRQVector 16
%define Z80_REG_IRQLine   17
%define Z80_REG_Halted    18

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.