Previous 15994 Revisions Next

r7487 Thursday 4th March, 2010 at 23:49:03 UTC by Stefano Priore
[SPECTRUM] Added quickload .raw support and converted to use messram device
[docs]messnew.txt
[src/mess]mess.mak
[src/mess/drivers]spectrum.c
[src/mess/formats]spec_snqk.c spec_snqk.h

src/mess/formats/spec_snqk.c
r7486r7487
24382438
24392439QUICKLOAD_LOAD(spectrum)
24402440{
2441    const address_space *space = cputag_get_address_space(image->machine, "maincpu", ADDRESS_SPACE_PROGRAM);
2442    int i;
2443    int quick_addr = BASE_RAM;
2444    int quick_length;
2445    UINT8 *quick_data;
2446    int read_;
2441    UINT8 *quickload_data = NULL;
24472442
2448    quick_length = image_length(image);
2449    quick_data = (UINT8 *)malloc(quick_length);
2450    if (!quick_data)
2451        return INIT_FAIL;
2443    quickload_data = (UINT8*)malloc(quickload_size);
2444    if (!quickload_data)
2445        goto error;
24522446
2453    read_ = image_fread(image, quick_data, quick_length);
2454    if (read_ != quick_length)
2455        return INIT_FAIL;
2447    image_fread(image, quickload_data, quickload_size);
24562448
2457    for (i = 0; i < quick_length; i++)
2458        memory_write_byte(space, i + quick_addr, quick_data[i]);
2449    if (!mame_stricmp(file_type, "scr"))
2450    {
2451        if ((quickload_size != SCR_SIZE) && (quickload_size != SCR_BITMAP))
2452        {
2453            logerror("Invalid .SCR file size.\n");
2454            goto error;
2455        }
2456        spectrum_setup_scr(image->machine, quickload_data, quickload_size);
2457    }
2458    else if (!mame_stricmp(file_type, "raw"))
2459    {
2460        if (quickload_size != RAW_SIZE)
2461        {
2462            logerror("Invalid .RAW file size.\n");
2463            goto error;
2464        }
2465        spectrum_setup_raw(image->machine, quickload_data, quickload_size);
2466    }
24592467
2460    logerror("quick loading at %.4x size:%.4x\n", quick_addr, quick_length);
2468    free(quickload_data);
2469
24612470    return INIT_PASS;
2471
2472error:
2473    if (quickload_data)
2474        free(quickload_data);
2475    return INIT_FAIL;
24622476}
24632477
2478/*******************************************************************
2479 *
2480 *      Load a .SCR file.
2481 *
2482 *      .SCR files are just a binary dump of the ZX Spectrum's
2483 *      display file, which is 256x192 pixels large.
2484 *
2485 *      These file are created using the Sinclair BASIC command
2486 *
2487 *      SAVE "filename" SCREEN$
2488 *
2489 *      where the keyword "SCREEN$" is a shortcut for "CODE 16384,6912"
2490 *      i.e. the loading address and the length of the data.
2491 *
2492 *      The format is organized as follows:
2493 *
2494 *      Offset   Size    Description
2495 *      -------- ------- -------------------------------------------------
2496 *      0        6144    Screen bitmap
2497 *      6144     768     Screen attributes
2498 *
2499 *      Some utilities and emulators support a B&W version of this
2500 *      format, which stores only the bitmap. These files can't be
2501 *      produced using the SAVE SCREEN$ command - rather they're
2502 *      created by the command
2503 *
2504 *      SAVE "filename" CODE 16384,6144
2505 *
2506 *******************************************************************/
2507void spectrum_setup_scr(running_machine *machine, UINT8 *quickdata, UINT32 quicksize)
2508{
2509    int i;
2510    const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
2511
2512    for (i = 0; i < quicksize; i++)
2513        memory_write_byte(space, i + BASE_RAM, quickdata[i]);
2514
2515    log_quickload(quicksize == SCR_SIZE ? "SCREEN$" : "SCREEN$ (Mono)", BASE_RAM, quicksize, NULL, EXEC_NA);
2516}
2517
2518/*******************************************************************
2519 *
2520 *      Load a .RAW file.
2521 *
2522 *      .RAW files are a binary dump of the ZX Spectrum RAM
2523 *      and are created using the Sinclair BASIC command
2524 *
2525 *      SAVE *"b" CODE 16384,49152
2526 *
2527 *      which copies the whole RAM to the Interface 1's RS232 interface.
2528 *      The resulting file is always 49161 bytes long.
2529 *
2530 *      The format is organized as follows:
2531 *
2532 *      Offset  Size    Description (all registers stored with LSB first)
2533 *      ------- ------- -------------------------------------------------
2534 *      0       1       0x03 (BYTES file type)
2535 *      1       2       Image size
2536 *      3       2       Image start address
2537 *      5       4       0xFF
2538 *
2539 *      Since the size and the start address are encoded in the header,
2540 *      it would be possible to create .RAW images of any part of the RAM.
2541 *      However, no image of such type has ever surfaced.
2542 *
2543 *******************************************************************/
2544void spectrum_setup_raw(running_machine *machine, UINT8 *quickdata, UINT32 quicksize)
2545{
2546    int i;
2547   UINT8 data;
2548    UINT16 start, len;
2549    spectrum_state *state = (spectrum_state *)machine->driver_data;
2550    const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
2551
2552    start = (quickdata[RAW_OFFSET + 4] << 8) | quickdata[RAW_OFFSET + 3];
2553    len   = (quickdata[RAW_OFFSET + 2] << 8) | quickdata[RAW_OFFSET + 1];
2554
2555    for (i = 0; i < len; i++)
2556        memory_write_byte(space, i + start, quickdata[i + RAW_HDR]);
2557
2558    /* Set border color */
2559    data = (memory_read_byte(space, 0x5c48) >> 3) & 0x07; // Get the current border color from BORDCR system variable.
2560    state->port_fe_data = (state->port_fe_data & 0xf8) | data;
2561    EventList_Reset();
2562    border_set_last_color(data);
2563    border_force_redraw();
2564    logerror("Border color:%02X\n", data);
2565
2566    log_quickload("BYTES", start, len, NULL, EXEC_NA);
2567}
2568
src/mess/formats/spec_snqk.h
r7486r7487
2323void spectrum_setup_snx(running_machine *machine, UINT8 *snapdata, UINT32 snapsize);
2424void spectrum_setup_frz(running_machine *machine, UINT8 *snapdata, UINT32 snapsize);
2525
26void spectrum_setup_scr(running_machine *machine, UINT8 *quickdata, UINT32 quicksize);
27void spectrum_setup_raw(running_machine *machine, UINT8 *quickdata, UINT32 quicksize);
28
2629#define BASE_RAM      0x4000
2730#define SPECTRUM_BANK 0x4000
2831
r7486r7487
156159    SPECTRUM_Z80_SNAPSHOT_TS2068
157160} SPECTRUM_Z80_SNAPSHOT_TYPE;
158161
162/*****************************************************************************
163 *
164 * .SCR format (used by many emulators)
165 *
166 ****************************************************************************/
167#define SCR_BITMAP 6144
168#define SCR_ATTR   768
169#define SCR_SIZE   (SCR_BITMAP + SCR_ATTR)
170
171/*****************************************************************************
172 *
173 * .RAW format (used by many emulators)
174 *
175 ****************************************************************************/
176#define RAW_OFFSET 0
177#define RAW_HDR    9
178#define RAW_SIZE   (RAW_HDR + 3*SPECTRUM_BANK)
179
159180SNAPSHOT_LOAD( spectrum );
160181QUICKLOAD_LOAD( spectrum );
161182
src/mess/mess.mak
r7486r7487
13911391   $(MESS_VIDEO)/microtan.o   \
13921392   $(MESS_MACHINE)/microtan.o   \
13931393   $(MESS_DRIVERS)/microtan.o   \
1394   $(MESS_FORMATS)/m65_snqk.o   \
13941395   $(MESS_FORMATS)/oric_dsk.o   \
13951396   $(MESS_FORMATS)/oric_tap.o   \
13961397   $(MESS_DRIVERS)/oric.o      \
src/mess/drivers/spectrum.c
r7486r7487
120120 128K/+2    Bank switches with port 7ffd only.
121121 +3/+2a     Bank switches with both ports.
122122
123Notes:
124 1. No contented memory.
125 2. No hi-res colour effects (need contended memory first for accurate timing).
126 3. Multiface 1 and Interface 1 not supported.
127 4. Horace and the Spiders cartridge doesn't run properly.
128 5. Tape images not supported:
129    .TZX, .SPC, .ITM, .PAN, .TAP(Warajevo), .VOC, .ZXS.
130 6. Snapshot images not supported:
131    .ACH, .PRG, .RAW, .SEM, .SIT, .SNX, .ZX, .ZXS, .ZX82.
132 7. 128K emulation is not perfect - the 128K machines crash and hang while
123TODO: (the best resource for ZX Spectrum HW informations is the http://www.zxdesign.info/
124       blog, a project devored to reverse-engineer the ZX Spectrum in h/w).
125
126 1. No contended memory. The different Spectrum models have different contention timings
127    Updated info can be found here: http://scratchpad.wikia.com/wiki/Contended_memory
128    Of course, neither "late timing" contention effects are emulated.
129
130 2. Russian models (at least Pentagon and Scorpion) reportedly don't have contended memory.
131    Information about screen timings are here: http://www.worldofspectrum.org/rusfaq/
132
133 3. Similarly, contended I/O is not emulated: http://scratchpad.wikia.com/wiki/Contended_IO
134
135 4. Finally, the Floating Bus implementation is incomplete: http://scratchpad.wikia.com/wiki/Floating_bus
136    The page hosts a couple of testing programs.
137
138 5. A NTSC model exists: it's not the Timex, but a plain ZX Spectrum made for the Chilean market:
139    http://scratchpad.wikia.com/wiki/NTSC_Spectrum
140
141 6. No hi-res colour effects (need contended memory first for accurate timing).
142
143 7. Keyboard autorepeat is broken.
144
145 8. Port decoding on all models needs to be checked and, in case, corrected.
146
147 9. The actual Issue 2/3 effect is a bit more complicated than implemented:
148    http://piters.tripod.com/cassport.htm for an explanation/test suite.
149
15010. Tape formats not supported:
151    .001, .CSW, .LTP, .PZX, .SPC, .STA, .ITM/.PAN, .TAP(Warajevo), .VOC, .ZXS, .ZXT
152
15311. Disk formats not supported:
154    .CPD, .DSK, .FDD, .FDI, .HDF, .IMG, .MDR, .MGT, .SCL, .TRD, .ZXD
155
15612. 128K emulation is not perfect - the 128K machines crash and hang while
133157    running quite a lot of games.
134 8. Disk errors occur on some +3 games.
135 9. Video hardware of all machines is timed incorrectly.
13610. EXROM and HOME cartridges are not emulated.
13711. The TK90X and TK95 roms output 0 to port #df on start up.
13812. The purpose of this port is unknown (probably display mode as TS2068) and
139    thus is not emulated.
140158
15913. Disk errors occur on some +3 games.
160
16114. EXROM and HOME cartridges are not emulated on Timex machines.
162
16315. The TK90X and TK95 roms output 0 to port #df on start up. The purpose of this port is unknown
164    (probably display mode as TS2068) and thus is not emulated.
165
141166Very detailed infos about the ZX Spectrum +3e can be found at
167http://www.worldofspectrum.org/zxplus3e/
142168
143http://www.z88forever.org.uk/zxplus3e/
144
145169*******************************************************************************/
146170
147171#include "emu.h"
r7486r7487
153177#include "devices/snapquik.h"
154178#include "devices/cartslot.h"
155179#include "devices/cassette.h"
180#include "devices/messram.h"
156181#include "formats/tzx_cas.h"
157182#include "formats/spec_snqk.h"
158183
184
159185/****************************************************************************************************/
160186/* Spectrum 48k functions */
161187
r7486r7487
208234    return address;
209235}
210236
211MACHINE_RESET( spectrum )
212{
213   spectrum_state *state = (spectrum_state *)machine->driver_data;
214   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
215
216   memory_set_direct_update_handler(space, spectrum_direct);
217   state->port_7ffd_data = -1;
218   state->port_1ffd_data = -1;
219}
220
221static ADDRESS_MAP_START (spectrum_mem, ADDRESS_SPACE_PROGRAM, 8)
222   AM_RANGE(0x0000, 0x3fff) AM_ROM
223   AM_RANGE(0x4000, 0x5aff) AM_RAM AM_BASE_MEMBER(spectrum_state,video_ram)
224   AM_RANGE(0x5b00, 0xffff) AM_RAM
225ADDRESS_MAP_END
226
227237/* KT: more accurate keyboard reading */
228238/* DJR: Spectrum+ keys added */
229239READ8_HANDLER(spectrum_port_fe_r)
r7486r7487
313323   return input_port_read(space->machine, "MIKROGEN") | (0xff^0x1f);
314324}
315325
316static READ8_HANDLER ( spectrum_port_ula_r )
326static READ8_HANDLER ( spectrum_port_ula_r )
317327{
318328   spectrum_state *state = (spectrum_state *)space->machine->driver_data;
319329   int vpos = video_screen_get_vpos(space->machine->primary_screen);
r7486r7487
321331   return vpos<193 ? state->video_ram[(vpos&0xf8)<<2]:0xff;
322332}
323333
334/* Memory Maps */
335
336static ADDRESS_MAP_START (spectrum_mem, ADDRESS_SPACE_PROGRAM, 8)
337   AM_RANGE(0x0000, 0x3fff) AM_ROM
338   AM_RANGE(0x4000, 0x5aff) AM_RAM AM_BASE_MEMBER(spectrum_state,video_ram)
339//   AM_RANGE(0x5b00, 0x7fff) AM_RAM
340//   AM_RANGE(0x8000, 0xffff) AM_RAM
341ADDRESS_MAP_END
342
324343/* ports are not decoded full.
325344The function decodes the ports appropriately */
326345static ADDRESS_MAP_START (spectrum_io, ADDRESS_SPACE_IO, 8)
r7486r7487
331350   AM_RANGE(0x01, 0x01) AM_READ(spectrum_port_ula_r) AM_MIRROR(0xfffe)
332351ADDRESS_MAP_END
333352
353/* Input ports */
354
334355/****************************************************************************************************/
335356
336357static INPUT_PORTS_START( spec_joys )
r7486r7487
497518   PORT_BIT(0xf3, IP_ACTIVE_LOW, IPT_UNUSED)
498519INPUT_PORTS_END
499520
521/* Machine initialization */
500522
523DRIVER_INIT( spectrum )
524{
525   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
526   UINT8 *ram = messram_get_ptr(devtag_get_device(machine, "messram"));
527
528   switch (messram_get_size(devtag_get_device(machine, "messram")))
529   {
530       case 48*1024:
531      memory_install_ram(space, 0x8000, 0xffff, 0, 0, ram); // Fall through
532       case 16*1024:
533      memory_install_ram(space, 0x5b00, 0x7fff, 0, 0, ram);
534   }
535}
536
537MACHINE_RESET( spectrum )
538{
539   spectrum_state *state = (spectrum_state *)machine->driver_data;
540   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
541
542   memory_set_direct_update_handler(space, spectrum_direct);
543   state->port_7ffd_data = -1;
544   state->port_1ffd_data = -1;
545}
546
501547/* F4 Character Displayer */
502548static const gfx_layout spectrum_charlayout =
503549{
r7486r7487
529575   (cassette_state)(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED)
530576};
531577
532MACHINE_DRIVER_START( spectrum )
578MACHINE_DRIVER_START( spectrum_common )
533579
534580   MDRV_DRIVER_DATA( spectrum_state )
535581
536582   /* basic machine hardware */
537   MDRV_CPU_ADD("maincpu", Z80, 3500000)        /* 3.5 MHz */
583   MDRV_CPU_ADD("maincpu", Z80, X1 / 4)        /* This is verified only for the ZX Spectum. Other clones are reported to have different clocks */
538584   MDRV_CPU_PROGRAM_MAP(spectrum_mem)
539585   MDRV_CPU_IO_MAP(spectrum_io)
540586   MDRV_CPU_VBLANK_INT("screen", spec_interrupt)
r7486r7487
565611
566612   /* devices */
567613   MDRV_SNAPSHOT_ADD("snapshot", spectrum, "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx", 0)
568   MDRV_QUICKLOAD_ADD("quickload", spectrum, "scr", 0)
614   MDRV_QUICKLOAD_ADD("quickload", spectrum, "raw,scr", 2) // The delay prevents the screen from being cleared by the RAM test at boot
569615   MDRV_CASSETTE_ADD( "cassette", spectrum_cassette_config )
570616
571617   /* cartridge */
r7486r7487
574620   MDRV_CARTSLOT_NOT_MANDATORY
575621MACHINE_DRIVER_END
576622
623MACHINE_DRIVER_START( spectrum )
624   MDRV_IMPORT_FROM( spectrum_common )
625
626   /* internal ram */
627   MDRV_RAM_ADD("messram")            // This configuration is verified only for the original ZX Spectrum.
628   MDRV_RAM_DEFAULT_SIZE("48K")      // It's likely, but still to be checked, that many clones were produced only
629   MDRV_RAM_EXTRA_OPTIONS("16K")      // in the 48k configuration, while others have extra memory (80k, 128K, 1024K)
630   MDRV_RAM_DEFAULT_VALUE(0xff)      // available via bankswitching.
631MACHINE_DRIVER_END
632
577633/***************************************************************************
578634
579635  Game driver(s)
r7486r7487
827883ROM_END
828884
829885/*    YEAR  NAME      PARENT    COMPAT  MACHINE     INPUT       INIT    COMPANY     FULLNAME */
830COMP( 1982, spectrum, 0,        0,      spectrum,      spectrum,   0,   "Sinclair Research",   "ZX Spectrum" , 0)
831COMP( 1987, spec80k,  spectrum, 0,      spectrum,      spectrum,   0,   "",   "ZX Spectrum 80K" , GAME_UNOFFICIAL)
832COMP( 1995, specide,  spectrum, 0,      spectrum,      spectrum,   0,   "",   "ZX Spectrum IDE" , GAME_UNOFFICIAL)
833COMP( 1986, inves,    spectrum, 0,      spectrum,      spec_plus,   0,   "Investronica",   "Inves Spectrum 48K+" , 0)
834COMP( 1985, tk90x,    spectrum, 0,      spectrum,      spectrum,   0,   "Micro Digital",   "TK 90X Color Computer" , 0)
835COMP( 1986, tk95,     spectrum, 0,      spectrum,      spec_plus,   0,   "Micro Digital",   "TK 95 Color Computer" , 0)
836COMP( 1985, hc85,     spectrum, 0,      spectrum,      spectrum,   0,   "ICE-Felix",   "HC-85" , 0)
837COMP( 1988, hc88,     spectrum, 0,      spectrum,      spectrum,   0,   "ICE-Felix",   "HC-88" , GAME_NOT_WORKING)
838COMP( 1990, hc90,     spectrum, 0,      spectrum,      spectrum,   0,   "ICE-Felix",   "HC-90" , 0)
839COMP( 1991, hc91,     spectrum, 0,      spectrum,      spec_plus,   0,   "ICE-Felix",   "HC-91" , 0)
840COMP( 1988, cobra,    spectrum, 0,      spectrum,      spectrum,   0,   "ITCI",   "Cobra" , GAME_NOT_WORKING)
841COMP( 1988, cobra80,  spectrum, 0,      spectrum,      spectrum,   0,   "ITCI",   "Cobra 80K" , GAME_NOT_WORKING)
842COMP( 1987, cip01,    spectrum, 0,      spectrum,      spectrum,   0,   "Electronica",   "CIP-01" , 0)   // keyboard should be spectrum, but image was not clear
843COMP( 1988, cip03,    spectrum, 0,      spectrum,      spectrum,   0,   "Electronica",   "CIP-03" , 0)   // keyboard should be spectrum, but image was not clear
844COMP( 1990, jet,      spectrum, 0,      spectrum,      spectrum,   0,   "Electromagnetica",   "JET" , 0)   // keyboard should be spectrum, but image was not clear
845COMP( 1987, dgama87,  spectrum, 0,      spectrum,      spectrum,   0,   "Didaktik Skalica",   "Didaktik Gama 87" , 0)
846COMP( 1988, dgama88,  spectrum, 0,      spectrum,      spectrum,   0,   "Didaktik Skalica",   "Didaktik Gama 88" , 0)
847COMP( 1989, dgama89,  spectrum, 0,      spectrum,      spectrum,   0,   "Didaktik Skalica",   "Didaktik Gama 89" , 0)
848COMP( 1990, didakt90, spectrum, 0,      spectrum,      spectrum,   0,   "Didaktik Skalica",   "Didaktik 90" , 0)
849COMP( 1991, didakm91, spectrum, 0,      spectrum,      spec_plus,   0,   "Didaktik Skalica",   "Didaktik M 91" , 0)
850COMP( 1992, didaktk,  spectrum, 0,      spectrum,      spec_plus,   0,   "Didaktik Skalica",   "Didaktik Kompakt" , 0)
851COMP( 1993, didakm93, spectrum, 0,      spectrum,      spec_plus,   0,   "Didaktik Skalica",   "Didaktik M 93" , 0)
852COMP( 1988, mistrum,  spectrum, 0,      spectrum,      spectrum,   0,   "Amaterske RADIO",   "Mistrum" , 0)   // keyboard could be spectrum in some models (since it was a build-yourself design)
853COMP( 1990, blitz,    spectrum, 0,      spectrum,      spectrum,   0,   "",   "Blic" , 0)      // no keyboard images found
854COMP( 1990, byte,     spectrum, 0,      spectrum,      spectrum,   0,   "",   "Byte" , 0)      // no keyboard images found
855COMP( 199?, orizon,   spectrum, 0,      spectrum,      spectrum,   0,   "",   "Orizon-Micro" , 0)      // no keyboard images found
856COMP( 1993, quorum48, spectrum, 0,      spectrum,      spectrum,   0,   "",   "Kvorum 48K" , GAME_NOT_WORKING)
857COMP( 1993, magic6,   spectrum, 0,      spectrum,      spectrum,   0,   "",   "Magic 6" , GAME_NOT_WORKING)   // keyboard should be spectrum, but image was not clear
858COMP( 1990, compani1, spectrum, 0,      spectrum,      spectrum,   0,   "",   "Kompanion 1" , 0)      // no keyboard images found
859COMP( 1990, spektrbk, spectrum, 0,      spectrum,      spectrum,   0,   "",   "Spektr BK-001" , 0)
860COMP( 1990, zvezda,   spectrum, 0,      spectrum,      spectrum,   0,   "",   "Zvezda" , 0)
886COMP( 1982, spectrum, 0,        0,      spectrum,      spectrum,   spectrum,   "Sinclair Research",   "ZX Spectrum" , 0)
887COMP( 1987, spec80k,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "ZX Spectrum 80K" , GAME_UNOFFICIAL)
888COMP( 1995, specide,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "ZX Spectrum IDE" , GAME_UNOFFICIAL)
889COMP( 1986, inves,    spectrum, 0,      spectrum,      spec_plus,   spectrum,   "Investronica",   "Inves Spectrum 48K+" , 0)
890COMP( 1985, tk90x,    spectrum, 0,      spectrum,      spectrum,   spectrum,   "Micro Digital",   "TK 90X Color Computer" , 0)
891COMP( 1986, tk95,     spectrum, 0,      spectrum,      spec_plus,   spectrum,   "Micro Digital",   "TK 95 Color Computer" , 0)
892COMP( 1985, hc85,     spectrum, 0,      spectrum,      spectrum,   spectrum,   "ICE-Felix",   "HC-85" , 0)
893COMP( 1988, hc88,     spectrum, 0,      spectrum,      spectrum,   spectrum,   "ICE-Felix",   "HC-88" , GAME_NOT_WORKING)
894COMP( 1990, hc90,     spectrum, 0,      spectrum,      spectrum,   spectrum,   "ICE-Felix",   "HC-90" , 0)
895COMP( 1991, hc91,     spectrum, 0,      spectrum,      spec_plus,   spectrum,   "ICE-Felix",   "HC-91" , 0)
896COMP( 1988, cobra,    spectrum, 0,      spectrum,      spectrum,   spectrum,   "ITCI",   "Cobra" , GAME_NOT_WORKING)
897COMP( 1988, cobra80,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "ITCI",   "Cobra 80K" , GAME_NOT_WORKING)
898COMP( 1987, cip01,    spectrum, 0,      spectrum,      spectrum,   spectrum,   "Electronica",   "CIP-01" , 0)   // keyboard should be spectrum, but image was not clear
899COMP( 1988, cip03,    spectrum, 0,      spectrum,      spectrum,   spectrum,   "Electronica",   "CIP-03" , 0)   // keyboard should be spectrum, but image was not clear
900COMP( 1990, jet,      spectrum, 0,      spectrum,      spectrum,   spectrum,   "Electromagnetica",   "JET" , 0)   // keyboard should be spectrum, but image was not clear
901COMP( 1987, dgama87,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "Didaktik Skalica",   "Didaktik Gama 87" , 0)
902COMP( 1988, dgama88,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "Didaktik Skalica",   "Didaktik Gama 88" , 0)
903COMP( 1989, dgama89,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "Didaktik Skalica",   "Didaktik Gama 89" , 0)
904COMP( 1990, didakt90, spectrum, 0,      spectrum,      spectrum,   spectrum,   "Didaktik Skalica",   "Didaktik 90" , 0)
905COMP( 1991, didakm91, spectrum, 0,      spectrum,      spec_plus,   spectrum,   "Didaktik Skalica",   "Didaktik M 91" , 0)
906COMP( 1992, didaktk,  spectrum, 0,      spectrum,      spec_plus,   spectrum,   "Didaktik Skalica",   "Didaktik Kompakt" , 0)
907COMP( 1993, didakm93, spectrum, 0,      spectrum,      spec_plus,   spectrum,   "Didaktik Skalica",   "Didaktik M 93" , 0)
908COMP( 1988, mistrum,  spectrum, 0,      spectrum,      spectrum,   spectrum,   "Amaterske RADIO",   "Mistrum" , 0)   // keyboard could be spectrum in some models (since it was a build-yourself design)
909COMP( 1990, blitz,    spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Blic" , 0)      // no keyboard images found
910COMP( 1990, byte,     spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Byte" , 0)      // no keyboard images found
911COMP( 199?, orizon,   spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Orizon-Micro" , 0)      // no keyboard images found
912COMP( 1993, quorum48, spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Kvorum 48K" , GAME_NOT_WORKING)
913COMP( 1993, magic6,   spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Magic 6" , GAME_NOT_WORKING)   // keyboard should be spectrum, but image was not clear
914COMP( 1990, compani1, spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Kompanion 1" , 0)      // no keyboard images found
915COMP( 1990, spektrbk, spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Spektr BK-001" , 0)
916COMP( 1990, zvezda,   spectrum, 0,      spectrum,      spectrum,   spectrum,   "",   "Zvezda" , 0)
docs/messnew.txt
r7486r7487
7777
7878- [SPECTRUM] Added support for .ach, .frz, .plusd, .prg, .sem, .sit,
7979  .snp, .snx and .zx snapshot formats. Hopefully fixed existing issues
80  with .sna and .spformats (both VGASpec-style and Spanish Spectrum-style
80  with .sna and .sp formats (both VGASpec-style and Spanish Spectrum-style
8181  formats are supported now).
8282
83- [SPECTRUM] Added .raw quickload support. Converted to use messram device.
84
8385- [TX0] Fixed disassembly in the debugger. [Robbbert]
8486
8587

Previous 15994 Revisions Next


© 1998-2018 The MESS Team