Previous 199869 Revisions Next

r21606 Tuesday 5th March, 2013 at 19:55:47 UTC by Curt Coder
(MESS) cbm8296: WIP. (nw)
[src/mess]mess.lst
[src/mess/drivers]cbm2.c pet.c
[src/mess/includes]pet.h
[src/mess/machine]cbmipt.c cbmipt.h

trunk/src/mess/drivers/cbm2.c
r21605r21606
161161
162162READ8_MEMBER( cbm2_state::read )
163163{
164   int eras = 1, ecas = 0, refen = 0, cas = 0, ras = 1, sysioen = 1, dramen = 1;
164   int eras = 1, ecas = 1, refen = 0, cas = 0, ras = 1, sysioen = 1, dramen = 1;
165165   int casseg1 = 1, casseg2 = 1, casseg3 = 1, casseg4 = 1, buframcs = 1, extbufcs = 1, vidramcs = 1;
166166   int diskromcs = 1, csbank1 = 1, csbank2 = 1, csbank3 = 1, basiccs = 1, knbcs = 1, kernalcs = 1;
167167   int crtccs = 1, cs1 = 1, sidcs = 1, extprtcs = 1, ciacs = 1, aciacs = 1, tript1cs = 1, tript2cs = 1;
r21605r21606
264264
265265WRITE8_MEMBER( cbm2_state::write )
266266{
267   int eras = 1, ecas = 0, refen = 0, cas = 0, ras = 1, sysioen = 1, dramen = 1;
267   int eras = 1, ecas = 1, refen = 0, cas = 0, ras = 1, sysioen = 1, dramen = 1;
268268   int casseg1 = 1, casseg2 = 1, casseg3 = 1, casseg4 = 1, buframcs = 1, extbufcs = 1, vidramcs = 1;
269269   int diskromcs = 1, csbank1 = 1, csbank2 = 1, csbank3 = 1, basiccs = 1, knbcs = 1, kernalcs = 1;
270270   int crtccs = 1, cs1 = 1, sidcs = 1, extprtcs = 1, ciacs = 1, aciacs = 1, tript1cs = 1, tript2cs = 1;
r21605r21606
355355
356356READ8_MEMBER( cbm2_state::ext_read )
357357{
358   /*int ras = 1, cas = 1, refen = 1, eras = 1, ecas = 0;
358#ifdef USE_PLA_DECODE
359   int ras = 1, cas = 1, refen = 0, eras = 1, ecas = 0;
359360   int casseg1 = 1, casseg2 = 1, casseg3 = 1, casseg4 = 1, rasseg1 = 1, rasseg2 = 1, rasseg3 = 1, rasseg4 = 1;
360361
361   this->read_pla(offset, ras, cas, refen, eras, ecas, &casseg1, &casseg2, &casseg3, &casseg4, &rasseg1, &rasseg2, &rasseg3, &rasseg4);*/
362   this->read_pla(offset, ras, cas, refen, eras, ecas, &casseg1, &casseg2, &casseg3, &casseg4, &rasseg1, &rasseg2, &rasseg3, &rasseg4);
362363   UINT8 data = 0xff;
363364
364   if (offset < 0x40000)
365   data = m_ram->pointer()[offset];
366
367   /*if (!casseg1)
365   if (!casseg1)
368366   {
369367       data = m_ram->pointer()[offset & 0xffff];
370368   }
r21605r21606
379377   if (!casseg4 && (m_ram->size() > 0x30000))
380378   {
381379       data = m_ram->pointer()[0x30000 | (offset & 0xffff)];
382   }*/
380   }
383381
384382   return data;
383#endif
384
385   UINT8 data = 0;
386   if (offset < 0x40000) data = m_ram->pointer()[offset];
387   return data;
385388}
386389
387390
r21605r21606
391394
392395WRITE8_MEMBER( cbm2_state::ext_write )
393396{
394   /*int ras = 1, cas = 1, refen = 1, eras = 1, ecas = 0;
397#ifdef USE_PLA_DECODE
398   int ras = 1, cas = 1, refen = 0, eras = 1, ecas = 0;
395399   int casseg1 = 1, casseg2 = 1, casseg3 = 1, casseg4 = 1, rasseg1 = 1, rasseg2 = 1, rasseg3 = 1, rasseg4 = 1;
396400
397401   this->read_pla(offset, ras, cas, refen, eras, ecas, &casseg1, &casseg2, &casseg3, &casseg4, &rasseg1, &rasseg2, &rasseg3, &rasseg4);
r21605r21606
411415   if (!casseg4 && (m_ram->size() > 0x30000))
412416   {
413417       m_ram->pointer()[0x30000 | (offset & 0xffff)] = data;
414   }*/
418   }
419#endif
415420
416   if (offset < 0x40000)
417   m_ram->pointer()[offset] = data;
421   if (offset < 0x40000) m_ram->pointer()[offset] = data;
418422}
419423
420424
r21605r21606
17021706
17031707   if (m_busy2)
17041708   {
1709      //m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
1710
17051711      m_busen1 = m_dramon;
17061712   }
17071713   else
17081714   {
1715      //m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
1716
17091717      m_busen1 = 0;
17101718   }
17111719}
trunk/src/mess/drivers/pet.c
r21605r21606
141141    - SuperPET
142142        - 6809
143143        - OS/9 MMU
144    - 8096
145        - 64k expansion
146144    - 8296
147145        - PLA dumps
148146        - high resolution graphics
149        - rom software list
150147
151148*/
152149
r21605r21606
321318}
322319
323320
321//-------------------------------------------------
322//  read_pla1 -
323//-------------------------------------------------
324324
325void cbm8296_state::read_pla1(offs_t offset, int phi2, int brw, int noscreen, int noio, int ramsela, int ramsel9, int ramon, int norom,
326   int &cswff, int &cs9, int &csa, int &csio, int &cse, int &cskb, int &fa12, int &casena1)
327{
328   UINT32 input = (offset & 0xff00) | phi2 << 7 | brw << 6 | noscreen << 5 | noio << 4 | ramsela << 3 | ramsel9 << 2 | ramon << 1 | norom;
329   //UINT32 data = m_pla1->read(input);
330   input = BITSWAP16(input,0,10,15,11,9,8,13,14,12,7,6,5,4,3,2,1);
331   UINT8 data = m_ue6_rom->base()[input];
332   data = BITSWAP8(data,7,0,1,2,3,4,5,6);
333
334   cswff = BIT(data, 0);
335   cs9 = BIT(data, 1);
336   csa = BIT(data, 2);
337   csio = BIT(data, 3);
338   cse = BIT(data, 4);
339   cskb = BIT(data, 5);
340   fa12 = BIT(data, 6);
341   casena1 = BIT(data, 7);
342}
343
344
345//-------------------------------------------------
346//  read_pla2 -
347//-------------------------------------------------
348
349void cbm8296_state::read_pla2(offs_t offset, int phi2, int brw, int casena1, int &endra, int &noscreen, int &casena2, int &fa15)
350{
351   UINT32 input = BITSWAP8(m_cr, 0,1,2,3,4,5,6,7) << 8 | ((offset >> 8) & 0xf8) | brw << 2 | phi2 << 1 | casena1;
352   //UINT32 data = m_pla2->read(input);
353   input = BITSWAP16(input,0,10,15,11,9,8,13,14,12,7,6,5,4,3,2,1);
354   UINT8 data = m_ue5_rom->base()[input];
355   data = BITSWAP8(data,7,0,1,2,3,4,5,6);
356
357   endra = BIT(data, 4);
358   noscreen = BIT(data, 5);
359   casena2 = BIT(data, 6);
360   fa15 = BIT(data, 7);
361}
362
363
364//-------------------------------------------------
365//  read -
366//-------------------------------------------------
367
368READ8_MEMBER( cbm8296_state::read )
369{
370   int norom = m_exp->norom_r(space, offset, offset >> 12) && !BIT(m_cr, 7);
371   int phi2 = 1, brw = 1, noscreen = 1, noio = BIT(m_cr, 6);
372   int ramsela = BIT(m_via_pa, 0), ramsel9 = BIT(m_via_pa, 1), ramon = BIT(m_via_pa, 2);
373   int cswff = 1, cs9 = 1, csa = 1, csio = 1, cse = 1, cskb = 1, fa12 = 1, fa15 = 1, casena1 = 1, casena2 = 1, endra = 1;
374
375   read_pla1(offset, phi2, brw, noscreen, noio, ramsela, ramsel9, ramon, norom,
376      cswff, cs9, csa, csio, cse, cskb, fa12, casena1);
377
378   read_pla2(offset, phi2, brw, casena1, endra, noscreen, casena2, fa15);
379
380   read_pla1(offset, phi2, brw, noscreen, noio, ramsela, ramsel9, ramon, norom,
381      cswff, cs9, csa, csio, cse, cskb, fa12, casena1);
382
383   //printf("%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",offset,cswff,cs9,csa,csio,cse,cskb,fa12,casena1,endra,noscreen,casena2,fa15);
384
385   UINT8 data = 0;
386
387   if (!endra)
388   {
389      if (!casena1)
390      {
391         data = m_ram->pointer()[offset & 0xffff];
392      }
393      if (!casena2)
394      {
395         data = m_ram->pointer()[0x10000 | fa15 << 15 | (offset & 0x7fff)];
396      }
397   }
398   if (!cs9)
399   {
400      data = m_rom->base()[offset & 0xfff];
401   }
402   if (!csa)
403   {
404      data = m_rom->base()[0x1000 | (offset & 0xfff)];
405   }
406   if (!cse)
407   {
408      data = m_editor_rom->base()[offset & 0xfff];
409   }
410   if (!cskb)
411   {
412      data = m_basic_rom->base()[(offset & 0x2fff) | fa12 << 12];
413   }
414   if (!csio)
415   {
416      if (BIT(offset, 4))
417      {
418         data = m_pia1->read(space, offset & 0x03);
419      }
420      if (BIT(offset, 5))
421      {
422         data = m_pia2->read(space, offset & 0x03);
423      }
424      if (BIT(offset, 6))
425      {
426         data = m_via->read(space, offset & 0x0f);
427      }
428      if (BIT(offset, 7) && BIT(offset, 0))
429      {
430         data = m_crtc->register_r(space, 0);
431      }
432   }
433
434   return data;
435}
436
437
438//-------------------------------------------------
439//  write -
440//-------------------------------------------------
441
442WRITE8_MEMBER( cbm8296_state::write )
443{
444   int norom = m_exp->norom_r(space, offset, offset >> 12) && !BIT(m_cr, 7);
445   int phi2 = 1, brw = 0, noscreen = 1, noio = BIT(m_cr, 6);
446   int ramsela = BIT(m_via_pa, 0), ramsel9 = BIT(m_via_pa, 1), ramon = BIT(m_via_pa, 2);
447   int cswff = 1, cs9 = 1, csa = 1, csio = 1, cse = 1, cskb = 1, fa12 = 1, fa15 = 1, casena1 = 1, casena2 = 1, endra = 1;
448
449   read_pla1(offset, phi2, brw, noscreen, noio, ramsela, ramsel9, ramon, norom,
450      cswff, cs9, csa, csio, cse, cskb, fa12, casena1);
451
452   read_pla2(offset, phi2, brw, casena1, endra, noscreen, casena2, fa15);
453
454   read_pla1(offset, phi2, brw, noscreen, noio, ramsela, ramsel9, ramon, norom,
455      cswff, cs9, csa, csio, cse, cskb, fa12, casena1);
456
457   if (!endra)
458   {
459      if (!casena1)
460      {
461         m_ram->pointer()[offset & 0xffff] = data;
462      }
463      if (!casena2)
464      {
465         m_ram->pointer()[0x10000 | fa15 << 15 | (offset & 0x7fff)] = data;
466      }
467   }
468   if (!csio)
469   {
470      if (BIT(offset, 4))
471      {
472         m_pia1->write(space, offset & 0x03, data);
473      }
474      if (BIT(offset, 5))
475      {
476         m_pia2->write(space, offset & 0x03, data);
477      }
478      if (BIT(offset, 6))
479      {
480         m_via->write(space, offset & 0x0f, data);
481      }
482      if (m_crtc && BIT(offset, 7))
483      {
484         if (BIT(offset, 0))
485         {
486            m_crtc->register_w(space, 0, data);
487         }
488         else
489         {
490            m_crtc->address_w(space, 0, data);
491         }
492      }
493   }
494   if (!cswff && ((offset & 0xff) == 0xf0))
495   {
496      m_cr = data;
497   }
498}
499
500
501
325502//**************************************************************************
326503//  ADDRESS MAPS
327504//**************************************************************************
r21605r21606
335512ADDRESS_MAP_END
336513
337514
515//-------------------------------------------------
516//  ADDRESS_MAP( cbm8296_mem )
517//-------------------------------------------------
338518
519static ADDRESS_MAP_START( cbm8296_mem, AS_PROGRAM, 8, cbm8296_state )
520   AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write)
521ADDRESS_MAP_END
522
523
524
339525//**************************************************************************
340526//  INPUT PORTS
341527//**************************************************************************
r21605r21606
596782   check_interrupts();
597783}
598784
785WRITE8_MEMBER( pet_state::via_pa_w )
786{
787   m_user->pa_w(space, 0, data);
788
789   m_via_pa = data;
790}
791
599792READ8_MEMBER( pet_state::via_pb_r )
600793{
601794   /*
r21605r21606
674867   DEVCB_DEVICE_LINE_MEMBER(PET_DATASSETTE_PORT2_TAG, pet_datassette_port_device, read),
675868   DEVCB_NULL,
676869   DEVCB_NULL,
677   DEVCB_DEVICE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, pa_w),
870   DEVCB_DRIVER_MEMBER(pet_state, via_pa_w),
678871   DEVCB_DRIVER_MEMBER(pet_state, via_pb_w),
679872   DEVCB_DEVICE_LINE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, ca1_w),
680873   DEVCB_DRIVER_LINE_MEMBER(pet_state, via_ca2_w),
r21605r21606
11011294}
11021295
11031296
1297//-------------------------------------------------
1298//  MACHINE_START( cbm8296 )
1299//-------------------------------------------------
11041300
1301MACHINE_START_MEMBER( cbm8296_state, cbm8296 )
1302{
1303   MACHINE_START_CALL_MEMBER(pet80);
1304
1305   // state saving
1306   save_item(NAME(m_cr));
1307   save_item(NAME(m_via_pa));
1308}
1309
1310
1311//-------------------------------------------------
1312//  MACHINE_RESET( cbm8296 )
1313//-------------------------------------------------
1314
1315MACHINE_RESET_MEMBER( cbm8296_state, cbm8296 )
1316{
1317   MACHINE_RESET_CALL_MEMBER(pet80);
1318
1319   m_cr = 0;
1320   m_via_pa = 0xff;
1321}
1322
1323
1324
11051325//**************************************************************************
11061326//  MACHINE DRIVERS
11071327//**************************************************************************
r21605r21606
15121732//-------------------------------------------------
15131733
15141734static MACHINE_CONFIG_DERIVED_CLASS( cbm8296, pet80, cbm8296_state )
1735   MCFG_MACHINE_START_OVERRIDE(cbm8296_state, cbm8296)
1736   MCFG_MACHINE_RESET_OVERRIDE(cbm8296_state, cbm8296)
1737   
1738   MCFG_CPU_MODIFY(M6502_TAG)
1739   MCFG_CPU_PROGRAM_MAP(cbm8296_mem)
1740
1741   MCFG_PLS100_ADD(PLA1_TAG)
1742   MCFG_PLS100_ADD(PLA2_TAG)
1743
1744   MCFG_DEVICE_REMOVE("ieee8")
1745   MCFG_IEEE488_SLOT_ADD("ieee8", 8, cbm_ieee488_devices, "c8250", NULL)
1746
15151747   MCFG_RAM_ADD(RAM_TAG)
15161748   MCFG_RAM_DEFAULT_SIZE("128K")
15171749
r21605r21606
15241756//-------------------------------------------------
15251757
15261758static MACHINE_CONFIG_DERIVED( cbm8296d, cbm8296 )
1759   MCFG_DEVICE_REMOVE("ieee8")
1760   MCFG_IEEE488_SLOT_ADD("ieee8", 8, cbm8296d_ieee488_devices, "c8250lp", NULL)
15271761MACHINE_CONFIG_END
15281762
15291763
r21605r21606
18052039//-------------------------------------------------
18062040
18072041ROM_START( cbm8296 )
1808   ROM_REGION( 0x7000, M6502_TAG, 0 )
1809   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
1810   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1811   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
1812   ROM_CONTINUE(              0x6000, 0x1000 )
1813   ROM_LOAD( "8296.ue8", 0x5000, 0x800, CRC(a3475de6) SHA1(b715db83fd26458dfd254bef5c4aae636753f7f5) )
2042   ROM_REGION( 0x2000, M6502_TAG, 0 )
2043   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
2044   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
18142045
2046   ROM_REGION( 0x4000, "basic", 0 )
2047   ROM_LOAD( "324746-01.ue7", 0x0000, 0x4000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
2048
2049   ROM_REGION( 0x1000, "editor", 0 )
2050   ROM_LOAD( "8296.ue8", 0x000, 0x800, CRC(a3475de6) SHA1(b715db83fd26458dfd254bef5c4aae636753f7f5) )
2051
18152052   ROM_REGION( 0x1000, "charom", 0 )
18162053   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
18172054
18182055   ROM_REGION( 0x20, "prom", 0 )
18192056   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
18202057
1821   ROM_REGION( 0xf5, "pla1", 0 )
2058   ROM_REGION( 0x10000, "ue5hack", 0 )
2059   ROM_LOAD( "ue5.bin", 0x00000, 0x10000, BAD_DUMP CRC(f70b7b37) SHA1(fe0fbb0fa71775f3780134aa11dac5b761526148) )
2060
2061   ROM_REGION( 0x10000, "ue6hack", 0 )
2062   ROM_LOAD( "ue6.bin", 0x00000, 0x10000, BAD_DUMP CRC(36952256) SHA1(e94d3e744a6aaff553bf260f25da0286436265d1) )
2063
2064   ROM_REGION( 0xf5, PLA1_TAG, 0 )
18222065   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP ) // 8700-009
18232066
1824   ROM_REGION( 0xf5, "pla2", 0 )
2067   ROM_REGION( 0xf5, PLA2_TAG, 0 )
18252068   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP ) // 8700-008
18262069ROM_END
18272070
18282071
18292072//-------------------------------------------------
2073//  ROM( cbm8296ed )
2074//-------------------------------------------------
2075
2076ROM_START( cbm8296ed )
2077   ROM_REGION( 0x2000, M6502_TAG, 0 )
2078   ROM_LOAD( "oracle.ue10", 0x0000, 0x1000, NO_DUMP )
2079   ROM_LOAD( "paperclip.ue9", 0x1000, 0x1000, CRC(8fb11d4b) SHA1(1c0f883cd3b8ded42ec00d83f7e7f0887f91fec0) )
2080
2081   ROM_REGION( 0x4000, "basic", 0 )
2082   ROM_LOAD( "324746-01.ue7", 0x0000, 0x4000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
2083
2084   ROM_REGION( 0x1000, "editor", 0 )
2085   ROM_LOAD( "execudesk.ue8", 0x000, 0x800, CRC(bef0eaa1) SHA1(7ea63a2d651f516e96b8725195c13542ea495ebd) )
2086
2087   ROM_REGION( 0x1000, "charom", 0 )
2088   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
2089
2090   ROM_REGION( 0x20, "prom", 0 )
2091   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
2092
2093   ROM_REGION( 0x10000, "ue5hack", 0 )
2094   ROM_LOAD( "ue5.bin", 0x00000, 0x10000, BAD_DUMP CRC(f70b7b37) SHA1(fe0fbb0fa71775f3780134aa11dac5b761526148) )
2095
2096   ROM_REGION( 0x10000, "ue6hack", 0 )
2097   ROM_LOAD( "ue6.bin", 0x00000, 0x10000, BAD_DUMP CRC(36952256) SHA1(e94d3e744a6aaff553bf260f25da0286436265d1) )
2098
2099   ROM_REGION( 0xf5, PLA1_TAG, 0 )
2100   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP ) // 8700-009
2101
2102   ROM_REGION( 0xf5, PLA2_TAG, 0 )
2103   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP ) // 8700-008
2104ROM_END
2105
2106
2107//-------------------------------------------------
18302108//  ROM( cbm8296d )
18312109//-------------------------------------------------
18322110
18332111ROM_START( cbm8296d )
1834   ROM_REGION( 0x7000, M6502_TAG, 0 )
1835   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
1836   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1837   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
1838   ROM_CONTINUE(              0x6000, 0x1000 )
1839   ROM_LOAD( "324243-01.ue8", 0x5000, 0x1000, CRC(4000e833) SHA1(dafbdf8ba0a1fe7d7b9586ffbfc9e5390c0fcf6f) )
2112   ROM_REGION( 0x2000, M6502_TAG, 0 )
2113   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
2114   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
18402115
2116   ROM_REGION( 0x4000, "basic", 0 )
2117   ROM_LOAD( "324746-01.ue7", 0x0000, 0x4000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
2118
2119   ROM_REGION( 0x1000, "editor", 0 )
2120   ROM_LOAD( "324243-01.ue8", 0x0000, 0x1000, CRC(4000e833) SHA1(dafbdf8ba0a1fe7d7b9586ffbfc9e5390c0fcf6f) )
2121
18412122   ROM_REGION( 0x1000, "charom", 0 )
18422123   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
18432124
18442125   ROM_REGION( 0x20, "prom", 0 )
18452126   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
18462127
1847   ROM_REGION( 0xf5, "pla1", 0 )
2128   ROM_REGION( 0x10000, "ue5hack", 0 )
2129   ROM_LOAD( "ue5.bin", 0x00000, 0x10000, BAD_DUMP CRC(f70b7b37) SHA1(fe0fbb0fa71775f3780134aa11dac5b761526148) )
2130
2131   ROM_REGION( 0x10000, "ue6hack", 0 )
2132   ROM_LOAD( "ue6.bin", 0x00000, 0x10000, BAD_DUMP CRC(36952256) SHA1(e94d3e744a6aaff553bf260f25da0286436265d1) )
2133
2134   ROM_REGION( 0xf5, PLA1_TAG, 0 )
18482135   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP ) // 8700-009
18492136
1850   ROM_REGION( 0xf5, "pla2", 0 )
2137   ROM_REGION( 0xf5, PLA2_TAG, 0 )
18512138   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP ) // 8700-008
18522139ROM_END
18532140
r21605r21606
18572144//-------------------------------------------------
18582145
18592146ROM_START( cbm8296d_de )
1860   ROM_REGION( 0x7000, M6502_TAG, 0 )
2147   ROM_REGION( 0x2000, M6502_TAG, 0 )
2148   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
2149   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
2150
2151   ROM_REGION( 0x4000, "basic", 0 )
2152   ROM_LOAD( "324746-01.ue7", 0x0000, 0x4000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
2153
2154   ROM_REGION( 0x1000, "editor", 0 )
2155   ROM_LOAD( "324243-04.ue8", 0x0000, 0x1000, CRC(3fe48897) SHA1(c218ff3168514f1d5e7822ae1b1ac3e161523b33) )
2156
2157   ROM_REGION( 0x1000, "charom", 0 )
2158   ROM_LOAD( "324242-10.uc5", 0x0000, 0x1000, CRC(a5632a0f) SHA1(9616f7f18757cccefb702a945f954b644d5b17d1) )
2159
2160   ROM_REGION( 0x20, "prom", 0 )
2161   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
2162
2163   ROM_REGION( 0x10000, "ue5hack", 0 )
2164   ROM_LOAD( "ue5.bin", 0x00000, 0x10000, BAD_DUMP CRC(f70b7b37) SHA1(fe0fbb0fa71775f3780134aa11dac5b761526148) )
2165
2166   ROM_REGION( 0x10000, "ue6hack", 0 )
2167   ROM_LOAD( "ue6.bin", 0x00000, 0x10000, BAD_DUMP CRC(36952256) SHA1(e94d3e744a6aaff553bf260f25da0286436265d1) )
2168
2169   ROM_REGION( 0xf5, PLA1_TAG, 0 )
2170   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP ) // 8700-009
2171
2172   ROM_REGION( 0xf5, PLA2_TAG, 0 )
2173   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP ) // 8700-008
2174ROM_END
2175
2176
2177//-------------------------------------------------
2178//  ROM( cbm8296gd )
2179//-------------------------------------------------
2180
2181ROM_START( cbm8296gd )
2182   ROM_REGION( 0x2000, M6502_TAG, 0 )
18612183   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
18622184   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1863   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )
1864   ROM_CONTINUE(              0x6000, 0x1000 )
1865   ROM_LOAD( "324243-04.ue8", 0x5000, 0x1000, CRC(3fe48897) SHA1(c218ff3168514f1d5e7822ae1b1ac3e161523b33) )
18662185
2186   ROM_REGION( 0x4000, "basic", 0 )
2187   ROM_LOAD( "324746-01.ue7", 0x0000, 0x4000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
2188
2189   ROM_REGION( 0x1000, "editor", 0 )
2190   ROM_LOAD( "324243-01.ue8", 0x0000, 0x1000, CRC(4000e833) SHA1(dafbdf8ba0a1fe7d7b9586ffbfc9e5390c0fcf6f) )
2191
18672192   ROM_REGION( 0x1000, "charom", 0 )
1868   ROM_LOAD( "324242-10.uc5", 0x0000, 0x1000, CRC(a5632a0f) SHA1(9616f7f18757cccefb702a945f954b644d5b17d1) )
2193   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
18692194
18702195   ROM_REGION( 0x20, "prom", 0 )
18712196   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
18722197
1873   ROM_REGION( 0xf5, "pla1", 0 )
2198   ROM_REGION( 0x10000, "ue5hack", 0 )
2199   ROM_LOAD( "ue5.bin", 0x00000, 0x10000, BAD_DUMP CRC(f70b7b37) SHA1(fe0fbb0fa71775f3780134aa11dac5b761526148) )
2200
2201   ROM_REGION( 0x10000, "ue6hack", 0 )
2202   ROM_LOAD( "ue6.bin", 0x00000, 0x10000, BAD_DUMP CRC(36952256) SHA1(e94d3e744a6aaff553bf260f25da0286436265d1) )
2203
2204   ROM_REGION( 0xf5, PLA1_TAG, 0 )
18742205   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP ) // 8700-009
18752206
1876   ROM_REGION( 0xf5, "pla2", 0 )
2207   ROM_REGION( 0xf5, PLA2_TAG, 0 )
18772208   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP ) // 8700-008
18782209ROM_END
18792210
r21605r21606
19112242COMP( 1981, mmf9000_se, pet8032,    0,      superpet,   petb_se,    driver_device,  0,  "Commodore Business Machines",  "MicroMainFrame 9000 (Sweden/Finland)",         GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
19122243COMP( 1981, cbm8096,    pet8032,    0,      cbm8096,    petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8096",                     GAME_SUPPORTS_SAVE )
19132244COMP( 1984, cbm8296,    0,          0,      cbm8296,    petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8296",                     GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1914COMP( 1984, cbm8296d,   cbm8296,    0,      cbm8296d,   petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8296D",                    GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1915COMP( 1984, cbm8296d_de,cbm8296,    0,      cbm8296d,   petb_de,    driver_device,  0,  "Commodore Business Machines",  "CBM 8296D (Germany)",          GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2245COMP( 1984, cbm8296ed,  cbm8296,    0,      cbm8296d,   petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8296 ExecuDesk",           GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2246COMP( 1984, cbm8296d,   cbm8296,    0,      cbm8296d,   petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8296-D",                   GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2247COMP( 1984, cbm8296d_de,cbm8296,    0,      cbm8296d,   petb_de,    driver_device,  0,  "Commodore Business Machines",  "CBM 8296-D (Germany)",         GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2248COMP( 1984, cbm8296gd,  cbm8296,    0,      cbm8296d,   petb,       driver_device,  0,  "Commodore Business Machines",  "CBM 8296GD",                   GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mess/machine/cbmipt.c
r21605r21606
10861086   SLOT_INTERFACE("c4040", C4040)
10871087   SLOT_INTERFACE("c8050", C8050)
10881088   SLOT_INTERFACE("c8250", C8250)
1089   SLOT_INTERFACE("c8250lp", C8250LP)
10901089   SLOT_INTERFACE("sfd1001", SFD1001)
10911090   SLOT_INTERFACE("c2031", C2031)
10921091   SLOT_INTERFACE("c8280", C8280)
r21605r21606
10951094   SLOT_INTERFACE("softbox", SOFTBOX)
10961095SLOT_INTERFACE_END
10971096
1097SLOT_INTERFACE_START( cbm8296d_ieee488_devices )
1098   SLOT_INTERFACE("c8250lp", C8250LP)
1099SLOT_INTERFACE_END
1100
10981101SLOT_INTERFACE_START( vic20_expansion_cards )
10991102   SLOT_INTERFACE("exp", VIC1010)
11001103   SLOT_INTERFACE("3k", VIC1210)
trunk/src/mess/machine/cbmipt.h
r21605r21606
173173SLOT_INTERFACE_EXTERN( c128dcr_iec_devices );
174174SLOT_INTERFACE_EXTERN( c128d81_iec_devices );
175175SLOT_INTERFACE_EXTERN( cbm_ieee488_devices );
176SLOT_INTERFACE_EXTERN( cbm8296d_ieee488_devices );
176177SLOT_INTERFACE_EXTERN( vic20_control_port_devices );
177178SLOT_INTERFACE_EXTERN( vic20_expansion_cards );
178179SLOT_INTERFACE_EXTERN( vic20_user_port_cards );
trunk/src/mess/includes/pet.h
r21605r21606
1313#include "machine/petcass.h"
1414#include "machine/petexp.h"
1515#include "machine/petuser.h"
16#include "machine/pla.h"
1617#include "machine/ram.h"
1718#include "sound/speaker.h"
1819#include "video/mc6845.h"
r21605r21606
2324#define M6520_2_TAG     "b8"
2425#define MC6845_TAG      "ub13"
2526#define SCREEN_TAG      "screen"
27#define PLA1_TAG      "ue6"
28#define PLA2_TAG      "ue5"
2629
2730class pet_state : public driver_device
2831{
r21605r21606
107110   DECLARE_WRITE8_MEMBER( write );
108111
109112   DECLARE_WRITE_LINE_MEMBER( via_irq_w );
113   DECLARE_WRITE8_MEMBER( via_pa_w );
110114   DECLARE_READ8_MEMBER( via_pb_r );
111115   DECLARE_WRITE8_MEMBER( via_pb_w );
112116   DECLARE_WRITE_LINE_MEMBER( via_ca2_w );
r21605r21606
158162   int m_via_cb2;
159163   int m_pia1_pa7;
160164
165   UINT8 m_via_pa;
166
161167   // interrupt state
162168   int m_via_irq;
163169   int m_pia1a_irq;
r21605r21606
213219{
214220public:
215221   cbm8296_state(const machine_config &mconfig, device_type type, const char *tag)
216      : pet80_state(mconfig, type, tag)
222      : pet80_state(mconfig, type, tag),
223         m_basic_rom(*this, "basic"),
224         m_editor_rom(*this, "editor"),
225         m_ue5_rom(*this, "ue5hack"),
226         m_ue6_rom(*this, "ue6hack"),
227         m_pla1(*this, PLA1_TAG),
228         m_pla2(*this, PLA2_TAG)
217229   { }
230
231   required_memory_region m_basic_rom;
232   required_memory_region m_editor_rom;
233   required_memory_region m_ue5_rom;
234   required_memory_region m_ue6_rom;
235   required_device<pls100_device> m_pla1;
236   required_device<pls100_device> m_pla2;
237
238   DECLARE_MACHINE_START( cbm8296 );
239   DECLARE_MACHINE_RESET( cbm8296 );
240
241   void read_pla1(offs_t offset, int phi2, int brw, int noscreen, int noio, int ramsela, int ramsel9, int ramon, int norom,
242      int &cswff, int &cs9, int &csa, int &csio, int &cse, int &cskb, int &fa12, int &casena1);
243   void read_pla2(offs_t offset, int phi2, int brw, int casena1, int &endra, int &noscreen, int &casena2, int &fa15);
244
245   DECLARE_READ8_MEMBER( read );
246   DECLARE_WRITE8_MEMBER( write );
247
248   UINT8 m_cr;
218249};
219250
220251
trunk/src/mess/mess.lst
r21605r21606
605605mmf9000_se
606606cbm8096
607607cbm8296
608cbm8296ed
608609cbm8296d
609610cbm8296d_de
611cbm8296gd
610612
611613vic1001   // Commodore VIC-1001 (Japan)
612614vic20    // Commodore VIC 20 (NTSC)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team