mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
rs232: Add 9615 baud rate actually used by a number of systems
This commit is contained in:
parent
1a0b4577a2
commit
3bb8d60ddd
@ -40,6 +40,10 @@
|
||||
#define RS232_BAUD_57600 (0x0c)
|
||||
#define RS232_BAUD_115200 (0x0d)
|
||||
|
||||
// Some systems may not include a dedicated XTAL capable of producing standard baud rates for the UART.
|
||||
// These slightly deviant rates, which might lie within tolerance limits of actual hardware, have been found in use.
|
||||
#define RS232_BAUD_9615 (0x0e)
|
||||
|
||||
#define MCFG_RS232_BAUD(_tag, _default_baud, _description, _class, _write_line) \
|
||||
PORT_START(_tag) \
|
||||
PORT_CONFNAME(0xff, _default_baud, _description) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, _class, _write_line) \
|
||||
@ -51,6 +55,7 @@
|
||||
PORT_CONFSETTING( RS232_BAUD_2400, "2400") \
|
||||
PORT_CONFSETTING( RS232_BAUD_4800, "4800") \
|
||||
PORT_CONFSETTING( RS232_BAUD_9600, "9600") \
|
||||
PORT_CONFSETTING( RS232_BAUD_9615, "9615") \
|
||||
PORT_CONFSETTING( RS232_BAUD_14400, "14400") \
|
||||
PORT_CONFSETTING( RS232_BAUD_19200, "19200") \
|
||||
PORT_CONFSETTING( RS232_BAUD_28800, "28800") \
|
||||
@ -199,7 +204,8 @@ protected:
|
||||
28800,
|
||||
38400,
|
||||
57600,
|
||||
115200
|
||||
115200,
|
||||
9615
|
||||
};
|
||||
|
||||
return values[baud];
|
||||
|
@ -60,6 +60,11 @@ void codata_state::machine_reset()
|
||||
m_maincpu->reset();
|
||||
}
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( codata )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu",M68000, XTAL_16MHz / 2)
|
||||
@ -72,7 +77,7 @@ static MACHINE_CONFIG_START( codata )
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs423b", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5))
|
||||
|
||||
MCFG_DEVICE_ADD("timer", AM9513A, 3993600) // actually XTAL_16MHz / 4, which produces 9615 baud when divided
|
||||
MCFG_DEVICE_ADD("timer", AM9513A, XTAL_16MHz / 4)
|
||||
MCFG_AM9513_OUT1_CALLBACK(NOOP) // Timer 1 = "Abort/Reset" (watchdog)
|
||||
MCFG_AM9513_OUT2_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_6)) // Timer 2
|
||||
MCFG_AM9513_OUT3_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_7)) // Refresh
|
||||
@ -85,6 +90,7 @@ static MACHINE_CONFIG_START( codata )
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", upd7201_new_device, rxa_w))
|
||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart", upd7201_new_device, dcda_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart", upd7201_new_device, ctsa_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs423b", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart", upd7201_new_device, rxb_w))
|
||||
|
@ -55,6 +55,11 @@ void pm68k_state::machine_reset()
|
||||
m_maincpu->reset();
|
||||
}
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( pm68k )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 8000000)
|
||||
@ -68,7 +73,7 @@ static MACHINE_CONFIG_START( pm68k )
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232b", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232b", rs232_port_device, write_rts))
|
||||
|
||||
MCFG_DEVICE_ADD("stc", AM9513, 3993600)
|
||||
MCFG_DEVICE_ADD("stc", AM9513, 4000000)
|
||||
MCFG_AM9513_OUT4_CALLBACK(DEVWRITELINE("mpsc", i8274_new_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("mpsc", i8274_new_device, txca_w))
|
||||
MCFG_AM9513_OUT5_CALLBACK(DEVWRITELINE("mpsc", i8274_new_device, rxcb_w))
|
||||
@ -78,6 +83,7 @@ static MACHINE_CONFIG_START( pm68k )
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("mpsc", i8274_new_device, rxa_w))
|
||||
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("mpsc", i8274_new_device, dcda_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("mpsc", i8274_new_device, ctsa_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232b", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("mpsc", i8274_new_device, rxb_w))
|
||||
|
@ -102,16 +102,21 @@ void sun1_state::machine_reset()
|
||||
}
|
||||
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_9615 )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( sun1 )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(sun1_mem)
|
||||
|
||||
MCFG_DEVICE_ADD("timer", AM9513, 3993600) // actually XTAL_10MHz / 2
|
||||
MCFG_DEVICE_ADD("timer", AM9513, 4000000) // supposedly XTAL_10MHz / 2, but that produces blatantly incorrect output rates
|
||||
MCFG_AM9513_FOUT_CALLBACK(DEVWRITELINE("timer", am9513_device, gate1_w))
|
||||
MCFG_AM9513_OUT1_CALLBACK(NOOP) // Watchdog; generates BERR/Reset
|
||||
MCFG_AM9513_OUT2_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_6)) // User timer
|
||||
MCFG_AM9513_OUT3_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_7)) // Refresh timer
|
||||
MCFG_AM9513_OUT3_CALLBACK(INPUTLINE("maincpu", M68K_IRQ_7)) // Refresh timer (2 ms)
|
||||
MCFG_AM9513_OUT4_CALLBACK(DEVWRITELINE("iouart", upd7201_new_device, rxca_w))
|
||||
MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("iouart", upd7201_new_device, txca_w))
|
||||
MCFG_AM9513_OUT5_CALLBACK(DEVWRITELINE("iouart", upd7201_new_device, rxcb_w))
|
||||
@ -129,6 +134,7 @@ static MACHINE_CONFIG_START( sun1 )
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("iouart", upd7201_new_device, rxa_w))
|
||||
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("iouart", upd7201_new_device, ctsa_w))
|
||||
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("iouart", upd7201_new_device, dcda_w))
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
|
||||
|
||||
MCFG_RS232_PORT_ADD("rs232b", default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("iouart", upd7201_new_device, rxb_w))
|
||||
|
Loading…
Reference in New Issue
Block a user