File Formats

ND100 Boot Loaders
The ND100 has bootstrap loaders for mass storage and character oriented devices. There is two load formats.
 * Binary load format.
 * Mass storage load.

Binary load format


A, B and C (all in grey) are optional.


 * A - Any characters not including ! (ASCII 33).
 * B - Octal number (any number of digits) terminated with a CR (linefeed is ignored).
 * C - Octal number (any number of digits).
 * ! - Termination character of header.
 * D - Block start address. Presented as two bytes, most significant byte first.
 * E - Word count of block F. Presented as two bytes, most significant byte first.
 * F - Binary data. Each word presented as two bytes, most significant byte first.
 * G - Checksum word. Presented as two bytes, most significant byte first. The checksum is the 16 bit arithmetic sum of all words in F.
 * H - Action code. A bit fuzzy in the manual about which of B or C is used.

Binary load is started by typing:

& or $

Loading will take place from the specified device. This device must conform with the programming specifications of either Teletype or tape reader. The device address is the lowest address associated with the device. Binary load will be performed if & or $ is written (or the LOAD button is pressed) and the switch selected ALD has bit 13 equal to "0".

If no device address precedes the & command, then the & is equivalent to pushing the LOAD button on the operator's panel.

If a checksum error is detected, "?" is typed on the console and control is returned to the operator's communication.

Note that the binary loader does not require any of the main memory.

The binary load will change the registers on level 0.

The binary load format is compatible with the format dumped by the )BPUN command in the MAC assembler.

Mass storage load
Mass storage load is started in the same way as binary format load, except that bit 13 in the device address should be a "1".

When loading from mass storage, 1K words will be read from mass storage address 0 into main memory starting in address 0. After a successful load, the CPU is started in main memory address 0.

The mass storage device must conform with either drum or disk programming specifications.

BPUN
The name BPUN comes from Binary PUNched.

The BPUN file format is what the )BPUN command in MAC creates. It is compatible with the binary load format. In practice it could be stamped on a paper strip straight from the binary file.



A, B and C (all in grey) are optional.


 * A - Any characters not including ! (ASCII 33). bit 0-6 is character, bit 8 is parity (even parity)
 * B - Octal number (any number of digits) terminated with a CR (linefeed is ignored). (even parity)
 * C - Octal number (any number of digits). (even parity)
 * ! - Termination character of header.
 * D - Block load address. Presented as two bytes, most significant byte first.
 * E - Word count of block F. Presented as two bytes, most significant byte first.
 * F - Binary data. Each word presented as two bytes, most significant byte first.
 * G - Checksum word. Presented as two bytes, most significant byte first. The checksum is the 16 bit arithmetic sum of all words in F.
 * H - Action code. If zero then the program is started on the address given in B. Followed by 126 zero bytes.

PROG
PROG is a file format for storing runnable programs. Unlike BRF or NRF, PROG is already linked to a specific memory area and most PROG wouldn't run if loaded in a different area. The first block of the file contains the relevant addresses and the subsequent blocks the binary code. Block size is 256 words.

BRF
Compilers and assemblers normally generate relocatable code. The relocatable code format used on ND-100 computers is called BRF (Binary Relocatable Format). Function calls, data references etc. are coded as symbols. The BRF-Linker (or, for RT programs, the RT Loader) resolves the symbols to actual values during the linking stage.

NRF
The relocatable format for ND-500(0) is called NRF (ND Relocatable Format).

References and sources

 * eMag Solutions, a company offering conversion from ND disk formats.