File Formats

From NDWiki
Revision as of 16:30, 1 August 2010 by TArntsen (talk | contribs) (NRF: Add link)
Jump to navigation Jump to search

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

The binary load format structure

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:

<physical device address>& or <physical device address>$

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.

Binary program formats

BPUN

The name BPUN comes from Binary PUNched.[1]

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.[2]

The binary load format structure

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.[3]

Start address
Restart address
First address
Last address
...
Block 0
Start of image. Block 1
... ...
End of image. Block n

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

  1. Norsk Data Document ND–30.003.007 SINTRAN III System Supervisor page 98
  2. Norsk Data Document ND–06.014.02 ND-100 REFERENCE MANUAL page 4-23
  3. Norsk Data Document ND–60.062 SINTRAN III SYSTEM DOCUMENTATION page 4-29j