|
|
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: ! 13: extern void save_u32(uae_u32 data); ! 14: extern void save_u16(uae_u16 data); ! 15: extern uae_u32 restore_u32(void); ! 16: extern uae_u16 restore_u16(void); ! 17: ! 18: /*extern void save_u64_func (uae_u8 **, uae_u64); ! 19: extern void save_u32_func (uae_u8 **, uae_u32); ! 20: extern void save_u16_func (uae_u8 **, uae_u16); ! 21: extern void save_u8_func (uae_u8 **, uae_u8); ! 22: ! 23: extern uae_u64 restore_u64_func (uae_u8 **); ! 24: extern uae_u32 restore_u32_func (uae_u8 **); ! 25: extern uae_u16 restore_u16_func (uae_u8 **); ! 26: extern uae_u8 restore_u8_func (uae_u8 **); ! 27: */ ! 28: extern void save_string_func (uae_u8 **, const TCHAR*); ! 29: extern TCHAR *restore_string_func (uae_u8 **); ! 30: ! 31: /* ! 32: #define save_u64(x) save_u64_func (&dst, (x)) ! 33: #define save_u32(x) save_u32_func (&dst, (x)) ! 34: #define save_u16(x) save_u16_func (&dst, (x)) ! 35: #define save_u8(x) save_u8_func (&dst, (x)) ! 36: ! 37: #define restore_u64() restore_u64_func (&src) ! 38: #define restore_u32() restore_u32_func (&src) ! 39: #define restore_u16() restore_u16_func (&src) ! 40: #define restore_u8() restore_u8_func (&src) ! 41: ! 42: #define save_string(x) save_string_func (&dst, (x)) ! 43: #define restore_string() restore_string_func (&src) ! 44: */ ! 45: /* save, restore and initialize routines for Amiga's subsystems */ ! 46: ! 47: extern uae_u8 *restore_cpu (uae_u8 *); ! 48: extern void restore_cpu_finish (void); ! 49: extern uae_u8 *save_cpu (int *, uae_u8 *); ! 50: extern uae_u8 *restore_cpu_extra (uae_u8 *); ! 51: extern uae_u8 *save_cpu_extra (int *, uae_u8 *); ! 52: ! 53: extern uae_u8 *restore_mmu (uae_u8 *); ! 54: extern uae_u8 *save_mmu (int *, uae_u8 *); ! 55: ! 56: extern uae_u8 *restore_fpu (uae_u8 *); ! 57: extern uae_u8 *save_fpu (int *, uae_u8 *); ! 58: ! 59: extern uae_u8 *restore_disk (int, uae_u8 *); ! 60: extern uae_u8 *save_disk (int, int *, uae_u8 *); ! 61: extern uae_u8 *restore_floppy (uae_u8 *src); ! 62: extern uae_u8 *save_floppy (int *len, uae_u8 *); ! 63: extern void DISK_save_custom (uae_u32 *pdskpt, uae_u16 *pdsklen, uae_u16 *pdsksync, uae_u16 *pdskbytr); ! 64: extern void DISK_restore_custom (uae_u32 pdskpt, uae_u16 pdsklength, uae_u16 pdskbytr); ! 65: extern void restore_disk_finish (void); ! 66: ! 67: extern uae_u8 *restore_custom (uae_u8 *); ! 68: extern uae_u8 *save_custom (int *, uae_u8 *, int); ! 69: extern uae_u8 *restore_custom_extra (uae_u8 *); ! 70: extern uae_u8 *save_custom_extra (int *, uae_u8 *); ! 71: ! 72: extern uae_u8 *restore_custom_sprite (int num, uae_u8 *src); ! 73: extern uae_u8 *save_custom_sprite (int num, int *len, uae_u8 *); ! 74: ! 75: extern uae_u8 *restore_custom_agacolors (uae_u8 *src); ! 76: extern uae_u8 *save_custom_agacolors (int *len, uae_u8 *); ! 77: ! 78: extern uae_u8 *restore_blitter (uae_u8 *src); ! 79: extern uae_u8 *save_blitter (int *len, uae_u8 *); ! 80: extern void restore_blitter_finish (void); ! 81: ! 82: extern uae_u8 *restore_audio (int, uae_u8 *); ! 83: extern uae_u8 *save_audio (int, int *, uae_u8 *); ! 84: ! 85: extern uae_u8 *restore_cia (int, uae_u8 *); ! 86: extern uae_u8 *save_cia (int, int *, uae_u8 *); ! 87: ! 88: extern uae_u8 *restore_expansion (uae_u8 *); ! 89: extern uae_u8 *save_expansion (int *, uae_u8 *); ! 90: ! 91: extern uae_u8 *restore_p96 (uae_u8 *); ! 92: extern uae_u8 *save_p96 (int *, uae_u8 *); ! 93: extern void restore_p96_finish (void); ! 94: ! 95: extern uae_u8 *restore_keyboard (uae_u8 *); ! 96: extern uae_u8 *save_keyboard (int *); ! 97: ! 98: extern uae_u8 *restore_akiko (uae_u8 *src); ! 99: extern uae_u8 *save_akiko (int *len); ! 100: extern void restore_akiko_finish (void); ! 101: ! 102: extern uae_u8 *restore_cdtv (uae_u8 *src); ! 103: extern uae_u8 *save_cdtv (int *len); ! 104: extern void restore_cdtv_finish (void); ! 105: ! 106: extern uae_u8 *restore_dmac (uae_u8 *src); ! 107: extern uae_u8 *save_dmac (int *len); ! 108: ! 109: extern uae_u8 *restore_filesys (uae_u8 *src); ! 110: extern uae_u8 *save_filesys (int num, int *len); ! 111: extern uae_u8 *restore_filesys_common (uae_u8 *src); ! 112: extern uae_u8 *save_filesys_common (int *len); ! 113: extern int save_filesys_cando(void); ! 114: ! 115: extern uae_u8 *restore_gayle(uae_u8 *src); ! 116: extern uae_u8 *save_gayle (int *len); ! 117: extern uae_u8 *restore_ide (uae_u8 *src); ! 118: extern uae_u8 *save_ide (int num, int *len); ! 119: ! 120: extern uae_u8 *save_cd (int num, int *len); ! 121: extern uae_u8 *restore_cd (int, uae_u8 *src); ! 122: ! 123: extern uae_u8 *save_configuration (int *len); ! 124: extern uae_u8 *restore_configuration (uae_u8 *src); ! 125: extern uae_u8 *save_log (int, int *len); ! 126: extern uae_u8 *restore_log (uae_u8 *src); ! 127: ! 128: extern uae_u8 *restore_input (uae_u8 *src); ! 129: extern uae_u8 *save_input (int *len, uae_u8 *dstptr); ! 130: ! 131: extern void restore_cram (int, size_t); ! 132: extern void restore_bram (int, size_t); ! 133: extern void restore_fram (int, size_t); ! 134: extern void restore_zram (int, size_t, int); ! 135: extern void restore_bootrom (int, size_t); ! 136: extern void restore_pram (int, size_t); ! 137: extern void restore_a3000lram (int, size_t); ! 138: extern void restore_a3000hram (int, size_t); ! 139: ! 140: extern void restore_ram (size_t, uae_u8*); ! 141: ! 142: extern uae_u8 *save_cram (int *); ! 143: extern uae_u8 *save_bram (int *); ! 144: extern uae_u8 *save_fram (int *); ! 145: extern uae_u8 *save_zram (int *, int); ! 146: extern uae_u8 *save_bootrom (int *); ! 147: extern uae_u8 *save_pram (int *); ! 148: extern uae_u8 *save_a3000lram (int *); ! 149: extern uae_u8 *save_a3000hram (int *); ! 150: ! 151: extern uae_u8 *restore_rom (uae_u8 *); ! 152: extern uae_u8 *save_rom (int, int *, uae_u8 *); ! 153: ! 154: extern uae_u8 *restore_action_replay (uae_u8 *); ! 155: extern uae_u8 *save_action_replay (int *, uae_u8 *); ! 156: extern uae_u8 *restore_hrtmon (uae_u8 *); ! 157: extern uae_u8 *save_hrtmon (int *, uae_u8 *); ! 158: ! 159: extern void savestate_initsave (const TCHAR *filename, int docompress, int nodialogs); ! 160: extern int save_state (const TCHAR *filename, const TCHAR *description); ! 161: extern void restore_state (const TCHAR *filename); ! 162: extern void savestate_restore_finish (void); ! 163: ! 164: extern void custom_save_state (void); ! 165: extern void custom_prepare_savestate (void); ! 166: ! 167: #define STATE_SAVE 1 ! 168: #define STATE_RESTORE 2 ! 169: #define STATE_DOSAVE 4 ! 170: #define STATE_DORESTORE 8 ! 171: #define STATE_REWIND 16 ! 172: #define STATE_DOREWIND 32 ! 173: ! 174: extern int savestate_state; ! 175: extern TCHAR savestate_fname[MAX_DPATH]; ! 176: extern struct zfile *savestate_file; ! 177: ! 178: extern void savestate_quick (int slot, int save); ! 179: ! 180: extern void savestate_capture (int); ! 181: extern void savestate_free (void); ! 182: extern void savestate_init (void); ! 183: extern void savestate_rewind (void); ! 184: extern int savestate_dorewind (int); ! 185: extern void savestate_listrewind (void); ! 186:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.