summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess')
-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
-rw-r--r--src/mess/includes/amstrad.h2
-rw-r--r--src/mess/includes/c65.h1
-rw-r--r--src/mess/includes/x1.h130
-rw-r--r--src/mess/layout/rainbow.lay4
-rw-r--r--src/mess/machine/amstrad.c6
-rw-r--r--src/mess/machine/dec_lk201.c33
-rw-r--r--src/mess/machine/wangpckb.h2
-rw-r--r--src/mess/video/gba.c6
-rw-r--r--src/mess/video/vtvideo.c64
23 files changed, 473 insertions, 475 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"
diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h
index ca2fbb3b9a1..61ded7b08a5 100644
--- a/src/mess/includes/amstrad.h
+++ b/src/mess/includes/amstrad.h
@@ -1,5 +1,5 @@
// license:GPL-2.0+
-// copyright-holders:Kevin Thacker, Barry Rodewald
+// copyright-holders:Kevin Thacker, Barry Rodewald
/*****************************************************************************
*
* includes/amstrad.h
diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h
index ce796ce5dbf..e8771e83fc1 100644
--- a/src/mess/includes/c65.h
+++ b/src/mess/includes/c65.h
@@ -1,3 +1,2 @@
// license:LGPL-2.1+
// copyright-holders: Angelo Salese
-
diff --git a/src/mess/includes/x1.h b/src/mess/includes/x1.h
index 63ff63321b9..ba48f6ff043 100644
--- a/src/mess/includes/x1.h
+++ b/src/mess/includes/x1.h
@@ -95,98 +95,98 @@ public:
required_device<mc6845_device> m_crtc;
required_device<z80ctc_device> m_ctc;
- UINT8 *m_tvram; /**< Pointer for Text Video RAM */
- UINT8 *m_avram; /**< Pointer for Attribute Video RAM */
- UINT8 *m_kvram; /**< Pointer for Extended Kanji Video RAM (X1 Turbo) */
- UINT8 *m_ipl_rom; /**< Pointer for IPL ROM */
- UINT8 *m_work_ram; /**< Pointer for base work RAM */
- UINT8 *m_emm_ram; /**< Pointer for EMM RAM */
- UINT8 *m_pcg_ram; /**< Pointer for PCG GFX RAM */
- UINT8 *m_cg_rom; /**< Pointer for GFX ROM */
- UINT8 *m_kanji_rom; /**< Pointer for Kanji ROMs */
- int m_xstart, /**< Start X offset for screen drawing. */
- m_ystart; /**< Start Y offset for screen drawing. */
- UINT8 m_hres_320; /**< Pixel clock divider setting: (1) 48 (0) 24 */
- UINT8 m_io_switch; /**< Enable access for special bitmap RMW phase in isolated i/o. */
- UINT8 m_io_sys; /**< Read-back for PPI port C */
- UINT8 m_vsync; /**< Screen V-Sync bit, active low */
- UINT8 m_vdisp; /**< Screen V-Disp bit, active high */
- UINT8 m_io_bank_mode; /**< Helper for special bitmap RMW phase. */
- UINT8 *m_gfx_bitmap_ram; /**< Pointer for bitmap layer RAM. */
- UINT8 m_pcg_reset; /**< @todo Unused variable. */
- UINT8 m_sub_obf; /**< MCU side: OBF flag active low, indicates that there are parameters in comm buffer. */
- UINT8 m_ctc_irq_flag; /**< @todo Unused variable. */
- scrn_reg_t m_scrn_reg; /**< Base Video Registers. */
- turbo_reg_t m_turbo_reg; /**< Turbo Z Video Registers. */
- x1_rtc_t m_rtc; /**< Struct for RTC related variables */
- emu_timer *m_rtc_timer; /**< Pointer for RTC timer. */
- UINT8 m_pcg_write_addr; /**< @todo Unused variable. */
- UINT8 m_sub_cmd; /**< MCU side: current command issued from Main to Sub. */
- UINT8 m_sub_cmd_length; /**< MCU side: number of parameters, in bytes. */
- UINT8 m_sub_val[8]; /**< MCU side: parameters buffer. */
- int m_sub_val_ptr; /**< MCU side: index for parameter read-back */
- int m_key_i; /**< MCU side: index for keyboard read-back during OBF phase. */
- UINT8 m_irq_vector; /**< @todo Unused variable. */
- UINT8 m_cmt_current_cmd; /**< MCU side: CMT command issued. */
- UINT8 m_cmt_test; /**< MCU side: Tape BREAK status bit. */
- UINT8 m_rom_index[3]; /**< Current ROM address. */
- UINT32 m_kanji_offset; /**< @todo Unused variable. */
- UINT8 m_bios_offset; /**< @todo Unused variable. */
- UINT8 m_x_b; /**< Palette Register for Blue Gun */
- UINT8 m_x_g; /**< Palette Register for Green Gun */
- UINT8 m_x_r; /**< Palette Register for Red Gun */
- UINT16 m_kanji_addr_latch; /**< Internal Kanji ROM address. */
- UINT32 m_kanji_addr; /**< Latched Kanji ROM address. */
- UINT8 m_kanji_eksel; /**< Kanji ROM register bit for latch phase. */
- UINT8 m_pcg_reset_occurred; /**< @todo Unused variable. */
- UINT32 m_old_key1; /**< Keyboard read buffer for i/o port "key1" */
- UINT32 m_old_key2; /**< Keyboard read buffer for i/o port "key2" */
- UINT32 m_old_key3; /**< Keyboard read buffer for i/o port "key3" */
- UINT32 m_old_key4; /**< Keyboard read buffer for i/o port "tenkey" */
- UINT32 m_old_fkey; /**< Keyboard read buffer for i/o port "f_keys" */
- UINT8 m_key_irq_flag; /**< Keyboard IRQ pending. */
- UINT8 m_key_irq_vector; /**< Keyboard IRQ vector. */
- UINT32 m_emm_addr; /**< EMM RAM current address */
- UINT8 *m_pal_4096; /**< X1 Turbo Z: pointer for 4096 palette entries */
- UINT8 m_crtc_vreg[0x100], /**< CRTC register buffer. */
- m_crtc_index; /**< CRTC register index. */
- UINT8 m_is_turbo; /**< Machine type: (0) X1 Vanilla, (1) X1 Turbo */
- UINT8 m_ex_bank; /**< X1 Turbo Z: RAM bank register */
- UINT8 m_ram_bank; /**< Regular RAM bank for 0x0000-0x7fff memory window: (0) ROM/IPL (1) RAM */
+ UINT8 *m_tvram; /**< Pointer for Text Video RAM */
+ UINT8 *m_avram; /**< Pointer for Attribute Video RAM */
+ UINT8 *m_kvram; /**< Pointer for Extended Kanji Video RAM (X1 Turbo) */
+ UINT8 *m_ipl_rom; /**< Pointer for IPL ROM */
+ UINT8 *m_work_ram; /**< Pointer for base work RAM */
+ UINT8 *m_emm_ram; /**< Pointer for EMM RAM */
+ UINT8 *m_pcg_ram; /**< Pointer for PCG GFX RAM */
+ UINT8 *m_cg_rom; /**< Pointer for GFX ROM */
+ UINT8 *m_kanji_rom; /**< Pointer for Kanji ROMs */
+ int m_xstart, /**< Start X offset for screen drawing. */
+ m_ystart; /**< Start Y offset for screen drawing. */
+ UINT8 m_hres_320; /**< Pixel clock divider setting: (1) 48 (0) 24 */
+ UINT8 m_io_switch; /**< Enable access for special bitmap RMW phase in isolated i/o. */
+ UINT8 m_io_sys; /**< Read-back for PPI port C */
+ UINT8 m_vsync; /**< Screen V-Sync bit, active low */
+ UINT8 m_vdisp; /**< Screen V-Disp bit, active high */
+ UINT8 m_io_bank_mode; /**< Helper for special bitmap RMW phase. */
+ UINT8 *m_gfx_bitmap_ram; /**< Pointer for bitmap layer RAM. */
+ UINT8 m_pcg_reset; /**< @todo Unused variable. */
+ UINT8 m_sub_obf; /**< MCU side: OBF flag active low, indicates that there are parameters in comm buffer. */
+ UINT8 m_ctc_irq_flag; /**< @todo Unused variable. */
+ scrn_reg_t m_scrn_reg; /**< Base Video Registers. */
+ turbo_reg_t m_turbo_reg; /**< Turbo Z Video Registers. */
+ x1_rtc_t m_rtc; /**< Struct for RTC related variables */
+ emu_timer *m_rtc_timer; /**< Pointer for RTC timer. */
+ UINT8 m_pcg_write_addr; /**< @todo Unused variable. */
+ UINT8 m_sub_cmd; /**< MCU side: current command issued from Main to Sub. */
+ UINT8 m_sub_cmd_length; /**< MCU side: number of parameters, in bytes. */
+ UINT8 m_sub_val[8]; /**< MCU side: parameters buffer. */
+ int m_sub_val_ptr; /**< MCU side: index for parameter read-back */
+ int m_key_i; /**< MCU side: index for keyboard read-back during OBF phase. */
+ UINT8 m_irq_vector; /**< @todo Unused variable. */
+ UINT8 m_cmt_current_cmd; /**< MCU side: CMT command issued. */
+ UINT8 m_cmt_test; /**< MCU side: Tape BREAK status bit. */
+ UINT8 m_rom_index[3]; /**< Current ROM address. */
+ UINT32 m_kanji_offset; /**< @todo Unused variable. */
+ UINT8 m_bios_offset; /**< @todo Unused variable. */
+ UINT8 m_x_b; /**< Palette Register for Blue Gun */
+ UINT8 m_x_g; /**< Palette Register for Green Gun */
+ UINT8 m_x_r; /**< Palette Register for Red Gun */
+ UINT16 m_kanji_addr_latch; /**< Internal Kanji ROM address. */
+ UINT32 m_kanji_addr; /**< Latched Kanji ROM address. */
+ UINT8 m_kanji_eksel; /**< Kanji ROM register bit for latch phase. */
+ UINT8 m_pcg_reset_occurred; /**< @todo Unused variable. */
+ UINT32 m_old_key1; /**< Keyboard read buffer for i/o port "key1" */
+ UINT32 m_old_key2; /**< Keyboard read buffer for i/o port "key2" */
+ UINT32 m_old_key3; /**< Keyboard read buffer for i/o port "key3" */
+ UINT32 m_old_key4; /**< Keyboard read buffer for i/o port "tenkey" */
+ UINT32 m_old_fkey; /**< Keyboard read buffer for i/o port "f_keys" */
+ UINT8 m_key_irq_flag; /**< Keyboard IRQ pending. */
+ UINT8 m_key_irq_vector; /**< Keyboard IRQ vector. */
+ UINT32 m_emm_addr; /**< EMM RAM current address */
+ UINT8 *m_pal_4096; /**< X1 Turbo Z: pointer for 4096 palette entries */
+ UINT8 m_crtc_vreg[0x100], /**< CRTC register buffer. */
+ m_crtc_index; /**< CRTC register index. */
+ UINT8 m_is_turbo; /**< Machine type: (0) X1 Vanilla, (1) X1 Turbo */
+ UINT8 m_ex_bank; /**< X1 Turbo Z: RAM bank register */
+ UINT8 m_ram_bank; /**< Regular RAM bank for 0x0000-0x7fff memory window: (0) ROM/IPL (1) RAM */
/**
@brief Refresh current bitmap palette.
*/
void set_current_palette();
/**
@brief Retrieves the current PCG address.
-
+
@param width Number of currently setted up CRTC characters
- @param y_char_size Number of scanlines per character.
+ @param y_char_size Number of scanlines per character.
@return Destination PCG address.
*/
UINT16 get_pcg_addr(UINT16 width, UINT8 y_char_size);
/**
@brief X1 Turbo: Retrieves the current CHR ROM address in Hi-Speed Mode.
-
+
@return Destination CHR address.
*/
UINT16 check_chr_addr();
/**
@brief X1 Turbo: Retrieves the current PCG ROM address in Hi-Speed Mode.
-
+
@return Destination CHR address.
*/
UINT16 check_pcg_addr();
/**
@brief MCU side: retrieve keycode to game key conversion.
-
+
@param port Address to convert.
@return The converted game key buffer
*/
UINT8 get_game_key(UINT8 port);
/**
@brief MCU side: retrieve keyboard special key register.
-
+
@return
x--- ---- TEN: Numpad, Function key, special input key
-x-- ---- KIN: Valid key
@@ -200,7 +200,7 @@ public:
UINT8 check_keyboard_shift();
/**
@brief convert MAME input to raw scancode for keyboard.
-
+
@return the converted scancode
@todo Unoptimized.
*/
diff --git a/src/mess/layout/rainbow.lay b/src/mess/layout/rainbow.lay
index fd0842cd6cd..bb72bbf21ec 100644
--- a/src/mess/layout/rainbow.lay
+++ b/src/mess/layout/rainbow.lay
@@ -111,7 +111,7 @@
<color red="0.75" green="0.0" blue="0.0" />
</led7seg>
</element>
-
+
<view name="Default Layout">
<screen index="0">
<bounds x="30" y="0" width="640" height="480" />
@@ -211,7 +211,7 @@
<bezel name="label11" element="l11_wait">
<bounds x="0" y="282" width="15" height="16" />
</bezel>
-
+
<bezel name="digit0" element="digit">
<bounds x="0" y="320" width="14" height="20" />
</bezel>
diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c
index 032babb486f..9f490d13b43 100644
--- a/src/mess/machine/amstrad.c
+++ b/src/mess/machine/amstrad.c
@@ -1,5 +1,5 @@
// license:GPL-2.0+
-// copyright-holders:Kevin Thacker, Barry Rodewald
+// copyright-holders:Kevin Thacker, Barry Rodewald
/***************************************************************************
machine.c
@@ -1665,7 +1665,7 @@ Bit 4 controls the interrupt generation. It can be used to delay interrupts.*/
else
m_exp->romen_w(1);
}
-
+
amstrad_setLowerRom();
amstrad_setUpperRom();
@@ -2387,7 +2387,7 @@ void amstrad_state::amstrad_rethinkMemory()
}
}
}
-
+
/* mappings for other expansion devices */
if (m_exp)
m_exp->set_mapping();
diff --git a/src/mess/machine/dec_lk201.c b/src/mess/machine/dec_lk201.c
index a82908dd536..b110b45cfe3 100644
--- a/src/mess/machine/dec_lk201.c
+++ b/src/mess/machine/dec_lk201.c
@@ -232,14 +232,14 @@ const rom_entry *lk201_device::device_rom_region() const
DEC omitted terms like 'Interrupt', 'Break' and 'Data / Talk' on some keyboards,
so Fn numbers are definitely important for end users.
-
+
=== CURRENT SPECIAL KEYS ===
- [PC-AT] ......=> [DEC]
- LEFT CONTROL..=> Control
- LEFT ALT .....=> Compose
-
- RIGHT ALT ....=> Help
- RIGHT CONTROL => Do
+ [PC-AT] ......=> [DEC]
+ LEFT CONTROL..=> Control
+ LEFT ALT .....=> Compose
+
+ RIGHT ALT ....=> Help
+ RIGHT CONTROL => Do
==============================================================================================
=== (PC - AT ) keys above cursor block ===
* KEYCODE_INSERT * KEYCODE_HOME * KEYCODE_PGUP
@@ -251,9 +251,9 @@ const rom_entry *lk201_device::device_rom_region() const
==============================================================================================
=== CURRENT NUM PAD ASSIGNMENTS ===
[PF1] to [PF4] are mapped to NUM LOCK, SLASH etc. (=> 4 keys on top on num pad).
- Num pad '+' gives ',' on the DEC.
+ Num pad '+' gives ',' on the DEC.
',' translates to '.' (=> more or less the layout of model 'LK-201-AG')
-
+
Switch between 'full' and 'partial keyboard emulation' with Scroll Lock.
*/
@@ -278,7 +278,7 @@ INPUT_PORTS_START( lk201 )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Compose") PORT_CODE(KEYCODE_LALT)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
PORT_START("KBD2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
@@ -365,14 +365,14 @@ INPUT_PORTS_START( lk201 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9") PORT_CODE(KEYCODE_9)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LF (F13)") PORT_CODE(KEYCODE_F13)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LF (F13)") PORT_CODE(KEYCODE_F13)
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BS (F12)") PORT_CODE(KEYCODE_F12)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("KBD11")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // FIXME - duplicate "Return"
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0)
@@ -396,7 +396,7 @@ INPUT_PORTS_START( lk201 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous [^]") PORT_CODE(KEYCODE_END)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16) [Ausfuehren]") PORT_CODE(KEYCODE_RCONTROL)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16) [Ausfuehren]") PORT_CODE(KEYCODE_RCONTROL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Here") PORT_CODE(KEYCODE_HOME)
@@ -435,7 +435,7 @@ INPUT_PORTS_START( lk201 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num ,") PORT_CODE(KEYCODE_PLUS_PAD)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // PORT_NAME("Num -") = duplicate...see KBD13
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF4") PORT_CODE(KEYCODE_MINUS_PAD)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F19")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
@@ -636,7 +636,7 @@ void lk201_device::send_port(address_space &space, UINT8 offset, UINT8 data)
output_set_value("led_lock" , (led_data & 0x8) == 0);
}
#endif
-
+
break;
}
}
@@ -758,4 +758,3 @@ WRITE8_MEMBER( lk201_device::spi_w )
// printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc());
}
-
diff --git a/src/mess/machine/wangpckb.h b/src/mess/machine/wangpckb.h
index 3eb15fd04ad..27c87b071fc 100644
--- a/src/mess/machine/wangpckb.h
+++ b/src/mess/machine/wangpckb.h
@@ -2,7 +2,7 @@
// copyright-holders:Curt Coder
/**********************************************************************
- Wang PC keyboard emulation
+ Wang PC keyboard emulation
*********************************************************************/
diff --git a/src/mess/video/gba.c b/src/mess/video/gba.c
index 4745141e504..0699f047c98 100644
--- a/src/mess/video/gba.c
+++ b/src/mess/video/gba.c
@@ -2,11 +2,11 @@
// copyright-holders:R. Belmont,Ryan Holtz
/***************************************************************************
- gba.c
+ gba.c
- File to handle emulation of the video hardware of the Game Boy Advance
+ File to handle emulation of the video hardware of the Game Boy Advance
- By R. Belmont, MooglyGuy
+ By R. Belmont, MooglyGuy
***************************************************************************/
diff --git a/src/mess/video/vtvideo.c b/src/mess/video/vtvideo.c
index 6c838e45cd7..5170143d749 100644
--- a/src/mess/video/vtvideo.c
+++ b/src/mess/video/vtvideo.c
@@ -20,27 +20,27 @@ FIXME: work out the differences and identify common code between VT and Rainbow.
- REQUIRED TODOS / TESTS :
* do line and character attributes (plus combinations) match real hardware?
* how does the AVO fit in?
-
+
- SCROLLING REGIONS / SPLIT SCREEN SCROLLING UNTESTED (if you open > 1 file with the VAX editor EDT)
See VT100 Technical Manual: 4.7.4 Address Shuffling to 4.7.9 Split Screen Smooth Scrolling.
More on scrolling regions: Rainbow 100 B technical documentation (QV069-GZ) April 1985 page 22
-
+
- NEW - INTERLACED MODE (Rainbow only):
Vertical resolution increases from 240 to 480, while the refresh rate halves (flickers on CRTs).
To accomplish this, the display controller repeats even lines in odd scans.
VTVIDEO activates line doubling in 24 line, interlaced mode only.
-
+
Although the DC12 has the ability to display 48 lines, most units are low on screen RAM and
- won't even show 80 x 48. -> REASON: (83 x 48 = 3984 Byte) > (screen RAM) minus 'scratch area'
+ won't even show 80 x 48. -> REASON: (83 x 48 = 3984 Byte) > (screen RAM) minus 'scratch area'
On a VT-180, BIOS scratch requires up to 700 bytes used for SETUP, flags, SILO, keyboard.
-
+
- POSSIBLE IMPROVEMENTS:
-
+
* exact colors for different VR201 monitors (for white, green and amber)
* ACCURATE VIDEO DELAYS:
- Position of the first visible scanline (relative to the vertical reset) depends on
- content of fill bytes at the beginning of screen RAM.
+ Position of the first visible scanline (relative to the vertical reset) depends on
+ content of fill bytes at the beginning of screen RAM.
Six invisible, linked lines are initially provided (at location $EE000+ on a Rainbow).
Real-world DC hardware parses the (circular) chain until interrupted by blanking.
@@ -184,10 +184,10 @@ void rainbow_video_device::device_reset()
m_basic_attribute = 0;
m_columns = 80;
-
- m_frequency = 60;
- m_interlaced = 1;
+ m_frequency = 60;
+
+ m_interlaced = 1;
m_fill_lines = 2; // for 60Hz (not in use any longer -> detected)
recompute_parameters();
}
@@ -209,8 +209,8 @@ void vt100_video_device::recompute_parameters()
int vert_pix_total = ((m_linedoubler == false) ? m_height : m_height_MAX) * 10;
- if (m_columns == 132)
- horiz_pix_total = m_columns * 9; // display 1 less filler pixel in 132 char. mode
+ if (m_columns == 132)
+ horiz_pix_total = m_columns * 9; // display 1 less filler pixel in 132 char. mode
else
horiz_pix_total = m_columns * 10; // normal 80 character mode.
@@ -238,7 +238,7 @@ READ8_MEMBER(vt100_video_device::lba7_r)
// Also used by Rainbow-100 ************
WRITE8_MEMBER(vt100_video_device::dc012_w)
{
- // Writes to [10C] and [0C] are treated differently
+ // Writes to [10C] and [0C] are treated differently
// - see 3.1.3.9.5 DC012 Programming Information (PC-100 spec)
// MHFU is disabled by writing 00 to port 010C.
@@ -248,7 +248,7 @@ WRITE8_MEMBER(vt100_video_device::dc012_w)
{
UINT8 *rom = machine().root_device().memregion("maincpu")->base();
if (rom != NULL)
- {
+ {
UINT32 PC = space.device().safe_pc();
if ((rom[ PC - 1] == 0xe6) &&
(rom[ PC ] == 0x0c)
@@ -264,7 +264,7 @@ WRITE8_MEMBER(vt100_video_device::dc012_w)
//printf("\n PC %05x - MHFU MAGIC -2 %02x\n", PC, magic2);
//if (VERBOSE)
- //if(1 )
+ //if(1 )
if ((rom[PC - 2] == 0x0C) &&
(rom[PC - 1] == 0x01)
)
@@ -272,14 +272,14 @@ WRITE8_MEMBER(vt100_video_device::dc012_w)
if (MHFU_FLAG == true)
printf("MHFU *** DISABLED *** %05x \n", PC);
- MHFU_FLAG = false;
+ MHFU_FLAG = false;
MHFU_counter = 0;
}
}
-
+
} // DATA == 0 ONLY ....
- }
+ }
else
{
//if (VERBOSE)
@@ -368,9 +368,9 @@ WRITE8_MEMBER(vt100_video_device::dc012_w)
// Writing to DC011 resets internal counters (& disturbs display) on real hardware.
WRITE8_MEMBER(vt100_video_device::dc011_w)
{
- if (!BIT(data, 5))
+ if (!BIT(data, 5))
{
- m_interlaced = 1;
+ m_interlaced = 1;
if (!BIT(data, 4))
m_columns = 80;
@@ -384,16 +384,16 @@ WRITE8_MEMBER(vt100_video_device::dc011_w)
if (!BIT(data, 4))
{
m_frequency = 60;
- m_fill_lines = 2;
+ m_fill_lines = 2;
}
else
{
m_frequency = 50;
- m_fill_lines = 5;
+ m_fill_lines = 5;
}
}
- recompute_parameters();
+ recompute_parameters();
}
WRITE8_MEMBER(vt100_video_device::brightness_w)
@@ -559,7 +559,7 @@ void rainbow_video_device::display_char(bitmap_ind16 &bitmap, UINT8 code, int x,
UINT16 y_preset;
- UINT16 CHARPOS_y_preset = y << 3; // CHARPOS_y_preset = y * 10;
+ UINT16 CHARPOS_y_preset = y << 3; // CHARPOS_y_preset = y * 10;
CHARPOS_y_preset += y;
CHARPOS_y_preset += y;
@@ -571,10 +571,10 @@ void rainbow_video_device::display_char(bitmap_ind16 &bitmap, UINT8 code, int x,
int back_intensity, back_default_intensity;
int invert = (display_type & 8) ? 1 : 0; // REVERSE
- int bold = (display_type & 16) ? 0 : 1; // BIT 4
+ int bold = (display_type & 16) ? 0 : 1; // BIT 4
int blink = (display_type & 32) ? 0 : 1; // BIT 5
- int underline = (display_type & 64) ? 0 : 1; // BIT 6
- bool blank = (display_type & 128) ? true : false; // BIT 7
+ int underline = (display_type & 64) ? 0 : 1; // BIT 6
+ bool blank = (display_type & 128) ? true : false; // BIT 7
display_type = display_type & 3;
@@ -755,7 +755,7 @@ void rainbow_video_device::video_update(bitmap_ind16 &bitmap, const rectangle &c
// Skip fill (0xFF) lines and put result in ADDR.
for (int xp = 1; xp <= 6; xp += 1) // beware of circular references
{
- // Fetch LINE ATTRIBUTE before it is gone
+ // Fetch LINE ATTRIBUTE before it is gone
attr_addr = 0x1000 | ((addr + 1) & 0x0fff);
temp = m_read_ram(addr + 2) * 256 + m_read_ram(addr + 1);
@@ -903,8 +903,8 @@ int rainbow_video_device::MHFU(int ASK)
MHFU_FLAG = true;
return -100;
-
- case -200: // -200 : RESET and DISABLE MHFU
+
+ case -200: // -200 : RESET and DISABLE MHFU
MHFU_counter = 0;
if(1) //if (VERBOSE)
@@ -915,7 +915,7 @@ int rainbow_video_device::MHFU(int ASK)
MHFU_FLAG = false;
return -200;
-
+
default:
assert(1);
return -255;