Previous 15994 Revisions Next

r8684 Sunday 1st August, 2010 at 18:32:40 UTC by Angelo Salese
[PASOPIA7]: Fixed a small Pac2 bug
[src/mess/drivers]pasopia.c

src/mess/drivers/pasopia.c
r8683r8684
285285
286286static WRITE8_HANDLER( pac2_w )
287287{
288   UINT8 *pac2_ram1 = memory_region(space->machine, "rampac1");
289   UINT8 *pac2_ram2 = memory_region(space->machine, "rampac2");
290
288291   /*
289292   select register:
290293   4 = ram1;
r8683r8684
297300
298301   switch(offset)
299302   {
300      case 0: pac2_index[pac2_bank_select] = (pac2_index[pac2_bank_select] & 0x7f00) | (data & 0xff); break;
303      case 0:   pac2_index[pac2_bank_select] = (pac2_index[pac2_bank_select] & 0x7f00) | (data & 0xff); break;
301304      case 1: pac2_index[pac2_bank_select] = (pac2_index[pac2_bank_select] & 0xff) | ((data & 0x7f) << 8); break;
302305      case 2: // RAM write
303         printf("Warning: write to RAM packs\n");
306         if(pac2_bank_select == 3)
307            pac2_ram1[pac2_index[pac2_bank_select]] = data;
308         else if(pac2_bank_select == 4)
309            pac2_ram2[pac2_index[pac2_bank_select]] = data;
304310         break;
305311      case 3:
306312      {
r8683r8684
317323
318324static READ8_HANDLER( pac2_r )
319325{
320   UINT8 *pac2_ram = memory_region(space->machine, "rampac1");
326   UINT8 *pac2_ram1 = memory_region(space->machine, "rampac1");
327   UINT8 *pac2_ram2 = memory_region(space->machine, "rampac2");
321328
322329   if(offset == 2)
323330   {
324      if(pac2_bank_select == 4)
325      {
326         return pac2_ram[pac2_index[4]];
327      }
331      if(pac2_bank_select == 3)
332         return pac2_ram1[pac2_index[pac2_bank_select]];
333      else if(pac2_bank_select == 4)
334         return pac2_ram2[pac2_index[pac2_bank_select]];
328335      else
329336      {
330337         printf("%02x\n",pac2_bank_select);
r8683r8684
383390   if(io_port >= 0x08 && io_port <= 0x0b)       { return i8255a_r(space->machine->device("ppi8255_0"), (io_port-0x08) & 3); }
384391   else if(io_port >= 0x0c && io_port <= 0x0f) { return i8255a_r(space->machine->device("ppi8255_1"), (io_port-0x0c) & 3); }
385392//   else if(io_port == 0x10 || io_port == 0x11) { M6845 read }
386   else if(io_port >= 0x18 && io_port <= 0x1b) { return pac2_r(space, io_port-0x1b);  }
393   else if(io_port >= 0x18 && io_port <= 0x1b) { return pac2_r(space, io_port-0x18);  }
387394   else if(io_port >= 0x20 && io_port <= 0x23) { return i8255a_r(space->machine->device("ppi8255_2"), (io_port-0x20) & 3); }
388395   else if(io_port >= 0x28 && io_port <= 0x2b) { return z80ctc_r(space->machine->device("ctc"), io_port-0x28);  }
389396   else if(io_port >= 0x30 && io_port <= 0x33) { return z80pio_cd_ba_r(space->machine->device("z80pio_0"), (io_port-0x30) & 3); }
r8683r8684
415422   if(io_port >= 0x08 && io_port <= 0x0b)       { i8255a_w(space->machine->device("ppi8255_0"), (io_port-0x08) & 3, data); }
416423   else if(io_port >= 0x0c && io_port <= 0x0f) { i8255a_w(space->machine->device("ppi8255_1"), (io_port-0x0c) & 3, data); }
417424   else if(io_port >= 0x10 && io_port <= 0x11) { pasopia7_6845_w(space, io_port-0x10, data); }
418   else if(io_port >= 0x18 && io_port <= 0x1b) { pac2_w(space, io_port-0x1b, data);  }
425   else if(io_port >= 0x18 && io_port <= 0x1b) { pac2_w(space, io_port-0x18, data);  }
419426   else if(io_port >= 0x20 && io_port <= 0x23) { i8255a_w(space->machine->device("ppi8255_2"), (io_port-0x20) & 3, data); }
420427   else if(io_port >= 0x28 && io_port <= 0x2b) { z80ctc_w(space->machine->device("ctc"), io_port-0x28,data);  }
421428   else if(io_port >= 0x30 && io_port <= 0x33) { z80pio_cd_ba_w(space->machine->device("z80pio_0"), (io_port-0x30) & 3, data); }
r8683r8684
730737   ROM_REGION( 0x20000, "kanji", ROMREGION_ERASEFF )
731738   ROM_LOAD( "kanji.rom", 0x0000, 0x20000, CRC(6109e308) SHA1(5c21cf1f241ef1fa0b41009ea41e81771729785f))
732739
733   ROM_REGION( 0x8000, "rampac1", ROMREGION_ERASE00 )
740   ROM_REGION( 0x8000, "rampac1", ROMREGION_ERASEFF )
734741//   ROM_LOAD( "rampac1.bin", 0x0000, 0x8000, CRC(0e4f09bd) SHA1(4088906d57e4f6085a75b249a6139a0e2eb531a1) )
735742
736   ROM_REGION( 0x8000, "rampac2", ROMREGION_ERASE00 )
743   ROM_REGION( 0x8000, "rampac2", ROMREGION_ERASEFF )
737744//   ROM_LOAD( "rampac2.bin", 0x0000, 0x8000, CRC(0e4f09bd) SHA1(4088906d57e4f6085a75b249a6139a0e2eb531a1) )
738745ROM_END
739746

Previous 15994 Revisions Next


© 1998-2018 The MESS Team