Previous 199869 Revisions Next

r20654 Friday 1st February, 2013 at 18:38:13 UTC by Curt Coder
(MESS) pet: Moved the remaining PETs to the new driver. [Curt Coder]
[src/mess]mess.lst mess.mak
[src/mess/drivers]pet.c pet2001.c
[src/mess/includes]pet2001.h

trunk/src/mess/includes/pet2001.h
r20653r20654
1111#include "machine/ieee488.h"
1212#include "machine/petcass.h"
1313#include "machine/ram.h"
14#include "sound/speaker.h"
1415#include "video/mc6845.h"
1516
1617#define M6502_TAG       "f3"
1718#define M6522_TAG       "a5"
1819#define M6520_1_TAG    "g8"
1920#define M6520_2_TAG    "b8"
21#define MC6845_TAG      "ub13"
22#define M6809_TAG      "u4"
2023#define SCREEN_TAG      "screen"
2124
2225class pet2001_state : public driver_device
r20653r20654
2831         m_via(*this, M6522_TAG),
2932         m_pia1(*this, M6520_1_TAG),
3033         m_pia2(*this, M6520_2_TAG),
34         m_crtc(*this, MC6845_TAG),
3135         m_ieee(*this, IEEE488_TAG),
3236         m_cassette(*this, PET_DATASSETTE_PORT_TAG),
3337         m_cassette2(*this, PET_DATASSETTE_PORT2_TAG),
3438         //m_exp(*this, PET_EXPANSION_SLOT_TAG),
3539         //m_user(*this, PET_USER_PORT_TAG),
40         m_speaker(*this, SPEAKER_TAG),
3641         m_ram(*this, RAM_TAG),
3742         m_rom(*this, M6502_TAG),
38         m_spare_rom(*this, "spare"),
39         m_char_rom(*this, "gfx1"),
43         m_char_rom(*this, "charom"),
4044         m_video_ram(*this, "video_ram"),
4145         m_row0(*this, "ROW0"),
4246         m_row1(*this, "ROW1"),
r20653r20654
6569   required_device<via6522_device> m_via;
6670   required_device<pia6821_device> m_pia1;
6771   required_device<pia6821_device> m_pia2;
72   optional_device<mc6845_device> m_crtc;
6873   required_device<ieee488_device> m_ieee;
6974   required_device<pet_datassette_port_device> m_cassette;
7075   required_device<pet_datassette_port_device> m_cassette2;
7176   //required_device<pet_expansion_slot_device> m_exp;
7277   //required_device<pet_user_port_device> m_user;
78   optional_device<speaker_sound_device> m_speaker;
7379   required_device<ram_device> m_ram;
7480   required_memory_region m_rom;
75   optional_memory_region m_spare_rom;
7681   required_memory_region m_char_rom;
7782   optional_shared_ptr<UINT8> m_video_ram;
7883   required_ioport m_row0;
r20653r20654
8792   required_ioport m_row9;
8893   required_ioport m_lock;
8994
90   virtual void machine_start();
91   virtual void machine_reset();
95   DECLARE_MACHINE_START( pet );
96   DECLARE_MACHINE_START( pet2001 );
97   DECLARE_MACHINE_RESET( pet );
9298
9399   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
94100
95101   void check_interrupts();
102   void update_speaker();
96103
97104   DECLARE_READ8_MEMBER( read );
98105   DECLARE_WRITE8_MEMBER( write );
r20653r20654
101108   DECLARE_READ8_MEMBER( via_pb_r );
102109   DECLARE_WRITE8_MEMBER( via_pb_w );
103110   DECLARE_WRITE_LINE_MEMBER( via_ca2_w );
111   DECLARE_WRITE_LINE_MEMBER( via_cb2_w );
104112
105113   DECLARE_WRITE_LINE_MEMBER( pia1_irqa_w );
106114   DECLARE_WRITE_LINE_MEMBER( pia1_irqb_w );
r20653r20654
142150   int m_sync;
143151   int m_graphic;
144152   int m_blanktv;
153   int m_video_ram_size;
145154
155   // sound state
156   int m_via_cb2;
157   int m_pia1_pa7;
158
146159   // interrupt state
147160   int m_via_irq;
148161   int m_pia1a_irq;
r20653r20654
164177};
165178
166179
180class pet80_state : public pet2001b_state
181{
182public:
183   pet80_state(const machine_config &mconfig, device_type type, const char *tag)
184      : pet2001b_state(mconfig, type, tag)
185   { }
167186
168#endif
No newline at end of file
187   DECLARE_MACHINE_START( pet80 );
188   DECLARE_MACHINE_RESET( pet80 );
189};
190
191
192class superpet_state : public pet80_state
193{
194public:
195   superpet_state(const machine_config &mconfig, device_type type, const char *tag)
196      : pet80_state(mconfig, type, tag)
197   { }
198};
199
200
201class cbm8096_state : public pet80_state
202{
203public:
204   cbm8096_state(const machine_config &mconfig, device_type type, const char *tag)
205      : pet80_state(mconfig, type, tag)
206   { }
207};
208
209
210class cbm8296_state : public pet80_state
211{
212public:
213   cbm8296_state(const machine_config &mconfig, device_type type, const char *tag)
214      : pet80_state(mconfig, type, tag)
215   { }
216};
217
218
219
220#endif
trunk/src/mess/mess.lst
r20653r20654
576576aim65    // Rockwell AIM65
577577aim65_40  // Rockwell AIM65/40
578578
579pet2001   // PET 2001
580pet2001n  // PET 2001-N
581pet2001b  // PET 2001-B
582cbm30    // CBM 30xx
583cbm30b  // CBM 30xx (Business keyboard)
584cbm30nor  // CBM 30xx (Norway, Business keyboard)
585pet40on   // PET 40xx (Basic 4, no CRTC, Normal keyboard)
586pet40ob   // PET 40xx (Basic 4, no CRTC, Business keyboard)
587pet40n  // PET 40xx (Basic 4, CRTC 60Hz, 40 columns)
588pet40b  // PET 40xx (Basic 4, CRTC 60Hz, 80 columns)
589cbm40o  // CBM 40xx (Basic 4, no CRTC, Normal keyboard)
590cbm40ob   // CBM 40xx (Basic 4, no CRTC, Business keyboard)
591cbm40n  // CBM 40xx (Basic 4, CRTC 50Hz, 40 columns)
592cbm40b  // CBM 40xx (Basic 4, CRTC 50Hz, 80 columns)
593pet80    // PET 80xx (Basic 4, CRTC 60Hz, 80 columns)
594cbm80    // CBM 80xx (Basic 4, CRTC 50Hz, 80 columns)
595cbm80ger  // CBM 80xx (Germany, Basic 4, CRTC 50Hz, 80 cols)
596cbm80hun  // CBM 80xx (Hungary, Basic 4, CRTC 50Hz, 80 cols)
597cbm80swe  // CBM 80xx (Sweden, Basic 4, CRTC 50Hz, 80 cols)
598cbm8296   // CBM 8296 (Basic 4, CRTC 50Hz, 80 columns)
599cbm8296d  // CBM 8296D
600superpet  // SuperPET
601sp9000  // CBM SP9000 / MiniMainFrame 9000
602mmf9000s  // MiniMainFrame 9000 (Sweden)
579pet2001
580pet20018
581pet2001n
582pet2001n16
583pet2001n32
584cbm3008
585cbm3016
586cbm3032
587pet2001b
588pet2001b16
589pet2001b32
590cbm3032b
591pet4016
592pet4032
593cbm4016
594cbm4032
595pet4032b
596cbm4032b
597pet8032
598cbm8032
599cbm8032_de
600cbm8032_se
601superpet
602mmf9000
603cbm8096
604cbm8296
605cbm8296d
606cbm8296d_de
603607
604608vic1001   // Commodore VIC-1001 (Japan)
605609vic20    // Commodore VIC 20 (NTSC)
trunk/src/mess/drivers/pet.c
r20653r20654
730730static MACHINE_CONFIG_DERIVED( petb, pet )
731731   MCFG_PIA6821_MODIFY( "pia_0", petb_pia0 )
732732MACHINE_CONFIG_END
733#if 0
733
734734static MACHINE_CONFIG_DERIVED( pet2001, pet_general )
735735   MCFG_QUICKLOAD_ADD("quickload", cbm_pet1, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS)
736736   MCFG_FRAGMENT_ADD(pet_cartslot)
r20653r20654
743743   /* IEEE bus */
744744   MCFG_CBM_IEEE488_ADD(ieee488_intf, "c4040")
745745MACHINE_CONFIG_END
746#endif
747746
747
748748static MACHINE_CONFIG_DERIVED( pet40, pet )
749749   MCFG_CPU_MODIFY( "maincpu" )
750750   MCFG_CPU_PROGRAM_MAP( pet40_mem)
r20653r20654
11621162
11631163/* YEAR    NAME      PARENT    COMPAT    MACHINE   INPUT     INIT      COMPANY                             FULLNAME */
11641164
1165COMP(1977, pet2001,  0,        0,        pet2001,  pet, pet_state,      pet2001, "Commodore Business Machines",  "PET 2001", GAME_NOT_WORKING | GAME_NO_SOUND)
1166COMP(1979, pet2001n, pet2001,  0,        pet,      pet, pet_state,      pet,     "Commodore Business Machines",  "PET 2001-N", GAME_NOT_WORKING | GAME_NO_SOUND)
1167COMP(1979, pet2001b, pet2001,  0,        petb,     petb, pet_state,     pet,     "Commodore Business Machines",  "PET 2001-B", GAME_NOT_WORKING | GAME_NO_SOUND)
11651168COMP(1979, cbm30,    pet2001,  0,        pet,      pet, pet_state,      pet,     "Commodore Business Machines",  "CBM 30xx", GAME_NOT_WORKING | GAME_NO_SOUND)
11661169COMP(1979, cbm30b,   pet2001,  0,        petb,     petb, pet_state,     pet,     "Commodore Business Machines",  "CBM 30xx (Business keyboard)", GAME_NOT_WORKING | GAME_NO_SOUND)
11671170COMP(1979, cbm30nor, pet2001,  0,        petb,     petb, pet_state,     pet,     "Commodore Business Machines",  "CBM 30xx (Norway, Business keyboard)", GAME_NOT_WORKING | GAME_NO_SOUND)
trunk/src/mess/drivers/pet2001.c
r20653r20654
11/*
22
3http://www.6502.org/users/andre/petindex/boards.html
4
5Static Board (PET 2001)
6-----------------------
7
8Four variations based on type of RAM(6550 or 2114) and ROM(6540 or 2316B).
94K or 8K static RAM (selected by jumper).
1040 column display
11A video interrupt interferes with disk drive operation.
12Display timing not compatible with Basic 4.0.
13ROM sockets:  A2  2K character      ROM sockets:  A2  2K character
14 (2316B)      H1  C000-CFFF           (6540)       H1  C000-C7FF
15              H2  D000-DFFF                        H2  D000-D7FF
16              H3  E000-E7FF                        H3  E000-E7FF
17              H4  F000-FFFF                        H4  F000-F7FF
18              H5  C000-CFFF                        H5  C800-CFFF
19              H6  D000-DFFF                        H6  D800-DFFF
20              H7  F000-FFFF                        H7  F800-FFFF
21
22
23           IEEE user tape #2
24     +------####-####--##-+
25     !                    #
26     !                    #
27     !                    # exp
28     !                    # bus
29     !                    #
30     !                    #    2000 Series
31     !                    !       circa 1977/78  Max RAM - 8k
32     !       (2k) ROMS    !       [w/daughter board exp to 32k shown]
33     !      F F E D D C C !
34     !      8 0 0 8 0 8 0 !
35     !                    !
36tape #       RAM MEMORY   !
37 #1  #                    !
38     +--------------------+
39
40
41Dynamic Board (PET/CBM 2001-N/2001-B/4000)
42------------------------------------------
43
444K, 8K, 16K or 32K dynamic RAM (selected by jumper).
4540 column display
46Can run all versions of 40 column Basic (Basic 1 must be copied to 4K ROMs)
47Can be jumpered to replace the older board.
48ROM sockets:  UD3   9000-9FFF
49              UD4   A000-AFFF
50              UD5   B000-BFFF
51              UD6   C000-CFFF
52              UD7   D000-DFFF
53              UD8   E000-E7FF
54              UD9   F000-FFFF
55              UF10  2K character
56
57
58            IEEE user tape #1
59     +------####-####--##-+
60     !                   #!
61     !                   #!
62     !                   #! exp
63     !        ROMS       #! bus
64     !    F E D C B A 9  #!
65     !                   #!    3000, 4000 Series
66     !                    !       (3000 series is European version)
67     !                    !       circa 1979/80  Max RAM - 32k
68     !                    !
69     !                    !
70     !                    !
71tape #      RAM MEMORY    !
72 #2  #                    !
73     +--------------------+
74
75
7680 Column Board (CBM 8000)
77--------------------------
78
7916K or 32K RAM (selected by jumper).
80Uses CTRC to generate 80 column display.
81Can only run the 80 column version of Basic 4.0.
82Not compatible with older boards.
83ROM sockets:  UA3   2K or 4K character
84              UD6   F000-FFFF
85              UD7   E000-E7FF
86              UD8   D000-DFFF
87              UD9   C000-CFFF
88              UD10  B000-BFFF
89              UD11  A000-AFFF
90              UD12  9000-9FFF
91
92The layout is the same of the one used in Universal Boards below.
93
94
95Universal Board (CBM 8000/PET 4000-12)
96--------------------------------------
97
98This is an 80 column board with jumpers for different configurations.
9916K or 32K RAM (selected by jumper).
100Uses CTRC to generate 40 or 80 column display (selected by jumpers).
101Can only run Basic 4.0 versions that support the CRTC.
102Can be jumpered to replace all older boards.
103ROM sockets:  UA3   2K or 4K character
104              UD6   F000-FFFF
105              UD7   E000-E7FF
106              UD8   D000-DFFF
107              UD9   C000-CFFF
108              UD10  B000-BFFF
109              UD11  A000-AFFF
110              UD12  9000-9FFF
111
112
113           IEEE user tape #1
114     +------####-####--##-+
115     !                  # # tape
116     !                  # #  #2
117     !  R       exp bus # !
118     !  A                #!
119     !  M             9  #!
120     !                A  #!     4000, 8000 Series
121     !  M          R  B   !        circa 1981     Max RAM - 32k*
122     !  E          O  C   !       [8296 layout not shown]
123     !  M          M  D   !
124     !  O          S  E   !
125     !  R             F   !
126     !  Y                 !
127     !                spkr!
128     +--------------------+
129*/
130
131/*
132
3133   TODO:
4134
5   - cursor
6   - accurate video timings
135   - accurate video timing for non-CRTC models
136   - PET 4000-12 (40 column CRTC models)
137   - SuperPET
138   - 8096
139      - 64k expansion
140   - 8296
141      - PLA dumps
142      - high resolution graphics
143      - rom software list
7144   - user port
8145   - memory expansion port
9146
r20653r20654
30167
31168
32169//-------------------------------------------------
170//  update_speaker -
171//-------------------------------------------------
172
173void pet2001_state::update_speaker()
174{
175   if (m_speaker)
176   {
177      speaker_level_w(m_speaker, !(m_via_cb2 || m_pia1_pa7));
178   }
179}
180
181
182//-------------------------------------------------
33183//  read -
34184//-------------------------------------------------
35185
r20653r20654
39189
40190   switch (offset >> 12)
41191   {
42   case SEL0:
43   case SEL1:
44   case SEL2:
45   case SEL3:
46   case SEL4:
47   case SEL5:
48   case SEL6:
49   case SEL7:
192   case SEL0: case SEL1: case SEL2: case SEL3:   case SEL4: case SEL5: case SEL6: case SEL7:
50193      if (offset < m_ram->size())
51194      {
52195         data = m_ram->pointer()[offset];
r20653r20654
54197      break;
55198
56199   case SEL8:
57      data = m_video_ram[offset & 0x3ff];
200      data = m_video_ram[offset & (m_video_ram_size - 1)];
58201      break;
59202
60   case SEL9:
61      if (m_spare_rom)
62      {
63         data = m_spare_rom->base()[offset & 0xfff];
64      }
203   case SEL9: case SELA: case SELB: case SELC: case SELD: case SELF:
204      data = m_rom->base()[offset - 0x9000];
65205      break;
66206
67   case SELA:
68      if (m_spare_rom)
69      {
70         data = m_spare_rom->base()[0x1000 | (offset & 0xfff)];
71      }
72      break;
73
74   case SELB:
75      if (m_spare_rom)
76      {
77         data = m_spare_rom->base()[0x2000 | (offset & 0xfff)];
78      }
79      break;
80   
81207   case SELE:
82208      if (BIT(offset, 11))
83209      {
r20653r20654
93219         {
94220            data = m_via->read(space, offset & 0x0f);
95221         }
222         if (m_crtc && BIT(offset, 7) && BIT(offset, 0))
223         {
224            data = m_crtc->register_r(space, 0);
225         }
96226      }
97227      else
98228      {
99         data = m_rom->base()[offset & 0x3fff];
229         data = m_rom->base()[offset - 0x9000];
100230      }
101231      break;
102
103   case SELC:
104   case SELD:
105   case SELF:
106      data = m_rom->base()[offset & 0x3fff];
107      break;
108232   }
109233
110234   return data;
r20653r20654
119243{
120244   switch (offset >> 12)
121245   {
122   case SEL0:
123   case SEL1:
124   case SEL2:
125   case SEL3:
126   case SEL4:
127   case SEL5:
128   case SEL6:
129   case SEL7:
246   case SEL0: case SEL1: case SEL2: case SEL3:   case SEL4: case SEL5: case SEL6: case SEL7:
130247      if (offset < m_ram->size())
131248      {
132249         m_ram->pointer()[offset] = data;
r20653r20654
134251      break;
135252
136253   case SEL8:
137      m_video_ram[offset & 0x3ff] = data;
254      m_video_ram[offset & (m_video_ram_size - 1)] = data;
138255      break;
139256
140257   case SELE:
r20653r20654
152269         {
153270            m_via->write(space, offset & 0x0f, data);
154271         }
272         if (m_crtc && BIT(offset, 7))
273         {
274            if (BIT(offset, 0))
275            {
276               m_crtc->register_w(space, 0, data);
277            }
278            else
279            {
280               m_crtc->address_w(space, 0, data);
281            }
282         }
155283      }
156284      break;
157285   }
r20653r20654
399527INPUT_PORTS_END
400528
401529
530//-------------------------------------------------
531//  INPUT_PORTS( petb_de )
532//-------------------------------------------------
402533
534INPUT_PORTS_START( petb_de )
535   PORT_INCLUDE( petb )
536INPUT_PORTS_END
537
538
539//-------------------------------------------------
540//  INPUT_PORTS( petb_se )
541//-------------------------------------------------
542
543INPUT_PORTS_START( petb_se )
544   PORT_INCLUDE( petb )
545INPUT_PORTS_END
546
547
548
403549//**************************************************************************
404550//  DEVICE CONFIGURATION
405551//**************************************************************************
r20653r20654
435581   UINT8 data = 0;
436582
437583   // video sync
438   data |= m_sync << 5;
584   data |= (m_crtc ? m_crtc->vsync_r() : m_sync) << 5;
439585
440586   // IEEE-488
441587   data |= m_ieee->ndac_r();
r20653r20654
477623   m_graphic = state;
478624}
479625
626WRITE_LINE_MEMBER( pet2001_state::via_cb2_w )
627{
628   m_via_cb2 = state;
629   update_speaker();
630
631   //m_user->cb2_w(state);
632}
633
480634const via6522_interface via_intf =
481635{
482636   DEVCB_NULL,//DEVCB_DEVICE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, pa_r),
r20653r20654
490644   DEVCB_NULL,//DEVCB_DEVICE_LINE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, ca1_w),
491645   DEVCB_DRIVER_LINE_MEMBER(pet2001_state, via_ca2_w),
492646   DEVCB_NULL,
493   DEVCB_NULL,//DEVCB_DEVICE_LINE_MEMBER(PET_USER_PORT_TAG, pet_user_port_device, cb2_w),
647   DEVCB_DRIVER_LINE_MEMBER(pet2001_state, via_cb2_w),
494648   DEVCB_DRIVER_LINE_MEMBER(pet2001_state, via_irq_w)
495649};
496650
r20653r20654
561715       PA4     
562716       PA5     
563717       PA6     
564       PA7     
718       PA7     SPEAKER
565719
566720   */
567721
568722   // keyboard
569723   m_key = data & 0x0f;
724
725   // speaker
726   m_pia1_pa7 = BIT(data, 7);
727   update_speaker();
570728}
571729
572730READ8_MEMBER( pet2001_state::pia1_pb_r )
r20653r20654
613771
614772READ_LINE_MEMBER( pet2001_state::pia1_cb1_r )
615773{
616   return m_sync;
774   return (m_crtc ? m_crtc->vsync_r() : m_sync);
617775}
618776
619777WRITE_LINE_MEMBER( pet2001_state::pia1_ca2_w )
r20653r20654
757915      {
758916         int sy = y / 8;
759917         offs_t video_addr = (sy * 40) + sx;
760         UINT8 code = m_video_ram[video_addr];
918         UINT8 lsd = m_video_ram[video_addr];
761919
762920         int ra = y & 0x07;
763         offs_t char_addr = (m_graphic << 10) | (code << 3) | ra;
921         offs_t char_addr = (m_graphic << 10) | ((lsd & 0x7f) << 3) | ra;
764922         UINT8 data = m_char_rom->base()[char_addr];
765923
766         for (int x = 0; x < 8; x++)
924         for (int x = 0; x < 8; x++, data <<= 1)
767925         {
768            int color = BIT(data, 7);
769
926            int color = (BIT(data, 7) ^ BIT(lsd, 7)) && m_blanktv;
770927            bitmap.pix32(y, (sx * 8) + x) = RGB_MONOCHROME_GREEN[color];
771           
772            data <<= 1;
773928         }
774929      }
775930   }
r20653r20654
778933}
779934
780935
936//-------------------------------------------------
937//  MC6845_INTERFACE( crtc_intf )
938//-------------------------------------------------
781939
940static MC6845_UPDATE_ROW( pet80_update_row )
941{
942   pet80_state *state = device->machine().driver_data<pet80_state>();
943   int x = 0;
944   int char_rom_mask = state->m_char_rom->bytes() - 1;
945
946   for (int column = 0; column < x_count; column++)
947   {
948      UINT8 lsd = 0, data = 0;
949      UINT8 rra = ra & 0x07;
950      int no_row = !(BIT(ra, 3) || BIT(ra, 4));
951      int invert = BIT(ma, 12);
952      int chr_option = BIT(ma, 13);
953
954      // even character
955
956      lsd = state->m_video_ram[((ma + column) << 1) & 0x7ff];
957
958      offs_t char_addr = (chr_option << 11) | (state->m_graphic << 10) | ((lsd & 0x7f) << 3) | rra;
959      data = state->m_char_rom->base()[char_addr & char_rom_mask];
960
961      for (int bit = 0; bit < 8; bit++, data <<= 1)
962      {
963         int video = !((BIT(data, 7) ^ BIT(lsd, 7)) && no_row) ^ invert;
964         bitmap.pix32(y, x++) = RGB_MONOCHROME_GREEN[video];
965      }
966
967      // odd character
968
969      lsd = state->m_video_ram[(((ma + column) << 1) + 1) & 0x7ff];
970
971      char_addr = (chr_option << 11) | (state->m_graphic << 10) | ((lsd & 0x7f) << 3) | rra;
972      data = state->m_char_rom->base()[char_addr & char_rom_mask];
973
974      for (int bit = 0; bit < 8; bit++, data <<= 1)
975      {
976         int video = !((BIT(data, 7) ^ BIT(lsd, 7)) && no_row) ^ invert;
977         bitmap.pix32(y, x++) = RGB_MONOCHROME_GREEN[video];
978      }
979   }
980}
981
982static MC6845_INTERFACE( crtc_intf )
983{
984   SCREEN_TAG,
985   false,
986   2*8,
987   NULL,
988   pet80_update_row,
989   NULL,
990   DEVCB_NULL,
991   DEVCB_NULL,
992   DEVCB_NULL,
993   DEVCB_DEVICE_LINE_MEMBER(M6520_1_TAG, pia6821_device, cb1_w),
994   NULL
995};
996
997
998
782999//**************************************************************************
7831000//  MACHINE INITIALIZATION
7841001//**************************************************************************
7851002
7861003//-------------------------------------------------
787//  MACHINE_START( pet2001 )
1004//  MACHINE_START( pet )
7881005//-------------------------------------------------
7891006
790void pet2001_state::machine_start()
1007MACHINE_START_MEMBER( pet2001_state, pet )
7911008{
7921009   // allocate memory
793   m_video_ram.allocate(0x400);
1010   m_video_ram.allocate(m_video_ram_size);
7941011
7951012   // initialize memory
7961013   UINT8 data = 0xff;
r20653r20654
8031020
8041021   data = 0xff;
8051022
806   for (offs_t offset = 0; offset < 0x400; offset++)
1023   for (offs_t offset = 0; offset < m_video_ram_size; offset++)
8071024   {
8081025      m_video_ram[offset] = data;
8091026      if (!(offset % 64)) data ^= 0xff;
r20653r20654
8241041
8251042
8261043//-------------------------------------------------
827//  MACHINE_RESET( pet2001 )
1044//  MACHINE_START( pet2001 )
8281045//-------------------------------------------------
8291046
830void pet2001_state::machine_reset()
1047MACHINE_START_MEMBER( pet2001_state, pet2001 )
8311048{
1049   m_video_ram_size = 0x400;
1050
1051   MACHINE_START_CALL_MEMBER(pet);
1052}
1053
1054
1055//-------------------------------------------------
1056//  MACHINE_RESET( pet )
1057//-------------------------------------------------
1058
1059MACHINE_RESET_MEMBER( pet2001_state, pet )
1060{
8321061   m_maincpu->reset();
8331062
8341063   m_via->reset();
8351064   m_pia1->reset();
8361065   m_pia2->reset();
1066
8371067   //m_exp->reset();
8381068}
8391069
8401070
1071//-------------------------------------------------
1072//  MACHINE_START( pet80 )
1073//-------------------------------------------------
8411074
1075MACHINE_START_MEMBER( pet80_state, pet80 )
1076{
1077   m_video_ram_size = 0x800;
1078
1079   MACHINE_START_CALL_MEMBER(pet);
1080}
1081
1082
1083//-------------------------------------------------
1084//  MACHINE_RESET( pet80 )
1085//-------------------------------------------------
1086
1087MACHINE_RESET_MEMBER( pet80_state, pet80 )
1088{
1089   MACHINE_RESET_CALL_MEMBER(pet);
1090
1091   m_crtc->reset();
1092}
1093
1094
1095
8421096//**************************************************************************
8431097//  MACHINE DRIVERS
8441098//**************************************************************************
8451099
8461100//-------------------------------------------------
847//  MACHINE_CONFIG( pet2001 )
1101//  MACHINE_CONFIG( 4k )
8481102//-------------------------------------------------
8491103
850static MACHINE_CONFIG_START( pet2001, pet2001_state )
1104static MACHINE_CONFIG_FRAGMENT( 4k )
1105   MCFG_RAM_ADD(RAM_TAG)
1106   MCFG_RAM_DEFAULT_SIZE("4K")
1107   MCFG_RAM_EXTRA_OPTIONS("8K, 16K,32K")
1108MACHINE_CONFIG_END
1109
1110
1111//-------------------------------------------------
1112//  MACHINE_CONFIG( 8k )
1113//-------------------------------------------------
1114
1115static MACHINE_CONFIG_FRAGMENT( 8k )
1116   MCFG_RAM_ADD(RAM_TAG)
1117   MCFG_RAM_DEFAULT_SIZE("8K")
1118   MCFG_RAM_EXTRA_OPTIONS("16K,32K")
1119MACHINE_CONFIG_END
1120
1121
1122//-------------------------------------------------
1123//  MACHINE_CONFIG( 8k )
1124//-------------------------------------------------
1125
1126static MACHINE_CONFIG_FRAGMENT( 16k )
1127   MCFG_RAM_ADD(RAM_TAG)
1128   MCFG_RAM_DEFAULT_SIZE("16K")
1129   MCFG_RAM_EXTRA_OPTIONS("32K")
1130MACHINE_CONFIG_END
1131
1132
1133//-------------------------------------------------
1134//  MACHINE_CONFIG( 8k )
1135//-------------------------------------------------
1136
1137static MACHINE_CONFIG_FRAGMENT( 32k )
1138   MCFG_RAM_ADD(RAM_TAG)
1139   MCFG_RAM_DEFAULT_SIZE("32K")
1140MACHINE_CONFIG_END
1141
1142
1143//-------------------------------------------------
1144//  MACHINE_CONFIG( pet )
1145//-------------------------------------------------
1146
1147static MACHINE_CONFIG_START( pet, pet2001_state )
1148   MCFG_MACHINE_START_OVERRIDE(pet2001_state, pet2001)
1149   MCFG_MACHINE_RESET_OVERRIDE(pet2001_state, pet)
1150
8511151   // basic machine hardware
8521152   MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_8MHz/8)
8531153   MCFG_CPU_PROGRAM_MAP(pet2001_mem)
r20653r20654
8721172   //MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_8MHz/8, pet_expansion_cards, NULL, NULL)
8731173   //MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL)
8741174
875   // internal RAM
876   MCFG_RAM_ADD(RAM_TAG)
877   MCFG_RAM_DEFAULT_SIZE("4K")
878   MCFG_RAM_EXTRA_OPTIONS("8K")
879
8801175   // software lists
8811176   MCFG_SOFTWARE_LIST_ADD("flop_list", "pet_flop")
8821177MACHINE_CONFIG_END
8831178
8841179
8851180//-------------------------------------------------
1181//  MACHINE_CONFIG( pet2001 )
1182//-------------------------------------------------
1183
1184static MACHINE_CONFIG_DERIVED( pet2001, pet )
1185   MCFG_FRAGMENT_ADD(4k)
1186MACHINE_CONFIG_END
1187
1188
1189//-------------------------------------------------
1190//  MACHINE_CONFIG( pet20018 )
1191//-------------------------------------------------
1192
1193static MACHINE_CONFIG_DERIVED( pet20018, pet )
1194   MCFG_FRAGMENT_ADD(8k)
1195MACHINE_CONFIG_END
1196
1197
1198//-------------------------------------------------
8861199//  MACHINE_CONFIG( pet2001n )
8871200//-------------------------------------------------
8881201
889static MACHINE_CONFIG_DERIVED( pet2001n, pet2001 )
1202static MACHINE_CONFIG_DERIVED( pet2001n, pet )
8901203   MCFG_CARTSLOT_ADD("9000")
8911204   MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
8921205   MCFG_CARTSLOT_INTERFACE("pet_9000_rom")
r20653r20654
8991212   MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
9001213   MCFG_CARTSLOT_INTERFACE("pet_b000_rom")
9011214
902   MCFG_RAM_MODIFY(RAM_TAG)
903   MCFG_RAM_DEFAULT_SIZE("8K")
904   MCFG_RAM_EXTRA_OPTIONS("16K,32K")
905
9061215   MCFG_SOFTWARE_LIST_ADD("rom_list", "pet_rom")
9071216MACHINE_CONFIG_END
9081217
9091218
9101219//-------------------------------------------------
1220//  MACHINE_CONFIG( pet2001n8 )
1221//-------------------------------------------------
1222
1223static MACHINE_CONFIG_DERIVED( pet2001n8, pet2001n )
1224   MCFG_FRAGMENT_ADD(8k)
1225MACHINE_CONFIG_END
1226
1227
1228//-------------------------------------------------
1229//  MACHINE_CONFIG( pet2001n16 )
1230//-------------------------------------------------
1231
1232static MACHINE_CONFIG_DERIVED( pet2001n16, pet2001n )
1233   MCFG_FRAGMENT_ADD(16k)
1234MACHINE_CONFIG_END
1235
1236
1237//-------------------------------------------------
1238//  MACHINE_CONFIG( pet2001n32 )
1239//-------------------------------------------------
1240
1241static MACHINE_CONFIG_DERIVED( pet2001n32, pet2001n )
1242   MCFG_FRAGMENT_ADD(32k)
1243MACHINE_CONFIG_END
1244
1245
1246//-------------------------------------------------
1247//  MACHINE_CONFIG( cbm3008 )
1248//-------------------------------------------------
1249
1250static MACHINE_CONFIG_DERIVED( cbm3008, pet2001n )
1251   MCFG_FRAGMENT_ADD(8k)
1252MACHINE_CONFIG_END
1253
1254
1255//-------------------------------------------------
1256//  MACHINE_CONFIG( cbm3016 )
1257//-------------------------------------------------
1258
1259static MACHINE_CONFIG_DERIVED( cbm3016, pet2001n )
1260   MCFG_FRAGMENT_ADD(16k)
1261MACHINE_CONFIG_END
1262
1263
1264//-------------------------------------------------
1265//  MACHINE_CONFIG( cbm3032 )
1266//-------------------------------------------------
1267
1268static MACHINE_CONFIG_DERIVED( cbm3032, pet2001n )
1269   MCFG_FRAGMENT_ADD(32k)
1270MACHINE_CONFIG_END
1271
1272
1273//-------------------------------------------------
9111274//  MACHINE_CONFIG( pet2001b )
9121275//-------------------------------------------------
9131276
r20653r20654
9171280MACHINE_CONFIG_END
9181281
9191282
1283//-------------------------------------------------
1284//  MACHINE_CONFIG( pet2001b8 )
1285//-------------------------------------------------
9201286
1287static MACHINE_CONFIG_DERIVED( pet2001b8, pet2001b )
1288   MCFG_FRAGMENT_ADD(8k)
1289MACHINE_CONFIG_END
1290
1291
1292//-------------------------------------------------
1293//  MACHINE_CONFIG( pet2001b16 )
1294//-------------------------------------------------
1295
1296static MACHINE_CONFIG_DERIVED( pet2001b16, pet2001b )
1297   MCFG_FRAGMENT_ADD(16k)
1298MACHINE_CONFIG_END
1299
1300
1301//-------------------------------------------------
1302//  MACHINE_CONFIG( pet2001b32 )
1303//-------------------------------------------------
1304
1305static MACHINE_CONFIG_DERIVED( pet2001b32, pet2001b )
1306   MCFG_FRAGMENT_ADD(32k)
1307MACHINE_CONFIG_END
1308
1309
1310//-------------------------------------------------
1311//  MACHINE_CONFIG( cbm3032b )
1312//-------------------------------------------------
1313
1314static MACHINE_CONFIG_DERIVED( cbm3032b, pet2001b )
1315   MCFG_FRAGMENT_ADD(32k)
1316MACHINE_CONFIG_END
1317
1318
1319//-------------------------------------------------
1320//  MACHINE_CONFIG( pet4000 )
1321//-------------------------------------------------
1322
1323static MACHINE_CONFIG_DERIVED( pet4000, pet2001n )
1324   MCFG_DEVICE_REMOVE("b000")
1325MACHINE_CONFIG_END
1326
1327
1328//-------------------------------------------------
1329//  MACHINE_CONFIG( pet4016 )
1330//-------------------------------------------------
1331
1332static MACHINE_CONFIG_DERIVED( pet4016, pet4000 )
1333   // RAM not upgradeable
1334   MCFG_RAM_ADD(RAM_TAG)
1335   MCFG_RAM_DEFAULT_SIZE("16K")
1336MACHINE_CONFIG_END
1337
1338
1339//-------------------------------------------------
1340//  MACHINE_CONFIG( pet4032 )
1341//-------------------------------------------------
1342
1343static MACHINE_CONFIG_DERIVED( pet4032, pet4000 )
1344   MCFG_FRAGMENT_ADD(32k)
1345MACHINE_CONFIG_END
1346
1347
1348//-------------------------------------------------
1349//  MACHINE_CONFIG( cbm4000 )
1350//-------------------------------------------------
1351
1352static MACHINE_CONFIG_DERIVED( cbm4000, pet2001n )
1353   MCFG_DEVICE_REMOVE("b000")
1354MACHINE_CONFIG_END
1355
1356
1357//-------------------------------------------------
1358//  MACHINE_CONFIG( cbm4016 )
1359//-------------------------------------------------
1360
1361static MACHINE_CONFIG_DERIVED( cbm4016, cbm4000 )
1362   // RAM not upgradeable
1363   MCFG_RAM_ADD(RAM_TAG)
1364   MCFG_RAM_DEFAULT_SIZE("16K")
1365MACHINE_CONFIG_END
1366
1367
1368//-------------------------------------------------
1369//  MACHINE_CONFIG( cbm4032 )
1370//-------------------------------------------------
1371
1372static MACHINE_CONFIG_DERIVED( cbm4032, cbm4000 )
1373   MCFG_FRAGMENT_ADD(32k)
1374MACHINE_CONFIG_END
1375
1376
1377//-------------------------------------------------
1378//  MACHINE_CONFIG( pet4000b )
1379//-------------------------------------------------
1380
1381static MACHINE_CONFIG_DERIVED( pet4000b, pet2001b )
1382   MCFG_DEVICE_REMOVE("b000")
1383MACHINE_CONFIG_END
1384
1385
1386//-------------------------------------------------
1387//  MACHINE_CONFIG( pet4032b )
1388//-------------------------------------------------
1389
1390static MACHINE_CONFIG_DERIVED( pet4032b, pet4000b )
1391   MCFG_FRAGMENT_ADD(32k)
1392MACHINE_CONFIG_END
1393
1394
1395//-------------------------------------------------
1396//  MACHINE_CONFIG( cbm4000b )
1397//-------------------------------------------------
1398
1399static MACHINE_CONFIG_DERIVED( cbm4000b, pet2001b )
1400   MCFG_DEVICE_REMOVE("b000")
1401MACHINE_CONFIG_END
1402
1403
1404//-------------------------------------------------
1405//  MACHINE_CONFIG( cbm4032b )
1406//-------------------------------------------------
1407
1408static MACHINE_CONFIG_DERIVED( cbm4032b, cbm4000b )
1409   MCFG_FRAGMENT_ADD(32k)
1410MACHINE_CONFIG_END
1411
1412
1413//-------------------------------------------------
1414//  MACHINE_CONFIG( pet80 )
1415//-------------------------------------------------
1416
1417static MACHINE_CONFIG_START( pet80, pet80_state )
1418   MCFG_MACHINE_START_OVERRIDE(pet80_state, pet80)
1419   MCFG_MACHINE_RESET_OVERRIDE(pet80_state, pet80)
1420
1421   // basic machine hardware
1422   MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
1423   MCFG_CPU_PROGRAM_MAP(pet2001_mem)
1424
1425   // video hardware
1426   MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
1427   MCFG_SCREEN_REFRESH_RATE(60)
1428   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
1429   MCFG_SCREEN_SIZE(640, 250)
1430   MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 250 - 1)
1431   MCFG_SCREEN_UPDATE_DEVICE(MC6845_TAG, mc6845_device, screen_update)
1432   MCFG_MC6845_ADD(MC6845_TAG, MC6845, XTAL_16MHz/16, crtc_intf)
1433
1434   // sound hardware
1435   MCFG_SPEAKER_STANDARD_MONO("mono")
1436   MCFG_SOUND_ADD(SPEAKER_TAG, SPEAKER_SOUND, 0)
1437   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1438
1439   // devices
1440   MCFG_VIA6522_ADD(M6522_TAG, XTAL_16MHz/16, via_intf)
1441   MCFG_PIA6821_ADD(M6520_1_TAG, pia1_intf)
1442   MCFG_PIA6821_ADD(M6520_2_TAG, pia2_intf)
1443   MCFG_CBM_IEEE488_ADD(ieee488_intf, "c8050")
1444   MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL)
1445   MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT2_TAG, datassette2_intf, cbm_datassette_devices, NULL, NULL)
1446   //MCFG_QUICKLOAD_ADD("quickload", cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS)
1447   //MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, NULL, NULL)
1448   //MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL)
1449
1450   // software lists
1451   MCFG_SOFTWARE_LIST_ADD("flop_list", "pet_flop")
1452MACHINE_CONFIG_END
1453
1454
1455//-------------------------------------------------
1456//  MACHINE_CONFIG( pet8032 )
1457//-------------------------------------------------
1458
1459static MACHINE_CONFIG_DERIVED( pet8032, pet80 )
1460   MCFG_FRAGMENT_ADD(32k)
1461MACHINE_CONFIG_END
1462
1463
1464//-------------------------------------------------
1465//  MACHINE_CONFIG( superpet )
1466//-------------------------------------------------
1467
1468static MACHINE_CONFIG_DERIVED_CLASS( superpet, pet80, superpet_state )
1469   MCFG_RAM_ADD(RAM_TAG)
1470   MCFG_RAM_DEFAULT_SIZE("96K")
1471
1472   MCFG_SOFTWARE_LIST_ADD("flop_list2", "superpet_flop")
1473MACHINE_CONFIG_END
1474
1475
1476//-------------------------------------------------
1477//  MACHINE_CONFIG( cbm8096 )
1478//-------------------------------------------------
1479
1480static MACHINE_CONFIG_DERIVED_CLASS( cbm8096, pet80, cbm8096_state )
1481   MCFG_RAM_ADD(RAM_TAG)
1482   MCFG_RAM_DEFAULT_SIZE("96K")
1483
1484   //MCFG_SOFTWARE_LIST_ADD("flop_list2", "cbm8096_flop")
1485MACHINE_CONFIG_END
1486
1487
1488//-------------------------------------------------
1489//  MACHINE_CONFIG( cbm8296 )
1490//-------------------------------------------------
1491
1492static MACHINE_CONFIG_DERIVED_CLASS( cbm8296, pet80, cbm8296_state )
1493   MCFG_RAM_ADD(RAM_TAG)
1494   MCFG_RAM_DEFAULT_SIZE("128K")
1495
1496   MCFG_SOFTWARE_LIST_ADD("flop_list2", "cbm8296_flop")
1497MACHINE_CONFIG_END
1498
1499
1500//-------------------------------------------------
1501//  MACHINE_CONFIG( cbm8296d )
1502//-------------------------------------------------
1503
1504static MACHINE_CONFIG_DERIVED( cbm8296d, cbm8296 )
1505MACHINE_CONFIG_END
1506
1507
1508
9211509//**************************************************************************
9221510//  ROMS
9231511//**************************************************************************
r20653r20654
9271515//-------------------------------------------------
9281516
9291517ROM_START( pet2001 )
930   ROM_REGION( 0x4000, M6502_TAG, 0 )
1518   ROM_REGION( 0x7000, M6502_TAG, 0 )
9311519   ROM_DEFAULT_BIOS( "basic1r" )
9321520   ROM_SYSTEM_BIOS( 0, "basic1o", "Original" )
933   ROMX_LOAD( "901447-01.h1", 0x0000, 0x0800, CRC(a055e33a) SHA1(831db40324113ee996c434d38b4add3fd1f820bd), ROM_BIOS(1) )
1521   ROMX_LOAD( "901447-01.h1", 0x3000, 0x0800, CRC(a055e33a) SHA1(831db40324113ee996c434d38b4add3fd1f820bd), ROM_BIOS(1) )
9341522   ROM_SYSTEM_BIOS( 1, "basic1r", "Revised" )
935   ROMX_LOAD( "901447-09.h1", 0x0000, 0x0800, CRC(03cf16d0) SHA1(1330580c0614d3556a389da4649488ba04a60908), ROM_BIOS(2) )
936   ROM_LOAD( "901447-02.h5", 0x0800, 0x0800, CRC(69fd8a8f) SHA1(70c0f4fa67a70995b168668c957c3fcf2c8641bd) )
937   ROM_LOAD( "901447-03.h2", 0x1000, 0x0800, CRC(d349f2d4) SHA1(4bf2c20c51a63d213886957485ebef336bb803d0) )
938   ROM_LOAD( "901447-04.h6", 0x1800, 0x0800, CRC(850544eb) SHA1(d293972d529023d8fd1f493149e4777b5c253a69) )
939   ROM_LOAD( "901447-05.h3", 0x2000, 0x0800, CRC(9e1c5cea) SHA1(f02f5fb492ba93dbbd390f24c10f7a832dec432a) )
940   ROM_LOAD( "901447-06.h4", 0x3000, 0x0800, CRC(661a814a) SHA1(960717282878e7de893d87242ddf9d1512be162e) )
941   ROM_LOAD( "901447-07.h7", 0x3800, 0x0800, CRC(c4f47ad1) SHA1(d440f2510bc52e20c3d6bc8b9ded9cea7f462a9c) )
1523   ROMX_LOAD( "901447-09.h1", 0x3000, 0x0800, CRC(03cf16d0) SHA1(1330580c0614d3556a389da4649488ba04a60908), ROM_BIOS(2) )
1524   ROM_LOAD( "901447-02.h5", 0x3800, 0x0800, CRC(69fd8a8f) SHA1(70c0f4fa67a70995b168668c957c3fcf2c8641bd) )
1525   ROM_LOAD( "901447-03.h2", 0x4000, 0x0800, CRC(d349f2d4) SHA1(4bf2c20c51a63d213886957485ebef336bb803d0) )
1526   ROM_LOAD( "901447-04.h6", 0x4800, 0x0800, CRC(850544eb) SHA1(d293972d529023d8fd1f493149e4777b5c253a69) )
1527   ROM_LOAD( "901447-05.h3", 0x5000, 0x0800, CRC(9e1c5cea) SHA1(f02f5fb492ba93dbbd390f24c10f7a832dec432a) )
1528   ROM_LOAD( "901447-06.h4", 0x6000, 0x0800, CRC(661a814a) SHA1(960717282878e7de893d87242ddf9d1512be162e) )
1529   ROM_LOAD( "901447-07.h7", 0x6800, 0x0800, CRC(c4f47ad1) SHA1(d440f2510bc52e20c3d6bc8b9ded9cea7f462a9c) )
9421530
943   ROM_REGION( 0x800, "gfx1", 0 )
1531   ROM_REGION( 0x800, "charom", 0 )
9441532   ROM_LOAD( "901447-08.a2", 0x000, 0x800, CRC(54f32f45) SHA1(3e067cc621e4beafca2b90cb8f6dba975df2855b) )
9451533ROM_END
9461534
1535#define rom_pet20018 rom_pet2001
9471536
1537
9481538//-------------------------------------------------
9491539//  ROM( pet2001n )
9501540//-------------------------------------------------
9511541
9521542ROM_START( pet2001n )
953   ROM_REGION( 0x4000, M6502_TAG, 0 )
954   ROM_LOAD( "901465-01.ud6", 0x0000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44) )   // BASIC 2
955   ROM_LOAD( "901465-02.ud7", 0x1000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac) )   // BASIC 2
956   ROM_LOAD( "901447-24.ud8", 0x2000, 0x0800, CRC(e459ab32) SHA1(5e5502ce32f5a7e387d65efe058916282041e54b) )   // Screen Editor (40 columns, no CRTC, Normal Keyb)
957   ROM_LOAD( "901465-03.ud9", 0x3000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84) )   // Kernal
958
959   ROM_REGION( 0x3000, "spare", ROMREGION_ERASE00 )
1543   ROM_REGION( 0x7000, M6502_TAG, 0 )
9601544   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
9611545   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
9621546   ROM_CART_LOAD( "b000", 0x2000, 0x1000, ROM_MIRROR )
1547   ROM_LOAD( "901465-01.ud6", 0x3000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44) )   // BASIC 2
1548   ROM_LOAD( "901465-02.ud7", 0x4000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac) )   // BASIC 2
1549   ROM_LOAD( "901447-24.ud8", 0x5000, 0x0800, CRC(e459ab32) SHA1(5e5502ce32f5a7e387d65efe058916282041e54b) )   // Screen Editor (40 columns, no CRTC, Normal Keyb)
1550   ROM_LOAD( "901465-03.ud9", 0x6000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84) )   // Kernal
9631551
964   ROM_REGION( 0x800, "gfx1", 0 )
1552   ROM_REGION( 0x800, "charom", 0 )
9651553   ROM_LOAD( "901447-10.uf10", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )   // Character Generator
9661554ROM_END
9671555
1556#define rom_pet2001n16 rom_pet2001n
1557#define rom_pet2001n32 rom_pet2001n
1558#define rom_cbm3008 rom_pet2001n
1559#define rom_cbm3016 rom_pet2001n
1560#define rom_cbm3032 rom_pet2001n
9681561
1562
9691563//-------------------------------------------------
9701564//  ROM( pet2001b )
9711565//-------------------------------------------------
9721566
9731567ROM_START( pet2001b )
974   ROM_REGION( 0x4000, M6502_TAG, 0 )
975   ROM_LOAD( "901465-01.ud6", 0x0000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44) )   // BASIC 2
976   ROM_LOAD( "901465-02.ud7", 0x1000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac) )   // BASIC 2
977   ROM_LOAD( "901474-01.ud8", 0x2000, 0x0800, CRC(05db957e) SHA1(174ace3a8c0348cd21d39cc864e2adc58b0101a9) )   // Screen Editor (40 columns, no CRTC, Business Keyb)
978   ROM_LOAD( "901465-03.ud9", 0x3000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84) )   // Kernal
979
980   ROM_REGION( 0x3000, "spare", ROMREGION_ERASE00 )
1568   ROM_REGION( 0x7000, M6502_TAG, 0 )
9811569   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
9821570   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
9831571   ROM_CART_LOAD( "b000", 0x2000, 0x1000, ROM_MIRROR )
1572   ROM_LOAD( "901465-01.ud6", 0x3000, 0x1000, CRC(63a7fe4a) SHA1(3622111f486d0e137022523657394befa92bde44) )   // BASIC 2
1573   ROM_LOAD( "901465-02.ud7", 0x4000, 0x1000, CRC(ae4cb035) SHA1(1bc0ebf27c9bb62ad71bca40313e874234cab6ac) )   // BASIC 2
1574   ROM_LOAD( "901474-01.ud8", 0x5000, 0x0800, CRC(05db957e) SHA1(174ace3a8c0348cd21d39cc864e2adc58b0101a9) )   // Screen Editor (40 columns, no CRTC, Business Keyb)
1575   ROM_LOAD( "901465-03.ud9", 0x6000, 0x1000, CRC(f02238e2) SHA1(38742bdf449f629bcba6276ef24d3daeb7da6e84) )   // Kernal
9841576
985   ROM_REGION( 0x800, "gfx1", 0 )
1577   ROM_REGION( 0x800, "charom", 0 )
9861578   ROM_LOAD( "901447-10.uf10", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )   // Character Generator
9871579ROM_END
9881580
1581#define rom_pet2001b16 rom_pet2001b
1582#define rom_pet2001b32 rom_pet2001b
1583#define rom_cbm3032b rom_pet2001b
9891584
9901585
1586//-------------------------------------------------
1587//  ROM( pet4016 )
1588//-------------------------------------------------
1589
1590ROM_START( pet4016 )
1591   ROM_REGION( 0x7000, M6502_TAG, 0 )
1592   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1593   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1594   ROM_DEFAULT_BIOS( "basic4r" )
1595   ROM_SYSTEM_BIOS( 0, "basic4", "Original" )
1596   ROMX_LOAD( "901465-19.ud5", 0x2000, 0x1000, CRC(3a5f5721) SHA1(bc2b7c99495fea3eda950ee9e3d6cabe448a452b), ROM_BIOS(1) )
1597   ROM_SYSTEM_BIOS( 1, "basic4", "Revised" )
1598   ROMX_LOAD( "901465-23.ud5", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc), ROM_BIOS(2) ) // BASIC 4
1599   ROM_LOAD( "901465-20.ud6", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1600   ROM_LOAD( "901465-21.ud7", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1601   ROM_LOAD( "901499-01.ud7", 0x5000, 0x0800, CRC(5f85bdf8) SHA1(8cbf086c1ce4dfb2a2fe24c47476dfb878493dee) )   // Screen Editor (40 columns, CRTC 60Hz, Normal Keyb?)
1602   ROM_LOAD( "901447-29.ud8", 0x5000, 0x0800, CRC(e5714d4c) SHA1(e88f56e5c54b0e8d8d4e8cb39a4647c803c1f51c) )   // Screen Editor (40 columns, no CRTC, Normal Keyb)
1603   ROM_LOAD( "901465-22.ud9", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1604
1605   ROM_REGION( 0x800, "charom", 0 )
1606   ROM_LOAD( "901447-10.uf10", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )   // Character Generator
1607ROM_END
1608
1609#define rom_pet4032 rom_pet4016
1610
1611
1612//-------------------------------------------------
1613//  ROM( cbm4016 )
1614//-------------------------------------------------
1615
1616ROM_START( cbm4016 )
1617   ROM_REGION( 0x7000, M6502_TAG, 0 )
1618   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1619   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1620   ROM_DEFAULT_BIOS( "basic4r" )
1621   ROM_SYSTEM_BIOS( 0, "basic4", "Original" )
1622   ROMX_LOAD( "901465-19.ud5", 0x2000, 0x1000, CRC(3a5f5721) SHA1(bc2b7c99495fea3eda950ee9e3d6cabe448a452b), ROM_BIOS(1) )
1623   ROM_SYSTEM_BIOS( 1, "basic4", "Revised" )
1624   ROMX_LOAD( "901465-23.ud5", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc), ROM_BIOS(2) ) // BASIC 4
1625   ROM_LOAD( "901465-20.ud6", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1626   ROM_LOAD( "901465-21.ud7", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1627   ROM_LOAD( "901498-01.ud7", 0x5000, 0x0800, CRC(3370e359) SHA1(05af284c914d53a52987b5f602466de75765f650) )   // Screen Editor (40 columns, CRTC 50Hz, Normal Keyb?)
1628   ROM_LOAD( "901447-29.ud8", 0x5000, 0x0800, CRC(e5714d4c) SHA1(e88f56e5c54b0e8d8d4e8cb39a4647c803c1f51c) )   // Screen Editor (40 columns, no CRTC, Normal Keyb)
1629   ROM_LOAD( "901465-22.ud9", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1630
1631   ROM_REGION( 0x800, "charom", 0 )
1632   ROM_LOAD( "901447-10.uf10", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )   // Character Generator
1633ROM_END
1634
1635#define rom_cbm4032 rom_cbm4016
1636
1637
1638//-------------------------------------------------
1639//  ROM( pet4032b )
1640//-------------------------------------------------
1641
1642ROM_START( pet4032b )
1643   ROM_REGION( 0x7000, M6502_TAG, 0 )
1644   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1645   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1646   ROM_DEFAULT_BIOS( "basic4r" )
1647   ROM_SYSTEM_BIOS( 0, "basic4", "Original" )
1648   ROMX_LOAD( "901465-19.ud5", 0x2000, 0x1000, CRC(3a5f5721) SHA1(bc2b7c99495fea3eda950ee9e3d6cabe448a452b), ROM_BIOS(1) )
1649   ROM_SYSTEM_BIOS( 1, "basic4", "Revised" )
1650   ROMX_LOAD( "901465-23.ud5", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc), ROM_BIOS(2) ) // BASIC 4
1651   ROM_LOAD( "901465-20.ud6", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1652   ROM_LOAD( "901465-21.ud7", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1653   ROM_LOAD( "901474-02.ud8", 0x5000, 0x0800, CRC(75ff4af7) SHA1(0ca5c4e8f532f914cb0bf86ea9900f20f0a655ce) )   // Screen Editor (40 columns, no CRTC, Business Keyb)
1654   ROM_LOAD( "901465-22.ud9", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1655
1656   ROM_REGION( 0x800, "charom", 0 )
1657   ROM_LOAD( "901447-10.uf10", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )   // Character Generator
1658ROM_END
1659
1660#define rom_cbm4032b rom_pet4032b
1661
1662
1663//-------------------------------------------------
1664//  ROM( pet8032 )
1665//-------------------------------------------------
1666
1667ROM_START( pet8032 )
1668   ROM_REGION( 0x7000, M6502_TAG, 0 )
1669   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1670   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1671   ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) )  // BASIC 4
1672   ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1673   ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1674   ROM_LOAD( "901474-03.ud7", 0x5000, 0x0800, CRC(5674dd5e) SHA1(c605fa343fd77c73cbe1e0e9567e2f014f6e7e30) )   // Screen Editor (80 columns, CRTC 60Hz, Business Keyb)
1675   ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1676
1677   ROM_REGION( 0x800, "charom", 0 )
1678   ROM_LOAD( "901447-10.ua3", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
1679ROM_END
1680
1681
1682//-------------------------------------------------
1683//  ROM( cbm8032 )
1684//-------------------------------------------------
1685
1686ROM_START( cbm8032 )
1687   ROM_REGION( 0x7000, M6502_TAG, 0 )
1688   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1689   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1690   ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) )  // BASIC 4
1691   ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1692   ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1693   ROM_LOAD( "901474-04.ud7", 0x5000, 0x0800, CRC(abb000e7) SHA1(66887061b6c4ebef7d6efb90af9afd5e2c3b08ba) )   // Screen Editor (80 columns, CRTC 50Hz, Business Keyb)
1694   ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1695
1696   ROM_REGION( 0x800, "charom", 0 )
1697   ROM_LOAD( "901447-10.ua3", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
1698ROM_END
1699
1700#define rom_cbm8096 rom_cbm8032
1701
1702
1703//-------------------------------------------------
1704//  ROM( cbm8032_de )
1705//-------------------------------------------------
1706
1707ROM_START( cbm8032_de )
1708   ROM_REGION( 0x7000, M6502_TAG, 0 )
1709   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1710   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1711   ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) )  // BASIC 4
1712   ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1713   ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1714   ROM_LOAD( "german.bin",    0x5000, 0x0800, CRC(1c1e597d) SHA1(7ac75ed73832847623c9f4f197fe7fb1a73bb41c) )
1715   ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1716
1717   ROM_REGION( 0x800, "charom", 0 )
1718   ROM_LOAD( "chargen.de", 0x0000, 0x800, CRC(3bb8cb87) SHA1(a4f0df13473d7f9cd31fd62cfcab11318e2fb1dc) )
1719ROM_END
1720
1721
1722//-------------------------------------------------
1723//  ROM( cbm8032_se )
1724//-------------------------------------------------
1725
1726ROM_START( cbm8032_se )
1727   ROM_REGION( 0x7000, M6502_TAG, 0 )
1728   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1729   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1730   ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) )  // BASIC 4
1731   ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1732   ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1733   ROM_LOAD( "swedish.bin",   0x5000, 0x0800, CRC(75901dd7) SHA1(2ead0d83255a344a42bb786428353ca48d446d03) )   // It had a label "8000-UD7, SCREEN-04"
1734   ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1735
1736   ROM_REGION( 0x800, "charom", 0 )
1737   ROM_LOAD( "901447-14.ua3", 0x0000, 0x800, CRC(48c77d29) SHA1(aa7c8ff844d16ec05e2b32acc586c58d9e35388c) )    // Character Generator
1738ROM_END
1739
1740
1741//-------------------------------------------------
1742//  ROM( superpet )
1743//-------------------------------------------------
1744
1745ROM_START( superpet )
1746   ROM_REGION( 0x7000, M6502_TAG, 0 )
1747   ROM_CART_LOAD( "9000", 0x0000, 0x1000, ROM_MIRROR )
1748   ROM_CART_LOAD( "a000", 0x1000, 0x1000, ROM_MIRROR )
1749   ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) )  // BASIC 4
1750   ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) )   // BASIC 4
1751   ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) )   // BASIC 4
1752   ROM_LOAD( "901474-03.ud7", 0x5000, 0x0800, CRC(5674dd5e) SHA1(c605fa343fd77c73cbe1e0e9567e2f014f6e7e30) )   // Screen Editor (80 columns, CRTC 60Hz, Business Keyb)
1753   ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) )   // Kernal
1754
1755   ROM_REGION( 0x7000, M6809_TAG, 0 )
1756   ROM_LOAD( "901898-01.u17", 0x1000, 0x1000, CRC(728a998b) SHA1(0414b3ab847c8977eb05c2fcc72efcf2f9d92871) )
1757   ROM_LOAD( "901898-02.u18", 0x2000, 0x1000, CRC(6beb7c62) SHA1(df154939b934d0aeeb376813ec1ba0d43c2a3378) )
1758   ROM_LOAD( "901898-03.u19", 0x3000, 0x1000, CRC(5db4983d) SHA1(6c5b0cce97068f8841112ba6d5cd8e568b562fa3) )
1759   ROM_LOAD( "901898-04.u20", 0x4000, 0x1000, CRC(f55fc559) SHA1(b42a2050a319a1ffca7868a8d8d635fadd37ec37) )
1760   ROM_LOAD( "901897-01.u21", 0x5000, 0x0800, CRC(b2cee903) SHA1(e8ce8347451a001214a5e71a13081b38b4be23bc) )
1761   ROM_LOAD( "901898-05.u22", 0x6000, 0x1000, CRC(f42df0cb) SHA1(9b4a5134d20345171e7303445f87c4e0b9addc96) )
1762
1763   ROM_REGION( 0x800, "charom", 0 )
1764   ROM_LOAD( "901447-10.ua3", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
1765ROM_END
1766
1767#define rom_mmf9000 rom_superpet
1768
1769
1770//-------------------------------------------------
1771//  ROM( cbm8296 )
1772//-------------------------------------------------
1773
1774ROM_START( cbm8296 )
1775   ROM_REGION( 0x7000, M6502_TAG, 0 )
1776   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
1777   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1778   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
1779   ROM_CONTINUE(              0x6000, 0x1000 )
1780   ROM_LOAD( "8296.ue8", 0x5000, 0x800, CRC(a3475de6) SHA1(b715db83fd26458dfd254bef5c4aae636753f7f5) )
1781
1782   ROM_REGION( 0x1000, "charom", 0 )
1783   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
1784
1785   ROM_REGION( 0x20, "prom", 0 )
1786   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
1787
1788   ROM_REGION( 0xf5, "pla1", 0 )
1789   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP )
1790
1791   ROM_REGION( 0xf5, "pla2", 0 )
1792   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP )
1793ROM_END
1794
1795
1796//-------------------------------------------------
1797//  ROM( cbm8296d )
1798//-------------------------------------------------
1799
1800ROM_START( cbm8296d )
1801   ROM_REGION( 0x7000, M6502_TAG, 0 )
1802   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
1803   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1804   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )   // BASIC 4
1805   ROM_CONTINUE(              0x6000, 0x1000 )
1806   ROM_LOAD( "324243-01.ue8", 0x5000, 0x1000, CRC(4000e833) SHA1(dafbdf8ba0a1fe7d7b9586ffbfc9e5390c0fcf6f) )
1807
1808   ROM_REGION( 0x1000, "charom", 0 )
1809   ROM_LOAD( "901447-10.uc5", 0x000, 0x800, CRC(d8408674) SHA1(0157a2d55b7ac4eaeb38475889ebeea52e2593db) )    // Character Generator
1810
1811   ROM_REGION( 0x20, "prom", 0 )
1812   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
1813
1814   ROM_REGION( 0xf5, "pla1", 0 )
1815   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP )
1816
1817   ROM_REGION( 0xf5, "pla2", 0 )
1818   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP )
1819ROM_END
1820
1821
1822//-------------------------------------------------
1823//  ROM( cbm8296d_de )
1824//-------------------------------------------------
1825
1826ROM_START( cbm8296d_de )
1827   ROM_REGION( 0x7000, M6502_TAG, 0 )
1828   ROM_LOAD( "324992-02.ue10", 0x0000, 0x1000, CRC(2bac5baf) SHA1(03aa866e4bc4e38e95983a6a82ba925e710bede8) ) // HiRes Emulator
1829   ROM_LOAD( "324993-02.ue9", 0x1000, 0x1000, CRC(57444531) SHA1(74aa39888a6bc95762de767fce883203daca0d34) ) // HiRes BASIC
1830   ROM_LOAD( "324746-01.ue7", 0x2000, 0x3000, CRC(7935b528) SHA1(5ab17ee70467152bf2130e3f48a2aa81e9df93c9) )
1831   ROM_CONTINUE(              0x6000, 0x1000 )
1832   ROM_LOAD( "324243-04.ue8", 0x5000, 0x1000, CRC(3fe48897) SHA1(c218ff3168514f1d5e7822ae1b1ac3e161523b33) )
1833
1834   ROM_REGION( 0x1000, "charom", 0 )
1835   ROM_LOAD( "324242-10.uc5", 0x0000, 0x1000, CRC(a5632a0f) SHA1(9616f7f18757cccefb702a945f954b644d5b17d1) )
1836
1837   ROM_REGION( 0x20, "prom", 0 )
1838   ROM_LOAD( "74s288.uc2", 0x00, 0x20, CRC(06030665) SHA1(19dc91ca49ecc20e66c646ba480d2c3bc70a62e6) ) // video/RAM timing
1839
1840   ROM_REGION( 0xf5, "pla1", 0 )
1841   ROM_LOAD( "324744-01.ue6", 0x00, 0xf5, NO_DUMP )
1842
1843   ROM_REGION( 0xf5, "pla2", 0 )
1844   ROM_LOAD( "324745-01.ue5", 0x00, 0xf5, NO_DUMP )
1845ROM_END
1846
1847
1848
9911849//**************************************************************************
9921850//  SYSTEM DRIVERS
9931851//**************************************************************************
9941852
995//    YEAR  NAME    PARENT  COMPAT  MACHINE     INPUT   INIT                        COMPANY                        FULLNAME                                     FLAGS
996COMP( 1977, pet2001,  0,        0,        pet2001,       pet, driver_device,      0,     "Commodore Business Machines",  "PET 2001", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
997COMP( 1979, pet2001n, pet2001,  0,        pet2001n,      pet, driver_device,      0,     "Commodore Business Machines",  "PET 2001-N", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
998COMP( 1979, pet2001b, pet2001,  0,        pet2001b,     petb, driver_device,      0,     "Commodore Business Machines",  "PET 2001-B", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1853//    YEAR  NAME       PARENT     COMPAT  MACHINE     INPUT      INIT                COMPANY                         FULLNAME        FLAGS
1854COMP( 1977,   pet2001,   0,         0,      pet2001,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-4",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1855COMP( 1977,   pet20018,   pet2001,   0,      pet20018,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-8",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1856COMP( 1979,   pet2001n,   0,         0,      pet2001n8,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-N8",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1857COMP( 1979,   pet2001n16,   pet2001n,   0,      pet2001n16,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-N16",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1858COMP( 1979,   pet2001n32,   pet2001n,   0,      pet2001n32,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-N32",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1859COMP( 1979,   cbm3008,   pet2001n,   0,      cbm3008,   pet,      driver_device,   0,   "Commodore Business Machines",   "CBM 3008",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1860COMP( 1979,   cbm3016,   pet2001n,   0,      cbm3016,   pet,      driver_device,   0,   "Commodore Business Machines",   "CBM 3016",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1861COMP( 1979,   cbm3032,   pet2001n,   0,      cbm3032,   pet,      driver_device,   0,   "Commodore Business Machines",   "CBM 3032",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1862COMP( 1979,   pet2001b,   0,         0,      pet2001b8,   petb,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-B8",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1863COMP( 1979,   pet2001b16,   pet2001b,   0,      pet2001b16,   petb,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-B16",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1864COMP( 1979,   pet2001b32,   pet2001b,   0,      pet2001b32,   petb,      driver_device,   0,   "Commodore Business Machines",   "PET 2001-B32",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1865COMP( 1979,   cbm3032b,   pet2001b,   0,      cbm3032b,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 3032B",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1866COMP( 1980,   pet4016,   0,         0,      pet4016,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 4016",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1867COMP( 1980,   pet4032,   pet4016,   0,      pet4032,   pet,      driver_device,   0,   "Commodore Business Machines",   "PET 4032",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1868COMP( 1980,   cbm4016,   pet4016,   0,      cbm4016,   pet,      driver_device,   0,   "Commodore Business Machines",   "CBM 4016",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1869COMP( 1980,   cbm4032,   pet4016,   0,      cbm4032,   pet,      driver_device,   0,   "Commodore Business Machines",   "CBM 4032",      GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1870COMP( 1980,   pet4032b,   0,         0,      pet4032b,   petb,      driver_device,   0,   "Commodore Business Machines",   "PET 4032B",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1871COMP( 1980,   cbm4032b,   pet4032b,   0,      cbm4032b,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 4032B",   GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
1872COMP( 1980,   pet8032,   0,         0,      pet8032,   petb,      driver_device,   0,   "Commodore Business Machines",   "PET 8032",      GAME_SUPPORTS_SAVE )
1873COMP( 1981,   cbm8032,   pet8032,   0,      pet8032,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 8032",      GAME_SUPPORTS_SAVE )
1874COMP( 1981,   cbm8032_de,   pet8032,   0,      pet8032,   petb_de,   driver_device,   0,   "Commodore Business Machines",   "CBM 8032 (Germany)",         GAME_SUPPORTS_SAVE )
1875COMP( 1981,   cbm8032_se,   pet8032,   0,      pet8032,   petb_se,   driver_device,   0,   "Commodore Business Machines",   "CBM 8032 (Sweden/Finland)",   GAME_SUPPORTS_SAVE )
1876COMP( 1981,   superpet,   pet8032,   0,      superpet,   petb,      driver_device,   0,   "Commodore Business Machines",   "SuperPET SP-9000",            GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1877COMP( 1981,   mmf9000,   pet8032,   0,      superpet,   petb,      driver_device,   0,   "Commodore Business Machines",   "MicroMainFrame 9000",         GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1878COMP( 1981,   cbm8096,   pet8032,   0,      cbm8096,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 8096",                  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1879COMP( 1984,   cbm8296,   0,         0,      cbm8296,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 8296",                  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1880COMP( 1984,   cbm8296d,   cbm8296,   0,      cbm8296d,   petb,      driver_device,   0,   "Commodore Business Machines",   "CBM 8296D",               GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1881COMP( 1984,   cbm8296d_de,cbm8296,   0,      cbm8296d,   petb_de,   driver_device,   0,   "Commodore Business Machines",   "CBM 8296D (Germany)",         GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mess/mess.mak
r20653r20654
825825
826826$(MESSOBJ)/cbm.a:               \
827827   $(MESS_DRIVERS)/pet2001.o   \
828   $(MESS_VIDEO)/pet.o         \
829   $(MESS_DRIVERS)/pet.o       \
830   $(MESS_MACHINE)/pet.o       \
831828   $(MESS_DRIVERS)/c64.o       \
832829   $(MESS_MACHINE)/c64_legacy.o       \
833830   $(MESS_DRIVERS)/c64dtv.o    \

Previous 199869 Revisions Next


© 1997-2024 The MAME Team