src/mess/drivers/pegasus.c
| r7907 | r7908 | |
| 5 | 5 | http://web.mac.com/lord_philip/aamber_pegasus/Aamber_Pegasus.html |
| 6 | 6 | |
| 7 | 7 | Each copy of the monitor rom was made for an individual machine. |
| 8 | | Therefore the only way to emulate is to hack out the protection check. |
| 8 | The early bios versions checked that it was running on that |
| 9 | particular computer. |
| 9 | 10 | |
| 10 | | Protection does not exist in all bios versions. |
| 11 | | |
| 12 | 11 | This computer has no sound. |
| 13 | 12 | |
| 14 | 13 | The usual way of loading a new rom was to plug it into the board. |
| r7907 | r7908 | |
| 113 | 112 | } |
| 114 | 113 | } |
| 115 | 114 | |
| 115 | /* Must return the A register except when it is doing a rom search */ |
| 116 | static READ8_HANDLER( pegasus_protection_r ) |
| 117 | { |
| 118 | UINT8 data = cpu_get_reg(devtag_get_device(space->machine, "maincpu"), M6809_A); |
| 119 | if (data == 0x20) data = 0xff; |
| 120 | return data; |
| 121 | } |
| 122 | |
| 116 | 123 | static ADDRESS_MAP_START(pegasus_mem, ADDRESS_SPACE_PROGRAM, 8) |
| 117 | 124 | ADDRESS_MAP_UNMAP_HIGH |
| 118 | 125 | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP |
| 119 | 126 | AM_RANGE(0xb000, 0xbdff) AM_RAM |
| 120 | 127 | AM_RANGE(0xbe00, 0xbfff) AM_RAM AM_BASE(&pegasus_video_ram) |
| 121 | 128 | AM_RANGE(0xc000, 0xdfff) AM_ROM AM_WRITENOP |
| 122 | | /* AM_RANGE(0xe000, 0xe1ff) AM_READ(pegasus_protection) */ |
| 129 | AM_RANGE(0xe000, 0xe1ff) AM_READ(pegasus_protection_r) |
| 123 | 130 | AM_RANGE(0xe200, 0xe3ff) AM_READWRITE(pegasus_pcg_r,pegasus_pcg_w) |
| 124 | 131 | AM_RANGE(0xe400, 0xe403) AM_MIRROR(0x1fc) AM_DEVREADWRITE("pegasus_pia_u", pia6821_r, pia6821_w) |
| 125 | 132 | AM_RANGE(0xe600, 0xe603) AM_MIRROR(0x1fc) AM_DEVREADWRITE("pegasus_pia_s", pia6821_r, pia6821_w) |
| r7907 | r7908 | |
| 360 | 367 | /* ROM definition */ |
| 361 | 368 | ROM_START( pegasus ) |
| 362 | 369 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 363 | | ROM_LOAD( "mon11_2674.bin", 0xf000, 0x1000, CRC(1640ff7e) SHA1(8199643749fb40fb8be05e9f311c75620ca939b1) ) |
| 364 | | ROM_FILL(0xf09e, 1, 0x20) // hack out the protection |
| 365 | | // ROM_LOAD( "mon23_2601.bin", 0xf000, 0x1000, CRC(7dd451bb) SHA1(7843e9166151570f9c915589dc252feb0cb1cec4) ) |
| 366 | | // ROM_LOAD( "mon23a_2569.bin", 0xf000, 0x1000, CRC(b4c6b352) SHA1(10bb08305a574dab48d0384e35d0781b6bde880f) ) |
| 370 | ROM_SYSTEM_BIOS(0, "11r2674", "Monitor 1.1 r2674") |
| 371 | ROMX_LOAD( "mon11_2674.bin", 0xf000, 0x1000, CRC(1640ff7e) SHA1(8199643749fb40fb8be05e9f311c75620ca939b1), ROM_BIOS(1) ) |
| 372 | ROM_SYSTEM_BIOS(1, "10r2569", "Monitor 1.0 r2569") |
| 373 | ROMX_LOAD( "mon10_2569.bin", 0xf000, 0x1000, CRC(910fc930) SHA1(a4f6bbe5def0268cc49ee7045616a39017dd8052), ROM_BIOS(2) ) |
| 374 | ROM_SYSTEM_BIOS(2, "11r2569", "Monitor 1.1 r2569") |
| 375 | ROMX_LOAD( "mon11_2569.bin", 0xf000, 0x1000, CRC(07b92002) SHA1(3c434601120870c888944ecd9ade5186432ddbc2), ROM_BIOS(3) ) |
| 376 | ROM_SYSTEM_BIOS(3, "11r2669", "Monitor 1.1 r2669") |
| 377 | ROMX_LOAD( "mon11_2669.bin", 0xf000, 0x1000, CRC(f3ee23c8) SHA1(3ac96935668f5e53799c90db5140393c2ef9ce36), ROM_BIOS(4) ) |
| 378 | ROM_SYSTEM_BIOS(4, "22r2856", "Monitor 2.2 r2856") |
| 379 | ROMX_LOAD( "mon22_2856.bin", 0xf000, 0x1000, CRC(5f5f688a) SHA1(3719eecc347e158dd027ea7aa8a068cdafc00d9b), ROM_BIOS(5) ) |
| 380 | ROM_SYSTEM_BIOS(5, "22br2856", "Monitor 2.2B r2856") |
| 381 | ROMX_LOAD( "mon22b_2856.bin", 0xf000, 0x1000, CRC(a47b0308) SHA1(f215e51aa8df6aed99c10f3df6a3589cb9f63d46), ROM_BIOS(6) ) |
| 382 | ROM_SYSTEM_BIOS(6, "23r2601", "Monitor 2.3 r2601") |
| 383 | ROMX_LOAD( "mon23_2601.bin", 0xf000, 0x1000, CRC(0e024222) SHA1(9950cba08996931b9d5a3368b44c7309638b4e08), ROM_BIOS(7) ) |
| 384 | ROM_SYSTEM_BIOS(7, "23ar2569", "Monitor 2.3A r2569") |
| 385 | ROMX_LOAD( "mon23a_2569.bin", 0xf000, 0x1000, CRC(248e62c9) SHA1(adbde27e69b38b29ff89bacf28d0240a8e5d90f3), ROM_BIOS(8) ) |
| 386 | |
| 367 | 387 | ROM_REGION( 0x800, "pcg", ROMREGION_ERASEFF ) |
| 368 | 388 | ROM_END |
| 369 | 389 | |