summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/force68k.c
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-07-29 08:34:21 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2015-07-29 08:34:21 +0200
commit1b452e3bfb48e9c77e705a60ab285c382d457e8a (patch)
treeec86ee0e176d53492a6f034a473c728cc6896ad7 /src/mess/drivers/force68k.c
parentb038bdab5ba511f2af2c23e24b3508062a42b3b3 (diff)
Cleanups and version bumpmame0164
Diffstat (limited to 'src/mess/drivers/force68k.c')
-rw-r--r--src/mess/drivers/force68k.c110
1 files changed, 55 insertions, 55 deletions
diff --git a/src/mess/drivers/force68k.c b/src/mess/drivers/force68k.c
index 7bbf42b6b70..6a74bc8bc2e 100644
--- a/src/mess/drivers/force68k.c
+++ b/src/mess/drivers/force68k.c
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Joakim Larsson Edström
+// copyright-holders:Joakim Larsson Edstr??m
/***************************************************************************
Force SYS68K CPU-1/CPU-6 VME SBC drivers, initially based on the 68ksbc.c
@@ -7,7 +7,7 @@
13/06/2015
The info found on the links below is for a later revisions of the board I have
- but I hope it is somewhat compatible so I can get it up and running at least.
+ but I hope it is somewhat compatible so I can get it up and running at least.
My CPU-1 board has proms from 1983 and no rev markings so probably the original.
http://bitsavers.trailing-edge.com/pdf/forceComputers/1988_Force_VMEbus_Products.pdf
@@ -27,7 +27,7 @@ OAO 000 - OBF FFF USER EPROMArea
0C0 041 - 0C0 043 ACIA (P3) Host
0C0 080 - 0C0 082 ACIA (P4) Terminal
0C0 101 - 0C0 103 ACIA (P5) Remote device (eg serial printer)
-0C0 401 - 0C0 42F RTC
+0C0 401 - 0C0 42F RTC
OEO 001 - 0E0 035 PI/T (eg centronics printer)
OEO 200 - 0E0 2FF FPU
OEO 300 - 0E0 300 Reset Off
@@ -59,28 +59,28 @@ Off board Sources (other VME boards)
10. The VMEbus
---------------
-The implemented VMEbus Interface includes 24 address, 16 data,
+The implemented VMEbus Interface includes 24 address, 16 data,
6 address modifier and the asynchronous control signals.
-A single level bus arbiter is provided to build multi master
-systems. In addition to the bus arbiter, a separate slave bus
+A single level bus arbiter is provided to build multi master
+systems. In addition to the bus arbiter, a separate slave bus
arbitration allows selection of the arbitration level (0-3).
-The address modifier range .,Short 110 Access« can be selected
-via a jumper for variable system generation. The 7 interrupt
-request levels of the VMEbus are fully supported from the
-SYS68K1CPU-1 B/D. For multi-processing, each IRQ signal can be
+The address modifier range .,Short 110 Access?? can be selected
+via a jumper for variable system generation. The 7 interrupt
+request levels of the VMEbus are fully supported from the
+SYS68K1CPU-1 B/D. For multi-processing, each IRQ signal can be
enabled/disabled via a jumper field.
-Additionally, the SYS68K1CPU-1 B/D supports the ACFAIL, SYSRESET,
+Additionally, the SYS68K1CPU-1 B/D supports the ACFAIL, SYSRESET,
SYSFAIL and SYSCLK signal (16 MHz).
TODO:
- - Finish 2 x ACIA6850, host and remote interface left, terminal works
+ - Finish 2 x ACIA6850, host and remote interface left, terminal works
- Finish 1 x 68230 Motorola, Parallel Interface / Timer
- Connect Port B to a Centronics printer interface
- Add 1 x Abort Switch
- - Add configurable serial connector between ACIA:s and
+ - Add configurable serial connector between ACIA:s and
- Real terminal emulator, ie rs232 "socket"
- Debug console
- Add VME bus driver
@@ -97,9 +97,9 @@ SYSFAIL and SYSCLK signal (16 MHz).
#define BAUDGEN_CLOCK XTAL_1_8432MHz
/*
- The baudrate on the Force68k CPU-1 to CPU-6 is generated by a
- Motorola 14411 bitrate generator, the CPU-6 documents matches the circuits
- that I could find on the CPU-1 board. Here how I calculated the clock for
+ The baudrate on the Force68k CPU-1 to CPU-6 is generated by a
+ Motorola 14411 bitrate generator, the CPU-6 documents matches the circuits
+ that I could find on the CPU-1 board. Here how I calculated the clock for
the factory settings. No need to add selectors until terminal.c supports
configurable baudrates. Fortunality CPU-1 was shipped with 9600N8!
@@ -107,7 +107,7 @@ SYSFAIL and SYSCLK signal (16 MHz).
3 RS232C interfaces, strap selectable baud rate from 110-9600 or 600-19200 baud
- Default Jumper Settings of B7:
+ Default Jumper Settings of B7:
--------------------------------
GND 10 - 11 RSA input on 14411
F1 on 14411 1 - 20 Baud selector of the terminal port
@@ -117,7 +117,7 @@ SYSFAIL and SYSCLK signal (16 MHz).
The RSB input on the 14411 is kept high always so RSA=0, RSB=1 and a 1.8432MHz crystal
generates 153600 on the F1 output pin which by default strapping is connected to all
three 6850 acias on the board. These can be strapped separatelly to speedup downloads.
-
+
The selectable outputs from 14411, F1-F16:
X16 RSA=0,RSB=1: 153600, 115200, 76800, 57600, 38400, 28800, 19200, 9600, 4800, 3200, 2153.3, 1758.8, 1200, 921600, 1843000
X64 RSA=1,RSB=1: 614400, 460800, 307200, 230400, 153600, 115200, 76800, 57600, 38400, 28800, 19200, 9600, 4800, 921600, 1843000
@@ -133,13 +133,13 @@ class force68k_state : public driver_device
public:
force68k_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- // m_rtc(*this, "rtc")
- m_maincpu(*this, "maincpu"),
- m_rtc(*this, "rtc"),
- m_pit(*this, "pit"),
- m_aciahost(*this, "aciahost"),
- m_aciaterm(*this, "aciaterm"),
- m_aciaremt(*this, "aciaremt")
+ // m_rtc(*this, "rtc")
+ m_maincpu(*this, "maincpu"),
+ m_rtc(*this, "rtc"),
+ m_pit(*this, "pit"),
+ m_aciahost(*this, "aciahost"),
+ m_aciaterm(*this, "aciaterm"),
+ m_aciaremt(*this, "aciaremt")
{
}
@@ -162,19 +162,19 @@ private:
};
static ADDRESS_MAP_START(force68k_mem, AS_PROGRAM, 16, force68k_state)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x000007) AM_ROM AM_READ(bootvect_r) /* Vectors mapped from System EPROM */
- AM_RANGE(0x000008, 0x01ffff) AM_RAM /* DRAM */
- AM_RANGE(0x080000, 0x09ffff) AM_ROM /* System EPROM Area */
-// AM_RANGE(0x0a0000, 0x0bffff) AM_ROM /* User EPROM Area */
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x000000, 0x000007) AM_ROM AM_READ(bootvect_r) /* Vectors mapped from System EPROM */
+ AM_RANGE(0x000008, 0x01ffff) AM_RAM /* DRAM */
+ AM_RANGE(0x080000, 0x09ffff) AM_ROM /* System EPROM Area */
+// AM_RANGE(0x0a0000, 0x0bffff) AM_ROM /* User EPROM Area */
AM_RANGE(0x0c0040, 0x0c0041) AM_DEVREADWRITE8("aciahost", acia6850_device, status_r, control_w, 0x00ff)
AM_RANGE(0x0c0042, 0x0c0043) AM_DEVREADWRITE8("aciahost", acia6850_device, data_r, data_w, 0x00ff)
AM_RANGE(0x0c0080, 0x0c0081) AM_DEVREADWRITE8("aciaterm", acia6850_device, status_r, control_w, 0xff00)
AM_RANGE(0x0c0082, 0x0c0083) AM_DEVREADWRITE8("aciaterm", acia6850_device, data_r, data_w, 0xff00)
AM_RANGE(0x0c0100, 0x0c0101) AM_DEVREADWRITE8("aciaremt", acia6850_device, status_r, control_w, 0x00ff)
AM_RANGE(0x0c0102, 0x0c0103) AM_DEVREADWRITE8("aciaremt", acia6850_device, data_r, data_w, 0x00ff)
- AM_RANGE(0x0c0400, 0x0c042f) AM_DEVREADWRITE8("rtc", mm58167_device, read, write, 0x00ff)
- AM_RANGE(0x0e0000, 0x0e0035) AM_DEVREADWRITE8("pit", pit68230_device, data_r, data_w, 0x00ff)
+ AM_RANGE(0x0c0400, 0x0c042f) AM_DEVREADWRITE8("rtc", mm58167_device, read, write, 0x00ff)
+ AM_RANGE(0x0e0000, 0x0e0035) AM_DEVREADWRITE8("pit", pit68230_device, data_r, data_w, 0x00ff)
// AM_RANGE(0x0e0200, 0x0e0380) AM_READWRITE(fpu_r, fpu_w) /* optional FPCP 68881 FPU interface */
// AM_RANGE(0x100000, 0xfeffff) /* VMEbus Rev B addresses (24 bits) */
// AM_RANGE(0xff0000, 0xffffff) /* VMEbus Rev B addresses (16 bits) */
@@ -190,39 +190,39 @@ void force68k_state::machine_start()
}
READ16_MEMBER(force68k_state::bootvect_r)
-{
- return m_sysrom[offset];
+{
+ return m_sysrom[offset];
}
WRITE_LINE_MEMBER(force68k_state::write_aciahost_clock)
-{
- m_aciahost->write_txc(state);
+{
+ m_aciahost->write_txc(state);
m_aciahost->write_rxc(state);
}
WRITE_LINE_MEMBER(force68k_state::write_aciaterm_clock)
-{
- m_aciaterm->write_txc(state);
+{
+ m_aciaterm->write_txc(state);
m_aciaterm->write_rxc(state);
}
WRITE_LINE_MEMBER(force68k_state::write_aciaremt_clock)
-{
- m_aciaremt->write_txc(state);
+{
+ m_aciaremt->write_txc(state);
m_aciaremt->write_rxc(state);
}
static MACHINE_CONFIG_START( fccpu1, force68k_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz / 2)
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz / 2)
MCFG_CPU_PROGRAM_MAP(force68k_mem)
- /* P3/Host Port config */
+ /* P3/Host Port config */
MCFG_DEVICE_ADD("aciahost", ACIA6850, 0)
- MCFG_DEVICE_ADD("aciahost_clock", CLOCK, ACIA_CLOCK)
+ MCFG_DEVICE_ADD("aciahost_clock", CLOCK, ACIA_CLOCK)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(force68k_state, write_aciahost_clock))
- /* P4/Terminal Port config */
+ /* P4/Terminal Port config */
MCFG_DEVICE_ADD("aciaterm", ACIA6850, 0)
MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("rs232trm", rs232_port_device, write_txd))
@@ -232,10 +232,10 @@ static MACHINE_CONFIG_START( fccpu1, force68k_state )
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("aciaterm", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("aciaterm", acia6850_device, write_cts))
- MCFG_DEVICE_ADD("aciaterm_clock", CLOCK, ACIA_CLOCK)
+ MCFG_DEVICE_ADD("aciaterm_clock", CLOCK, ACIA_CLOCK)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(force68k_state, write_aciaterm_clock))
- /* P5/Remote Port config */
+ /* P5/Remote Port config */
MCFG_DEVICE_ADD("aciaremt", ACIA6850, 0)
#define PRINTER 0
@@ -246,16 +246,16 @@ static MACHINE_CONFIG_START( fccpu1, force68k_state )
MCFG_RS232_PORT_ADD("rs232rmt", default_rs232_devices, "printer")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("aciaremt", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("aciaremt", acia6850_device, write_cts))
-#endif
+#endif
- MCFG_DEVICE_ADD("aciaremt_clock", CLOCK, ACIA_CLOCK)
+ MCFG_DEVICE_ADD("aciaremt_clock", CLOCK, ACIA_CLOCK)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(force68k_state, write_aciaterm_clock))
/* RTC Real Time Clock device */
MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz)
/* PIT Parallel Interface and Timer device, assuming strapped for on board clock */
- MCFG_DEVICE_ADD("pit", PIT68230, XTAL_16MHz / 2)
+ MCFG_DEVICE_ADD("pit", PIT68230, XTAL_16MHz / 2)
MACHINE_CONFIG_END
@@ -291,9 +291,9 @@ MACHINE_CONFIG_END
ROM_START( fccpu1 )
ROM_REGION(0x1000000, "maincpu", 0)
- ROM_LOAD16_BYTE( "fccpu1V1.0L.j8.bin", 0x080001, 0x2000, CRC(3ac6f08f) SHA1(502f6547b508d8732bd68bbbb2402d8c30fefc3b) )
- ROM_LOAD16_BYTE( "fccpu1V1.0L.j9.bin", 0x080000, 0x2000, CRC(035315fb) SHA1(90dc44d9c25d28428233e6846da6edce2d69e440) )
-/* COMMAND SUMMARY DESCRIPTION (From CPU-1B datasheet, ROMs were dumped
+ ROM_LOAD16_BYTE( "fccpu1V1.0L.j8.bin", 0x080001, 0x2000, CRC(3ac6f08f) SHA1(502f6547b508d8732bd68bbbb2402d8c30fefc3b) )
+ ROM_LOAD16_BYTE( "fccpu1V1.0L.j9.bin", 0x080000, 0x2000, CRC(035315fb) SHA1(90dc44d9c25d28428233e6846da6edce2d69e440) )
+/* COMMAND SUMMARY DESCRIPTION (From CPU-1B datasheet, ROMs were dumped
from a CPU-1 board so some features might be missing or different)
---------------------------------------------------------------------------
BF <address1> <address2> <data> <CR> Block Fill memory - from addr1 through addr2 with data
@@ -309,8 +309,8 @@ ROM_START( fccpu1 )
GT <address> <CR> Exec prog: temporary breakpoint
HE<CR> Help; display monitor commands
LO [n] [;<options] <CR> Load Object file
- MD <address> [<count» <CR> Memory Display
- MM <address> [<data» [;<options» <CR> Memory Modify
+ MD <address> [<count?? <CR> Memory Display
+ MM <address> [<data?? [;<options?? <CR> Memory Modify
MS <address> <data1 > <data2> < ... <CR> Memory Set - starting at addr with data 1. data 2 ...
NOBR [<address> ... ] <CR> Remove Breakpoint
NOPA <CR> Printer Detach (Centronics on PIT/P2)
@@ -318,7 +318,7 @@ ROM_START( fccpu1 )
PA <CR> Printer Attach (Centronics on PIT/P2)
PF[n] <CR> Set/display Port Format
RM <CR> Register Modify
- TM [<exit character» <CR> Transparent Mode
+ TM [<exit character?? <CR> Transparent Mode
TR [<count] <CR> Trace
TT <address> <CR> Trace: temporary breakpoint
VE [n] [<string] <CR> Verify memory/object file