A large commit.
[pdp8.git] / sw / kermit / k12 / k12ipl.doc
diff --git a/sw/kermit/k12/k12ipl.doc b/sw/kermit/k12/k12ipl.doc
new file mode 100644 (file)
index 0000000..b2500f9
--- /dev/null
@@ -0,0 +1,66 @@
+From: Charles Lasner <lasner@watsun.cc.columbia.edu>
+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 <SPACE>
+(000-040 octal) are ignored and may be used within the leader to make
+the file comment(s) more readable.  In some loading situations, <NUL>
+or <SPACE> 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
+<CR>/<LF> 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]