branches/alto2/src/mess/drivers/alto2.c
| r26033 | r26034 | |
| 31 | 31 | |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | | /* Memory Maps */ |
| 34 | READ16_MEMBER( alto2_state::alto2_mmio_r ) |
| 35 | { |
| 36 | return 0; |
| 37 | } |
| 35 | 38 | |
| 36 | | #if (ALTO2_CRAM_CONFIG==1) |
| 37 | | #define ALTO2_UCODE_ROM_PAGES 1 //!< number of microcode ROM pages |
| 38 | | #define ALTO2_UCODE_RAM_PAGES 1 //!< number of microcode RAM pages |
| 39 | | #elif (ALTO2_CRAM_CONFIG==2) |
| 40 | | #define ALTO2_UCODE_ROM_PAGES 2 //!< number of microcode ROM pages |
| 41 | | #define ALTO2_UCODE_RAM_PAGES 1 //!< number of microcode RAM pages |
| 42 | | #elif (ALTO2_CRAM_CONFIG==3) |
| 43 | | #define ALTO2_UCODE_ROM_PAGES 1 //!< number of microcode ROM pages |
| 44 | | #define ALTO2_UCODE_RAM_PAGES 3 //!< number of microcode RAM pages |
| 45 | | #else |
| 46 | | #error "Undefined CROM/CRAM configuration" |
| 47 | | #endif |
| 39 | WRITE16_MEMBER( alto2_state::alto2_mmio_w ) |
| 40 | { |
| 48 | 41 | |
| 42 | } |
| 43 | |
| 44 | /* Memory Maps */ |
| 45 | |
| 49 | 46 | static ADDRESS_MAP_START( alto2_ucode_map, AS_PROGRAM, 32, alto2_state ) |
| 50 | | AM_RANGE(0x0000, ALTO2_UCODE_RAM_BASE-1) AM_ROM |
| 47 | AM_RANGE(0, ALTO2_UCODE_RAM_BASE-1) AM_ROM |
| 51 | 48 | AM_RANGE(ALTO2_UCODE_RAM_BASE, ALTO2_UCODE_SIZE-1) AM_READWRITE(alto2_ucode_r, alto2_ucode_w) |
| 52 | 49 | ADDRESS_MAP_END |
| 53 | 50 | |
| 54 | 51 | static ADDRESS_MAP_START( alto2_ram_map, AS_IO, 16, alto2_state ) |
| 55 | | AM_RANGE(0x0000, ALTO2_RAM_SIZE/2-1) AM_READWRITE(alto2_ram_r, alto2_ram_w) |
| 52 | AM_RANGE(0, ALTO2_IO_PAGE_BASE - 1) AM_READWRITE(alto2_ram_r, alto2_ram_w) |
| 53 | AM_RANGE(ALTO2_IO_PAGE_BASE, 0177777) AM_READWRITE(alto2_mmio_r, alto2_mmio_w) |
| 56 | 54 | ADDRESS_MAP_END |
| 57 | 55 | |
| 58 | 56 | |
| r26033 | r26034 | |
| 196 | 194 | PORT_BIT(A2_KEY_I, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') //!< normal: i shifted: I |
| 197 | 195 | PORT_BIT(A2_KEY_X, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') //!< normal: x shifted: X |
| 198 | 196 | PORT_BIT(A2_KEY_O, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') //!< normal: o shifted: O |
| 199 | | PORT_BIT(A2_KEY_L, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_E) PORT_CHAR('l') PORT_CHAR('L') //!< normal: l shifted: L |
| 197 | PORT_BIT(A2_KEY_L, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') //!< normal: l shifted: L |
| 200 | 198 | PORT_BIT(A2_KEY_COMMA, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') //!< normal: , shifted: < |
| 201 | 199 | PORT_BIT(A2_KEY_QUOTE, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\x27') PORT_CHAR('"') //!< normal: ' shifted: " |
| 202 | 200 | PORT_BIT(A2_KEY_RBRACKET, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') //!< normal: ] shifted: } |
| r26033 | r26034 | |
| 214 | 212 | PORT_BIT(A2_KEY_B, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') //!< normal: b shifted: B |
| 215 | 213 | PORT_BIT(A2_KEY_Z, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') //!< normal: z shifted: Z |
| 216 | 214 | PORT_BIT(A2_KEY_LSHIFT, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) //!< LSHIFT |
| 217 | | PORT_BIT(A2_KEY_P, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') //!< normal: . shifted: > |
| 218 | | PORT_BIT(A2_KEY_S, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')//!< normal: ; shifted: : |
| 215 | PORT_BIT(A2_KEY_PERIOD, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') //!< normal: . shifted: > |
| 216 | PORT_BIT(A2_KEY_SEMICOLON, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')//!< normal: ; shifted: : |
| 219 | 217 | PORT_BIT(A2_KEY_RETURN, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR('\013') //!< RETURN |
| 220 | | PORT_BIT(A2_KEY_L, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("� ↑") PORT_CODE(KEYCODE_LEFT) //!< normal: left arrow shifted: up arrow (caret) |
| 218 | PORT_BIT(A2_KEY_LEFTARROW, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("← ↑") PORT_CODE(KEYCODE_LEFT) //!< normal: left arrow shifted: up arrow (caret) |
| 221 | 219 | PORT_BIT(A2_KEY_DEL, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_DEL) //!< normal: DEL shifted: ? |
| 222 | 220 | PORT_BIT(A2_KEY_MSW_2_17, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2/17") PORT_CODE(KEYCODE_MENU) //!< unused on Microswitch KDB |
| 223 | 221 | |
| r26033 | r26034 | |
| 231 | 229 | PORT_BIT(A2_KEY_N, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') //!< normal: n shifted: N |
| 232 | 230 | PORT_BIT(A2_KEY_M, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') //!< normal: m shifted: M |
| 233 | 231 | PORT_BIT(A2_KEY_LOCK, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LOCK") PORT_CODE(KEYCODE_SCRLOCK) //!< LOCK |
| 234 | | PORT_BIT(A2_KEY_SPACE, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_E) PORT_CHAR(' ') //!< SPACE |
| 232 | PORT_BIT(A2_KEY_SPACE, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') //!< SPACE |
| 235 | 233 | PORT_BIT(A2_KEY_L, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') //!< normal: [ shifted: { |
| 236 | 234 | PORT_BIT(A2_KEY_EQUALS, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') //!< normal: = shifted: + |
| 237 | 235 | PORT_BIT(A2_KEY_RSHIFT, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) //!< RSHIFT |
| r26033 | r26034 | |
| 264 | 262 | INPUT_PORTS_END |
| 265 | 263 | |
| 266 | 264 | |
| 267 | | /* F4 character display */ |
| 268 | | |
| 269 | | static const gfx_layout alto2_gfx_layout = |
| 270 | | { |
| 271 | | 16, 1, /* 16x1 pixels */ |
| 272 | | 65536, /* 65536 codes */ |
| 273 | | 1, /* 1 bit per pixel */ |
| 274 | | {0}, /* no bitplanes */ |
| 275 | | /* x offsets */ |
| 276 | | {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, |
| 277 | | /* y offsets */ |
| 278 | | {0}, |
| 279 | | 16 /* two bytes per code */ |
| 280 | | }; |
| 281 | | |
| 282 | | |
| 283 | | /* Graphics Decode Information */ |
| 284 | | |
| 285 | | static GFXDECODE_START( alto2 ) |
| 286 | | GFXDECODE_ENTRY( "gfx1", 0x0000, alto2_gfx_layout, 0, 2 ) |
| 287 | | GFXDECODE_END |
| 288 | | |
| 289 | | |
| 290 | 265 | /* Palette Initialization */ |
| 291 | 266 | |
| 292 | 267 | void alto2_state::palette_init() |
| r26033 | r26034 | |
| 307 | 282 | MCFG_SCREEN_UPDATE_DRIVER(alto2_state, screen_update) |
| 308 | 283 | MCFG_SCREEN_VBLANK_DRIVER(alto2_state, screen_eof_alto2) |
| 309 | 284 | |
| 310 | | MCFG_GFXDECODE(alto2) |
| 311 | 285 | MCFG_PALETTE_LENGTH(2) |
| 312 | | |
| 313 | | /* internal ram */ |
| 314 | | MCFG_RAM_ADD(RAM_TAG) |
| 315 | | MCFG_RAM_DEFAULT_SIZE("256K") |
| 316 | 286 | MACHINE_CONFIG_END |
| 317 | 287 | |
| 318 | 288 | /* ROMs */ |
| 319 | 289 | |
| 320 | 290 | ROM_START(alto2) |
| 321 | | ROM_REGION( 01440, "2k_ctrl", 0 ) |
| 322 | | ROMX_LOAD( "2kctl.u3", 00000, 00377, CRC(5f8d89e8) SHA1(487cd944ab074290aea73425e81ef4900d92e250), ROM_NIBBLE) //!< 3601-1 256x4 BPROM; Emulator address modifier |
| 323 | | ROMX_LOAD( "2kctl.u76", 00400, 00777, CRC(1edef867) SHA1(928b8a15ac515a99109f32672441832173883b81), ROM_NIBBLE) //!< 3601-1 256x4 BPROM; 2KCTL replacement for u51 (1KCTL) |
| 324 | | ROMX_LOAD( "3kcram.a37", 01000, 01377, CRC(9417360d) SHA1(bfcdbc56ee4ffafd0f2f672c0c869a55d6dd194b), ROM_NIBBLE) |
| 325 | | ROMX_LOAD( "2kctl.u38", 01400, 01437, CRC(fc51b1d1) SHA1(e36c2a12a5da377394264899b5ae504e2ffda46e), 0) //!< 82S23 32x8 BPROM; task priority and initial address |
| 291 | ROM_REGION( 01500, "2k_ctrl", 0 ) |
| 292 | ROMX_LOAD( "2kctl.u3", 00000, 00400, CRC(5f8d89e8) SHA1(487cd944ab074290aea73425e81ef4900d92e250), ROM_NIBBLE) //!< 3601-1 256x4 BPROM; Emulator address modifier |
| 293 | ROMX_LOAD( "2kctl.u76", 00400, 00400, CRC(1edef867) SHA1(928b8a15ac515a99109f32672441832173883b81), ROM_NIBBLE) //!< 3601-1 256x4 BPROM; 2KCTL replacement for u51 (1KCTL) |
| 294 | ROMX_LOAD( "3kcram.a37", 01000, 00400, CRC(9417360d) SHA1(bfcdbc56ee4ffafd0f2f672c0c869a55d6dd194b), ROM_NIBBLE) |
| 295 | ROMX_LOAD( "2kctl.u38", 01400, 00040, CRC(fc51b1d1) SHA1(e36c2a12a5da377394264899b5ae504e2ffda46e), 0) //!< 82S23 32x8 BPROM; task priority and initial address |
| 296 | ROMX_LOAD( "alu.a10", 01440, 00040, CRC(e0857892) SHA1(dcd389767139f0acc1f87cf074459115abc5b90b), ROM_NIBBLE) |
| 326 | 297 | |
| 327 | | ROM_REGION16_LE( 0400, "const", 0 ) |
| 298 | ROM_REGION16_BE( 0400, "const", 0 ) |
| 328 | 299 | // constant PROMs, 4 x 4bit |
| 329 | 300 | // UINT16 src = BITS(addr, 3,2,1,4,5,6,7,0); |
| 330 | 301 | // UINT16 u16 = ~((const[src] << 8) | (const[src+0x100)); |
| 331 | 302 | // m_const[addr] = u16; |
| 332 | | ROMX_LOAD( "madr.a6", 00000, 00377, CRC(c2c196b2) SHA1(8b2a599ac839ec2a070dbfef2f1626e645c858ca), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 0000-0377 C(00)',C(01)',C(02)',C(03)' |
| 333 | | ROMX_LOAD( "madr.a5", 00000, 00377, CRC(42336101) SHA1(c77819cf40f063af3abf66ea43f17cc1a62e928b), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 0000-0377 C(04)',C(05)',C(06)',C(07)' |
| 334 | | ROMX_LOAD( "madr.a4", 00000, 00377, CRC(b957e490) SHA1(c72660ad3ada4ca0ed8697c6bb6275a4fe703184), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 0000-0377 C(08)',C(09)',C(10)',C(11)' |
| 335 | | ROMX_LOAD( "madr.a3", 00000, 00377, CRC(e0992757) SHA1(5c45ea824970663cb9ee672dc50861539c860249), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 0000-0377 C(12)',C(13)',C(14)',C(15)' |
| 303 | ROMX_LOAD( "madr.a6", 00000, 00400, CRC(c2c196b2) SHA1(8b2a599ac839ec2a070dbfef2f1626e645c858ca), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 0000-0377 C(00)',C(01)',C(02)',C(03)' |
| 304 | ROMX_LOAD( "madr.a5", 00000, 00400, CRC(42336101) SHA1(c77819cf40f063af3abf66ea43f17cc1a62e928b), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 0000-0377 C(04)',C(05)',C(06)',C(07)' |
| 305 | ROMX_LOAD( "madr.a4", 00000, 00400, CRC(b957e490) SHA1(c72660ad3ada4ca0ed8697c6bb6275a4fe703184), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 0000-0377 C(08)',C(09)',C(10)',C(11)' |
| 306 | ROMX_LOAD( "madr.a3", 00000, 00400, CRC(e0992757) SHA1(5c45ea824970663cb9ee672dc50861539c860249), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 0000-0377 C(12)',C(13)',C(14)',C(15)' |
| 336 | 307 | |
| 337 | | #if 0 // FIXME: just different names(?) |
| 338 | | ROM_REGION16_LE( 0400, "const_alt", 0 ) |
| 308 | #if 0 // FIXME: just different names - the hashes are the same... remove? |
| 309 | ROM_REGION16_BE( 0400, "const_alt", 0 ) |
| 339 | 310 | // alternate constant PROMs, 4 x 4bit |
| 340 | 311 | // UINT16 src = BITS(addr, 3,2,1,4,5,6,7,0); |
| 341 | 312 | // UINT16 u16 = ~((const[src] << 8) | (const[src+0x100)); |
| 342 | 313 | // m_const[addr] = u16; |
| 343 | | ROMX_LOAD( "c3.3", 00000, 00377, CRC(c2c196b2) SHA1(8b2a599ac839ec2a070dbfef2f1626e645c858ca), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 0000-0377 C(00)',C(01)',C(02)',C(03)' |
| 344 | | ROMX_LOAD( "c2.3", 00000, 00377, CRC(42336101) SHA1(c77819cf40f063af3abf66ea43f17cc1a62e928b), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 0000-0377 C(04)',C(05)',C(06)',C(07)' |
| 345 | | ROMX_LOAD( "c1.3", 00000, 00377, CRC(b957e490) SHA1(c72660ad3ada4ca0ed8697c6bb6275a4fe703184), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 0000-0377 C(08)',C(09)',C(10)',C(11)' |
| 346 | | ROMX_LOAD( "c0.3", 00000, 00377, CRC(e0992757) SHA1(5c45ea824970663cb9ee672dc50861539c860249), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 0000-0377 C(12)',C(13)',C(14)',C(15)' |
| 314 | ROMX_LOAD( "c3.3", 00000, 00400, CRC(c2c196b2) SHA1(8b2a599ac839ec2a070dbfef2f1626e645c858ca), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 0000-0377 C(00)',C(01)',C(02)',C(03)' |
| 315 | ROMX_LOAD( "c2.3", 00000, 00400, CRC(42336101) SHA1(c77819cf40f063af3abf66ea43f17cc1a62e928b), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 0000-0377 C(04)',C(05)',C(06)',C(07)' |
| 316 | ROMX_LOAD( "c1.3", 00000, 00400, CRC(b957e490) SHA1(c72660ad3ada4ca0ed8697c6bb6275a4fe703184), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 0000-0377 C(08)',C(09)',C(10)',C(11)' |
| 317 | ROMX_LOAD( "c0.3", 00000, 00400, CRC(e0992757) SHA1(5c45ea824970663cb9ee672dc50861539c860249), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 0000-0377 C(12)',C(13)',C(14)',C(15)' |
| 347 | 318 | #endif |
| 348 | 319 | |
| 349 | | ROM_REGION32_LE( 02000, "ucode", ROMREGION_INVERT ) |
| 320 | ROM_REGION32_BE( 02000, "ucode", ROMREGION_INVERT ) |
| 350 | 321 | // micro code PROMs, 8 x 4bit |
| 351 | 322 | // UINT32 src = addr ^ 0x3ff; |
| 352 | 323 | // UINT32 u32 = ~((ucode[src] << 24) | (ucode[src+0x400] << 16) | (ucode[src+0x800] << 8) | (ucode[src+0xc00)); |
| 353 | 324 | // m_ucode[addr] = u32 ^ ALTO2_UCODE_INVERTED; |
| 354 | | ROMX_LOAD( "55x.3", 00000, 01777, CRC(de870d75) SHA1(2b98cc769d8302cb39948711424d987d94e4159b), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 355 | | ROMX_LOAD( "64x.3", 00000, 01777, CRC(51b444c0) SHA1(8756e51f7f3253a55d75886465beb7ee1be6e1c4), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 356 | | ROMX_LOAD( "65x.3", 00000, 01777, CRC(741d1437) SHA1(01f7cf07c2173ac93799b2475180bfbbe7e0149b), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 357 | | ROMX_LOAD( "63x.3", 00000, 01777, CRC(f22d5028) SHA1(c65a42baef702d4aff2d9ad8e363daec27de6801), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 358 | | ROMX_LOAD( "53x.3", 00000, 01777, CRC(3c89a740) SHA1(95d812d489b2bde03884b2f126f961caa6c8ec45), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 359 | | ROMX_LOAD( "60x.3", 00000, 01777, CRC(a35de0bf) SHA1(7fa4aead44dcf5393bbfd1706c0ada24aa6fd3ac), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 360 | | ROMX_LOAD( "61x.3", 00000, 01777, CRC(f25bcb2d) SHA1(acb57f3104a8dc4ba750dd1bf22ccc81cce9f084), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 361 | | ROMX_LOAD( "62x.3", 00000, 01777, CRC(1b20a63f) SHA1(41dc86438e91c12b0fe42ffcce6b2ac2eb9e714a), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 325 | ROMX_LOAD( "55x.3", 00000, 02000, CRC(de870d75) SHA1(2b98cc769d8302cb39948711424d987d94e4159b), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 326 | ROMX_LOAD( "64x.3", 00000, 02000, CRC(51b444c0) SHA1(8756e51f7f3253a55d75886465beb7ee1be6e1c4), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 327 | ROMX_LOAD( "65x.3", 00000, 02000, CRC(741d1437) SHA1(01f7cf07c2173ac93799b2475180bfbbe7e0149b), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 328 | ROMX_LOAD( "63x.3", 00000, 02000, CRC(f22d5028) SHA1(c65a42baef702d4aff2d9ad8e363daec27de6801), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 329 | ROMX_LOAD( "53x.3", 00000, 02000, CRC(3c89a740) SHA1(95d812d489b2bde03884b2f126f961caa6c8ec45), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 330 | ROMX_LOAD( "60x.3", 00000, 02000, CRC(a35de0bf) SHA1(7fa4aead44dcf5393bbfd1706c0ada24aa6fd3ac), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 331 | ROMX_LOAD( "61x.3", 00000, 02000, CRC(f25bcb2d) SHA1(acb57f3104a8dc4ba750dd1bf22ccc81cce9f084), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 332 | ROMX_LOAD( "62x.3", 00000, 02000, CRC(1b20a63f) SHA1(41dc86438e91c12b0fe42ffcce6b2ac2eb9e714a), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 362 | 333 | |
| 363 | | ROM_REGION32_LE( 02000, "xm_mesa_5.1", ROMREGION_INVERT ) |
| 334 | ROM_REGION32_BE( 02000, "xm_mesa_5.1", ROMREGION_INVERT ) |
| 364 | 335 | // extended memory Mesa 5.1 micro code PROMs, 8 x 4bit |
| 365 | | ROMX_LOAD( "xm51.u54", 00000, 01777, CRC(11086ae9) SHA1(c394e3fadbfb91801ddc1a70cb25dc6f606c4f76), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 366 | | ROMX_LOAD( "xm51.u74", 00000, 01777, CRC(be8224f2) SHA1(ea9abcc3832b26a094319796901237e1e3f238b6), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 367 | | ROMX_LOAD( "xm51.u75", 00000, 01777, CRC(dfe3e3ac) SHA1(246fd29f92150a5d5d7627fbb4f2504c7b6cd5ec), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 368 | | ROMX_LOAD( "xm51.u73", 00000, 01777, CRC(6c20fa46) SHA1(a054330c65048011f12209aaed5c6da73d95f029), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 369 | | ROMX_LOAD( "xm51.u52", 00000, 01777, CRC(0a31eec8) SHA1(4e2ad5daa5e6a6f2143ee4de00c7b625d096fb02), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 370 | | ROMX_LOAD( "xm51.u70", 00000, 01777, CRC(5c64ee54) SHA1(0eb16d1b5e5967be7c1bf8c8ef6efdf0518a752c), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 371 | | ROMX_LOAD( "xm51.u71", 00000, 01777, CRC(7283bf71) SHA1(819fdcc407ed0acdd8f12b02db6efbcab7bec19a), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 372 | | ROMX_LOAD( "xm51.u72", 00000, 01777, CRC(a28e5251) SHA1(44dd8ad4ad56541b5394d30ce3521b4d1d561394), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 336 | ROMX_LOAD( "xm51.u54", 00000, 02000, CRC(11086ae9) SHA1(c394e3fadbfb91801ddc1a70cb25dc6f606c4f76), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 337 | ROMX_LOAD( "xm51.u74", 00000, 02000, CRC(be8224f2) SHA1(ea9abcc3832b26a094319796901237e1e3f238b6), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 338 | ROMX_LOAD( "xm51.u75", 00000, 02000, CRC(dfe3e3ac) SHA1(246fd29f92150a5d5d7627fbb4f2504c7b6cd5ec), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 339 | ROMX_LOAD( "xm51.u73", 00000, 02000, CRC(6c20fa46) SHA1(a054330c65048011f12209aaed5c6da73d95f029), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 340 | ROMX_LOAD( "xm51.u52", 00000, 02000, CRC(0a31eec8) SHA1(4e2ad5daa5e6a6f2143ee4de00c7b625d096fb02), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 341 | ROMX_LOAD( "xm51.u70", 00000, 02000, CRC(5c64ee54) SHA1(0eb16d1b5e5967be7c1bf8c8ef6efdf0518a752c), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 342 | ROMX_LOAD( "xm51.u71", 00000, 02000, CRC(7283bf71) SHA1(819fdcc407ed0acdd8f12b02db6efbcab7bec19a), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 343 | ROMX_LOAD( "xm51.u72", 00000, 02000, CRC(a28e5251) SHA1(44dd8ad4ad56541b5394d30ce3521b4d1d561394), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 373 | 344 | |
| 374 | | ROM_REGION32_LE( 02000, "xm_mesa_4.1", ROMREGION_INVERT ) |
| 345 | ROM_REGION32_BE( 02000, "xm_mesa_4.1", ROMREGION_INVERT ) |
| 375 | 346 | // extended memory Mesa 4.1 (?) micro code PROMs, 8 x 4bit |
| 376 | | ROMX_LOAD( "xm654.41", 00000, 01777, CRC(beace302) SHA1(0002fea03a0261f57365095c4b87385d833f7063), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 377 | | ROMX_LOAD( "xm674.41", 00000, 01777, CRC(7db5c097) SHA1(364bc41951baa3ad274031bd49abec1cf5b7a980), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 378 | | ROMX_LOAD( "xm675.41", 00000, 01777, CRC(26eac1e7) SHA1(9220a1386afae8de96bdb2cf084afbadeeb61d42), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 379 | | ROMX_LOAD( "xm673.41", 00000, 01777, CRC(8173d7e3) SHA1(7fbacf6dccb60dfe9cef88a248c3a1660efddcf4), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 380 | | ROMX_LOAD( "xm652.41", 00000, 01777, CRC(ddfa94bb) SHA1(38625e269400aaf38cd07b5dbf36c0087a0f1b92), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 381 | | ROMX_LOAD( "xm670.41", 00000, 01777, CRC(1cd187f3) SHA1(0fd5eff7c6b5c2383aa20148a795b80286554675), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 382 | | ROMX_LOAD( "xm671.41", 00000, 01777, CRC(f21b1ad7) SHA1(1e18bdb35de7802892ac373c128f900786d40886), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 383 | | ROMX_LOAD( "xm672.41", 00000, 01777, CRC(110ee075) SHA1(bb72fceba5ce9e5e8c8a0024915006bdd011a3f3), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 347 | ROMX_LOAD( "xm654.41", 00000, 02000, CRC(beace302) SHA1(0002fea03a0261f57365095c4b87385d833f7063), ROM_NIBBLE | ROM_BITSHIFT(28)) //!< 00000-01777 RSEL(0)',RSEL(1)',RSEL(2)',RSEL(3)' |
| 348 | ROMX_LOAD( "xm674.41", 00000, 02000, CRC(7db5c097) SHA1(364bc41951baa3ad274031bd49abec1cf5b7a980), ROM_NIBBLE | ROM_BITSHIFT(24)) //!< 00000-01777 RSEL(4)',ALUF(0)',ALUF(1)',ALUF(2)' |
| 349 | ROMX_LOAD( "xm675.41", 00000, 02000, CRC(26eac1e7) SHA1(9220a1386afae8de96bdb2cf084afbadeeb61d42), ROM_NIBBLE | ROM_BITSHIFT(20)) //!< 00000-01777 ALUF(3)',BS(0)',BS(1)',BS(2)' |
| 350 | ROMX_LOAD( "xm673.41", 00000, 02000, CRC(8173d7e3) SHA1(7fbacf6dccb60dfe9cef88a248c3a1660efddcf4), ROM_NIBBLE | ROM_BITSHIFT(16)) //!< 00000-01777 F1(0),F1(1)',F1(2)',F1(3)' |
| 351 | ROMX_LOAD( "xm652.41", 00000, 02000, CRC(ddfa94bb) SHA1(38625e269400aaf38cd07b5dbf36c0087a0f1b92), ROM_NIBBLE | ROM_BITSHIFT(12)) //!< 00000-01777 F2(0),F2(1)',F2(2)',F2(3)' |
| 352 | ROMX_LOAD( "xm670.41", 00000, 02000, CRC(1cd187f3) SHA1(0fd5eff7c6b5c2383aa20148a795b80286554675), ROM_NIBBLE | ROM_BITSHIFT( 8)) //!< 00000-01777 LOADT',LOADL,NEXT(0)',NEXT(1)' |
| 353 | ROMX_LOAD( "xm671.41", 00000, 02000, CRC(f21b1ad7) SHA1(1e18bdb35de7802892ac373c128f900786d40886), ROM_NIBBLE | ROM_BITSHIFT( 4)) //!< 00000-01777 NEXT(2)',NEXT(3)',NEXT(4)',NEXT(5)' |
| 354 | ROMX_LOAD( "xm672.41", 00000, 02000, CRC(110ee075) SHA1(bb72fceba5ce9e5e8c8a0024915006bdd011a3f3), ROM_NIBBLE | ROM_BITSHIFT( 0)) //!< 00000-01777 NEXT(6)',NEXT(7)',NEXT(8)',NEXT(9)' |
| 384 | 355 | |
| 385 | 356 | ROM_REGION( 01040, "displ", 0 ) |
| 386 | | ROMX_LOAD( "displ.a38", 00000, 00377, CRC(fd30beb7) SHA1(65e4a19ba4ff748d525122128c514abedd55d866), ROM_NIBBLE) //!< P3601 256x4 BPROM; display FIFO control: STOPWAKE, MBEMPTY |
| 387 | | ROMX_LOAD( "displ.a66", 00400, 00777, CRC(9f91aad9) SHA1(69b1d4c71f4e18103112e8601850c2654e9265cf), ROM_NIBBLE) //!< P3601 256x4 BPROM; display VSYNC and VBLANK |
| 388 | | ROMX_LOAD( "displ.a63", 01000, 01037, CRC(82a20d60) SHA1(39d90703568be5419ada950e112d99227873fdea), 0) //!< 82S23 32x8 BPROM; display HBLANK, HSYNC, SCANEND, HLCGATE ... |
| 357 | ROMX_LOAD( "displ.a38", 00000, 00400, CRC(fd30beb7) SHA1(65e4a19ba4ff748d525122128c514abedd55d866), ROM_NIBBLE) //!< P3601 256x4 BPROM; display FIFO control: STOPWAKE, MBEMPTY |
| 358 | ROMX_LOAD( "displ.a66", 00400, 00400, CRC(9f91aad9) SHA1(69b1d4c71f4e18103112e8601850c2654e9265cf), ROM_NIBBLE) //!< P3601 256x4 BPROM; display VSYNC and VBLANK |
| 359 | ROMX_LOAD( "displ.a63", 01000, 00040, CRC(82a20d60) SHA1(39d90703568be5419ada950e112d99227873fdea), 0) //!< 82S23 32x8 BPROM; display HBLANK, HSYNC, SCANEND, HLCGATE ... |
| 389 | 360 | |
| 390 | 361 | ROM_REGION( 01400, "ether", 0 ) |
| 391 | | ROMX_LOAD( "enet.a41", 00000, 00377, CRC(d5de8d86) SHA1(c134a4c898c73863124361a9b0218f7a7f00082a), ROM_NIBBLE) |
| 392 | | ROMX_LOAD( "enet.a42", 00400, 00777, CRC(9d5c81bd) SHA1(ac7e63332a3dad0bef7cd0349b24e156a96a4bf0), ROM_NIBBLE) |
| 393 | | ROMX_LOAD( "enet.a49", 01000, 01377, CRC(4d2dcdb2) SHA1(583327a7d70cd02702c941c0e43c1e9408ff7fd0), ROM_NIBBLE) |
| 362 | ROMX_LOAD( "enet.a41", 00000, 00400, CRC(d5de8d86) SHA1(c134a4c898c73863124361a9b0218f7a7f00082a), ROM_NIBBLE) |
| 363 | ROMX_LOAD( "enet.a42", 00400, 00400, CRC(9d5c81bd) SHA1(ac7e63332a3dad0bef7cd0349b24e156a96a4bf0), ROM_NIBBLE) |
| 364 | ROMX_LOAD( "enet.a49", 01000, 00400, CRC(4d2dcdb2) SHA1(583327a7d70cd02702c941c0e43c1e9408ff7fd0), ROM_NIBBLE) |
| 394 | 365 | |
| 395 | | ROM_REGION( 0x0300, "memory", 0 ) |
| 396 | | ROMX_LOAD( "madr.a32", 0x0000, 0x00ff, CRC(a0e3b4a7) SHA1(24e50afdeb637a6a8588f8d3a3493c9188b8da2c), ROM_NIBBLE) //! P3601 256x4 BPROM; mouse motion signals MX1, MX2, MY1, MY2 |
| 397 | | ROMX_LOAD( "madr.a64", 0x0100, 0x01ff, CRC(a66b0eda) SHA1(4d9088f592caa3299e90966b17765be74e523144), ROM_NIBBLE) //! P3601 256x4 BPROM; memory addressing |
| 398 | | ROMX_LOAD( "madr.a65", 0x0200, 0x02ff, CRC(ba37febd) SHA1(82e9db1cb65f451755295f0d179e6f8fe3349d4d), ROM_NIBBLE) //! P3601 256x4 BPROM; memory addressing |
| 399 | | ROMX_LOAD( "madr.a90", 0x0300, 0x03ff, CRC(7a2d8799) SHA1(c3760dba147740729d33b9b88e59088a4cc7437a), ROM_NIBBLE) |
| 400 | | ROMX_LOAD( "madr.a91", 0x0400, 0x04ff, CRC(dd556aeb) SHA1(900f333a091e3ccde0843019c25f25fba62e6023), ROM_NIBBLE) |
| 366 | ROM_REGION( 02400, "memory", 0 ) |
| 367 | ROMX_LOAD( "madr.a32", 00000, 00400, CRC(a0e3b4a7) SHA1(24e50afdeb637a6a8588f8d3a3493c9188b8da2c), ROM_NIBBLE) //! P3601 256x4 BPROM; mouse motion signals MX1, MX2, MY1, MY2 |
| 368 | ROMX_LOAD( "madr.a64", 00400, 00400, CRC(a66b0eda) SHA1(4d9088f592caa3299e90966b17765be74e523144), ROM_NIBBLE) //! P3601 256x4 BPROM; memory addressing |
| 369 | ROMX_LOAD( "madr.a65", 01000, 00400, CRC(ba37febd) SHA1(82e9db1cb65f451755295f0d179e6f8fe3349d4d), ROM_NIBBLE) //! P3601 256x4 BPROM; memory addressing |
| 370 | ROMX_LOAD( "madr.a90", 01400, 00400, CRC(7a2d8799) SHA1(c3760dba147740729d33b9b88e59088a4cc7437a), ROM_NIBBLE) |
| 371 | ROMX_LOAD( "madr.a91", 02000, 00400, CRC(dd556aeb) SHA1(900f333a091e3ccde0843019c25f25fba62e6023), ROM_NIBBLE) |
| 372 | |
| 373 | ROM_REGION( ALTO2_RAM_SIZE, "io", 0 ) |
| 401 | 374 | ROM_END |
| 402 | 375 | |
| 403 | 376 | /* Game Drivers */ |
| 404 | 377 | |
| 405 | 378 | // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS |
| 406 | | COMP( 1974, alto2, 0, 0, alto2, alto2, alto2_state, alto2, "Xerox", "Alto-II", GAME_NOT_WORKING ) |
| 379 | COMP( 1974, alto2, 0, 0, alto2, alto2, alto2_state, alto2, "Xerox", "Alto-II", GAME_NOT_WORKING | GAME_NO_SOUND ) |