Previous 199869 Revisions Next

r22875 Friday 17th May, 2013 at 19:50:29 UTC by Curt Coder
(MESS) cbm8296: WIP. (nw)
[src/mess/drivers]pet.c

trunk/src/mess/drivers/pet.c
r22874r22875
387387
388388   if (!endra)
389389   {
390      //logerror("%s read  %04x : cswff %u cs9 %u csa %u csio %u cse %u cskb %u fa12 %u casena1 %u endra %u noscreen %u casena2 %u fa15 %u\n",machine().describe_context(),offset,cswff,cs9,csa,csio,cse,cskb,fa12,casena1,endra,noscreen,casena2,fa15);
391
392      offs_t drma = fa15 << 15 | (offset & 0x7e00) | BIT(offset, 0) << 8 | (offset & 0x1fe) >> 1;
393
390394      if (!casena1)
391395      {
392         data = m_ram->pointer()[offset & 0xffff];
396         data = m_ram->pointer()[drma];
393397      }
394398      if (casena2)
395399      {
396         data = m_ram->pointer()[0x10000 | fa15 << 15 | (offset & 0x7fff)];
400         data = m_ram->pointer()[0x10000 | drma];
397401      }
398402   }
399403   if (!cs9)
r22874r22875
457461
458462   if (!endra)
459463   {
464      //logerror("%s write %04x : cswff %u cs9 %u csa %u csio %u cse %u cskb %u fa12 %u casena1 %u endra %u noscreen %u casena2 %u fa15 %u\n",machine().describe_context(),offset,cswff,cs9,csa,csio,cse,cskb,fa12,casena1,endra,noscreen,casena2,fa15);
465     
466      offs_t drma = fa15 << 15 | (offset & 0x7e00) | BIT(offset, 0) << 8 | (offset & 0x1fe) >> 1;
467
460468      if (!casena1)
461469      {
462         m_ram->pointer()[offset & 0xffff] = data;
470         m_ram->pointer()[drma] = data;
463471      }
464472      if (casena2)
465473      {
466         m_ram->pointer()[0x10000 | fa15 << 15 | (offset & 0x7fff)] = data;
474         m_ram->pointer()[0x10000 | drma] = data;
467475      }
468476   }
469477   if (!csio)
r22874r22875
480488      {
481489         m_via->write(space, offset & 0x0f, data);
482490      }
483      if (m_crtc && BIT(offset, 7))
491      if (BIT(offset, 7))
484492      {
485493         if (BIT(offset, 0))
486494         {
r22874r22875
12131221      UINT8 lsd = 0, data = 0;
12141222      UINT8 rra = ra & 0x07;
12151223      int no_row = !BIT(ra, 3);
1224      int ra4 = BIT(ra, 4);
12161225      int chr_option = BIT(ma, 13);
1226      offs_t vma = (ma + column) & 0x1fff;
1227      offs_t drma = 0x8000 | ra4 << 14 | ((vma & 0xf00) << 1) | (vma & 0xff);
12171228
12181229      // even character
12191230
1220      lsd = state->m_ram->pointer()[0x8000 | (((ma + column) << 1) & 0x1fff)];
1231      lsd = state->m_ram->pointer()[drma];
12211232
12221233      offs_t char_addr = (chr_option << 11) | (state->m_graphic << 10) | ((lsd & 0x7f) << 3) | rra;
12231234      data = state->m_char_rom->base()[char_addr & char_rom_mask];
r22874r22875
12301241
12311242      // odd character
12321243
1233      lsd = state->m_ram->pointer()[0x8000 | ((((ma + column) << 1) + 1) & 0x1fff)];
1244      lsd = state->m_ram->pointer()[drma | 0x100];
12341245
12351246      char_addr = (chr_option << 11) | (state->m_graphic << 10) | ((lsd & 0x7f) << 3) | rra;
12361247      data = state->m_char_rom->base()[char_addr & char_rom_mask];
r22874r22875
13951406static MACHINE_CONFIG_FRAGMENT( 4k )
13961407   MCFG_RAM_ADD(RAM_TAG)
13971408   MCFG_RAM_DEFAULT_SIZE("4K")
1398   MCFG_RAM_EXTRA_OPTIONS("8K, 16K,32K")
1409   MCFG_RAM_EXTRA_OPTIONS("8K,16K,32K")
13991410MACHINE_CONFIG_END
14001411
14011412

Previous 199869 Revisions Next


© 1997-2024 The MAME Team