|
|
| version 1.15, 2003/12/22 01:44:59 | version 1.16, 2003/12/27 11:55:23 |
|---|---|
| Line 188 static void MEMCALL emmc_wt(UINT32 addre | Line 188 static void MEMCALL emmc_wt(UINT32 addre |
| extmem.pageptr[(address >> 14) & 3][LOW14(address)] = (BYTE)value; | extmem.pageptr[(address >> 14) & 3][LOW14(address)] = (BYTE)value; |
| } | } |
| static void MEMCALL i286_wb(UINT32 address, REG8 value) { | |
| mem[address + 0x1c8000 - 0xe8000] = (BYTE)value; | |
| } | |
| static void MEMCALL i286_wn(UINT32 address, REG8 value) { | static void MEMCALL i286_wn(UINT32 address, REG8 value) { |
| (void)address; | (void)address; |
| Line 288 static REG8 MEMCALL emmc_rd(UINT32 addre | Line 293 static REG8 MEMCALL emmc_rd(UINT32 addre |
| return(extmem.pageptr[(address >> 14) & 3][LOW14(address)]); | return(extmem.pageptr[(address >> 14) & 3][LOW14(address)]); |
| } | } |
| static REG8 MEMCALL i286_itf(UINT32 address) { | static REG8 MEMCALL i286_rb(UINT32 address) { |
| if (CPU_ITFBANK) { | if (CPU_ITFBANK) { |
| address = ITF_ADRS + LOW15(address); | address += VRAM_STEP; |
| } | } |
| return(mem[address]); | return(mem[address]); |
| } | } |
| Line 474 static void MEMCALL emmcw_wt(UINT32 addr | Line 479 static void MEMCALL emmcw_wt(UINT32 addr |
| } | } |
| } | } |
| static void MEMCALL i286w_wb(UINT32 address, REG16 value) { | |
| mem[address + 0x1c8000 - 0xe8000] = (BYTE)value; | |
| mem[address + 0x1c8001 - 0xe8000] = (BYTE)(value >> 8); | |
| } | |
| static void MEMCALL i286w_wn(UINT32 address, REG16 value) { | static void MEMCALL i286w_wn(UINT32 address, REG16 value) { |
| (void)address; | (void)address; |
| Line 616 const BYTE *ptr; | Line 627 const BYTE *ptr; |
| } | } |
| } | } |
| static REG16 MEMCALL i286w_itf(UINT32 address) { | static REG16 MEMCALL i286w_rb(UINT32 address) { |
| if (CPU_ITFBANK) { | if (CPU_ITFBANK) { |
| address = ITF_ADRS + LOW15(address); | address += VRAM_STEP; |
| } | } |
| return(LOADINTELWORD(mem + address)); | return(LOADINTELWORD(mem + address)); |
| } | } |
| Line 640 typedef struct { | Line 651 typedef struct { |
| } MEMFN; | } MEMFN; |
| typedef struct { | typedef struct { |
| MEM8READ brd8; | |
| MEM8READ ird8; | |
| MEM8WRITE ewr8; | |
| MEM8WRITE bwr8; | |
| MEM16READ brd16; | |
| MEM16READ ird16; | |
| MEM16WRITE ewr16; | |
| MEM16WRITE bwr16; | |
| } MMAPTBL; | |
| typedef struct { | |
| MEM8READ rd8; | MEM8READ rd8; |
| MEM8WRITE wr8; | MEM8WRITE wr8; |
| MEM16READ rd16; | MEM16READ rd16; |
| Line 654 static MEMFN memfn = { | Line 676 static MEMFN memfn = { |
| i286_rd, i286_rd, i286_rd, i286_rd, // 80 | i286_rd, i286_rd, i286_rd, i286_rd, // 80 |
| tram_rd, vram_r0, vram_r0, vram_r0, // a0 | tram_rd, vram_r0, vram_r0, vram_r0, // a0 |
| emmc_rd, emmc_rd, i286_rd, i286_rd, // c0 | emmc_rd, emmc_rd, i286_rd, i286_rd, // c0 |
| vram_r0, i286_rd, i286_rd, i286_itf}, // f0 | vram_r0, i286_rd, i286_rd, i286_rb}, // f0 |
| {i286_wt, i286_wt, i286_wt, i286_wt, // 00 | {i286_wt, i286_wt, i286_wt, i286_wt, // 00 |
| i286_wt, i286_wt, i286_wt, i286_wt, // 20 | i286_wt, i286_wt, i286_wt, i286_wt, // 20 |
| Line 672 static MEMFN memfn = { | Line 694 static MEMFN memfn = { |
| i286w_rd, i286w_rd, i286w_rd, i286w_rd, // 80 | i286w_rd, i286w_rd, i286w_rd, i286w_rd, // 80 |
| tramw_rd, vramw_r0, vramw_r0, vramw_r0, // a0 | tramw_rd, vramw_r0, vramw_r0, vramw_r0, // a0 |
| emmcw_rd, emmcw_rd, i286w_rd, i286w_rd, // c0 | emmcw_rd, emmcw_rd, i286w_rd, i286w_rd, // c0 |
| vramw_r0, i286w_rd, i286w_rd, i286w_itf}, // e0 | vramw_r0, i286w_rd, i286w_rd, i286w_rb}, // e0 |
| {i286w_wt, i286w_wt, i286w_wt, i286w_wt, // 00 | {i286w_wt, i286w_wt, i286w_wt, i286w_wt, // 00 |
| i286w_wt, i286w_wt, i286w_wt, i286w_wt, // 20 | i286w_wt, i286w_wt, i286w_wt, i286w_wt, // 20 |
| Line 683 static MEMFN memfn = { | Line 705 static MEMFN memfn = { |
| emmcw_wt, emmcw_wt, i286w_wn, i286w_wn, // c0 | emmcw_wt, emmcw_wt, i286w_wn, i286w_wn, // c0 |
| vramw_w0, i286w_wn, i286w_wn, i286w_wn}}; // e0 | vramw_w0, i286w_wn, i286w_wn, i286w_wn}}; // e0 |
| static const MMAPTBL mmaptbl[2] = { | |
| {i286_rd, i286_rb, i286_wn, i286_wn, | |
| i286w_rd, i286w_rb, i286w_wn, i286w_wn}, | |
| {i286_rb, i286_rb, i286_wt, i286_wb, | |
| i286w_rb, i286w_rb, i286w_wt, i286w_wb}}; | |
| static const VACCTBL vacctbl[0x10] = { | static const VACCTBL vacctbl[0x10] = { |
| {vram_r0, vram_w0, vramw_r0, vramw_w0}, // 00 | {vram_r0, vram_w0, vramw_r0, vramw_w0}, // 00 |
| {vram_r1, vram_w1, vramw_r1, vramw_w1}, | {vram_r1, vram_w1, vramw_r1, vramw_w1}, |
| Line 714 static REG16 MEMCALL i286_nonram_rw(UINT | Line 742 static REG16 MEMCALL i286_nonram_rw(UINT |
| return(0xffff); | return(0xffff); |
| } | } |
| void MEMCALL i286_memorymap(UINT type) { | |
| const MMAPTBL *mm; | |
| mm = mmaptbl + (type & 1); | |
| memfn.rd8[0xe8000 >> 15] = mm->brd8; | |
| memfn.rd8[0xf0000 >> 15] = mm->brd8; | |
| memfn.rd8[0xf8000 >> 15] = mm->ird8; | |
| memfn.wr8[0xd0000 >> 15] = mm->ewr8; | |
| memfn.wr8[0xd8000 >> 15] = mm->ewr8; | |
| memfn.wr8[0xe8000 >> 15] = mm->bwr8; | |
| memfn.wr8[0xf0000 >> 15] = mm->bwr8; | |
| memfn.wr8[0xf8000 >> 15] = mm->bwr8; | |
| memfn.rd16[0xe8000 >> 15] = mm->brd16; | |
| memfn.rd16[0xf0000 >> 15] = mm->brd16; | |
| memfn.rd16[0xf8000 >> 15] = mm->ird16; | |
| memfn.wr16[0xd0000 >> 15] = mm->ewr16; | |
| memfn.wr16[0xd8000 >> 15] = mm->ewr16; | |
| memfn.wr16[0xe8000 >> 15] = mm->bwr16; | |
| memfn.wr16[0xf0000 >> 15] = mm->bwr16; | |
| memfn.wr16[0xf8000 >> 15] = mm->bwr16; | |
| } | |
| void MEMCALL i286_vram_dispatch(UINT func) { | void MEMCALL i286_vram_dispatch(UINT func) { |
| const VACCTBL *vacc; | const VACCTBL *vacc; |