Previous 15994 Revisions Next

r9446 Monday 25th October, 2010 at 21:42:44 UTC by Angelo Salese
[PC-88VA]: Converted vram functions to use 16-bit handlers
[src/mess/drivers]pc88va.c

src/mess/drivers/pc88va.c
r9445r9446
2929   return 0;
3030}
3131
32static READ8_HANDLER( sys_mem_r )
32static READ16_HANDLER( sys_mem_r )
3333{
3434   switch((bank_reg & 0xf00) >> 8)
3535   {
3636      case 0: // select bus slot
37         return 0xff;
37         return 0xffff;
3838      case 1: // TVRAM
3939      {
40         UINT8 *tvram = memory_region(space->machine, "tvram");
40         UINT16 *tvram = (UINT16 *)memory_region(space->machine, "tvram");
41
4142         if((offset & 0x30000) == 0)
4243            return tvram[offset];
4344
44         return 0xff;
45         return 0xffff;
4546      }
4647      case 4:
4748      {
48         UINT8 *gvram = memory_region(space->machine, "gvram");
49         UINT16 *gvram = (UINT16 *)memory_region(space->machine, "gvram");
4950
5051         return gvram[offset];
5152      }
5253      case 8: // kanji ROM
5354      case 9:
5455      {
55         UINT8 *knj_ram = memory_region(space->machine, "kanji");
56         UINT16 *knj_ram = (UINT16 *)memory_region(space->machine, "kanji");
5657         UINT32 knj_offset;
5758
58         knj_offset = offset + (((bank_reg & 0x100) >> 8)*0x40000);
59         knj_offset = (offset + (((bank_reg & 0x100) >> 8)*0x40000)) / 2;
5960
6061         /* 0x00000 - 0x3ffff Kanji ROM 1*/
6162         /* 0x40000 - 0x4ffff Kanji ROM 2*/
r9445r9446
6869      case 0xc: // Dictionary ROM
6970      case 0xd:
7071      {
71         UINT8 *dic_rom = memory_region(space->machine, "dictionary");
72         UINT16 *dic_rom = (UINT16 *)memory_region(space->machine, "dictionary");
7273         UINT32 dic_offset;
7374
74         dic_offset = offset + (((bank_reg & 0x100) >> 8)*0x40000);
75         dic_offset = (offset + (((bank_reg & 0x100) >> 8)*0x40000)) / 2;
7576
7677         return dic_rom[dic_offset];
7778      }
7879   }
7980
80   return 0xff;
81   return 0xffff;
8182}
8283
83static WRITE8_HANDLER( sys_mem_w )
84static WRITE16_HANDLER( sys_mem_w )
8485{
8586   switch((bank_reg & 0xf00) >> 8)
8687   {
r9445r9446
8889         break;
8990      case 1: // TVRAM
9091      {
91         UINT8 *tvram = memory_region(space->machine, "tvram");
92         UINT16 *tvram = (UINT16 *)memory_region(space->machine, "tvram");
9293
9394         if((offset & 0x30000) == 0)
94            tvram[offset] = data;
95            COMBINE_DATA(&tvram[offset]);
9596      }
9697      break;
9798      case 4: // TVRAM
9899      {
99         UINT8 *gvram = memory_region(space->machine, "gvram");
100         UINT16 *gvram = (UINT16 *)memory_region(space->machine, "gvram");
100101
101         gvram[offset] = data;
102         COMBINE_DATA(&gvram[offset]);
102103      }
103104      break;
104      case 8: // kanji ROM
105      case 8: // kanji ROM, backup RAM at 0xb0000 - 0xb3fff
105106      case 9:
106107      {
107         UINT8 *knj_ram = memory_region(space->machine, "kanji");
108         UINT16 *knj_ram = (UINT16 *)memory_region(space->machine, "kanji");
108109         UINT32 knj_offset;
109110
110111         knj_offset = offset + (((bank_reg & 0x100) >> 8)*0x40000);
111112
112113         if(knj_offset >= 0x50000 && knj_offset <= 0x53fff)
113            knj_ram[knj_offset] = data;
114            COMBINE_DATA(&knj_ram[knj_offset]);
114115      }
115116      break;
116117      case 0xc: // Dictionary ROM
117118      case 0xd:
118119      {
119         // ...
120         // NOP?
120121      }
121122      break;
122123   }
r9445r9446
125126static ADDRESS_MAP_START( pc88va_map, ADDRESS_SPACE_PROGRAM, 16 )
126127   AM_RANGE(0x00000, 0x7ffff) AM_RAM
127128//   AM_RANGE(0x80000, 0x9ffff) AM_RAM // EMM
128   AM_RANGE(0xa0000, 0xdffff) AM_READWRITE8(sys_mem_r,sys_mem_w,0xffff)
129   AM_RANGE(0xa0000, 0xdffff) AM_READWRITE(sys_mem_r,sys_mem_w)
129130   AM_RANGE(0xe0000, 0xeffff) AM_ROMBANK("rom00_bank")
130131   AM_RANGE(0xf0000, 0xfffff) AM_ROMBANK("rom10_bank")
131132ADDRESS_MAP_END

Previous 15994 Revisions Next


© 1998-2018 The MESS Team