|
|
| version 1.6, 2004/08/12 13:32:52 | version 1.7, 2005/02/04 06:42:12 |
|---|---|
| Line 1 | Line 1 |
| enum { | // ---- TRAM |
| GRAM_SIZE = 0x10000, | |
| GRAM_BANK0 = 0x00000, | |
| GRAM_BANK1 = 0x10000, | |
| GRAM_BANK0L = 0x00000, | |
| GRAM_BANK0H = 0x08000, | |
| GRAM_BANK1L = 0x10000, | |
| GRAM_BANK1H = 0x18000, | |
| GRAM_HALFSTEP = 0x08000, | |
| GRAM_B = 8, | |
| GRAM_R = 16, | |
| GRAM_G = 24 | |
| }; | |
| enum { | enum { |
| TRAM_ANK = 0x0000, | |
| TRAM_ATR = 0x0800, | |
| TRAM_KNJ = 0x1000, | |
| TRAMATR_COLOR = 0x07, | TRAMATR_COLOR = 0x07, |
| TRAMATR_REVERSE = 0x08, | TRAMATR_REVERSE = 0x08, |
| TRAMATR_BLINK = 0x10, | TRAMATR_BLINK = 0x10, |
| Line 38 enum { | Line 19 enum { |
| UPDATE_TVRAM = UPDATE_VRAM0 | UPDATE_VRAM1 | UPDATE_TRAM | UPDATE_TVRAM = UPDATE_VRAM0 | UPDATE_VRAM1 | UPDATE_TRAM |
| }; | }; |
| typedef struct { | |
| UINT8 ank; | |
| UINT8 knj; | |
| UINT8 atr; | |
| UINT8 udt; | |
| } TRAM; | |
| // ---- GRAM | |
| #if !defined(VRAMSTOIC) // メモリキャッシュ優先 | |
| enum { | |
| GRAM_SIZE = 0x20000, | |
| GRAM_BANK0 = 0x00000, | |
| GRAM_BANK1 = 0x10000, | |
| GRAM_BANK0L = 0x00000, | |
| GRAM_BANK0H = 0x08000, | |
| GRAM_BANK1L = 0x10000, | |
| GRAM_BANK1H = 0x18000, | |
| GRAM_HALFSTEP = 0x08000, | |
| GRAM_LINESTEP = 0x01, | |
| GRAM_B = 0x08, | |
| GRAM_R = 0x10, | |
| GRAM_G = 0x18, | |
| GRAM_RGBMASK = 0x18 | |
| }; | |
| #define PORT2GRAM(port) ((LOW11((port)) << 5) + ((port) >> 11)) | |
| #define PORT2GRAM2(port) ((((port) << 5) + ((port) >> 11)) & 0xffe7) | |
| #define TRAM2GRAM(addr) ((addr) << 5) | |
| #else // メモリ並び優先 | |
| enum { | |
| GRAM_SIZE = 0x18000, | |
| GRAM_BANK0 = 0x00000, | |
| GRAM_BANK1 = 0x0c000, | |
| GRAM_BANK0L = 0x00000, | |
| GRAM_BANK0H = 0x00400, | |
| GRAM_BANK1L = 0x0c000, | |
| GRAM_BANK1H = 0x0c400, | |
| GRAM_HALFSTEP = 0x00400, | |
| GRAM_LINESTEP = 0x0800, | |
| GRAM_B = 0x0000, | |
| GRAM_R = 0x4000, | |
| GRAM_G = 0x8000, | |
| GRAM_RGBMASK = 0xc000 | |
| }; | |
| #define PORT2GRAM(port) ((port) - 0x4000) | |
| #define PORT2GRAM2(port) ((port) & (~0xc000)) | |
| #define TRAM2GRAM(addr) (addr) | |
| #endif | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| extern "C" { | extern "C" { |
| #endif | #endif |
| extern UINT8 gram[0x20000]; | extern TRAM tram[0x800]; |
| extern UINT8 tram[0x01800]; | extern UINT8 gram[GRAM_SIZE]; |
| extern UINT8 updatetmp[0x800+0x101]; | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| } | } |
| #endif | #endif |
| #define TRAM_ANK(addr) tram[addr].ank | |
| #define TRAM_KNJ(addr) tram[addr].knj | |
| #define TRAM_ATR(addr) tram[addr].atr | |
| #define TRAMUPDATE(addr) tram[addr].udt | |