Previous 15994 Revisions Next

r12349 Wednesday 27th July, 2011 at 08:13:12 UTC by Miodrag Milanović
Source cleanup (no whatsnew)
[src/mess]mess.lst
[src/mess/devices]appldriv.h
[src/mess/drivers]acrnsys1.c amstrad.c at.c c64.c coco.c comx35.c imds.c lisa.c mac.c ng_aes.c pc.c pc1512.c prof80.c sdk86.c slc1.c tdv2324.c tsispch.c z100.c z88.c
[src/mess/includes]at.h comx35.h pc1512.h
[src/mess/machine]amigafdc.c c64_std.c c64_xl80.c c64exp.c c64exp.h coco.c coco_232.h coco_fdc.c coco_fdc.h coco_multi.c coco_multi.h coco_pak.h coco_vhd.h cococart.c cococart.h comx_clm.c comx_clm.h comx_eb.c comx_eb.h comx_epr.c comx_fd.c comx_joy.c comx_prn.c comx_ram.c comx_thm.c comxexp.c comxexp.h cpc_ssa1.c cpc_ssa1.h cpcexp.c cpcexp.h ecb_grip.c ecb_grip.h ecbbus.c ecbbus.h egret.c isa.c isa.h isa_ide.c mac.c nubus.c nubus.h pc1512kb.c pc1512kb.h s100_dj2db.c s100_dj2db.h
[src/mess/tools/floptool]main.c
[src/mess/tools/imgtool]main.c
[src/mess/video]comx35.c intv.c isa_mda.h mac.c nubus_48gc.c nubus_48gc.h stic.h
[src/osd/winui]datafile.c

src/osd/winui/datafile.c
r12348r12349
346346      {
347347         return FALSE;
348348      }
349     
349
350350      file_error err = fp->open(pszFilename);
351351      if (err != FILERR_NONE)
352352      {
r12348r12349
354354         fp = NULL;
355355         return FALSE;
356356      }
357       
357
358358        /* Otherwise, prepare! */
359359        dwFilePos = 0;
360360        return TRUE;
src/mess/devices/appldriv.h
r12348r12349
5555   MCFG_DEVICE_CONFIG(_config)   \
5656   MCFG_LEGACY_FLOPPY_APPLE_PARAMS(_dividend,_divisor)
5757
58#define MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_REMOVE()    \
58#define MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_REMOVE()   \
5959   MCFG_DEVICE_REMOVE(FLOPPY_0)      \
6060   MCFG_DEVICE_REMOVE(FLOPPY_1)
6161
src/mess/tools/imgtool/main.c
r12348r12349
794794         for (i = 0; range[i].max >= 0; i++)
795795         {
796796            if (range[i].min == range[i].max)
797               snprintf(buf, ARRAY_LENGTH(buf), "%i", range[i].min);   
797               snprintf(buf, ARRAY_LENGTH(buf), "%i", range[i].min);
798798            else
799               snprintf(buf, ARRAY_LENGTH(buf), "%i-%i", range[i].min, range[i].max);   
799               snprintf(buf, ARRAY_LENGTH(buf), "%i-%i", range[i].min, range[i].max);
800800
801801            if (i > 0)
802802               strncatz(range_buffer, "/", sizeof(range_buffer));
src/mess/tools/floptool/main.c
r12348r12349
3636   for (i = 0; floppyoptions_supported[i].name; i++) {
3737      fprintf(stderr, "%15s - %s\n",floppyoptions_supported[i].name,floppyoptions_supported[i].description);
3838      fprintf(stderr, "%20s [%s]\n","",floppyoptions_supported[i].extensions);
39   }   
39   }
4040}
4141
4242int CLIB_DECL main(int argc, char *argv[])
4343{
4444   FILE *f;
45   
45
4646   if (argc > 1)
4747   {
4848      if (!core_stricmp("identify", argv[1]))
src/mess/machine/comx_clm.c
r12348r12349
165165   MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 24*8-1)
166166   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
167167   MCFG_SCREEN_REFRESH_RATE(50)
168   
168
169169   //MCFG_GFXDECODE(comx_clm)
170170
171171   MCFG_MC6845_ADD(MC6845_TAG, MC6845, XTAL_14_31818MHz, crtc_intf)
r12348r12349
248248   address_space *space = machine().firstcpu->memory().space(AS_PROGRAM);
249249
250250   UINT8 data = 0xff;
251   
251
252252   if (offset >= 0xc000 && offset < 0xc800)
253253   {
254254      data = m_rom[offset & 0x7ff];
r12348r12349
261261   {
262262      data = m_crtc->register_r(*space, 0);
263263   }
264   
264
265265   return data;
266266}
267267
r12348r12349
273273void comx_clm_device::comx_mwr_w(offs_t offset, UINT8 data)
274274{
275275   address_space *space = machine().firstcpu->memory().space(AS_PROGRAM);
276   
276
277277   if (offset >= 0xd000 && offset < 0xd800)
278278   {
279279      m_video_ram[offset & 0x7ff] = data;
src/mess/machine/cococart.h
r12348r12349
4545struct _coco_cartridge_line
4646{
4747   emu_timer               *timer[TIMER_POOL];
48   int                        timer_index;
49   int                      delay;
50   cococart_line_value          value;
51   int                      line;
52   int                      q_count;
48   int                       timer_index;
49   int                     delay;
50   cococart_line_value         value;
51   int                     line;
52   int                     q_count;
5353   devcb_resolved_write_line   callback;
5454};
5555
r12348r12349
7474   // construction/destruction
7575   cococart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7676   virtual ~cococart_slot_device();
77   
77
7878   // device-level overrides
7979   virtual void device_start();
8080   virtual void device_config_complete();
81   
81
8282   // image-level overrides
8383   virtual bool call_load();
8484   virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry);
r12348r12349
9393   virtual const char *image_interface() const { return "coco_cart"; }
9494   virtual const char *file_extensions() const { return "ccc,rom"; }
9595   virtual const option_guide *create_option_guide() const { return NULL; }
96   
96
9797   // slot interface overrides
9898   virtual const char * get_default_card(const device_list &devlist, emu_options &options) const;
99   
99
100100   /* reading and writing to $FF40-$FF7F */
101101   DECLARE_READ8_MEMBER(read);
102102   DECLARE_WRITE8_MEMBER(write);
r12348r12349
105105    void cart_set_line(cococart_line line, cococart_line_value value);
106106
107107   /* hack to support twiddling the Q line */
108   void twiddle_q_lines();   
109   
108   void twiddle_q_lines();
109
110110   UINT8* get_cart_base();
111111protected:
112112   static TIMER_CALLBACK( cart_timer_callback );
r12348r12349
116116   void set_line(const char *line_name, coco_cartridge_line *line, cococart_line_value value);
117117   void set_line_timer(coco_cartridge_line *line, cococart_line_value value);
118118   void twiddle_line_if_q(coco_cartridge_line *line);
119   
119
120120   // configuration
121121   coco_cartridge_line         m_cart_line;
122122   coco_cartridge_line         m_nmi_line;
123   coco_cartridge_line         m_halt_line;   
124   
123   coco_cartridge_line         m_halt_line;
124
125125   device_cococart_interface   *m_cart;
126126};
127127
r12348r12349
139139
140140   virtual DECLARE_READ8_MEMBER(read);
141141   virtual DECLARE_WRITE8_MEMBER(write);
142   
142
143143   virtual UINT8* get_cart_base();
144144};
145145
src/mess/machine/comx_clm.h
r12348r12349
5757private:
5858   // internal state
5959   comx_expansion_slot_device *m_slot;
60   
60
6161   required_device<mc6845_device> m_crtc;
6262
6363   int m_ds;            // device select
src/mess/machine/isa_ide.c
r12348r12349
2828
2929static MACHINE_CONFIG_FRAGMENT( ide )
3030   MCFG_HARDDISK_ADD("harddisk")
31   
31
3232   MCFG_IDE_CONTROLLER_ADD("ide", ide_interrupt)
3333MACHINE_CONFIG_END
3434
src/mess/machine/coco.c
r12348r12349
11671167      new_state = CASSETTE_SPEAKER_MUTED;
11681168      break;
11691169   }
1170   
1170
11711171   cococart_device(machine)->cart_set_line(
11721172      COCOCART_LINE_SOUND_ENABLE,
11731173      (soundmux_status == (SOUNDMUX_STATUS_ENABLE|SOUNDMUX_STATUS_SEL2)
r12348r12349
20832083         /* If we are in the BASIC rom area $8000-$BFFF, then we map to the bas_rom_bank */
20842084         /* as this may be in a different block of coco_rom, in the Dragon 64 and Alpha */
20852085         /* as these machines have mutiple bios roms that can ocupy this area */
2086         if (block_index < 4)
2086         if (block_index < 4)
20872087            offset = &state->m_bas_rom_bank[0x1000*block_index];
2088         else {               
2088         else {
20892089            if (cart_rom) {
20902090               offset = &cart_rom[(0x1000*(block_index-4)) % 0x4000];
20912091            } else {
r12348r12349
27352735-------------------------------------------------*/
27362736
27372737WRITE_LINE_DEVICE_HANDLER(coco3_cart_w)
2738{   
2738{
27392739   coco3_raise_interrupt(device->machine(), COCO3_INT_EI0, state ? ASSERT_LINE : CLEAR_LINE);
27402740   coco_cart_w(device, state);
27412741}
src/mess/machine/s100_dj2db.c
r12348r12349
99
1010/*
1111
12   TODO:
13   
14   - stall logic (read from fdc data register halts CPU until intrq/drq from FDC)
12    TODO:
1513
14    - stall logic (read from fdc data register halts CPU until intrq/drq from FDC)
15
1616*/
1717
1818#include "s100_dj2db.h"
r12348r12349
8181WRITE_LINE_MEMBER( s100_dj2db_device::fdc_intrq_w )
8282{
8383   if (state) m_s100->rdy_w(CLEAR_LINE);
84   
84
8585   switch (input_port_read(this, "J1A"))
8686   {
8787   case 0: m_s100->vi0_w(state); break;
r12348r12349
208208   PORT_DIPNAME( 0x01, 0x01, "Generate PHANTOM Signal" )
209209   PORT_DIPSETTING(    0x01, "Disabled" )
210210   PORT_DIPSETTING(    0x00, "Enabled" )
211   
211
212212   PORT_START("J3A")
213213   PORT_DIPNAME( 0xff, 0x00, "Bank Select" )
214214   PORT_DIPSETTING(    0x00, "Disabled" )
r12348r12349
220220   PORT_DIPSETTING(    0x20, "DATA 4" )
221221   PORT_DIPSETTING(    0x40, "DATA 6" )
222222   PORT_DIPSETTING(    0x80, "DATA 7" )
223   
223
224224   PORT_START("J1A")
225225   PORT_DIPNAME( 0x0f, 0x09, "Interrupt" )
226226   PORT_DIPSETTING(    0x09, "Disabled")
r12348r12349
281281
282282   m_rom = subregion("dj2db")->base();
283283   m_ram = auto_alloc_array(machine(), UINT8, 0x400);
284   
284
285285   // find floppy devices
286286   m_floppy0 = machine().device(FLOPPY_0);
287287   m_floppy1 = machine().device(FLOPPY_1);
r12348r12349
308308UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset)
309309{
310310   UINT8 data = 0;
311   
312//   if (!(m_board_enbl & m_phantom)) return 0;
313311
312//  if (!(m_board_enbl & m_phantom)) return 0;
313
314314   if ((offset >= 0xf800) && (offset < 0xfbf8))
315315   {
316316      data = m_rom[offset & 0x3ff] ^ 0xff;
r12348r12349
322322   else if (offset == 0xfbf9) // SERIAL STAT
323323   {
324324      /*
325     
326         bit      description
327         
328         0      PE
329         1      OE
330         2      DR
331         3      TBRE
332         4      FE
333         5     
334         6     
335         7     
336     
337      */
325
326            bit     description
327
328            0       PE
329            1       OE
330            2       DR
331            3       TBRE
332            4       FE
333            5
334            6
335            7
336
337        */
338338   }
339339   else if (offset == 0xfbfa) // DISK STAT
340340   {
341341      /*
342     
343         bit      description
344         
345         0      HEAD
346         1      DATA RQ
347         2      INT RQ
348         3      _TWO SIDED
349         4      _INDEX
350         5     
351         6     
352         7      _READY
353     
354      */
355     
342
343            bit     description
344
345            0       HEAD
346            1       DATA RQ
347            2       INT RQ
348            3       _TWO SIDED
349            4       _INDEX
350            5
351            6
352            7       _READY
353
354        */
355
356356      data |= !m_head;
357357      data |= !wd17xx_drq_r(m_fdc) << 1;
358358      data |= !wd17xx_intrq_r(m_fdc) << 2;
359     
359
360360      device_t *floppy = m_drive ? m_floppy1 : m_floppy0;
361361      data |= floppy_twosid_r(floppy) << 3;
362362      data |= floppy_index_r(floppy) << 4;
r12348r12349
365365   else if ((offset >= 0xfbfc) && (offset < 0xfc00))
366366   {
367367      m_s100->rdy_w(ASSERT_LINE);
368     
368
369369      data = wd17xx_r(m_fdc, offset & 0x03);
370370   }
371371   else if ((offset >= 0xfc00) && (offset < 0x10000))
r12348r12349
376376   {
377377      return 0;
378378   }
379   
379
380380   // LS241 inverts data
381381   return data ^ 0xff;
382382}
r12348r12349
388388
389389void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data)
390390{
391//   if (!(m_board_enbl & m_phantom)) return;
391//  if (!(m_board_enbl & m_phantom)) return;
392392
393393   // LS96 inverts data
394394   data ^= 0xff;
r12348r12349
400400   else if (offset == 0xfbf9) // DRIVE SEL
401401   {
402402      /*
403     
404         bit      description
405         
406         0      DRIVE 1
407         1      DRIVE 2
408         2      DRIVE 3
409         3      DRIVE 4
410         4      IN USE / SIDE SELECT
411         5      INT ENBL
412         6      _ACCESS ENBL
413         7      START
414     
415      */
416     
403
404            bit     description
405
406            0       DRIVE 1
407            1       DRIVE 2
408            2       DRIVE 3
409            3       DRIVE 4
410            4       IN USE / SIDE SELECT
411            5       INT ENBL
412            6       _ACCESS ENBL
413            7       START
414
415        */
416
417417      // drive select
418418      if (BIT(data, 0)) m_drive = 0;
419419      if (BIT(data, 1)) m_drive = 1;
r12348r12349
422422      wd17xx_set_drive(m_fdc, m_drive);
423423      floppy_mon_w(m_floppy0, CLEAR_LINE);
424424      floppy_mon_w(m_floppy1, CLEAR_LINE);
425     
425
426426      // side select
427427      wd17xx_set_side(m_fdc, BIT(data, 4));
428     
428
429429      // interrupt enable
430430      m_int_enbl = BIT(data, 5);
431     
431
432432      // access enable
433433      m_access_enbl = BIT(data, 6);
434     
434
435435      // master reset
436436      wd17xx_mr_w(m_fdc, BIT(data, 7));
437437   }
438438   else if (offset == 0xfbfa) // FUNCTION SEL
439439   {
440440      /*
441     
442         bit      description
443         
444         0      DOUBLE
445         1      8A SET
446         2      8A CLEAR
447         3      LEDOFF
448         4     
449         5     
450         6     
451         7     
452     
453      */
454     
441
442            bit     description
443
444            0       DOUBLE
445            1       8A SET
446            2       8A CLEAR
447            3       LEDOFF
448            4
449            5
450            6
451            7
452
453        */
454
455455      // density select
456456      wd17xx_dden_w(m_fdc, BIT(data, 0));
457457   }
src/mess/machine/coco_vhd.h
r12348r12349
4949   virtual void device_start();
5050
5151   void coco_vhd_readwrite(UINT8 data);
52   
52
5353   UINT32 m_logical_record_number;
5454   UINT32 m_buffer_address;
5555   UINT8  m_status;
src/mess/machine/s100_dj2db.h
r12348r12349
7272   int m_drive;            // selected drive
7373   int m_head;               // head loaded
7474   int m_int_enbl;            // interrupt enable
75   
75
7676   // S-100 bus state
7777   UINT8 *m_rom;            // ROM
7878   UINT8 *m_ram;            // RAM
src/mess/machine/ecbbus.c
r12348r12349
3535
3636
3737//-------------------------------------------------
38//  static_set_ecbbus_slot -
38//  static_set_ecbbus_slot -
3939//-------------------------------------------------
4040
4141void ecbbus_slot_device::static_set_ecbbus_slot(device_t &device, const char *tag, int num)
r12348r12349
178178READ8_MEMBER( ecbbus_device::mem_r )
179179{
180180   UINT8 data = 0;
181   
181
182182   for (int i = 0; i < MAX_ECBBUS_SLOTS; i++)
183183   {
184184      if (m_ecbbus_device[i] != NULL)
r12348r12349
190190   return data;
191191}
192192
193   
193
194194//-------------------------------------------------
195195//  mem_w -
196196//-------------------------------------------------
r12348r12349
214214READ8_MEMBER( ecbbus_device::io_r )
215215{
216216   UINT8 data = 0;
217   
217
218218   for (int i = 0; i < MAX_ECBBUS_SLOTS; i++)
219219   {
220220      if (m_ecbbus_device[i] != NULL)
r12348r12349
226226   return data;
227227}
228228
229   
229
230230//-------------------------------------------------
231231//  io_w -
232232//-------------------------------------------------
r12348r12349
270270bool ecbbus_device::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
271271{
272272   bool value = false;
273   
273
274274   for (int i = 0; i < MAX_ECBBUS_SLOTS; i++)
275275   {
276276      if (m_ecbbus_device[i] != NULL)
r12348r12349
281281         }
282282      }
283283   }
284   
284
285285   return value;
286286}
src/mess/machine/ecbbus.h
r12348r12349
6464public:
6565   // construction/destruction
6666   ecbbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
67   
67
6868   // device-level overrides
6969   virtual void device_start();
7070
r12348r12349
115115
116116   DECLARE_WRITE_LINE_MEMBER( int_w );
117117   DECLARE_WRITE_LINE_MEMBER( nmi_w );
118   
118
119119   bool screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
120120
121121protected:
r12348r12349
130130
131131   devcb_resolved_write_line   m_out_int_func;
132132   devcb_resolved_write_line   m_out_nmi_func;
133   
133
134134   device_ecbbus_card_interface *m_ecbbus_device[MAX_ECBBUS_SLOTS];
135135   const char *m_cputag;
136136};
r12348r12349
146146class device_ecbbus_card_interface : public device_interface
147147{
148148   friend class ecbbus_device;
149   
149
150150public:
151151   // construction/destruction
152152   device_ecbbus_card_interface(const machine_config &mconfig, device_t &device);
src/mess/machine/coco_pak.h
r12348r12349
2121      // construction/destruction
2222        coco_pak_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2323      coco_pak_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
24     
24
2525      // optional information overrides
2626      virtual machine_config_constructor device_mconfig_additions() const;
2727      virtual const rom_entry *device_rom_region() const;
28     
28
2929      virtual UINT8* get_cart_base();
3030protected:
3131        // device-level overrides
r12348r12349
3434      virtual void device_config_complete();
3535
3636        // internal state
37      device_image_interface *m_cart;     
37      device_image_interface *m_cart;
3838      cococart_slot_device *m_owner;
3939};
4040
r12348r12349
5555        // device-level overrides
5656      virtual void device_reset();
5757      virtual DECLARE_WRITE8_MEMBER(write);
58private:     
58private:
5959      void banked_pak_set_bank(UINT32 bank);
6060};
6161
src/mess/machine/coco_fdc.c
r12348r12349
153153
154154
155155//**************************************************************************
156//           COCO FDC
156//              COCO FDC
157157//**************************************************************************
158158
159159static const wd17xx_interface coco_wd17xx_interface =
r12348r12349
168168   MCFG_WD1773_ADD(WD_TAG, coco_wd17xx_interface)
169169   MCFG_MSM6242_ADD(DISTO_TAG)
170170   MCFG_DS1315_ADD(CLOUD9_TAG)
171   
171
172172   MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(coco_floppy_interface)
173173MACHINE_CONFIG_END
174174
r12348r12349
428428
429429
430430//**************************************************************************
431//           DRAGON FDC
431//              DRAGON FDC
432432//**************************************************************************
433433
434434static MACHINE_CONFIG_FRAGMENT(dragon_fdc)
435   MCFG_WD2797_ADD(WD_TAG, coco_wd17xx_interface)   
435   MCFG_WD2797_ADD(WD_TAG, coco_wd17xx_interface)
436436   MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(coco_floppy_interface)
437437MACHINE_CONFIG_END
438438
r12348r12349
608608}
609609
610610//**************************************************************************
611//           SDTANDY FDC
611//              SDTANDY FDC
612612//**************************************************************************
613613
614614ROM_START( sdtandy_fdc )
r12348r12349
648648}
649649
650650//**************************************************************************
651//           COCO FDC v1.1
651//              COCO FDC v1.1
652652//**************************************************************************
653653
654654ROM_START( coco_fdc_v11 )
r12348r12349
691691}
692692
693693//**************************************************************************
694//           CP400 FDC
694//              CP400 FDC
695695//**************************************************************************
696696
697697ROM_START( cp400_fdc )
r12348r12349
728728const rom_entry *cp400_fdc_device::device_rom_region() const
729729{
730730   return ROM_NAME( cp400_fdc );
731}
No newline at end of file
731}
src/mess/machine/coco_fdc.h
r12348r12349
3131      // construction/destruction
3232        coco_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
3333      coco_fdc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
34     
34
3535      // optional information overrides
3636      virtual machine_config_constructor device_mconfig_additions() const;
3737      virtual const rom_entry *device_rom_region() const;
38     
38
3939      virtual UINT8* get_cart_base();
40     
40
4141      virtual void update_lines();
4242      virtual void dskreg_w(UINT8 data);
43     
43
4444      void set_intrq(UINT8 val) { m_intrq = val; }
4545      void set_drq(UINT8 val) { m_drq = val; }
4646protected:
r12348r12349
4848        virtual void device_start();
4949      virtual void device_config_complete();
5050      virtual DECLARE_READ8_MEMBER(read);
51      virtual DECLARE_WRITE8_MEMBER(write);     
51      virtual DECLARE_WRITE8_MEMBER(write);
5252
5353      coco_rtc_type_t real_time_clock();
54     
54
5555        // internal state
5656      cococart_slot_device *m_owner;
57     
57
5858      UINT8 m_dskreg;
5959      UINT8 m_drq : 1;
6060      UINT8 m_intrq : 1;
r12348r12349
6464
6565      /* Disto RTC */
6666      device_t *m_disto_msm6242;      /* 6242 RTC on Disto interface */
67      offs_t m_msm6242_rtc_address;     
67      offs_t m_msm6242_rtc_address;
6868};
6969
7070
r12348r12349
125125      virtual machine_config_constructor device_mconfig_additions() const;
126126      virtual const rom_entry *device_rom_region() const;
127127      virtual void update_lines();
128      virtual void dskreg_w(UINT8 data);           
128      virtual void dskreg_w(UINT8 data);
129129protected:
130130        // device-level overrides
131131      virtual void device_start();
132132      virtual void device_config_complete();
133133      virtual DECLARE_READ8_MEMBER(read);
134      virtual DECLARE_WRITE8_MEMBER(write);           
135private:     
134      virtual DECLARE_WRITE8_MEMBER(write);
135private:
136136};
137137
138138
src/mess/machine/egret.c
r12348r12349
11/*
2   Apple "Egret" ADB/system controller MCU
3   Emulation by R. Belmont
2    Apple "Egret" ADB/system controller MCU
3    Emulation by R. Belmont
44
5   Port definitions, primarily from the schematics.
5    Port definitions, primarily from the schematics.
66
7   Port A:
7    Port A:
88
9   x-------  O  ADB data line out
10   -x------  I  ADB data line in
11   --x-----  I  System type.  0 = hardware power switch, 1 = Egret controls power on/off
12   ---x----  O  DFAC latch
13   ----x---  O  ? (asserted briefly when resetting 680x0)
14   -----x--  I  Keyboard power switch
15   ------x-  ?  PSU enable OUT for system type 0, otherwise chassis power switch IN
16   -------x  ?  Control panel enable IN for system type 0 (e.g. LC), power supply enable OUT for type 1
9    x-------  O  ADB data line out
10    -x------  I  ADB data line in
11    --x-----  I  System type.  0 = hardware power switch, 1 = Egret controls power on/off
12    ---x----  O  DFAC latch
13    ----x---  O  ? (asserted briefly when resetting 680x0)
14    -----x--  I  Keyboard power switch
15    ------x-  ?  PSU enable OUT for system type 0, otherwise chassis power switch IN
16    -------x  ?  Control panel enable IN for system type 0 (e.g. LC), power supply enable OUT for type 1
1717
18   Port B:
18    Port B:
1919
20   x-------  O  DFAC bit clock
21   -x------  ?  DFAC data I/O (used in both directions)
22   --x-----  ?  VIA shift register data (used in both directions)
23   ---x----  O  VIA clock
24   ----x---  I  VIA SYS_SESSION
25   -----x--  I  VIA VIA_FULL
26   ------x-  O  VIA XCEIVER SESSION
27   -------x  I  +5v sense
20    x-------  O  DFAC bit clock
21    -x------  ?  DFAC data I/O (used in both directions)
22    --x-----  ?  VIA shift register data (used in both directions)
23    ---x----  O  VIA clock
24    ----x---  I  VIA SYS_SESSION
25    -----x--  I  VIA VIA_FULL
26    ------x-  O  VIA XCEIVER SESSION
27    -------x  I  +5v sense
2828
29   Port C:
30   x---      O  680x0 reset
31   -x--      ?  680x0 IPL 2 (used in both directions)
32   --xx      ?  IPL 1/0 for hardware power switch, trickle sense (bit 1) and pulled up to +5v (bit 0) if Egret controls the PSU
29    Port C:
30    x---      O  680x0 reset
31    -x--      ?  680x0 IPL 2 (used in both directions)
32    --xx      ?  IPL 1/0 for hardware power switch, trickle sense (bit 1) and pulled up to +5v (bit 0) if Egret controls the PSU
3333*/
3434
3535#define ADDRESS_MAP_MODERN
r12348r12349
110110   switch (offset)
111111   {
112112      case 0: // port A
113/*         printf("ADB:%d DFAC:%d PowerEnable:%d\n",
114            (data & 0x80) ? 1 : 0,
115            (data & 0x10) ? 1 : 0,
116            (data & 0x02) ? 1 : 0);*/
113/*          printf("ADB:%d DFAC:%d PowerEnable:%d\n",
114                (data & 0x80) ? 1 : 0,
115                (data & 0x10) ? 1 : 0,
116                (data & 0x02) ? 1 : 0);*/
117117
118118         if ((data & 0x80) != last_adb)
119119         {
120/*            if (data & 0x80)
121            {
122               printf("EG ADB: 1->0 time %lld\n", m_maincpu->total_cycles()-last_adb_time);
123            }
124            else
125            {
126               printf("EG ADB: 0->1 time %lld\n", m_maincpu->total_cycles()-last_adb_time);
127            }*/
120/*              if (data & 0x80)
121                {
122                    printf("EG ADB: 1->0 time %lld\n", m_maincpu->total_cycles()-last_adb_time);
123                }
124                else
125                {
126                    printf("EG ADB: 0->1 time %lld\n", m_maincpu->total_cycles()-last_adb_time);
127                }*/
128128            last_adb = data & 0x80;
129129            last_adb_time = m_maincpu->total_cycles();
130130         }
r12348r12349
196196
197197WRITE8_MEMBER( egret_device::ddr_w )
198198{
199/*   printf("%02x to DDR %c\n", data, 'A' + offset);*/
199/*  printf("%02x to DDR %c\n", data, 'A' + offset);*/
200200
201201   send_port(space, offset, ports[offset] & data);
202202
r12348r12349
209209
210210   switch (offset)
211211   {
212      case 0:      // port A
213//         incoming |= adb_in ? 0x40 : 0;
212      case 0:    // port A
213//          incoming |= adb_in ? 0x40 : 0;
214214
215215         if (egret_controls_power)
216216         {
r12348r12349
218218         }
219219         else
220220         {
221            //incoming |= 0x01;   // enable control panel enabled
221            //incoming |= 0x01; // enable control panel enabled
222222         }
223223         break;
224224
r12348r12349
238238         break;
239239   }
240240
241   // apply data direction registers                     
241   // apply data direction registers
242242   incoming &= (ddrs[offset] ^ 0xff);
243243   // add in ddr-masked version of port writes
244244   incoming |= (ports[offset] & ddrs[offset]);
r12348r12349
282282
283283WRITE8_MEMBER( egret_device::timer_ctrl_w )
284284{
285//   printf("%02x to timer control\n", data);
285//  printf("%02x to timer control\n", data);
286286   timer_ctrl = data;
287287}
288288
r12348r12349
293293
294294WRITE8_MEMBER( egret_device::timer_counter_w )
295295{
296//   printf("%02x to timer/counter\n", data);
296//  printf("%02x to timer/counter\n", data);
297297   timer_counter = data;
298298}
299299
r12348r12349
306306{
307307   static const float rates[4] = { 0.5f, 1.0f, 2.0f, 4.0f };
308308
309//   printf("%02x to one-second control\n", data);
309//  printf("%02x to one-second control\n", data);
310310
311311   m_timer->adjust(attotime::from_hz(rates[data&3]), 0, attotime::from_hz(rates[data&3]));
312312
src/mess/machine/pc1512kb.c
r12348r12349
203203
204204   PORT_START("Y10")
205205   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad Enter") PORT_CODE(KEYCODE_ENTER_PAD)
206   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
206   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
207207   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD)
208   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
208   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
209209   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6 "UTF8_RIGHT) PORT_CODE(KEYCODE_6_PAD)
210   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
210   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
211211   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 3 Pg Dn") PORT_CODE(KEYCODE_3_PAD)
212212   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Del "UTF8_RIGHT) PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
213213
r12348r12349
220220   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0 Ins") PORT_CODE(KEYCODE_0_PAD)
221221   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad . Del") PORT_CODE(KEYCODE_DEL_PAD)
222222   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD)
223   
223
224224   PORT_START("COM")
225   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
226   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
227   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
228   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
229   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
230   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
231   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
232   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
225   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
226   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
227   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
228   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
229   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
230   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
231   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
232   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
233233INPUT_PORTS_END
234234
235235
r12348r12349
343343{
344344   /*
345345
346      bit     description
346        bit     description
347347
348      0       X1
349      1       X2
350      2       X3
351      3       X4
352      4       X5
353      5       X6
354      6       X7
355      7       X8
348        0       X1
349        1       X2
350        2       X3
351        3       X4
352        4       X5
353        5       X6
354        6       X7
355        7       X8
356356
357   */
357    */
358358
359359   UINT8 data = 0xff;
360   
360
361361   if (!BIT(m_kb_y, 0)) data &= input_port_read(this, "Y1");
362362   if (!BIT(m_kb_y, 1)) data &= input_port_read(this, "Y2");
363363   if (!BIT(m_kb_y, 2)) data &= input_port_read(this, "Y3");
r12348r12349
370370   if (!BIT(m_kb_y, 9)) data &= input_port_read(this, "Y10");
371371   if (!BIT(m_kb_y, 10)) data &= input_port_read(this, "Y11");
372372   if (!m_joy_com) data &= input_port_read(this, "COM");
373   
373
374374   return data;
375375}
376376
r12348r12349
383383{
384384   /*
385385
386      bit     description
386        bit     description
387387
388      0       Y1
389      1       Y2
390      2       Y3
391      3       Y4
392      4       Y5
393      5       Y6
394      6       Y7
395      7       Y8
388        0       Y1
389        1       Y2
390        2       Y3
391        3       Y4
392        4       Y5
393        5       Y6
394        6       Y7
395        7       Y8
396396
397   */
397    */
398398
399399   m_kb_y = (m_kb_y & 0xff00) | data;
400400}
r12348r12349
408408{
409409   /*
410410
411      bit     description
411        bit     description
412412
413      0       SERIAL DATA
414      1       SERIAL CLOCK
415      2       
416      3       
417      4       
418      5       
419      6       
420      7       
413        0       SERIAL DATA
414        1       SERIAL CLOCK
415        2
416        3
417        4
418        5
419        6
420        7
421421
422   */
423   
422    */
423
424424   UINT8 data = 0;
425425
426426   data |= m_data_in;
427427   data |= m_clock_in << 1;
428   
428
429429   return data;
430430}
431431
r12348r12349
438438{
439439   /*
440440
441      bit     description
441        bit     description
442442
443      0       SERIAL DATA
444      1       SERIAL CLOCK
445      2       CAPS LED
446      3       NUM LED
447      4       Y9
448      5       Y10
449      6       Y11
450      7       joystick COM
443        0       SERIAL DATA
444        1       SERIAL CLOCK
445        2       CAPS LED
446        3       NUM LED
447        4       Y9
448        5       Y10
449        6       Y11
450        7       joystick COM
451451
452   */
453   
452    */
453
454454   // keyboard data
455455   m_out_data_func(BIT(data, 0));
456456
457457   // keyboard clock
458458   m_out_clock_func(BIT(data, 1));
459   
459
460460   // CAPS LOCK
461461   output_set_led_value(LED_CAPS, BIT(data, 2));
462   
462
463463   // NUM LOCK
464464   output_set_led_value(LED_NUM, BIT(data, 3));
465   
465
466466   // keyboard row
467467   m_kb_y = (((data >> 4) & 0x07) << 8) | (m_kb_y & 0xff);
468468
src/mess/machine/amigafdc.c
r12348r12349
145145   int   bytes;
146146   int pos;
147147   amiga_fdc_t *fdc = get_safe_token(device);
148   
148
149149   elapsed = fdc->fdc_status[drive].f->get_pos();
150150   speed = ( CUSTOM_REG(REG_ADKCON) & 0x100 ) ? 2 : 4;
151151
r12348r12349
347347static void setup_fdc_buffer( device_t *device,int drive )
348348{
349349   amiga_fdc_t *fdc = get_safe_token(device);
350   fdc->fdc_status[drive].mfm = fdc->fdc_status[drive].f->get_buffer();   
350   fdc->fdc_status[drive].mfm = fdc->fdc_status[drive].f->get_buffer();
351351}
352352
353353
r12348r12349
373373   amiga_fdc_t *fdc = get_safe_token(device);
374374
375375   if ( fdc->fdc_sel != ( ( data >> 3 ) & 15 ) )
376      fdc->fdc_rdy = 0;   
376      fdc->fdc_rdy = 0;
377377   fdc->fdc_sel = ( data >> 3 ) & 15;
378   
378
379379   for ( drive = 0; drive < NUM_DRIVES; drive++ ) {
380380      if ( !( fdc->fdc_sel & ( 1 << drive ) ) ) {
381         fdc->fdc_status[drive].f->ss_w(( data >> 2 ) & 1);
382         fdc->fdc_status[drive].f->dir_w(( data >> 1 ) & 1);
381         fdc->fdc_status[drive].f->ss_w(( data >> 2 ) & 1);
382         fdc->fdc_status[drive].f->dir_w(( data >> 1 ) & 1);
383383         fdc->fdc_status[drive].f->stp_w(data & 1);
384     
384
385385         fdc->fdc_status[drive].f->mon_w((( data >> 7 ) & 1)  );
386386         fdc_setup_leds( device,drive );
387387      }
r12348r12349
411411
412412         if ( fdc->fdc_status[drive].f->dskchg_r() == 0)
413413            ret &= ~0x04;
414           
414
415415         return ret;
416416      }
417417   }
r12348r12349
420420}
421421
422422WRITE_LINE_DEVICE_HANDLER(amiga_index_callback)
423{   
423{
424424   /* Issue a index pulse when a disk revolution completes */
425425   device_t *cia = device->machine().device("cia_1");
426426   mos6526_flag_w(cia, state);
src/mess/machine/pc1512kb.h
r12348r12349
8282   devcb_resolved_write_line   m_out_clock_func;
8383
8484   required_device<cpu_device> m_maincpu;
85   
85
8686   int m_data_in;
8787   int m_clock_in;
8888   int m_kb_y;
src/mess/machine/cpc_ssa1.h
r12348r12349
33 *
44 *  Created on: 16/07/2011
55 *
6 *   Amstrad SSA-1 - SP0256-AL2 based Speech Synthesiser and Sound Amplifier
6 *  Amstrad SSA-1 - SP0256-AL2 based Speech Synthesiser and Sound Amplifier
77 *
88 *  Uses on-board resonator, clocked at 3.12MHz
99 *
src/mess/machine/comx_fd.c
r12348r12349
138138//**************************************************************************
139139
140140//-------------------------------------------------
141//  update_ef4 -
141//  update_ef4 -
142142//-------------------------------------------------
143143
144144inline void comx_fd_device::update_ef4()
r12348r12349
239239UINT8 comx_fd_device::comx_mrd_r(offs_t offset, int *extrom)
240240{
241241   UINT8 data = 0xff;
242   
242
243243   if (offset >= 0x0dd0 && offset < 0x0de0)
244244   {
245245      data = m_rom[offset & 0x1fff];
r12348r12349
249249   {
250250      data = m_rom[offset & 0x1fff];
251251   }
252   
252
253253   return data;
254254}
255255
r12348r12349
290290      {
291291         /*
292292
293            bit     description
293                bit     description
294294
295            0       A0
296            1       A1
297            2       DRIVE0
298            3       DRIVE1
299            4       F9 DISB
300            5       SIDE SELECT
295                0       A0
296                1       A1
297                2       DRIVE0
298                3       DRIVE1
299                4       F9 DISB
300                5       SIDE SELECT
301301
302         */
302            */
303303
304304         // latch data to F3
305305         m_addr = data & 0x03;
r12348r12349
315315
316316         m_disb = !BIT(data, 4);
317317         update_ef4();
318         
318
319319         wd17xx_set_side(m_fdc, BIT(data, 5));
320320      }
321321      else
src/mess/machine/c64_xl80.c
r12348r12349
66PCB Layout
77----------
88
9      |==================================|
10      |   LS175    LS20    LS139         |
11      |   LS157                          |
9        |==================================|
10        |   LS175    LS20    LS139         |
11        |   LS157                          |
1212|=======|                                  |
1313|=|                          RAM           |
1414|=|    LS157      LS157             LS165  |
r12348r12349
1919|=|    ROM0          LS245   LS151         |
2020|=|                             14.31818MHz|
2121|=======|            LS174   LS00          |
22      |                           HCU04  |
23      |    LS74    LS161   LS74          |
24      |==================================|
22        |                           HCU04  |
23        |    LS74    LS161   LS74          |
24        |==================================|
2525
2626Notes:
2727    All IC's shown.
2828
29   CRTC    - Hitachi HD46505SP
30   RAM     - Toshiba TMM2016AP-12 2Kx8 Static RAM
31   ROM0    - GI 9433CS-0090 8Kx8 ROM?
32   ROM1    - GI 9316CS-F67 2Kx8 ROM? "DTC"
33   CN1     - RCA video output
29    CRTC    - Hitachi HD46505SP
30    RAM     - Toshiba TMM2016AP-12 2Kx8 Static RAM
31    ROM0    - GI 9433CS-0090 8Kx8 ROM?
32    ROM1    - GI 9316CS-F67 2Kx8 ROM? "DTC"
33    CN1     - RCA video output
3434
3535*/
3636
r12348r12349
148148   MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 24*8-1)
149149   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
150150   MCFG_SCREEN_REFRESH_RATE(50)
151   
151
152152   //MCFG_GFXDECODE(c64_xl80)
153153
154154   MCFG_MC6845_ADD(HD46505SP_TAG, H46505, XTAL_14_31818MHz, crtc_intf)
r12348r12349
217217UINT8 c64_xl80_device::c64_cd_r(offs_t offset, int roml, int romh, int io1, int io2)
218218{
219219   UINT8 data = 0;
220   
220
221221   if (!io2 && BIT(offset, 1))
222222   {
223223      address_space *space = machine().firstcpu->memory().space(AS_PROGRAM);
224     
224
225225      if (offset & 0x01)
226226      {
227227         data = m_crtc->register_r(*space, 0);
r12348r12349
249249   if (!io2 && BIT(offset, 1))
250250   {
251251      address_space *space = machine().firstcpu->memory().space(AS_PROGRAM);
252     
252
253253      if (offset & 0x01)
254254      {
255255         m_crtc->register_w(*space, 0, data);
src/mess/machine/comx_thm.c
r12348r12349
7979UINT8 comx_thm_device::comx_mrd_r(offs_t offset, int *extrom)
8080{
8181   UINT8 data = 0;
82   
82
8383   if (offset >= 0xc000 && offset < 0xd000)
8484   {
8585      data = m_rom[offset & 0xfff];
8686   }
87   
87
8888   return data;
8989}
9090
r12348r12349
9696UINT8 comx_thm_device::comx_io_r(offs_t offset)
9797{
9898   /*
99      INP 2 is used for the printer status, where:
100      b0=1: Printer Not Ready
101      b1=1: Energizing Head
102      b2=1: Head At Position 0
103   */
99        INP 2 is used for the printer status, where:
100        b0=1: Printer Not Ready
101        b1=1: Energizing Head
102        b2=1: Head At Position 0
103    */
104104
105105   return 0;
106106}
r12348r12349
113113void comx_thm_device::comx_io_w(offs_t offset, UINT8 data)
114114{
115115   /*
116      OUT 2 is used to control the thermal printer where:
117      Q = 0, b0-7: Pixel 1 to 8
118      Q = 1, b7: Pixel 9 (if b0-6=#21)
119      Q = 1, b3=1: Move head right
120      Q = 1, b0-7=#12: Move head left
121   */
116        OUT 2 is used to control the thermal printer where:
117        Q = 0, b0-7: Pixel 1 to 8
118        Q = 1, b7: Pixel 9 (if b0-6=#21)
119        Q = 1, b3=1: Move head right
120        Q = 1, b0-7=#12: Move head left
121    */
122122}
src/mess/machine/comx_prn.c
r12348r12349
8585UINT8 comx_prn_device::comx_mrd_r(offs_t offset, int *extrom)
8686{
8787   UINT8 data = 0;
88   
88
8989   if (offset >= 0xc000 && offset < 0xd000)
9090   {
9191      data = m_rom[offset & 0xfff];
9292   }
93   
93
9494   return data;
9595}
9696
r12348r12349
102102UINT8 comx_prn_device::comx_io_r(offs_t offset)
103103{
104104   /*
105      Parallel:
106     
107      INP 2 for the printer status, where:
108      b0=1: Acknowledge Fault
109      b1=0: Device Busy
110      b2=0: Paper Empty
111      b3=1: Device Not Selected
112     
113      Serial:
114     
115      INP 2 for the printer status and to start a new range of bits for the next byte.
116   */
105        Parallel:
117106
107        INP 2 for the printer status, where:
108        b0=1: Acknowledge Fault
109        b1=0: Device Busy
110        b2=0: Paper Empty
111        b3=1: Device Not Selected
112
113        Serial:
114
115        INP 2 for the printer status and to start a new range of bits for the next byte.
116    */
117
118118   return 0;
119119}
120120
r12348r12349
126126void comx_prn_device::comx_io_w(offs_t offset, UINT8 data)
127127{
128128   /*
129      Parallel:
130     
131      OUT 2 is used to send a byte to the printer
132   
133      Serial:
134     
135      OUT 2 is used to send a bit to the printer
136   */
129        Parallel:
130
131        OUT 2 is used to send a byte to the printer
132
133        Serial:
134
135        OUT 2 is used to send a bit to the printer
136    */
137137}
src/mess/machine/mac.c
r12348r12349
100100#define ADB_IS_PM   ((mac->m_model >= MODEL_MAC_PORTABLE && mac->m_model <= MODEL_MAC_PB100) || (mac->m_model >= MODEL_MAC_PB140 && mac->m_model <= MODEL_MAC_PBDUO_270c))
101101#define ADB_IS_PM_VIA1   (mac->m_model >= MODEL_MAC_PORTABLE && mac->m_model <= MODEL_MAC_PB100)
102102#define ADB_IS_PM_VIA2   (mac->m_model >= MODEL_MAC_PB140 && mac->m_model <= MODEL_MAC_PBDUO_270c)
103#define ADB_IS_PM_CLASS   ((m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100) || (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c))
103#define ADB_IS_PM_CLASS   ((m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100) || (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c))
104104
105105#define AUDIO_IS_CLASSIC (mac->m_model <= MODEL_MAC_CLASSIC)
106106#define MAC_HAS_VIA2   ((m_model >= MODEL_MAC_II) && (m_model != MODEL_MAC_IIFX))
r12348r12349
351351   }
352352   else if ((mac->m_model == MODEL_MAC_PORTABLE) || (mac->m_model == MODEL_MAC_PB100))
353353   {
354//      m_asc_interrupt = state;
355//      mac->field_interrupts();
354//      m_asc_interrupt = state;
355//      mac->field_interrupts();
356356   }
357357   else if ((mac->m_model >= MODEL_MAC_II) && (mac->m_model != MODEL_MAC_IIFX))
358358   {
r12348r12349
413413      is_rom = FALSE;
414414   }
415415
416//   printf("mac_v8_resize: memory_size = %x, ctrl bits %02x (overlay %d = %s)\n", memory_size, m_rbv_regs[1] & 0xe0, m_overlay, is_rom ? "ROM" : "RAM");
416//  printf("mac_v8_resize: memory_size = %x, ctrl bits %02x (overlay %d = %s)\n", memory_size, m_rbv_regs[1] & 0xe0, m_overlay, is_rom ? "ROM" : "RAM");
417417
418418   if (is_rom)
419419   {
r12348r12349
21192119
21202120      case 0x20:   // send ADB command (PMU must issue an IRQ on completion)
21212121         #if 0
2122         printf("PMU: Send ADB %02x %02x cmd %02x flag %02x data %02x\n",
2122         printf("PMU: Send ADB %02x %02x cmd %02x flag %02x data %02x\n",
21232123               mac->m_pm_cmd[0],
21242124               mac->m_pm_cmd[1],
21252125               mac->m_pm_cmd[2],
r12348r12349
21292129
21302130         if (((mac->m_pm_cmd[2] == 0xfc) || (mac->m_pm_cmd[2] == 0x2c)) && (mac->m_pm_cmd[3] == 4))
21312131         {
2132//            printf("PMU: request to poll ADB, returning nothing\n");
2132//              printf("PMU: request to poll ADB, returning nothing\n");
21332133            mac->m_pm_slen = 0;
21342134            mac->m_pmu_int_status = 0;
21352135         }
r12348r12349
22892289            {
22902290               mac->m_pm_out[0] = mac->m_pm_out[1] = 2;
22912291               mac->m_pm_out[2] = mac->m_pmu_int_status; // ADB status in low nibble
2292               mac->m_pm_out[3] = mac->m_pmu_last_adb_command;          // ADB command that was sent OR 0x80 for extra error-ness
2292               mac->m_pm_out[3] = mac->m_pmu_last_adb_command;        // ADB command that was sent OR 0x80 for extra error-ness
22932293               mac->m_pm_out[4] = 0;                       // return data
22942294               mac->m_pm_slen = 4;
22952295               mac->m_pmu_send_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(1500)));
r12348r12349
23262326            int i;
23272327
23282328            mac->m_pm_out[0] = mac->m_pm_out[1] = mac->m_pm_cmd[4];
2329//            printf("PMU read at %x\n", mac->m_pm_cmd[2] | (mac->m_pm_cmd[3]<<8));
2329//              printf("PMU read at %x\n", mac->m_pm_cmd[2] | (mac->m_pm_cmd[3]<<8));
23302330
23312331            // note: read at 0xEE00 0 = target disk mode, 0xff = normal bootup
23322332
r12348r12349
25362536      case MODEL_MAC_IICX:
25372537         return 0x81 | PA6;
25382538
2539      case MODEL_MAC_PB140:   // since the ASICs are different, these are allowed to "collide"
2539      case MODEL_MAC_PB140:   // since the ASICs are different, these are allowed to "collide"
25402540      case MODEL_MAC_PB160:
25412541      case MODEL_MAC_CLASSIC_II:
25422542      case MODEL_MAC_QUADRA_800:
r12348r12349
30333033      m_6015_timer->adjust(attotime::from_hz(60.15), 0, attotime::from_hz(60.15));
30343034   }
30353035
3036   // we use the CPU clock divided by the VIA clock (783360 Hz) rounded up as
3036   // we use the CPU clock divided by the VIA clock (783360 Hz) rounded up as
30373037   // an approximation for the right number of wait states.  this yields good
30383038   // results - it's towards the end of the worst-case delay on h/w.
30393039   switch (m_maincpu->clock())
r12348r12349
34693469WRITE_LINE_MEMBER(mac_state::nubus_irq_e_w)
34703470{
34713471   nubus_slot_interrupt(0xe, state);
3472}                   
3472}
34733473
34743474/* *************************************************************************
34753475 * Trap Tracing
src/mess/machine/coco_232.h
r12348r12349
3030      virtual DECLARE_WRITE8_MEMBER(write);
3131private:
3232        // internal state
33      device_t *m_uart;     
33      device_t *m_uart;
3434};
3535
3636
src/mess/machine/comx_ram.c
r12348r12349
6464UINT8 comx_ram_device::comx_mrd_r(offs_t offset, int *extrom)
6565{
6666   UINT8 data = 0;
67   
67
6868   if (offset >= 0xc000 && offset < 0xd000)
6969   {
7070      data = (m_ram_bank << 12) | m_ram[offset & 0xfff];
7171   }
72   
72
7373   return data;
7474}
7575
src/mess/machine/c64_std.c
r12348r12349
9393UINT8 c64_standard_cartridge_device::c64_cd_r(offs_t offset, int roml, int romh, int io1, int io2)
9494{
9595   UINT8 data = 0;
96   
96
9797   if (offset >= 0x8000 && offset < 0xc000)
9898   {
9999      data = m_rom[offset & 0x3fff];
src/mess/machine/isa.c
r12348r12349
144144isa8_device::isa8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
145145        device_t(mconfig, ISA8, "ISA8", tag, owner, clock)
146146{
147}   
147}
148148
149149isa8_device::isa8_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock) :
150150        device_t(mconfig, type, name, tag, owner, clock)
r12348r12349
371371       memset(&(isa8bus_interface::m_out_irq5_cb), 0, sizeof(isa8bus_interface::m_out_irq5_cb));
372372       memset(&(isa8bus_interface::m_out_irq6_cb), 0, sizeof(isa8bus_interface::m_out_irq6_cb));
373373       memset(&(isa8bus_interface::m_out_irq7_cb), 0, sizeof(isa8bus_interface::m_out_irq7_cb));
374     
374
375375      memset(&m_out_irq10_cb, 0, sizeof(m_out_irq10_cb));
376376       memset(&m_out_irq11_cb, 0, sizeof(m_out_irq11_cb));
377377       memset(&m_out_irq12_cb, 0, sizeof(m_out_irq12_cb));
r12348r12349
382382       memset(&(isa8bus_interface::m_out_drq1_cb), 0, sizeof(isa8bus_interface::m_out_drq1_cb));
383383       memset(&(isa8bus_interface::m_out_drq2_cb), 0, sizeof(isa8bus_interface::m_out_drq2_cb));
384384       memset(&(isa8bus_interface::m_out_drq3_cb), 0, sizeof(isa8bus_interface::m_out_drq3_cb));
385     
385
386386      memset(&m_out_drq5_cb, 0, sizeof(m_out_drq5_cb));
387387       memset(&m_out_drq6_cb, 0, sizeof(m_out_drq6_cb));
388388       memset(&m_out_drq7_cb, 0, sizeof(m_out_drq7_cb));
r12348r12349
403403   m_out_irq12_func.resolve(m_out_irq12_cb, *this);
404404   m_out_irq14_func.resolve(m_out_irq14_cb, *this);
405405   m_out_irq15_func.resolve(m_out_irq15_cb, *this);
406   
406
407407   m_out_drq0_func.resolve(m_out_drq0_cb, *this);
408408   m_out_drq5_func.resolve(m_out_drq5_cb, *this);
409409   m_out_drq6_func.resolve(m_out_drq6_cb, *this);
src/mess/machine/isa.h
r12348r12349
3636    A29  IO  A2            B29      +5V
3737    A30  IO  A1            B30  I   OSC
3838    A31  IO  A0            B31      GND
39   
40   16 bit ISA bus extension
41   
39
40    16 bit ISA bus extension
41
4242    C1   I   SBHE          D1   I   /MEM CS 16
4343    C2   IO  A23           D2   I   /I/O CS 16
4444    C3   IO  A22           D3    O  IRQ10
r12348r12349
4949    C8   IO  A17           D8   I   /DACK0
5050    C9   I   /MEMR         D9    O  DRQ0
5151    C10  I   /MEMW         D10  I   /DACK5
52    C11  IO  D8            D11   O  DRQ5 
52    C11  IO  D8            D11   O  DRQ5
5353    C12  IO  D9            D12  I   /DACK6
5454    C13  IO  D10           D13   O  DRQ6
5555    C14  IO  D11           D14  I   /DACK7
r12348r12349
8585#define MCFG_ISA_ONBOARD_ADD(_isatag, _tag, _dev_type, _def_inp) \
8686    MCFG_DEVICE_ADD(_tag, _dev_type, 0) \
8787   MCFG_DEVICE_INPUT_DEFAULTS(_def_inp) \
88   device_isa8_card_interface::static_set_isabus_tag(*device, _isatag);   
88   device_isa8_card_interface::static_set_isabus_tag(*device, _isatag);
8989
9090
9191#define MCFG_ISA16_BUS_ADD(_tag, _cputag, _config) \
r12348r12349
9797    MCFG_DEVICE_ADD(_tag, ISA16_SLOT, 0) \
9898   MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp) \
9999   isa16_slot_device::static_set_isa16_slot(*device, _isatag); \
100   
100
101101//**************************************************************************
102102//  TYPE DEFINITIONS
103103//**************************************************************************
r12348r12349
111111   // construction/destruction
112112   isa8_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
113113   isa8_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
114   
115   // device-level overrides   
114
115   // device-level overrides
116116   virtual void device_start();
117117
118118    // inline configuration
r12348r12349
212212   virtual ~device_isa8_card_interface();
213213
214214   device_isa8_card_interface *next() const { return m_next; }
215   
215
216216   void set_isa_device();
217217   // configuration access
218218   virtual UINT8 dack_r(int line);
r12348r12349
238238    devcb_write_line   m_out_irq5_cb;
239239    devcb_write_line   m_out_irq6_cb;
240240    devcb_write_line   m_out_irq7_cb;
241   
241
242242   devcb_write_line   m_out_irq10_cb;
243243   devcb_write_line   m_out_irq11_cb;
244244   devcb_write_line   m_out_irq12_cb;
245245   devcb_write_line   m_out_irq14_cb;
246246   devcb_write_line   m_out_irq15_cb;
247   
247
248248    devcb_write_line   m_out_drq0_cb;
249249   devcb_write_line   m_out_drq1_cb;
250250    devcb_write_line   m_out_drq2_cb;
r12348r12349
261261public:
262262   // construction/destruction
263263   isa16_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
264      // device-level overrides   
264      // device-level overrides
265265   virtual void device_start();
266266
267267    // inline configuration
268    static void static_set_isa16_slot(device_t &device, const char *tag);   
268    static void static_set_isa16_slot(device_t &device, const char *tag);
269269};
270270
271271
r12348r12349
279279public:
280280   // construction/destruction
281281   isa16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
282   
282
283283   void install16_device(device_t *dev, offs_t start, offs_t end, offs_t mask, offs_t mirror, read16_device_func rhandler, const char* rhandler_name, write16_device_func whandler, const char *whandler_name);
284284
285285   DECLARE_WRITE_LINE_MEMBER( irq10_w );
r12348r12349
292292   DECLARE_WRITE_LINE_MEMBER( drq5_w );
293293   DECLARE_WRITE_LINE_MEMBER( drq6_w );
294294   DECLARE_WRITE_LINE_MEMBER( drq7_w );
295   
295
296296protected:
297297   // device-level overrides
298298   virtual void device_start();
299299   virtual void device_config_complete();
300   
300
301301private:
302302   // internal state
303303   devcb_resolved_write_line   m_out_irq10_func;
r12348r12349
328328   virtual ~device_isa16_card_interface();
329329
330330   void set_isa_device();
331   isa16_device  *m_isa;   
331   isa16_device  *m_isa;
332332};
333333
334334#endif  /* __ISA_H__ */
src/mess/machine/coco_multi.c
r12348r12349
44
55    Code for emulating CoCo's Multi-Pak Interface
66
7    The Multi-Pak interface multiplexes all I/O lines from the Color
8    Computer's expansion port to four identical ports. All I/O lines
9    are continuously multiplexed except:
10   
11    Pin 36 - *SCS
12    Pin 32 - *CTS
13    Pin  8 - *CART
14   
15    These I/O lines are switched in one of two ways. First, is the front
16    panel, four position switch. When adjusted the switch will direct the
17    MPI to target these three I/O lines to the selected slot.
18   
19    Second, the MPI will listen to writes to 0xff7f and respond accordingly:
20   
21    bit 0 --\___ Target *SCS to this slot number
22    bit 1 --/
23    bit 2 ------ Ignore
24    bit 3 ------ Ignore
25    bit 4 --\___ Target *CTS and *CART to this slot number
26    bit 5 --/
27    bit 6 ------ Ignore
28    bit 7 ------ Ignore
29   
30    After writing to 0xff7f, the position of the physical switch has no
31    effect until reset.
32   
33    Reading is supported on 0xff7f. It will reflect the position of the
34    physical switch. Until data is written to 0xff7f, then it will only
35    reflect what has been written until a reset.
36   
37    A common modification users of the OS-9 operating system made was to
38    tie all of the *CART pins together on the MPI motherboard. The *CART
39    line is connected to the 6809's IRQ line. This allowed any hardware
40    device in any slot to signal an IRQ to the CPU, no matter what the
41    switch position was. OS-9 was designed from the very start to poll
42    each device attached on every IQR signal.
43   
44    Because of sloppy address decoding the original MPI also responds to
45    0xff9f. No software is known to take advantage of this. After the
46    introduction of the CoCo 3, which uses 0xff9f internally, Tandy provided
47    free upgrades to any MPI to fix this problem.
48   
49   
7     The Multi-Pak interface multiplexes all I/O lines from the Color
8     Computer's expansion port to four identical ports. All I/O lines
9     are continuously multiplexed except:
10
11     Pin 36 - *SCS
12     Pin 32 - *CTS
13     Pin  8 - *CART
14
15     These I/O lines are switched in one of two ways. First, is the front
16     panel, four position switch. When adjusted the switch will direct the
17     MPI to target these three I/O lines to the selected slot.
18
19     Second, the MPI will listen to writes to 0xff7f and respond accordingly:
20
21     bit 0 --\___ Target *SCS to this slot number
22     bit 1 --/
23     bit 2 ------ Ignore
24     bit 3 ------ Ignore
25     bit 4 --\___ Target *CTS and *CART to this slot number
26     bit 5 --/
27     bit 6 ------ Ignore
28     bit 7 ------ Ignore
29
30     After writing to 0xff7f, the position of the physical switch has no
31     effect until reset.
32
33     Reading is supported on 0xff7f. It will reflect the position of the
34     physical switch. Until data is written to 0xff7f, then it will only
35     reflect what has been written until a reset.
36
37     A common modification users of the OS-9 operating system made was to
38     tie all of the *CART pins together on the MPI motherboard. The *CART
39     line is connected to the 6809's IRQ line. This allowed any hardware
40     device in any slot to signal an IRQ to the CPU, no matter what the
41     switch position was. OS-9 was designed from the very start to poll
42     each device attached on every IQR signal.
43
44     Because of sloppy address decoding the original MPI also responds to
45     0xff9f. No software is known to take advantage of this. After the
46     introduction of the CoCo 3, which uses 0xff9f internally, Tandy provided
47     free upgrades to any MPI to fix this problem.
48
49
5050***************************************************************************/
5151
5252#include "emu.h"
r12348r12349
142142   m_slot3 = dynamic_cast<cococart_slot_device *>(subdevice(SLOT3_TAG));
143143   m_slot4 = dynamic_cast<cococart_slot_device *>(subdevice(SLOT4_TAG));
144144   m_owner = dynamic_cast<cococart_slot_device *>(owner());
145   
146   m_active = m_slot4;
145
146   m_active = m_slot4;
147147}
148148
149149//-------------------------------------------------
src/mess/machine/coco_multi.h
r12348r12349
2020public:
2121      // construction/destruction
2222        coco_multipak_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
23     
23
2424      // optional information overrides
2525      virtual machine_config_constructor device_mconfig_additions() const;
26     
26
2727      virtual UINT8* get_cart_base();
2828protected:
2929        // device-level overrides
r12348r12349
3333
3434        // internal state
3535      cococart_slot_device *m_owner;
36     
36
3737      cococart_slot_device *m_slot1;
3838      cococart_slot_device *m_slot2;
3939      cococart_slot_device *m_slot3;
4040      cococart_slot_device *m_slot4;
41     
41
4242      cococart_slot_device *m_active;
4343};
4444
src/mess/machine/c64exp.c
r12348r12349
124124
125125
126126//-------------------------------------------------
127//  call_load -
127//  call_load -
128128//-------------------------------------------------
129129
130bool c64_expansion_slot_device::call_load()
131{   
130bool c64_expansion_slot_device::call_load()
131{
132132   if (m_cart)
133133   {
134134      offs_t read_length = 0;
135     
135
136136      if (software_entry() == NULL)
137137      {
138138         read_length = fread(m_cart->get_cart_base(), 0x4000);
139      }         
139      }
140140      else
141141      {
142142         read_length = get_software_region_length("roml");
143         
143
144144         if (read_length > 0)
145145         {
146146            memcpy(m_cart->get_cart_base(), get_software_region("roml"), read_length);
r12348r12349
156156         }
157157      }
158158   }
159   
159
160160   return IMAGE_INIT_PASS;
161161}
162162
163163
164164//-------------------------------------------------
165//  call_softlist_load -
165//  call_softlist_load -
166166//-------------------------------------------------
167167
168168bool c64_expansion_slot_device::call_softlist_load(char *swlist, char *swname, rom_entry *start_entry)
169169{
170170   load_software_part_region(this, swlist, swname, start_entry);
171   
171
172172   return true;
173173}
174174
175175
176176//-------------------------------------------------
177//  get_default_card -
177//  get_default_card -
178178//-------------------------------------------------
179179
180180const char * c64_expansion_slot_device::get_default_card(const device_list &devlist, emu_options &options) const
r12348r12349
184184
185185
186186//-------------------------------------------------
187//  get_cart_base -
187//  get_cart_base -
188188//-------------------------------------------------
189189
190190UINT8* c64_expansion_slot_device::get_cart_base()
r12348r12349
200200READ8_MEMBER( c64_expansion_slot_device::roml_r )
201201{
202202   UINT8 data = 0;
203   
203
204204   if (m_cart != NULL)
205205   {
206206      data = m_cart->c64_cd_r(offset, 0, 1, 1, 1);
207207   }
208   
208
209209   return data;
210210}
211211
r12348r12349
217217READ8_MEMBER( c64_expansion_slot_device::romh_r )
218218{
219219   UINT8 data = 0;
220   
220
221221   if (m_cart != NULL)
222222   {
223223      data = m_cart->c64_cd_r(offset, 1, 0, 1, 1);
224224   }
225   
225
226226   return data;
227227}
228228
r12348r12349
234234READ8_MEMBER( c64_expansion_slot_device::io1_r )
235235{
236236   UINT8 data = 0;
237   
237
238238   if (m_cart != NULL)
239239   {
240240      data = m_cart->c64_cd_r(offset, 1, 1, 0, 1);
241241   }
242   
242
243243   return data;
244244}
245245
r12348r12349
264264READ8_MEMBER( c64_expansion_slot_device::io2_r )
265265{
266266   UINT8 data = 0;
267   
267
268268   if (m_cart != NULL)
269269   {
270270      data = m_cart->c64_cd_r(offset, 1, 1, 1, 0);
271271   }
272   
272
273273   return data;
274274}
275275
r12348r12349
294294READ_LINE_MEMBER( c64_expansion_slot_device::game_r )
295295{
296296   int state = 1;
297   
297
298298   if (m_cart != NULL)
299299   {
300300      state = m_cart->c64_game_r();
301301   }
302   
302
303303   return state;
304304}
305305
r12348r12349
311311READ_LINE_MEMBER( c64_expansion_slot_device::exrom_r )
312312{
313313   int state = 1;
314   
314
315315   if (m_cart != NULL)
316316   {
317317      state = m_cart->c64_exrom_r();
318318   }
319   
319
320320   return state;
321321}
322322
r12348r12349
328328bool c64_expansion_slot_device::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
329329{
330330   bool value = false;
331   
331
332332   if (m_cart != NULL)
333333   {
334334      value = m_cart->c64_screen_update(screen, bitmap, cliprect);
335335   }
336   
336
337337   return value;
338338}
339339
src/mess/machine/c64exp.h
r12348r12349
77
88**********************************************************************
99
10               GND       1      A      GND
11               +5V       2      B      _ROMH
12               +5V       3      C      _RESET
13               _IRQ    4      D      _NMI
14               _CR/W    5      E      Sphi2
15               DOTCLK    6      F      CA15
16               _I/O1    7      H      CA14
17               _GAME    8      J      CA13
18               _EXROM    9      K      CA12
19               _I/O2   10      L      CA11
20               _ROML   11      M      CA10
21               BA      12      N      CA9
22               _DMA   13      P      CA8
23               CD7      14      R      CA7
24               CD6      15      S      CA6
25               CD5      16      T      CA5
26               CD4      17      U      CA4
27               CD3      18      V      CA3
28               CD2      19      W      CA2
29               CD1      20      X      CA1
30               CD0      21      Y      CA0
31               GND      22      Z      GND
10                    GND      1      A       GND
11                    +5V      2      B       _ROMH
12                    +5V      3      C       _RESET
13                    _IRQ     4      D       _NMI
14                    _CR/W    5      E       Sphi2
15                    DOTCLK   6      F       CA15
16                    _I/O1    7      H       CA14
17                    _GAME    8      J       CA13
18                    _EXROM   9      K       CA12
19                    _I/O2   10      L       CA11
20                    _ROML   11      M       CA10
21                    BA      12      N       CA9
22                    _DMA    13      P       CA8
23                    CD7     14      R       CA7
24                    CD6     15      S       CA6
25                    CD5     16      T       CA5
26                    CD4     17      U       CA4
27                    CD3     18      V       CA3
28                    CD2     19      W       CA2
29                    CD1     20      X       CA1
30                    CD0     21      Y       CA0
31                    GND     22      Z       GND
3232
3333**********************************************************************/
3434
r12348r12349
9494   // memory access
9595   virtual UINT8 c64_cd_r(offs_t offset, int roml, int romh, int io1, int io2) { return 0; };
9696   virtual void c64_cd_w(offs_t offset, UINT8 data, int roml, int romh, int io1, int io2) { };
97   
97
9898   // memory banking
9999   virtual int c64_game_r() { return 1; };
100100   virtual int c64_exrom_r() { return 1; };
r12348r12349
104104
105105   // video
106106   virtual bool c64_screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect) { return false; }
107   
107
108108   virtual UINT8* get_cart_base() { return NULL; }
109109};
110110
r12348r12349
144144   virtual void device_start();
145145   virtual void device_reset();
146146   virtual void device_config_complete();
147   
147
148148   // image-level overrides
149149   virtual bool call_load();
150150   virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry);
r12348r12349
159159   virtual const char *image_interface() const { return "c64_cart"; }
160160   virtual const char *file_extensions() const { return "bin,rom,80"; }
161161   virtual const option_guide *create_option_guide() const { return NULL; }
162   
162
163163   // slot interface overrides
164164   virtual const char * get_default_card(const device_list &devlist, emu_options &options) const;
165   
165
166166   virtual UINT8* get_cart_base();
167   
167
168168   devcb_resolved_write_line   m_out_irq_func;
169169   devcb_resolved_write_line   m_out_nmi_func;
170170   devcb_resolved_write_line   m_out_dma_func;
src/mess/machine/comxexp.c
r12348r12349
125125UINT8 comx_expansion_slot_device::mrd_r(offs_t offset, int *extrom)
126126{
127127   UINT8 data = 0;
128   
128
129129   if (m_card != NULL)
130130   {
131131      data = m_card->comx_mrd_r(offset, extrom);
132132   }
133   
133
134134   return data;
135135}
136136
r12348r12349
155155UINT8 comx_expansion_slot_device::io_r(offs_t offset)
156156{
157157   UINT8 data = 0;
158   
158
159159   if (m_card != NULL)
160160   {
161161      data = m_card->comx_io_r(offset);
162162   }
163   
163
164164   return data;
165165}
166166
r12348r12349
211211bool comx_expansion_slot_device::screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
212212{
213213   bool value = false;
214   
214
215215   if (m_card != NULL)
216216   {
217217      value = m_card->comx_screen_update(screen, bitmap, cliprect);
218218   }
219   
219
220220   return value;
221221}
222222
src/mess/machine/comx_joy.c
r12348r12349
101101   {
102102      data = input_port_read(this, "JOY2");
103103   }
104   
104
105105   return data;
106106}
src/mess/machine/comxexp.h
r12348r12349
77
88**********************************************************************
99
10               GND       1      A      GND
11               NC       2      B      DS
12               +5V       3      C      V+
13               D0       4      D      D1
14               D2       5      E      D3
15               D4       6      F      D5
16               D6       7      H      D7
17               _DP       8      J      Q
18               _CLEAR    9      K      _MRD
19               TPA      10      L      N0
20               N1      11      M      N2
21               _RAS   12      N      _INT
22               _WAIT   13      P      CLOCK
23               SC1      14      R      SC0
24               _EF4   15      S      _CASE
25               TPB      16      T      _A15
26               _MWR   17      U      A14
27               MA7      18      V      _A14
28               MA5      19      W      MA6
29               MA4      20      X      MA3
30               MA2      21      Y      _EXTROM
31               MA1      22      Z      MA0
10                    GND      1      A       GND
11                    NC       2      B       DS
12                    +5V      3      C       V+
13                    D0       4      D       D1
14                    D2       5      E       D3
15                    D4       6      F       D5
16                    D6       7      H       D7
17                    _DP      8      J       Q
18                    _CLEAR   9      K       _MRD
19                    TPA     10      L       N0
20                    N1      11      M       N2
21                    _RAS    12      N       _INT
22                    _WAIT   13      P       CLOCK
23                    SC1     14      R       SC0
24                    _EF4    15      S       _CASE
25                    TPB     16      T       _A15
26                    _MWR    17      U       A14
27                    MA7     18      V       _A14
28                    MA5     19      W       MA6
29                    MA4     20      X       MA3
30                    MA2     21      Y       _EXTROM
31                    MA1     22      Z       MA0
3232
3333**********************************************************************/
3434
src/mess/machine/nubus.c
r12348r12349
11/***************************************************************************
22
33  nubus.c - NuBus bus and card emulation
4 
5  by R. Belmont, based heavily on Miodrag Milanovic's ISA8/16 implementation 
6 
4
5  by R. Belmont, based heavily on Miodrag Milanovic's ISA8/16 implementation
6
77***************************************************************************/
88
99#include "emu.h"
r12348r12349
105105nubus_device::nubus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
106106        device_t(mconfig, NUBUS, "NUBUS", tag, owner, clock)
107107{
108}   
108}
109109
110110nubus_device::nubus_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock) :
111111        device_t(mconfig, type, name, tag, owner, clock)
src/mess/machine/nubus.h
r12348r12349
11/***************************************************************************
2
2
33  nubus.h - NuBus bus and card emulation
4 
5  by R. Belmont, based heavily on Miodrag Milanovic's ISA8/16 implementation 
64
5  by R. Belmont, based heavily on Miodrag Milanovic's ISA8/16 implementation
6
77***************************************************************************/
88
99#pragma once
r12348r12349
3131#define MCFG_NUBUS_ONBOARD_ADD(_nbtag, _tag, _dev_type, _def_inp) \
3232    MCFG_DEVICE_ADD(_tag, _dev_type, 0) \
3333   MCFG_DEVICE_INPUT_DEFAULTS(_def_inp) \
34   device_nubus_card_interface::static_set_nubus_tag(*device, _nbtag, _tag);   
35   
34   device_nubus_card_interface::static_set_nubus_tag(*device, _nbtag, _tag);
35
3636#define MCFG_NUBUS_BUS_REMOVE(_tag) \
3737    MCFG_DEVICE_REMOVE(_tag)
3838
r12348r12349
4949   // construction/destruction
5050   nubus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
5151   nubus_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
52   
53   // device-level overrides   
52
53   // device-level overrides
5454   virtual void device_start();
5555
5656    // inline configuration
r12348r12349
135135   virtual ~device_nubus_card_interface();
136136
137137   device_nubus_card_interface *next() const { return m_next; }
138   
138
139139   void set_nubus_device();
140140
141141    void install_declaration_rom(const char *romregion);
src/mess/machine/comx_epr.c
r12348r12349
2626   ROM_REGION( 0x10000, "eprom", 0 )
2727   ROM_LOAD( "f&m.basic.bin",     0x0000, 0x2000, CRC(22ab7b61) SHA1(68b5770bca37b1ba94083f944086884e612b5a1b) )
2828   ROM_LOAD( "disk.utilities.bin", 0x2000, 0x2000, CRC(2576c945) SHA1(e80481054c6997a5f418d8a5872ac0110ae7b75a) )
29   ROM_LOAD( "tennismania.bin",    0x4000, 0x2000, CRC(a956cc74) SHA1(8bc914f52f0dd2cf792da74ec4e9e333365619ef) )
29   ROM_LOAD( "tennismania.bin",   0x4000, 0x2000, CRC(a956cc74) SHA1(8bc914f52f0dd2cf792da74ec4e9e333365619ef) )
3030ROM_END
3131
3232
r12348r12349
6767
6868   m_rom = subregion("f800")->base();
6969   m_eprom = subregion("eprom")->base();
70   
70
7171   // state saving
7272   save_item(NAME(m_select));
7373}
r12348r12349
8989UINT8 comx_epr_device::comx_mrd_r(offs_t offset, int *extrom)
9090{
9191   UINT8 data = 0;
92   
92
9393   if (offset >= 0xc000 && offset < 0xe000)
9494   {
9595      offs_t address = (m_select << 13) | (offset & 0x1fff);
r12348r12349
9999   {
100100      data = m_rom[offset & 0x7ff];
101101   }
102   
102
103103   return data;
104104}
105105
src/mess/machine/ecb_grip.c
r12348r12349
11/***************************************************************************
22
3   GRIP - Grafik Interface Prozessor
3    GRIP - Grafik Interface Prozessor
44
55***************************************************************************/
66
r12348r12349
173173//-------------------------------------------------
174174
175175static ADDRESS_MAP_START( grip5_io, AS_IO, 8, grip5_device )
176   ADDRESS_MAP_GLOBAL_MASK(0xff)
177   AM_RANGE(0x00, 0x00) AM_READWRITE(cxstb_r, cxstb_w)
178   AM_RANGE(0x10, 0x10) AM_WRITE(eprom_w)
179   AM_RANGE(0x11, 0x11) AM_WRITE(vol0_w)
176    ADDRESS_MAP_GLOBAL_MASK(0xff)
177    AM_RANGE(0x00, 0x00) AM_READWRITE(cxstb_r, cxstb_w)
178    AM_RANGE(0x10, 0x10) AM_WRITE(eprom_w)
179    AM_RANGE(0x11, 0x11) AM_WRITE(vol0_w)
180180//  AM_RANGE(0x12, 0x12) AM_WRITE(rts_w)
181   AM_RANGE(0x13, 0x13) AM_WRITE(page_w)
181    AM_RANGE(0x13, 0x13) AM_WRITE(page_w)
182182//  AM_RANGE(0x14, 0x14) AM_WRITE(str_w)
183183//  AM_RANGE(0x15, 0x15) AM_WRITE(intl_w)
184   AM_RANGE(0x16, 0x16) AM_WRITE(dpage_w)
185   AM_RANGE(0x17, 0x17) AM_WRITE(vol1_w)
186   AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE_LEGACY(Z80STI_TAG, z80sti_r, z80sti_w)
187   AM_RANGE(0x30, 0x30) AM_READWRITE(lrs_r, lrs_w)
188   AM_RANGE(0x40, 0x40) AM_READ(stat_r)
189   AM_RANGE(0x50, 0x50) AM_DEVWRITE(HD6345_TAG, hd6345_device, address_w)
190   AM_RANGE(0x52, 0x52) AM_DEVWRITE(HD6345_TAG, hd6345_device, register_w)
191   AM_RANGE(0x53, 0x53) AM_DEVREAD(HD6345_TAG, hd6345_device, register_r)
192   AM_RANGE(0x60, 0x60) AM_DEVWRITE_LEGACY(CENTRONICS_TAG, centronics_data_w)
193   AM_RANGE(0x70, 0x73) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write)
184    AM_RANGE(0x16, 0x16) AM_WRITE(dpage_w)
185    AM_RANGE(0x17, 0x17) AM_WRITE(vol1_w)
186    AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE_LEGACY(Z80STI_TAG, z80sti_r, z80sti_w)
187    AM_RANGE(0x30, 0x30) AM_READWRITE(lrs_r, lrs_w)
188    AM_RANGE(0x40, 0x40) AM_READ(stat_r)
189    AM_RANGE(0x50, 0x50) AM_DEVWRITE(HD6345_TAG, hd6345_device, address_w)
190    AM_RANGE(0x52, 0x52) AM_DEVWRITE(HD6345_TAG, hd6345_device, register_w)
191    AM_RANGE(0x53, 0x53) AM_DEVREAD(HD6345_TAG, hd6345_device, register_r)
192    AM_RANGE(0x60, 0x60) AM_DEVWRITE_LEGACY(CENTRONICS_TAG, centronics_data_w)
193    AM_RANGE(0x70, 0x73) AM_DEVREADWRITE(I8255A_TAG, i8255_device, read, write)
194194
195195//  AM_RANGE(0x80, 0x80) AM_WRITE(xrflgs_w)
196196//  AM_RANGE(0xc0, 0xc0) AM_WRITE(xrclrg_w)
r12348r12349
241241static MC6845_UPDATE_ROW( grip_update_row )
242242{
243243   grip_device *grip = downcast<grip_device *>(device->owner());
244   
244
245245   grip->crtc_update_row(device,bitmap,cliprect,ma,ra,y,x_count,cursor_x,param);
246246}
247247/*
248248static MC6845_UPDATE_ROW( grip5_update_row )
249249{
250   grip5_state *state = device->machine().driver_data<grip5_state>();
251   int column, bit;
250    grip5_state *state = device->machine().driver_data<grip5_state>();
251    int column, bit;
252252
253   for (column = 0; column < x_count; column++)
254   {
255      UINT16 address = (state->m_dpage << 12) | (((ma + column) & 0xfff) << 3) | (ra & 0x07);
256      UINT8 data = state->m_video_ram[address];
253    for (column = 0; column < x_count; column++)
254    {
255        UINT16 address = (state->m_dpage << 12) | (((ma + column) & 0xfff) << 3) | (ra & 0x07);
256        UINT8 data = state->m_video_ram[address];
257257
258      for (bit = 0; bit < 8; bit++)
259      {
260         int x = (column * 8) + bit;
261         int color = state->m_flash ? 0 : BIT(data, bit);
258        for (bit = 0; bit < 8; bit++)
259        {
260            int x = (column * 8) + bit;
261            int color = state->m_flash ? 0 : BIT(data, bit);
262262
263         *BITMAP_ADDR16(bitmap, y, x) = color;
264      }
265   }
263            *BITMAP_ADDR16(bitmap, y, x) = color;
264        }
265    }
266266}
267267
268268static MC6845_ON_UPDATE_ADDR_CHANGED( grip5_update_addr_changed )
r12348r12349
294294/*
295295static const mc6845_interface grip5_crtc_intf =
296296{
297   SCREEN_TAG,
298   8,
299   NULL,
300   grip5_update_row,
301   NULL,
302   DEVCB_DEVICE_LINE(Z80STI_TAG, z80sti_i1_w),
303   DEVCB_DEVICE_LINE(Z80STI_TAG, z80sti_i2_w),
304   DEVCB_NULL,
305   DEVCB_NULL,
306   grip5_update_addr_changed
297    SCREEN_TAG,
298    8,
299    NULL,
300    grip5_update_row,
301    NULL,
302    DEVCB_DEVICE_LINE(Z80STI_TAG, z80sti_i1_w),
303    DEVCB_DEVICE_LINE(Z80STI_TAG, z80sti_i2_w),
304    DEVCB_NULL,
305    DEVCB_NULL,
306    grip5_update_addr_changed
307307};
308308*/
309309
r12348r12349
514514
515515   // devices
516516   MCFG_MC6845_ADD(MC6845_TAG, MC6845, XTAL_16MHz/4, crtc_intf)
517//   MCFG_MC6845_ADD(HD6345_TAG, HD6345, XTAL_16MHz/4, grip5_crtc_intf)
517//  MCFG_MC6845_ADD(HD6345_TAG, HD6345, XTAL_16MHz/4, grip5_crtc_intf)
518518   MCFG_I8255A_ADD(I8255A_TAG, ppi_intf)
519519   MCFG_Z80STI_ADD(Z80STI_TAG, XTAL_16MHz/4, sti_intf)
520520   MCFG_CENTRONICS_ADD(CENTRONICS_TAG, standard_centronics)
r12348r12349
754754   // allocate keyboard scan timer
755755   m_kb_timer = timer_alloc();
756756   m_kb_timer->adjust(attotime::zero, 0, attotime::from_hz(2500));
757   
757
758758   // register for state saving
759759   save_item(NAME(m_vol0));
760760   save_item(NAME(m_vol1));
r12348r12349
769769/*
770770void grip5_state::machine_start()
771771{
772   grip_device::machine_start();
772    grip_device::machine_start();
773773
774   // setup ROM banking
775   memory_configure_bank(machine(), "eprom", 0, 2, machine().region(Z80_TAG)->base(), 0x4000);
776   memory_set_bank(this, "eprom", 0);
774    // setup ROM banking
775    memory_configure_bank(machine(), "eprom", 0, 2, machine().region(Z80_TAG)->base(), 0x4000);
776    memory_set_bank(this, "eprom", 0);
777777
778   // register for state saving
779   save_item(NAME(m_dpage));
778    // register for state saving
779    save_item(NAME(m_dpage));
780780}
781781*/
782782
r12348r12349
824824
825825
826826//-------------------------------------------------
827//  flash_w -
827//  flash_w -
828828//-------------------------------------------------
829829
830830WRITE8_MEMBER( grip_device::flash_w )
r12348r12349
955955
956956WRITE8_MEMBER( grip5_state::eprom_w )
957957{
958   memory_set_bank(machine(), "eprom", BIT(data, 0));
958    memory_set_bank(machine(), "eprom", BIT(data, 0));
959959}
960960
961961
r12348r12349
965965
966966WRITE8_MEMBER( grip5_state::dpage_w )
967967{
968   m_dpage = BIT(data, 7);
968    m_dpage = BIT(data, 7);
969969}
970970*/
971971
r12348r12349
977977UINT8 grip_device::ecbbus_io_r(offs_t offset)
978978{
979979   UINT8 data = 0;
980   
980
981981   if ((offset & 0xfe) == m_base)
982982   {
983983      if (BIT(offset, 0))
r12348r12349
993993         data = m_ppi_pc;
994994      }
995995   }
996   
997   return data;
996
997   return data;
998998};
999999
10001000
src/mess/machine/comx_eb.c
r12348r12349
169169void comx_eb_device::set_int(const char *tag, int state)
170170{
171171   int slot = 0;
172   
172
173173   for (slot = 0; slot < MAX_EB_SLOTS; slot++)
174174   {
175175      if (!strcmp(tag, m_slot[slot]->tag())) break;
176176   }
177177
178178   assert(slot < MAX_EB_SLOTS);
179   
179
180180   m_int[slot] = state;
181181
182182   int irq = CLEAR_LINE;
183   
183
184184   for (slot = 0; slot < MAX_EB_SLOTS; slot++)
185185   {
186186      irq |= m_int[slot];
r12348r12349
197197void comx_eb_device::set_ef4(const char *tag, int state)
198198{
199199   int slot = 0;
200   
200
201201   for (slot = 0; slot < MAX_EB_SLOTS; slot++)
202202   {
203203      if (!strcmp(tag, m_slot[slot]->tag())) break;
204204   }
205205
206206   assert(slot < MAX_EB_SLOTS);
207   
207
208208   m_ef4[slot] = state;
209   
209
210210   int ef4 = CLEAR_LINE;
211   
211
212212   for (slot = 0; slot < MAX_EB_SLOTS; slot++)
213213   {
214214      ef4 |= m_ef4[slot];
r12348r12349
248248   m_slot[1] = dynamic_cast<comx_expansion_slot_device *>(subdevice(SLOT2_TAG));
249249   m_slot[2] = dynamic_cast<comx_expansion_slot_device *>(subdevice(SLOT3_TAG));
250250   m_slot[3] = dynamic_cast<comx_expansion_slot_device *>(subdevice(SLOT4_TAG));
251   
251
252252   for (int slot = 0; slot < MAX_EB_SLOTS; slot++)
253253   {
254254      m_int[slot] = CLEAR_LINE;
255255      m_ef4[slot] = CLEAR_LINE;
256256   }
257   
257
258258   m_rom = subregion("e000")->base();
259259}
260260
r12348r12349
291291UINT8 comx_eb_device::comx_mrd_r(offs_t offset, int *extrom)
292292{
293293   UINT8 data = 0;
294   
294
295295   if (offset >= 0x1000 && offset < 0x1800)
296296   {
297297      data = m_rom[offset & 0x7ff];
r12348r12349
311311         }
312312      }
313313   }
314   
314
315315   return data;
316316}
317317
r12348r12349
339339UINT8 comx_eb_device::comx_io_r(offs_t offset)
340340{
341341   UINT8 data = 0;
342   
342
343343   for (int slot = 0; slot < MAX_EB_SLOTS; slot++)
344344   {
345345      if (BIT(m_select, slot) && m_slot[slot] != NULL)
r12348r12349
361361   if (offset == 1)
362362   {
363363      m_select = data >> 1;
364     
364
365365      for (int slot = 0; slot < MAX_EB_SLOTS; slot++)
366366      {
367367         if (m_slot[slot] != NULL)
r12348r12349
370370         }
371371      }
372372   }
373   
373
374374   for (int slot = 0; slot < MAX_EB_SLOTS; slot++)
375375   {
376376      if (BIT(m_select, slot) && m_slot[slot] != NULL)
r12348r12349
388388bool comx_eb_device::comx_screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect)
389389{
390390   bool value = false;
391   
391
392392   for (int slot = 0; slot < MAX_EB_SLOTS; slot++)
393393   {
394394      if (BIT(m_select, slot) && m_slot[slot] != NULL)
src/mess/machine/ecb_grip.h
r12348r12349
3535   virtual const rom_entry *device_rom_region() const;
3636   virtual machine_config_constructor device_mconfig_additions() const;
3737   virtual ioport_constructor device_input_ports() const;
38   
38
3939   // not really public
4040   DECLARE_WRITE8_MEMBER( vol0_w );
4141   DECLARE_WRITE8_MEMBER( vol1_w );
r12348r12349
9191   int m_lps;            // light pen sense
9292   int m_page;            // video page
9393   int m_flash;         // flash
94   
94
9595   // ECB bus state
9696   UINT8 m_base;         // ECB base address
9797   UINT8 m_ppi_pa;         // PPI port A data
r12348r12349
103103
104104
105105   /*
106   required_device<hd6345_device> m_crtc;
107   DECLARE_WRITE8_MEMBER( eprom_w );
108   DECLARE_WRITE8_MEMBER( dpage_w );
106    required_device<hd6345_device> m_crtc;
107    DECLARE_WRITE8_MEMBER( eprom_w );
108    DECLARE_WRITE8_MEMBER( dpage_w );
109109
110   // video state
111   int m_dpage;         // displayed video page
112   */
113   
110    // video state
111    int m_dpage;            // displayed video page
112    */
114113
115114
115
116116// device type definition
117117extern const device_type ECB_GRIP21;
118118
src/mess/machine/comx_eb.h
r12348r12349
6969   virtual UINT8 comx_io_r(offs_t offset);
7070   virtual void comx_io_w(offs_t offset, UINT8 data);
7171   virtual bool comx_screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
72   
72
7373   // internal state
7474   comx_expansion_slot_device *m_owner_slot;
7575
7676   UINT8 *m_rom;            // program ROM
77   
77
7878   comx_expansion_slot_device   *m_slot[MAX_EB_SLOTS];
7979   int m_int[MAX_EB_SLOTS];
8080   int m_ef4[MAX_EB_SLOTS];
81   
81
8282   UINT8 m_select;
8383};
8484
src/mess/machine/cococart.c
r12348r12349
5858   }
5959
6060   m_cart_line.timer_index     = 0;
61   m_cart_line.delay          = 0;   
61   m_cart_line.delay          = 0;
6262   m_cart_line.value          = COCOCART_LINE_VALUE_CLEAR;
6363   m_cart_line.q_count          = 0;
6464   m_cart_line.callback.resolve(m_cart_callback, *this);
r12348r12349
7676   m_halt_line.value          = COCOCART_LINE_VALUE_CLEAR;
7777   m_halt_line.q_count          = 0;
7878   m_halt_line.callback.resolve(m_halt_callback, *this);
79   
79
8080   m_cart = dynamic_cast<device_cococart_interface *>(get_card_device());
8181}
8282
r12348r12349
102102       memset(&m_nmi_callback,  0, sizeof(m_nmi_callback));
103103       memset(&m_halt_callback, 0, sizeof(m_halt_callback));
104104   }
105   
105
106106   // set brief and instance name
107107   update_names();
108108}
r12348r12349
307307}
308308
309309
310bool cococart_slot_device::call_load()
311{   
310bool cococart_slot_device::call_load()
311{
312312   if (m_cart) {
313313      offs_t read_length = 0;
314314      if (software_entry() == NULL)
315315      {
316316         read_length = fread(m_cart->get_cart_base(), 0x8000);
317      }         
317      }
318318      else
319319      {
320320         read_length = get_software_region_length("rom");
321321         memcpy(m_cart->get_cart_base(), get_software_region("rom"), read_length);
322      }     
322      }
323323      while(read_length < 0x8000)
324324      {
325325         offs_t len = MIN(read_length, 0x8000 - read_length);
src/mess/includes/pc1512.h
r12348r12349
102102   void update_fdc_tc();
103103   void update_ack();
104104   void set_fdc_dsr(UINT8 data);
105   
106//   DECLARE_READ8_MEMBER( videoram_r );
107//   DECLARE_WRITE8_MEMBER( videoram_w );
105
106//  DECLARE_READ8_MEMBER( videoram_r );
107//  DECLARE_WRITE8_MEMBER( videoram_w );
108108   DECLARE_READ8_MEMBER( system_r );
109109   DECLARE_WRITE8_MEMBER( system_w );
110110   DECLARE_READ8_MEMBER( mouse_r );
r12348r12349
115115   DECLARE_WRITE8_MEMBER( printer_w );
116116   DECLARE_READ8_MEMBER( fdc_r );
117117   DECLARE_WRITE8_MEMBER( fdc_w );
118//   DECLARE_READ8_MEMBER( vdu_r );
119//   DECLARE_WRITE8_MEMBER( vdu_w );
118//  DECLARE_READ8_MEMBER( vdu_r );
119//  DECLARE_WRITE8_MEMBER( vdu_w );
120120   DECLARE_WRITE_LINE_MEMBER( kbdata_w );
121121   DECLARE_WRITE_LINE_MEMBER( kbclk_w );
122122   DECLARE_WRITE_LINE_MEMBER( pit1_w );
r12348r12349
135135   DECLARE_WRITE_LINE_MEMBER( dack1_w );
136136   DECLARE_WRITE_LINE_MEMBER( dack2_w );
137137   DECLARE_WRITE_LINE_MEMBER( dack3_w );
138   
138
139139   // system status register
140140   int m_pit1;
141141   int m_pit2;
142142   UINT8 m_status1;
143143   UINT8 m_status2;
144144   UINT8 m_port61;
145   
145
146146   // interrupt state
147147   int m_nmi_enable;
148148
r12348r12349
151151   int m_kb_bits;
152152   int m_kbclk;
153153   int m_kbdata;
154   
154
155155   // mouse state
156156   UINT8 m_mouse_x;
157157   UINT8 m_mouse_y;
r12348r12349
160160   UINT8 m_dma_page[4];
161161   int m_dma_channel;
162162   int m_dreq0;
163   
163
164164   // floppy state
165165   int m_nden;
166166   int m_dint;
167167   int m_ddrq;
168168   UINT8 m_fdc_dsr;
169169   int m_neop;
170   
170
171171   // printer state
172172   int m_ack_int_enable;
173173   int m_ack;
174174   UINT8 m_printer_data;
175175   UINT8 m_printer_control;
176   
176
177177   // video state
178178   UINT8 *m_video_ram;
179179   UINT8 *m_char_rom;
180180   int m_toggle;
181   
181
182182   // sound state
183183   int m_speaker_drive;
184184};
src/mess/includes/at.h
r12348r12349
2626   device_t *m_pit8254;
2727   device_t *m_speaker;
2828   isa16_device *m_isabus;
29   
29
3030   int m_poll_delay;
3131   UINT8 m_at_spkrdata;
3232   UINT8 m_at_speaker_input;
src/mess/includes/comx35.h
r12348r12349
6666   virtual bool screen_update(screen_device &screen, bitmap_t &bitmap, const rectangle &cliprect);
6767
6868   void check_interrupt();
69   
69
7070   DECLARE_READ8_MEMBER( mem_r );
7171   DECLARE_WRITE8_MEMBER( mem_w );
7272   DECLARE_READ8_MEMBER( io_r );
src/mess/video/stic.h
r12348r12349
6767};
6868
6969/****************************************************************************
70 *                                                         *
71 * MXR      0000[..0007]   MOB X REGISTER               RW            *
72 *                                                         *
73 * (MSB)                              (LSB)                  *
74 * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+                  *
75 * | | | | | |XSIZE|VIS|COL|X7|X6|X5|X4|X3|X2|X1|X0|                  *
76 * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+                  *
77 *                                                         *
78 * Xn      x-position                  [0..255]                  *
79 * COL      collision detection            [1=enable]                  *
80 * VIS      visibility                  [1=visible]                  *
81 * XSIZE   double width               [1=double]                  *
82 *                                                         *
70 *                                                                          *
71 * MXR      0000[..0007]    MOB X REGISTER                  RW              *
72 *                                                                          *
73 * (MSB)                                       (LSB)                        *
74 * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+                        *
75 * | | | | | |XSIZE|VIS|COL|X7|X6|X5|X4|X3|X2|X1|X0|                        *
76 * +-+-+-+-+-+-----+---+---+--+--+--+--+--+--+--+--+                        *
77 *                                                                          *
78 * Xn       x-position                      [0..255]                        *
79 * COL      collision detection             [1=enable]                      *
80 * VIS      visibility                      [1=visible]                     *
81 * XSIZE    double width                    [1=double]                      *
82 *                                                                          *
8383 ****************************************************************************
84 *                                                         *
85 *   NOTES                                                   *
86 *                                                         *
87 *   1. If X=0, the sprite is not visible and does not register collisions.   *
88 *   2. The horizontal handle is 8 pixels from the left of the sprite,      *
89 *      regardless of width.                                       *
90 *                                                         *
84 *                                                                          *
85 *  NOTES                                                                   *
86 *                                                                          *
87 *  1. If X=0, the sprite is not visible and does not register collisions.  *
88 *  2. The horizontal handle is 8 pixels from the left of the sprite,       *
89 *     regardless of width.                                                 *
90 *                                                                          *
9191 ****************************************************************************/
9292#define STIC_MXR               0x0000
9393
r12348r12349
9797#define STIC_MXR_X               0x00FF
9898
9999/****************************************************************************
100 *                                                         *
101 * MYR      0008[..000F]   MOB Y REGISTER               RW            *
102 *                                                         *
103 * (MSB)                                     (LSB)            *
104 * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+            *
105 * | | | | |YFLIP|XFLIP|YSIZE|YFULL|YRES|Y6|Y5|Y4|Y3|Y2|Y1|Y0|            *
106 * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+            *
107 *                                                         *
108 * Yn      y-position                  [0..127]                  *
109 * YRES      y-resolution               [0=8 scanlines,1=16 scanlines]   *
110 * YFULL   double scanline height         [1=double]                  *
111 * YSIZE   quadruple scanline height      [1=quadruple]               *
112 * XFLIP   horizontally flip image         [1=flip]                  *
113 * YFLIP   vertically flip image         [1=flip]                  *
114 *                                                         *
100 *                                                                          *
101 * MYR      0008[..000F]    MOB Y REGISTER                  RW              *
102 *                                                                          *
103 * (MSB)                                                 (LSB)              *
104 * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+              *
105 * | | | | |YFLIP|XFLIP|YSIZE|YFULL|YRES|Y6|Y5|Y4|Y3|Y2|Y1|Y0|              *
106 * +-+-+-+-+-----+-----+-----+-----+----+--+--+--+--+--+--+--+              *
107 *                                                                          *
108 * Yn       y-position                      [0..127]                        *
109 * YRES     y-resolution                    [0=8 scanlines,1=16 scanlines]  *
110 * YFULL    double scanline height          [1=double]                      *
111 * YSIZE    quadruple scanline height       [1=quadruple]                   *
112 * XFLIP    horizontally flip image         [1=flip]                        *
113 * YFLIP    vertically flip image           [1=flip]                        *
114 *                                                                          *
115115 ****************************************************************************
116 *                                                         *
117 *   NOTES                                                   *
118 *                                                         *
119 *   1. A sprite with YRES=1 will display two cards.                     *
120 *   2. A sprite with YFULL=0 and YSIZE=0 will have scanlines half the      *
121 *      height of a background card.                                 *
122 *   3, The minimum size of a sprite is 8x8 (XSIZE=YRES=YSIZE=YFULL=0).      *
123 *   4. The maximum size of a sprite is 16x128 (XSIZE=YRES=YSIZE=YFULL=1).   *
124 *   5. The Y-position is measured in double height scanlines.            *
125 *   6. The vertical handle is 8 double height scanlines from the top of the   *
126 *      sprite, regardless of height.                              *
127 *                                                         *
116 *                                                                          *
117 *  NOTES                                                                   *
118 *                                                                          *
119 *  1. A sprite with YRES=1 will display two cards.                         *
120 *  2. A sprite with YFULL=0 and YSIZE=0 will have scanlines half the       *
121 *     height of a background card.                                         *
122 *  3, The minimum size of a sprite is 8x8 (XSIZE=YRES=YSIZE=YFULL=0).      *
123 *  4. The maximum size of a sprite is 16x128 (XSIZE=YRES=YSIZE=YFULL=1).   *
124 *  5. The Y-position is measured in double height scanlines.               *
125 *  6. The vertical handle is 8 double height scanlines from the top of the *
126 *     sprite, regardless of height.                                        *
127 *                                                                          *
128128 ****************************************************************************/
129129#define STIC_MYR               0x0008
130130
r12348r12349
136136#define STIC_MYR_Y               0x007F
137137
138138/****************************************************************************
139 *                                                         *
140 * SAR      0010[..0017]   MOB ATTRIBUTE REGISTER         RW            *
141 *                                                         *
142 * (MSB)                               (LSB)                  *
143 * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+                  *
144 * | | |PRI|FG3|SEL| | |C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|                  *
145 * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+                  *
146 *                                                         *
147 * FGn      foreground color            [0..15]                     *
148 * Cn      card #                     [0..63]                     *
149 * SEL      card memory   select            [0=GROM, 1=GRAM]            *
150 * PRI      sprite priority               [1=behind set background bit]   *
151 *                                                         *
139 *                                                                          *
140 * SAR      0010[..0017]    MOB ATTRIBUTE REGISTER          RW              *
141 *                                                                          *
142 * (MSB)                                         (LSB)                      *
143 * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+                      *
144 * | | |PRI|FG3|SEL| | |C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|                      *
145 * +-+-+---+---+---+-+-+--+--+--+--+--+--+---+---+---+                      *
146 *                                                                          *
147 * FGn      foreground color                [0..15]                         *
148 * Cn       card #                          [0..63]                         *
149 * SEL      card memory select              [0=GROM, 1=GRAM]                *
150 * PRI      sprite priority                 [1=behind set background bit]   *
151 *                                                                          *
152152 ****************************************************************************/
153153#define STIC_MAR               0x0010
154154
r12348r12349
159159#define STIC_MAR_FG20            0x0007
160160
161161/****************************************************************************
162 *                                                         *
163 * SCR      0018[..001F]   MOB COLLISION REGISTER         RW            *
164 *                                                         *
165 * (MSB)                                        (LSB)         *
166 * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+         *
167 * | | | | | | |BRDR|BKGD|SPR7|SPR6|SPR5|SPR4|SPR3|SPR2|SPR1|SPR0|         *
168 * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+         *
169 *                                                         *
170 * SPRn         1=collision with sprite #n                           *
171 * BKGD         1=collsion with set background bit                     *
172 * BRDR         1=collision with screen border                        *
173 *                                                         *
162 *                                                                          *
163 * SCR      0018[..001F]    MOB COLLISION REGISTER          RW              *
164 *                                                                          *
165 * (MSB)                                                     (LSB)          *
166 * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+          *
167 * | | | | | | |BRDR|BKGD|SPR7|SPR6|SPR5|SPR4|SPR3|SPR2|SPR1|SPR0|          *
168 * +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+          *
169 *                                                                          *
170 * SPRn         1=collision with sprite #n                                  *
171 * BKGD         1=collsion with set background bit                          *
172 * BRDR         1=collision with screen border                              *
173 *                                                                          *
174174 ****************************************************************************
175 *                                                         *
176 *   NOTES                                                   *
177 *                                                         *
178 *   1. All collisions are latched.  Successive reads read from the latch.   *
179 *      A write will reset the latch.                              *
180 *   2. Sprites with VIS=0 register collisions.                        *
181 *   3. Sprites with X=0 do not register collisions.                     *
182 *   4. Two overlapping sprites with different priorities, one completely   *
183 *      hidden behind the background, still register a collision.         *
184 *                                                         *
175 *                                                                          *
176 *  NOTES                                                                   *
177 *                                                                          *
178 *  1. All collisions are latched.  Successive reads read from the latch.   *
179 *     A write will reset the latch.                                        *
180 *  2. Sprites with VIS=0 register collisions.                              *
181 *  3. Sprites with X=0 do not register collisions.                         *
182 *  4. Two overlapping sprites with different priorities, one completely    *
183 *     hidden behind the background, still register a collision.            *
184 *                                                                          *
185185 ****************************************************************************/
186186#define STIC_MCR               0x0018
187187
r12348r12349
197197#define STIC_MCR_SPR0            0x0001
198198
199199/****************************************************************************
200 *                                                         *
201 * DER      0021         DISPLAY ENABLE REGISTER         W            *
202 *                                                         *
203 * (MSB)                  (LSB)                              *
204 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                              *
205 * | | | | | | | | | | | | | | | | |                              *
206 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                              *
207 *                                                         *
200 *                                                                          *
201 * DER      0021            DISPLAY ENABLE REGISTER         W               *
202 *                                                                          *
203 * (MSB)                       (LSB)                                        *
204 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                        *
205 * | | | | | | | | | | | | | | | | |                                        *
206 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                        *
207 *                                                                          *
208208 ****************************************************************************
209 *                                                         *
210 *   NOTES                                                   *
211 *                                                         *
212 *   1. Any write during VBLANK enables STIC output.                     *
213 *                                                         *
209 *                                                                          *
210 *  NOTES                                                                   *
211 *                                                                          *
212 *  1. Any write during VBLANK enables STIC output.                         *
213 *                                                                          *
214214 ****************************************************************************/
215215#define STIC_DER               0x0020
216216
217217/****************************************************************************
218 *                                                         *
219 * GMR      0021         GRAPHICS MODE REGISTER         RW            *
220 *                                                         *
221 * (MSB)                  (LSB)                              *
222 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                              *
223 * | | | | | | | | | | | | | | | | |                              *
224 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                              *
225 *                                                         *
218 *                                                                          *
219 * GMR      0021            GRAPHICS MODE REGISTER          RW              *
220 *                                                                          *
221 * (MSB)                       (LSB)                                        *
222 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                        *
223 * | | | | | | | | | | | | | | | | |                                        *
224 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                        *
225 *                                                                          *
226226 ****************************************************************************
227 *                                                         *
228 *   NOTES                                                   *
229 *                                                         *
230 *   1. Any write during VBLANK enables FOREGROUND/BACKGROUND mode.         *
231 *   2. Any read during VBLANK enables COLOR STACK/COLORED SQUARES mode.      *
232 *                                                         *
227 *                                                                          *
228 *  NOTES                                                                   *
229 *                                                                          *
230 *  1. Any write during VBLANK enables FOREGROUND/BACKGROUND mode.          *
231 *  2. Any read during VBLANK enables COLOR STACK/COLORED SQUARES mode.     *
232 *                                                                          *
233233 ****************************************************************************/
234234#define STIC_GMR               0x0021
235235
236236/****************************************************************************
237 *                                                         *
238 * CSR      0028         COLOR STACK REGISTER         RW            *
239 *                                                         *
240 * (MSB)                        (LSB)                        *
241 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                        *
242 * | | | | | | | | | | | | |BG3|BG2|BG1|BG0|                        *
243 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                        *
244 *                                                         *
245 * BGn      background color            [0..15]                     *
246 *                                                         *
237 *                                                                          *
238 * CSR      0028            COLOR STACK REGISTER            RW              *
239 *                                                                          *
240 * (MSB)                               (LSB)                                *
241 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                                *
242 * | | | | | | | | | | | | |BG3|BG2|BG1|BG0|                                *
243 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                                *
244 *                                                                          *
245 * BGn      background color                [0..15]                         *
246 *                                                                          *
247247 ****************************************************************************/
248248#define STIC_CSR               0x0028
249249
250250#define STIC_CSR_BG               0x000F
251251
252252/****************************************************************************
253 *                                                         *
254 * BCR      002C         BORDER COLOR REGISTER         RW            *
255 *                                                         *
256 * (MSB)                        (LSB)                        *
257 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                        *
258 * | | | | | | | | | | | | |BC3|BC2|BC1|BC0|                        *
259 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                        *
260 *                                                         *
261 * BCn      border color               [0..15]                     *
262 *                                                         *
253 *                                                                          *
254 * BCR      002C            BORDER COLOR REGISTER           RW              *
255 *                                                                          *
256 * (MSB)                               (LSB)                                *
257 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                                *
258 * | | | | | | | | | | | | |BC3|BC2|BC1|BC0|                                *
259 * +-+-+-+-+-+-+-+-+-+-+-+-+---+---+---+---+                                *
260 *                                                                          *
261 * BCn      border color                    [0..15]                         *
262 *                                                                          *
263263 ****************************************************************************
264 *                                                         *
265 *   NOTES                                                   *
266 *                                                         *
267 *   1. Affects overscan, and column and row blockouts.                  *
268 *                                                         *
264 *                                                                          *
265 *  NOTES                                                                   *
266 *                                                                          *
267 *  1. Affects overscan, and column and row blockouts.                      *
268 *                                                                          *
269269 ****************************************************************************/
270270#define STIC_BCR               0x002C
271271
272272#define STIC_BCR_BC               0x000F
273273
274274/****************************************************************************
275 *                                                         *
276 * HDR      0030         HORIZONTAL DELAY REGISTER      RW            *
277 *                                                         *
278 * (MSB)                        (LSB)                        *
279 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                        *
280 * | | | | | | | | | | | | | |DEL2|DEL1|DEL0|                        *
281 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                        *
282 *                                                         *
283 * DELn      horizontal delay            [0..7]                     *
284 *                                                         *
275 *                                                                          *
276 * HDR      0030            HORIZONTAL DELAY REGISTER       RW              *
277 *                                                                          *
278 * (MSB)                                (LSB)                               *
279 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                               *
280 * | | | | | | | | | | | | | |DEL2|DEL1|DEL0|                               *
281 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                               *
282 *                                                                          *
283 * DELn     horizontal delay                [0..7]                          *
284 *                                                                          *
285285 ****************************************************************************
286 *                                                         *
287 *   NOTES                                                   *
288 *                                                         *
289 *   1. Affects both BACKTAB and MOBs.                              *
290 *                                                         *
286 *                                                                          *
287 *  NOTES                                                                   *
288 *                                                                          *
289 *  1. Affects both BACKTAB and MOBs.                                       *
290 *                                                                          *
291291 ****************************************************************************/
292292#define STIC_HDR               0x0030
293293
294294#define STIC_HDR_DEL            0x0007
295295
296296/****************************************************************************
297 *                                                         *
298 * STIC_VDR      0030         VERTICAL DELAY REGISTER         RW         *
299 *                                                         *
300 * (MSB)                        (LSB)                        *
301 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                        *
302 * | | | | | | | | | | | | | |DEL2|DEL1|DEL0|                        *
303 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                        *
304 *                                                         *
305 * DELn      vertical delay               [0..7]                     *
306 *                                                         *
297 *                                                                          *
298 * STIC_VDR     0030            VERTICAL DELAY REGISTER         RW          *
299 *                                                                          *
300 * (MSB)                                (LSB)                               *
301 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                               *
302 * | | | | | | | | | | | | | |DEL2|DEL1|DEL0|                               *
303 * +-+-+-+-+-+-+-+-+-+-+-+-+-+----+----+----+                               *
304 *                                                                          *
305 * DELn     vertical delay                  [0..7]                          *
306 *                                                                          *
307307 ****************************************************************************
308 *                                                         *
309 *   NOTES                                                   *
310 *                                                         *
311 *   1. Affects both BACKTAB and MOBs.                              *
312 *                                                         *
308 *                                                                          *
309 *  NOTES                                                                   *
310 *                                                                          *
311 *  1. Affects both BACKTAB and MOBs.                                       *
312 *                                                                          *
313313 ****************************************************************************/
314314#define STIC_VDR               0x0031
315315
316316#define STIC_VDR_DEL            0x0007
317317
318318/****************************************************************************
319 *                                                         *
320 * STIC_CBR      0032         CARD BLOCKOUT REGISTER         RW         *
321 *                                                         *
322 * (MSB)                     (LSB)                           *
323 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+                           *
324 * | | | | | | | | | | | | | | |ROW|COL|                           *
325 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+                           *
326 *                                                         *
327 * COL      blockout first card column      [1=blockout]               *
328 * ROW      blockout first card row         [1=blockout]               *
329 *                                                         *
319 *                                                                          *
320 * STIC_CBR     0032            CARD BLOCKOUT REGISTER          RW          *
321 *                                                                          *
322 * (MSB)                           (LSB)                                    *
323 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+                                    *
324 * | | | | | | | | | | | | | | |ROW|COL|                                    *
325 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+---+                                    *
326 *                                                                          *
327 * COL      blockout first card column      [1=blockout]                    *
328 * ROW      blockout first card row         [1=blockout]                    *
329 *                                                                          *
330330 ****************************************************************************
331 *                                                         *
332 *   NOTES                                                   *
333 *                                                         *
334 *   1. Generally used in conjunction with HDR and VDR registers, to achieve   *
335 *      smooth scrolling.                                       *
336 *                                                         *
331 *                                                                          *
332 *  NOTES                                                                   *
333 *                                                                          *
334 *  1. Generally used in conjunction with HDR and VDR registers, to achieve *
335 *     smooth scrolling.                                                    *
336 *                                                                          *
337337 ****************************************************************************/
338338#define STIC_CBR               0x0032
339339
r12348r12349
348348#define STIC_BACKTAB_HEIGHT         12
349349
350350/****************************************************************************
351 *                                                         *
352 * FOREGROUND/BACKGROUND MODE                                    *
353 *                                                         *
354 * (MSB)                                  (LSB)               *
355 * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+               *
356 * | | |BG2|BG3|SEL|BG1|BG0|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|               *
357 * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+               *
358 *                                                         *
359 * FGn      foreground color            [0..7]                     *
360 * Cn      card #                     [0..63]                     *
361 * SEL      card memory   select            [0=GROM, 1=GRAM]            *
362 * BGn      background color            [0..15]                     *
363 *                                                         *
351 *                                                                          *
352 * FOREGROUND/BACKGROUND MODE                                               *
353 *                                                                          *
354 * (MSB)                                             (LSB)                  *
355 * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+                  *
356 * | | |BG2|BG3|SEL|BG1|BG0|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|                  *
357 * +-+-+---+---+---+---+---+--+--+--+--+--+--+---+---+---+                  *
358 *                                                                          *
359 * FGn      foreground color                [0..7]                          *
360 * Cn       card #                          [0..63]                         *
361 * SEL      card memory select              [0=GROM, 1=GRAM]                *
362 * BGn      background color                [0..15]                         *
363 *                                                                          *
364364 ****************************************************************************/
365365#define STIC_FBM_BG2            0x2000
366366#define STIC_FBM_BG310            0x1600
r12348r12349
369369#define STIC_FBM_FG               0x0007
370370
371371/****************************************************************************
372 *                                                         *
373 * COLOR STACK MODE                                             *
374 *                                                         *
375 * (MSB)                                 (LSB)               *
376 * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+               *
377 * | | |ADV|FG3|SEL|C7|C6|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|               *
378 * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+               *
379 *                                                         *
380 * FGn      foreground color            [0..15]                     *
381 * Cn      card #                     [GROM=0..212, GRAM=0..63]      *
382 * SEL      card memory   select            [0=GROM, 1=GRAM]            *
383 * ADV      advance color stack index      [1=advance]                  *
384 *                                                         *
372 *                                                                          *
373 * COLOR STACK MODE                                                         *
374 *                                                                          *
375 * (MSB)                                           (LSB)                    *
376 * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+                    *
377 * | | |ADV|FG3|SEL|C7|C6|C5|C4|C3|C2|C1|C0|FG2|FG1|FG0|                    *
378 * +-+-+---+---+---+--+--+--+--+--+--+--+--+---+---+---+                    *
379 *                                                                          *
380 * FGn      foreground color                [0..15]                         *
381 * Cn       card #                          [GROM=0..212, GRAM=0..63]       *
382 * SEL      card memory select              [0=GROM, 1=GRAM]                *
383 * ADV      advance color stack index       [1=advance]                     *
384 *                                                                          *
385385 ****************************************************************************
386 *                                                         *
387 * NOTES:                                                   *
388 *                                                         *
389 * 1. When FG3=1 and SEL=0, COLORED SQUARES MODE is enabled.            *
390 * 2. When SEL=1, C7 and C6 can be used as user-defined flags.            *
391 *                                                         *
386 *                                                                          *
387 * NOTES:                                                                   *
388 *                                                                          *
389 * 1. When FG3=1 and SEL=0, COLORED SQUARES MODE is enabled.                *
390 * 2. When SEL=1, C7 and C6 can be used as user-defined flags.              *
391 *                                                                          *
392392 ****************************************************************************/
393393#define STIC_CSTM_ADV            0x2000
394394#define STIC_CSTM_FG3            0x1000
r12348r12349
401401#define STIC_CSTM_C               (STIC_CSTM_C7|STIC_CSTM_C6|STIC_CSTM_C50)
402402
403403/****************************************************************************
404 *                                                         *
405 * COLORED SQUARES MODE                                          *
406 *                                                         *
407 * (MSB)                           (LSB)                     *
408 * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+                     *
409 * | | |D2|1|0|D1|D0|C2|C1|C0|B2|B1|B0|A2|A1|A0|                     *
410 * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+                     *
411 *                                                         *
412 * An      color a                     [0..7]                     *
413 * Bn      color b                     [0..7]                     *
414 * Cn      color c                     [0..7]                     *
415 * Dn      color d                     [0..7]                     *
416 *                                                         *
404 *                                                                          *
405 * COLORED SQUARES MODE                                                     *
406 *                                                                          *
407 * (MSB)                                   (LSB)                            *
408 * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+                            *
409 * | | |D2|1|0|D1|D0|C2|C1|C0|B2|B1|B0|A2|A1|A0|                            *
410 * +-+-+--+-+-+--+--+--+--+--+--+--+--+--+--+--+                            *
411 *                                                                          *
412 * An       color a                         [0..7]                          *
413 * Bn       color b                         [0..7]                          *
414 * Cn       color c                         [0..7]                          *
415 * Dn       color d                         [0..7]                          *
416 *                                                                          *
417417 ****************************************************************************
418 *                                                         *
419 * NOTES:                                                   *
420 *                                                         *
421 * 1. Each color corresponds to one of the following 4 x 4 squares:         *
422 *                                                         *
423 *      +---+---+                                             *
424 *      | a | b |                                             *
425 *      +---+---+                                             *
426 *      | c | d |                                             *
427 *      +---+---+                                             *
428 *                                                         *
429 * 2. When color 7 is specified, the color is taken from the color stack.   *
430 *                                                         *
418 *                                                                          *
419 * NOTES:                                                                   *
420 *                                                                          *
421 * 1. Each color corresponds to one of the following 4 x 4 squares:         *
422 *                                                                          *
423 *      +---+---+                                                           *
424 *      | a | b |                                                           *
425 *      +---+---+                                                           *
426 *      | c | d |                                                           *
427 *      +---+---+                                                           *
428 *                                                                          *
429 * 2. When color 7 is specified, the color is taken from the color stack.   *
430 *                                                                          *
431431 ****************************************************************************/
432432#define STIC_CSQM_D2            0x2000
433433#define STIC_CSQM_D10            0x0600
src/mess/video/mac.c
r12348r12349
141141
142142      for (x = 0; x < 640; x += 16)
143143      {
144         word = video_ram[((y * 640)/16) + ((x/16)^1)];
144         word = video_ram[((y * 640)/16) + ((x/16)^1)];
145145         for (b = 0; b < 16; b++)
146146         {
147147            line[x + b] = (word >> (15 - b)) & 0x0001;
src/mess/video/isa_mda.h
r12348r12349
2424        // construction/destruction
2525        isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2626      isa8_mda_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
27     
27
2828      // optional information overrides
2929      virtual machine_config_constructor device_mconfig_additions() const;
3030      virtual const rom_entry *device_rom_region() const;
src/mess/video/nubus_48gc.c
r12348r12349
2323
2424ROM_START( gc48 )
2525   ROM_REGION(0x8000, GC48_ROM_REGION, 0)
26   ROM_LOAD( "3410801.bin",  0x0000, 0x8000, CRC(e283da91) SHA1(4ae21d6d7bbaa6fc7aa301bee2b791ed33b1dcf9) )
26   ROM_LOAD( "3410801.bin",  0x0000, 0x8000, CRC(e283da91) SHA1(4ae21d6d7bbaa6fc7aa301bee2b791ed33b1dcf9) )
2727ROM_END
2828
2929//**************************************************************************
src/mess/video/nubus_48gc.h
r12348r12349
2121        // construction/destruction
2222        nubus_48gc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2323      nubus_48gc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock);
24     
24
2525      // optional information overrides
2626      virtual machine_config_constructor device_mconfig_additions() const;
2727      virtual const rom_entry *device_rom_region() const;
src/mess/video/intv.c
r12348r12349
780780   UINT8 *videoram = state->m_videoram;
781781   int x,y,offs;
782782   int current_row;
783//   char c;
783//  char c;
784784
785785   /* Draw the underlying INTV screen first */
786786   SCREEN_UPDATE_CALL(generic_bitmapped);
src/mess/video/comx35.c
r12348r12349
7272      m_cr1 = m_iden ? CLEAR_LINE : ASSERT_LINE;
7373      check_interrupt();
7474   }
75   
75
7676   m_prd = state;
7777
7878   m_maincpu->set_input_line(COSMAC_INPUT_LINE_EF1, state);
src/mess/mess.lst
r12348r12349
635635dgone    // 1984 Data General/One
636636pcmda    // 1987 PC with MDA
637637pcherc    // 1987 PC with Hercules (for testing hercules)
638pc         // 1987 PC with CGA
638pc       // 1987 PC with CGA
639639pcega    // 1987 PC with EGA
640640bw230   // 1985 Bondwell (CGA)
641641europc   // 1988 Schneider Euro PC (CGA or Hercules)
src/mess/drivers/z100.c
r12348r12349
11/***************************************************************************
22
3   Zenith Z-100
3    Zenith Z-100
44
5   15/07/2011 Skeleton driver.
5    15/07/2011 Skeleton driver.
66
7   TODO:
8   - remove parity check IRQ patch (understand what it really wants there!)
9   - implement S-100 bus features;
10   - irqs needs 8259 "auto-ack"-ing in order to work properly;
11   - vertical scrolling isn't understood;
7    TODO:
8    - remove parity check IRQ patch (understand what it really wants there!)
9    - implement S-100 bus features;
10    - irqs needs 8259 "auto-ack"-ing in order to work properly;
11    - vertical scrolling isn't understood;
1212
1313============================================================================
1414
15Z207A      EQU 0B0H   ; Z-207 disk controller base port
15Z207A       EQU 0B0H    ; Z-207 disk controller base port
1616  ; (See DEFZ207 to program controller)
17Z217A      EQU 0AEH   ; Z-217 disk controller base port
17Z217A       EQU 0AEH    ; Z-217 disk controller base port
1818  ; (See DEFZ217 to program controller)
19ZGRNSEG      EQU 0E000H   ; Segment of green video plane
20ZREDSEG      EQU 0D000H   ; Segment of red video plane
21ZBLUSEG      EQU 0C000H   ; Segment of blue video plane
22ZVIDEO      EQU 0D8H   ; Video 68A21 port
19ZGRNSEG     EQU 0E000H  ; Segment of green video plane
20ZREDSEG     EQU 0D000H  ; Segment of red video plane
21ZBLUSEG     EQU 0C000H  ; Segment of blue video plane
22ZVIDEO      EQU 0D8H    ; Video 68A21 port
2323  ; PA0 -> enable red display
2424  ; PA1 -> enable green display
2525  ; PA2 -> enable blue display
r12348r12349
3434  ; CB1 - not used
3535  ; CB2 -> value to write (0 or 1) on clear screen
3636  ; (see DEF6821 to program the 6821)
37ZCRTC      EQU 0DCH   ; Video 6845 CRT-C port
37ZCRTC       EQU 0DCH    ; Video 6845 CRT-C port
3838  ; (see DEF6845 to program the 6845)
39ZLPEN      EQU 0DEH   ; Light pen latch
40  ZLPEN_BIT     EQU 00000111B     ; Bit hit by pen
41  ZLPEN_ROW     EQU 11110000B     ; Row hit by pen
42ZPIA      EQU 0E0H   ; Parallel printer plus light pen and
39ZLPEN       EQU 0DEH    ; Light pen latch
40  ZLPEN_BIT   EQU 00000111B   ; Bit hit by pen
41  ZLPEN_ROW   EQU 11110000B   ; Row hit by pen
42ZPIA        EQU 0E0H    ; Parallel printer plus light pen and
4343                                ;  video vertical retrace 68A21 port
4444  ; PA0 -> PDATA1
4545  ; PA1 -> PDATA2
r12348r12349
6262  ; CB1 <- not ACKNLG
6363  ; CB2 <- BUSY
6464  ; (See DEF6821 to program the PIA)
65ZTIMER      EQU 0E4H   ; Timer 8253 port
66  ZTIMEVAL     EQU 2500     ; 100ms divide by N value
65ZTIMER      EQU 0E4H    ; Timer 8253 port
66  ZTIMEVAL    EQU 2500    ; 100ms divide by N value
6767  ; (See DEF8253 to program the 8253)
68ZTIMERS      EQU 0FBH   ; Timer interrupt status port
69  ZTIMERS0     EQU 001H     ; Timer 0 interrupt
70  ZTIMERS2     EQU 002H     ; Timer 2 interrupt
71ZSERA      EQU 0E8H   ; First 2661-2 serial port
72ZSERB      EQU 0ECH   ; Second 2661-2 serial port
68ZTIMERS     EQU 0FBH    ; Timer interrupt status port
69  ZTIMERS0    EQU 001H    ; Timer 0 interrupt
70  ZTIMERS2    EQU 002H    ; Timer 2 interrupt
71ZSERA       EQU 0E8H    ; First 2661-2 serial port
72ZSERB       EQU 0ECH    ; Second 2661-2 serial port
7373  ; (See DEFEP2 to program 2661-2)
74ZM8259A      EQU 0F2H   ; Master 8259A interrupt controller port
75  ZINTEI     EQU 0        ; Parity error or S-100 pin 98 interrupt
76  ZINTPS     EQU 1        ; Processor swap interrupt
77  ZINTTIM     EQU 2        ; Timer interrupt
78  ZINTSLV     EQU 3        ; Slave 8259A interrupt
79  ZINTSA     EQU 4        ; Serial port A interrupt
80  ZINTSB     EQU 5        ; Serial port B interrupt
81  ZINTKD     EQU 6        ; Keyboard, Display, or Light pen interrupt
82  ZINTPP     EQU 7        ; Parallel port interrupt
74ZM8259A     EQU 0F2H    ; Master 8259A interrupt controller port
75  ZINTEI      EQU 0       ; Parity error or S-100 pin 98 interrupt
76  ZINTPS      EQU 1       ; Processor swap interrupt
77  ZINTTIM     EQU 2       ; Timer interrupt
78  ZINTSLV     EQU 3       ; Slave 8259A interrupt
79  ZINTSA      EQU 4       ; Serial port A interrupt
80  ZINTSB      EQU 5       ; Serial port B interrupt
81  ZINTKD      EQU 6       ; Keyboard, Display, or Light pen interrupt
82  ZINTPP      EQU 7       ; Parallel port interrupt
8383  ; (See DEF8259A to program the 8259A)
84  ZM8259AI     EQU 64       ; Base interrupt number for master
85ZS8259A      EQU 0F0H   ; Secondary 8259A interrupt controller port
86  ZS8259AI     EQU 72       ; Base interrupt number for slave
87  BIOSAI     EQU ZS8259AI+8    ; Base of BIOS generated interrupts
88ZKEYBRD      EQU 0F4H   ; Keyboard port
89  ZKEYBRDD     EQU ZKEYBRD+0     ; Keyboard data port
90  ZKEYBRDC     EQU ZKEYBRD+1     ; Keyboard command port
91    ZKEYRES       EQU 0       ; Reset command
92    ZKEYARD       EQU 1       ; Autorepeat on command
93    ZKEYARF       EQU 2       ; Autorepeat off command
94    ZKEYKCO       EQU 3       ; Key click on command
95    ZKEYKCF       EQU 4       ; Key click off command
96    ZKEYCF       EQU 5       ; Clear keyboard FIFO command
97    ZKEYCLK       EQU 6       ; Generate a click sound command
98    ZKEYBEP       EQU 7       ; Generate a beep sound command
99    ZKEYEK       EQU 8       ; Enable keyboard command
100    ZKEYDK       EQU 9       ; Disable keyboard command
101    ZKEYUDM       EQU 10       ; Enter UP/DOWN mode command
102    ZKEYNSM       EQU 11       ; Enter normal scan mode command
103    ZKEYEI       EQU 12       ; Enable keyboard interrupts command
104    ZKEYDI       EQU 13       ; Disable keyboard interrupts command
105  ZKEYBRDS     EQU ZKEYBRD+1     ; Keyboard status port
106    ZKEYOBF       EQU 001H       ; Output buffer not empty
107    ZKEYIBF       EQU 002H       ; Input buffer full
108ZMCL      EQU 0FCH   ; Memory control latch
109  ZMCLMS     EQU 00000011B     ; Map select mask
110    ZSM0       EQU 0       ; Map select 0
111    ZSM1       EQU 1       ; Map select 1
112    ZSM2       EQU 2       ; Map select 2
113    ZSM3       EQU 3       ; Map select 3
114  ZMCLRM     EQU 00001100B     ; Monitor ROM mapping mask
115    ZRM0       EQU 0*4        ; Power up mode - ROM everywhere on reads
116    ZRM1       EQU 1*4        ; ROM at top of every 64K page
117    ZRM2       EQU 2*4        ; ROM at top of 8088's addr space
118    ZRM3       EQU 3*4        ; Disable ROM
119  ZMCLPZ     EQU 00010000B     ; 0=Set Parity to the zero state
120  ZMCLPK     EQU 00100000B     ; 0=Disable parity checking circuity
121  ZMCLPF     EQU 01000000B     ; 0=Disable parity error flag
122Z205BA      EQU 098H   ; Base address for Z-205 boards
123  Z205BMC     EQU 8        ; Maximum of 8 Z-205 boards installed
124ZHAL      EQU 0FDH   ; Hi-address latch
125  ZHAL85     EQU 0FFH     ; 8085 Mask
126  ZHAL88     EQU 0F0H     ; 8088 Mask
127ZPSP      EQU 0FEH   ; Processor swap port
128  ZPSPPS     EQU 10000000B   ; Processor select (0=8085, 1=8088)
129  ZPSPPS5     EQU 00000000B     ; Select 8085
130  ZPSPPS8     EQU 10000000B   ; Select 8088
131  ZPSPSI     EQU 00000010B   ; Generate interrupt on swapping
132  ZPSPI8     EQU 00000001B     ; 8088 processes all interrupts
133ZDIPSW      EQU 0FFH   ; Configuration dip switches
134  ZDIPSWBOOT     EQU 00000111B     ; Boot device field
135  ZDIPSWAB     EQU 00001000B     ; 1=Auto boot(0=Manual boot)
136  ZDIPSWRES     EQU 01110000B     ; Reserved
137  ZDIPSWHZ     EQU 10000000B     ; 1=50Hz(0=60HZ)
84  ZM8259AI    EQU 64        ; Base interrupt number for master
85ZS8259A     EQU 0F0H    ; Secondary 8259A interrupt controller port
86  ZS8259AI    EQU 72        ; Base interrupt number for slave
87  BIOSAI      EQU ZS8259AI+8    ; Base of BIOS generated interrupts
88ZKEYBRD     EQU 0F4H    ; Keyboard port
89  ZKEYBRDD    EQU ZKEYBRD+0   ; Keyboard data port
90  ZKEYBRDC    EQU ZKEYBRD+1   ; Keyboard command port
91    ZKEYRES     EQU 0       ; Reset command
92    ZKEYARD     EQU 1       ; Autorepeat on command
93    ZKEYARF     EQU 2       ; Autorepeat off command
94    ZKEYKCO     EQU 3       ; Key click on command
95    ZKEYKCF     EQU 4       ; Key click off command
96    ZKEYCF      EQU 5       ; Clear keyboard FIFO command
97    ZKEYCLK     EQU 6       ; Generate a click sound command
98    ZKEYBEP     EQU 7       ; Generate a beep sound command
99    ZKEYEK      EQU 8       ; Enable keyboard command
100    ZKEYDK      EQU 9       ; Disable keyboard command
101    ZKEYUDM     EQU 10      ; Enter UP/DOWN mode command
102    ZKEYNSM     EQU 11      ; Enter normal scan mode command
103    ZKEYEI      EQU 12      ; Enable keyboard interrupts command
104    ZKEYDI      EQU 13      ; Disable keyboard interrupts command
105  ZKEYBRDS    EQU ZKEYBRD+1   ; Keyboard status port
106    ZKEYOBF     EQU 001H        ; Output buffer not empty
107    ZKEYIBF     EQU 002H        ; Input buffer full
108ZMCL        EQU 0FCH    ; Memory control latch
109  ZMCLMS      EQU 00000011B   ; Map select mask
110    ZSM0        EQU 0       ; Map select 0
111    ZSM1        EQU 1       ; Map select 1
112    ZSM2        EQU 2       ; Map select 2
113    ZSM3        EQU 3       ; Map select 3
114  ZMCLRM      EQU 00001100B   ; Monitor ROM mapping mask
115    ZRM0        EQU 0*4         ; Power up mode - ROM everywhere on reads
116    ZRM1        EQU 1*4         ; ROM at top of every 64K page
117    ZRM2        EQU 2*4         ; ROM at top of 8088's addr space
118    ZRM3        EQU 3*4         ; Disable ROM
119  ZMCLPZ      EQU 00010000B   ; 0=Set Parity to the zero state
120  ZMCLPK      EQU 00100000B   ; 0=Disable parity checking circuity
121  ZMCLPF      EQU 01000000B   ; 0=Disable parity error flag
122Z205BA      EQU 098H    ; Base address for Z-205 boards
123  Z205BMC     EQU 8       ; Maximum of 8 Z-205 boards installed
124ZHAL        EQU 0FDH    ; Hi-address latch
125  ZHAL85      EQU 0FFH    ; 8085 Mask
126  ZHAL88      EQU 0F0H    ; 8088 Mask
127ZPSP        EQU 0FEH    ; Processor swap port
128  ZPSPPS      EQU 10000000B   ; Processor select (0=8085, 1=8088)
129  ZPSPPS5     EQU 00000000B   ; Select 8085
130  ZPSPPS8     EQU 10000000B   ; Select 8088
131  ZPSPSI      EQU 00000010B   ; Generate interrupt on swapping
132  ZPSPI8      EQU 00000001B   ; 8088 processes all interrupts
133ZDIPSW      EQU 0FFH    ; Configuration dip switches
134  ZDIPSWBOOT      EQU 00000111B   ; Boot device field
135  ZDIPSWAB    EQU 00001000B   ; 1=Auto boot(0=Manual boot)
136  ZDIPSWRES   EQU 01110000B   ; Reserved
137  ZDIPSWHZ    EQU 10000000B   ; 1=50Hz(0=60HZ)
138138
139139****************************************************************************/
140140
r12348r12349
263263static ADDRESS_MAP_START(z100_mem, AS_PROGRAM, 8)
264264   ADDRESS_MAP_UNMAP_HIGH
265265   AM_RANGE(0x00000,0x3ffff) AM_RAM // 128*2 KB RAM
266//   AM_RANGE(0xb0000,0xbffff) AM_ROM // expansion ROM
266//  AM_RANGE(0xb0000,0xbffff) AM_ROM // expansion ROM
267267   AM_RANGE(0xc0000,0xeffff) AM_READWRITE(z100_vram_r,z100_vram_w) // Blue / Red / Green
268//   AM_RANGE(0xf0000,0xf0fff) // network card (NET-100)
269//   AM_RANGE(0xf4000,0xf7fff) // MTRET-100 Firmware I expansion ROM
270//   AM_RANGE(0xf8000,0xfbfff) // MTRET-100 Firmware II expansion ROM check ID 0x4550
268//  AM_RANGE(0xf0000,0xf0fff) // network card (NET-100)
269//  AM_RANGE(0xf4000,0xf7fff) // MTRET-100 Firmware I expansion ROM
270//  AM_RANGE(0xf8000,0xfbfff) // MTRET-100 Firmware II expansion ROM check ID 0x4550
271271   AM_RANGE(0xfc000,0xfffff) AM_ROM AM_REGION("ipl", 0)
272272ADDRESS_MAP_END
273273
r12348r12349
344344{
345345   z100_state *state = space->machine().driver_data<z100_state>();
346346   device_t* dev = space->machine().device("z207_fdc");
347//   UINT8 res;
347//  UINT8 res;
348348
349//   res = 0;
349//  res = 0;
350350
351351   switch(offset)
352352   {
r12348r12349
368368
369369static ADDRESS_MAP_START( z100_io , AS_IO, 8)
370370   ADDRESS_MAP_UNMAP_HIGH
371//   AM_RANGE (0x00, 0x3f) reserved for non-ZDS vendors
372//   AM_RANGE (0x40, 0x5f) secondary Multiport card (Z-204)
373//   AM_RANGE (0x60, 0x7f) primary Multiport card (Z-204)
374//   AM_RANGE (0x80, 0x83) development board
375//   AM_RANGE (0x98, 0x9f) Z-205 expansion memory boards
376//   AM_RANGE (0xa0, 0xa3) network card (NET-100)
377//   AM_RANGE (0xa4, 0xa7) gateway (reserved)
378//   AM_RANGE (0xac, 0xad) Z-217 secondary disk controller (winchester)
379//   AM_RANGE (0xae, 0xaf) Z-217 primary disk controller (winchester)
371//  AM_RANGE (0x00, 0x3f) reserved for non-ZDS vendors
372//  AM_RANGE (0x40, 0x5f) secondary Multiport card (Z-204)
373//  AM_RANGE (0x60, 0x7f) primary Multiport card (Z-204)
374//  AM_RANGE (0x80, 0x83) development board
375//  AM_RANGE (0x98, 0x9f) Z-205 expansion memory boards
376//  AM_RANGE (0xa0, 0xa3) network card (NET-100)
377//  AM_RANGE (0xa4, 0xa7) gateway (reserved)
378//  AM_RANGE (0xac, 0xad) Z-217 secondary disk controller (winchester)
379//  AM_RANGE (0xae, 0xaf) Z-217 primary disk controller (winchester)
380380   AM_RANGE (0xb0, 0xb7) AM_READWRITE(z207_fdc_r,z207_fdc_w) // primary (wd1797)
381381//  z-207 secondary disk controller (wd1797)
382//   AM_RANGE (0xcd, 0xce) ET-100 CRT Controller
383//   AM_RANGE (0xd4, 0xd7) ET-100 Trainer Parallel I/O
382//  AM_RANGE (0xcd, 0xce) ET-100 CRT Controller
383//  AM_RANGE (0xd4, 0xd7) ET-100 Trainer Parallel I/O
384384   AM_RANGE (0xd8, 0xdb) AM_DEVREADWRITE_MODERN("pia0", pia6821_device, read, write) //video board
385385   AM_RANGE (0xdc, 0xdc) AM_WRITE(z100_6845_address_w)
386386   AM_RANGE (0xdd, 0xdd) AM_WRITE(z100_6845_data_w)
387//   AM_RANGE (0xde, 0xde) light pen
387//  AM_RANGE (0xde, 0xde) light pen
388388   AM_RANGE (0xe0, 0xe3) AM_DEVREADWRITE_MODERN("pia1", pia6821_device, read, write) //main board
389//   AM_RANGE (0xe4, 0xe7) 8253 PIT
390//   AM_RANGE (0xe8, 0xeb) First 2661-2 serial port (printer)
391//   AM_RANGE (0xec, 0xef) Second 2661-2 serial port (modem)
389//  AM_RANGE (0xe4, 0xe7) 8253 PIT
390//  AM_RANGE (0xe8, 0xeb) First 2661-2 serial port (printer)
391//  AM_RANGE (0xec, 0xef) Second 2661-2 serial port (modem)
392392   AM_RANGE (0xf0, 0xf1) AM_DEVREADWRITE("pic8259_slave", pic8259_r, pic8259_w)
393393   AM_RANGE (0xf2, 0xf3) AM_DEVREADWRITE("pic8259_master", pic8259_r, pic8259_w)
394394   AM_RANGE (0xf4, 0xf4) AM_READ(keyb_data_r) // -> 8041 MCU
395395   AM_RANGE (0xf5, 0xf5) AM_READWRITE(keyb_status_r,keyb_command_w)
396//   AM_RANGE (0xf6, 0xf6) expansion ROM is present (bit 0, active low)
397//   AM_RANGE (0xfb, 0xfb) timer irq status
398//   AM_RANGE (0xfc, 0xfc) memory latch
399//   AM_RANGE (0xfd, 0xfd) Hi-address latch
400//   AM_RANGE (0xfe, 0xfe) Processor swap port
396//  AM_RANGE (0xf6, 0xf6) expansion ROM is present (bit 0, active low)
397//  AM_RANGE (0xfb, 0xfb) timer irq status
398//  AM_RANGE (0xfc, 0xfc) memory latch
399//  AM_RANGE (0xfd, 0xfd) Hi-address latch
400//  AM_RANGE (0xfe, 0xfe) Processor swap port
401401   AM_RANGE (0xff, 0xff) AM_READ_PORT("DSW101")
402402ADDRESS_MAP_END
403403
r12348r12349
628628{
629629   z100_state *state = device->machine().driver_data<z100_state>();
630630
631    /*
632    all bits are active low
633    x--- ---- -> disable video RAM
634   -x-- ---- -> not write multiple blue
631   /*
632    all bits are active low
633    x--- ---- -> disable video RAM
634    -x-- ---- -> not write multiple blue
635635    --x- ---- -> not write multiple green
636636    ---x ---- -> not write multiple red
637637    ---- x--- -> not flash screen
638638    ---- -x-- -> enable blue display
639     ---- --x- -> enable green display
640    ---- ---x -> enable red display
639    ---- --x- -> enable green display
640    ---- ---x -> enable red display
641641    */
642642
643643   state->m_vram_enable = ((data & 0x80) >> 7) ^ 1;
r12348r12349
820820/* Driver */
821821
822822/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT    INIT    COMPANY   FULLNAME       FLAGS */
823COMP( 1982, z100,     0,       0,       z100,    z100,     z100,      "Zenith",   "Z-100",      GAME_NOT_WORKING | GAME_NO_SOUND)
823COMP( 1982, z100,   0,       0,       z100,   z100,    z100,      "Zenith",   "Z-100",      GAME_NOT_WORKING | GAME_NO_SOUND)
824824
src/mess/drivers/pc1512.c
r12348r12349
11/*
22
3   Amstrad PC1512
3    Amstrad PC1512
44
5   TODO:
5    TODO:
66
7   - rewrite VDU
8   
9   http://git.redump.net/cgit.cgi/mess/commit/?id=94fd742c9f51970583806ed37c6b3d9815f73e1a
10   http://www.retroisle.com/amstrad/pcs/OriginalDocs/techmanual.php#1.11.2.2
11   http://www.reenigne.org/blog/crtc-emulation-for-mess/
12   http://www.seasip.info/AmstradXT/pc1512kbd.html
13   
7    - rewrite VDU
8
9    http://git.redump.net/cgit.cgi/mess/commit/?id=94fd742c9f51970583806ed37c6b3d9815f73e1a
10    http://www.retroisle.com/amstrad/pcs/OriginalDocs/techmanual.php#1.11.2.2
11    http://www.reenigne.org/blog/crtc-emulation-for-mess/
12    http://www.seasip.info/AmstradXT/pc1512kbd.html
13
1414*/
1515
1616#include "includes/pc1512.h"
r12348r12349
2828READ8_MEMBER( pc1512_state::system_r )
2929{
3030   UINT8 data = 0;
31   
31
3232   switch (offset)
3333   {
3434   case 0:
r12348r12349
3636      {
3737         /*
3838
39            bit     description
39                bit     description
4040
41            0       1
42            1       8087 NDP installed
43            2       1
44            3       1
45            4       DDM0
46            5       DDM1
47            6       second floppy disk drive installed
48            7       0
41                0       1
42                1       8087 NDP installed
43                2       1
44                3       1
45                4       DDM0
46                5       DDM1
47                6       second floppy disk drive installed
48                7       0
4949
50         */
51         
50            */
51
5252         data = m_status1;
5353      }
5454      else
r12348r12349
5858         pic8259_ir1_w(m_pic, CLEAR_LINE);
5959      }
6060      break;
61     
61
6262   case 1:
6363      data = m_port61;
6464      break;
65     
65
6666   case 2:
6767      /*
6868
69         bit     description
69            bit     description
7070
71         0       RAM0 / RAM4
72         1       RAM1
73         2       RAM2
74         3       RAM3
75         4       undefined
76         5       8253 PIT OUT2 output
77         6       external parity error (I/OCHCK from expansion bus)
78         7       on-board system RAM parity error
71            0       RAM0 / RAM4
72            1       RAM1
73            2       RAM2
74            3       RAM3
75            4       undefined
76            5       8253 PIT OUT2 output
77            6       external parity error (I/OCHCK from expansion bus)
78            7       on-board system RAM parity error
7979
80      */
81     
80        */
81
8282      if (BIT(m_port61, 2))
8383         data = m_status2 & 0x0f;
8484      else
8585         data = m_status2 >> 4;
86     
86
8787      data |= m_pit2 << 5;
8888      break;
8989   }
90   
90
9191   return data;
9292}
9393
r12348r12349
103103   case 1:
104104      /*
105105
106         bit     description
106            bit     description
107107
108         0       8253 GATE 2 (speaker modulate)
109         1       speaker drive
110         2       enable port C LSB / disable MSB
111         3       undefined
112         4       disable parity checking of on-board RAM
113         5       prevent external parity errors from causing NMI
114         6       enable incoming Keyboard Clock
115         7       enable Status-1/Disable Keyboard Code on Port A
108            0       8253 GATE 2 (speaker modulate)
109            1       speaker drive
110            2       enable port C LSB / disable MSB
111            3       undefined
112            4       disable parity checking of on-board RAM
113            5       prevent external parity errors from causing NMI
114            6       enable incoming Keyboard Clock
115            7       enable Status-1/Disable Keyboard Code on Port A
116116
117      */
118     
117        */
118
119119      m_port61 = data;
120     
120
121121      pit8253_gate2_w(m_pit, BIT(data, 0));
122122
123123      m_speaker_drive = BIT(data, 1);
r12348r12349
125125
126126      m_kb->data_w(BIT(data, 6));
127127      break;
128     
128
129129   case 4:
130130      /*
131131
132         bit     description
132            bit     description
133133
134         0       
135         1       PA1 - 8087 NDP installed
136         2       
137         3       
138         4       PA4 - DDM0
139         5       PA5 - DDM1
140         6       PA6 - Second Floppy disk drive installed
141         7       
134            0
135            1       PA1 - 8087 NDP installed
136            2
137            3
138            4       PA4 - DDM0
139            5       PA5 - DDM1
140            6       PA6 - Second Floppy disk drive installed
141            7
142142
143      */
143        */
144144
145145      if (BIT(data, 7))
146146         m_status1 = data ^ 0x8d;
147147      else
148148         m_status1 = data;
149149      break;
150     
150
151151   case 5:
152152      /*
153153
154         bit     description
154            bit     description
155155
156         0       PC0 (LSB) - RAM0
157         1       PC1 (LSB) - RAM1
158         2       PC2 (LSB) - RAM2
159         3       PC3 (LSB) - RAM3
160         4       PC0 (MSB) - RAM4
161         5       PC1 (MSB) - Undefined
162         6       PC2 (MSB) - Undefined
163         7       PC3 (MSB) - Undefined
156            0       PC0 (LSB) - RAM0
157            1       PC1 (LSB) - RAM1
158            2       PC2 (LSB) - RAM2
159            3       PC3 (LSB) - RAM3
160            4       PC0 (MSB) - RAM4
161            5       PC1 (MSB) - Undefined
162            6       PC2 (MSB) - Undefined
163            7       PC3 (MSB) - Undefined
164164
165      */
165        */
166166
167167      m_status2 = data;
168168      break;
169     
169
170170   case 6:
171171      machine_reset();
172172      break;
r12348r12349
186186READ8_MEMBER( pc1512_state::mouse_r )
187187{
188188   UINT8 data = 0;
189   
189
190190   switch (offset)
191191   {
192192   case 0:
193193      data = m_mouse_x;
194194      break;
195     
195
196196   case 2:
197197      data = m_mouse_y;
198198      break;
199199   }
200   
200
201201   return data;
202202}
203203
r12348r12349
213213   case 0:
214214      m_mouse_x = 0;
215215      break;
216     
216
217217   case 2:
218218      m_mouse_y = 0;
219219      break;
r12348r12349
234234{
235235   /*
236236
237      bit     description
237        bit     description
238238
239      0       Address bit A16
240      1       Address bit A17
241      2       Address bit A18
242      3       Address bit A19
243      4       
244      5       
245      6       
246      7       
239        0       Address bit A16
240        1       Address bit A17
241        2       Address bit A18
242        3       Address bit A19
243        4
244        5
245        6
246        7
247247
248   */
248    */
249249
250250   switch (offset)
251251   {
252252   case 1:
253253      m_dma_page[2] = data & 0x0f;
254254      break;
255     
255
256256   case 2:
257257      m_dma_page[3] = data & 0x0f;
258258      break;
r12348r12349
291291READ8_MEMBER( pc1512_state::printer_r )
292292{
293293   UINT8 data = 0;
294   
294
295295   switch (offset)
296296   {
297297   case 0:
298298      data = m_printer_data;
299299      break;
300     
300
301301   case 1:
302302      /*
303303
304         bit     description
304            bit     description
305305
306         0       LK1 fitted
307         1       LK2 fitted
308         2       LK3 fitted
309         3       printer error
310         4       printer selected
311         5       paper out
312         6       printer acknowledge
313         7       printer busy
306            0       LK1 fitted
307            1       LK2 fitted
308            2       LK3 fitted
309            3       printer error
310            4       printer selected
311            5       paper out
312            6       printer acknowledge
313            7       printer busy
314314
315      */
316     
315        */
316
317317      data |= input_port_read(machine(), "LK") & 0x07;
318     
318
319319      data |= centronics_fault_r(m_centronics) << 3;
320320      data |= centronics_vcc_r(m_centronics) << 4;
321321      data |= centronics_pe_r(m_centronics) << 5;
322322      data |= centronics_ack_r(m_centronics) << 6;
323323      data |= centronics_busy_r(m_centronics) << 7;
324324      break;
325   
325
326326   case 2:
327327      data = m_printer_control;
328328      break;
329329   }
330   
330
331331   return data;
332332}
333333
r12348r12349
344344      m_printer_data = data;
345345      centronics_data_w(m_centronics, 0, data);
346346      break;
347     
347
348348   case 2:
349349      /*
350350
351         bit     description
351            bit     description
352352
353         0       Data Strobe
354         1       Select Auto Feed
355         2       Reset Printer
356         3       Select Printer
357         4       Enable Int on ACK
358         5       
359         6       
360         7       
353            0       Data Strobe
354            1       Select Auto Feed
355            2       Reset Printer
356            3       Select Printer
357            4       Enable Int on ACK
358            5
359            6
360            7
361361
362      */
362        */
363363
364364      m_printer_control = data;
365     
365
366366      centronics_strobe_w(m_centronics, BIT(data, 0));
367367      centronics_autofeed_w(m_centronics, BIT(data, 1));
368368      centronics_init_w(m_centronics, BIT(data, 2));
369     
369
370370      m_ack_int_enable = BIT(data, 4);
371371      update_ack();
372372      break;
r12348r12349
386386READ8_MEMBER( pc1512_state::fdc_r )
387387{
388388   UINT8 data = 0;
389   
389
390390   switch (offset)
391391   {
392392   case 4:
393393      data = upd765_status_r(m_fdc, 0);
394394      break;
395     
395
396396   case 5:
397397      data = upd765_data_r(m_fdc, 0);
398398      break;
399399   }
400   
400
401401   return data;
402402}
403403
r12348r12349
410410{
411411   /*
412412
413      bit     description
413        bit     description
414414
415      0       Drive Select Bit 0 (DS0)
416      1       Drive Select Bit 1 (DS1)
417      2       765A reset
418      3       Allow 765A FDC to interrupt and request DMA
419      4       Switch motor(s) on and enable drive 0 selection
420      5       Switch motor(s) on and enable drive 1 selection
421      6       
422      7       
415        0       Drive Select Bit 0 (DS0)
416        1       Drive Select Bit 1 (DS1)
417        2       765A reset
418        3       Allow 765A FDC to interrupt and request DMA
419        4       Switch motor(s) on and enable drive 0 selection
420        5       Switch motor(s) on and enable drive 1 selection
421        6
422        7
423423
424   */
425   
424    */
425
426426   m_fdc_dsr = data;
427   
427
428428   m_nden = BIT(data, 3);
429429   update_fdc_int();
430430   update_fdc_drq();
431431   update_fdc_tc();
432   
432
433433   upd765_reset_w(m_fdc, BIT(data, 2));
434434
435435   floppy_mon_w(m_floppy0, BIT(data, 4) ? CLEAR_LINE : ASSERT_LINE);
r12348r12349
443443   case 2:
444444      set_fdc_dsr(data);
445445      break;
446     
446
447447   case 5:
448448      upd765_data_w(m_fdc, 0, data);
449449      break;
r12348r12349
462462
463463static ADDRESS_MAP_START( pc1512_mem, AS_PROGRAM, 16, pc1512_state )
464464   AM_RANGE(0x00000, 0x9ffff) AM_RAM
465//   AM_RANGE(0xb8000, 0xbffff) AM_READWRITE(videoram_r, videoram_w)
465//  AM_RANGE(0xb8000, 0xbffff) AM_READWRITE(videoram_r, videoram_w)
466466   AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION(I8086_TAG, 0)
467467ADDRESS_MAP_END
468468
r12348r12349
482482   AM_RANGE(0x080, 0x083) AM_WRITE8(dma_page_w, 0xffff)
483483   AM_RANGE(0x0a0, 0x0a1) AM_WRITE8(nmi_mask_w, 0xff00)
484484   AM_RANGE(0x378, 0x37b) AM_READWRITE8(printer_r, printer_w, 0xffff)
485//   AM_RANGE(0x3d0, 0x3df) AM_READWRITE8(vdu_r, vdu_w, 0xffff)
485//  AM_RANGE(0x3d0, 0x3df) AM_READWRITE8(vdu_r, vdu_w, 0xffff)
486486   AM_RANGE(0x3f0, 0x3f7) AM_READWRITE8(fdc_r, fdc_w, 0xffff)
487487   AM_RANGE(0x3f8, 0x3ff) AM_DEVREADWRITE8_LEGACY(INS8250_TAG, ins8250_r, ins8250_w, 0xffff)
488488ADDRESS_MAP_END
r12348r12349
500500static INPUT_CHANGED( mouse_button_1_changed )
501501{
502502   pc1512_state *state = field.machine().driver_data<pc1512_state>();
503   
503
504504   state->m_kb->m1_w(newval);
505505}
506506
r12348r12349
512512static INPUT_CHANGED( mouse_button_2_changed )
513513{
514514   pc1512_state *state = field.machine().driver_data<pc1512_state>();
515   
515
516516   state->m_kb->m2_w(newval);
517517}
518518
r12348r12349
524524static INPUT_CHANGED( mouse_x_changed )
525525{
526526   pc1512_state *state = field.machine().driver_data<pc1512_state>();
527   
528   if (newval > oldval)
527
528   if (newval > oldval)
529529      state->m_mouse_x++;
530530   else
531531      state->m_mouse_x--;
r12348r12349
539539static INPUT_CHANGED( mouse_y_changed )
540540{
541541   pc1512_state *state = field.machine().driver_data<pc1512_state>();
542   
543   if (newval > oldval)
542
543   if (newval > oldval)
544544      state->m_mouse_y++;
545545   else
546546      state->m_mouse_y--;
r12348r12349
578578   PORT_DIPNAME( 0x10, 0x10, "ROM Size")
579579   PORT_DIPSETTING( 0x10, "16 KB" )
580580   PORT_DIPSETTING( 0x00, "32 KB" )
581/*   PORT_DIPNAME( 0x60, 0x60, "Character Set")
582   PORT_DIPSETTING( 0x60, "Default (Codepage 437)" )
583   PORT_DIPSETTING( 0x40, "Portugese (Codepage 865)" )
584   PORT_DIPSETTING( 0x20, "Norwegian (Codepage 860)" )
585   PORT_DIPSETTING( 0x00, "Greek")*/
581/*  PORT_DIPNAME( 0x60, 0x60, "Character Set")
582    PORT_DIPSETTING( 0x60, "Default (Codepage 437)" )
583    PORT_DIPSETTING( 0x40, "Portugese (Codepage 865)" )
584    PORT_DIPSETTING( 0x20, "Norwegian (Codepage 860)" )
585    PORT_DIPSETTING( 0x00, "Greek")*/
586586   PORT_DIPNAME( 0x80, 0x80, "Floppy Ready Line")
587587   PORT_DIPSETTING( 0x80, "Connected" )
588588   PORT_DIPSETTING( 0x00, "Not connected" )
r12348r12349
612612      m_kbd <<= 1;
613613      m_kbd |= m_kbdata;
614614      m_kb_bits++;
615     
615
616616      if (m_kb_bits == 8)
617617      {
618618         pic8259_ir1_w(m_pic, ASSERT_LINE);
r12348r12349
644644WRITE_LINE_MEMBER( pc1512_state::hrq_w )
645645{
646646   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
647   
647
648648   i8237_hlda_w(m_dmac, state);
649649}
650650
r12348r12349
658658{
659659   address_space *program = m_maincpu->memory().space(AS_PROGRAM);
660660   offs_t page_offset = m_dma_page[m_dma_channel] << 16;
661   
661
662662   return program->read_byte(page_offset + offset);
663663}
664664
r12348r12349
679679READ8_MEMBER( pc1512_state::fdc_dack_r )
680680{
681681   UINT8 data = 0;
682   
682
683683   if (m_nden) data = upd765_dack_r(m_fdc, 0);
684     
684
685685   return data;
686686}
687687
r12348r12349
718718   DEVCB_DRIVER_MEMBER(pc1512_state, memw_w),
719719   { DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(pc1512_state, fdc_dack_r), DEVCB_NULL },
720720   { DEVCB_DRIVER_MEMBER(pc1512_state, dma0_w), DEVCB_NULL, DEVCB_DRIVER_MEMBER(pc1512_state, fdc_dack_w), DEVCB_NULL },
721   { DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack0_w), DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack1_w),
721   { DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack0_w), DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack1_w),
722722     DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack2_w), DEVCB_DRIVER_LINE_MEMBER(pc1512_state, dack3_w) }
723723};
724724
r12348r12349
730730static IRQ_CALLBACK( pc1512_irq_callback )
731731{
732732   pc1512_state *state = device->machine().driver_data<pc1512_state>();
733   
733
734734   return pic8259_acknowledge(state->m_pic);
735735}
736736
r12348r12349
758758      m_dreq0 = 1;
759759      i8237_dreq0_w(m_dmac, m_dreq0);
760760   }
761   
761
762762   m_pit1 = state;
763763}
764764
r12348r12349
944944
945945   // set RAM size
946946   size_t ram_size = ram_get_size(m_ram);
947   
947
948948   if (ram_size < 640 * 1024)
949949   {
950950      address_space *program = m_maincpu->memory().space(AS_PROGRAM);
951951      program->unmap_readwrite(ram_size, 0x9ffff);
952952   }
953   
953
954954   // state saving
955955   save_item(NAME(m_pit1));
956956   save_item(NAME(m_pit2));
r12348r12349
990990   m_nmi_enable = 0;
991991   m_toggle = 0;
992992   m_kb_bits = 0;
993   
993
994994   set_fdc_dsr(0);
995995}
996996
r12348r12349
10081008   MCFG_CPU_ADD(I8086_TAG, I8086, XTAL_24MHz/3)
10091009   MCFG_CPU_PROGRAM_MAP(pc1512_mem)
10101010   MCFG_CPU_IO_MAP(pc1512_io)
1011   
1011
10121012   // video
10131013   MCFG_FRAGMENT_ADD( pcvideo_pc1512 )
10141014
r12348r12349
10161016   MCFG_SPEAKER_STANDARD_MONO("mono")
10171017   MCFG_SOUND_ADD(SPEAKER_TAG, SPEAKER_SOUND, 0)
10181018   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
1019   
1019
10201020   // devices
10211021   MCFG_PC1512_KEYBOARD_ADD(kb_intf)
10221022   MCFG_I8237_ADD(I8237A5_TAG, XTAL_24MHz/6, dmac_intf)
r12348r12349
10271027   MCFG_INS8250_ADD(INS8250_TAG, uart_intf)
10281028   MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_intf)
10291029   MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(floppy_intf)
1030   
1030
10311031   // ISA8 bus
10321032   MCFG_ISA8_BUS_ADD("isa", I8086_TAG, isabus_intf)
10331033   MCFG_ISA8_SLOT_ADD("isa", "isa1", pc1512_isa8_cards, NULL, NULL)
10341034   MCFG_ISA8_SLOT_ADD("isa", "isa2", pc1512_isa8_cards, NULL, NULL)
10351035   MCFG_ISA8_SLOT_ADD("isa", "isa3", pc1512_isa8_cards, NULL, NULL)
1036   
1036
10371037   // internal ram
10381038   MCFG_RAM_ADD(RAM_TAG)
10391039   MCFG_RAM_DEFAULT_SIZE("512K")
src/mess/drivers/coco.c
r12348r12349
777777
778778static SLOT_INTERFACE_START(dragon_cart)
779779   SLOT_INTERFACE("dragon_fdc", DRAGON_FDC)
780   SLOT_INTERFACE("sdtandy_fdc", SDTANDY_FDC)   
780   SLOT_INTERFACE("sdtandy_fdc", SDTANDY_FDC)
781781   SLOT_INTERFACE("pak", COCO_PAK)
782782SLOT_INTERFACE_END
783783
784784static SLOT_INTERFACE_START(coco_cart)
785785   SLOT_INTERFACE("fdc", COCO_FDC)
786786   SLOT_INTERFACE("fdcv11", COCO_FDC_V11)
787   SLOT_INTERFACE("cp400_fdc", CP400_FDC)   
787   SLOT_INTERFACE("cp400_fdc", CP400_FDC)
788788   SLOT_INTERFACE("rs232", COCO_232)
789789   SLOT_INTERFACE("orch90", COCO_ORCH90)
790790   SLOT_INTERFACE("banked_16k", COCO_PAK_BANKED)
r12348r12349
831831   MCFG_RAM_ADD(RAM_TAG)
832832   MCFG_RAM_DEFAULT_SIZE("32K")
833833   MCFG_RAM_EXTRA_OPTIONS("64K")
834   
834
835835   /* Software lists */
836   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
836   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
837837MACHINE_CONFIG_END
838838
839839static MACHINE_CONFIG_START( dragon64, coco_state )
r12348r12349
877877   /* internal ram */
878878   MCFG_RAM_ADD(RAM_TAG)
879879   MCFG_RAM_DEFAULT_SIZE("64K")
880   
880
881881   /* Software lists */
882   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
882   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
883883MACHINE_CONFIG_END
884884
885885static MACHINE_CONFIG_START( d64plus, coco_state )
r12348r12349
924924   /* internal ram */
925925   MCFG_RAM_ADD(RAM_TAG)
926926   MCFG_RAM_DEFAULT_SIZE("128K")
927   
927
928928   /* Software lists */
929   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
929   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
930930MACHINE_CONFIG_END
931931
932932static MACHINE_CONFIG_START( dgnalpha, coco_state )
r12348r12349
981981   /* internal ram */
982982   MCFG_RAM_ADD(RAM_TAG)
983983   MCFG_RAM_DEFAULT_SIZE("64K")
984   
984
985985   /* Software lists */
986   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
986   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
987987MACHINE_CONFIG_END
988988
989989static MACHINE_CONFIG_START( tanodr64, coco_state )
r12348r12349
10281028   /* internal ram */
10291029   MCFG_RAM_ADD(RAM_TAG)
10301030   MCFG_RAM_DEFAULT_SIZE("64K")
1031   
1031
10321032   /* Software lists */
1033   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
1033   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
10341034MACHINE_CONFIG_END
10351035
10361036static MACHINE_CONFIG_START( coco, coco_state )
r12348r12349
10741074   MCFG_RAM_ADD(RAM_TAG)
10751075   MCFG_RAM_DEFAULT_SIZE("16K")
10761076   MCFG_RAM_EXTRA_OPTIONS("4K,32K,64K")
1077   
1077
10781078   /* Software lists */
1079   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
1079   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
10801080MACHINE_CONFIG_END
10811081
10821082static MACHINE_CONFIG_START( coco2, coco_state )
r12348r12349
11201120   MCFG_RAM_ADD(RAM_TAG)
11211121   MCFG_RAM_DEFAULT_SIZE("64K")
11221122   MCFG_RAM_EXTRA_OPTIONS("16K")
1123   
1123
11241124   /* Software lists */
1125   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
1125   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
11261126MACHINE_CONFIG_END
11271127
11281128static MACHINE_CONFIG_START( coco2b, coco_state )
r12348r12349
11661166   MCFG_RAM_ADD(RAM_TAG)
11671167   MCFG_RAM_DEFAULT_SIZE("64K")
11681168   MCFG_RAM_EXTRA_OPTIONS("16K")
1169   
1169
11701170   /* Software lists */
1171   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
1171   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
11721172MACHINE_CONFIG_END
11731173
11741174static MACHINE_CONFIG_START( coco3, coco3_state )
r12348r12349
12241224   MCFG_RAM_ADD(RAM_TAG)
12251225   MCFG_RAM_DEFAULT_SIZE("512K")
12261226   MCFG_RAM_EXTRA_OPTIONS("128K,2M,8M")
1227   
1227
12281228   /* Software lists */
1229   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")     
1229   MCFG_SOFTWARE_LIST_ADD("cart_list","coco_cart")
12301230MACHINE_CONFIG_END
12311231
12321232static MACHINE_CONFIG_DERIVED( coco3p, coco3 )
r12348r12349
12861286ROM_START(tanodr64)
12871287   ROM_REGION(0x10000,"maincpu",0)
12881288   ROM_LOAD("d64_1.rom",    0x0000,  0x4000, CRC(60a4634c) SHA1(f119506eaa3b4b70b9aa0dd83761e8cbe043d042))
1289   ROM_LOAD("d64_2.rom",    0x8000,  0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e))   
1289   ROM_LOAD("d64_2.rom",    0x8000,  0x4000, CRC(17893a42) SHA1(e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e))
12901290ROM_END
12911291
12921292ROM_START(dgnalpha)
src/mess/drivers/imds.c
r12348r12349
8585
8686//static const ins8250_interface imds_com_interface =
8787//{
88//   1843200,
89//   DEVCB_NULL,
90//   NULL,
91//   NULL,
92//   NULL
88//  1843200,
89//  DEVCB_NULL,
90//  NULL,
91//  NULL,
92//  NULL
9393//};
9494
9595static MACHINE_CONFIG_START( imds, imds_state )
r12348r12349
9898   MCFG_CPU_PROGRAM_MAP(imds_mem)
9999   MCFG_CPU_IO_MAP(imds_io)
100100
101//   MCFG_INS8250_ADD( "ins8250", imds_com_interface )
101//  MCFG_INS8250_ADD( "ins8250", imds_com_interface )
102102
103103   /* video hardware */
104104   MCFG_FRAGMENT_ADD( generic_terminal )
src/mess/drivers/at.c
r12348r12349
293293   PORT_DIPNAME( 0x01, 0x01, "Floppy installed")
294294   PORT_DIPSETTING(   0x00, DEF_STR( No ) )
295295   PORT_DIPSETTING(   0x01, DEF_STR( Yes ) )
296   
296
297297   PORT_INCLUDE( kb_keytronic_at )      /* IN4 - IN11 */
298298   PORT_INCLUDE( pcvideo_cga )
299299INPUT_PORTS_END
r12348r12349
382382   DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir5_w),
383383   DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir6_w),
384384   DEVCB_DEVICE_LINE("pic8259_master", pic8259_ir7_w),
385   
385
386386   DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir3_w),
387387   DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir4_w),
388388   DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir5_w),
r12348r12349
390390   DEVCB_DEVICE_LINE("pic8259_slave", pic8259_ir7_w),
391391
392392   // dma request
393   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq0_w),   
393   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq0_w),
394394   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq1_w),
395395   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq2_w),
396396   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq3_w),
397   
397
398398   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq1_w),
399399   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq2_w),
400400   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq3_w),
r12348r12349
431431   MCFG_KB_KEYTRONIC_ADD("keyboard", at_keytronic_intf)
432432
433433   MCFG_MC146818_IRQ_ADD( "rtc", MC146818_STANDARD, at_mc146818_config )
434   
434
435435   /* sound hardware */
436436   MCFG_SPEAKER_STANDARD_MONO("mono")
437437   MCFG_SOUND_ADD(SPEAKER_TAG, SPEAKER_SOUND, 0)
r12348r12349
451451   MCFG_ISA16_BUS_ADD("isabus", "maincpu", isabus_intf)
452452   MCFG_ISA8_SLOT_ADD("isabus","isa1", pc_isa8_cards, "fdc", NULL)
453453   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", NULL)
454   
454
455455   MCFG_FRAGMENT_ADD( pcvideo_ega )
456456
457457   /* software lists */
r12348r12349
489489   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", NULL)
490490
491491   MCFG_FRAGMENT_ADD( pcvideo_cga )
492   
492
493493   /* internal ram */
494494   MCFG_RAM_ADD(RAM_TAG)
495495   MCFG_RAM_DEFAULT_SIZE("1664K")
r12348r12349
502502   MCFG_CPU_PROGRAM_MAP(at16_map)
503503   MCFG_CPU_IO_MAP(at16_io)
504504   MCFG_CPU_CONFIG(i286_address_mask)
505   
505
506506   MCFG_FRAGMENT_ADD( at_motherboard )
507507
508508   MCFG_ISA16_BUS_ADD("isabus", "maincpu", isabus_intf)
r12348r12349
553553   MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, "ide", NULL)
554554
555555   MCFG_FRAGMENT_ADD( pcvideo_vga )
556   
556
557557   /* internal ram */
558558   MCFG_RAM_ADD(RAM_TAG)
559559   MCFG_RAM_DEFAULT_SIZE("1664K")
r12348r12349
906906   /* actual VGA BIOS not dumped*/
907907   ROM_REGION(0x1000000, "maincpu", 0)
908908    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
909   
909
910910   // XEN-S (Venus I Motherboard)
911911    ROM_LOAD16_BYTE("3-10-17i.lo", 0xf0000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
912912   ROM_RELOAD(0xff0000,0x8000)
r12348r12349
918918   /* actual VGA BIOS not dumped*/
919919   ROM_REGION(0x1000000, "maincpu", 0)
920920    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
921   
921
922922   // XEN-S (Venus II Motherboard)
923923    ROM_LOAD16_BYTE("10217.lo", 0xf0000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
924924   ROM_RELOAD(0xff0000,0x8000)
r12348r12349
930930   /* actual VGA BIOS not dumped */
931931    ROM_REGION(0x1000000, "maincpu", 0)
932932    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
933   
933
934934   // XEN-S (Venus I Motherboard)
935935    ROM_LOAD16_BYTE("3-10-17i.lo", 0xf0000, 0x8000, CRC(3786ca1e) SHA1(c682d7c76f234559d03bcf21010c13c4dbeafb69))
936936   ROM_RELOAD(0xff0000,0x8000)
r12348r12349
942942   /* actual VGA BIOS not dumped*/
943943   ROM_REGION(0x1000000, "maincpu", 0)
944944    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
945   
945
946946   // XEN-S (Venus II Motherboard)
947947    ROM_LOAD16_BYTE("10217.lo", 0xf0000, 0x8000, CRC(ea53406f) SHA1(2958dfdbda14de4e6b9d6a8c3781131ab1e32bef))
948948   ROM_RELOAD(0xff0000,0x8000)
r12348r12349
11121112   ROM_REGION(0x1000000,"maincpu", 0)
11131113    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11141114
1115   ROM_LOAD16_BYTE( "qi310223.lo", 0xe0000, 0x10000, CRC(53047f49) SHA1(7b38e533f7f27295269549c63e5477d950239167))
1116   ROM_LOAD16_BYTE( "qi310223.hi", 0xe0001, 0x10000, CRC(4852869f) SHA1(98599d4691d40b3fac2936034c70b386ce4caf77))
1115   ROM_LOAD16_BYTE( "qi310223.lo", 0xe0000, 0x10000, CRC(53047f49) SHA1(7b38e533f7f27295269549c63e5477d950239167))
1116   ROM_LOAD16_BYTE( "qi310223.hi", 0xe0001, 0x10000, CRC(4852869f) SHA1(98599d4691d40b3fac2936034c70b386ce4caf77))
11171117ROM_END
11181118
11191119ROM_START( qi600 )
11201120   ROM_REGION(0x1000000,"maincpu", 0)
11211121    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11221122
1123   ROM_LOAD16_BYTE( "qi610223.lo", 0xe0000, 0x10000, CRC(563114a9) SHA1(62932b3bf0b5502ff708f604c21773f00afda58e))
1124   ROM_LOAD16_BYTE( "qi610223.hi", 0xe0001, 0x10000, CRC(0ae133f6) SHA1(6039c366f7fe0ebf60b34c1a7d6b2d781b664001))
1123   ROM_LOAD16_BYTE( "qi610223.lo", 0xe0000, 0x10000, CRC(563114a9) SHA1(62932b3bf0b5502ff708f604c21773f00afda58e))
1124   ROM_LOAD16_BYTE( "qi610223.hi", 0xe0001, 0x10000, CRC(0ae133f6) SHA1(6039c366f7fe0ebf60b34c1a7d6b2d781b664001))
11251125ROM_END
11261126
11271127ROM_START( qi900 )
11281128   ROM_REGION(0x1000000,"maincpu", 0)
11291129    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11301130
1131   ROM_LOAD16_BYTE( "qi910224.lo", 0xe0000, 0x10000, CRC(b012ad3c) SHA1(807e788a6bd03f5e983fe503af3d0b202c754b8a))
1132   ROM_LOAD16_BYTE( "qi910224.hi", 0xe0001, 0x10000, CRC(36e66d56) SHA1(0900c5272ec3ced550f18fb08db59ab7f67a621e))
1131   ROM_LOAD16_BYTE( "qi910224.lo", 0xe0000, 0x10000, CRC(b012ad3c) SHA1(807e788a6bd03f5e983fe503af3d0b202c754b8a))
1132   ROM_LOAD16_BYTE( "qi910224.hi", 0xe0001, 0x10000, CRC(36e66d56) SHA1(0900c5272ec3ced550f18fb08db59ab7f67a621e))
11331133ROM_END
11341134
11351135ROM_START( ftsserv )
11361136   ROM_REGION(0x1000000,"maincpu", 0)
11371137    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11381138
1139   ROM_LOAD16_BYTE( "fts10226.lo", 0xe0000, 0x10000, CRC(efbd738f) SHA1(d5258760bafdaf1bf13c4a49da76d4b5e7b4ccbd))
1140   ROM_LOAD16_BYTE( "fts10226.hi", 0xe0001, 0x10000, CRC(2460853f) SHA1(a6bba8d2f800140afd129c4d5278f7ae8fe7e63a))
1139   ROM_LOAD16_BYTE( "fts10226.lo", 0xe0000, 0x10000, CRC(efbd738f) SHA1(d5258760bafdaf1bf13c4a49da76d4b5e7b4ccbd))
1140   ROM_LOAD16_BYTE( "fts10226.hi", 0xe0001, 0x10000, CRC(2460853f) SHA1(a6bba8d2f800140afd129c4d5278f7ae8fe7e63a))
11411141   /* FT Server series Front Panel */
11421142   ROM_REGION(0x10000,"front", 0)
11431143   ROM_LOAD( "fp10009.bin",    0x0000, 0x8000, CRC(8aa7f718) SHA1(9ee6c6a5bb92622ea8d3805196d42ff68887d820))
r12348r12349
11471147   ROM_REGION(0x1000000,"maincpu", 0)
11481148    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11491149
1150   ROM_LOAD16_BYTE( "31020.lo", 0xf0000, 0x8000, CRC(a19678d2) SHA1(d13c12fa7e94333555eabf58b81bad421e21cd91))
1151   ROM_LOAD16_BYTE( "31020.hi", 0xf0001, 0x8000, CRC(4922e020) SHA1(64e6448323dad2209e004cd93fa181582e768ed5))
1150   ROM_LOAD16_BYTE( "31020.lo", 0xf0000, 0x8000, CRC(a19678d2) SHA1(d13c12fa7e94333555eabf58b81bad421e21cd91))
1151   ROM_LOAD16_BYTE( "31020.hi", 0xf0001, 0x8000, CRC(4922e020) SHA1(64e6448323dad2209e004cd93fa181582e768ed5))
11521152ROM_END
11531153
11541154ROM_START( aplanst )
11551155   ROM_REGION(0x1000000,"maincpu", 0)
11561156    ROM_LOAD("et4000.bin", 0x00000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
1157   
1157
11581158   ROM_SYSTEM_BIOS(0, "31024", "Bios 3-10-24")
11591159    ROMX_LOAD("31024.lo", 0xf0000, 0x8000, CRC(e52b59e1) SHA1(cfcaa4d8d658df8df463108ef30695bd4ee7a617), ROM_SKIP(1) | ROM_BIOS(1) )
11601160   ROMX_LOAD("31024.hi", 0xf0001, 0x8000, CRC(7286aefa) SHA1(dfc0e3f4936780fa62ae9ec392ce17aa65e717cd), ROM_SKIP(1) | ROM_BIOS(1) )
r12348r12349
11701170   ROM_REGION(0x1000000,"maincpu", 0)
11711171    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11721172
1173   ROM_LOAD16_BYTE( "lsl31025.lo", 0xe0000, 0x10000, CRC(8bb7229b) SHA1(31449d12884ec4e7752e6c1ce7ce9e0d044eadf2))
1174   ROM_LOAD16_BYTE( "lsh31025.hi", 0xe0001, 0x10000, CRC(09e5c1b9) SHA1(d42be83b4181d3733268c29df04a4d2918370f4e))
1173   ROM_LOAD16_BYTE( "lsl31025.lo", 0xe0000, 0x10000, CRC(8bb7229b) SHA1(31449d12884ec4e7752e6c1ce7ce9e0d044eadf2))
1174   ROM_LOAD16_BYTE( "lsh31025.hi", 0xe0001, 0x10000, CRC(09e5c1b9) SHA1(d42be83b4181d3733268c29df04a4d2918370f4e))
11751175ROM_END
11761176
11771177ROM_START( apvxft )
11781178   ROM_REGION(0x1000000,"maincpu", 0)
11791179    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
11801180
1181   ROM_LOAD16_BYTE( "ft10221.lo", 0xe0000, 0x10000, CRC(8f339de0) SHA1(a6542406746eaf1ff7f9e3678c5cbe5522fb314a))
1182   ROM_LOAD16_BYTE( "ft10221.hi", 0xe0001, 0x10000, CRC(3b16bc31) SHA1(0592d1d81e7fd4715b0612083482db122d78c7f2))
1181   ROM_LOAD16_BYTE( "ft10221.lo", 0xe0000, 0x10000, CRC(8f339de0) SHA1(a6542406746eaf1ff7f9e3678c5cbe5522fb314a))
1182   ROM_LOAD16_BYTE( "ft10221.hi", 0xe0001, 0x10000, CRC(3b16bc31) SHA1(0592d1d81e7fd4715b0612083482db122d78c7f2))
11831183ROM_END
11841184
11851185ROM_START( aplscar )
r12348r12349
12021202    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
12031203
12041204   ROM_SYSTEM_BIOS(0, "p2r02g2", "p2r02g2")
1205    ROMX_LOAD("p2r02g2.bin",   0xe0000, 0x20000, CRC(311bcc5a) SHA1(be6fa144322077dcf66b065e7f4e61aab8c278b4), ROM_BIOS(1))
1205    ROMX_LOAD("p2r02g2.bin",   0xe0000, 0x20000, CRC(311bcc5a) SHA1(be6fa144322077dcf66b065e7f4e61aab8c278b4), ROM_BIOS(1))
12061206   ROM_SYSTEM_BIOS(1, "lep121s", "SCSI-Enabling ROMs")
12071207    ROMX_LOAD("p2r01f0.bin",   0xe0000, 0x20000, CRC(bbc68f2e) SHA1(6954a52a7dda5521794151aff7a04225e9c7df77), ROM_BIOS(2))
12081208ROM_END
r12348r12349
12121212    ROM_LOAD("et4000.bin", 0xc0000, 0x8000, CRC(f1e817a8) SHA1(945d405b0fb4b8f26830d495881f8587d90e5ef9) )
12131213
12141214   ROM_SYSTEM_BIOS(0, "lep121", "Rom Bios 1.2.1")
1215    ROMX_LOAD( "lep121.bin", 0xf8000, 0x8000, CRC(948c1927) SHA1(d06bdbd6292db73c815ad1060daf055293dfddf5), ROM_BIOS(1))
1215    ROMX_LOAD( "lep121.bin", 0xf8000, 0x8000, CRC(948c1927) SHA1(d06bdbd6292db73c815ad1060daf055293dfddf5), ROM_BIOS(1))
12161216   ROM_SYSTEM_BIOS(1, "lep121s", "SCSI-Enabling ROMs")
12171217    ROMX_LOAD( "lep121s.bin", 0xf8000, 0x8000, CRC(296118e4) SHA1(d1feaa9704e6ce3bc10c900bdd310d9494b02304), ROM_BIOS(2))
12181218ROM_END
r12348r12349
12991299COMP ( 1984, ibm5170,  0,       ibm5150, ibm5170,   atcga,   atega,      "International Business Machines",  "IBM PC/AT 5170", GAME_NOT_WORKING )
13001300COMP ( 1985, ibm5170a, ibm5170, 0,       ibm5170a,  atcga,  atega,      "International Business Machines",  "IBM PC/AT 5170 8MHz", GAME_NOT_WORKING )
13011301COMP ( 1985, ibm5162,  ibm5170, 0,       ibm5162,   atcga,  atcga,      "International Business Machines",  "IBM PC/XT-286 5162", GAME_NOT_WORKING )
1302COMP ( 1988, i8530286, ibm5170, 0,       ps2m30286, atvga,   atvga,       "International Business Machines",  "IBM PS/2 Model 30-286", GAME_NOT_WORKING )
1302COMP ( 1988, i8530286, ibm5170, 0,       ps2m30286, atvga,   atvga,      "International Business Machines",  "IBM PS/2 Model 30-286", GAME_NOT_WORKING )
13031303COMP ( 1989, i8555081, ibm5170, 0,       at386,      atvga,   atvga,      "International Business Machines",  "IBM PS/2 Model 55SX", GAME_NOT_WORKING )
13041304COMP ( 1987, at,       ibm5170, 0,       ibm5162,   atcga,   atcga,      "<generic>",  "PC/AT (CGA, MF2 Keyboard)", GAME_NOT_WORKING )
13051305COMP ( 1987, atvga,    ibm5170, 0,       atvga,     atvga,   atvga,      "<generic>",  "PC/AT (VGA, MF2 Keyboard)" , GAME_NOT_WORKING )
src/mess/drivers/amstrad.c
r12348r12349
7373               To get rid of duplicated code the drivers have been changed to use the new mc6845 device
7474               implementation. As a result the (runtime) selection of CRTC type has been removed.
7575
76   July 2011 - added basic expansion port interface, with support for both the Amstrad SSA-1 and DK'Tronics
77               speech synthesisers.
76    July 2011 - added basic expansion port interface, with support for both the Amstrad SSA-1 and DK'Tronics
77                speech synthesisers.
7878
7979
8080Some bugs left :
src/mess/drivers/ng_aes.c
r12348r12349
19351935   MCFG_CARTSLOT_LOAD(aes_cartridge)
19361936   MCFG_CARTSLOT_INTERFACE("aes_cart")
19371937   MCFG_CARTSLOT_MANDATORY
1938   
1938
19391939   MCFG_SOFTWARE_LIST_ADD("cart_list","aes")
19401940MACHINE_CONFIG_END
19411941
src/mess/drivers/sdk86.c
r12348r12349
104104   // FFF0-FFF3 = 8251 serial chip (even -> data, control) AM_MIRROR(4)
105105   // FFF8-FFFF = 2 x 8255A i/o chips. chip 1 uses the odd addresses, chip 2 uses the even addresses.
106106   //             ports are A,B,C,control in that order.
107   
108   
107
108
109109ADDRESS_MAP_END
110110
111111/* Input ports */
src/mess/drivers/comx35.c
r12348r12349
2929   int extrom = 1;
3030
3131   UINT8 data = m_expansion->mrd_r(offset, &extrom);
32   
32
3333   if (offset < 0x4000)
3434   {
3535      if (extrom) data = rom[offset & 0x3fff];
r12348r12349
4242   {
4343      data = m_vis->char_ram_r(space, offset & 0x3ff);
4444   }
45   
45
4646   return data;
4747}
4848
r12348r12349
7979READ8_MEMBER( comx35_state::io_r )
8080{
8181   UINT8 data = m_expansion->io_r(offset);
82   
82
8383   if (offset == 3)
8484   {
8585      data = m_kbe->data_r(space, 0);
8686   }
87   
87
8888   return data;
8989}
9090
r12348r12349
335335
336336   // cassette output
337337   m_cassette->output(state ? +1.0 : -1.0);
338   
338
339339   // expansion bus
340340   m_expansion->q_w(state);
341341}
r12348r12349
519519   MCFG_PRINTER_ADD("printer")
520520
521521   MCFG_COMXPL80_ADD()
522   
522
523523   // expansion bus
524524   MCFG_COMX_EXPANSION_SLOT_ADD(EXPANSION_TAG, expansion_intf, comx_expansion_cards, "eb", NULL)
525525
r12348r12349
550550   MCFG_PRINTER_ADD("printer")
551551
552552   MCFG_COMXPL80_ADD()
553   
553
554554   // expansion bus
555555   MCFG_COMX_EXPANSION_SLOT_ADD(EXPANSION_TAG, expansion_intf, comx_expansion_cards, "eb", NULL)
556556
src/mess/drivers/tdv2324.c
r12348r12349
11/*
22
33    Tandberg TDV2324
4   
5   Skeleton driver
64
5    Skeleton driver
6
77*/
88
99#define ADDRESS_MAP_MODERN
r12348r12349
8686
8787   MCFG_PALETTE_LENGTH(2)
8888   MCFG_PALETTE_INIT(monochrome_green)
89   
89
9090   // devices
9191   MCFG_S1410_ADD() // 104521-F ROM
9292MACHINE_CONFIG_END
src/mess/drivers/slc1.c
r12348r12349
1111    1 Kbyte RAM in the address range 5000-53ff
1212    6-digit 7-segment display
1313    Busy LED
14    Keyboard with 12 keys
14    Keyboard with 12 keys
1515
1616ToDo:
1717- Everything
r12348r12349
6565WRITE8_MEMBER( slc1_state::io_w )
6666{
6767   UINT8 upper = offset >> 8;
68//   if (upper == 0x2f) return;
68//  if (upper == 0x2f) return;
6969
7070
7171   speaker_level_w(m_speaker, (upper == 0x29));
7272
73//   output_set_led_value(0, BIT(data, 4));
73//  output_set_led_value(0, BIT(data, 4));
7474
7575   // This computer sets each segment, one at a time. */
7676
src/mess/drivers/mac.c
r12348r12349
7676   mac->m_rbv_regs[2] &= ~0x40;   // set vblank signal
7777   mac->m_rbv_vbltime = 10;
7878
79//   printf("RBV: raising VBL!\n");
79//  printf("RBV: raising VBL!\n");
8080
8181   if (mac->m_rbv_regs[0x12] & 0x40)
8282   {
r12348r12349
181181
182182WRITE8_MEMBER( mac_state::mac_sonora_vctl_w )
183183{
184//   printf("Sonora: %02x to vctl %x\n", data, offset);
184//  printf("Sonora: %02x to vctl %x\n", data, offset);
185185   m_sonora_vctl[offset] = data;
186186}
187187
r12348r12349
191191   UINT8 slot_irqs = (~m_rbv_regs[2]) & 0x78;
192192   slot_irqs &= (m_rbv_regs[0x12] & 0x78);
193193
194//   printf("slot_irqs = %02x\n", slot_irqs);
194//  printf("slot_irqs = %02x\n", slot_irqs);
195195   if (slot_irqs)
196196   {
197197      m_rbv_regs[3] |= 2;   // any slot
r12348r12349
203203
204204   UINT8 ifr = (m_rbv_regs[3] & m_rbv_ier) & 0x1b; //m_rbv_regs[0x13]);
205205
206//   printf("ifr = %02x (reg3 %02x reg13 %02x)\n", ifr, m_rbv_regs[3], m_rbv_regs[0x13]);
206//  printf("ifr = %02x (reg3 %02x reg13 %02x)\n", ifr, m_rbv_regs[3], m_rbv_regs[0x13]);
207207   if (ifr != 0)
208208   {
209209      m_rbv_regs[3] = ifr | 0x80;
210210      m_rbv_ifr = ifr | 0x80;
211211
212//      printf("VIA2 raise\n");
212//      printf("VIA2 raise\n");
213213      this->set_via2_interrupt(1);
214214   }
215215   else
216216   {
217//      printf("VIA2 lower\n");
217//      printf("VIA2 lower\n");
218218      this->set_via2_interrupt(0);
219219   }
220220}
r12348r12349
247247      switch (offset)
248248      {
249249         case 13:   // IFR
250//            printf("Read IER = %02x (PC=%x) 2=%02x\n", m_rbv_ier, cpu_get_pc(m_maincpu), m_rbv_regs[2]);
250//              printf("Read IER = %02x (PC=%x) 2=%02x\n", m_rbv_ier, cpu_get_pc(m_maincpu), m_rbv_regs[2]);
251251            return m_rbv_ifr;
252252            break;
253253
254254         case 14:   // IER
255//            printf("Read IFR = %02x (PC=%x) 2=%02x\n", m_rbv_ifr, cpu_get_pc(m_maincpu), m_rbv_regs[2]);
255//              printf("Read IFR = %02x (PC=%x) 2=%02x\n", m_rbv_ifr, cpu_get_pc(m_maincpu), m_rbv_regs[2]);
256256            return m_rbv_ier;
257257            break;
258258
r12348r12349
262262      }
263263   }
264264
265//   printf("rbv_r: %x = %02x (PC=%x)\n", offset, data, cpu_get_pc(m_maincpu));
265//  printf("rbv_r: %x = %02x (PC=%x)\n", offset, data, cpu_get_pc(m_maincpu));
266266
267267   return data;
268268}
r12348r12349
272272   if (offset < 0x100)
273273   {
274274//      if (offset == 0x10)
275//      printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
275//      printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
276276      switch (offset)
277277      {
278278         case 0x00:
r12348r12349
355355      switch (offset)
356356      {
357357         case 13:   // IFR
358//            printf("%02x to IFR (PC=%x)\n", data, cpu_get_pc(m_maincpu));
358//              printf("%02x to IFR (PC=%x)\n", data, cpu_get_pc(m_maincpu));
359359            if (data & 0x80)
360360            {
361361               data = 0x7f;
r12348r12349
364364            break;
365365
366366         case 14:   // IER
367//            printf("%02x to IER (PC=%x)\n", data, cpu_get_pc(m_maincpu));
367//              printf("%02x to IER (PC=%x)\n", data, cpu_get_pc(m_maincpu));
368368            if (data & 0x80)   // 1 bits write 1s
369369            {
370370               m_rbv_ier |= data & 0x7f;
r12348r12349
385385
386386READ32_MEMBER(mac_state::mac_read_id)
387387{
388//   printf("Mac read ID reg @ PC=%x\n", cpu_get_pc(m_maincpu));
388//  printf("Mac read ID reg @ PC=%x\n", cpu_get_pc(m_maincpu));
389389
390390   switch (m_model)
391391   {
r12348r12349
431431// IIfx
432432READ32_MEMBER(mac_state::biu_r)
433433{
434//   printf("biu_r @ %x, mask %08x\n", offset, mem_mask);
434//  printf("biu_r @ %x, mask %08x\n", offset, mem_mask);
435435   return 0;
436436}
437437
438438WRITE32_MEMBER(mac_state::biu_w)
439439{
440//   printf("biu_w %x @ %x, mask %08x\n", data, offset, mem_mask);
440//  printf("biu_w %x @ %x, mask %08x\n", data, offset, mem_mask);
441441}
442442
443443READ8_MEMBER(mac_state::oss_r)
444444{
445//   printf("oss_r @ %x\n", offset);
446//   if (offset <= 0xe)   // for interrupt mask registers, we're intended to return something different than is written in the low 3 bits (?)
447//   {
448//      return m_oss_regs[offset]<<4;
449//   }
445//  printf("oss_r @ %x\n", offset);
446//  if (offset <= 0xe)  // for interrupt mask registers, we're intended to return something different than is written in the low 3 bits (?)
447//  {
448//      return m_oss_regs[offset]<<4;
449//  }
450450
451451   return m_oss_regs[offset];
452452}
453453
454454WRITE8_MEMBER(mac_state::oss_w)
455455{
456//   printf("oss_w %x @ %x\n", data, offset);
456//  printf("oss_w %x @ %x\n", data, offset);
457457   m_oss_regs[offset] = data;
458458}
459459
r12348r12349
466466
467467READ8_MEMBER(mac_state::scciop_r)
468468{
469//   printf("scciop_r @ %x (PC=%x)\n", offset, cpu_get_pc(m_maincpu));
469//  printf("scciop_r @ %x (PC=%x)\n", offset, cpu_get_pc(m_maincpu));
470470   return 0;
471471}
472472
473473WRITE8_MEMBER(mac_state::scciop_w)
474474{
475//   printf("scciop_w %x @ %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
475//  printf("scciop_w %x @ %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
476476}
477477
478478READ8_MEMBER(mac_state::swimiop_r)
479479{
480//   printf("swimiop_r @ %x (PC=%x)\n", offset, cpu_get_pc(m_maincpu));
480//  printf("swimiop_r @ %x (PC=%x)\n", offset, cpu_get_pc(m_maincpu));
481481   return 0;
482482}
483483
484484WRITE8_MEMBER(mac_state::swimiop_w)
485485{
486//   printf("swimiop_w %x @ %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
486//  printf("swimiop_w %x @ %x (PC=%x)\n", data, offset, cpu_get_pc(m_maincpu));
487487}
488488
489489READ8_MEMBER(mac_state::pmac_diag_r)
r12348r12349
504504
505505WRITE8_MEMBER(mac_state::amic_dma_w)
506506{
507//   printf("amic_dma_w: %02x at %x (PC=%x)\n", data, offset+0x1000, cpu_get_pc(m_maincpu));
507//  printf("amic_dma_w: %02x at %x (PC=%x)\n", data, offset+0x1000, cpu_get_pc(m_maincpu));
508508}
509509
510510// HMC has one register: a 35-bit shift register which is accessed one bit at a time (see pmac6100 code at 4030383c which makes this obvious)
r12348r12349
709709
710710static ADDRESS_MAP_START(macpb160_map, AS_PROGRAM, 32, mac_state )
711711   AM_RANGE(0x40000000, 0x400fffff) AM_ROM AM_REGION("bootrom", 0) AM_MIRROR(0x0ff00000)
712                                                                 
712
713713   AM_RANGE(0x50f00000, 0x50f01fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff)
714714   AM_RANGE(0x50f02000, 0x50f03fff) AM_READWRITE16(mac_via2_r, mac_via2_w, 0xffffffff)
715715   AM_RANGE(0x50f04000, 0x50f05fff) AM_READWRITE16(mac_scc_r, mac_scc_2_w, 0xffffffff)
r12348r12349
725725ADDRESS_MAP_END
726726/*
727727static ADDRESS_MAP_START(macpb165c_map, AS_PROGRAM, 32, mac_state )
728   AM_RANGE(0x40000000, 0x400fffff) AM_ROM AM_REGION("bootrom", 0) AM_MIRROR(0x0ff00000)
729                                                                 
730   AM_RANGE(0x50f00000, 0x50f01fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff)
731   AM_RANGE(0x50f02000, 0x50f03fff) AM_READWRITE16(mac_via2_r, mac_via2_w, 0xffffffff)
732   AM_RANGE(0x50f04000, 0x50f05fff) AM_READWRITE16(mac_scc_r, mac_scc_2_w, 0xffffffff)
733   AM_RANGE(0x50f06000, 0x50f07fff) AM_READWRITE(macii_scsi_drq_r, macii_scsi_drq_w)
734   AM_RANGE(0x50f10000, 0x50f11fff) AM_READWRITE16(macplus_scsi_r, macii_scsi_w, 0xffffffff)
735   AM_RANGE(0x50f12060, 0x50f12063) AM_READ(macii_scsi_drq_r)
736   AM_RANGE(0x50f14000, 0x50f15fff) AM_DEVREADWRITE8("asc", asc_device, read, write, 0xffffffff)
737   AM_RANGE(0x50f16000, 0x50f17fff) AM_READWRITE16(mac_iwm_r, mac_iwm_w, 0xffffffff)
738   AM_RANGE(0x50f20000, 0x50f21fff) AM_READ(buserror_r)   // bus error here to detect we're not the grayscale 160/165/180
739   AM_RANGE(0x50f24000, 0x50f27fff) AM_READ(buserror_r)   // bus error here to make sure we aren't mistaken for another decoder
728    AM_RANGE(0x40000000, 0x400fffff) AM_ROM AM_REGION("bootrom", 0) AM_MIRROR(0x0ff00000)
740729
741   AM_RANGE(0xfc040000, 0xfc07ffff) AM_RAM   AM_BASE(m_vram)
742   AM_RANGE(0xfcff0000, 0xfcffffff) AM_ROM AM_REGION("bootrom", 0xf0000)
730    AM_RANGE(0x50f00000, 0x50f01fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff)
731    AM_RANGE(0x50f02000, 0x50f03fff) AM_READWRITE16(mac_via2_r, mac_via2_w, 0xffffffff)
732    AM_RANGE(0x50f04000, 0x50f05fff) AM_READWRITE16(mac_scc_r, mac_scc_2_w, 0xffffffff)
733    AM_RANGE(0x50f06000, 0x50f07fff) AM_READWRITE(macii_scsi_drq_r, macii_scsi_drq_w)
734    AM_RANGE(0x50f10000, 0x50f11fff) AM_READWRITE16(macplus_scsi_r, macii_scsi_w, 0xffffffff)
735    AM_RANGE(0x50f12060, 0x50f12063) AM_READ(macii_scsi_drq_r)
736    AM_RANGE(0x50f14000, 0x50f15fff) AM_DEVREADWRITE8("asc", asc_device, read, write, 0xffffffff)
737    AM_RANGE(0x50f16000, 0x50f17fff) AM_READWRITE16(mac_iwm_r, mac_iwm_w, 0xffffffff)
738    AM_RANGE(0x50f20000, 0x50f21fff) AM_READ(buserror_r)    // bus error here to detect we're not the grayscale 160/165/180
739    AM_RANGE(0x50f24000, 0x50f27fff) AM_READ(buserror_r)   // bus error here to make sure we aren't mistaken for another decoder
740
741    AM_RANGE(0xfc040000, 0xfc07ffff) AM_RAM AM_BASE(m_vram)
742    AM_RANGE(0xfcff0000, 0xfcffffff) AM_ROM AM_REGION("bootrom", 0xf0000)
743743ADDRESS_MAP_END
744744*/
745745
r12348r12349
761761   AM_RANGE(0x50028000, 0x50028007) AM_READWRITE8(mac_sonora_vctl_r, mac_sonora_vctl_w, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
762762   // 5002a000 = interrupt controller
763763   // 5002c000 = diagnostic registers
764   AM_RANGE(0x5002c000, 0x5002dfff) AM_READ8(pmac_diag_r, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
765   AM_RANGE(0x50031000, 0x50032fff) AM_READWRITE8(amic_dma_r, amic_dma_w, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
766   AM_RANGE(0x50040000, 0x5004000f) AM_READWRITE8(hmc_r, hmc_w, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000) 
764   AM_RANGE(0x5002c000, 0x5002dfff) AM_READ8(pmac_diag_r, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
765   AM_RANGE(0x50031000, 0x50032fff) AM_READWRITE8(amic_dma_r, amic_dma_w, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
766   AM_RANGE(0x50040000, 0x5004000f) AM_READWRITE8(hmc_r, hmc_w, U64(0xffffffffffffffff)) AM_MIRROR(0x00f00000)
767767   AM_RANGE(0x5ffffff8, 0x5fffffff) AM_READ32(mac_read_id, U64(0xffffffffffffffff))
768768
769769   AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("bootrom", 0)
r12348r12349
810810};
811811
812812static SLOT_INTERFACE_START(mac_nubus_cards)
813//   SLOT_INTERFACE("48gc", NUBUS_48GC)
813//  SLOT_INTERFACE("48gc", NUBUS_48GC)
814814SLOT_INTERFACE_END
815815
816816/***************************************************************************
r12348r12349
10041004
10051005   /* devices */
10061006   MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf)
1007//   MCFG_NUBUS_SLOT_ADD("nubus","nb9", mac_nubus_cards, "48gc", NULL)
1007//  MCFG_NUBUS_SLOT_ADD("nubus","nb9", mac_nubus_cards, "48gc", NULL)
10081008
10091009   MCFG_NCR5380_ADD("ncr5380", C7M, macplus_5380intf)
10101010
r12348r12349
13731373MACHINE_CONFIG_END
13741374/*
13751375static MACHINE_CONFIG_DERIVED( macpb180c, macpb160 )
1376   MCFG_CPU_REPLACE("maincpu", M68030, 33000000)
1377   MCFG_CPU_PROGRAM_MAP(macpb165c_map)
1376    MCFG_CPU_REPLACE("maincpu", M68030, 33000000)
1377    MCFG_CPU_PROGRAM_MAP(macpb165c_map)
13781378
1379   MCFG_RAM_MODIFY(RAM_TAG)
1380   MCFG_RAM_DEFAULT_SIZE("4M")
1381   MCFG_RAM_EXTRA_OPTIONS("8M,12M,16M")
1379    MCFG_RAM_MODIFY(RAM_TAG)
1380    MCFG_RAM_DEFAULT_SIZE("4M")
1381    MCFG_RAM_EXTRA_OPTIONS("8M,12M,16M")
13821382MACHINE_CONFIG_END
13831383*/
13841384static MACHINE_CONFIG_DERIVED( macclas2, maclc )
r12348r12349
18191819   ROM_SYSTEM_BIOS(0, "default", "rev. B")
18201820   ROMX_LOAD( "9779d2c4.rom", 0x000000, 0x040000, CRC(4df6d054) SHA1(db6b504744281369794e26ba71a6e385cf6227fa), ROM_BIOS(1) )
18211821   ROM_SYSTEM_BIOS(1, "original", "rev. A")
1822   ROMX_LOAD( "97851db6.rom", 0x000000, 0x040000, CRC(8c8b9d03) SHA1(5c264fe976f1e8495d364947c932a5e8309b4300), ROM_BIOS(2) )
1822   ROMX_LOAD( "97851db6.rom", 0x000000, 0x040000, CRC(8c8b9d03) SHA1(5c264fe976f1e8495d364947c932a5e8309b4300), ROM_BIOS(2) )
18231823
18241824   // RasterOps "ColorBoard 264" NuBus video card
18251825   ROM_REGION32_BE(0x8000, "rops264", 0)
r12348r12349
18321832   ROM_SYSTEM_BIOS(0, "default", "rev. B")
18331833   ROMX_LOAD( "9779d2c4.rom", 0x000000, 0x040000, CRC(4df6d054) SHA1(db6b504744281369794e26ba71a6e385cf6227fa), ROM_BIOS(1) )
18341834   ROM_SYSTEM_BIOS(1, "original", "rev. A")
1835   ROMX_LOAD( "97851db6.rom", 0x000000, 0x040000, CRC(8c8b9d03) SHA1(5c264fe976f1e8495d364947c932a5e8309b4300), ROM_BIOS(2) )
1835   ROMX_LOAD( "97851db6.rom", 0x000000, 0x040000, CRC(8c8b9d03) SHA1(5c264fe976f1e8495d364947c932a5e8309b4300), ROM_BIOS(2) )
18361836
18371837   // RasterOps "ColorBoard 264" NuBus video card
18381838   ROM_REGION32_BE(0x8000, "rops264", 0)
r12348r12349
18801880
18811881ROM_START( maciifx )
18821882   ROM_REGION32_BE(0x80000, "bootrom", 0)
1883   ROM_LOAD( "4147dd77.rom", 0x000000, 0x080000, CRC(ef441bbd) SHA1(9fba3d4f672a630745d65788b1d1119afa2c6728) )
1883   ROM_LOAD( "4147dd77.rom", 0x000000, 0x080000, CRC(ef441bbd) SHA1(9fba3d4f672a630745d65788b1d1119afa2c6728) )
18841884
18851885   // RasterOps "ColorBoard 264" NuBus video card
18861886   ROM_REGION32_BE(0x8000, "rops264", 0)
r12348r12349
19001900
19011901ROM_START( maciivx )
19021902   ROM_REGION32_BE(0x100000, "bootrom", 0)
1903   ROM_LOAD( "4957eb49.rom", 0x000000, 0x100000, CRC(61be06e5) SHA1(560ce203d65178657ad09d03f532f86fa512bb40) )
1903   ROM_LOAD( "4957eb49.rom", 0x000000, 0x100000, CRC(61be06e5) SHA1(560ce203d65178657ad09d03f532f86fa512bb40) )
19041904ROM_END
19051905
19061906ROM_START( maciivi )
19071907   ROM_REGION32_BE(0x100000, "bootrom", 0)
1908   ROM_LOAD( "4957eb49.rom", 0x000000, 0x100000, CRC(61be06e5) SHA1(560ce203d65178657ad09d03f532f86fa512bb40) )
1908   ROM_LOAD( "4957eb49.rom", 0x000000, 0x100000, CRC(61be06e5) SHA1(560ce203d65178657ad09d03f532f86fa512bb40) )
19091909ROM_END
19101910
19111911ROM_START( macclas2 )
r12348r12349
19431943
19441944ROM_START( macpb140 )
19451945   ROM_REGION32_BE(0x100000, "bootrom", 0)
1946   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
1946   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
19471947ROM_END
19481948
19491949ROM_START( macpb145 )
19501950   ROM_REGION32_BE(0x100000, "bootrom", 0)
1951   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
1951   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
19521952ROM_END
19531953
19541954ROM_START( macpb145b )
19551955   ROM_REGION32_BE(0x100000, "bootrom", 0)
1956   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
1956   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
19571957ROM_END
19581958
19591959ROM_START( macpb170 )
19601960   ROM_REGION32_BE(0x100000, "bootrom", 0)
1961   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
1961   ROM_LOAD( "420dbff3.rom", 0x000000, 0x100000, CRC(88ea2081) SHA1(7a8ee468d16e64f2ad10cb8d1a45e6f07cc9e212) )
19621962ROM_END
19631963
19641964ROM_START( macpb160 )
19651965   ROM_REGION32_BE(0x100000, "bootrom", 0)
1966   ROM_LOAD( "e33b2724.rom", 0x000000, 0x100000, CRC(536c60f4) SHA1(c0510682ae6d973652d7e17f3c3b27629c47afac) )
1966   ROM_LOAD( "e33b2724.rom", 0x000000, 0x100000, CRC(536c60f4) SHA1(c0510682ae6d973652d7e17f3c3b27629c47afac) )
19671967ROM_END
19681968
19691969ROM_START( macpb180 )
19701970   ROM_REGION32_BE(0x100000, "bootrom", 0)
1971   ROM_LOAD( "e33b2724.rom", 0x000000, 0x100000, CRC(536c60f4) SHA1(c0510682ae6d973652d7e17f3c3b27629c47afac) )
1971   ROM_LOAD( "e33b2724.rom", 0x000000, 0x100000, CRC(536c60f4) SHA1(c0510682ae6d973652d7e17f3c3b27629c47afac) )
19721972ROM_END
19731973
19741974ROM_START( maccclas )
r12348r12349
19871987COMP( 1987, maciihmu, macii,   0,   maciihmu, macadb,   macii,         "Apple Computer", "Macintosh II (w/o 68851 MMU)", 0 )
19881988COMP( 1988, mac2fdhd, 0,      0,   macii,    macadb,   maciifdhd,     "Apple Computer", "Macintosh II (FDHD)",  0 )
19891989COMP( 1988, maciix,   mac2fdhd, 0,   maciix,   macadb,   maciix,         "Apple Computer", "Macintosh IIx",  0 )
1990COMP( 1989, macprtb,  0,        0,  macprtb,  macadb,   macprtb,       "Apple Computer", "Macintosh Portable", GAME_NOT_WORKING )
1990COMP( 1989, macprtb,  0,        0,  macprtb,  macadb,   macprtb,     "Apple Computer", "Macintosh Portable", GAME_NOT_WORKING )
19911991COMP( 1989, macse30,  mac2fdhd, 0,   macse30,  macadb,   macse30,     "Apple Computer", "Macintosh SE/30",  0 )
19921992COMP( 1989, maciicx,  mac2fdhd, 0,   maciix,   macadb,   maciicx,     "Apple Computer", "Macintosh IIcx",  0 )
19931993COMP( 1989, maciici,  0,      0,   maciici,  maciici,  maciici,     "Apple Computer", "Macintosh IIci", 0 )
r12348r12349
19951995COMP( 1990, macclasc, 0,      0,   macse,    macadb,   macclassic,     "Apple Computer", "Macintosh Classic",  0 )
19961996COMP( 1990, maclc,    0,      0,   maclc,    maciici,  maclc,         "Apple Computer", "Macintosh LC",  GAME_NOT_WORKING )
19971997COMP( 1990, maciisi,  0,      0,   maciisi,  maciici,  maciisi,     "Apple Computer", "Macintosh IIsi",  GAME_NOT_WORKING )
1998COMP( 1991, macpb100, 0,        0,  macprtb,  macadb,   macprtb,       "Apple Computer", "Macintosh PowerBook 100", GAME_NOT_WORKING )
1999COMP( 1991, macpb140, 0,        0,  macpb140, macadb,   macpb140,       "Apple Computer", "Macintosh PowerBook 140", GAME_NOT_WORKING )
2000COMP( 1991, macpb170, macpb140, 0,  macpb170, macadb,   macpb140,       "Apple Computer", "Macintosh PowerBook 170", GAME_NOT_WORKING )
1998COMP( 1991, macpb100, 0,        0,  macprtb,  macadb,   macprtb,     "Apple Computer", "Macintosh PowerBook 100", GAME_NOT_WORKING )
1999COMP( 1991, macpb140, 0,        0,  macpb140, macadb,   macpb140,     "Apple Computer", "Macintosh PowerBook 140", GAME_NOT_WORKING )
2000COMP( 1991, macpb170, macpb140, 0,  macpb170, macadb,   macpb140,     "Apple Computer", "Macintosh PowerBook 170", GAME_NOT_WORKING )
20012001COMP( 1991, macclas2, 0,      0,   macclas2, macadb,   macclassic2,  "Apple Computer", "Macintosh Classic II",  GAME_NOT_WORKING )
2002COMP( 1991, maclc2,   0,       0,   maclc2,   maciici,  maclc2,         "Apple Computer", "Macintosh LC II",  GAME_NOT_WORKING )
2003COMP( 1992, macpb145, macpb140, 0,  macpb145, macadb,   macpb140,       "Apple Computer", "Macintosh PowerBook 145", GAME_NOT_WORKING )
2004COMP( 1992, macpb160, 0,        0,  macpb160, macadb,   macpb160,       "Apple Computer", "Macintosh PowerBook 160", GAME_NOT_WORKING )
2005COMP( 1992, macpb180, macpb160, 0,  macpb180, macadb,   macpb160,       "Apple Computer", "Macintosh PowerBook 180", GAME_NOT_WORKING )
2006//COMP( 1992, macp180c, macpb160, 0,  macpb180c,macadb,   macpb160,       "Apple Computer", "Macintosh PowerBook 180c", GAME_NOT_WORKING )
2002COMP( 1991, maclc2,   0,      0,   maclc2,   maciici,  maclc2,         "Apple Computer", "Macintosh LC II",  GAME_NOT_WORKING )
2003COMP( 1992, macpb145, macpb140, 0,  macpb145, macadb,   macpb140,     "Apple Computer", "Macintosh PowerBook 145", GAME_NOT_WORKING )
2004COMP( 1992, macpb160, 0,        0,  macpb160, macadb,   macpb160,     "Apple Computer", "Macintosh PowerBook 160", GAME_NOT_WORKING )
2005COMP( 1992, macpb180, macpb160, 0,  macpb180, macadb,   macpb160,     "Apple Computer", "Macintosh PowerBook 180", GAME_NOT_WORKING )
2006//COMP( 1992, macp180c, macpb160, 0,  macpb180c,macadb,   macpb160,       "Apple Computer", "Macintosh PowerBook 180c", GAME_NOT_WORKING )
20072007COMP( 1993, maccclas, 0,        0,  maclc2,   macadb,   maclrcclassic,"Apple Computer", "Macintosh Color Classic", GAME_NOT_WORKING )
2008COMP( 1992, macpb145b,macpb140, 0,  macpb170, macadb,   macpb140,       "Apple Computer", "Macintosh PowerBook 145B", GAME_NOT_WORKING )
2008COMP( 1992, macpb145b,macpb140, 0,  macpb170, macadb,   macpb140,     "Apple Computer", "Macintosh PowerBook 145B", GAME_NOT_WORKING )
20092009COMP( 1993, maclc3,   0,      0,   maclc3,   maciici,  maclc3,         "Apple Computer", "Macintosh LC III",  GAME_NOT_WORKING )
20102010COMP( 1993, maciivx,  0,      0,   maciivx,  maciici,  maciivx,     "Apple Computer", "Macintosh IIvx",  GAME_NOT_WORKING )
20112011COMP( 1993, maciivi,  maciivx,   0,   maciivi,  maciici,  maciivx,     "Apple Computer", "Macintosh IIvi",  GAME_NOT_WORKING )
src/mess/drivers/z88.c
r12348r12349
167167
168168   /* special case */
169169   if (read_addr == NULL) printf("Read Bank is NULL\n");
170   //   read_addr = &machine.region("maincpu")->base()[start];
170   //  read_addr = &machine.region("maincpu")->base()[start];
171171
172172   /* install the handlers */
173173   machine().device("maincpu")->memory().space(AS_PROGRAM )->install_read_bank(start, start + size - 1, bank_r);
r12348r12349
606606   PORT_START("LINE7")
607607   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift (Right)") PORT_CODE(KEYCODE_RSHIFT)   PORT_CHAR(UCHAR_SHIFT_1)
608608   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Square") PORT_CODE(KEYCODE_F1)            PORT_CHAR(UCHAR_MAMEKEY(F1))
609   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC)                         PORT_CHAR(UCHAR_MAMEKEY(ESC))
609   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ESC)                        PORT_CHAR(UCHAR_MAMEKEY(ESC))
610610   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Index") PORT_CODE(KEYCODE_F2)            PORT_CHAR(UCHAR_MAMEKEY(F2))
611611   PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK)      PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
612612   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP)                        PORT_CHAR('.') PORT_CHAR('>')
src/mess/drivers/prof80.c
r12348r12349
4343//**************************************************************************
4444
4545//-------------------------------------------------
46//  bankswitch -
46//  bankswitch -
4747//-------------------------------------------------
4848
4949void prof80_state::bankswitch()
r12348r12349
9696//**************************************************************************
9797
9898//-------------------------------------------------
99//  floppy_motor_off -
99//  floppy_motor_off -
100100//-------------------------------------------------
101101
102102void prof80_state::floppy_motor_off()
r12348r12349
123123
124124
125125//-------------------------------------------------
126//  ls259_w -
126//  ls259_w -
127127//-------------------------------------------------
128128
129129void prof80_state::ls259_w(int fa, int sa, int fb, int sb)
r12348r12349
225225
226226
227227//-------------------------------------------------
228//  flr_w -
228//  flr_w -
229229//-------------------------------------------------
230230
231231WRITE8_MEMBER( prof80_state::flr_w )
r12348r12349
256256
257257
258258//-------------------------------------------------
259//  status_r -
259//  status_r -
260260//-------------------------------------------------
261261
262262READ8_MEMBER( prof80_state::status_r )
r12348r12349
291291
292292
293293//-------------------------------------------------
294//  status2_r -
294//  status2_r -
295295//-------------------------------------------------
296296
297297READ8_MEMBER( prof80_state::status2_r )
r12348r12349
349349
350350
351351//-------------------------------------------------
352//  par_w -
352//  par_w -
353353//-------------------------------------------------
354354
355355WRITE8_MEMBER( prof80_state::par_w )
r12348r12349
368368WRITE8_MEMBER( prof80_state::unio_ctrl_w )
369369{
370370//  int flag = BIT(data, 0);
371   int flad = (data >> 1) & 0x07;
371    int flad = (data >> 1) & 0x07;
372372
373   switch (flad)
374   {
375   case 0: // CG1
376   case 1: // CG2
377   case 2: // _STB1
378   case 3: // _STB2
379   case 4: // _INIT
380   case 5: // JSO0
381   case 6: // JSO1
382   case 7: // JSO2
383      break;
384   }
373    switch (flad)
374    {
375    case 0: // CG1
376    case 1: // CG2
377    case 2: // _STB1
378    case 3: // _STB2
379    case 4: // _INIT
380    case 5: // JSO0
381    case 6: // JSO1
382    case 7: // JSO2
383        break;
384    }
385385}
386386*/
387387
r12348r12349
408408//  AM_RANGE(0x80, 0x8f) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(UNIO_Z80STI_TAG, z80sti_r, z80sti_w)
409409//  AM_RANGE(0x94, 0x95) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(UNIO_Z80SIO_TAG, z80sio_d_r, z80sio_d_w)
410410//  AM_RANGE(0x96, 0x97) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY(UNIO_Z80SIO_TAG, z80sio_c_r, z80sio_c_w)
411//   AM_RANGE(0x9e, 0x9e) AM_MIRROR(0xff00) AM_WRITE(unio_ctrl_w)
411//  AM_RANGE(0x9e, 0x9e) AM_MIRROR(0xff00) AM_WRITE(unio_ctrl_w)
412412//  AM_RANGE(0x9c, 0x9c) AM_MIRROR(0xff00) AM_DEVWRITE_LEGACY(UNIO_CENTRONICS1_TAG, centronics_data_w)
413413//  AM_RANGE(0x9d, 0x9d) AM_MIRROR(0xff00) AM_DEVWRITE_LEGACY(UNIO_CENTRONICS1_TAG, centronics_data_w)
414414//  AM_RANGE(0xc0, 0xc0) AM_MIRROR(0xff00) AM_READ(gripc_r)
r12348r12349
573573
574574static SLOT_INTERFACE_START( prof80_ecb_cards )
575575   SLOT_INTERFACE("grip21", ECB_GRIP21)
576/*   SLOT_INTERFACE("grip25", ECB_GRIP25)
577   SLOT_INTERFACE("grip26", ECB_GRIP26)
578   SLOT_INTERFACE("grip31", ECB_GRIP31)
579   SLOT_INTERFACE("grip562", ECB_GRIP562)
580   SLOT_INTERFACE("grips115", ECB_GRIPS115)*/
576/*  SLOT_INTERFACE("grip25", ECB_GRIP25)
577    SLOT_INTERFACE("grip26", ECB_GRIP26)
578    SLOT_INTERFACE("grip31", ECB_GRIP31)
579    SLOT_INTERFACE("grip562", ECB_GRIP562)
580    SLOT_INTERFACE("grips115", ECB_GRIPS115)*/
581581SLOT_INTERFACE_END
582582
583583
r12348r12349
656656   MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf)
657657   MCFG_UPD765A_ADD(UPD765_TAG, fdc_intf)
658658   MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(floppy_intf)
659   
659
660660   // ECB bus
661661   MCFG_ECBBUS_ADD(Z80_TAG, ecb_intf)
662662   MCFG_ECBBUS_SLOT_ADD(1, "ecb_1", prof80_ecb_cards, "grip21", NULL)
src/mess/drivers/lisa.c
r12348r12349
406406
407407   ROM_REGION(0x2000,"fdccpu",0)      /* 6504 RAM and ROM */
408408   /* note: other ?prototype? revisions of this rom for the lisa probably exist as well */
409    ROM_LOAD( "341-0138f.bin", 0x000000, 0x001000, CRC(edd8d560) SHA1(872211d21386cd9625b3735d7682e2b2ecff05b4) )
409    ROM_LOAD( "341-0138f.bin", 0x000000, 0x001000, CRC(edd8d560) SHA1(872211d21386cd9625b3735d7682e2b2ecff05b4) )
410410
411411   ROM_REGION(0x4000,"profile", 0)      /* Profile/5 HDD */
412412   ROM_LOAD_OPTIONAL( "341-0080-b", 0x0000, 0x800, CRC(26df0b8d) SHA1(08f6689afb517e0a2bdaa48433003e62a66ae3c7)) /* 341-0080-B z8 mcu piggyback rom */
src/mess/drivers/acrnsys1.c
r12348r12349
6767   for (i = 0; i < 8; i++)
6868   {
6969      if (BIT(key_line, i))
70      {   
70      {
7171         char kbdrow[6];
7272         sprintf(kbdrow,"X%X",i);
7373         data = (input_port_read(machine(), kbdrow) & 0x38) | m_digit;
src/mess/drivers/tsispch.c
r12348r12349
204204WRITE8_MEMBER( tsispch_state::peripheral_w )
205205{
206206   /* This controls the four LEDS, the RESET line for the upd77p20,
207   and (probably) the p0-to-ir0 masking of the upd77p20; there are two
208   unknown and seemingly unused bits as well.
209   see the top of the file for more info.
210   */
207    and (probably) the p0-to-ir0 masking of the upd77p20; there are two
208    unknown and seemingly unused bits as well.
209    see the top of the file for more info.
210    */
211211   tsispch_state *state = machine().driver_data<tsispch_state>();
212212   state->m_paramReg = data;
213213   cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, BIT(data,6)?CLEAR_LINE:ASSERT_LINE);
src/mess/drivers/c64.c
r12348r12349
756756
757757   MCFG_FRAGMENT_ADD(c64_cartslot)
758758   MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop")
759   
759
760760   MCFG_C64_EXPANSION_SLOT_ADD("exp", c64_expansion_intf, c64_expansion_cards, NULL, NULL)
761761MACHINE_CONFIG_END
762762
r12348r12349
813813
814814   MCFG_FRAGMENT_ADD(c64_cartslot)
815815   MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop")
816   
816
817817   MCFG_C64_EXPANSION_SLOT_ADD("exp", c64_expansion_intf, c64_expansion_cards, NULL, NULL)
818818MACHINE_CONFIG_END
819819
src/mess/drivers/pc.c
r12348r12349
15911591ROM_START( t1000tl2 )
15921592   ROM_REGION(0x100000, "maincpu", 0)
15931593   ROM_LOAD( "t10000tl2.bin", 0xf0000, 0x10000, CRC(e288f12c) SHA1(9d54ccf773cd7202c9906323f1b5a68b1b3a3a67))
1594   
1594
15951595      ROM_REGION(0x08000,"gfx1", 0)
15961596   // expects 8x9 charset!
15971597   /* Character rom located at U3 w/label "8079027 // NCR // 609-2495004 // F841030 A9025" */
r12348r12349
18351835COMP(  1987,   t1000sx,    ibm5150,   0,   t1000hx,    tandy1t,   t1000hx,    "Tandy Radio Shack",  "Tandy 1000 SX", GAME_NOT_WORKING)
18361836COMP(  1987,   t1000tx,    ibm5150,   0,   t1000_286,  tandy1t,   t1000hx,    "Tandy Radio Shack",  "Tandy 1000 TX", 0)
18371837COMP(  1989,   t1000rl,    ibm5150,   0,   t1000_16,   tandy1t,    t1000hx,    "Tandy Radio Shack",  "Tandy 1000 RL", 0)
1838COMP ( 1989,   t1000tl2,    ibm5150,    0, t1000_286,   tandy1t,   t1000hx,    "Tandy Radio Shack",  "Tandy 1000 TL/2", 0)
1838COMP ( 1989,   t1000tl2,   ibm5150,    0, t1000_286,   tandy1t,   t1000hx,    "Tandy Radio Shack",  "Tandy 1000 TL/2", 0)
18391839
18401840COMP ( 1989,   iskr1031,   ibm5150,   0,   iskr1031,   pccga,   pccga,   "<unknown>",  "Iskra-1031" , GAME_NOT_WORKING)
18411841COMP ( 1989,   iskr1030m,  ibm5150,   0,   iskr1031,   pccga,   pccga,   "<unknown>",  "Iskra-1030M" , GAME_NOT_WORKING)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team