NOTE: The selected Multiface ROM is not saved in the snapshot.
== INFO Chunk ==
This chunk is written by No$CPC. It contains an 8-bit ASCII string with the version information for No$CPC.
== MEM0-8 Chunk ==
The MEM0-8 chunks contain at most 64KB of data. The data may be compressed or stored uncompressed. If the size is exactly 65536 bytes the data is uncompressed, otherwise it is compressed. Up to 512KB additional RAM can be stored in a snapshot.
6. ACE can save additional memory in snapshots (up to 4MB) using the MX?? chunks.
== MX09-40 Chunk ==
This chunk is supported by ACE.
Information are stored compressed like in MEM0-8 chunks.
== BRKC Chunk == This chunk is written by ACE when some breakpoints are set. When loading a snapshot, the breakpoints found in this chunk are added to the one already installed.The number of stored breakpoints in the chunk is given by the chunk size divided by 216 (the size on one breakpoint data structure). {||-| ''Offset (Hex)''| ''Length''| ''Description''|-| 00| 1| Breakpoint type (0:Execution, 1:Memory, 2:I/O port)|-| 01| 1| Memory access mode (0:R/W, 1:R/O, 2:W/O)|-| 02| 1| Breakpoint runtime mode (0:Break, 1:Watch)|-| 03| 1| Breakpoint map type (note 2)|-| 04| 2| Breakable memory/port (MSB first)|-| 06| 2| Breakable memory/port mask (MSB first)|-| 08| 1| Match value|-| 09| 1| Match value mask|-| 0A| 2| Breakable memory size (MSB first)|-| 0C| 4| Breakpoint activation step (MSB first)|-| 10| 128| Breakpoint condition to match (NULL terminated string) (note 1)|-| 90| 64| Breakpoint user name (NULL terminated string)|-| D0| 1| Breakpoint map bank (note 2)|-| D1| 1| Breakpoint map page (note 2)|-| D2| 6| Reserved|-| D8| ...| Same sequence repeated for each breakpoint|} ===Notes=== 1. The condition is expressed using ACE syntax (similar to BASIC with AND/OR/XOR/NOT/+/-/=...).Allowed additional syntaxes are:*&, # or 0x for a hexadecimal number.*% or &x for a binary number.*AF, BC, HL, IX... for a 16-bit Z80 register.*A, B, D, IXh, IXl... for an 8-bit Z80 register.*FlagC, FlagNC, FlagM... for a Z80 flag.*LineCount for the line number.*LineCycle for the µs count on the current line.*MemPage for the 64K expansion memory page (0-63).*MemBankMode for the 16K expansion memory bank paging mode (0-7).*UpperROMOn for the paging state of the upper ROM.*UpperROMNum for the selected upper ROM number.*LowerROMOn for the paging state of the lower ROM.*LowerROMNum for the selected lower ROM number.*ASICPageOn for the paging state of the I/O ASIC registers page. ''Example : FlagC AND (HL=DE OR HL=&5000)'' 2. The map type determines the memory layout for which the breakpoint is valid.The meaning of the values for map bank and map page depends on the map type value.Possible values fir map type are:* 0: Undefined. Map bank and page are ignored (always 0).* 1: Main RAM. If map bank is 0, then linear main RAM is considered. If map bank is 1, then main RAM from &c000-&ffff mapped as &4000-&7fff is considered. Map page is ignored (always 0). * 2: Extension RAM. Map bank is the 16K extension bank number (0-3). Map page is the 64K extension page number (0-31).* 3: Extension ROM. Map bank is the ROM slot id (0-255). Map page is ignored (always 0).* 4: Firmware ROM. Map bank and page are ignored (always 0).* 5: Cartridge ROM. Map bank is the 16K ROM bank number (0-31). Map page is ignored (always 0).* 6: ASIC I/O Page. Map bank and page are ignored (always 0). == SYMB Chunk == This chunk is written by ACE when some symbols are declared. When loading a snapshot, the symbols found in this chunk are added to the alreading existing ones. {||-| ''Offset (Hex)''| ''Length''| ''Description''|-| 00| 1| Length on the symbol name (n). 0 is an invalid value.|-| 01| n| Symbol name (note 1).|-| n+1| 1| Symbol memory map type (note 2).|-| n+2| 1| Symbol memory map bank (note 2).|-| n+3| 1| Symbol memory map page (note 2).|-| n+4| 2| Reserved for future usage, always 0 for now.|-| n+6| 1| Symbol type (0: absolute, 1: relative).|-| n+7| 2| Address of the symbol (MSB first).|-| ...| Same sequence repeated until the end of the chunk is reached.|} ===Notes=== 1. Symbol are (obviously) limited to 255 characters, cannot begin with a number (0-9), and only a limited set of ASCII char is allowed (a-z, A-Z, 0-9, _).2. The map type determines the memory layout for which the symbol is valid. The meaning of the values for map bank and map page depends on the map type value.Possible values fir map type are:* 0: Undefined. Map bank and page are ignored (always 0).* 1: Main RAM. If map bank is 0, then linear main RAM is considered. If map bank is 1, then main RAM from &c000-&ffff mapped as &4000-&7fff is considered. Map page is ignored (always 0). * 2: Extension RAM. Map bank is the 16K extension bank number (0-3). Map page is the 64K extension page number (0-31).* 3: Extension ROM. Map bank is the ROM slot id (0-255). Map page is ignored (always 0).* 4: Firmware ROM. Map bank and page are ignored (always 0).* 5: Cartridge ROM. Map bank is the 16K ROM bank number (0-31). Map page is ignored (always 0).* 6: ASIC I/O Page. Map bank and page are ignored (always 0). == CPC+ Chunk ==
This chunk is supported by Arnold, Winape, No$CPC and ACE. Arnold, Winape and ACE will save the block when Plus configuration enabled. No$CPC will save the block if the Plus features have been unlocked.
|}
== BRKC == This chunk is written by ACE when some breakpoints are set. When loading a snapshot, the breakpoints found in this chunk are added to the one already installed.The number of stored breakpoints in the chunk is given by the chunk size divided by 216 (the size on one breakpoint data structure). {||-| ''Offset (Hex)''| ''Length''| ''Description''|-| 00| 1| Breakpoint type (0:Execution, 1:Memory, 2:I/O port)|-| 01| 1| Memory access mode (0:R/W, 1:R/O, 2:W/O)|-| 02| 1| Breakpoint runtime mode (0:Break, 1:Watch)|-| 03| 1| Breakpoint map type (note 2)|-| 04| 2| Breakable memory/port (MSB first)|-| 06| 2| Breakable memory/port mask (MSB first)|-| 08| 1| Match value|-| 09| 1| Match value mask|-| 0A| 2| Breakable memory size (MSB first)|-| 0C| 4| Breakpoint activation step (MSB first)|-| 10| 128| Breakpoint condition to match (NULL terminated string) (note 1)|-| 90| 64| Breakpoint user name (NULL terminated string)|-| D0| 1| Breakpoint map bank (note 2)|-| D1| 1| Breakpoint map page (note 2)|-| D2| 6| Reserved|-| D8| ...| Same sequence repeated for each breakpoint|} ===Notes=== 1. The condition is expressed using ACE syntax (similar to BASIC with AND/OR/XOR/NOT/+/-/=...).Allowed additional syntaxes are:*&, # or 0x for a hexadecimal number.*% or &x for a binary number.*AF, BC, HL, IX... for a 16-bit Z80 register.*A, B, D, IXh, IXl... for an 8-bit Z80 register.*FlagC, FlagNC, FlagM... for a Z80 flag.*LineCount for the line number.*LineCycle for the µs count on the current line.*MemPage for the 64K expansion memory page (0-63).*MemBankMode for the 16K expansion memory bank paging mode (0-7).*UpperROMOn for the paging state of the upper ROM.*UpperROMNum for the selected upper ROM number.*LowerROMOn for the paging state of the lower ROM.*LowerROMNum for the selected lower ROM number.*ASICPageOn for the paging state of the I/O ASIC registers page. ''Example : FlagC AND (HL=DE OR HL=&5000)'' 2. The map type determines the memory layout for which the breakpoint is valid.The meaning of the values for map bank and map page depends on the map type value.Possible values fir map type are:* 0: Undefined. Map bank and page are ignored (always 0).* 1: Main RAM. If map bank is 0, then linear main RAM is considered. If map bank is 1, then main RAM from &c000-&ffff mapped as &4000-&7fff is considered. Map page is ignored (always 0). * 2: Extension RAM. Map bank is the 16K extension bank number (0-3). Map page is the 64K extension page number (0-31).* 3: Extension ROM. Map bank is the ROM slot id (0-255). Map page is ignored (always 0).* 4: Firmware ROM. Map bank and page are ignored (always 0).* 5: Cartridge ROM. Map bank is the 16K ROM bank number (0-31). Map page is ignored (always 0).* 6: ASIC I/O Page. Map bank and page are ignored (always 0). == SYMB == This chunk is written by ACE when some symbols are declared. When loading a snapshot, the symbols found in this chunk are added to the alreading existing ones. {||-| ''Offset (Hex)''| ''Length''| ''Description''|-| 00| 1| Length on the symbol name (n). 0 is an invalid value.|-| 01| n| Symbol name (note 1).|-| n+1| 1| Symbol memory map type (note 2).|-| n+2| 1| Symbol memory map bank (note 2).|-| n+3| 1| Symbol memory map page (note 2).|-| n+4| 2| Reserved for future usage, always 0 for now.|-| n+6| 1| Symbol type (0: absolute, 1: relative).|-| n+7| 2| Address of the symbol (MSB first).|-| ...| Same sequence repeated until the end of the chunk is reached.|} ===Notes=== 1. Symbol are (obviously) limited to 255 characters, cannot begin with a number (0-9), and only a limited set of ASCII char is allowed (a-z, A-Z, 0-9, _).2. The map type determines the memory layout for which the symbol is valid. The meaning of the values for map bank and map page depends on the map type value.Possible values fir map type are:* 0: Undefined. Map bank and page are ignored (always 0).* 1: Main RAM. If map bank is 0, then linear main RAM is considered. If map bank is 1, then main RAM from &c000-&ffff mapped as &4000-&7fff is considered. Map page is ignored (always 0). * 2: Extension RAM. Map bank is the 16K extension bank number (0-3). Map page is the 64K extension page number (0-31).* 3: Extension ROM. Map bank is the ROM slot id (0-255). Map page is ignored (always 0).* 4: Firmware ROM. Map bank and page are ignored (always 0).* 5: Cartridge ROM. Map bank is the 16K ROM bank number (0-31). Map page is ignored (always 0).* 6: ASIC I/O Page. Map bank and page are ignored (always 0). == BRKS Chunk ==
This chunk is written by WinAPE when some breakpoints are set.
* 2 bytes: condition (?)
== WABP Chunk ==
This chunk is written by WinAPE when some breakpoints are set.
4 bytes condition string length, followed by condition string (not null terminated)
== DARS Chunk ==
This chunk is written by WinAPE when some data areas are set.
|}
===Notes===
1. Winape's addressing scheme is 4 bytes. The upper 16-bits effectively define the internal 64KB pages it uses.
== REMU == This chunk is written RASM and contains information about symbols and breakpoints.ACE will import informations from this chunk but won't write it (SYMB and BRKC are used instead). == RM00-FF Chunk ==
This chunk was introduced by RASM and is supported by ACE; it is saved only when the related option is enabled.
The compression scheme is identical to the one from MEM0-7 chunks.
== LOWR Chunk ==
This chunk was introduced by RASM and is supported by ACE; it is saved only when the related option is enabled.
It is similar to the RM00-FF chunks but stored the internal firmware ROM contents.
== BASR Chunk ==
This chunk is supported by ACE; it is saved only when the related option is enabled.
It is similar to the RM00-FF chunks but stored the internal Basic ROM contents.
== DOSR Chunk ==
This chunk is supported by ACE; it is saved only when the related option is enabled.
It is similar to the RM00-FF chunks but stored the internal AMSDOS ROM contents.
== CART Chunk ==
This chunk is supported by ACE; it is saved only when the related option is enabled.
|}
== PLUG Chunk ==
This chunk is supported by ACE; it is saved only when the related option is enabled.
The names stored are the actual names of the plugins libraries (e.g. "multiface2.acepansion").
== REMU Chunk == This chunk is written RASM and contains information about symbols and breakpoints.ACE will import informations from this chunk but won't write it (SYMB and BRKC are used instead). =Links=
[[Snapshot Archive]]
[[Category:Programming]]