summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/galgame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/galgame.cpp')
-rw-r--r--src/mame/drivers/galgame.cpp49
1 files changed, 23 insertions, 26 deletions
diff --git a/src/mame/drivers/galgame.cpp b/src/mame/drivers/galgame.cpp
index 059a94ae35a..00a074d3fa2 100644
--- a/src/mame/drivers/galgame.cpp
+++ b/src/mame/drivers/galgame.cpp
@@ -49,7 +49,7 @@ public:
DECLARE_READ16_MEMBER(y_r);
DECLARE_WRITE16_MEMBER(y_w);
DECLARE_WRITE16_MEMBER(clk_w);
- DECLARE_DRIVER_INIT(galaxygame);
+ void init_galaxygame();
virtual void machine_reset() override;
uint32_t screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(galaxygame_irq);
@@ -357,15 +357,13 @@ ROM_END
static uint8_t read_uint16(uint16_t *pval, int pos, const uint8_t* line, int linelen)
{
- int i;
-
*pval = 0;
- if ( linelen < (pos + 6) )
+ if (linelen < (pos + 6))
{
return 0;
}
- for ( i = 0; i < 6; i++ )
+ for (int i = 0; i < 6; i++)
{
*pval <<= 3;
*pval |= line[pos + i] - 0x30;
@@ -375,15 +373,13 @@ static uint8_t read_uint16(uint16_t *pval, int pos, const uint8_t* line, int lin
static uint8_t read_uint8(uint8_t *pval, int pos, const uint8_t* line, int linelen)
{
- int i;
-
*pval = 0;
- if ( linelen < (pos + 3) )
+ if (linelen < (pos + 3))
{
return 0;
}
- for ( i = 0; i < 3; i++ )
+ for (int i = 0; i < 3; i++)
{
*pval <<= 3;
*pval |= line[pos + i] - 0x30;
@@ -391,49 +387,49 @@ static uint8_t read_uint8(uint8_t *pval, int pos, const uint8_t* line, int linel
return 1;
}
-DRIVER_INIT_MEMBER(galaxygame_state,galaxygame)
+void galaxygame_state::init_galaxygame()
{
address_space &main = m_maincpu->space(AS_PROGRAM);
uint8_t *code = memregion("code")->base();
- int filepos = 0, linepos, linelen;
- uint8_t line[256];
- uint16_t address;
- uint16_t val;
- uint8_t val8;
+ int filepos = 0;
//load lst file
- while( code[filepos] != 0 )
+ while (code[filepos] != 0)
{
- linepos = 0;
- while( code[filepos] != 0x0d )
+ uint8_t line[256];
+ int linepos = 0;
+ while (code[filepos] != 0x0d)
{
line[linepos++] = code[filepos++];
}
line[linepos] = 0;
filepos += 2;
- linelen = linepos;
+ int linelen = linepos;
- if ( linelen == 0 )
+ if (linelen == 0)
{
continue;
}
- if ( ( line[8] != ' ' ) && read_uint16(&address, 7, line, linelen ) )
+
+ uint16_t address;
+ if ((line[8] != ' ') && read_uint16(&address, 7, line, linelen))
{
- if ( (linelen >= 15+6) && (line[15] != ' ') )
+ if ((linelen >= 15+6) && (line[15] != ' '))
{
+ uint16_t val;
read_uint16(&val, 15, line, linelen);
main.write_word(address, val, 0xffff);
address += 2;
- if ( (linelen >= 22+6) && (line[22] != ' ') )
+ if ((linelen >= 22+6) && (line[22] != ' '))
{
read_uint16(&val, 22, line, linelen);
main.write_word(address, val, 0xffff);
address += 2;
}
- if ( (linelen >= 29+6) && (line[29] != ' ') )
+ if ((linelen >= 29+6) && (line[29] != ' '))
{
read_uint16(&val, 29, line, linelen);
main.write_word(address, val, 0xffff);
@@ -443,8 +439,9 @@ DRIVER_INIT_MEMBER(galaxygame_state,galaxygame)
}
else
{
- if ( (linelen >= 18+3) && (line[18] != ' ') )
+ if ((linelen >= 18+3) && (line[18] != ' '))
{
+ uint8_t val8;
read_uint8(&val8, 18, line, linelen);
main.write_byte(address, val8);
address += 1;
@@ -462,4 +459,4 @@ DRIVER_INIT_MEMBER(galaxygame_state,galaxygame)
main.write_word(8, 000500 - 10);
}
-GAME(1971, galgame, 0, galaxygame, galaxygame, galaxygame_state, galaxygame, ROT270, "Computer Recreations, Inc", "Galaxy Game", MACHINE_NO_SOUND_HW )
+GAME(1971, galgame, 0, galaxygame, galaxygame, galaxygame_state, init_galaxygame, ROT270, "Computer Recreations, Inc", "Galaxy Game", MACHINE_NO_SOUND_HW )