add quick dirty text document describing the CDL format for those who don't like C#
This commit is contained in:
parent
47ba6ee915
commit
4961c9e905
|
@ -0,0 +1,66 @@
|
|||
A "string" is an LEB128 encoded number which is the number of bytes
|
||||
in the string, followed by that many bytes of UTF-8 character data.
|
||||
|
||||
A "number" is a little endian 32 bit integer.
|
||||
|
||||
File format is as follows:
|
||||
|
||||
number NumberOfBlocks: number of memory areas represented in this file
|
||||
|
||||
For each block:
|
||||
|
||||
string BlockName: identifying name of the block.
|
||||
number bytelength: length of the block in bytes.
|
||||
byte data[bytelength]: one byte of information for each byte in the original block.
|
||||
|
||||
|
||||
|
||||
The BlockNames are:
|
||||
|
||||
ROM
|
||||
HUCard ROM, or syscard bios ROm
|
||||
|
||||
Cart Battery RAM
|
||||
32K of battery backed ram in the Populous cart
|
||||
|
||||
Super System Card RAM
|
||||
192K of ram in the super system card
|
||||
|
||||
TurboCD RAM
|
||||
64K of ram in the turboCD
|
||||
|
||||
BRAM
|
||||
8K of TurboCD backup RAM. The actual RAM is smaller, but the CDL will record all
|
||||
activity in that 8K region.
|
||||
|
||||
Main Memory
|
||||
8K or 32K (SGX) of main memory
|
||||
|
||||
MMIO
|
||||
8K of space in block ff, containing system IO ports.
|
||||
|
||||
UNKNOWN
|
||||
8K long area which any unknown block maps to.
|
||||
|
||||
|
||||
Each byte has 8 bits of flags on what the byte has been observed to do:
|
||||
|
||||
// was fetched as an opcode
|
||||
Code = 0x01,
|
||||
// was read or written as data
|
||||
Data = 0x02,
|
||||
// was read and used as a pointer to data via indirect addressing
|
||||
DataPtr = 0x04,
|
||||
// was read or written as stack
|
||||
Stack = 0x08,
|
||||
// was read or written as data via indirect addressing
|
||||
IndirectData = 0x10,
|
||||
// was read and used as function pointer
|
||||
// NB: there is no "IndirectCode"; all code is marked simply as code regardless of how it is reached
|
||||
FcnPtr = 0x20,
|
||||
// was used as a source (either initial or during the loop) of a block xfer
|
||||
BlockFrom = 0x40,
|
||||
// was used as a destination (either initial or during the loop) of a block xfer
|
||||
BlockTo = 0x80
|
||||
|
||||
|
Loading…
Reference in New Issue