src/mess/drivers/osbexec.c
| r9871 | r9872 | |
| 2 | 2 | |
| 3 | 3 | Osborne Executive driver file |
| 4 | 4 | |
| 5 | | Screen is 80x24 |
| 6 | | |
| 7 | | On boot at least bios seems to be enabled. |
| 8 | | |
| 9 | | Floppy breakpoints: |
| 10 | | - bp 0c50 |
| 11 | | - bp 1449 |
| 12 | | - bp 1465 |
| 13 | | |
| 14 | | |
| 15 | 5 | ***************************************************************************/ |
| 16 | 6 | |
| 17 | 7 | #include "emu.h" |
| r9871 | r9872 | |
| 73 | 63 | |
| 74 | 64 | void set_banks(running_machine *machine) |
| 75 | 65 | { |
| 76 | | ram_0000 = messram_get_ptr( messram ); |
| 66 | UINT8 *messram_ptr = messram_get_ptr( messram ); |
| 77 | 67 | |
| 68 | ram_0000 = messram_ptr; |
| 69 | |
| 78 | 70 | if ( pia0_porta & 0x01 ) |
| 79 | 71 | ram_0000 += 0x10000; |
| 80 | 72 | |
| 81 | 73 | memory_set_bankptr( machine, "0000", ram_0000 + 0x0000 ); |
| 74 | memory_set_bankptr( machine, "2000", ram_0000 + 0x2000 ); |
| 82 | 75 | memory_set_bankptr( machine, "4000", ram_0000 + 0x4000 ); |
| 83 | 76 | memory_set_bankptr( machine, "c000", ram_0000 + 0xc000 ); |
| 84 | 77 | memory_set_bankptr( machine, "e000", ram_0000 + 0xe000 ); |
| 85 | 78 | |
| 86 | 79 | if ( pia0_porta & 0x80 ) |
| 80 | { |
| 87 | 81 | memory_set_bankptr( machine, "0000", memory_region(machine, "maincpu") ); |
| 82 | /* When BIOS is enabled 2000-3FFF (or maybe 2000-2FFF) is taken from the first 64KB ) */ |
| 83 | memory_set_bankptr( machine, "2000", messram_ptr + 0x2000 ); |
| 84 | } |
| 88 | 85 | |
| 89 | 86 | if ( pia0_porta & 0x40 ) |
| 90 | 87 | memory_set_bankptr(machine, "c000", vram_region->base() ); |
| r9871 | r9872 | |
| 159 | 156 | |
| 160 | 157 | static ADDRESS_MAP_START( osbexec_mem, ADDRESS_SPACE_PROGRAM, 8 ) |
| 161 | 158 | AM_RANGE( 0x0000, 0x1FFF ) AM_READ_BANK("0000") AM_WRITE( osbexec_0000_w ) /* ROM and maybe also banked ram */ |
| 162 | | AM_RANGE( 0x2000, 0x3FFF ) AM_RAM /* Banked? RAM */ |
| 163 | | AM_RANGE( 0x4000, 0xBFFF ) AM_RAMBANK("4000") /* Banked ram */ |
| 159 | AM_RANGE( 0x2000, 0x3FFF ) AM_RAMBANK("2000") /* Banked RAM */ |
| 160 | AM_RANGE( 0x4000, 0xBFFF ) AM_RAMBANK("4000") /* Banked RAM */ |
| 164 | 161 | AM_RANGE( 0xC000, 0xDFFF ) AM_RAMBANK("c000") /* Video ram / Banked RAM */ |
| 165 | | AM_RANGE( 0xE000, 0xEFFF ) AM_RAMBANK("e000") /* Banked ram */ |
| 162 | AM_RANGE( 0xE000, 0xEFFF ) AM_RAMBANK("e000") /* Banked RAM */ |
| 166 | 163 | AM_RANGE( 0xF000, 0xFFFF ) AM_RAM /* 4KB of non-banked RAM for system stack etc */ |
| 167 | 164 | ADDRESS_MAP_END |
| 168 | 165 | |