src/mess/machine/a2videoterm.c
| r15434 | r15435 | |
| 35 | 35 | |
| 36 | 36 | const device_type A2BUS_VIDEOTERM = &device_creator<a2bus_videoterm_device>; |
| 37 | 37 | const device_type A2BUS_IBSAP16 = &device_creator<a2bus_ap16_device>; |
| 38 | const device_type A2BUS_IBSAP16ALT = &device_creator<a2bus_ap16alt_device>; |
| 38 | 39 | |
| 39 | 40 | #define VIDEOTERM_ROM_REGION "vterm_rom" |
| 40 | 41 | #define VIDEOTERM_GFX_REGION "vterm_gfx" |
| r15434 | r15435 | |
| 92 | 93 | ROM_LOAD( "space 84 video chargen ap16.bin", 0x000000, 0x002000, CRC(b9447088) SHA1(19c95f91a67b948fc00a14621d574d629479d451) ) |
| 93 | 94 | ROM_END |
| 94 | 95 | |
| 96 | ROM_START( a2ap16alt ) |
| 97 | ROM_REGION(0x1000, VIDEOTERM_ROM_REGION, 0) |
| 98 | ROM_LOAD( "unknown apple ii clone video 3.bin", 0x000000, 0x001000, CRC(af1226d2) SHA1(18a569f417a47f54a17bd9046d306a54b46ed049) ) |
| 99 | |
| 100 | ROM_REGION(0x4000, VIDEOTERM_GFX_REGION, 0) |
| 101 | ROM_LOAD( "unknown apple ii clone video 1.bin", 0x000000, 0x001000, CRC(cf84811c) SHA1(135f4f35607dd74941f0a3cae813227bf8a8a020) ) |
| 102 | ROM_END |
| 103 | |
| 95 | 104 | /*************************************************************************** |
| 96 | 105 | FUNCTION PROTOTYPES |
| 97 | 106 | ***************************************************************************/ |
| r15434 | r15435 | |
| 120 | 129 | return ROM_NAME( a2ap16 ); |
| 121 | 130 | } |
| 122 | 131 | |
| 132 | const rom_entry *a2bus_ap16alt_device::device_rom_region() const |
| 133 | { |
| 134 | return ROM_NAME( a2ap16alt ); |
| 135 | } |
| 136 | |
| 123 | 137 | //************************************************************************** |
| 124 | 138 | // LIVE DEVICE |
| 125 | 139 | //************************************************************************** |
| r15434 | r15435 | |
| 143 | 157 | m_shortname = "a2ap16"; |
| 144 | 158 | } |
| 145 | 159 | |
| 160 | a2bus_ap16alt_device::a2bus_ap16alt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 161 | a2bus_videx80_device(mconfig, A2BUS_VIDEOTERM, "IBS AP-16 80 column card (alt. version)", tag, owner, clock) |
| 162 | { |
| 163 | m_shortname = "a2ap16a"; |
| 164 | } |
| 165 | |
| 146 | 166 | //------------------------------------------------- |
| 147 | 167 | // device_start - device-specific startup |
| 148 | 168 | //------------------------------------------------- |
| r15434 | r15435 | |
| 217 | 237 | |
| 218 | 238 | UINT8 a2bus_videx80_device::read_cnxx(address_space &space, UINT8 offset) |
| 219 | 239 | { |
| 220 | | // one slot image at the end of the ROM, it appears |
| 221 | 240 | return m_rom[offset+0x300]; |
| 222 | 241 | } |
| 223 | 242 | |
| 224 | 243 | UINT8 a2bus_ap16_device::read_cnxx(address_space &space, UINT8 offset) |
| 225 | 244 | { |
| 226 | | // one slot image at the end of the ROM, it appears |
| 227 | 245 | return m_rom[offset+0x1f00]; |
| 228 | 246 | } |
| 229 | 247 | |
| 248 | UINT8 a2bus_ap16alt_device::read_cnxx(address_space &space, UINT8 offset) |
| 249 | { |
| 250 | return m_rom[offset+0xb00]; |
| 251 | } |
| 252 | |
| 230 | 253 | /*------------------------------------------------- |
| 231 | 254 | write_cnxx - called for writes to this card's cnxx space |
| 232 | 255 | the firmware writes here to switch in our $C800 a lot |
src/mess/machine/a2videoterm.h
| r15434 | r15435 | |
| 71 | 71 | }; |
| 72 | 72 | |
| 73 | 73 | |
| 74 | class a2bus_ap16alt_device : public a2bus_videx80_device |
| 75 | { |
| 76 | public: |
| 77 | a2bus_ap16alt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 78 | |
| 79 | virtual const rom_entry *device_rom_region() const; |
| 80 | |
| 81 | virtual UINT8 read_cnxx(address_space &space, UINT8 offset); |
| 82 | }; |
| 83 | |
| 74 | 84 | // device type definition |
| 75 | 85 | extern const device_type A2BUS_VIDEOTERM; |
| 76 | 86 | extern const device_type A2BUS_IBSAP16; |
| 87 | extern const device_type A2BUS_IBSAP16ALT; |
| 77 | 88 | |
| 78 | 89 | #endif /* __A2BUS_VIDEOTERM__ */ |
| 79 | 90 | |