src/mess/drivers/exidy.c
| r6744 | r6745 | |
| 85 | 85 | |
| 86 | 86 | Sound: |
| 87 | 87 | |
| 88 | | external speaker connected to the parallel port |
| 89 | | speaker is connected to all pins. All pins need to be toggled at the same time. |
| 88 | External speaker connected to the parallel port. |
| 89 | There was a dac you could make instead, this is supported. |
| 90 | 90 | |
| 91 | 91 | |
| 92 | 92 | Kevin Thacker [MESS driver] |
| 93 | Robbbert [Various corrections and additions over the years] |
| 93 | 94 | |
| 94 | 95 | ****************************************************************************** |
| 95 | 96 | |
| r6744 | r6745 | |
| 98 | 99 | The Sorcerer has a bus connection for S100 equipment. This allows the connection |
| 99 | 100 | of disk drives, provided that suitable driver/boot software is loaded. |
| 100 | 101 | |
| 101 | | The driver "exidy" emulates a Sorcerer with 4 floppy disk drives fitted, and 32k of ram. |
| 102 | The driver "exidy" emulates a Sorcerer with 4 floppy disk drives fitted, and 44k of ram. |
| 102 | 103 | |
| 103 | 104 | The driver "exidyd" emulates the most common form, a cassette-based system with 48k of ram. |
| 104 | 105 | |
| r6744 | r6745 | |
| 133 | 134 | |
| 134 | 135 | The sorcerer has a UART device used by the serial interface and the cassette system. |
| 135 | 136 | |
| 137 | An examination of the disk controller boot rom shows the controller is not a |
| 138 | standard one; a custom implementation will need to be written. |
| 136 | 139 | |
| 140 | |
| 137 | 141 | ********************************************************************************/ |
| 138 | 142 | |
| 139 | 143 | #include "driver.h" |
| r6744 | r6745 | |
| 319 | 323 | PORT_CONFSETTING( 0x00, DEF_STR(Off)) |
| 320 | 324 | INPUT_PORTS_END |
| 321 | 325 | |
| 326 | /**************************** F4 CHARACTER DISPLAYER ******************************************************/ |
| 327 | |
| 328 | static const gfx_layout exidy_charlayout = |
| 329 | { |
| 330 | 8, 8, /* 8 x 8 characters */ |
| 331 | 256, /* 256 characters */ |
| 332 | 1, /* 1 bits per pixel */ |
| 333 | { 0 }, /* no bitplanes */ |
| 334 | /* x offsets */ |
| 335 | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 336 | /* y offsets */ |
| 337 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 338 | 8*8 /* every char takes 8 bytes */ |
| 339 | }; |
| 340 | |
| 341 | /* This will show the 128 characters in the ROM + whatever happens to be in the PCG */ |
| 342 | static GFXDECODE_START( exidy ) |
| 343 | GFXDECODE_ENTRY( "maincpu", 0xf800, exidy_charlayout, 0, 1 ) |
| 344 | GFXDECODE_END |
| 345 | |
| 322 | 346 | /**********************************************************************************************************/ |
| 323 | 347 | |
| 324 | 348 | static const ay31015_config exidy_ay31015_config = |
| r6744 | r6745 | |
| 367 | 391 | MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) |
| 368 | 392 | MDRV_SCREEN_SIZE(64*8, 30*8) |
| 369 | 393 | MDRV_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 30*8-1) |
| 394 | |
| 395 | MDRV_GFXDECODE(exidy) |
| 370 | 396 | MDRV_PALETTE_LENGTH(2) |
| 371 | 397 | MDRV_PALETTE_INIT(black_and_white) |
| 372 | 398 | |
| r6744 | r6745 | |
| 409 | 435 | MDRV_CPU_MODIFY("maincpu") |
| 410 | 436 | MDRV_CPU_PROGRAM_MAP(exidyd_mem) |
| 411 | 437 | |
| 412 | | MDRV_MACHINE_START( exidy ) |
| 413 | | MDRV_MACHINE_RESET( exidy ) |
| 414 | | |
| 415 | 438 | MDRV_FLOPPY_4_DRIVES_REMOVE() |
| 416 | 439 | MACHINE_DRIVER_END |
| 417 | 440 | |