*** Power 64 RAM Snapshot File (C64 emulator on Apple Power Macintosh) *** Document revision: 1.2 *** Last updated: March 11, 2004 *** Contributors/sources: Peter Weighill These files, similar in nature to PC64's .C64 files, are a complete memory dump of the 64K RAM, color RAM, and all I/O ports and CPU registers. Presently, this format is supported by the Power64 emulator and may be added to future versions of the VICE emulator. The file size is 69888 bytes. The format for RAM Snapshots was adapted from a suggestion by Jouko Valta for the Vice Emulator on Unix systems. * Note: All multi-byte values are stored in big-endian format (high/low) rather than in the little-endian format (low/high) used by the C64, since the Macintosh stores values this way. No sample memory dump is available. Byte: $00000-00005: Magic Header (at present $43, $42, $4D, $64, $00, $00) or "CBM",$64,$00,$00 00006-00007: Reserved (should be $00, $00) 00008-00009: Version major and minor ($01, $00, or 1.0) 0000A: Emulator snapshot ID (Power64 is $2F) 0000B: Snapshot type (presently $00) 0000C-0000D: Offset in bytes (high/low), to RAM image in snapshot. The header size is presently 256 bytes, so the values are $01, $00. 0000E-0000F: RAM image size (in Kbytes, presently $00, $40, or 64 Kbytes) 00010-00011: REU RAM image size (in Kbytes, presently $00, $00) 00012-0001F: Reserved (should be $00, $00) 00020-00025: Configuration bit masks (presently all $00) 00026: I/O RAM size (Power64 value $01) Bit 0: I/O data available (0 = no) 1 and 2: Video Display Controller RAM 00 = none 01 = 16 Kb 10 = 64 Kb 11 = 32 Kb) 00027: CPU's available (Power64 value $01) Bit 0: 6502 1: Z80 2: REC 00028-00029: 6502 program counter (high/low) 0002A-0002C: A, X and Y CPU registers 0002D: 6502 flags register 0002E: 6502 stack pointer (SP) 0002F: 6502 I/O port 00030-0003F: Z80 registers (not used yet, should be $00) 00040-0004F: REC registers (not used yet, should be $00) 00050: C64 kernal ID byte (not used yet) 00051: Kernal patch ID for fastloaders, etc. (not used yet) 00052-00053: Kernal patch version ID (not used) 00054-0007F: Kernal version information (not used yet) 00080-000FF: Miscellaneous info on peripherals (not used yet) 00100-100FF: 64Kb RAM area (size depends on value in 0000E-0000F) 10100-110FF: Contents of the C64 I/O area |