summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/abc80x.c8
-rw-r--r--src/mess/drivers/amstrad.c2
-rw-r--r--src/mess/drivers/camplynx.c4
-rw-r--r--src/mess/drivers/hh_cop400.c14
-rw-r--r--src/mess/drivers/hh_hmcs40.c6
-rw-r--r--src/mess/drivers/hh_tms1k.c6
-rw-r--r--src/mess/drivers/monty.c202
-rw-r--r--src/mess/drivers/mtx.c2
-rw-r--r--src/mess/drivers/rainbow.c290
-rw-r--r--src/mess/drivers/replicator.c156
-rw-r--r--src/mess/drivers/spec128.c2
-rw-r--r--src/mess/drivers/tamag1.c4
-rw-r--r--src/mess/drivers/vt100.c2
-rw-r--r--src/mess/drivers/vt240.c2
14 files changed, 350 insertions, 350 deletions
diff --git a/src/mess/drivers/abc80x.c b/src/mess/drivers/abc80x.c
index 75cc73a29fe..f98139ad1a6 100644
--- a/src/mess/drivers/abc80x.c
+++ b/src/mess/drivers/abc80x.c
@@ -139,11 +139,11 @@ Notes:
/*
- TODO:
+ TODO:
- - cassette
- - abc806 RTC
- - abc806 disks except ufd631 won't boot
+ - cassette
+ - abc806 RTC
+ - abc806 disks except ufd631 won't boot
*/
diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c
index 1ab281a4c46..b6ed946e1e9 100644
--- a/src/mess/drivers/amstrad.c
+++ b/src/mess/drivers/amstrad.c
@@ -1,5 +1,5 @@
// license:GPL-2.0+
-// copyright-holders:Kevin Thacker, Barry Rodewald
+// copyright-holders:Kevin Thacker, Barry Rodewald
/******************************************************************************
amstrad.c
diff --git a/src/mess/drivers/camplynx.c b/src/mess/drivers/camplynx.c
index 84822d66fd0..c93d60d52f4 100644
--- a/src/mess/drivers/camplynx.c
+++ b/src/mess/drivers/camplynx.c
@@ -393,7 +393,7 @@ WRITE8_MEMBER( camplynx_state::port84_w )
// Square wave output
m_cass->output(BIT(data, 5) ? -1.0 : +1.0);
}
- else // speaker output
+ else // speaker output
m_dac->write_unsigned8(space, 0, data);
}
@@ -432,7 +432,7 @@ WRITE8_MEMBER( camplynx_state::lynx128k_port84_w )
// Square wave output
m_cass->output(BIT(data, 5) ? -1.0 : +1.0);
}
- else // speaker output
+ else // speaker output
m_dac->write_unsigned8(space, 0, data);
}
diff --git a/src/mess/drivers/hh_cop400.c b/src/mess/drivers/hh_cop400.c
index 210b95a4db5..568ccd6644e 100644
--- a/src/mess/drivers/hh_cop400.c
+++ b/src/mess/drivers/hh_cop400.c
@@ -4,7 +4,7 @@
National Semiconductor COP400 MCU handhelds or other simple devices,
mostly LED electronic games/toys.
-
+
TODO:
- non-working games are due to MCU emulation bugs?
- better not start on visually dumped games before other games are working
@@ -233,7 +233,7 @@ UINT8 hh_cop400_state::read_inputs(int columns)
Castle Toy Einstein
* COP421 MCU labeled ~/927 COP421-NEZ/N
* 4 lamps, 1bit sound
-
+
***************************************************************************/
class ctstein_state : public hh_cop400_state
@@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( ctstein, ctstein_state )
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, COP400_MICROBUS_DISABLED) // guessed
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_ctstein)
+// MCFG_DEFAULT_LAYOUT(layout_ctstein)
/* no video! */
@@ -310,7 +310,7 @@ void einvaderc_state::prepare_display()
// D0-D2 are 7segs
for (int y = 0; y < 3; y++)
m_display_segmask[y] = 0x7f;
-
+
// update display
UINT8 l = BITSWAP8(m_l,7,6,0,1,2,3,4,5);
UINT16 grid = (m_d | m_g << 4 | m_sk << 8 | m_so << 9) ^ 0x0ff;
@@ -633,7 +633,7 @@ static MACHINE_CONFIG_START( plus1, plus1_state )
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, COP400_MICROBUS_ENABLED) // guessed
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_plus1)
+// MCFG_DEFAULT_LAYOUT(layout_plus1)
/* no video! */
@@ -652,12 +652,12 @@ MACHINE_CONFIG_END
Milton Bradley (Electronic) Lightfight
* COP421L MCU labeled /B119 COP421L-HLA/N
* LED matrix, 1bit sound
-
+
Xbox-shaped electronic game for 2 or more players, with long diagonal buttons
next to each outer LED. The main object of the game is to pinpoint a light
by pressing 2 buttons. To start, press a skill-level button(P2 button 7/8/9)
after selecting a game mode(P1 button 6-10).
-
+
The game variations are:
1: LightFight
2: NightFight
diff --git a/src/mess/drivers/hh_hmcs40.c b/src/mess/drivers/hh_hmcs40.c
index 5e3c1c88c1b..fce417525f0 100644
--- a/src/mess/drivers/hh_hmcs40.c
+++ b/src/mess/drivers/hh_hmcs40.c
@@ -2070,7 +2070,7 @@ void eturtles_state::prepare_display()
WRITE8_MEMBER(eturtles_state::plate_w)
{
m_r[offset] = data;
-
+
// R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@@ -2080,7 +2080,7 @@ WRITE8_MEMBER(eturtles_state::plate_w)
WRITE16_MEMBER(eturtles_state::grid_w)
{
m_d = data;
-
+
// D1-D6: input mux
UINT8 inp_mux = data >> 1 & 0x3f;
if (inp_mux != m_inp_mux)
@@ -2172,7 +2172,7 @@ INPUT_CHANGED_MEMBER(eturtles_state::input_changed)
void eturtles_state::machine_start()
{
hh_hmcs40_state::machine_start();
-
+
// register for savestates
save_item(NAME(m_cop_irq));
}
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mess/drivers/hh_tms1k.c
index 5c7c020d68b..b469d5d11b3 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mess/drivers/hh_tms1k.c
@@ -1722,7 +1722,7 @@ static MACHINE_CONFIG_START( efootb4, efootb4_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(efootb4_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_efootb4)
+// MCFG_DEFAULT_LAYOUT(layout_efootb4)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */
@@ -1836,7 +1836,7 @@ static MACHINE_CONFIG_START( ebaskb2, ebaskb2_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ebaskb2_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_ebaskb2)
+// MCFG_DEFAULT_LAYOUT(layout_ebaskb2)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */
@@ -4081,7 +4081,7 @@ static MACHINE_CONFIG_START( tbreakup, tbreakup_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tbreakup_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
-// MCFG_DEFAULT_LAYOUT(layout_tbreakup)
+// MCFG_DEFAULT_LAYOUT(layout_tbreakup)
MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
/* no video! */
diff --git a/src/mess/drivers/monty.c b/src/mess/drivers/monty.c
index ce4b061b3f4..256e01de83e 100644
--- a/src/mess/drivers/monty.c
+++ b/src/mess/drivers/monty.c
@@ -4,20 +4,20 @@
2015-05-08 Skeleton driver for Ritam Monty Plays Scrabble BRAND crossword game
- Scrabble computer that allows you play a game of Scrabble by yourself (or you
- can play with up to 3 players). Has a built-in 12,000 vocabulary, expandable
- to 44,000 by way of 2 expansion modules each containing 16,000 more obscure words.
- You can use the included 'score cards' (which look like little Scrabble boards),
- or you can use a real Scrabble board and tiles to play. Also note, Monty
+ Scrabble computer that allows you play a game of Scrabble by yourself (or you
+ can play with up to 3 players). Has a built-in 12,000 vocabulary, expandable
+ to 44,000 by way of 2 expansion modules each containing 16,000 more obscure words.
+ You can use the included 'score cards' (which look like little Scrabble boards),
+ or you can use a real Scrabble board and tiles to play. Also note, Monty
apparently originally came with a little pen.
- This game was later upgraded by Ritam to Master Monty which had 24,000 words
- built-in (expandable to a total of 56,000 with the same 2 expansion modules).
- Two variations on Master Monty have been seen: one looks exactly the same as the
- Monty but the electronics on the inside have been upgraded. The later version
- is blue and says Master Monty at the top. Both of these versions are hand-upgraded
+ This game was later upgraded by Ritam to Master Monty which had 24,000 words
+ built-in (expandable to a total of 56,000 with the same 2 expansion modules).
+ Two variations on Master Monty have been seen: one looks exactly the same as the
+ Monty but the electronics on the inside have been upgraded. The later version
+ is blue and says Master Monty at the top. Both of these versions are hand-upgraded
by adding chips and wires to the inside of the game.
-
+
TODO:
- Input from the keyboard
- Proper SED1503F emulation (it's simulated in-driver for now)
@@ -35,54 +35,54 @@ public:
monty_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_sed0(*this, "sed1520_0")
- , m_writeUpper(false)
+ , m_sed0(*this, "sed1520_0")
+ , m_writeUpper(false)
{
- for (int i = 0; i < 42*32; i++)
- m_pixels[i] = 0xff000000;
+ for (int i = 0; i < 42*32; i++)
+ m_pixels[i] = 0xff000000;
}
- DECLARE_READ8_MEMBER(ioInputRead);
+ DECLARE_READ8_MEMBER(ioInputRead);
+
+ DECLARE_WRITE8_MEMBER(ioDisplayWrite);
+ DECLARE_WRITE8_MEMBER(ioCommandWrite0);
+ DECLARE_WRITE8_MEMBER(ioCommandWrite1);
- DECLARE_WRITE8_MEMBER(ioDisplayWrite);
- DECLARE_WRITE8_MEMBER(ioCommandWrite0);
- DECLARE_WRITE8_MEMBER(ioCommandWrite1);
-
- // screen updates
+ // screen updates
UINT32 lcd_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect);
private:
required_device<cpu_device> m_maincpu;
- required_device<sed1520_device> m_sed0; // TODO: This isn't actually a SED1520, it's a SED1503F
- //required_device<sed1520_device> m_sed1; // TODO: Also, there are 2 SED1503Fs on the board - one is flipped upside down
+ required_device<sed1520_device> m_sed0; // TODO: This isn't actually a SED1520, it's a SED1503F
+ //required_device<sed1520_device> m_sed1; // TODO: Also, there are 2 SED1503Fs on the board - one is flipped upside down
- // Test
- UINT8 m_writeUpper;
- UINT32 m_pixels[42*32];
+ // Test
+ UINT8 m_writeUpper;
+ UINT32 m_pixels[42*32];
};
static ADDRESS_MAP_START(monty_mem, AS_PROGRAM, 8, monty_state)
AM_RANGE(0x0000, 0x3fff) AM_ROM
- //AM_RANGE(0x4000, 0x4000) // The main rom checks to see if another program is here on startup
- AM_RANGE(0xf800, 0xffff) AM_RAM
+ //AM_RANGE(0x4000, 0x4000) // The main rom checks to see if another program is here on startup
+ AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START(monty_io, AS_IO, 8, monty_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE(ioCommandWrite0)
- AM_RANGE(0x02, 0x02) AM_WRITE(ioCommandWrite1)
- AM_RANGE(0x80, 0xff) AM_WRITE(ioDisplayWrite)
-
- // 7 reads from a bit shifted IO port
- AM_RANGE(0x01, 0x01) AM_READ(ioInputRead)
- AM_RANGE(0x02, 0x02) AM_READ(ioInputRead)
- AM_RANGE(0x04, 0x04) AM_READ(ioInputRead)
- AM_RANGE(0x08, 0x08) AM_READ(ioInputRead)
- AM_RANGE(0x10, 0x10) AM_READ(ioInputRead)
- AM_RANGE(0x20, 0x20) AM_READ(ioInputRead)
- AM_RANGE(0x40, 0x40) AM_READ(ioInputRead)
+ AM_RANGE(0x00, 0x00) AM_WRITE(ioCommandWrite0)
+ AM_RANGE(0x02, 0x02) AM_WRITE(ioCommandWrite1)
+ AM_RANGE(0x80, 0xff) AM_WRITE(ioDisplayWrite)
+
+ // 7 reads from a bit shifted IO port
+ AM_RANGE(0x01, 0x01) AM_READ(ioInputRead)
+ AM_RANGE(0x02, 0x02) AM_READ(ioInputRead)
+ AM_RANGE(0x04, 0x04) AM_READ(ioInputRead)
+ AM_RANGE(0x08, 0x08) AM_READ(ioInputRead)
+ AM_RANGE(0x10, 0x10) AM_READ(ioInputRead)
+ AM_RANGE(0x20, 0x20) AM_READ(ioInputRead)
+ AM_RANGE(0x40, 0x40) AM_READ(ioInputRead)
ADDRESS_MAP_END
@@ -93,79 +93,79 @@ INPUT_PORTS_END
READ8_MEMBER( monty_state::ioInputRead )
{
- //UINT8 foo; // = machine().rand() & 0xff;
- //if (m_maincpu->pc() == 0x135f)
- // foo = 0x14;
- //if (m_maincpu->pc() == 0x1371)
- // foo = 0x1f;
-
- UINT8 foo = (machine().rand() & 0xff) | 0x14;
-
- //printf("(%04x) %02x %02x\n", m_maincpu->pc(), foo, (foo & 0x14));
- return foo;
+ //UINT8 foo; // = machine().rand() & 0xff;
+ //if (m_maincpu->pc() == 0x135f)
+ // foo = 0x14;
+ //if (m_maincpu->pc() == 0x1371)
+ // foo = 0x1f;
+
+ UINT8 foo = (machine().rand() & 0xff) | 0x14;
+
+ //printf("(%04x) %02x %02x\n", m_maincpu->pc(), foo, (foo & 0x14));
+ return foo;
}
WRITE8_MEMBER( monty_state::ioCommandWrite0 )
{
- //printf("(%04x) Command Port 0 write : %02x\n", m_maincpu->pc(), data);
- m_writeUpper = false;
+ //printf("(%04x) Command Port 0 write : %02x\n", m_maincpu->pc(), data);
+ m_writeUpper = false;
}
WRITE8_MEMBER( monty_state::ioCommandWrite1 )
{
- //if (data == 0xfe)
- // printf("---\n");
-
- //printf("(%04x) Command Port 1 write : %02x\n", m_maincpu->pc(), data);
- m_writeUpper = true;
+ //if (data == 0xfe)
+ // printf("---\n");
+
+ //printf("(%04x) Command Port 1 write : %02x\n", m_maincpu->pc(), data);
+ m_writeUpper = true;
}
WRITE8_MEMBER( monty_state::ioDisplayWrite )
{
- // Offset directly corresponds to sed1503, DD RAM address (offset 0x7f may be special?)
- //printf("(%04x) %02x %02x\n", m_maincpu->pc(), offset, data);
-
- const UINT8 localUpper = (offset & 0x40) >> 6;
- const UINT8 seg = offset & 0x3f;
- const UINT8 com = data;
-
- // Skip the controller and write straight to the LCD (pc=134f)
- for (int i = 0; i < 8; i++)
- {
- // Pixel location
- const int upperSedOffset = m_writeUpper ? 8*2 : 0;
-
- const size_t x = seg;
- const size_t y = i + (localUpper*8) + upperSedOffset;
-
- // Pixel color
- const bool on = (com >> i) & 0x01;
- m_pixels[(y*42) + x] = on ? 0xffffffff : 0xff000000;
- }
+ // Offset directly corresponds to sed1503, DD RAM address (offset 0x7f may be special?)
+ //printf("(%04x) %02x %02x\n", m_maincpu->pc(), offset, data);
+
+ const UINT8 localUpper = (offset & 0x40) >> 6;
+ const UINT8 seg = offset & 0x3f;
+ const UINT8 com = data;
+
+ // Skip the controller and write straight to the LCD (pc=134f)
+ for (int i = 0; i < 8; i++)
+ {
+ // Pixel location
+ const int upperSedOffset = m_writeUpper ? 8*2 : 0;
+
+ const size_t x = seg;
+ const size_t y = i + (localUpper*8) + upperSedOffset;
+
+ // Pixel color
+ const bool on = (com >> i) & 0x01;
+ m_pixels[(y*42) + x] = on ? 0xffffffff : 0xff000000;
+ }
}
UINT32 monty_state::lcd_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect)
{
- for (int y = 0; y < 32; y++)
- {
- for (int x = 0; x < 42; x++)
- {
- bitmap.pix32(y, x) = m_pixels[(y*42) + x];
- }
- }
-
- return 0x00;
+ for (int y = 0; y < 32; y++)
+ {
+ for (int x = 0; x < 42; x++)
+ {
+ bitmap.pix32(y, x) = m_pixels[(y*42) + x];
+ }
+ }
+
+ return 0x00;
}
SED1520_UPDATE_CB(monty_screen_update)
{
- // TODO: Not really a SED1520 - there are two SED1503s
- return 0x00;
+ // TODO: Not really a SED1520 - there are two SED1503s
+ return 0x00;
}
@@ -177,15 +177,15 @@ static MACHINE_CONFIG_START( monty, monty_state )
MCFG_CPU_IO_MAP(monty_io)
// Video hardware
- MCFG_SCREEN_ADD("screen", LCD)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not accurate
- MCFG_SCREEN_SIZE(42, 32) // Two SED1503s (42x16 pixels) control the top and bottom halves
- MCFG_SCREEN_VISIBLE_AREA(0, 42-1, 0, 32-1)
- MCFG_SCREEN_UPDATE_DRIVER(monty_state, lcd_update)
-
- // LCD controller interfaces
- MCFG_SED1520_ADD("sed1520_0", monty_screen_update)
+ MCFG_SCREEN_ADD("screen", LCD)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not accurate
+ MCFG_SCREEN_SIZE(42, 32) // Two SED1503s (42x16 pixels) control the top and bottom halves
+ MCFG_SCREEN_VISIBLE_AREA(0, 42-1, 0, 32-1)
+ MCFG_SCREEN_UPDATE_DRIVER(monty_state, lcd_update)
+
+ // LCD controller interfaces
+ MCFG_SED1520_ADD("sed1520_0", monty_screen_update)
MACHINE_CONFIG_END
@@ -193,15 +193,15 @@ MACHINE_CONFIG_END
ROM_START( monty )
ROM_REGION(0xc000, "maincpu", 0)
ROM_LOAD( "monty_main.bin", 0x0000, 0x4000, CRC(720b4f55) SHA1(0106eb88d3fbbf25a745b9b6ee785ba13689d095) ) // 27128
- ROM_LOAD( "monty_module1.bin", 0x4000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
- ROM_LOAD( "monty_module2.bin", 0x8000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
+ ROM_LOAD( "monty_module1.bin", 0x4000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
+ ROM_LOAD( "monty_module2.bin", 0x8000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_END
ROM_START( mmonty )
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "master_monty_main.bin", 0x0000, 0x8000, CRC(bb5ef4d4) SHA1(ba2c759e429f8740df419f9abb60832eddfba8ab) ) // 27C256
- ROM_LOAD( "monty_module1.bin", 0x8000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
- ROM_LOAD( "monty_module2.bin", 0xc000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
+ ROM_LOAD( "monty_module1.bin", 0x8000, 0x4000, CRC(2725d8c3) SHA1(8273b9779c0915f9c7c43ea4fb460f43ce036358) ) // 27128
+ ROM_LOAD( "monty_module2.bin", 0xc000, 0x4000, CRC(db672e47) SHA1(bb14fe86df06cfa4b19625ba417d1a5bc8eae155) ) // 27128
ROM_END
diff --git a/src/mess/drivers/mtx.c b/src/mess/drivers/mtx.c
index 732a8643076..ddc61773f8c 100644
--- a/src/mess/drivers/mtx.c
+++ b/src/mess/drivers/mtx.c
@@ -18,7 +18,7 @@
- CBM (all RAM) mode
- "Silicon" disks
- Multi Effect Video Wall
-
+
*/
#include "emu.h"
diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c
index 3ba06c4b396..9930b42ff22 100644
--- a/src/mess/drivers/rainbow.c
+++ b/src/mess/drivers/rainbow.c
@@ -16,10 +16,10 @@ Issues with this driver:
(1) Keyboard emulation incomplete (fatal; inhibits the system from booting with ERROR 50).
-Serial ports do not work, so serial communication failure (ERROR 60) and ERROR 40 (serial
+Serial ports do not work, so serial communication failure (ERROR 60) and ERROR 40 (serial
printer interface) result. Unfortunately the BIOS tests all three serial interfaces in line.
-(2) while DOS 3 and UCSD systems (fort_sys, pas_sys) + diag disks boot, CPM 2.x and DOS 2.x die
+(2) while DOS 3 and UCSD systems (fort_sys, pas_sys) + diag disks boot, CPM 2.x and DOS 2.x die
in secondary boot loader with a RESTORE (seek track 0) when track 2 sector 1 should be loaded.
Writing files to floppy is next to impossible on both CPM 1.x and DOS 3 (these two OS boot
@@ -28,20 +28,20 @@ with keyboard workarounds enabled). File deletion works, so few bytes pass.
(3) heavy system interaction stalls the driver. Start one of the torture tests on the diag.disk
and see what happens (system interaction, Z80, about any test except the video / CRT tests).
-(4) arbitration chip (E11; in 100-A schematics or E13 in -B) should be dumped.
-It is a 6308 OTP ROM (2048 bit, 256 x 8) used as a lookup table (LUT) with the address pins (A)
-used as inputs and the data pins (D) as output.
+(4) arbitration chip (E11; in 100-A schematics or E13 in -B) should be dumped.
+It is a 6308 OTP ROM (2048 bit, 256 x 8) used as a lookup table (LUT) with the address pins (A)
+used as inputs and the data pins (D) as output.
Plays a role in DMA access to lower memory (limited to 64 K; Extended communication option only).
-Arbiter is also involved in refresh and shared memory contention (affects Z80/8088 CPU cycles).
+Arbiter is also involved in refresh and shared memory contention (affects Z80/8088 CPU cycles).
=> INPUTS on E13 (PC-100 B):
SH5 RF SH REQ H -> Pin 19 (A7) shared memory request / refresh ?
1K -> +5 V -> Pin 18 (A6) < UNUSED >
-SH 2 BDL ACK (L) -> Pin 17 (A5) BUNDLE OPTION: IRQ acknowledged
+SH 2 BDL ACK (L) -> Pin 17 (A5) BUNDLE OPTION: IRQ acknowledged
SH 2 NONSHRCYC H -> Pin 5 (A4) unshared memory cycle is in progress
-SH 2 PRECHARGE H -> Pin 4 (A3)
+SH 2 PRECHARGE H -> Pin 4 (A3)
SH 2 SHMUX 88 ENB -> Pin 3 (A2) shared memory
SH2 DO REFRESH H -> Pin 2 (A1) indicates that extended memory must be refreshed -> on J6 as (L)
SH10 BDL REQ (L) -> Pin 1 (A0) BUNDLE OPTION wishes to use shared memory
@@ -52,7 +52,7 @@ UPGRADES WORTH EMULATING:
* Color graphics option (uses NEC upd7220 GDC). REFERENCE: Programmer's Reference: AA-AE36A-TV.
Either 384 x 240 x 16 or 800 x 240 x 4 colors (out of 4096). 8 ? 64 K video RAM. Pallette limited to 4 colors on 100-A.
-Graphics output is independent from monochrome output.
+Graphics output is independent from monochrome output.
* Extended communication option (occupies BUNDLE_OPTION 1 + 2) REFERENCE: AA-V172A-TV + Addendum AV-Y890A-TV.
Two ports, a high-speed RS-422 half-duplex interface (port A) + lower-speed RS-423 full/half-duplex interface
@@ -62,7 +62,7 @@ Uses SHRAM, SHMA, BDL SH WR L, NONSHARED CYCLE. Implementation requires DMA and
Can't be added if RD51 hard disk controller present (J4 + J5). For programming info see NEWCOM1.DOC (-> RBETECDOC.ZIP).
-* ( NO DUMP YET ) PC character set. Enhances Code Blue emulation. Simple CHARACTER ROM replacement?
+* ( NO DUMP YET ) PC character set. Enhances Code Blue emulation. Simple CHARACTER ROM replacement?
* ( NO DUMP YET ) TCS / Technical Character Set ('$95 from DEC, for Rainbow 100, 100B, 100+ ; separate docs available')
Source: price list of a DEC reseller. Possibly identical to http://vt100.net/charsets/technical.html
@@ -175,12 +175,12 @@ DIAGNOSTIC-LEDs |J3 | |J2 | |J1 |
|-------------PCB# 5416206 / 5016205-01C1-------------|
CONNECTORS ("J"):
- ...J5... ...J4... both: RD51 controller (hard disk)
- ...J5... ...J4... both: EXTENDED COMM. controller
+ ...J5... ...J4... both: RD51 controller (hard disk)
+ ...J5... ...J4... both: EXTENDED COMM. controller
- ...J6... is the MEMORY OPTION connector (52 pin)
- ...J7... is the GRAPHICS OPTION connector (40 pin)
- ...J9... RX50 FLOPPY CONTROLLER (40 pin; REQUIRED)
+ ...J6... is the MEMORY OPTION connector (52 pin)
+ ...J7... is the GRAPHICS OPTION connector (40 pin)
+ ...J9... RX50 FLOPPY CONTROLLER (40 pin; REQUIRED)
JUMPERS (labeled "W"):
W5 + W6 are out when 16K x 8 EPROMS are used
@@ -212,7 +212,7 @@ W17 pulls J1 serial port pin 1 to GND when set (chassis to logical GND).
// (2) KEYBOARD_WORKAROUND : also requires FORCE...LOGO (and preliminary headers)
//#define KEYBOARD_WORKAROUND
-//#define KBD_DELAY 8 // (debounce delay)
+//#define KBD_DELAY 8 // (debounce delay)
// ---------------------------------------------------------------------------
@@ -236,8 +236,8 @@ W17 pulls J1 serial port pin 1 to GND when set (chassis to logical GND).
#include "formats/pc_dsk.h" // PC Formats (TESTING)
#include "imagedev/flopdrv.h"
-#include "imagedev/harddriv.h"
-#include "machine/wd2010.h"
+#include "imagedev/harddriv.h"
+#include "machine/wd2010.h"
#include "machine/i8251.h"
#include "machine/clock.h"
@@ -261,7 +261,7 @@ public:
driver_device(mconfig, type, tag),
#ifdef KEYBOARD_WORKAROUND
-#include "./m_kbd1.c"
+#include "./m_kbd1.c"
#endif
@@ -270,9 +270,9 @@ public:
m_inp3(*this, "W15"),
m_inp4(*this, "W18"),
m_inp5(*this, "HARD DISK PRESENT"), // DO NOT CHANGE ORDER (also: COMMUNICATION EXTENSION)
- m_inp6(*this, "FLOPPY CONTROLLER"), // DO NOT CHANGE ORDER
- m_inp7(*this, "GRAPHICS OPTION"), // DO NOT CHANGE ORDER
- m_inp8(*this, "MEMORY PRESENT"), // DO NOT CHANGE ORDER
+ m_inp6(*this, "FLOPPY CONTROLLER"), // DO NOT CHANGE ORDER
+ m_inp7(*this, "GRAPHICS OPTION"), // DO NOT CHANGE ORDER
+ m_inp8(*this, "MEMORY PRESENT"), // DO NOT CHANGE ORDER
m_inp9(*this, "MONITOR TYPE"),
m_inp10(*this, "J17"),
m_inp11(*this, "CLIKCLOK"),
@@ -283,7 +283,7 @@ public:
m_z80(*this, "subcpu"),
m_fdc(*this, FD1793_TAG),
- m_hdc(*this, "hdc"),
+ m_hdc(*this, "hdc"),
m_kbd8251(*this, "kbdser"),
m_lk201(*this, LK201_TAG),
@@ -312,9 +312,9 @@ public:
DECLARE_WRITE8_MEMBER(share_z80_w);
// 'RD51' MFM CONTROLLER (WD1010) *************************************
- DECLARE_READ8_MEMBER(hd_status_60_r); // TRI STATE DATA PORT (R/W)
+ DECLARE_READ8_MEMBER(hd_status_60_r); // TRI STATE DATA PORT (R/W)
DECLARE_WRITE8_MEMBER(hd_status_60_w);
-
+
DECLARE_READ8_MEMBER(hd_status_68_r); // EXTRA REGISTER 0x68 (R/W 8088)
DECLARE_WRITE8_MEMBER(hd_status_68_w);
@@ -364,9 +364,9 @@ public:
DECLARE_READ8_MEMBER(rtc_w);
-
+
#ifdef KEYBOARD_WORKAROUND
-#include "./port9x_Ax.c"
+#include "./port9x_Ax.c"
#endif
UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
@@ -381,22 +381,22 @@ protected:
private:
enum
{ // LOWEST PRIORITY
- // Mnemonic - - - - - - TYPE ADDRESS - Source
+ // Mnemonic - - - - - - TYPE ADDRESS - Source
// [1][0] [1][0] <= Depends on DTR(L) output of keyboard PUSART (on Rainbow-100 B)
IRQ_8088_MAILBOX = 0, // 27/A7 9C/29C - [built-in] Interrupt from Z80A
IRQ_8088_KBD, // 26/A6 98/298 - [built-in] KEYBOARD Interrupt - 8251A
IRQ_BDL_INTR_L, // 25/A5 94/294 - [ext. BUNDLE OPTION] Hard disk or Extended communication IRQ (no DMA)
- // IRQ_COMM_PTR_INTR_L, // 24/A4 90/290 - [built-in 7201] Communication/Printer interrupt
- // IRQ_DMAC_INTR_L, // 23/A3 8C/28C - [ext. COMM.BOARD only] - external DMA Controller (8237) interrupt
- // IRQ_GRF_INTR_L, // 22/A2 88/288 - [ext. COLOR GRAPHICS]
- // IRQ_BDL_INTR_1L, // 21/A1 84/284 - [ext. COMM.BOARD only]
+ // IRQ_COMM_PTR_INTR_L, // 24/A4 90/290 - [built-in 7201] Communication/Printer interrupt
+ // IRQ_DMAC_INTR_L, // 23/A3 8C/28C - [ext. COMM.BOARD only] - external DMA Controller (8237) interrupt
+ // IRQ_GRF_INTR_L, // 22/A2 88/288 - [ext. COLOR GRAPHICS]
+ // IRQ_BDL_INTR_1L, // 21/A1 84/284 - [ext. COMM.BOARD only]
IRQ_8088_VBL, // 20/A0 80/280 - [built-in DC012] - VERT INTR L (= schematics)
- IRQ_8088_NMI // 02/02 08/08 - [external MEMORY EXTENSION] - PARITY ERROR L
+ IRQ_8088_NMI // 02/02 08/08 - [external MEMORY EXTENSION] - PARITY ERROR L
}; // HIGHEST PRIORITY
-
+
#ifdef KEYBOARD_WORKAROUND
-#include "./m_kbd2.c"
+#include "./m_kbd2.c"
#endif
required_ioport m_inp1;
@@ -416,7 +416,7 @@ private:
required_device<cpu_device> m_z80;
required_device<fd1793_t> m_fdc;
- optional_device<wd2010_device> m_hdc;
+ optional_device<wd2010_device> m_hdc;
required_device<i8251_device> m_kbd8251;
required_device<lk201_device> m_lk201;
@@ -468,10 +468,10 @@ private:
int m_irq_high;
UINT32 m_irq_mask;
- int m_bdl_irq;
+ int m_bdl_irq;
int m_hdc_buf_offset;
- bool m_hdc_index_latch;
+ bool m_hdc_index_latch;
bool m_hdc_step_latch;
int m_hdc_direction;
bool m_hdc_track0;
@@ -491,7 +491,7 @@ FLOPPY_IMD_FORMAT,
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
-// initially only : SLOT_INTERFACE("525qd", FLOPPY_525_SSQD)
+// initially only : SLOT_INTERFACE("525qd", FLOPPY_525_SSQD)
static SLOT_INTERFACE_START(rainbow_floppies)
SLOT_INTERFACE("525qd0", FLOPPY_525_SSQD)
SLOT_INTERFACE("525qd1", FLOPPY_525_SSQD)
@@ -584,7 +584,7 @@ AM_RANGE(0x00, 0x00) AM_READWRITE(i8088_latch_r, i8088_latch_w)
// 0x02 Communication status / control register (8088)
AM_RANGE(0x02, 0x02) AM_READWRITE(comm_control_r, comm_control_w)
-AM_RANGE(0x04, 0x04) AM_DEVWRITE("vt100_video", rainbow_video_device, dc011_w)
+AM_RANGE(0x04, 0x04) AM_DEVWRITE("vt100_video", rainbow_video_device, dc011_w)
// TODO: unmapped [06] : Communication bit rates (see page 21 of PC 100 SPEC)
@@ -592,7 +592,7 @@ AM_RANGE(0x08, 0x08) AM_READ(system_parameter_r)
AM_RANGE(0x0a, 0x0a) AM_READWRITE(diagnostic_r, diagnostic_w)
-AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("vt100_video", rainbow_video_device, dc012_w)
+AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("vt100_video", rainbow_video_device, dc012_w)
// TODO: unmapped [0e] : PRINTER BIT RATE REGISTER (WO)
@@ -609,7 +609,7 @@ AM_RANGE(0x11, 0x11) AM_DEVREADWRITE("kbdser", i8251_device, status_r, control_w
// 0x20 -> 0x2f ***** EXTENDED COMM. OPTION / Option Select 1.
// See boot rom @1EA6: 0x27 (<- RESET EXTENDED COMM OPTION )
// ===========================================================
-// 0x30 -> 0x3f ***** Option Select 3
+// 0x30 -> 0x3f ***** Option Select 3
// ===========================================================
// 0x40 COMMUNICATIONS DATA REGISTER (MPSC)
// 0x41 PRINTER DATA REGISTER (MPSC)
@@ -647,7 +647,7 @@ AM_RANGE(0x69, 0x69) AM_READ(hd_status_69_r)
// ===========================================================
// THE RD51 CONTROLLER:
// - WD1010AL - 00 (WDC '83)
-// + 2 K x 8 SRAM (SY2128-4 or Japan 8328) 21-17872-01
+// + 2 K x 8 SRAM (SY2128-4 or Japan 8328) 21-17872-01
// + 74(L)Sxxx glue logic (drive/head select, buffers etc.)
// + 10 Mhz Quartz (/2)
// SERVICE JUMPERS (not to be removed for normal operation):
@@ -665,26 +665,26 @@ AM_RANGE(0x69, 0x69) AM_READ(hd_status_69_r)
// DEC RD53(67 Mbyte); 1024 cyl.8 heads -- 1325 [!]
// [!] More than 4 heads. Prepare with WUTIL and / or DSKPREP.
-// SIZE RESTRICTIONS
+// SIZE RESTRICTIONS
// * HARDWARE:
-// WD1010 controller has a built-in limit of 8 heads / 1024 cylinders.
+// WD1010 controller has a built-in limit of 8 heads / 1024 cylinders.
// * BOOT LOADERS:
// - the DEC boot loader (and FDISK from DOS 3.10) initially allowed a maximum hard disc size of 20 MB.
// - the custom boot loader that comes with 'WUTIL 3.2' allows 117 MB and 8 surfaces.
// * SOFTWARE:
-// - MS-DOS 2 allows a maximum partition size of 16 MB (sizes > 15 MB are incompatible to DOS 3)
+// - MS-DOS 2 allows a maximum partition size of 16 MB (sizes > 15 MB are incompatible to DOS 3)
// [ no more than 4 partitions of 8 MB size on one hard disk possible ]
// - MS-DOS 3 - and Concurrent CPM - have a global 32 MB (1024 cylinder) limit
// - a CP/M-86-80 partition can have up to 8 MB (all CP/M partitions together must not exceed 10 MB)
// ===========================================================
-// 0x70 -> 0x7f ***** Option Select 4
+// 0x70 -> 0x7f ***** Option Select 4
// ===========================================================
// 0x10c
AM_RANGE(0x10c, 0x10c) AM_DEVWRITE("vt100_video", rainbow_video_device, dc012_w)
#ifdef KEYBOARD_WORKAROUND
-#include "./am_range_9x_Ax.c"
+#include "./am_range_9x_Ax.c"
#endif
ADDRESS_MAP_END
@@ -778,7 +778,7 @@ PORT_DIPNAME(0x08, 0x08, "W15 (FACTORY TEST C, LEAVE OFF)") PORT_TOGGLE
PORT_DIPSETTING(0x08, DEF_STR(Off))
PORT_DIPSETTING(0x00, DEF_STR(On))
-PORT_START("W18") // DSR = 1 when switch is OFF - see i8251.c
+PORT_START("W18") // DSR = 1 when switch is OFF - see i8251.c
PORT_DIPNAME(0x01, 0x00, "W18 (FACTORY TEST D, LEAVE OFF) (8251A: DSR)") PORT_TOGGLE
PORT_DIPSETTING(0x00, DEF_STR(Off))
PORT_DIPSETTING(0x01, DEF_STR(On))
@@ -808,22 +808,22 @@ void rainbow_state::machine_reset()
// BIOS can't handle soft resets (would trigger ERROR 16).
// As a fallback, execute a hard reboot!
if (COLD_BOOT == 2)
- { // FIXME: ask for confirmation (via UI ?)
+ { // FIXME: ask for confirmation (via UI ?)
device().machine().schedule_hard_reset();
}
/* *****************************************************************************************************************
Suitable Solutions ClikClok (one of the more compatible battery backed real time clocks)
- DESCRIPTION: plugs into NVRAM chip socket on a 100-A and into one of the (EP)ROM sockets on the 100-B
- ............ (there is a socket on the ClikClok for the NVRAM / EPROM chip).
+ DESCRIPTION: plugs into NVRAM chip socket on a 100-A and into one of the (EP)ROM sockets on the 100-B
+ ............ (there is a socket on the ClikClok for the NVRAM / EPROM chip).
- DS1315 phantom clock. No address space needed (-> IRQs must be disabled to block ROM accesses during reads).
+ DS1315 phantom clock. No address space needed (-> IRQs must be disabled to block ROM accesses during reads).
- DRIVERS: 'rbclik.zip' DOS and CP/M binaries plus source from DEC employee; Reads & displays times. Y2K READY.
- + 'newclk.arc' (Suitable Solutions; sets time and date; uses FE000 and up). 2 digit year here.
+ DRIVERS: 'rbclik.zip' DOS and CP/M binaries plus source from DEC employee; Reads & displays times. Y2K READY.
+ + 'newclk.arc' (Suitable Solutions; sets time and date; uses FE000 and up). 2 digit year here.
- TODO: obtain hardware / check address decoders. Access logic here is derived from Vincent Esser's source.
+ TODO: obtain hardware / check address decoders. Access logic here is derived from Vincent Esser's source.
*****************************************************************************************************************/
// * Reset RTC to a defined state *
@@ -833,7 +833,7 @@ void rainbow_state::machine_reset()
// A magic pattern enables reads or writes (-> RTC_WRITE_DATA_0 / RTC_WRITE_DATA_1)
// 64 bits read from two alternating addresses (see DS1315.C)
- #define RTC_PATTERN_0 0xFC100 // MIRROR: FE100
+ #define RTC_PATTERN_0 0xFC100 // MIRROR: FE100
#define RTC_PATTERN_1 0xFC101 // MIRROR: FE101
program.install_read_handler(RTC_PATTERN_0, RTC_PATTERN_1, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_enable), this));
program.install_read_handler(RTC_PATTERN_0 + 0x2000, RTC_PATTERN_1 + 0x2000, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_enable2), this));
@@ -844,11 +844,11 @@ void rainbow_state::machine_reset()
program.install_read_handler(RTC_READ_DATA + 0x2000, RTC_READ_DATA + 0x2000, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_r2), this));
// * Secretly transmit data to RTC (set time / date) * Works only if magic pattern enabled RTC. Look ma, no writes!
- #define RTC_WRITE_DATA_0 0xFE000
+ #define RTC_WRITE_DATA_0 0xFE000
#define RTC_WRITE_DATA_1 0xFE001
program.install_read_handler(RTC_WRITE_DATA_0, RTC_WRITE_DATA_1, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_w), this));
- m_rtc->chip_reset();
+ m_rtc->chip_reset();
// *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
@@ -856,14 +856,14 @@ void rainbow_state::machine_reset()
{
COLD_BOOT = 2;
m_crtc->MHFU(-100); // reset MHFU counter
- }
+ }
// *********** HARD DISK CONTROLLER...
if (m_inp5->read() == 0x01) // ...PRESENT?
- {
+ {
// Install 8088 read / write handler
address_space &io = machine().device<cpu_device>("maincpu")->space(AS_IO);
- io.unmap_readwrite(0x60, 0x60);
+ io.unmap_readwrite(0x60, 0x60);
io.install_read_handler(0x60, 0x60, read8_delegate(FUNC(rainbow_state::hd_status_60_r), this));
io.install_write_handler(0x60, 0x60, write8_delegate(FUNC(rainbow_state::hd_status_60_w), this));
@@ -933,12 +933,12 @@ void rainbow_state::machine_reset()
UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/*
- // Suppress display when accessing floppy (switch to 'smooth scroll' when working with DOS, please)!
- if (MOTOR_DISABLE_counter) // IF motor running...
- {
- if (m_p_vol_ram[0x84] == 0x00) // IF jump scroll
- return 0;
- }
+ // Suppress display when accessing floppy (switch to 'smooth scroll' when working with DOS, please)!
+ if (MOTOR_DISABLE_counter) // IF motor running...
+ {
+ if (m_p_vol_ram[0x84] == 0x00) // IF jump scroll
+ return 0;
+ }
*/
m_crtc->palette_select(m_inp9->read());
@@ -952,7 +952,7 @@ UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16
// Interrupt handling and arbitration. See 3.1.3.8 OF PC-100 spec.
void rainbow_state::update_8088_irqs()
{
- static const int vectors[] = { 0x27, 0x26, 0x25, 0x20 };
+ static const int vectors[] = { 0x27, 0x26, 0x25, 0x20 };
if (m_irq_mask != 0)
{
@@ -983,7 +983,7 @@ void rainbow_state::lower_8088_irq(int ref)
update_8088_irqs();
}
-// Only Z80 * private SRAM * is wait state free
+// Only Z80 * private SRAM * is wait state free
// (= fast enough to allow proper I/O to the floppy)
// Shared memory is contended by refresh, concurrent
@@ -1045,22 +1045,22 @@ WRITE8_MEMBER(rainbow_state::share_z80_w)
// ------------------------ClikClok (for model B; DS1315) ---------------------------------
#define RTC_RESET_MACRO m_rtc->chip_reset(); \
- UINT8 *rom = memregion("maincpu")->base();
+ UINT8 *rom = memregion("maincpu")->base();
#define RTC_ENABLE_MACRO \
- if (m_inp11->read() == 0x01) \
- { \
- if (offset & 1) \
+ if (m_inp11->read() == 0x01) \
+ { \
+ if (offset & 1) \
m_rtc->read_1(space, 0); \
else \
- m_rtc->read_0(space, 0); \
- } \
- UINT8 *rom = memregion("maincpu")->base();
+ m_rtc->read_0(space, 0); \
+ } \
+ UINT8 *rom = memregion("maincpu")->base();
#define RTC_READ_MACRO \
- if (m_rtc->chip_enable() && (m_inp11->read() == 0x01)) \
- return (m_rtc->read_data(space, 0) & 0x01); \
- UINT8 *rom = memregion("maincpu")->base();
+ if (m_rtc->chip_enable() && (m_inp11->read() == 0x01)) \
+ return (m_rtc->read_data(space, 0) & 0x01); \
+ UINT8 *rom = memregion("maincpu")->base();
// *********** RTC RESET **************
READ8_MEMBER(rainbow_state::rtc_reset)
@@ -1078,7 +1078,7 @@ READ8_MEMBER(rainbow_state::rtc_reset2)
// *********** RTC ENABLE **************
READ8_MEMBER(rainbow_state::rtc_enable)
{
- RTC_ENABLE_MACRO
+ RTC_ENABLE_MACRO
return rom[RTC_PATTERN_0 + offset];
}
@@ -1151,13 +1151,13 @@ hard_disk_file *(rainbow_state::rainbow_hdc_file(int drv))
if (m_inp5->read() != 0x01) // ...PRESENT?
return NULL;
-
+
if (drv != 0)
return NULL;
harddisk_image_device *img = NULL;
- img = dynamic_cast<harddisk_image_device *>(machine().device(subtag("harddisk1").c_str()));
-
+ img = dynamic_cast<harddisk_image_device *>(machine().device(subtag("harddisk1").c_str()));
+
if (!img)
return NULL;
@@ -1188,7 +1188,7 @@ hard_disk_file *(rainbow_state::rainbow_hdc_file(int drv))
}
}
-// LBA sector from CHS
+// LBA sector from CHS
static UINT32 get_and_print_lbasector(hard_disk_info *info, UINT16 cylinder, UINT8 head, UINT8 sector_number)
{
if (info == NULL)
@@ -1242,7 +1242,7 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_read_sector)
// Pointer to info + C + H + S
UINT32 lbasector = get_and_print_lbasector(info, cylinder, SDH & 0x07, sector_number);
- if ((cylinder <= info->cylinders) && // filter invalid ranges
+ if ((cylinder <= info->cylinders) && // filter invalid ranges
(SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // may not vary in image!
)
{
@@ -1261,8 +1261,8 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_read_sector)
if (read_status != 0)
{
logerror("...** READ FAILED WITH STATUS %u ** (CYLINDER %u - HEAD %u - SECTOR # %u - SECTOR_SIZE %u ) ***\n",
- read_status, cylinder, SDH & 0x07, sector_number, SECTOR_SIZES[(SDH >> 5) & 0x03]
- ) ;
+ read_status, cylinder, SDH & 0x07, sector_number, SECTOR_SIZES[(SDH >> 5) & 0x03]
+ ) ;
}
} // (on BCS 1 -> 0)
@@ -1308,14 +1308,14 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_write_sector)
// CHD WRITE FAILURES or UNMOUNTED HARDDSIK TRIGGER A PERMANENT ERROR.
if (success < 50)
- m_hdc_write_fault = true; // reset only by HDC RESET!
+ m_hdc_write_fault = true; // reset only by HDC RESET!
}
wg_last = state; // remember state
}
-// Initiated by 'hdc_write_sector' (below)
+// Initiated by 'hdc_write_sector' (below)
// - in turn invoked by a WG: 1 -> 0 transit.
// STATUS CODES:
// 0 = DEFAULT ERROR (no HARD DISK FILE ?)
@@ -1324,7 +1324,7 @@ WRITE_LINE_MEMBER(rainbow_state::hdc_write_sector)
// 50 = SANITY CHECK FAILED (cylinder limit / <> 512 sectors?)
// 88 = (LOW LEVEL) WRITE/FORMAT (sector_count != 1 IGNORED)
-// 99 = SUCCESS : SECTOR WRITTEN
+// 99 = SUCCESS : SECTOR WRITTEN
// * RELIES * ON THE FACT THAT THERE WILL BE NO MULTI SECTOR TRANSFERS (!)
int rainbow_state::do_write_sector()
@@ -1352,7 +1352,7 @@ int rainbow_state::do_write_sector()
int sector_number = m_hdc->read(space(AS_PROGRAM), 0x03);
int sector_count = m_hdc->read(space(AS_PROGRAM), 0x02); // (1 = single sector)
- if (!((cylinder <= info->cylinders) && // filter invalid cylinders
+ if (!((cylinder <= info->cylinders) && // filter invalid cylinders
(SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // 512, may not vary
))
{
@@ -1364,7 +1364,7 @@ int rainbow_state::do_write_sector()
// Pointer to info + C + H + S
UINT32 lbasector = get_and_print_lbasector(info, cylinder, SDH & 0x07, sector_number);
- if (sector_count != 1) // ignore all SECTOR_COUNTS != 1
+ if (sector_count != 1) // ignore all SECTOR_COUNTS != 1
{
logerror(" - ** IGNORED (SECTOR_COUNT !=1) **\n");
return 88; // BAIL OUT
@@ -1397,7 +1397,7 @@ READ8_MEMBER(rainbow_state::hd_status_60_r)
if (m_hdc_buf_offset >= 1024) // 1 K enforced by controller
{
m_hdc_buf_offset = 0;
- m_hdc->buffer_ready(true);
+ m_hdc->buffer_ready(true);
}
return data;
}
@@ -1412,13 +1412,13 @@ WRITE8_MEMBER(rainbow_state::hd_status_60_w)
if (m_hdc_buf_offset >= 1024) // 1 K enforced by controller
{
m_hdc_buf_offset = 0;
- m_hdc->buffer_ready(true);
+ m_hdc->buffer_ready(true);
}
}
// Secondary Command / Status Registers(68H) is...
-// (A) a write - only register for commands
+// (A) a write - only register for commands
// (B) a read - only register for status signals
// Holds the status of the following signals:
// - 3 hard-wired controller module identification bits.
@@ -1426,8 +1426,8 @@ WRITE8_MEMBER(rainbow_state::hd_status_60_w)
// - disk drive(latched status signals)
READ8_MEMBER(rainbow_state::hd_status_68_r)
{
- // (*) Bits 5-7 : HARD WIRED IDENTIFICATION BITS, bits 5+7 = 1 and bit 6 = 0 (= 101 für RD51 module)
- int data = 0xe0; // 111 gives DRIVE NOT READY (when W is pressed on boot screen)
+ // (*) Bits 5-7 : HARD WIRED IDENTIFICATION BITS, bits 5+7 = 1 and bit 6 = 0 (= 101 f?r RD51 module)
+ int data = 0xe0; // 111 gives DRIVE NOT READY (when W is pressed on boot screen)
if ((m_inp5->read() == 0x01) && (rainbow_hdc_file(0) != NULL))
data = 0xa0; // A0 : OK, DRIVE IS READY (!)
@@ -1439,27 +1439,27 @@ READ8_MEMBER(rainbow_state::hd_status_68_r)
// Bit 4 : SEEK COMPLETE: This status bit indicates that the disk drive positioned the R/W heads over the desired track on the disk surface.
// (ALT.TEXT): "Seek Complete - When this signal from the disk drive goes low(0), it indicates that the R /W heads settled on the correct track.
- // Writing is inhibited until this signal goes low(0). Seek complete is high(1) during normal seek operation.
+ // Writing is inhibited until this signal goes low(0). Seek complete is high(1) during normal seek operation.
if (stat & 16) // SEEK COMPLETE (bit 4)?
data |= 16;
// Bit 3 : DIRECTION : This bit indicates the direction the read/write heads in the disk
- // drive will move when the WD1010 chip issues step pulse(s). When high(1), the R / W heads will move toward the spindle.
- // When low (0), the heads will move away from the spindle, towards track O.
+ // drive will move when the WD1010 chip issues step pulse(s). When high(1), the R / W heads will move toward the spindle.
+ // When low (0), the heads will move away from the spindle, towards track O.
if (m_hdc_direction)
data |= 8;
// Bit 2 : LATCHED STEP PULSE: This status bit from the step pulse latch indicates if the WD1010
- // chip issued a step pulse since the last time the 8088 processor cleared the step pulse latch.
+ // chip issued a step pulse since the last time the 8088 processor cleared the step pulse latch.
if (m_hdc_step_latch)
data |= 4;
// Bit 1 : LATCHED INDEX : This status bit from the index latch indicates if the disk drive
- // encountered an index mark since the last time the 8088 processor cleared the index latch.
+ // encountered an index mark since the last time the 8088 processor cleared the index latch.
if (m_hdc_index_latch)
data |= 2;
- // Bit 0 : CTRL BUSY : indicates that the WD 1010 chip is accessing the sector buffer. When this bit is set,
+ // Bit 0 : CTRL BUSY : indicates that the WD 1010 chip is accessing the sector buffer. When this bit is set,
// the 8088 cannot access the WD 1010 registers.
if (stat & 128) // BUSY (bit 7)?
data |= 1;
@@ -1468,7 +1468,7 @@ READ8_MEMBER(rainbow_state::hd_status_68_r)
}
-// 68 (WRITE): Secondary Command Registers (68H) - - ERKLÄRUNG: "write-only register for commands"
+// 68 (WRITE): Secondary Command Registers (68H) - - ERKL?RUNG: "write-only register for commands"
// - see TABLE 4.8 (4-24)
WRITE8_MEMBER(rainbow_state::hd_status_68_w)
{
@@ -1550,15 +1550,15 @@ READ8_MEMBER(rainbow_state::hd_status_69_r)
if (m_hdc_write_gate) // WRITE GATE (cached here)
data |= 16;
-
+
if (m_hdc_write_fault)
data |= 32;
if (m_hdc_drive_ready)
- data |= 64;
+ data |= 64;
// Fake TRACK 0 signal (normally FROM DRIVE)
- m_hdc_track0 = false; // Set a default
+ m_hdc_track0 = false; // Set a default
int stat1 = m_hdc->read(space, 0x04); // CYL LO
int stat2 = m_hdc->read(space, 0x05); // CYL HI
@@ -1598,7 +1598,7 @@ READ_LINE_MEMBER(rainbow_state::hdc_write_fault)
return m_hdc_write_fault;
}
-// Buffer counter reset when BCR goes from 0 -> 1
+// Buffer counter reset when BCR goes from 0 -> 1
WRITE_LINE_MEMBER(rainbow_state::hdc_bcr)
{
static int bcr_state;
@@ -1613,7 +1613,7 @@ void rainbow_state::hdc_buffer_counter_reset()
m_hdc_buf_offset = 0;
}
-// DATA REQUEST - When high (..) initiates data transfers
+// DATA REQUEST - When high (..) initiates data transfers
// to or from the sector buffer. On a READ, this signal
// goes high AFTER the sector buffer is filled.
@@ -1644,7 +1644,7 @@ void rainbow_state::update_bundle_irq()
lower_8088_irq(IRQ_BDL_INTR_L);
if (m_inp5->read() == 0x01)
- hdc_buffer_counter_reset();
+ hdc_buffer_counter_reset();
}
else
{
@@ -1686,14 +1686,14 @@ READ8_MEMBER(rainbow_state::system_parameter_r)
B : no separation between the 2 available 'bundle cards' (HD controller / COMM.OPTION) ?
- M : old RAM extension (128 / 192 K ?) detected with OPTION_PRESENT bit, newer models 'by presence'.
+ M : old RAM extension (128 / 192 K ?) detected with OPTION_PRESENT bit, newer models 'by presence'.
BIOS uses a seperate IRQ vector for RAM board detection (at least on a 100-B).
*/
return (((m_inp5->read() == 1) ? 0 : 1) |
((m_inp6->read() == 1) ? 0 : 2) |
((m_inp7->read() == 1) ? 0 : 4) |
((m_inp8->read() > BOARD_RAM) ? 0 : 8)
- // 16 | 32 | 64 | 128 // to be verified.
+ // 16 | 32 | 64 | 128 // to be verified.
);
}
@@ -1709,7 +1709,7 @@ READ8_MEMBER(rainbow_state::comm_control_r)
*/
int data = 0;
if (COLD_BOOT == 2)
- data = 0; // During boot phase 2, never enable MHFU (prevents errors).
+ data = 0; // During boot phase 2, never enable MHFU (prevents errors).
else
{
data = m_crtc->MHFU(1);
@@ -1831,8 +1831,8 @@ READ8_MEMBER(rainbow_state::z80_generalstat_r)
int track = 0;
int fdc_step = 0;
- int fdc_ready = 0;
- int tk00 = 0;
+ int fdc_ready = 0;
+ int tk00 = 0;
int fdc_write_gate = 0;
int last_dir = 0;
@@ -1860,7 +1860,7 @@ READ8_MEMBER(rainbow_state::z80_generalstat_r)
last_dir = 1; // correct?
else
last_dir = 0;
-
+
if (fdc_ready == 1)
printf(" RDY:1 "); // TEST-DEBUG
else
@@ -1875,7 +1875,7 @@ READ8_MEMBER(rainbow_state::z80_generalstat_r)
printf(" TK00=0 "); // TEST-DEBUG
else
printf(" TK00=1 "); // TEST-DEBUG
-
+
}
int data = (
@@ -1909,12 +1909,12 @@ READ8_MEMBER(rainbow_state::z80_diskstatus_r)
{
// D7: DRQ: reflects status of DATA REQUEST signal from FDC.
// '1' indicates that FDC has read data OR requires new write data.
- data |= m_fdc->drq_r() ? 0x80 : 0x00;
+ data |= m_fdc->drq_r() ? 0x80 : 0x00;
// D6: IRQ: indicates INTERRUPT REQUEST signal from FDC. Indicates that a
// status bit has changed. Set to 1 at the completion of any
// command (.. see page 207 or 5-25).
- data |= m_fdc->intrq_r() ? 0x40 : 0x00;
+ data |= m_fdc->intrq_r() ? 0x40 : 0x00;
// D5: SIDE 0H: status of side select signal at J2 + J3 of RX50 controller.
// For 1 sided drives, this bit will always read low (0).
@@ -1935,7 +1935,7 @@ READ8_MEMBER(rainbow_state::z80_diskstatus_r)
if (track > 43)
data = data & (255 - 4);
else
- data = data | 4;
+ data = data | 4;
// D1: DS1 H: reflect status of bits 0 and 1 form disk.control reg.
// D0: DS0 H: "
@@ -1977,9 +1977,9 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
if (m_floppy != NULL)
{
m_fdc->set_floppy(m_floppy); // Sets new _image device_
- if (!m_floppy->exists())
+ if (!m_floppy->exists())
{
- m_floppy = NULL;
+ m_floppy = NULL;
printf("(m_unit = %i) SELECTED IMAGE *** DOES NOT EXIST *** (selected drive = %i)\n", m_unit, selected_drive);
selected_drive = INVALID_DRIVE;
//m_unit = INVALID_DRIVE;
@@ -2002,7 +2002,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
m_unit = selected_drive;
if (MOTOR_DISABLE_counter == 0) // "one shot"
- MOTOR_DISABLE_counter = 20;
+ MOTOR_DISABLE_counter = 20;
// FORCE_READY = 0 : assert DRIVE READY on FDC (diagnostic override; USED BY BIOS!)
bool force_ready = ((data & 4) == 0) ? true : false;
@@ -2025,7 +2025,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
if (m_unit < 2)
{
- data = data & (255 - 8); // MOTOR 0 (for A or B)
+ data = data & (255 - 8); // MOTOR 0 (for A or B)
}
else
{
@@ -2033,7 +2033,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
enable_start = 2;
disable_start = 4;
}
-
+
// RX-50 has head A and head B (1 for each of the 2 disk slots in a RX-50).
// Assume the other one is switched off -
for (int f_num = 0; f_num < MAX_FLOPPIES; f_num++)
@@ -2045,7 +2045,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
if ((f_num >= enable_start) && (f_num < disable_start))
tmp_floppy->mon_w(CLEAR_LINE); // enable
}
-
+
}
m_z80_diskcontrol = data;
@@ -2075,7 +2075,7 @@ WRITE_LINE_MEMBER(rainbow_state::clear_video_interrupt)
m_crtc->notify_vblank(false);
}
-// Reflects bits from 'diagnostic_w', except test jumpers
+// Reflects bits from 'diagnostic_w', except test jumpers
READ8_MEMBER(rainbow_state::diagnostic_r) // 8088 (port 0A READ). Fig.4-29 + table 4-15
{
return ((m_diagnostic & (0xf1)) | // MASK 0xf1 = 11110001
@@ -2131,13 +2131,13 @@ WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 +
allows the floppy data separator and the serial video output to be tested
through the use of the printer port. The following table shows how signals are routed.
- DIAGNOSTIC LOOPBACK = 0 DIAGNOSTIC LOOPBACK = 1 SIGNAL INPUT
- SIGNAL SOURCE SIGNAL SOURCE TO
- FROM FROM
- PRT RDATA(J2) VIDEO OUT PRT RXD(7201)
- PRT RXTXC 500 KHZ PRT RXTXC(7201)
- MASTER CLK 250 KHZ VIDEO CLK(DCO11)
- FLOPPY RAW DATA PRT TXD(7201) FLOPPY DATA SEPARATOR
+ DIAGNOSTIC LOOPBACK = 0 DIAGNOSTIC LOOPBACK = 1 SIGNAL INPUT
+ SIGNAL SOURCE SIGNAL SOURCE TO
+ FROM FROM
+ PRT RDATA(J2) VIDEO OUT PRT RXD(7201)
+ PRT RXTXC 500 KHZ PRT RXTXC(7201)
+ MASTER CLK 250 KHZ VIDEO CLK(DCO11)
+ FLOPPY RAW DATA PRT TXD(7201) FLOPPY DATA SEPARATOR
During Diagnostic Loopback, the - TEST input of the 8088 is connected to the
interrupt output of the MPSC.Thus, using the 8088's WAIT instruction in a
@@ -2234,7 +2234,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(rainbow_state::motor_tick)
if (m_crtc->MHFU(1)) // MHFU * flag * enabled ?
{
int data = m_crtc->MHFU(-1); // increment MHFU, return new value
-
+
// MHFU gets active if the 8088 has not acknowledged a video processor interrupt within approx. 108 milliseconds.
// Timer reset by 2 sources : the VERT INT L from the DC012, or the MHFU ENB L from the enable flip - flop.
@@ -2243,7 +2243,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(rainbow_state::motor_tick)
for (int i = 0; i < 9; i++)
printf("\nWATCHDOG TRIPPED *** NOW RESET MACHINE ***\n");
- m_crtc->MHFU(-100); // -100 : Enable MHFU flag
+ m_crtc->MHFU(-100); // -100 : Enable MHFU flag
if (m_inp12->read() == 0x01) // DIP for watchdog set?
{
@@ -2322,7 +2322,7 @@ MCFG_SOFTWARE_LIST_ADD("flop_list", "rainbow")
/// ********************************* HARD DISK CONTROLLER *****************************************
-MCFG_DEVICE_ADD("hdc", WD2010, 5000000) // 10 Mhz quartz on controller (divided by 2 for WCLK)
+MCFG_DEVICE_ADD("hdc", WD2010, 5000000) // 10 Mhz quartz on controller (divided by 2 for WCLK)
MCFG_WD2010_OUT_INTRQ_CB(WRITELINE(rainbow_state, bundle_irq)) // FIRST IRQ SOURCE (OR'ed with DRQ)
MCFG_WD2010_OUT_BDRQ_CB(WRITELINE(rainbow_state, hdc_bdrq)) // BUFFER DATA REQUEST
@@ -2341,7 +2341,7 @@ MCFG_WD2010_IN_SC_CB(VCC) // SEEK COMPLET
// CURRENTLY NOT EVALUATED WITHIN 'WD2010':
MCFG_WD2010_IN_TK000_CB(VCC)
-MCFG_WD2010_IN_INDEX_CB(VCC)
+MCFG_WD2010_IN_INDEX_CB(VCC)
MCFG_HARDDISK_ADD("harddisk1")
/// ******************************** / HARD DISK CONTROLLER ****************************************
@@ -2360,7 +2360,7 @@ MCFG_LK201_TX_HANDLER(DEVWRITELINE("kbdser", i8251_device, write_rxd))
MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4800 * 16) // 8251 is set to /16 on the clock input
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(rainbow_state, write_keyboard_clock))
-MCFG_TIMER_DRIVER_ADD_PERIODIC("motor", rainbow_state, motor_tick, attotime::from_hz(60))
+MCFG_TIMER_DRIVER_ADD_PERIODIC("motor", rainbow_state, motor_tick, attotime::from_hz(60))
MCFG_NVRAM_ADD_0FILL("nvram")
MACHINE_CONFIG_END
@@ -2369,7 +2369,7 @@ MACHINE_CONFIG_END
// - first generation hardware (introduced May '82) with ROM 04.03.11
// - inability to boot from hard disc (mind the inadequate PSU)
-// AVAILABLE RAM: 64 K on board (instead of 128 K on model 'B').
+// AVAILABLE RAM: 64 K on board (instead of 128 K on model 'B').
// Two compatible memory expansions were sold by DEC:
// (PCIXX-AA) : 64 K (usable on either Rainbow 100-A or 100-B)
@@ -2390,10 +2390,10 @@ ROM_LOAD("12-19606-02a.bin", 0xFA000, 0x2000, NO_DUMP) // ROM (FA000-FBFFF) (E89
ROM_LOAD("12-19606-02b.bin", 0xFC000, 0x2000, NO_DUMP) // ROM (FC000-FDFFF) (E90) 8 K
// SOCKETED LANGUAGE ROM (E91) with 1 single localization per ROM -
-ROM_LOAD("70-20274-15", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - USA
+ROM_LOAD("70-20274-15", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - USA
// ROM_LOAD("bg-r873a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - Canadian (French)
// ROM_LOAD("bg-r876a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - British (UK)
-// ROM_LOAD("bg-r878a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - German / Austrian
+// ROM_LOAD("bg-r878a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - German / Austrian
// ROM_LOAD("bg-r874a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - Italian
// ROM_LOAD("bg-r377a-bv", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - Spanish
// (...)
@@ -2420,8 +2420,8 @@ ROM_RELOAD(0xfc000, 0x4000)
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD("chargen.bin", 0x0000, 0x1000, CRC(1685e452) SHA1(bc299ff1cb74afcededf1a7beb9001188fdcf02f))
-// ROM_REGION(0x800, BUFFER, 0) // HDC RAM buffer 2 K -- NEW HDC
-// // ROM_FILL(0x000, 0x800, 0x00)
+// ROM_REGION(0x800, BUFFER, 0) // HDC RAM buffer 2 K -- NEW HDC
+// // ROM_FILL(0x000, 0x800, 0x00)
ROM_END
// 'Rainbow 190 B' (announced March 1985) is identical to 100-B, with alternate ROM v5.05.
diff --git a/src/mess/drivers/replicator.c b/src/mess/drivers/replicator.c
index b2bea598dd0..5825d74294b 100644
--- a/src/mess/drivers/replicator.c
+++ b/src/mess/drivers/replicator.c
@@ -667,84 +667,84 @@ static MACHINE_CONFIG_START( replicator, replicator_state )
MACHINE_CONFIG_END
ROM_START( replica1 )
- ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_DEFAULT_BIOS("v750")
-
- /* Version 5.1 release:
- - Initial firmware release
- */
- ROM_SYSTEM_BIOS( 0, "v51", "V 5.1" )
- ROMX_LOAD("mighty-mb40-v5.1.bin", 0x0000, 0x10b90, CRC(20d65cd1) SHA1(da18c3eb5a29a6bc1eecd92eaae6063fe29d0305), ROM_BIOS(1))
-
- /* Version 5.2 release:
- - Nozzle Tolerance added to EEPROM
- - Updated onboard menus
- - X,Y calibration tool added
- */
- ROM_SYSTEM_BIOS( 1, "v52", "V 5.2" )
- ROMX_LOAD("mighty-mb40-v5.2.bin", 0x0000, 0x126c4, CRC(555e47cf) SHA1(9d24a3dbeddce16669bb4d29c3366220ddf15d2a), ROM_BIOS(2))
-
- /* Version 5.5 release:
- - Acceleration added to motor motion
- - Digipot updates
- */
- ROM_SYSTEM_BIOS( 2, "v55", "V 5.5" )
- ROMX_LOAD("mighty-mb40-v5.5.bin", 0x0000, 0x1a420, CRC(9327d7e4) SHA1(d734ba2bda12f50ec3ac0035ab11591909d9edde), ROM_BIOS(3))
-
- /* Version 6.2.0 release:
- - Bug fix release to firmware 6.0
- - Addresses wavy print issue above 1cm
- - Left extruder prints with makerware.
- */
- ROM_SYSTEM_BIOS( 3, "v620", "V 6.2.0" )
- ROMX_LOAD("mighty_one_v6.2.0.bin", 0x0000, 0x1cf54, CRC(00df6f48) SHA1(db05afc2e1ebc104fb04753634a911187e396556), ROM_BIOS(4))
-
- /* Version 7.0.0 release:
- - Major upgrade to Stepper Motor Smoothness (via Sailfish team)
- - X3G format introduced
- - Heaters default to leaving 'preheat' on more of the time
- */
- ROM_SYSTEM_BIOS( 4, "v700", "V 7.0.0" )
- ROMX_LOAD("mighty_one_v7.0.0.bin", 0x0000, 0x1cb52, CRC(aa2a5fcf) SHA1(934e642b0b2d007689249680bad03c9255ae016a), ROM_BIOS(5))
-
- /* Version 7.2.0 release:
- - Removes support for S3G files
- - X3G is the recognized format
- - Minor bug fixes
- */
- ROM_SYSTEM_BIOS( 5, "v720", "V 7.2.0" )
- ROMX_LOAD("mighty_one_v7.2.0.bin", 0x0000, 0x1cb80, CRC(5e546706) SHA1(ed4aaf7522d5a5beea7eb69bf2c85d7a89f8f188), ROM_BIOS(6))
-
- /* Version 7.3.0 release:
- - Pause at Z Height
- - Elapsed time displays during prints
- - Minor bug fixes
- */
- ROM_SYSTEM_BIOS( 6, "v730", "V 7.3.0" )
- ROMX_LOAD("mighty_one_v7.3.0.bin", 0x0000, 0x1d738, CRC(71811ff5) SHA1(6728ea600ab3ff4b589adca90b0d700d9b70bd18), ROM_BIOS(7))
-
- /* Version 7.4.0 (bugfix) release:
- - Fixes issues with Z Pause and elapsed print time
- */
- ROM_SYSTEM_BIOS( 7, "v740", "V 7.4.0" )
- ROMX_LOAD("mighty_one_v7.4.0.bin", 0x0000, 0x1b9e2, CRC(97b05a27) SHA1(76ca2c9c1db2e006e501c3177a8a1aa693dda0f9), ROM_BIOS(8))
-
- /* Version 7.5.0 (bugfix) release:
- - Fixes issue with Heat Hold
- */
- ROM_SYSTEM_BIOS( 8, "v750", "V 7.5.0" )
- ROMX_LOAD("mighty_one_v7.5.0.bin", 0x0000, 0x1b9c4, CRC(169d6709) SHA1(62b5aacd1bc46969042aea7a50531ec467a4ff1f), ROM_BIOS(9))
-
- /* Sailfish firmware image - Metamáquina experimental build v7.5.0 */
- ROM_SYSTEM_BIOS( 9, "v750mm", "V 7.5.0 - Metamáquina" )
- ROMX_LOAD("mighty_one_v7.5.0.mm.bin", 0x0000, 0x1ef9a, CRC(0d36d9e7) SHA1(a53899775b4c4eea87b6903758ebb75f06710a69), ROM_BIOS(10))
-
-
- /*Arduino MEGA bootloader */
- ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
-
- /* on-die 4kbyte eeprom */
- ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_DEFAULT_BIOS("v750")
+
+ /* Version 5.1 release:
+ - Initial firmware release
+ */
+ ROM_SYSTEM_BIOS( 0, "v51", "V 5.1" )
+ ROMX_LOAD("mighty-mb40-v5.1.bin", 0x0000, 0x10b90, CRC(20d65cd1) SHA1(da18c3eb5a29a6bc1eecd92eaae6063fe29d0305), ROM_BIOS(1))
+
+ /* Version 5.2 release:
+ - Nozzle Tolerance added to EEPROM
+ - Updated onboard menus
+ - X,Y calibration tool added
+ */
+ ROM_SYSTEM_BIOS( 1, "v52", "V 5.2" )
+ ROMX_LOAD("mighty-mb40-v5.2.bin", 0x0000, 0x126c4, CRC(555e47cf) SHA1(9d24a3dbeddce16669bb4d29c3366220ddf15d2a), ROM_BIOS(2))
+
+ /* Version 5.5 release:
+ - Acceleration added to motor motion
+ - Digipot updates
+ */
+ ROM_SYSTEM_BIOS( 2, "v55", "V 5.5" )
+ ROMX_LOAD("mighty-mb40-v5.5.bin", 0x0000, 0x1a420, CRC(9327d7e4) SHA1(d734ba2bda12f50ec3ac0035ab11591909d9edde), ROM_BIOS(3))
+
+ /* Version 6.2.0 release:
+ - Bug fix release to firmware 6.0
+ - Addresses wavy print issue above 1cm
+ - Left extruder prints with makerware.
+ */
+ ROM_SYSTEM_BIOS( 3, "v620", "V 6.2.0" )
+ ROMX_LOAD("mighty_one_v6.2.0.bin", 0x0000, 0x1cf54, CRC(00df6f48) SHA1(db05afc2e1ebc104fb04753634a911187e396556), ROM_BIOS(4))
+
+ /* Version 7.0.0 release:
+ - Major upgrade to Stepper Motor Smoothness (via Sailfish team)
+ - X3G format introduced
+ - Heaters default to leaving 'preheat' on more of the time
+ */
+ ROM_SYSTEM_BIOS( 4, "v700", "V 7.0.0" )
+ ROMX_LOAD("mighty_one_v7.0.0.bin", 0x0000, 0x1cb52, CRC(aa2a5fcf) SHA1(934e642b0b2d007689249680bad03c9255ae016a), ROM_BIOS(5))
+
+ /* Version 7.2.0 release:
+ - Removes support for S3G files
+ - X3G is the recognized format
+ - Minor bug fixes
+ */
+ ROM_SYSTEM_BIOS( 5, "v720", "V 7.2.0" )
+ ROMX_LOAD("mighty_one_v7.2.0.bin", 0x0000, 0x1cb80, CRC(5e546706) SHA1(ed4aaf7522d5a5beea7eb69bf2c85d7a89f8f188), ROM_BIOS(6))
+
+ /* Version 7.3.0 release:
+ - Pause at Z Height
+ - Elapsed time displays during prints
+ - Minor bug fixes
+ */
+ ROM_SYSTEM_BIOS( 6, "v730", "V 7.3.0" )
+ ROMX_LOAD("mighty_one_v7.3.0.bin", 0x0000, 0x1d738, CRC(71811ff5) SHA1(6728ea600ab3ff4b589adca90b0d700d9b70bd18), ROM_BIOS(7))
+
+ /* Version 7.4.0 (bugfix) release:
+ - Fixes issues with Z Pause and elapsed print time
+ */
+ ROM_SYSTEM_BIOS( 7, "v740", "V 7.4.0" )
+ ROMX_LOAD("mighty_one_v7.4.0.bin", 0x0000, 0x1b9e2, CRC(97b05a27) SHA1(76ca2c9c1db2e006e501c3177a8a1aa693dda0f9), ROM_BIOS(8))
+
+ /* Version 7.5.0 (bugfix) release:
+ - Fixes issue with Heat Hold
+ */
+ ROM_SYSTEM_BIOS( 8, "v750", "V 7.5.0" )
+ ROMX_LOAD("mighty_one_v7.5.0.bin", 0x0000, 0x1b9c4, CRC(169d6709) SHA1(62b5aacd1bc46969042aea7a50531ec467a4ff1f), ROM_BIOS(9))
+
+ /* Sailfish firmware image - Metam??quina experimental build v7.5.0 */
+ ROM_SYSTEM_BIOS( 9, "v750mm", "V 7.5.0 - Metam??quina" )
+ ROMX_LOAD("mighty_one_v7.5.0.mm.bin", 0x0000, 0x1ef9a, CRC(0d36d9e7) SHA1(a53899775b4c4eea87b6903758ebb75f06710a69), ROM_BIOS(10))
+
+
+ /*Arduino MEGA bootloader */
+ ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
+
+ /* on-die 4kbyte eeprom */
+ ROM_REGION( 0x1000, "eeprom", ROMREGION_ERASEFF )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
diff --git a/src/mess/drivers/spec128.c b/src/mess/drivers/spec128.c
index 471ca40756f..4b36e8ddae0 100644
--- a/src/mess/drivers/spec128.c
+++ b/src/mess/drivers/spec128.c
@@ -222,7 +222,7 @@ static ADDRESS_MAP_START (spectrum_128_io, AS_IO, 8, spectrum_state )
AM_RANGE(0x001f, 0x001f) AM_READ(spectrum_port_1f_r) AM_MIRROR(0xff00)
AM_RANGE(0x007f, 0x007f) AM_READ(spectrum_port_7f_r) AM_MIRROR(0xff00)
AM_RANGE(0x00df, 0x00df) AM_READ(spectrum_port_df_r) AM_MIRROR(0xff00)
- AM_RANGE(0x0000, 0x0000) AM_WRITE(spectrum_128_port_7ffd_w) AM_MIRROR(0x7ffd) // (A15 | A1) == 0, note: reading from this port does write to it by value from data bus
+ AM_RANGE(0x0000, 0x0000) AM_WRITE(spectrum_128_port_7ffd_w) AM_MIRROR(0x7ffd) // (A15 | A1) == 0, note: reading from this port does write to it by value from data bus
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("ay8912", ay8910_device, data_w) AM_MIRROR(0x3ffd)
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("ay8912", ay8910_device, data_r, address_w) AM_MIRROR(0x3ffd)
AM_RANGE(0x0001, 0x0001) AM_READ(spectrum_128_ula_r) AM_MIRROR(0xfffe)
diff --git a/src/mess/drivers/tamag1.c b/src/mess/drivers/tamag1.c
index 93bc01e1905..4488a63c2c5 100644
--- a/src/mess/drivers/tamag1.c
+++ b/src/mess/drivers/tamag1.c
@@ -52,7 +52,7 @@ static E0C6S46_PIXEL_UPDATE_CB(tama_pixel_update)
27,26,25,24,36,23,22,21,
20,19,18,17,16,37,38,39
};
-
+
int y = com, x = seg2x[seg];
if (cliprect.contains(x, y))
bitmap.pix16(y, x) = state;
@@ -66,7 +66,7 @@ static E0C6S46_PIXEL_UPDATE_CB(tama_pixel_update)
output_set_lamp_value(y, state);
else if (x == 36 && y >= 12)
output_set_lamp_value(y-8, state);
-
+
// output for svg2lay
char buf[0x10];
sprintf(buf, "%d.%d", y, x);
diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c
index 7810423098d..a55f37f0fb8 100644
--- a/src/mess/drivers/vt100.c
+++ b/src/mess/drivers/vt100.c
@@ -630,7 +630,7 @@ ROM_START( vt132 ) // This is from anecdotal evidence and vt100.net, as the vt13
ROM_LOAD( "23-096e2-00.e52", 0x0800, 0x0800, NO_DUMP)
ROM_LOAD( "23-097e2-00.e45", 0x1000, 0x0800, NO_DUMP)
ROM_LOAD( "23-098e2-00.e40", 0x1800, 0x0800, NO_DUMP)
-
+
// NEWER vt132 (and STP?) romset
ROM_LOAD( "23-180e2-00.e56", 0x0000, 0x0800, NO_DUMP)
ROM_LOAD( "23-181e2-00.e52", 0x0800, 0x0800, NO_DUMP)
diff --git a/src/mess/drivers/vt240.c b/src/mess/drivers/vt240.c
index 02e3345dfac..0d6589e272e 100644
--- a/src/mess/drivers/vt240.c
+++ b/src/mess/drivers/vt240.c
@@ -17,7 +17,7 @@
0x0071: RAM fill to 0x00
0x1c8f: UPD7220
- // vt240: x2212 nvram at E56
+ // vt240: x2212 nvram at E56
****************************************************************************/
#include "emu.h"