File Formats: Difference between revisions

From NDWiki
Jump to navigation Jump to search
(Added speciication for PROG file format)
m (Link to BPUN main article)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== ND100 Boot Loaders ==
== ND-100 Boot Loaders ==
The ND100  has bootstrap loaders for mass storage and character oriented devices. There is two load formats.
The [[ND-100]] has bootstrap loaders for mass storage and character oriented devices. There are two load formats.
* Binary load format.
* Binary load format.
* Mass storage load.
* Mass storage load.
Line 57: Line 57:


=== BPUN ===
=== BPUN ===
(Main article: [[BPUN File Format]]


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.
The name BPUN comes from '''B'''inary '''PUN'''ched.<ref>{{ND-doc|30.003.007|page 98}}</ref>
Ref. 06.014.02 ND-100 REFERENCE MANUAL, page 4-23.
 
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.<ref>{{ND-doc|06.014.02|page 4-23}}</ref>


[[Image:ND-100-binloadformat.svg | The binary load format structure]]
[[Image:ND-100-binloadformat.svg | The binary load format structure]]
Line 76: Line 78:


=== PROG ===
=== PROG ===
(Main article: [[PROG File Format]]
'''PROG''' is a file format for storing runnable programs. Unlike [[#BRF|BRF]] or [[#NRF|NRF]], PROG is already linked to a specific memory area and most PROG wouldn't run if loaded in a different area.
'''PROG''' is a file format for storing runnable programs. Unlike [[#BRF|BRF]] or [[#NRF|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.<ref>{{ND-doc|60.062|page 4-29j}}</ref>
The first block of the file contains the relevant addresses and the subsequent blocks the binary code. Block size is 256 words.<ref>{{ND-doc|60.062|page 4-29j}}</ref>
Line 95: Line 99:


=== BRF ===
=== 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|BRF-Linker]] (or, for [[RT Program|RT programs]], the [[RT Loader]]) resolves the symbols
to actual values during the linking stage.


=== NRF ===
=== NRF ===


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


==References and sources==
==References and sources==
<references/>
<references/>
* [http://www.intermedia.uk.com/disklist.htm eMag Solutions], a company offering conversion from ND disk formats.
[[Category:Glossary]]

Latest revision as of 13:03, 21 April 2019

ND-100 Boot Loaders

The ND-100 has bootstrap loaders for mass storage and character oriented devices. There are 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

(Main article: BPUN File Format

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

(Main article: PROG File Format

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