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" 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" 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.] ------------------------------