File MSBAAA.HLP       "BOOTSTRAPPING" MS-DOS KERMIT                January 1990
 
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 (and there are versions too)
 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.
 
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.]
 
------------------------------
 
Date:     Sun, 15 Jan 89  13:55:26 EST
From: "Roger Fajman" <RAF%NIHCU.BITNET@cuvmb.cc.columbia.edu>
Subject:  MSBAAA.HLP addition
 
Here is a file that could help people figure out translation problems that
they might be having with BOO files.  I think it matches Columbia's tables,
but you should verify.
 
ASCII  EBCDIC  CHARACTER
20     40         Space
21     5A      !  Exclamation Point
22     7F      "  Double Quote
23     7B      #  Number Sign
24     5B      $  Dollar Sign
25     6C      %  Percent Sign
26     50      &  Ampersand
27     7D      '  Single Quote
28     4D      (  Left Parenthesis
29     5D      )  Right Parenthesis
2A     5C      *  Asterisk
2B     4E      +  Plus Sign
2C     6B      ,  Comma
2D     60      -  Minus Sign
2E     4B      .  Period
2F     61      /  Slash
30     F0      0  Zero
31     F1      1  One
32     F2      2  Two
33     F3      3  Three
34     F4      4  Four
35     F5      5  Five
36     F6      6  Six
37     F7      7  Seven
38     F8      8  Eight
39     F9      9  Nine
3A     7A      :  Colon
3B     5E      ;  Semicolon
3C     4C      <  Less Than
3D     7E      =  Equal Sign
3E     6E      >  Greater Than
3F     6F      ?  Question Mark
40     7C      @  At Sign
41     C1      A  Upper Case A
42     C2      B  Upper Case B
43     C3      C  Upper Case C
44     C4      D  Upper Case D
45     C5      E  Upper Case E
46     C6      F  Upper Case F
47     C7      G  Upper Case G
48     C8      H  Upper Case H
49     C9      I  Upper Case I
4A     D1      J  Upper Case J
4B     D2      K  Upper Case K
4C     D3      L  Upper Case L
4D     D4      M  Upper Case M
4E     D5      N  Upper Case N
4F     D6      O  Upper Case O
50     D7      P  Upper Case P
51     D8      Q  Upper Case Q
52     D9      R  Upper Case R
53     E2      S  Upper Case S
54     E3      T  Upper Case T
55     E4      U  Upper Case U
56     E5      V  Upper Case V
57     E6      W  Upper Case W
58     E7      X  Upper Case X
59     E8      Y  Upper Case Y
5A     E9      Z  Upper Case Z
5B     AD      [  Left Square Bracket
5C     E0      \  Backslash
5D     BD      ]  Right Square Bracket
5E     5F      ^  Circumflex
5F     6D      _  Underscore
60     79      `  Accent Grave
61     81      a  Lower Case A
62     82      b  Lower Case B
63     83      c  Lower Case C
64     84      d  Lower Case D
65     85      e  Lower Case E
66     86      f  Lower Case F
67     87      g  Lower Case G
68     88      h  Lower Case H
69     89      i  Lower Case I
6A     91      j  Lower Case J
6B     92      k  Lower Case K
6C     93      l  Lower Case L
6D     94      m  Lower Case M
6E     95      n  Lower Case N
6F     96      o  Lower Case O
70     97      p  Lower Case P
71     98      q  Lower Case Q
72     99      r  Lower Case R
73     A2      s  Lower Case S
74     A3      t  Lower Case T
75     A4      u  Lower Case U
76     A5      v  Lower Case V
77     A6      w  Lower Case W
78     A7      x  Lower Case X
79     A8      y  Lower Case Y
7A     A9      z  Lower Case Z
7B     C0      {  Left Curly Brace
7C     4F      |  Vertical Bar
7D     D0      }  Right Curly Brace
7E     A1      ~  Tilde
 
[Ed. - Thanks, Roger.  This should indeed be of use to those who get BOO files
that go through multiple ASCII/EBCDIC translations.]
 
------------------------------
 
