|
|
1.1 root 1: /*
2: * UAE - The Un*x Amiga Emulator
3: *
4: * Save/restore emulator state
5: *
6: * (c) 1999-2001 Toni Wilen
7: */
8:
9:
10: /* functions to save byte,word or long word
11: * independent of CPU's endianess */
12:
1.1.1.5 ! root 13: extern void save_u64_func (uae_u8 **, uae_u64);
1.1 root 14: extern void save_u32_func (uae_u8 **, uae_u32);
1.1.1.5 ! root 15: extern void save_u16_func (uae_u8 **, uae_u16);
1.1 root 16: extern void save_u8_func (uae_u8 **, uae_u8);
17:
1.1.1.5 ! root 18: extern uae_u64 restore_u64_func (const uae_u8 **);
1.1.1.4 root 19: extern uae_u32 restore_u32_func (const uae_u8 **);
1.1.1.5 ! root 20: extern uae_u16 restore_u16_func (const uae_u8 **);
1.1.1.4 root 21: extern uae_u8 restore_u8_func (const uae_u8 **);
1.1 root 22:
1.1.1.4 root 23: extern void save_string_func (uae_u8 **, const char*);
24: extern char *restore_string_func (const uae_u8 **);
1.1 root 25:
1.1.1.5 ! root 26: #define save_u64(x) save_u64_func (&dst, (x))
1.1 root 27: #define save_u32(x) save_u32_func (&dst, (x))
1.1.1.3 root 28: #define save_u16(x) save_u16_func (&dst, (x))
1.1 root 29: #define save_u8(x) save_u8_func (&dst, (x))
30:
1.1.1.5 ! root 31: #define restore_u64() restore_u64_func (&src)
1.1 root 32: #define restore_u32() restore_u32_func (&src)
1.1.1.3 root 33: #define restore_u16() restore_u16_func (&src)
1.1 root 34: #define restore_u8() restore_u8_func (&src)
35:
36: #define save_string(x) save_string_func (&dst, (x))
37: #define restore_string() restore_string_func (&src)
38:
39: /* save, restore and initialize routines for Amiga's subsystems */
40:
1.1.1.4 root 41: extern const uae_u8 *restore_cpu (const uae_u8 *);
1.1.1.3 root 42: extern uae_u8 *save_cpu (int *, uae_u8 *);
1.1 root 43:
1.1.1.5 ! root 44: extern const uae_u8 *restore_fpu (const uae_u8 *);
1.1.1.3 root 45: extern uae_u8 *save_fpu (int *, uae_u8 *);
1.1 root 46:
1.1.1.4 root 47: extern const uae_u8 *restore_disk (int, const uae_u8 *);
1.1.1.3 root 48: extern uae_u8 *save_disk (int, int *, uae_u8 *);
1.1.1.4 root 49: extern const uae_u8 *restore_floppy (const uae_u8 *src);
1.1.1.3 root 50: extern uae_u8 *save_floppy (int *len, uae_u8 *);
1.1 root 51: extern void DISK_save_custom (uae_u32 *pdskpt, uae_u16 *pdsklen, uae_u16 *pdsksync, uae_u16 *pdskdatr, uae_u16 *pdskbytr);
52: extern void DISK_restore_custom (uae_u32 pdskpt, uae_u16 pdsklength, uae_u16 pdskdatr, uae_u16 pdskbytr);
53:
1.1.1.4 root 54: extern const uae_u8 *restore_custom (const uae_u8 *);
1.1.1.2 root 55: extern uae_u8 *save_custom (int *, uae_u8 *, int);
1.1 root 56:
1.1.1.4 root 57: extern const uae_u8 *restore_custom_sprite (int num, const uae_u8 *src);
1.1.1.3 root 58: extern uae_u8 *save_custom_sprite (int num, int *len);
1.1 root 59:
1.1.1.4 root 60: extern const uae_u8 *restore_custom_agacolors (const uae_u8 *src);
1.1.1.3 root 61: extern uae_u8 *save_custom_agacolors (int *len, uae_u8 *);
1.1 root 62:
1.1.1.4 root 63: extern const uae_u8 *restore_custom_blitter (const uae_u8 *src);
1.1 root 64: extern uae_u8 *save_custom_blitter (int *len);
65:
1.1.1.4 root 66: extern const uae_u8 *restore_audio (int, const uae_u8 *);
1.1.1.3 root 67: extern uae_u8 *save_audio (int, int *);
1.1 root 68:
1.1.1.4 root 69: extern const uae_u8 *restore_cia (int, const uae_u8 *);
1.1.1.3 root 70: extern uae_u8 *save_cia (int, int *, uae_u8 *);
1.1 root 71:
1.1.1.4 root 72: extern const uae_u8 *restore_expansion (const uae_u8 *);
1.1.1.3 root 73: extern uae_u8 *save_expansion (int *, uae_u8 *);
1.1 root 74:
75: extern void restore_cram (int, long);
76: extern void restore_bram (int, long);
77: extern void restore_fram (int, long);
78: extern void restore_zram (int, long);
1.1.1.5 ! root 79: extern void restore_a3000lram (int, size_t);
! 80: extern void restore_a3000hram (int, size_t);
! 81:
! 82: extern void restore_ram (size_t, uae_u8 *);
! 83:
1.1 root 84: extern uae_u8 *save_cram (int *);
85: extern uae_u8 *save_bram (int *);
86: extern uae_u8 *save_fram (int *);
87: extern uae_u8 *save_zram (int *);
1.1.1.5 ! root 88: extern uae_u8 *save_a3000lram (int *);
! 89: extern uae_u8 *save_a3000hram (int *);
1.1 root 90:
1.1.1.4 root 91: extern const uae_u8 *restore_rom (const uae_u8 *);
1.1.1.3 root 92: extern uae_u8 *save_rom (int, int *, uae_u8 *);
1.1 root 93:
1.1.1.4 root 94: extern void save_state (const char *filename, const char *description);
95: extern void restore_state (const char *filename);
1.1.1.5 ! root 96: extern void savestate_restore_finish (void);
1.1 root 97:
98: extern void custom_save_state (void);
99:
100: #define STATE_SAVE 1
101: #define STATE_RESTORE 2
102: #define STATE_DOSAVE 4
103: #define STATE_DORESTORE 8
104:
105: extern int savestate_state;
106: extern char *savestate_filename;
1.1.1.5 ! root 107: extern struct zfile *savestate_file;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.