formats index
	*** Power 64 RAM Snapshot File (C64 emulator on Apple Power Macintosh)

** Document revision 1.1

  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

ÿ