Previous 199869 Revisions Next

r23592 Monday 10th June, 2013 at 13:42:37 UTC by Curt Coder
com8116: devcb2. (nw)
[src/emu/machine]com8116.c com8116.h
[src/mess/drivers]kaypro.c ob68k1a.c softbox.c super6.c superslave.c vk100.c vt100.c xerox820.c xor100.c
[src/mess/machine]s100_dj2db.c s100_dj2db.h softbox.c

trunk/src/emu/machine/com8116.c
r23591r23592
77
88**********************************************************************/
99
10#include "emu.h"
1110#include "com8116.h"
1211
1312
r23591r23592
2120
2221
2322//**************************************************************************
24//  LIVE DEVICE
23//  DEVICE DEFINITIONS
2524//**************************************************************************
2625
2726// device type definition
2827const device_type COM8116 = &device_creator<com8116_device>;
2928
30//-------------------------------------------------
31//  com8116_device - constructor
32//-------------------------------------------------
3329
34com8116_device::com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
35   : device_t(mconfig, COM8116, "COM8116", tag, owner, clock)
36{
37}
30const int com8116_device::divisors_16X_5_0688MHz[] =
31   { 6336, 4224, 2880, 2355, 2112, 1056, 528, 264, 176, 158, 132, 88, 66, 44, 33, 16 };
3832
33const int com8116_device::divisors_16X_4_9152MHz[] =
34   { 6144, 4096, 2793, 2284, 2048, 1024, 512, 256, 171, 154, 128, 85, 64, 43, 32, 16 };
3935
36const int com8116_device::divisors_32X_5_0688MHz[] =
37   { 3168, 2112, 1440, 1177, 1056, 792, 528, 264, 132, 88, 66, 44, 33, 22, 16, 8 };
38
39
40
41//**************************************************************************
42//  LIVE DEVICE
43//**************************************************************************
44
4045//-------------------------------------------------
41//  device_config_complete - perform any
42//  operations now that the configuration is
43//  complete
46//  com8116_device - constructor
4447//-------------------------------------------------
4548
46void com8116_device::device_config_complete()
49com8116_device::com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
50   : device_t(mconfig, COM8116, "COM8116", tag, owner, clock),
51     m_write_fx4(*this),
52     m_write_fr(*this),
53     m_write_ft(*this)
4754{
48   // inherit a copy of the static data
49   const com8116_interface *intf = reinterpret_cast<const com8116_interface *>(static_config());
50   if (intf != NULL)
51      *static_cast<com8116_interface *>(this) = *intf;
52
53   // or initialize to defaults if none provided
54   else
55   {
56      memset(&m_out_fx4_cb, 0, sizeof(m_out_fx4_cb));
57      memset(&m_out_fr_cb, 0, sizeof(m_out_fr_cb));
58      memset(&m_out_ft_cb, 0, sizeof(m_out_ft_cb));
59   }
6055}
6156
6257
r23591r23592
6762void com8116_device::device_start()
6863{
6964   // resolve callbacks
70   m_out_fx4_func.resolve(m_out_fx4_cb, *this);
71   m_out_fr_func.resolve(m_out_fr_cb, *this);
72   m_out_ft_func.resolve(m_out_ft_cb, *this);
65   m_write_fx4.resolve_safe();
66   m_write_fr.resolve_safe();
67   m_write_ft.resolve_safe();
7368
7469   // allocate timers
7570   m_fx4_timer = timer_alloc(TIMER_FX4);
76   m_fx4_timer->adjust(attotime::zero, 0, attotime::from_hz(clock() / 4));
71   m_fx4_timer->adjust(attotime::from_hz(clock() / 4), 0, attotime::from_hz(clock() / 4));
7772   m_fr_timer = timer_alloc(TIMER_FR);
7873   m_ft_timer = timer_alloc(TIMER_FT);
7974
75   m_fr_divisors = divisors_16X_5_0688MHz;
76   m_ft_divisors = divisors_16X_5_0688MHz;
77
8078   // register for state saving
8179   save_item(NAME(m_fr));
8280   save_item(NAME(m_ft));
r23591r23592
103101   switch (id)
104102   {
105103   case TIMER_FX4:
106      m_out_fx4_func(1);
104      m_write_fx4(1);
107105      break;
108106
109107   case TIMER_FR:
110      m_out_fr_func(1);
108      m_write_fr(1);
111109      break;
112110
113111   case TIMER_FT:
114      m_out_ft_func(1);
112      m_write_ft(1);
115113      break;
116114   }
117115}
trunk/src/emu/machine/com8116.h
r23591r23592
1919
2020**********************************************************************/
2121
22
2322#pragma once
2423
2524#ifndef __COM8116__
r23591r23592
3332//  INTERFACE CONFIGURATION MACROS
3433///*************************************************************************
3534
36#define MCFG_COM8116_ADD(_tag, _clock, _config) \
37   MCFG_DEVICE_ADD(_tag, COM8116, _clock)  \
38   MCFG_DEVICE_CONFIG(_config)
35#define MCFG_COM8116_ADD(_tag, _clock, _fx4, _fr, _ft) \
36   MCFG_DEVICE_ADD(_tag, COM8116, _clock) \
37   downcast<com8116_device *>(device)->set_fx4_callback(DEVCB2_##_fx4); \
38   downcast<com8116_device *>(device)->set_fr_callback(DEVCB2_##_fr); \
39   downcast<com8116_device *>(device)->set_ft_callback(DEVCB2_##_ft);
3940
4041
41#define COM8116_INTERFACE(name) \
42   const com8116_interface (name) =
4342
44
45#define COM8116_DIVISORS_16X_5_0688MHz \
46   { 6336, 4224, 2880, 2355, 2112, 1056, 528, 264, 176, 158, 132, 88, 66, 44, 33, 16 }
47
48#define COM8116_DIVISORS_16X_4_9152MHz \
49   { 6144, 4096, 2793, 2284, 2048, 1024, 512, 256, 171, 154, 128, 85, 64, 43, 32, 16 }
50
51#define COM8116_DIVISORS_32X_5_0688MHz \
52   { 3168, 2112, 1440, 1177, 1056, 792, 528, 264, 132, 88, 66, 44, 33, 22, 16, 8 }
53
54
55
5643///*************************************************************************
5744//  TYPE DEFINITIONS
5845///*************************************************************************
5946
60// ======================> com8116_interface
61
62struct com8116_interface
63{
64   devcb_write_line        m_out_fx4_cb;
65   devcb_write_line        m_out_fr_cb;
66   devcb_write_line        m_out_ft_cb;
67
68   // receiver divisor ROM (19-bit)
69   UINT32 m_fr_divisors[16];
70
71   // transmitter divisor ROM (19-bit)
72   UINT32 m_ft_divisors[16];
73};
74
75
7647// ======================> com8116_device
7748
78class com8116_device :  public device_t,
79                  public com8116_interface
49class com8116_device :  public device_t
8050{
8151public:
8252   // construction/destruction
8353   com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
8454
55   template<class _fx4> void set_fx4_callback(_fx4 fx4) { m_write_fx4.set_callback(fx4); }
56   template<class _fr> void set_fr_callback(_fr fr) { m_write_fr.set_callback(fr); }
57   template<class _ft> void set_ft_callback(_ft ft) { m_write_ft.set_callback(ft); }
58
8559   void str_w(UINT8 data);
8660   DECLARE_WRITE8_MEMBER( str_w );
8761   void stt_w(UINT8 data);
8862   DECLARE_WRITE8_MEMBER( stt_w );
8963
64   static const int divisors_16X_5_0688MHz[];
65   static const int divisors_16X_4_9152MHz[];
66   static const int divisors_32X_5_0688MHz[];
67
9068protected:
9169   // device-level overrides
92   virtual void device_config_complete();
9370   virtual void device_start();
9471   virtual void device_reset();
9572   virtual void device_timer(emu_timer &timer, device_timer_id id, int m_param, void *ptr);
9673
9774private:
98   static const device_timer_id TIMER_FX4 = 0;
99   static const device_timer_id TIMER_FR = 1;
100   static const device_timer_id TIMER_FT = 2;
75   enum
76   {
77      TIMER_FX4,
78      TIMER_FR,
79      TIMER_FT
80   };
10181
102   devcb_resolved_write_line   m_out_fx4_func;
103   devcb_resolved_write_line   m_out_fr_func;
104   devcb_resolved_write_line   m_out_ft_func;
82   devcb2_write_line   m_write_fx4;
83   devcb2_write_line   m_write_fr;
84   devcb2_write_line   m_write_ft;
10585
10686   int m_fr;                       // receiver frequency
10787   int m_ft;                       // transmitter frequency
10888
89   const int *m_fr_divisors;
90   const int *m_ft_divisors;
91
10992   // timers
11093   emu_timer *m_fx4_timer;
11194   emu_timer *m_fr_timer;
trunk/src/mess/drivers/xerox820.c
r23591r23592
502502   m_sio->txca_w(state);
503503}
504504
505WRITE_LINE_MEMBER( xerox820_state::ft_w )
506{
507   m_sio->rxtxcb_w(state);
508}
509
510static COM8116_INTERFACE( com8116_intf )
511{
512   DEVCB_NULL,     /* fX/4 output */
513   DEVCB_DRIVER_LINE_MEMBER(xerox820_state, fr_w),
514   DEVCB_DRIVER_LINE_MEMBER(xerox820_state, ft_w),
515   COM8116_DIVISORS_16X_5_0688MHz, // receiver
516   COM8116_DIVISORS_16X_5_0688MHz // transmitter
517};
518
519505WRITE8_MEMBER( xerox820_state::kbd_w )
520506{
521507   m_keydata = ~data;
r23591r23592
738724   MCFG_FD1771x_ADD(FD1771_TAG, XTAL_20MHz/20)
739725   MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
740726   MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
741   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, com8116_intf)
727   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xerox820_state, fr_w), DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
742728   MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, NULL)
743729   MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
744730   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
r23591r23592
786772   MCFG_FD1797x_ADD(FD1797_TAG, XTAL_16MHz/8)
787773   MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
788774   MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
789   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, com8116_intf)
775   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xerox820_state, fr_w), DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
790776   MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, NULL)
791777   MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
792778   MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
trunk/src/mess/drivers/ob68k1a.c
r23591r23592
255255   m_acia1->tx_clock_in();
256256}
257257
258static COM8116_INTERFACE( dbrg_intf )
259{
260   DEVCB_NULL,     /* fX/4 output */
261   DEVCB_DRIVER_LINE_MEMBER(ob68k1a_state, rx_tx_0_w),
262   DEVCB_DRIVER_LINE_MEMBER(ob68k1a_state, rx_tx_1_w),
263   COM8116_DIVISORS_16X_5_0688MHz, // receiver
264   COM8116_DIVISORS_16X_5_0688MHz // transmitter
265};
266258
267
268259//-------------------------------------------------
269260//  rs232_port_interface rs232a_intf
270261//-------------------------------------------------
r23591r23592
356347   MCFG_PTM6840_ADD(MC6840_TAG, ptm_intf)
357348   MCFG_ACIA6850_ADD(MC6850_0_TAG, acia0_intf)
358349   MCFG_ACIA6850_ADD(MC6850_1_TAG, acia1_intf)
359   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
350   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(ob68k1a_state, rx_tx_0_w), WRITELINE(ob68k1a_state, rx_tx_1_w))
360351   MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, "serial_terminal")
361352   MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
362353
trunk/src/mess/drivers/vt100.c
r23591r23592
428428   DEVCB_NULL
429429};
430430
431static COM8116_INTERFACE( dbrg_intf )
432{
433   DEVCB_NULL,
434   DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, rxc_w),
435   DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, txc_w),
436   COM8116_DIVISORS_16X_5_0688MHz, // receiver
437   COM8116_DIVISORS_16X_5_0688MHz // transmitter
438};
439
440431static MACHINE_CONFIG_START( vt100, vt100_state )
441432   /* basic machine hardware */
442433   MCFG_CPU_ADD("maincpu",I8080, XTAL_24_8832MHz / 9)
r23591r23592
465456   /* i8251 uart */
466457   MCFG_I8251_ADD("i8251", i8251_intf)
467458   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
468   MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, dbrg_intf)
459   MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE("i8251", i8251_device, rxc_w), DEVWRITELINE("i8251", i8251_device, txc_w))
469460
470461
471462   /* audio hardware */
trunk/src/mess/drivers/superslave.c
r23591r23592
265265   m_dart1->rxtxcb_w(state);
266266}
267267
268static COM8116_INTERFACE( dbrg_intf )
269{
270   DEVCB_NULL,
271   DEVCB_DRIVER_LINE_MEMBER(superslave_state, fr_w),
272   DEVCB_DRIVER_LINE_MEMBER(superslave_state, ft_w),
273   COM8116_DIVISORS_16X_5_0688MHz, // receiver
274   COM8116_DIVISORS_16X_5_0688MHz // transmitter
275};
276268
277
278269//-------------------------------------------------
279270//  Z80DART_INTERFACE( dart0_intf )
280271//-------------------------------------------------
r23591r23592
466457   MCFG_Z80DART_ADD(Z80DART_0_TAG, XTAL_8MHz/2, dart0_intf)
467458   MCFG_Z80DART_ADD(Z80DART_1_TAG, XTAL_8MHz/2, dart1_intf)
468459   MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_8MHz/2, pio_intf)
469   MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, dbrg_intf)
460   MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, NULL, WRITELINE(superslave_state, fr_w), WRITELINE(superslave_state, ft_w))
470461   MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, "serial_terminal")
471462   MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
472463   MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
trunk/src/mess/drivers/kaypro.c
r23591r23592
170170//  downcast<z80sio_device *>(device)->tx_clock_in();
171171//}
172172
173static COM8116_INTERFACE( kayproii_brg_intf )
174{
175   DEVCB_NULL,     /* fX/4 output */
176   DEVCB_NULL, //  DEVCB_DEVICE_LINE("z80sio", rx_tx_a_w), z80sio implementation has no clock pin
177   DEVCB_NULL, // DEVCB_DEVICE_LINE("z80sio", rx_tx_b_w),
178   COM8116_DIVISORS_16X_5_0688MHz, // receiver
179   COM8116_DIVISORS_16X_5_0688MHz // transmitter
180};
181173
182static COM8116_INTERFACE( kaypro2x_brg_intf )
183{
184   DEVCB_NULL,     /* fX/4 output */
185   DEVCB_NULL,//DEVCB_DEVICE_LINE("z80sio", rx_tx_a_w),
186   DEVCB_NULL,//DEVCB_DEVICE_LINE("z80sio_2x", rx_tx_a_w),
187   COM8116_DIVISORS_16X_5_0688MHz, // receiver
188   COM8116_DIVISORS_16X_5_0688MHz // transmitter
189};
190174
191
192175/***********************************************************
193176
194177    Machine Driver
r23591r23592
270253   MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kayproii, "com,cpm", 3)
271254   MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface )
272255   MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
273   MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kayproii_brg_intf)  // WD1943, SMC8116
256   MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL)  // WD1943, SMC8116
274257   MCFG_Z80PIO_ADD( "z80pio_g", 2500000, kayproii_pio_g_intf )
275258   MCFG_Z80PIO_ADD( "z80pio_s", 2500000, kayproii_pio_s_intf )
276259   MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf )  /* start at 300 baud */
r23591r23592
316299   MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro2x, "com,cpm", 3)
317300   MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface )
318301   MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
319   MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kaypro2x_brg_intf)  // WD1943, SMC8116
302   MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL)  // WD1943, SMC8116
320303   MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf )
321304   MCFG_Z80SIO_ADD( "z80sio_2x", 4800, kaypro_sio_intf )   /* extra sio for modem and printer */
322305
trunk/src/mess/drivers/super6.c
r23591r23592
455455   m_ctc->trg1(state);
456456}
457457
458static COM8116_INTERFACE( brg_intf )
459{
460   DEVCB_NULL,
461   DEVCB_DRIVER_LINE_MEMBER(super6_state, fr_w),
462   DEVCB_DEVICE_LINE_MEMBER(Z80DART_TAG, z80dart_device, rxtxcb_w),
463   COM8116_DIVISORS_16X_5_0688MHz, // receiver
464   COM8116_DIVISORS_16X_5_0688MHz // transmitter
465};
466458
467
468459//-------------------------------------------------
469460//  floppy_format_type floppy_formats
470461//-------------------------------------------------
r23591r23592
596587   MCFG_Z80DMA_ADD(Z80DMA_TAG, XTAL_24MHz/6, dma_intf)
597588   MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_24MHz/4, pio_intf)
598589   MCFG_WD2793x_ADD(WD2793_TAG, 1000000)
599   MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, brg_intf)
590   MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, NULL, WRITELINE(super6_state, fr_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
600591   MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", floppy_image_device::default_floppy_formats)
601592   MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL,    floppy_image_device::default_floppy_formats)
602593   MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232b_intf, default_rs232_devices, "serial_terminal")
trunk/src/mess/drivers/softbox.c
r23591r23592
44
55    http://mikenaberezny.com/hardware/pet-cbm/sse-softbox-z80-computer/
66
7
8   Using the Corvus hard disk
9   --------------------------
10
11   The SoftBox distribution disk (softbox-distrib.d80) is configured for
12   a CBM 8050 as CP/M drives A/B and a 10MB Corvus hard disk as drives C/D.
13
14   Use the CHDMAN utility to create a 10MB hard disk image for the Corvus:
15
16   $ chdman createhd -o /path/to/corvus10mb.chd -chs 358,3,20 -ss 512
17
18   Start the SoftBox emulator with the floppy and hard disk images mounted:
19
20   $ mess softbox -flop1 /path/to/softbox-distrib.d80 \
21                  -hard1 /path/to/corvus10mb.chd
22
23   Before the Corvus can be used under CP/M, it must be prepared
24   by running DIAG.COM and FORMAT.COM.
25
26   DIAG.COM
27
28   Enter "diag" (no arguments) at the CP/M prompt to run the Corvus diagnostics
29   program.  This program will perform the Corvus low-level format.
30
31   Select option 6 (Update Controller Code) at the menu.
32   Enter "corvb184.fmt" when prompted for the filename.
33   Enter "y" at the confirmation prompts.
34   Enter "1" for the Corvus drive number (two prompts).
35   After formatting is complete, it will return to the menu.
36
37   Select option 3 (Read Controller Code Version #) at the menu.
38   Enter "1" for the Corvus drive number.
39   It should report "V18.4AP" and then return to the menu.
40
41   Select option 9 to return to CP/M.
42
43   FORMAT.COM
44
45   Enter "format" (no arguments) at the CP/M prompt to run the SoftBox disk
46   format program.  This program will perform the CP/M filesystem format.
47
48   Enter drive letter "c" at the prompt.
49   Enter "y" to confirm the format.
50   After formatting is complete, it will prompt for a drive letter again.
51
52   Enter drive letter "d" at the prompt.
53   Enter "y" to confirm the format.
54   After formatting is complete, it will prompt for a drive letter again.
55
56   Press RETURN to return to CP/M.
57
58   STAT.COM
59
60   After all steps are completed, drives C and D should be usable from
61   CP/M.  Each drive is one half of the Corvus 10MB disk.  Running the
62   command "stat c: dsk:" should show 4712 kilobyte drive capacity.
63   Drive D should show the same information.
64
65
66   Using other Corvus hard disk sizes
67   ----------------------------------
68
69   The SoftBox supports 5, 10, and 20 MB hard disks.  The distribution disk
70   is configured for 10 MB as explained above.  To use other sizes, make
71   a new image with CHDMAN.  See the top of src/mess/includes/corvushd.h
72   for the parameters for the other drives.
73
74   After the image has been created and the SoftBox emulator started with
75   it mounted, the SoftBox BIOS needs to be told what size Corvus hard
76   disk is attached.  Use the NEWSYS.COM utility to reconfigure the drive
77   size.  When NEWSYS prompts for a source drive, enter "a" (the drive letter
78   of the CP/M distribution disk).  Use option "d" (Disk drive assignment)
79   to reconfigure the Corvus size.  After the change has been made, use option
80   "s" (Save new system) to write the configuration to the floppy (drive A) and
81   option "e" (Execute new system) to restart CP/M with the configuration. 
82   DIAG.COM and FORMAT.COM can then be used to format the hard disk.
83
784*/
885
986#include "includes/softbox.h"
r23591r23592
247324
248325
249326//-------------------------------------------------
250//  COM8116_INTERFACE( dbrg_intf )
251//-------------------------------------------------
252
253static COM8116_INTERFACE( dbrg_intf )
254{
255   DEVCB_NULL, // fX/4
256   DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, rxc_w),
257   DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, txc_w),
258   COM8116_DIVISORS_16X_5_0688MHz, // receiver
259   COM8116_DIVISORS_16X_5_0688MHz // transmitter
260};
261
262
263//-------------------------------------------------
264327//  rs232_port_interface rs232_intf
265328//-------------------------------------------------
266329
r23591r23592
313376   MCFG_I8251_ADD(I8251_TAG, usart_intf)
314377   MCFG_I8255A_ADD(I8255_0_TAG, ppi0_intf)
315378   MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf)
316   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
379   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(I8251_TAG, i8251_device, rxc_w), DEVWRITELINE(I8251_TAG, i8251_device, txc_w))
317380   MCFG_CBM_IEEE488_ADD("c8050")
318381   MCFG_HARDDISK_ADD("harddisk1")
319382   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, "serial_terminal")
trunk/src/mess/drivers/xor100.c
r23591r23592
367367   m_uart_b->receive_clock();
368368}
369369
370static COM8116_INTERFACE( com5016_intf )
371{
372   DEVCB_NULL,                 /* fX/4 output */
373   DEVCB_DRIVER_LINE_MEMBER(xor100_state, com5016_fr_w),   /* fR output */
374   DEVCB_DRIVER_LINE_MEMBER(xor100_state, com5016_ft_w),   /* fT output */
375   COM8116_DIVISORS_16X_5_0688MHz, // receiver
376   COM8116_DIVISORS_16X_5_0688MHz // transmitter
377};
378
379370/* Printer 8251A Interface */
380371
381372static const i8251_interface printer_8251_intf =
r23591r23592
604595   MCFG_I8251_ADD(I8251_B_TAG, /*XTAL_8MHz/2,*/ terminal_8251_intf)
605596   MCFG_I8255A_ADD(I8255A_TAG, printer_8255_intf)
606597   MCFG_Z80CTC_ADD(Z80CTC_TAG, XTAL_8MHz/2, ctc_intf)
607   MCFG_COM8116_ADD(COM5016_TAG, XTAL_5_0688MHz, com5016_intf)
598   MCFG_COM8116_ADD(COM5016_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xor100_state, com5016_fr_w), WRITELINE(xor100_state, com5016_ft_w))
608599   MCFG_FD1795x_ADD(WD1795_TAG, XTAL_8MHz/4)
609600   MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":0", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
610601   MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":1", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
trunk/src/mess/drivers/vk100.c
r23591r23592
10311031   DEVCB_NULL
10321032};
10331033
1034static COM8116_INTERFACE( dbrg_intf )
1035{
1036   DEVCB_NULL,
1037   DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, rxc_w),
1038   DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, txc_w),
1039   COM8116_DIVISORS_16X_5_0688MHz, // receiver
1040   COM8116_DIVISORS_16X_5_0688MHz // transmitter
1041};
1042
10431034static MACHINE_CONFIG_START( vk100, vk100_state )
10441035   /* basic machine hardware */
10451036   MCFG_CPU_ADD("maincpu", I8085A, XTAL_5_0688MHz)
r23591r23592
10561047   /* i8251 uart */
10571048   MCFG_I8251_ADD("i8251", i8251_intf)
10581049   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
1059   MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, dbrg_intf)
1050   MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE("i8251", i8251_device, rxc_w), DEVWRITELINE("i8251", i8251_device, txc_w))
10601051
10611052   MCFG_DEFAULT_LAYOUT( layout_vk100 )
10621053
trunk/src/mess/machine/s100_dj2db.c
r23591r23592
6464//  COM8116_INTERFACE( brg_intf )
6565//-------------------------------------------------
6666
67static COM8116_INTERFACE( brg_intf )
67WRITE_LINE_MEMBER( s100_dj2db_device::fr_w )
6868{
69   DEVCB_NULL,
70   DEVCB_NULL, // S1602 RRC/TRC
71   DEVCB_NULL,
72   COM8116_DIVISORS_16X_5_0688MHz, // receiver
73   COM8116_DIVISORS_16X_5_0688MHz // transmitter
74};
69   // S1602 RRC/TRC
70}
7571
7672
7773//-------------------------------------------------
r23591r23592
111107//-------------------------------------------------
112108
113109static MACHINE_CONFIG_FRAGMENT( s100_dj2db )
114   MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, brg_intf)
110   MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(DEVICE_SELF_OWNER, s100_dj2db_device, fr_w), NULL)
115111   MCFG_MB8866x_ADD(MB8866_TAG, XTAL_10MHz/5)
116112
117113   MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":0", s100_dj2db_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
trunk/src/mess/machine/s100_dj2db.h
r23591r23592
3939   virtual ioport_constructor device_input_ports() const;
4040
4141   // not really public
42   DECLARE_WRITE_LINE_MEMBER( fr_w );
4243   void fdc_intrq_w(bool state);
4344   void fdc_drq_w(bool state);
4445
trunk/src/mess/machine/softbox.c
r23591r23592
248248
249249
250250//-------------------------------------------------
251//  COM8116_INTERFACE( dbrg_intf )
252//-------------------------------------------------
253
254static COM8116_INTERFACE( dbrg_intf )
255{
256   DEVCB_NULL, // fX/4
257   DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, rxc_w),
258   DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, txc_w),
259   COM8116_DIVISORS_16X_5_0688MHz, // receiver
260   COM8116_DIVISORS_16X_5_0688MHz // transmitter
261};
262
263
264//-------------------------------------------------
265251//  rs232_port_interface rs232_intf
266252//-------------------------------------------------
267253
r23591r23592
289275   MCFG_I8251_ADD(I8251_TAG, usart_intf)
290276   MCFG_I8255A_ADD(I8255_0_TAG, ppi0_intf)
291277   MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf)
292   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
278   MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(I8251_TAG, i8251_device, rxc_w), DEVWRITELINE(I8251_TAG, i8251_device, txc_w))
293279   MCFG_HARDDISK_ADD("harddisk1")
294280   MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
295281MACHINE_CONFIG_END

Previous 199869 Revisions Next


© 1997-2024 The MAME Team