From: Charles Lasner Subject: Initial Program Load (.IPL) format description Some of the latest KERMIT-12 binary files are encoded in a specialized format designed to allow direct memory loading without an elaborate protocol such as KERMIT. This document will describe the internal encoding of this format known as IPL, and related subjects. The Initial Program Load (.IPL) format is designed expressly for use with the IPL loading program. An error-free connection to a serving host is required as no checking or recovery is performed by the program. (The program itself is meant to be keyed in on the target PDP-8 where there is no other means of acquiring KERMIT-12.) The format is also meant to be "printable" in the same sense as ENCODE, .BOO, or uuencode files. This makes the file format more "friendly" to the host system, and allows simple editing of the file to insert comments, etc. An .IPL file starts with at least one lower-case character (not counting `) meaning any character in the range 141-177 octal. Any number of similar characters may follow immediately to create an arbitrary length leader, but the lower-case requirement must be strictly enforced. Once a non-lower-case character is encountered, it is accepted as the first data character. Data characters continue throughout the rest of the file until the next occurrence of a lower-case character which ends the loading. Any characters past this point are ignored and can be freely added as a trailing comment. Throughout the entire .IPL file, control characters and (000-040 octal) are ignored and may be used within the leader to make the file comment(s) more readable. In some loading situations, or characters may be pre-pended to the file to give the operator sufficient time to run down the hall between machines in different rooms to start the PDP-8 loading program after first starting the server. Data lines are broken every 64 characters with / to make the file more "readable" to the host system. Each data character in the body of the file represents six bits of PDP-8 data encoded in the form (value+041 octal). This causes 00 octal to be represented as ! through 77 octal to be represented as `. Data characters are taken in pairs where the first character is the upper six bits and the second is the lower six bits of a twelve bit word. Loading is implied to start at 0000 of the loading field and continues through at most 7577. The operating system generally prohibits loading into 7600-7777. This is not a problem since KERMIT-12 conforms to these limitations as a matter of design. If the loading field is 3 or greater (or possibly 2 in certain configurations) then the entire field can possibly be loaded. This is never recommended because such a file would violate loading restrictions of certain configurations. (The general rule is to never load into x7600-x7777 for any field x in the range 0-7.) The loading field itself is not contained in the file data, so it is the user's responsibility to setup the loading program parameters accordingly. File comments (in lower-case if in the leader) often contain this information to aid the user. After loading is complete, the loading program exits to the operating system. The user must save the recently loaded data as an image (.SV) file by providing explicit arguments to a SAVE command. It is recommended that the appropriate command be contained in the trailer of the .IPL file as a comment. Placement at the end of the file allows the commentary to be in upper-case, thus allowing it to be given in the exact form required by OS/8. Certain characters such as "." are required in the complete documentation of these commands which are not allowed in the leader area. The leader can contain a comment referring the user to the end of the file for the information itself. [end of file]