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