EMMA 02

XML CODE

  • Home
  • Download
  • Change Log
  • Help
  • Compilation
    • Windows
    • OS X
    • Ubuntu
    • Fedora
    • openSUSE
  • Forums
  • Tape Conversion
  • Machine Code
    • SYSTEM00
    • CDP1801
    • CDP1802
    • CDP1804
    • CDP1805
    • Differences
  • Pseudo Code
    • AMVBAS
    • AM4KBAS
    • CARDTRAN
    • Chip-8, 8X, ETI-660 & Elf
    • FEL-1
    • FPA-1
    • FPL-2
    • FPL-4
    • GPL-2
    • GPL-3
    • GPL-4
    • GPL-A (2K RAM)
    • GPL-A (2K ROM)
    • ST2
    • ST4
    • STK
    • Test-Word
    • Super-chip
  • XML Code
    • Main Elements
    • I/O
    • System
    • A/D Convertor
    • BASIC
    • Batch wav
    • Bootstrap
    • Cassette
    • CD4536B
    • CDP1851
    • CDP1852
    • CDP1854
    • CDP1855
    • CDP1877
    • CDP1878
    • CDP1879
    • Debugger
    • COMX Diagnostic
    • Dip switch
    • Disk
    • EF Buttons
    • Flip Flop
    • Front Panel
    • GUI
    • HEX Modem
    • I/O Group
    • Keyboard
    • Keyfile
    • Locations
    • Memory
    • MM57109
    • Printer
    • RTC
    • Sound
    • Splash
    • USB
    • Video
    • Videodump
    • vt
    • X Modem
  • BASIC
    • General Information
    • COMX BASIC V1.00
    • Floating Point BASIC 2.2
    • Pecom 32 BASIC
    • Pecom 64 BASIC 1.0 & 4.0
    • Quest Super BASIC 1.4
    • Quest Super BASIC 3.0
    • Quest Super BASIC 5.0
    • Quest Super BASIC 6.0
    • RCA BASIC3 V1.1
    • Telmac SBASIC v24.3
    • Error Messages
  • Computer List

 

 

 

 

 

 

 

 

 

 

 

 

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.

The following COMX Diagnostic ROM files are available in the Emma 02 archive:

  • diag_pal1.bin, diag_pal2_v1.1.bin, PAL version with ROM check for comx35.1.1.bin
  • diag_pal1.bin, diag_pal2.bin, PAL version with ROM check for the original COMX BASIC ROM (comx35.bin).
  • diag_ntsc1.bin, diag_ntsc2_v1.1.bin, NTSC version with ROM check for comx35.1.1.bin
  • diag_ntsc1.bin, diag_ntsc2.bin, NTSC version with ROM check for the original COMX BASIC ROM (comx35.bin).
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.