Bootstrapping:

Getting MS-DOS Kermit onto an MS-DOS system initially when you don't have a
diskette to read it from, but you do have it on line on another computer...  is
called "bootstrapping."  The method used with MS-DOS Kermit is to download
(somehow) a version of the appropriate .EXE (executable binary) file that has
been encoded in all printable characters by the MSBMKB.C program.  Such a file
is called a "BOO file".  The result is then decoded on the PC using a short
Basic (or C, or Pascal) program.

 MSBMKB.C     The "BOO File Maker" (runs on MS-DOS Systems with Lattice C)
 MSBOOT.FOR   The mainframe side of a BOO-file downloader (in Fortran)
 MSBPCB.BAS   The PC side of the BOO-file downloader (in Microsoft Basic)
 MSBPCT.BAS   Like MSBPCB.BAS, but assumes the BOO file is already downloaded
 MSBPCT.C     Like MSBPCT.BAS, but written in C for speed
 MSBPCT.BOO   BOO file formed from MSBPCT.EXE based on MSBPCT.C
 MSBPCT.PAS   A Pascal version of MSBPCT
 MSBRB1.BAS   Like MSBPCB.BAS, but runs under Rainbow CP/M-86 Basic
 MSV*.BOO     The BOO files for each version of MS-DOS Kermit, e.g. MSVIBM.BOO.

The bootstrapping procedure is described in detail in the MS-DOS chapter of
the Kermit User Guide.

Briefly, here's what to do (assuming you already have some method of
downloading files onto your PC, and you have BASIC):

1. Get MSBPCT.BAS
2. Get MSBPCT.BOO
3. Enter BASIC, load MSBPCT.BAS, and run it on MSBPCT.BOO.
4. There should be a program MSBPCT.EXE on your disk.
5. Run MSBPCT on the MSVxxx.BOO file for you system, e.g. "msbpct msvibm.boo".
6. You should now have MSVIBM.EXE on your disk.  You can rename it to
   KERMIT.EXE if you want to (or even K.EXE).

------------------------------

Date: Mon, 21 Jul 86  21:07:57 EDT
From: "Roger Fajman" <RAF@NIHCU>
Subject: BOO File Problems

I figured out some problems that I encountered with BOO files and the IBM
PC.  There were two:

(1) If you use the PUNCH command of KERMSRV@CUVMA on BITNET, the file comes
with trailing blanks, which will cause the EXE file generated to be
incorrect.  The BOO format doesn't use blanks, so trailing blanks can be
safely stripped before the file is processed.  However, MSBPCT.BAS does not
do this, so you had better.

[Ed. - The MSBPCB and MSBPCT programs should indeed strip trailing blanks.]

(2) When getting BOO files through BITNET, take care with your EBCDIC-ASCII
translations.  Ours is the same as Columbia's, except for curly braces.
Most BOO files don't have curly braces, but MSBPCT.BOO (the C version of the
IBM PC BOO file decoder) does have a curly brace in it that represents a
count of NULs.

BOO files don't contain any kind of internal consistency check, such as a
byte count and/or checksum, so problems such as these just give you EXE
files that don't work.

[Ed. - It would have been nice to include consistency checks in .BOO files,
but since checksums or CRCs are based on the numeric, internal
representation of the characters, you get into trouble when going between
ASCII and EBCDIC systems.  Actually, when you use the MSBOOT.FOR/MSBPCB.BAS
pair, there is a minimal kind of consistency check -- the length of each
line is transmitted along with the line by MSBOOT and checked by MSBPCB.
But you're right, you don't even get this with the MSBPCT programs.  That's
why the recommended technique is to use these bootstrapping programs to
get a Kermit program that SEEMS to work onto your PC, and then use that
Kermit program to get another copy of itself, with error checking, etc.]
