Element: memory
Memory map definition. The mask attribute is used to repeat the complete mempory map in other locations using the specified mask. E.g., mask="0xfff" will repeat the specified memory map every 8K.
The mask attributes is common for most child elements within memory (as indicated in the table). This is used to repeat memory segments to other locations. Mask should always be smaller than the segment size. E.g., mask="0x3ff" will repeat the memory segment every 1K. When specifying mask=0, or when not specified, no mask will be used. For masking memory sections of multiple memory segments use the mask on <memory> level.
child element | attribute | value | description |
---|---|---|---|
diagrom | type | child elements | COMX Diagnostic ROM memory segment definition used from 0-0xFFF replacing the COMX system ROM when active. Attribute type="on" will activate the diagnostic ROM on starup. |
copy | end, slot, start | address (16 bit) | Copy (or map) part of a memory segment to specified address. The location of the memory segment is defined by attributes start/end and attibute slot can optionally indicate from which memory slot. |
ems | type | child elements | EMS (extended memory system) segment definition. Atttibute type indicates RAM, ROM or multicart (for the Studio II clones). |
giant | address (16 bit) | Gaint board base memory segment definition. The address value defines the base address, the giant board ROM is mapped evrey 256 bytes starting at the base address. Note this overwrites all other memory options for the specified location. | |
mapper | mask | child elements | Memory mapper segment definition using a port extender, only one definition is supported. Attribute mask defines the size of the segment in main memory (i.e., 0xFFFF would use 8K in main memory). Size of the mapper is max 256 times the mask size. |
nvram | cart, mask, type | child elements | NVRAM memory segment definition. Attribute type="gui" will link the memory segment to a GUI NVRAM field (only 2 memomory segments can be linked to the 2 GUI ROM, RAM or NVRAM fields.). Attribute cart (st2 or ch8) defines if a memory file specified in child element filename, is binary (no cart specified), Studio II (st2) or Chip 8 (ch8). Attribute default="off" will disable the NVRAM battery on startup. |
ram | cart, mask, type | child elements | RAM memory segment definition. Attribute type="gui" will link the memory segment to a GUI RAM field (only 2 memomory segments can be linked to the 2 GUI ROM, RAM or NVRAM fields.). Attribute cart (st2 or ch8) defines if a memory file specified in child element filename, is binary (no cart specified), Studio II (st2) or Chip 8 (ch8). |
rampart | end, start | Define a small RAM memory segment. The location of the memory segment is defined by attributes start/end. Any start or end address is allowed - all other memory segment options are always mutliple page lengths. | |
slot | max | child elements | Slot memory segment definition. Attribute max specifies the maximum number of slots used. |
rom | cart, mask, type | child elements | ROM memory segment definition. Attribute type="gui" will link the memory segment to a GUI ROM field (only 2 memomory segments can be linked to the 2 GUI ROM, RAM or NVRAM fields.). Attribute cart (st2 or ch8) defines if a memory file specified in child element filename, is binary (no cart specified), Studio II (st2) or Chip 8 (ch8). |
Element: rom/diagrom/ram/nvram
ROM, COMX Diagnostic ROM, RAM, NVRAM Memory segment definition.
child element | attribute | value | description |
---|---|---|---|
dirname | directory name (text) | Location of the memory file; defined as sub-dir of the main Emma 02 data directory. If not specified the dirname specified in 'system' will be used (see also XML - system | |
end | address (16 bit) | End address of the memory segment. Lower byte of the end address should alwyas be 0xFF. | |
dump | file name (text) | Memory dump file (filename) which is used to save or load a NVRAM memory segment content. | |
filename | file name (text) | Memory file (filename) which is loaded on startup starting at memory segment start address (or at location specified in the file, e.g., when using intel hex format). | |
load_offset | address | address (16 bit) | Offset for loading Chip 8 software, the offset specified as address value will be used after loading data at attribute address. E.g,. <load_offset address="0x800">0x400</load_offset> will add 0x400 to the loading location when address 0x800 is reached. |
pulldown | mask, exclude, exclude1, exclude 2 | directory name (text) | Location of memory files to be shown in the GUI ROM, RAM or NVRAM fields. Attribute mask defines condition the files need to comply to e.g., *.ch8 will show all ch8 files in the selected folder location. Attributes exclude or exclude1/exclude 2 specify strings files should not include. |
map | address(es) 16 bit | A list of addres values, separated by commas, to which the memory segment should be mapped to. | |
mp | child elements, switch | Memory protect definition, switch will follow the MP switch on the front panel. If not used, child elements should define in and iogroup. | |
start | address (16 bit) | Start address of the memory segment. Lower byte of the start address should alwyas be 0. |
Element: mp
Memory protect definition.
child element | attribute | value | description |
---|---|---|---|
in | mask, q | port (1 to 7) | Memory protect input port definition. For details about attribute and value usage see XML - I/O |
iogroup | group number (8 bit) | Memory protect iogroup definition. For details about value usage see XML - I/O |
Element: ems
EMS (extended memory system) segment definition. Atttibute type indicates RAM, ROM or multicart (for the Studio II clones).
child element | attribute | value | description |
---|---|---|---|
dirname | directory name (text) | Location of the EMS memory file; defined as sub-dir of the main Emma 02 data directory. If not specified the dirname specified in 'system' will be used (see also XML - system | |
end | address (16 bit) | End address of the memory segment. Lower byte of the end address should alwyas be 0xFF. | |
filename | file name (text) | EMS memory file (filename) which is loaded on startup starting at memory segment start address (or at location specified in the file, e.g., when using intel hex format). | |
iogroup | group number (8 bit) | EMS iogroup definition. For details about value usage see XML - I/O | |
out | mask, q | port (1 to 7), address (16 bit) or start-end (both 16 bit) | EMS output port, address or address range definition used to switch page. Attribute mask is used to define the number of pages, i.e., mask="0x1f" will be define 32 pages (0 to 31). When specifying mask=0 or leaving it out mask will be defined as 0xff. When specifying one digit in range 0 to 7 an ouptut port (0-7) will be defined for switching the page. When specifying a hex value (e.g. 0xF000) the specified address will be defined for switching the page. When specifying a range (0xF000-0xF100) all addresses in the range will be defined for switching the page. For details about attribute and value usage see XML - I/O |
range | start-end (both 16 bit) | Start to end address of the memory segment. Lower byte of the start address should always be 0, lower byte of the end address should alwyas be 0xFF. | |
start | address (16 bit) | Start address of the memory segment. Lower byte of the start address should alwyas be 0. |
Element: mapper
Memory mapper segment definition using a port extender, only one definition is supported. Attribute mask defines the size of the segment in main memory (i.e., 0xFFFF would use 8K in main memory). Size of the mapper is max 256 times the mask size.
child element | attribute | value | description |
---|---|---|---|
end | address (16 bit) | End address of the memory segment. Lower byte of the end address should alwyas be 0xFF. | |
in | mask, q, | port (1 to 7) | Memory mapper input port used to read the selected extended port. For details about attribute and value usage see XML - I/O |
iogroup | group number (8 bit) | Memory mapper iogroup definition. For details about value usage see XML - I/O | |
out | mask, q, select, write | port (1 to 7) | Memory mapper output port. Attribute select defines the port number to select an extended port. Attribute write defines port number to write to the selected extended port. For details about attribute and value usage see XML - I/O |
range | start-end (both 16 bit) | Start to end address of the memory segment. Lower byte of the start address should always be 0, lower byte of the end address should alwyas be 0xFF. | |
start | address (16 bit) | Start address of the memory segment. Lower byte of the start address should alwyas be 0. |
Element: slot
Slot memory segment definition. Attribute max specifies the maximum number of slots used.
child element | attribute | value | description |
---|---|---|---|
bank | max, slot | Defines specified slot as a memory bank segment definition. Attribute max specifies the maximum number of banks used. | |
bankshift | mask, type | shifts | Defines the number of shift steps that should be executed on the bank output value. The mask attribute defines the mask to be used and type specifies a bit or number definition. |
end | address (16 bit) | End address of the memory segment. Lower byte of the end address should alwyas be 0xFF. | |
iogroup | Iogroup definition, this will force iogroup output to be the same as the slot output. For details about value usage see XML - I/O | ||
out | mask, q | port (1 to 7) | Slot output port. For details about attribute and value usage see XML - I/O |
ram | slot | child elements | Defines specified slot as RAM. |
rom | slot | child elements | Defines specified slot as ROM. |
slotshift | type | shifts | Defines the number of shift steps that should be executed on the slot output value. The type attribute specifies a bit or number definition. |
start | address (16 bit) | Start address of the memory segment. Lower byte of the start address should alwyas be 0. |
Element: bank
Bank memory segment definition. Attribute max specifies the maximum number of slots used.
child element | attribute | value | description |
---|---|---|---|
out | mask, q | port (1 to 7) | Bank output port. For details about attribute and value usage see XML - I/O |
ram | bank | child elements | Defines specified bank as ROM. |
rom | bank | child elements | Defines specified bank as RAM. |
Element: rom/ram
ROM or RAM definition details for slot and bank definitions.
child element | attribute | value | description |
---|---|---|---|
dirname | directory name (text) | Location of the memory file; defined as sub-dir of the main Emma 02 data directory. If not specified the dirname specified in 'system' will be used (see also XML - system | |
filename | file name (text) | Memory file (filename) which is loaded on startup starting at memory segment start address (or at location specified in the file, e.g., when using intel hex format). | |
ramend | number | address (16 bit) | RAM end address within the slot (not used in bank definition). Number indicated the rampart number which can be 0 to 3. |
ramstart | number | address (16 bit) | RAM start address within the slot (not used in bank definition).. Number indicated the rampart number which can be 0 to 3. |