Previous 15994 Revisions Next

r3281 Tuesday 16th September, 2008 at 18:31:33 UTC by Curt Coder
[QL] Fixed to boot once again, fixed 896K RAM option, added OPD stuff, fixed cartridge loading.
[src/mess/drivers]ql.c

src/mess/drivers/ql.c
r3280r3281
1010
1111    TODO:
1212
13   - Tyche bios is broken
1314   - several disk interfaces (720K/1.44MB/3.2MB)
14   - Trump Card missing extra 256K RAM
15   - discrete sound
1516   - Gold Card (68000 @ 16MHz, 2MB RAM)
1617   - Super Gold Card (68020 @ 24MHz, 4MB RAM)
1718   - QLToolkit II ROM
r3280r3281
1920   - natural keyboard SHIFT does not work, it causes characters to be skipped altogether
2021   - get modified Danish version to boot (e.g. MD_DESEL was patched to jump to 0x1cd5e)
2122   - ICL One Per Desk / British Telecom Merlin Tonto / Telecom Australia Computerphone / Mega OPD (US)
23   - OPD: 68008P8 @ 7.5MHz, ZX8301 @ 12MHz, CDP65C51E1 @ 1.8432MHz, 128K RAM, 2K NVRAM, 128K ROM (4x32), 16K speech ROM, ADM7910 modem, TMS5220 speech, 2x100K microdrives, RTC 1/1/1970, 1xRS-423
2224   - Sandy Q-XT 640 (original motherboard, Super QBoard 512KB, Centronics, Super Toolkit II, FDC, 1 or 2 3.5" 1MB drives, 3 expansion slots)
2325   - CST Thor PC 1F (720K 3.5")
2426   - CST Thor PC 2F (2x 720k 3.5")
r3280r3281
214216
215217   UINT8 data = 0;
216218
217   if (BIT(ipc.keylatch, 0)) data = input_port_read(machine, "ROW0") | input_port_read(machine, "JOY0");
218   if (BIT(ipc.keylatch, 1)) data = input_port_read(machine, "ROW1") | input_port_read(machine, "JOY1");
219   if (BIT(ipc.keylatch, 2)) data = input_port_read(machine, "ROW2");
220   if (BIT(ipc.keylatch, 3)) data = input_port_read(machine, "ROW3");
221   if (BIT(ipc.keylatch, 4)) data = input_port_read(machine, "ROW4");
222   if (BIT(ipc.keylatch, 5)) data = input_port_read(machine, "ROW5");
223   if (BIT(ipc.keylatch, 6)) data = input_port_read(machine, "ROW6");
224   if (BIT(ipc.keylatch, 7)) data = input_port_read(machine, "ROW7");
219   if (BIT(ipc.keylatch, 0)) data |= input_port_read(machine, "ROW0") | input_port_read(machine, "JOY0");
220   if (BIT(ipc.keylatch, 1)) data |= input_port_read(machine, "ROW1") | input_port_read(machine, "JOY1");
221   if (BIT(ipc.keylatch, 2)) data |= input_port_read(machine, "ROW2");
222   if (BIT(ipc.keylatch, 3)) data |= input_port_read(machine, "ROW3");
223   if (BIT(ipc.keylatch, 4)) data |= input_port_read(machine, "ROW4");
224   if (BIT(ipc.keylatch, 5)) data |= input_port_read(machine, "ROW5");
225   if (BIT(ipc.keylatch, 6)) data |= input_port_read(machine, "ROW6");
226   if (BIT(ipc.keylatch, 7)) data |= input_port_read(machine, "ROW7");
225227
226228   return data;
227229}
r3280r3281
230232
231233static ADDRESS_MAP_START( ql_map, ADDRESS_SPACE_PROGRAM, 8 )
232234   AM_RANGE(0x000000, 0x00bfff) AM_ROM   // 48K System ROM
233   AM_RANGE(0x00c000, 0x00ffff) AM_ROM // 16K Cartridge ROM
234   AM_RANGE(0x010000, 0x017fff) AM_NOP // 32K Expansion I/O
235   AM_RANGE(0x00c000, 0x00ffff) AM_ROMBANK(1) // 16K Cartridge ROM
236   AM_RANGE(0x010000, 0x017fff) AM_UNMAP // 32K Expansion I/O
235237   AM_RANGE(0x018000, 0x018003) AM_DEVREAD(ZX8302, ZX8302_TAG, zx8302_rtc_r)
236238   AM_RANGE(0x018000, 0x018001) AM_DEVWRITE(ZX8302, ZX8302_TAG, zx8302_rtc_w)
237239   AM_RANGE(0x018002, 0x018002) AM_DEVWRITE(ZX8302, ZX8302_TAG, zx8302_control_w)
r3280r3281
241243   AM_RANGE(0x018022, 0x018022) AM_DEVREADWRITE(ZX8302, ZX8302_TAG, zx8302_mdv_track_r, zx8302_data_w)
242244   AM_RANGE(0x018023, 0x018023) AM_DEVREAD(ZX8302, ZX8302_TAG, zx8302_mdv_track_r) AM_WRITENOP
243245   AM_RANGE(0x018063, 0x018063) AM_DEVWRITE(ZX8301, ZX8301_TAG, zx8301_control_w)
244   AM_RANGE(0x01c000, 0x01ffff) AM_ROM // 16K Expansion I/O
246   AM_RANGE(0x01c000, 0x01ffff) AM_UNMAP // 16K Expansion I/O
245247   AM_RANGE(0x020000, 0x03ffff) AM_DEVREADWRITE(ZX8301, ZX8301_TAG, zx8301_ram_r, zx8301_ram_w)
246   AM_RANGE(0x040000, 0x0bffff) AM_RAMBANK(1) // 512KB Expansion RAM
247   AM_RANGE(0x0c0000, 0x0dffff) AM_NOP // 8x16KB device slots
248   AM_RANGE(0x0e0000, 0x0fffff) AM_NOP // 128K Expansion I/O
248   AM_RANGE(0x040000, 0x0fffff) AM_RAMBANK(2)
249249ADDRESS_MAP_END
250250
251static ADDRESS_MAP_START( ipc_map, ADDRESS_SPACE_PROGRAM, 8 )
252   AM_RANGE(0x000, 0x7ff) AM_ROM
253ADDRESS_MAP_END
254
255251static ADDRESS_MAP_START( ipc_io_map, ADDRESS_SPACE_IO, 8 )
256252   AM_RANGE(0x00, 0x7f) AM_WRITE(ipc_w)
257253   AM_RANGE(0x27, 0x28) AM_READNOP // IPC reads these to set P0 (bus) to Hi-Z mode
258254   AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(ipc_port1_w)
259255   AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(ipc_port2_r, ipc_port2_w)
260256   AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(ipc_t1_r)
261   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(ipc_bus_r)
257   AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ(ipc_bus_r) AM_WRITENOP
262258ADDRESS_MAP_END
263259
264260/* Input Ports */
r3280r3281
558554
559555static MACHINE_START( ql )
560556{
557   /* configure ROM cartridge */
558
559   memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x00c000, 0x00ffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
560   memory_configure_bank(1, 0, 1, memory_region(machine, "main") + 0x00c000, 0);
561   memory_set_bank(1, 0);
562
563   /* configure RAM */
564
561565   switch (mess_ram_size)
562566   {
563567   case 128*1024:
564      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0bffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
568      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0fffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
565569      break;
566570
567571   case 192*1024:
568      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x04ffff, 0, 0, SMH_BANK1, SMH_BANK1);
569      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x050000, 0x0bffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
570      memory_configure_bank(1, 0, 1, mess_ram + (128 * 1024), 0);
571      memory_set_bank(1, 0);
572      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x04ffff, 0, 0, SMH_BANK2, SMH_BANK2);
573      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x050000, 0x0fffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
572574      break;
573575
574576   case 256*1024:
575      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x05ffff, 0, 0, SMH_BANK1, SMH_BANK1);
576      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x060000, 0x0bffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
577      memory_configure_bank(1, 0, 1, mess_ram + (128 * 1024), 0);
578      memory_set_bank(1, 0);
577      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x05ffff, 0, 0, SMH_BANK2, SMH_BANK2);
578      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x060000, 0x0fffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
579579      break;
580580
581581   case 384*1024:
582      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x07ffff, 0, 0, SMH_BANK1, SMH_BANK1);
583      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x080000, 0x0bffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
584      memory_configure_bank(1, 0, 1, mess_ram + (128 * 1024), 0);
585      memory_set_bank(1, 0);
582      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x07ffff, 0, 0, SMH_BANK2, SMH_BANK2);
583      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x080000, 0x0fffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
586584      break;
587585
588586   case 640*1024:
589      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0bffff, 0, 0, SMH_BANK1, SMH_BANK1);
590      memory_configure_bank(1, 0, 1, mess_ram + (128 * 1024), 0);
591      memory_set_bank(1, 0);
587      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0bffff, 0, 0, SMH_BANK2, SMH_BANK2);
588      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0c0000, 0x0fffff, 0, 0, SMH_UNMAP, SMH_UNMAP);
592589      break;
593590
594591   case 896*1024:
595      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0bffff, 0, 0, SMH_BANK1, SMH_BANK1);
596      memory_configure_bank(1, 0, 1, mess_ram + (128 * 1024), 0);
597      memory_set_bank(1, 0);
592      memory_install_readwrite8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x040000, 0x0fffff, 0, 0, SMH_BANK2, SMH_BANK2);
598593      break;
599594   }
600595
596   memory_configure_bank(2, 0, 1, memory_region(machine, "main") + 0x050000, 0);
597   memory_set_bank(2, 0);
598
601599   // IPC
602600
603601   state_save_register_global(ipc.keylatch);
r3280r3281
619617   MDRV_CPU_PROGRAM_MAP(ql_map, 0)
620618
621619   MDRV_CPU_ADD("ipc", I8749, X4)
622   MDRV_CPU_PROGRAM_MAP(ipc_map, 0)
623620   MDRV_CPU_IO_MAP(ipc_io_map, 0)
624621
625622   MDRV_MACHINE_START(ql)
r3280r3281
655652   MDRV_QUICKLOAD_ADD(ql, "bas", 0)
656653MACHINE_DRIVER_END
657654
655static MACHINE_DRIVER_START( opd )
656   // basic machine hardware
657   MDRV_CPU_ADD("main", M68008, 7500000)
658   MDRV_CPU_PROGRAM_MAP(ql_map, 0)
659
660   MDRV_CPU_ADD("ipc", I8051, X4)
661   MDRV_CPU_IO_MAP(ipc_io_map, 0)
662MACHINE_DRIVER_END
663
658664static MACHINE_DRIVER_START( ql_ntsc )
659665   MDRV_IMPORT_FROM(ql)
660666   MDRV_SCREEN_MODIFY("main")
r3280r3281
665671
666672/* ROMs */
667673
674#define ROM_IPC   \
675   ROM_REGION( 0x800, "ipc", 0 )\
676   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
677
668678ROM_START( ql )
669679    ROM_REGION( 0x400000, "main", 0 )
670680   ROM_SYSTEM_BIOS( 0, "default", "v1.10 (JS)" )
r3280r3281
698708   ROM_SYSTEM_BIOS( 7, "min189", "Minerva v1.89" )
699709    ROMX_LOAD( "minerva.rom", 0x000000, 0x00c000, BAD_DUMP CRC(930befe3) SHA1(84a99c4df13b97f90baf1ec8cb6c2e52e3e1bb4d), ROM_BIOS(8) )
700710
701   ROM_REGION( 0x800, "ipc", 0 )
702   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
703/*
711   ROM_IPC
712   /*
704713   ROM_REGION( 0x400, "plds", 0 )
705714   ROM_LOAD( "hal16l8.ic38", 0x0000, 0x0400, NO_DUMP )
706715   */
r3280r3281
711720    ROM_LOAD( "jsu.ic33", 0x000000, 0x008000, BAD_DUMP CRC(e397f49f) SHA1(c06f92eabaf3e6dd298c51cb7f7535d8ef0ef9c5) )
712721    ROM_LOAD( "jsu.ic34", 0x008000, 0x004000, BAD_DUMP CRC(3debbacc) SHA1(9fbc3e42ec463fa42f9c535d63780ff53a9313ec) )
713722
714   ROM_REGION( 0x800, "ipc", 0 )
715   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
723   ROM_IPC
716724ROM_END
717725
718726ROM_START( ql_es )
r3280r3281
720728    ROM_LOAD( "mge.ic33", 0x000000, 0x008000, BAD_DUMP CRC(d5293bde) SHA1(bf5af7e53a472d4e9871f182210787d601db0634) )
721729    ROM_LOAD( "mge.ic34", 0x008000, 0x004000, BAD_DUMP CRC(a694f8d7) SHA1(bd2868656008de85d7c191598588017ae8aa3339) )
722730
723   ROM_REGION( 0x800, "ipc", 0 )
724   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
731   ROM_IPC
725732ROM_END
726733
727734ROM_START( ql_fr )
r3280r3281
729736    ROM_LOAD( "mgf.ic33", 0x000000, 0x008000, NO_DUMP )
730737    ROM_LOAD( "mgf.ic34", 0x008000, 0x004000, NO_DUMP )
731738
732   ROM_REGION( 0x800, "ipc", 0 )
733   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
739   ROM_IPC
734740ROM_END
735741
736742ROM_START( ql_de )
r3280r3281
746752   ROM_SYSTEM_BIOS( 2, "ultramg", "Ultrasoft" )
747753   ROMX_LOAD( "ultramg.rom", 0x000000, 0x00c000, BAD_DUMP CRC(ad12463b) SHA1(0561b3bc7ce090f3101b2142ee957c18c250eefa), ROM_BIOS(3) )
748754
749   ROM_REGION( 0x800, "ipc", 0 )
750   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
755   ROM_IPC
751756ROM_END
752757
753758ROM_START( ql_it )
r3280r3281
755760    ROM_LOAD( "mgi.ic33", 0x000000, 0x008000, BAD_DUMP CRC(d5293bde) SHA1(bf5af7e53a472d4e9871f182210787d601db0634) )
756761    ROM_LOAD( "mgi.ic34", 0x008000, 0x004000, BAD_DUMP CRC(a2fdfb83) SHA1(162b1052737500f3c13497cdf0f813ba006bdae9) )
757762
758   ROM_REGION( 0x800, "ipc", 0 )
759   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
763   ROM_IPC
760764ROM_END
761765
762766ROM_START( ql_se )
r3280r3281
764768    ROM_LOAD( "mgs.ic33", 0x000000, 0x008000, NO_DUMP )
765769    ROM_LOAD( "mgs.ic34", 0x008000, 0x004000, NO_DUMP )
766770
767   ROM_REGION( 0x800, "ipc", 0 )
768   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
771   ROM_IPC
769772ROM_END
770773
771774ROM_START( ql_gr )
r3280r3281
773776    ROM_LOAD( "efp.ic33", 0x000000, 0x008000, BAD_DUMP CRC(eb181641) SHA1(43c1e0215cf540cbbda240b1048910ff55681059) )
774777    ROM_LOAD( "efp.ic34", 0x008000, 0x004000, BAD_DUMP CRC(4c3b34b7) SHA1(f9dc571d2d4f68520b306ecc7516acaeea69ec0d) )
775778
776   ROM_REGION( 0x800, "ipc", 0 )
777   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
779   ROM_IPC
778780ROM_END
779781
780782ROM_START( ql_dk )
781783    ROM_REGION( 0x400000, "main", 0 )
782    ROM_LOAD( "mgd.ic33", 0x000000, 0x008000, BAD_DUMP CRC(f57755eb) SHA1(dc57939ffb8741e17967a1d2479c339750ec7ff6) )
783    ROM_LOAD( "mgd.ic34", 0x008000, 0x004000, BAD_DUMP CRC(1892465a) SHA1(0ff3046b5276da6639d3fe79b22ae25cc265d540) )
784    ROM_LOAD( "mgd.ic33",  0x000000, 0x008000, BAD_DUMP CRC(f57755eb) SHA1(dc57939ffb8741e17967a1d2479c339750ec7ff6) )
785    ROM_LOAD( "mgd.ic34",  0x008000, 0x004000, BAD_DUMP CRC(1892465a) SHA1(0ff3046b5276da6639d3fe79b22ae25cc265d540) )
784786   ROM_LOAD( "extra.rom", 0x01c000, 0x004000, NO_DUMP )
785787
786   ROM_REGION( 0x800, "ipc", 0 )
787   ROM_LOAD( "ipc8049.ic24", 0x0000, 0x0800, CRC(6a0d1f20) SHA1(fcb1c97ee7c66e5b6d8fbb57c06fd2f6509f2e1b) )
788   ROM_IPC
788789ROM_END
789790
791ROM_START( tonto )
792    ROM_REGION( 0x400000, "main", 0 )
793   ROM_LOAD( "bios-1.rom", 0x000000, 0x008000, NO_DUMP )
794   ROM_LOAD( "bios-2.rom", 0x008000, 0x008000, NO_DUMP )
795   ROM_LOAD( "bios-3.rom", 0x010000, 0x008000, NO_DUMP )
796   ROM_LOAD( "bios-4.rom", 0x018000, 0x008000, NO_DUMP )
797
798    ROM_REGION( 0x10000, "i8051", 0 )
799   ROM_LOAD( "8051-1.rom", 0x000000, 0x010000, NO_DUMP )
800
801    ROM_REGION( 0x10000, "tms5220", 0 )
802   ROM_LOAD( "tms5220.rom", 0x000000, 0x004000, NO_DUMP )
803
804    ROM_REGION( 0x400000, "rompack", 0 )
805   ROM_LOAD( "rompack-1.rom", 0x000000, 0x008000, NO_DUMP )
806   ROM_LOAD( "rompack-2.rom", 0x008000, 0x008000, NO_DUMP )
807   ROM_LOAD( "rompack-3.rom", 0x010000, 0x008000, NO_DUMP )
808   ROM_LOAD( "rompack-4.rom", 0x018000, 0x008000, NO_DUMP )
809   ROM_LOAD( "rompack-5.rom", 0x020000, 0x008000, NO_DUMP )
810ROM_END
811
812ROM_START( megaopd )
813    ROM_REGION( 0x400000, "main", 0 )
814   ROM_LOAD( "bios-1.rom", 0x000000, 0x008000, NO_DUMP )
815   ROM_LOAD( "bios-2.rom", 0x008000, 0x008000, NO_DUMP )
816   ROM_LOAD( "bios-3.rom", 0x010000, 0x008000, NO_DUMP )
817   ROM_LOAD( "bios-4.rom", 0x018000, 0x008000, NO_DUMP )
818
819    ROM_REGION( 0x10000, "i8051", 0 )
820   ROM_LOAD( "8051-1.rom", 0x000000, 0x010000, NO_DUMP )
821
822    ROM_REGION( 0x10000, "tms5220", 0 )
823   ROM_LOAD( "tms5220.rom", 0x000000, 0x004000, NO_DUMP )
824
825    ROM_REGION( 0x400000, "rompack", 0 )
826   ROM_LOAD( "rompack-1.rom", 0x000000, 0x008000, NO_DUMP )
827   ROM_LOAD( "rompack-2.rom", 0x008000, 0x008000, NO_DUMP )
828   ROM_LOAD( "rompack-3.rom", 0x010000, 0x008000, NO_DUMP )
829   ROM_LOAD( "rompack-4.rom", 0x018000, 0x008000, NO_DUMP )
830   ROM_LOAD( "rompack-5.rom", 0x020000, 0x008000, NO_DUMP )
831ROM_END
832
790833/* System Configuration */
791834
792835static QUICKLOAD_LOAD( ql )
r3280r3281
796839   return INIT_PASS;
797840}
798841
799static DEVICE_IMAGE_LOAD( ql_serial )
800{
801   /* filename specified */
802   if (device_load_serial_device(image)==INIT_PASS)
803   {
804      /* setup transmit parameters */
805      serial_device_setup(image, 9600, 8, 1, SERIAL_PARITY_NONE);
806
807      serial_device_set_protocol(image, SERIAL_PROTOCOL_NONE);
808
809      /* and start transmit */
810      serial_device_set_transmit_state(image, 1);
811
812      return INIT_PASS;
813   }
814
815   return INIT_FAIL;
816}
817
818842static void ql_serial_getinfo(const mess_device_class *devclass, UINT32 state, union devinfo *info)
819843{
820844   /* serial */
r3280r3281
826850
827851      /* --- the following bits of info are returned as pointers to data or functions --- */
828852      case MESS_DEVINFO_PTR_START:                  info->start = DEVICE_START_NAME(serial_device); break;
829      case MESS_DEVINFO_PTR_LOAD:                     info->load = DEVICE_IMAGE_LOAD_NAME(ql_serial); break;
853      case MESS_DEVINFO_PTR_LOAD:                     info->load = DEVICE_IMAGE_LOAD_NAME(serial_device); break;
830854      case MESS_DEVINFO_PTR_UNLOAD:                  info->unload = DEVICE_IMAGE_UNLOAD_NAME(serial_device); break;
831855
832856      /* --- the following bits of info are returned as NULL-terminated strings --- */
r3280r3281
843867   {
844868      if (image_fread(image, ptr, filesize) == filesize)
845869      {
870         memory_install_readwrite8_handler(image->machine, 0, ADDRESS_SPACE_PROGRAM, 0x00c000, 0x00ffff, 0, 0, SMH_BANK1, SMH_UNMAP);
871
846872         return INIT_PASS;
847873      }
848874   }
r3280r3281
854880{
855881   switch( state )
856882   {
857   case MESS_DEVINFO_INT_COUNT:
858      info->i = 1;
859      break;
860   case MESS_DEVINFO_PTR_LOAD:
861      info->load = DEVICE_IMAGE_LOAD_NAME(ql_cart);
862      break;
863   case MESS_DEVINFO_STR_FILE_EXTENSIONS:
864      strcpy(info->s = device_temp_str(), "bin");
865      break;
866   default:
867      cartslot_device_getinfo( devclass, state, info );
868      break;
883      /* --- the following bits of info are returned as 64-bit signed integers --- */
884      case MESS_DEVINFO_INT_COUNT:               info->i = 1; break;
885
886      /* --- the following bits of info are returned as pointers to data or functions --- */
887      case MESS_DEVINFO_PTR_LOAD:                  info->load = DEVICE_IMAGE_LOAD_NAME(ql_cart); break;
888
889      /* --- the following bits of info are returned as NULL-terminated strings --- */
890      case MESS_DEVINFO_STR_FILE_EXTENSIONS:         strcpy(info->s = device_temp_str(), "bin");   break;
891     
892      default:                              cartslot_device_getinfo( devclass, state, info ); break;
869893   }
870894}
871895
r3280r3281
902926
903927static void ql_floppy_getinfo(const mess_device_class *devclass, UINT32 state, union devinfo *info)
904928{
905   /* floppy */
906929   switch(state)
907930   {
908931      /* --- the following bits of info are returned as 64-bit signed integers --- */
r3280r3281
930953   CONFIG_DEVICE(ql_floppy_getinfo)
931954SYSTEM_CONFIG_END
932955
956static SYSTEM_CONFIG_START( opd )
957   CONFIG_RAM_DEFAULT   (128 * 1024)
958   CONFIG_RAM         (256 * 1024) // 128K expansion
959SYSTEM_CONFIG_END
960
961static SYSTEM_CONFIG_START( megaopd )
962   CONFIG_RAM_DEFAULT   (256 * 1024)
963SYSTEM_CONFIG_END
964
933965/* Computer Drivers */
934966
935967/*    YEAR  NAME    PARENT  COMPAT  MACHINE     INPUT   INIT    CONFIG  COMPANY                     FULLNAME        FLAGS */
r3280r3281
942974COMP( 1985, ql_se,  ql,     0,      ql,         ql_se,  0,      ql,     "Sinclair Research Ltd",    "QL (Sweden)",  GAME_SUPPORTS_SAVE )
943975COMP( 1985, ql_dk,  ql,     0,      ql,         ql_dk,  0,      ql,     "Sinclair Research Ltd",    "QL (Denmark)", GAME_NOT_WORKING )
944976COMP( 1985, ql_gr,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Greece)",  GAME_SUPPORTS_SAVE )
977COMP( 1984, tonto,  0,      0,      ql,         ql,      0,      opd,   "British Telecom Business Systems", "Merlin M1800 Tonto", GAME_NOT_WORKING )
978COMP( 1986, megaopd,tonto,   0,      ql,         ql,      0,      megaopd,"International Computer Limited", "MegaOPD (USA)", GAME_NOT_WORKING )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team