summaryrefslogblamecommitdiffstatshomepage
path: root/src/mess/machine/spec_snqk.h
blob: d16e20a392a4c7786ab644c94ca882d69e854b25 (plain) (tree)
1
2
3

                                                                              
                      











































































































































                                                                                      
                           
 




                               
  
 
                                 





                                      
  


















                                                                              
                             
/*****************************************************************************
 *
 * machine/spec_snqk.h
 *
 ****************************************************************************/

#ifndef __SPEC_SNQK_H__
#define __SPEC_SNQK_H__

#include "imagedev/snapquik.h"
#include "imagedev/cartslot.h"

void spectrum_setup_sna(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_z80(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_sp(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_ach(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_prg(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_plusd(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_sem(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_sit(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_zx(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_snp(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_snx(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);
void spectrum_setup_frz(running_machine &machine, UINT8 *snapdata, UINT32 snapsize);

void spectrum_setup_scr(running_machine &machine, UINT8 *quickdata, UINT32 quicksize);
void spectrum_setup_raw(running_machine &machine, UINT8 *quickdata, UINT32 quicksize);

#define BASE_RAM      0x4000
#define SPECTRUM_BANK 0x4000

/*****************************************************************************
 *
 * .SNA format (used by JPP)
 *
 ****************************************************************************/
#define SNA48_OFFSET  0
#define SNA48_HDR     27
#define SNA48_SIZE    (SNA48_HDR + 3*SPECTRUM_BANK)

#define SNA128_OFFSET (SNA48_HDR + 3*SPECTRUM_BANK)
#define SNA128_HDR    4
#define SNA128_SIZE_1 (SNA48_HDR + 3*SPECTRUM_BANK + SNA128_HDR + 5*SPECTRUM_BANK)
#define SNA128_SIZE_2 (SNA48_HDR + 3*SPECTRUM_BANK + SNA128_HDR + 6*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .SP format (used by VGASPEC and Spanish Spectrum emulator)
 *
 ****************************************************************************/
#define SP_OLD_HDR      32
#define SP_NEW_HDR      38
#define SP_OLD_SIZE     (SP_OLD_HDR + 3*SPECTRUM_BANK)
#define SP_NEW_SIZE_16K (SP_NEW_HDR + 1*SPECTRUM_BANK)
#define SP_NEW_SIZE_48K (SP_NEW_HDR + 3*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .ACH format (used by !Speccy)
 *
 ****************************************************************************/
#define ACH_OFFSET 0
#define ACH_HDR    256
#define ACH_SIZE   (ACH_HDR + BASE_RAM + 3*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .PRG format (used by SpecEm)
 *
 ****************************************************************************/
#define PRG_OFFSET 0
#define PRG_HDR    256
#define PRG_SIZE   (PRG_HDR + 3*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .PLUSD format (used by FUSE)
 *
 ****************************************************************************/
#define PLUSD_OFFSET 0
#define PLUSD48_HDR  22
#define PLUSD48_SIZE (PLUSD48_HDR + 3*SPECTRUM_BANK)

#define PLUSD128_HDR  23
#define PLUSD128_SIZE (PLUSD128_HDR + 8*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .SEM format (used by SpecEmu)
 *
 ****************************************************************************/
#define SEM_SIGNATURE 6
#define SEM_OFFSET    49158
#define SEM_HDR       34
#define SEM_SIZE      (SEM_SIGNATURE + 3*SPECTRUM_BANK + SEM_HDR)

/*****************************************************************************
 *
 * .SIT format (used by Sinclair)
 *
 ****************************************************************************/
#define SIT_OFFSET 0
#define SIT_HDR    28
#define SIT_SIZE   (SIT_HDR + BASE_RAM + 3*SPECTRUM_BANK)

/*****************************************************************************
 *
 * .ZX format (used by KGB)
 *
 ****************************************************************************/
#define ZX_OFFSET 49284
#define ZX_HDR    202
#define ZX_SIZE   (132 + 3*SPECTRUM_BANK + ZX_HDR)

/*****************************************************************************
 *
 * .SNP format (used by Nuclear ZX)
 *
 ****************************************************************************/
#define SNP_OFFSET 49152
#define SNP_HDR    31
#define SNP_SIZE   (3*SPECTRUM_BANK + SNP_HDR)

/*****************************************************************************
 *
 * .SNX format (used by Specci)
 *
 ****************************************************************************/
#define SNX_OFFSET 0
#define SNX_HDR    43

#define SNX_COMPRESSED   0xff
#define SNX_UNCOMPRESSED 0x00

/*****************************************************************************
 *
 * .FRZ format (used by CBSpeccy, ZX-Live and ASp)
 *
 ****************************************************************************/
#define FRZ_OFFSET 0
#define FRZ_HDR    42
#define FRZ_SIZE   (FRZ_HDR + 8*SPECTRUM_BANK)

enum SPECTRUM_SNAPSHOT_TYPE
{
	SPECTRUM_SNAPSHOT_NONE,
	SPECTRUM_SNAPSHOT_SNA,
	SPECTRUM_SNAPSHOT_Z80,
	SPECTRUM_SNAPSHOT_SP,
	SPECTRUM_TAPEFILE_TAP
};

enum SPECTRUM_Z80_SNAPSHOT_TYPE {
	SPECTRUM_Z80_SNAPSHOT_INVALID,
	SPECTRUM_Z80_SNAPSHOT_48K_OLD,
	SPECTRUM_Z80_SNAPSHOT_48K,
	SPECTRUM_Z80_SNAPSHOT_SAMRAM,
	SPECTRUM_Z80_SNAPSHOT_128K,
	SPECTRUM_Z80_SNAPSHOT_TS2068
};

/*****************************************************************************
 *
 * .SCR format (used by many emulators)
 *
 ****************************************************************************/
#define SCR_BITMAP 6144
#define SCR_ATTR   768
#define SCR_SIZE   (SCR_BITMAP + SCR_ATTR)

/*****************************************************************************
 *
 * .RAW format (used by many emulators)
 *
 ****************************************************************************/
#define RAW_OFFSET 0
#define RAW_HDR    9
#define RAW_SIZE   (RAW_HDR + 3*SPECTRUM_BANK)

#endif  /* __SPEC_SNQK_H__ */