Previous 199869 Revisions Next

r32387 Thursday 25th September, 2014 at 19:29:58 UTC by Fabio Priuli
(MESS) spectrum carts too. nw.
[src/mess/drivers]atm.c pentagon.c scorpion.c spec128.c specpls3.c spectrum.c timex.c
[src/mess/includes]spectrum.h

trunk/src/mess/drivers/spectrum.c
r32386r32387
622622{
623623   m_port_7ffd_data = -1;
624624   m_port_1ffd_data = -1;
625
626   if (m_cart && m_cart->exists())
627      m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x3fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
625628}
626629
627630/* F4 Character Displayer */
r32386r32387
648651   device.execute().set_input_line(0, HOLD_LINE);
649652}
650653
651DEVICE_IMAGE_LOAD_MEMBER( spectrum_state,spectrum_cart )
654DEVICE_IMAGE_LOAD_MEMBER(spectrum_state, spectrum_cart)
652655{
653   UINT32 filesize;
654
655   if (image.software_entry() == NULL)
656   UINT32 size = m_cart->common_get_size("rom");
657   
658   if (size != 0x4000)
656659   {
657      filesize = image.length();
658
659      if (filesize != 0x4000 )
660      {
661         image.seterror(IMAGE_ERROR_UNSPECIFIED, "Incorrect or not support cartridge size");
662         return IMAGE_INIT_FAIL;
663      }
664
665      if (image.fread(memregion("maincpu")->base(), filesize) != filesize)
666      {
667         image.seterror(IMAGE_ERROR_UNSPECIFIED, "Error loading file");
668         return IMAGE_INIT_FAIL;
669      }
660      image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
661      return IMAGE_INIT_FAIL;
670662   }
671   else
672   {
673      filesize = image.get_software_region_length("rom");
674      memcpy(memregion("maincpu")->base(), image.get_software_region("rom"), filesize);
675   }
663   
664   m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
665   m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");         
666   
676667   return IMAGE_INIT_PASS;
677668}
678669
r32386r32387
720711   MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass")
721712
722713   /* cartridge */
723   MCFG_CARTSLOT_ADD("cart")
724   MCFG_CARTSLOT_EXTENSION_LIST("rom")
725   MCFG_CARTSLOT_NOT_MANDATORY
726   MCFG_CARTSLOT_LOAD(spectrum_state,spectrum_cart)
727   MCFG_CARTSLOT_INTERFACE("spectrum_cart")
714   MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "spectrum_cart")
715   MCFG_GENERIC_EXTENSIONS("bin,rom")
716   MCFG_GENERIC_LOAD(spectrum_state, spectrum_cart)
717
728718   MCFG_SOFTWARE_LIST_ADD("cart_list","spectrum")
729719MACHINE_CONFIG_END
730720
r32386r32387
783773   ROMX_LOAD("isomoje.rom",0x0000,0x4000, CRC(62ab3640) SHA1(04adbdb1380d6ccd4ab26ddd61b9ccbba462a60f), ROM_BIOS(18))
784774   ROM_SYSTEM_BIOS(18, "iso8", "ISO ROM 8")
785775   ROMX_LOAD("iso8bm.rom",0x0000,0x4000, CRC(43e9c2fd) SHA1(5752e6f789769475711b91e0a75911fa5232c767), ROM_BIOS(19))
786   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
787776ROM_END
788777
789778ROM_START(specide)
790779   ROM_REGION(0x10000,"maincpu",0)
791780   ROM_LOAD("zxide.rom", 0x0000, 0x4000, CRC(bd48db54) SHA1(54c2aa958902b5395c260770a0b25c7ba5685de9))
792   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
793781ROM_END
794782
795783ROM_START(spec80k)
796784   ROM_REGION(0x10000,"maincpu",0)
797785   ROM_LOAD("80-lec.rom", 0x0000, 0x4000, CRC(5b5c92b1) SHA1(bb7a77d66e95d2e28ebb610e543c065e0d428619))
798   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
799786ROM_END
800787
801788ROM_START(tk90x)
802789   ROM_REGION(0x10000,"maincpu",0)
803790   ROM_LOAD("tk90x.rom",0x0000,0x4000, CRC(3e785f6f) SHA1(9a943a008be13194fb006bddffa7d22d2277813f))
804   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
805791ROM_END
806792
807793ROM_START(tk95)
808794   ROM_REGION(0x10000,"maincpu",0)
809795   ROM_LOAD("tk95.rom",0x0000,0x4000, CRC(17368e07) SHA1(94edc401d43b0e9a9cdc1d35de4b6462dc414ab3))
810   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
811796ROM_END
812797
813798ROM_START(inves)
814799   ROM_REGION(0x10000,"maincpu",0)
815800   ROM_LOAD("inves.rom",0x0000,0x4000, CRC(8ff7a4d1) SHA1(d020440638aff4d39467128413ef795677be9c23))
816   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
817801ROM_END
818802
819803/* Romanian clones */
820804ROM_START(hc85)
821805   ROM_REGION(0x10000,"maincpu",0)
822806   ROM_LOAD("hc85.rom",0x0000,0x4000, CRC(3ab60fb5) SHA1(a4189db0bcdf8b39ed782b398828efb408fc4817))
823   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
824807ROM_END
825808
826809ROM_START( hc88 )
827810   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
828811   ROM_LOAD( "hc88.bin", 0x0000, 0x0800, CRC(33be5134) SHA1(b15a6e7085710de8b818e42d329707cb737627e3))
829   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
830812ROM_END
831813
832814ROM_START(hc90)
833815   ROM_REGION(0x10000,"maincpu",0)
834816   ROM_LOAD("hc90.rom",0x0000,0x4000, CRC(78c14d9a) SHA1(25ef81905bed90497a749770170c24632efb2039))
835   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
836817ROM_END
837818
838819ROM_START(hc91)
839820   ROM_REGION(0x10000,"maincpu",0)
840821   ROM_LOAD("hc91.rom",0x0000,0x4000, CRC(8bf53761) SHA1(967d5179ba2823e9c8dd9ddfb0430465aaddb554))
841   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
842822ROM_END
843823
844824ROM_START(cip03)
845825   ROM_REGION(0x10000,"maincpu",0)
846826   ROM_LOAD("cip03.rom",0x0000,0x4000, CRC(c7d0cd3c) SHA1(811055b44fc74076137e2bf8db206b2a70287cc2))
847   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
848827ROM_END
849828
850829ROM_START(cip01)
851830   ROM_REGION(0x10000,"maincpu",0)
852831   ROM_LOAD("cip01.rom",0x0000,0x4000, CRC(0516a329) SHA1(4e3e0c5719a64d3b4fb224db499b4bef7d146917))
853   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
854832ROM_END
855833
856834ROM_START(jet)
857835   ROM_REGION(0x10000,"maincpu",0)
858836   ROM_LOAD("jet.rom",0x0000,0x4000, CRC(e56a7d11) SHA1(e76be9ee71bae6aa1c2ff969276fb599ed68cb50))
859   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
860837ROM_END
861838
862839ROM_START( cobrasp )
r32386r32387
865842   ROMX_LOAD( "boot64k_v1.bin", 0x0000, 0x0800, CRC(a54aae6d) SHA1(8f5134ce24aea59065ed166ad79e864e17ce812f), ROM_BIOS(1))
866843   ROM_SYSTEM_BIOS(1, "v2", "V2")
867844   ROMX_LOAD( "boot64k_v2.bin", 0x0000, 0x0800, CRC(ee91cc89) SHA1(37dea7fe0734068adf99b91fdcbf3119095c350d), ROM_BIOS(2))
868   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
869845ROM_END
870846
871847ROM_START( cobra80 )
r32386r32387
876852   ROMX_LOAD( "boot80k_v2.bin", 0x0000, 0x0800, CRC(df6bd954) SHA1(5b858b59e697d0368ea631ead14f5b2aa7954ccd), ROM_BIOS(2))
877853   ROM_SYSTEM_BIOS(2, "v3", "V3")
878854   ROMX_LOAD( "boot80k_v3.bin", 0x0000, 0x0800, CRC(8580494c) SHA1(91af3f3fa50f2071f8ff081536bdf7e21e9823d9), ROM_BIOS(3))
879   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
880855ROM_END
881856
882857/* Czechoslovakian clones*/
r32386r32387
886861ROM_START(dgama87)
887862   ROM_REGION(0x10000,"maincpu",0)
888863   ROM_LOAD("dgama87.rom",0x0000,0x4000, CRC(43104909) SHA1(f62d1f3f35fda467cae468e890995614f6ec2357))
889   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
890864ROM_END
891865
892866ROM_START(dgama88)
893867   ROM_REGION(0x10000,"maincpu",0)
894868   ROM_LOAD("dgama88.rom",0x0000,0x4000, CRC(4ec7e078) SHA1(09a91f85e82efa7f974d1b88c69636a02063d563))
895   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
896869ROM_END
897870
898871ROM_START(dgama89)
r32386r32387
905878   ROMX_LOAD("iso.rom",0x0000,0x4000, CRC(2ee3a992) SHA1(2e39995dd032036d33a6dd88a38b750057bca19d), ROM_BIOS(3))
906879   ROM_SYSTEM_BIOS(3, "isopolak", "ISO Polak")
907880   ROMX_LOAD("isopolak.rom",0x0000,0x4000, CRC(5e3f1f66) SHA1(61713117c944fc6afcb96c647bdba5ad36fd6a4b), ROM_BIOS(4))
908   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
909881ROM_END
910882
911883ROM_START(didakt90)
912884   ROM_REGION(0x10000,"maincpu",0)
913885   ROM_LOAD("didakt90.rom",0x0000,0x4000, CRC(76f2db1e) SHA1(daee355a8ee58bc406873c1dd81eecb6161dd4bd))
914   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
915886ROM_END
916887
917888ROM_START(didakm91)
918889   ROM_REGION(0x10000,"maincpu",0)
919890   ROM_LOAD("didakm91.rom",0x0000,0x4000, CRC(beab69b8) SHA1(71d4d1a05fb936f616bcb05c3a276f79343ecd4d))
920   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
921891ROM_END
922892
923893ROM_START(didakm92)
924894   ROM_REGION(0x10000,"maincpu",0)
925895   ROM_LOAD("didakm92.bin",0x0000,0x4000, CRC(57264d4f) SHA1(23644fe949cbf527747959d07b72db01de378c4c))
926   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
927896ROM_END
928897
929898ROM_START(didaktk)
930899   ROM_REGION(0x10000,"maincpu",0)
931900   ROM_LOAD("didaktk.rom",0x0000,0x4000, CRC(8ec8a625) SHA1(cba35517d33a5c97e3d9110f12a417c6c5cdeca8))
932   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
933901ROM_END
934902
935903ROM_START(didakm93)
936904   ROM_REGION(0x10000,"maincpu",0)
937905   ROM_LOAD("didakm93.rom",0x0000,0x4000, CRC(ec274b1b) SHA1(a3470d8d1a996ee2a1ffff8bd8044da6e907e07e))
938   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
939906ROM_END
940907
941908ROM_START(mistrum)
942909   ROM_REGION(0x10000,"maincpu",0)
943910   ROM_LOAD("mistrum.rom",0x0000,0x4000, CRC(d496103e) SHA1(cca1c5b059dc3a29ca4282e8621e34a65efaa1a3))
944   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
945911ROM_END
946912
947913/* Russian clones */
r32386r32387
949915ROM_START(blitzs)
950916   ROM_REGION(0x10000,"maincpu",0)
951917   ROM_LOAD("blitz.rom",0x0000,0x4000, CRC(91e535a8) SHA1(14f09d45dc3803cbdb05c33adb28eb12dbad9dd0))
952   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
953918ROM_END
954919
955920ROM_START(byte)
956921   ROM_REGION(0x10000,"maincpu",0)
957922   ROM_LOAD("byte.rom",0x0000,0x4000, CRC(c13ba473) SHA1(99f40727185abbb2413f218d69df021ae2e99e45))
958   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
959923ROM_END
960924
961925ROM_START(orizon)
962926   ROM_REGION(0x10000,"maincpu",0)
963927   ROM_LOAD("orizon.rom",0x0000,0x4000, CRC(ed4d9787) SHA1(3e8b29862e06be03344393c320a64a109fd9aff5))
964   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
965928ROM_END
966929
967930ROM_START(quorum48)
968931   ROM_REGION(0x10000,"maincpu",0)
969932   ROM_LOAD("quorum48.rom",0x0000,0x4000, CRC(48085b0e) SHA1(8e01581643f7bdfa773f68207a6437911b631e53))
970   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
971933ROM_END
972934
973935ROM_START(magic6)
974936   ROM_REGION(0x10000,"maincpu",0)
975937   ROM_LOAD("magic6.rom",0x0000,0x4000, CRC(cb63ae06) SHA1(533ad1f50534e6bdeec50eb5a9a4976c3d010dc7))
976   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
977938ROM_END
978939
979940ROM_START(compani1)
980941   ROM_REGION(0x10000,"maincpu",0)
981942   ROM_LOAD("compani1.rom",0x0000,0x4000, CRC(bcfa6068) SHA1(40074b55c91a947698598e9d6ac5b8495e8cc840))
982   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
983943ROM_END
984944
985945ROM_START(spektrbk)
986946   ROM_REGION(0x10000,"maincpu",0)
987947   ROM_LOAD("spektr-bk001.rom", 0x0000, 0x4000, CRC(c011eecc) SHA1(35fdc8cd083e50452655997a997873627b131520))
988   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
989948ROM_END
990949
991950ROM_START(zvezda)
992951   ROM_REGION(0x10000,"maincpu",0)
993952   ROM_LOAD( "2764-near-cpu_red.bin", 0x0000, 0x2000, CRC(a4ae4938) SHA1(ea1763b9dee29381ddcf882fbc4e404ba5366942))
994953   ROM_LOAD( "2764-far-cpu_blue.bin", 0x2000, 0x2000, CRC(ebab64bc) SHA1(8c98a8b6e927b02cf602c20a1b50838e60f7785b))
995   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
996954ROM_END
997955
998956/*    YEAR  NAME      PARENT    COMPAT  MACHINE     INPUT       INIT    COMPANY     FULLNAME */
trunk/src/mess/drivers/spec128.c
r32386r32387
183183void spectrum_state::spectrum_128_update_memory()
184184{
185185   UINT8 *messram = m_ram->pointer();
186   unsigned char *ChosenROM;
187   int ROMSelection;
188186
189   if (m_port_7ffd_data & 8)
190   {
187   /* select ram at 0x0c000-0x0ffff */
188   int ram_page = m_port_7ffd_data & 0x07;
189   unsigned char *ram_data = messram + (ram_page<<14);
190   membank("bank4")->set_base(ram_data);
191
192   if (BIT(m_port_7ffd_data, 3))
191193      m_screen_location = messram + (7<<14);
192   }
193194   else
194   {
195195      m_screen_location = messram + (5<<14);
196   }
197196
198   /* select ram at 0x0c000-0x0ffff */
197   if (!m_cart->exists())
199198   {
200      int ram_page;
201      unsigned char *ram_data;
199      /* ROM switching */
200      int ROMSelection = BIT(m_port_7ffd_data, 4);
202201
203      ram_page = m_port_7ffd_data & 0x07;
204      ram_data = messram + (ram_page<<14);
202      /* rom 0 is 128K rom, rom 1 is 48 BASIC */
203      unsigned char *ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14);
205204
206      membank("bank4")->set_base(ram_data);
205      membank("bank1")->set_base(ChosenROM);
207206   }
208
209   /* ROM switching */
210   ROMSelection = ((m_port_7ffd_data>>4) & 0x01);
211
212   /* rom 0 is 128K rom, rom 1 is 48 BASIC */
213
214   ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection<<14);
215
216   membank("bank1")->set_base(ChosenROM);
217207}
218208
219209READ8_MEMBER( spectrum_state::spectrum_128_ula_r )
r32386r32387
291281   MCFG_CPU_VBLANK_INT_DRIVER("screen", spectrum_state,  spec_interrupt)
292282   MCFG_QUANTUM_TIME(attotime::from_hz(60))
293283
294
295284   MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum_128 )
296285
297286   /* video hardware */
r32386r32387
328317   ROM_SYSTEM_BIOS( 1, "sp", "Spanish" )
329318   ROMX_LOAD("zx128s0.rom",0x10000,0x4000, CRC(453d86b2) SHA1(968937b1c750f0ef6205f01c6db4148da4cca4e3), ROM_BIOS(2))
330319   ROMX_LOAD("zx128s1.rom",0x14000,0x4000, CRC(6010e796) SHA1(bea3f397cc705eafee995ea629f4a82550562f90), ROM_BIOS(2))
331   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
332320ROM_END
333321
334322ROM_START(specpls2)
r32386r32387
347335   ROMX_LOAD("plus2c-1.rom",0x14000,0x4000, CRC(fd8552b6) SHA1(5ffcf79f2154ba2cf42cc1d9cb4be93cb5043e73), ROM_BIOS(4))
348336   ROM_SYSTEM_BIOS( 4, "namco", "ZX Spectrum +2c (Namco)" )
349337   ROMX_LOAD("pl2namco.rom",0x10000,0x8000, CRC(72a54e75) SHA1(311400157df689450dadc3620f4c4afa960b05ad), ROM_BIOS(5))
350   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
351338ROM_END
352339
353340ROM_START(hc128)
354341   ROM_REGION(0x18000,"maincpu",0)
355342   ROM_LOAD("zx128_0.rom",0x10000,0x4000, CRC(e76799d2) SHA1(4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5))
356343   ROM_LOAD("hc128.rom",  0x14000,0x4000, CRC(0241e960) SHA1(cea0d14391b9e571460a816088a1c00ecb24afa3))
357   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
358344ROM_END
359345
360346ROM_START(hc2000)
r32386r32387
365351   ROM_SYSTEM_BIOS( 1, "v2", "Version 2" )
366352   ROMX_LOAD("zx128_0.rom",0x10000,0x4000, CRC(e76799d2) SHA1(4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5), ROM_BIOS(2))
367353   ROMX_LOAD("hc2000.v2",  0x14000,0x4000, CRC(65d90464) SHA1(5e2096e6460ff2120c8ada97579fdf82c1199c09), ROM_BIOS(2))
368   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
369354ROM_END
370355
371356/*    YEAR  NAME      PARENT    COMPAT  MACHINE     INPUT       INIT    COMPANY     FULLNAME */
trunk/src/mess/drivers/scorpion.c
r32386r32387
466466   ROMX_LOAD("scorp1.rom",   0x014000, 0x4000, CRC(9d513013) SHA1(367b5a102fb663beee8e7930b8c4acc219c1f7b3), ROM_BIOS(7))
467467   ROMX_LOAD("scorp2.rom",   0x018000, 0x4000, CRC(fd0d3ce1) SHA1(07783ee295274d8ff15d935bfd787c8ac1d54900), ROM_BIOS(7))
468468   ROMX_LOAD("scorp3.rom",   0x01c000, 0x4000, CRC(1fe1d003) SHA1(33703e97cc93b7edfcc0334b64233cf81b7930db), ROM_BIOS(7))
469   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
470469
471470   ROM_REGION(0x01000, "keyboard", 0)
472471   ROM_LOAD( "scrpkey.rom", 0x0000, 0x1000, CRC(e938a510) SHA1(2753993c97ff0fc6cff26ed792929abc1288dc6f))
r32386r32387
492491   ROMX_LOAD( "profi32.rom", 0x010000, 0x10000, CRC(77327f52) SHA1(019bd00cc7939741d99b99beac6ae1298652e652), ROM_BIOS(6))
493492   ROM_SYSTEM_BIOS(6, "v7", "Power Of Sound Group")
494493   ROMX_LOAD( "profi1k.rom", 0x010000, 0x10000, CRC(a932676f) SHA1(907ac56219f325949a7c2fe8168799d9cdd5ba6c), ROM_BIOS(7))
495   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
496494ROM_END
497495
498496ROM_START(quorum)
499497   ROM_REGION(0x020000, "maincpu", 0)
500498   ROM_LOAD("qu7v42.rom",   0x010000, 0x10000, CRC(e950eee5) SHA1(f8e22672722b0038689c6c8bc4acf5392acc9d8c))
501   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
502499ROM_END
503500
504501ROM_START(bestzx)
r32386r32387
515512   ROMX_LOAD( "kay1024b.rom", 0x010000, 0x10000, CRC(ab99c31e) SHA1(cfa9e6553aea72956fce4f0130c007981d684734), ROM_BIOS(2))
516513   ROM_SYSTEM_BIOS(2, "v3", "Kramis V0.3")
517514   ROMX_LOAD( "kay1024s.rom", 0x010000, 0x10000, CRC(67351caa) SHA1(1d9c0606b380c000ca1dfa33f90a122ecf9df1f1), ROM_BIOS(3))
518   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
519515ROM_END
520516
521517/*    YEAR  NAME      PARENT    COMPAT  MACHINE     INPUT   CLASS         INIT      COMPANY     FULLNAME */
trunk/src/mess/drivers/pentagon.c
r32386r32387
292292   ROM_SYSTEM_BIOS(13, "v14", "NeOS 512")
293293   ROMX_LOAD("neos_512.rom", 0x010000, 0x4000, CRC(1657fa43) SHA1(647545f06257bce9b1919fcb86b2a49a21c851a7), ROM_BIOS(14))
294294   ROMX_LOAD("128p-1.rom",   0x014000, 0x4000, CRC(b96a36be) SHA1(80080644289ed93d71a1103992a154cc9802b2fa), ROM_BIOS(14))
295   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
296295ROM_END
297296
298297ROM_START(pent1024)
r32386r32387
317316   ROMX_LOAD( "gluk601r.rom", 0x018000, 0x4000, CRC(daf6310b) SHA1(b8945168d4d136b731b33ec4758f8510c47fb8c4), ROM_BIOS(8))
318317   ROM_SYSTEM_BIOS(8, "v9", "Gluk 5.1")
319318   ROMX_LOAD( "gluk51.rom",   0x018000, 0x4000, CRC(ea8c760b) SHA1(adaab28066ca46fbcdcf084c3b53d5a1b82d94a9), ROM_BIOS(9))
320   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
321319ROM_END
322320
323321/*    YEAR  NAME      PARENT    COMPAT  MACHINE     INPUT       INIT    COMPANY     FULLNAME */
trunk/src/mess/drivers/specpls3.c
r32386r32387
214214
215215   if ((m_port_1ffd_data & 0x01) == 0)
216216   {
217         int ram_page;
218         unsigned char *ram_data;
217      /* select ram at 0x0c000-0x0ffff */
218      int ram_page = m_port_7ffd_data & 0x07;
219      unsigned char *ram_data = messram + (ram_page<<14);
220      membank("bank4")->set_base(ram_data);
221     
222      logerror("RAM at 0xc000: %02x\n", ram_page);
223     
224      /* Reset memory between 0x4000 - 0xbfff in case extended paging was being used */
225      /* Bank 5 in 0x4000 - 0x7fff */
226      membank("bank2")->set_base(messram + (5 << 14));
227     
228      /* Bank 2 in 0x8000 - 0xbfff */
229      membank("bank3")->set_base(messram + (2 << 14));
219230
231      if (!m_cart->exists())
232      {
220233         /* ROM switching */
221         unsigned char *ChosenROM;
222         int ROMSelection;
223
224         /* select ram at 0x0c000-0x0ffff */
225         ram_page = m_port_7ffd_data & 0x07;
226         ram_data = messram + (ram_page<<14);
227
228         membank("bank4")->set_base(ram_data);
229
230         logerror("RAM at 0xc000: %02x\n", ram_page);
231
232         /* Reset memory between 0x4000 - 0xbfff in case extended paging was being used */
233         /* Bank 5 in 0x4000 - 0x7fff */
234         membank("bank2")->set_base(messram + (5 << 14));
235
236         /* Bank 2 in 0x8000 - 0xbfff */
237         membank("bank3")->set_base(messram + (2 << 14));
238
239
240         ROMSelection = ((m_port_7ffd_data >> 4) & 0x01) |
241            ((m_port_1ffd_data >> 1) & 0x02);
242
234         int ROMSelection = BIT(m_port_7ffd_data, 4) | ((m_port_1ffd_data >> 1) & 0x02);
235         
243236         /* rom 0 is editor, rom 1 is syntax, rom 2 is DOS, rom 3 is 48 BASIC */
244
245         ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14);
246
237         unsigned char *ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14);
238         
247239         membank("bank1")->set_base(ChosenROM);
248240         space.unmap_write(0x0000, 0x3fff);
249
241         
250242         logerror("rom switch: %02x\n", ROMSelection);
243      }
251244   }
252245   else
253246   {
254         /* Extended memory paging */
255
256         const int *memory_selection;
257         int MemorySelection;
258         unsigned char *ram_data;
259
260         MemorySelection = (m_port_1ffd_data >> 1) & 0x03;
261
262         memory_selection = &spectrum_plus3_memory_selections[(MemorySelection << 2)];
263
264         ram_data = messram + (memory_selection[0] << 14);
265         membank("bank1")->set_base(ram_data);
266         /* allow writes to 0x0000-0x03fff */
267         space.install_write_bank(0x0000, 0x3fff, "bank1");
268
269         ram_data = messram + (memory_selection[1] << 14);
270         membank("bank2")->set_base(ram_data);
271
272         ram_data = messram + (memory_selection[2] << 14);
273         membank("bank3")->set_base(ram_data);
274
275         ram_data = messram + (memory_selection[3] << 14);
276         membank("bank4")->set_base(ram_data);
277
278         logerror("extended memory paging: %02x\n", MemorySelection);
247      /* Extended memory paging */
248      int MemorySelection = (m_port_1ffd_data >> 1) & 0x03;
249      const int *memory_selection = &spectrum_plus3_memory_selections[(MemorySelection << 2)];
250      unsigned char *ram_data = messram + (memory_selection[0] << 14);
251     
252      membank("bank1")->set_base(ram_data);
253      /* allow writes to 0x0000-0x03fff */
254      space.install_write_bank(0x0000, 0x3fff, "bank1");
255     
256      ram_data = messram + (memory_selection[1] << 14);
257      membank("bank2")->set_base(ram_data);
258     
259      ram_data = messram + (memory_selection[2] << 14);
260      membank("bank3")->set_base(ram_data);
261     
262      ram_data = messram + (memory_selection[3] << 14);
263      membank("bank4")->set_base(ram_data);
264     
265      logerror("extended memory paging: %02x\n", MemorySelection);
279266   }
280267}
281268
r32386r32387
314301   /* disable paging? */
315302   if ((m_port_7ffd_data & 0x20)==0)
316303   {
317         /* no */
318         spectrum_plus3_update_memory();
304      /* no */
305      spectrum_plus3_update_memory();
319306   }
320307}
321308
r32386r32387
411398   ROM_LOAD("p2a41_1.rom",0x14000,0x4000, CRC(a7916b3f) SHA1(1a7812c383a3701e90e88d1da086efb0c033ac72))
412399   ROM_LOAD("p2a41_2.rom",0x18000,0x4000, CRC(c9a0b748) SHA1(8df145d10ff78f98138682ea15ebccb2874bf759))
413400   ROM_LOAD("p2a41_3.rom",0x1c000,0x4000, CRC(b88fd6e3) SHA1(be365f331942ec7ec35456b641dac56a0dbfe1f0))
414   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
415401ROM_END
416402
417403ROM_START(specpls3)
r32386r32387
434420   ROM_SYSTEM_BIOS( 4, "12ms", "Customize 3.5\" 12ms" )
435421   ROMX_LOAD("p3_01_cm.rom",0x10000,0x8000, CRC(ad99380a) SHA1(4e5d114b72d464cefdde0566457f52a3c0c1cae2), ROM_BIOS(5))
436422   ROMX_LOAD("p3_23_cm.rom",0x18000,0x8000, CRC(61f2b50c) SHA1(d062765ceb1f3cd2c94ea51cb737cac7ad6151b4), ROM_BIOS(5))
437   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
438423ROM_END
439424
440425ROM_START(specpl3e)
r32386r32387
445430   ROM_SYSTEM_BIOS( 1, "sp", "Spanish" )
446431   ROMX_LOAD("roma-es.rom",0x10000,0x8000, CRC(ba694b4b) SHA1(d15d9e43950483cffc79f1cfa89ecb114a88f6c2), ROM_BIOS(2))
447432   ROMX_LOAD("romb-es.rom",0x18000,0x8000, CRC(61ed94db) SHA1(935b14c13db75d872de8ad0d591aade0adbbc355), ROM_BIOS(2))
448   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
449433ROM_END
450434
451435ROM_START(sp3e8bit)
r32386r32387
454438   ROMX_LOAD("3e8biten.rom",0x10000,0x10000, CRC(beee3bf6) SHA1(364ec903916282d5401901c5fb0cb93a142038b3), ROM_BIOS(1))
455439   ROM_SYSTEM_BIOS( 1, "sp", "Spanish" )
456440   ROMX_LOAD("3e8bites.rom",0x10000,0x10000, CRC(cafe4c35) SHA1(8331d273d29d3e37ec1324053bb050874d2c1434), ROM_BIOS(2))
457   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
458441ROM_END
459442
460443ROM_START(sp3ezcf)
r32386r32387
463446   ROMX_LOAD("3ezcfen.rom",0x10000,0x10000, CRC(43993f11) SHA1(27cbfbe8b5ef9eec6056026fa0b84fe158ba2f45), ROM_BIOS(1))
464447   ROM_SYSTEM_BIOS( 1, "sp", "Spanish" )
465448   ROMX_LOAD("3ezcfes.rom",0x10000,0x10000, CRC(1325a0d7) SHA1(521cf47e10f46c8a621c8889ef1f008454c7e10b), ROM_BIOS(2))
466   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
467449ROM_END
468450
469451ROM_START(sp3eata)
r32386r32387
472454   ROMX_LOAD("3ezxaen.rom",0x10000,0x10000, CRC(dfb676dc) SHA1(37618bc66ae33dbf686be8a92867e4a9144b65dc), ROM_BIOS(1))
473455   ROM_SYSTEM_BIOS( 1, "sp", "Spanish" )
474456   ROMX_LOAD("3ezxaes.rom",0x10000,0x10000, CRC(8f0ae91a) SHA1(71693e18b30c90914be58cba26682ca025c924ea), ROM_BIOS(2))
475   ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
476457ROM_END
477458
478459/*    YEAR  NAME      PARENT    COMPAT  MACHINE         INPUT       INIT    COMPANY     FULLNAME */
trunk/src/mess/drivers/atm.c
r32386r32387
217217   ROMX_LOAD( "atm106-4.rom", 0x01c000, 0x4000, CRC(f352f2ab) SHA1(6045500ab01be708cef62327e9821b4a358a4673), ROM_BIOS(3))
218218   ROM_SYSTEM_BIOS(3, "v4", "v.1.03rs")
219219   ROMX_LOAD( "atm103rs.rom", 0x010000, 0x10000, CRC(cdec1dfb) SHA1(08190807c6b110cb2e657d8e7d0ad18668915375), ROM_BIOS(4))
220
221   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
222220ROM_END
223221
224222ROM_START( atmtb2 )
r32386r32387
233231   ROM_SYSTEM_BIOS(2, "v3", "v.1.07.13")
234232   ROMX_LOAD( "atmtb213.rom", 0x010000, 0x10000, CRC(34a91d53) SHA1(8f0af0f3c0ff1644535f20545c73d01576d6e52f), ROM_BIOS(3))
235233
236   ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL)
237234   ROM_REGION(0x01000, "keyboard", ROMREGION_ERASEFF)
238235   // XT Keyboard
239236   ROM_LOAD( "rf2ve3.rom",  0x0000, 0x0580, CRC(35e0f9ec) SHA1(adcf14758fab8472cfa0167af7e8326c66416416))
trunk/src/mess/drivers/timex.c
r32386r32387
736736   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
737737
738738   /* cartridge */
739   MCFG_CARTSLOT_MODIFY("cart")
739   MCFG_DEVICE_REMOVE("cartslot")
740
741   MCFG_CARTSLOT_ADD("cart")
740742   MCFG_CARTSLOT_EXTENSION_LIST("dck")
741743   MCFG_CARTSLOT_NOT_MANDATORY
742744   MCFG_CARTSLOT_LOAD(spectrum_state,timex_cart)
trunk/src/mess/includes/spectrum.h
r32386r32387
77#ifndef __SPECTRUM_H__
88#define __SPECTRUM_H__
99
10#include "imagedev/snapquik.h"
11#include "imagedev/cartslot.h"
1210#include "machine/upd765.h"
13#include "imagedev/cassette.h"
1411#include "sound/speaker.h"
1512#include "machine/ram.h"
13#include "imagedev/snapquik.h"
14#include "imagedev/cassette.h"
15#include "bus/generic/slot.h"
16#include "bus/generic/carts.h"
1617
1718/* Spectrum crystals */
1819
r32386r32387
7980      m_cassette(*this, "cassette"),
8081      m_ram(*this, RAM_TAG),
8182      m_speaker(*this, "speaker"),
83      m_cart(*this, "cartslot"),
8284      m_upd765(*this, "upd765"),
8385      m_upd765_0(*this, "upd765:0"),
8486      m_upd765_1(*this, "upd765:1"),
r32386r32387
189191   required_device<cassette_image_device> m_cassette;
190192   required_device<ram_device> m_ram;
191193   required_device<speaker_sound_device> m_speaker;
194   optional_device<generic_slot_device> m_cart;
192195   optional_device<upd765a_device> m_upd765;
193196   optional_device<floppy_connector> m_upd765_0;
194197   optional_device<floppy_connector> m_upd765_1;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team