|
|
| version 1.2, 2003/12/08 06:24:03 | version 1.6, 2003/12/27 11:55:23 |
|---|---|
| Line 1 | Line 1 |
| #ifndef NP2_I386C_MEMORY_H__ | |
| #define NP2_I386C_MEMORY_H__ | |
| #ifdef NP2_MEMORY_ASM // アセンブラ版は 必ずfastcallで | #ifdef NP2_MEMORY_ASM // アセンブラ版は 必ずfastcallで |
| #undef MEMCALL | #undef MEMCALL |
| #define MEMCALL FASTCALL | #define MEMCALL FASTCALL |
| Line 8 | Line 11 |
| // 000000-0fffff メインメモリ | // 000000-0fffff メインメモリ |
| // 100000-10ffef HMA | // 100000-10ffef HMA |
| // 110000-193fff FONT-ROM/RAM | // 110000-193fff FONT-ROM/RAM |
| // 1a8000-1e7fff VRAM1 | // 1a8000-1bffff VRAM1 |
| // 1c0000-1c7fff ITF-ROM BAK | |
| // 1c8000-1dffff EPSON RAM | |
| // 1e0000-1e7fff VRAM1 | |
| // 1f8000-1fffff ITF-ROM | // 1f8000-1fffff ITF-ROM |
| #define VRAM_STEP 0x100000 | #define VRAM_STEP 0x100000 |
| Line 17 | Line 23 |
| #define VRAM_G 0x0b8000 | #define VRAM_G 0x0b8000 |
| #define VRAM_E 0x0e0000 | #define VRAM_E 0x0e0000 |
| #define VRAM_POS(a) ((a) & (VRAM_STEP | 0x7fff)) | #define VRAMADDRMASKEX(a) ((a) & (VRAM_STEP | 0x7fff)) |
| #define VRAM0_B VRAM_B | #define VRAM0_B VRAM_B |
| #define VRAM0_R VRAM_R | #define VRAM0_R VRAM_R |
| Line 82 extern "C" { | Line 88 extern "C" { |
| extern BYTE mem[0x200000]; | extern BYTE mem[0x200000]; |
| void MEMCALL i286_memorymap(UINT type); | |
| void MEMCALL i286_vram_dispatch(UINT operate); | void MEMCALL i286_vram_dispatch(UINT operate); |
| void MEMCALL __i286_memorywrite(UINT32 address, REG8 value); | void MEMCALL __i286_memorywrite(UINT32 address, REG8 value); |
| Line 140 void MEMCALL i286_memx_write(UINT32 addr | Line 147 void MEMCALL i286_memx_write(UINT32 addr |
| } | } |
| #endif | #endif |
| #endif /* !NP2_I386C_MEMORY_H__ */ | |
| // とりあえず | |
| #define GETDWORD(a) (((UINT32)(a)[0]) | \ | |
| ((UINT32)(a)[1] << 8) | \ | |
| ((UINT32)(a)[2] << 16) | \ | |
| ((UINT32)(a)[3] << 24)) | |
| #define GETWORD(a) (((UINT16)(a)[0]) | ((UINT16)(a)[1] << 8)) | |
| #define SETDWORD(a, b) *((a)+0) = (BYTE)((b)); \ | |
| *((a)+1) = (BYTE)((b)>>8); \ | |
| *((a)+2) = (BYTE)((b)>>16); \ | |
| *((a)+3) = (BYTE)((b)>>24) | |
| #define SETWORD(a, b) *((a)+0) = (BYTE)((b)); \ | |
| *((a)+1) = (BYTE)((b)>>8) | |