www.pudn.com > sn068s.zip > MEMMAP.NI


%ifndef SNEeSe_memmap_i 
%define SNEeSe_memmap_i 
 
%include "misc.ni" 
 
; Read Low RAM - 0000-1FFF in 00-3F/80-BF 
%macro LOW_RAM_READ 0 
    mov edi,0x1FFF 
    and edi,ebx 
    mov al,[_WRAM+edi] 
    ret 
%endmacro 
 
; Write Low RAM - 0000-1FFF in 00-3F/80-BF 
%macro LOW_RAM_WRITE 0 
    mov edi,0x1FFF 
    and edi,ebx 
    mov [_WRAM+edi],al 
    ret 
%endmacro 
 
; Read hardware - 2000-5FFF in 00-3F/80-BF 
%macro PPU_READ 0 
    mov edi,0xFFFF 
    and edi,ebx 
    jmp [(_Read_Map_20_5F-0x2000*4)+edi*4] 
%endmacro 
 
; Write hardware - 2000-5FFF in 00-3F/80-BF 
%macro PPU_WRITE 0 
    mov edi,0xFFFF 
    and edi,ebx 
    jmp [(_Write_Map_20_5F-0x2000*4)+edi*4] 
%endmacro 
 
; Read hardware - 2100-21FF in 00-3F/80-BF 
%macro PPU_21_READ 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Read_Map_21+edi*4] 
%endmacro 
 
; Write hardware - 2100-21FF in 00-3F/80-BF 
%macro PPU_21_WRITE 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Write_Map_21+edi*4] 
%endmacro 
 
; Read hardware - 4000-40FF in 00-3F/80-BF 
%macro PPU_40_READ 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Read_Map_40+edi*4] 
%endmacro 
 
; Write hardware - 4000-40FF in 00-3F/80-BF 
%macro PPU_40_WRITE 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Write_Map_40+edi*4] 
%endmacro 
 
; Read hardware - 4200-42FF in 00-3F/80-BF 
%macro PPU_42_READ 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Read_Map_42+edi*4] 
%endmacro 
 
; Write hardware - 4200-42FF in 00-3F/80-BF 
%macro PPU_42_WRITE 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Write_Map_42+edi*4] 
%endmacro 
 
; Read hardware - 4300-43FF in 00-3F/80-BF 
%macro PPU_43_READ 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Read_Map_43+edi*4] 
%endmacro 
 
; Write hardware - 4300-43FF in 00-3F/80-BF 
%macro PPU_43_WRITE 0 
    mov edi,0xFF 
    and edi,ebx 
    jmp [_Write_Map_43+edi*4] 
%endmacro 
 
; Read from ROM address space not containing ROM 
%macro NO_ROM_READ 0 
    mov al,0xFF 
    ret 
%endmacro 
 
; Write to ROM address space 
%macro ROM_WRITE 0 
    ret 
%endmacro 
 
; Read HiROM SRAM 30-3F 
%macro SRAM30_READ 1    ;num 
    mov edi,[_SRAM_Mask] 
    and edi,ebx 
    mov al,[(_SRAM+((0x%1-0x30)*0x2000))+edi] 
    ret 
%endmacro 
 
; Write HiROM SRAM 30-3F 
%macro SRAM30_WRITE 1   ;num 
    mov edi,[_SRAM_Mask] 
    and edi,ebx 
    mov [(_SRAM+((0x%1-0x30)*0x2000))+edi],al 
    ret 
%endmacro 
 
; Read HiROM SRAM B0-BF 
%macro SRAMB0_READ 1    ;num 
    mov edi,[_SRAM_Mask] 
    and edi,ebx 
    mov al,[(_SRAM+((0x%1-0xB0)*0x2000))+edi] 
    ret 
%endmacro 
 
; Write HiROM SRAM B0-BF 
%macro SRAMB0_WRITE 1   ;num 
    mov edi,[_SRAM_Mask] 
    and edi,ebx 
    mov [(_SRAM+((0x%1-0xB0)*0x2000))+edi],al 
    ret 
%endmacro 
 
; Write HiROM SRAM 2k 30-3F/B0-BF 
%macro SRAM_HWRITE_2k 0 
    mov edi,2048 - 1 
    and edi,ebx 
    mov [_SRAM+edi],al 
    mov [_SRAM+edi+2048],al 
    mov [_SRAM+edi+4096],al 
    mov [_SRAM+edi+6144],al 
    ret 
%endmacro 
 
; Write HiROM SRAM 4k 30-3F/B0-BF 
%macro SRAM_HWRITE_4k 0 
    mov edi,4096 - 1 
    and edi,ebx 
    mov [_SRAM+edi],al 
    mov [_SRAM+edi+4096],al 
    ret 
%endmacro 
 
; Non-mapped/unsupported read 
%macro NON_MAPPED_READ 0 
    mov al,0xFF 
    ret 
%endmacro 
 
; Non-mapped/unsupported write 
%macro NON_MAPPED_WRITE 0 
    ret 
%endmacro 
 
%endif ;!SNEeSe_memmap_i