diff options
Diffstat (limited to 'src/mame/drivers/galgame.cpp')
-rw-r--r-- | src/mame/drivers/galgame.cpp | 49 |
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 ) |