A large commit.
[pdp8.git] / sw / kermit / k12 / k12ipl.doc
CommitLineData
81e70d48
PH
1From: Charles Lasner <lasner@watsun.cc.columbia.edu>
2Subject: Initial Program Load (.IPL) format description
3
4 Some of the latest KERMIT-12 binary files are encoded in a
5specialized format designed to allow direct memory loading without an
6elaborate protocol such as KERMIT. This document will describe the
7internal encoding of this format known as IPL, and related subjects.
8
9 The Initial Program Load (.IPL) format is designed expressly for
10use with the IPL loading program. An error-free connection to a
11serving host is required as no checking or recovery is performed by
12the program. (The program itself is meant to be keyed in on the
13target PDP-8 where there is no other means of acquiring KERMIT-12.)
14The format is also meant to be "printable" in the same sense as
15ENCODE, .BOO, or uuencode files. This makes the file format more
16"friendly" to the host system, and allows simple editing of the file
17to insert comments, etc.
18
19 An .IPL file starts with at least one lower-case character (not
20counting `) meaning any character in the range 141-177 octal. Any number
21of similar characters may follow immediately to create an arbitrary length
22leader, but the lower-case requirement must be strictly enforced. Once a
23non-lower-case character is encountered, it is accepted as the first data
24character. Data characters continue throughout the rest of the file until
25the next occurrence of a lower-case character which ends the loading. Any
26characters past this point are ignored and can be freely added as a
27trailing comment.
28
29 Throughout the entire .IPL file, control characters and <SPACE>
30(000-040 octal) are ignored and may be used within the leader to make
31the file comment(s) more readable. In some loading situations, <NUL>
32or <SPACE> characters may be pre-pended to the file to give the
33operator sufficient time to run down the hall between machines in
34different rooms to start the PDP-8 loading program after first
35starting the server. Data lines are broken every 64 characters with
36<CR>/<LF> to make the file more "readable" to the host system.
37
38 Each data character in the body of the file represents six bits of
39PDP-8 data encoded in the form (value+041 octal). This causes 00 octal to
40be represented as ! through 77 octal to be represented as `. Data
41characters are taken in pairs where the first character is the upper six
42bits and the second is the lower six bits of a twelve bit word. Loading is
43implied to start at 0000 of the loading field and continues through at most
447577. The operating system generally prohibits loading into 7600-7777.
45This is not a problem since KERMIT-12 conforms to these limitations as a
46matter of design. If the loading field is 3 or greater (or possibly 2 in
47certain configurations) then the entire field can possibly be loaded. This
48is never recommended because such a file would violate loading restrictions
49of certain configurations. (The general rule is to never load into
50x7600-x7777 for any field x in the range 0-7.)
51
52 The loading field itself is not contained in the file data, so it is
53the user's responsibility to setup the loading program parameters
54accordingly. File comments (in lower-case if in the leader) often contain
55this information to aid the user. After loading is complete, the loading
56program exits to the operating system. The user must save the recently
57loaded data as an image (.SV) file by providing explicit arguments to a
58SAVE command. It is recommended that the appropriate command be contained
59in the trailer of the .IPL file as a comment. Placement at the end of the
60file allows the commentary to be in upper-case, thus allowing it to be
61given in the exact form required by OS/8. Certain characters such as "."
62are required in the complete documentation of these commands which are not
63allowed in the leader area. The leader can contain a comment referring the
64user to the end of the file for the information itself.
65
66[end of file]