Building C-64/128 Kermit v2.2 (76) from C64SLK.HEX Last updated: August 23, 1992 by Kent Sullivan (kentsu@microsoft.com) These instructions describe how to build C-64/128 Kermit v2.2 (76) from the ASCII text files in the Columbia U. archives (or Tape C of the Kermit distribution tapes). This method, also known as "bootstrapping", is provided for those people who have no file-transfer program with which to obtain the ready-to-run Kermit binaries which are also kept in the Kermit archives. Required Files and Equipment ---------------------------- The following files are needed in order to build Kermit v2.2 (76): 1) C64BOOT.BAS 2) C64BOOT.C 3) C64SLK.HEX 4) C64SLK.GET (this file) All of these files are available from Columbia U. (archives or tape C). The following equipment is needed in order to build Kermit v2.2 (76): 1) Host computer from which the Kermit files will be sent 2) C language compiler on host computer 3) Dial-in (modem) access to the host computer 4) C-64 or C-128 computer 5) Disk drive compatible with C-64/128 (tape drives NOT supported) 6) 300 bps or faster modem compatible with C-64/128 -- must be attached to the C-64/128's user port, not via a SwiftLink-232 7) Blank formatted disk (CBM) Part One: Getting the Files onto the Host Computer -------------------------------------------------- The directions for this part unfortunately cannot be very specific due to the wide variety of systems capable of hosting a Kermit build. The goal is to transfer the necessary files from Columbia U. (archives or tape C) to the host computer (most likely a mainframe or minicomputer where you have an account). The necessary files are listed in the Overview section of the document. If your host computer has Internet access, transferring the files will be as easy as using the FTP utility to create a copy of the files. If your host computer does not have Internet access, you will need to have your system administrator copy the necessary files from Tape C of the Kermit distribution to your account on the host computer. Part Two: Preparing for the Download ------------------------------------ 1) Use the host computer's C language compiler to compile C64BOOT.C. If the C compiler reports any errors, check with your system administrator to see if your host computer requires the program to be changed to work properly. (The program is known to work fine as-is on the majority of computers running the Unix operating system.) 2) Examine the file C64SLK.HEX. Make sure that all of the alphabetic characters are in lower case. If they aren't, use a utility on the host computer to make them so. (On Unix systems, use the TR utility.) 3) Print out the file C64BOOT.BAS. Type this program in on your C-64/128 in uppercase/lowercase mode (not uppercase/graphics mode). You'll know you're in the right mode when you can see both uppercase and lowercase letters simultaneously as you type. 4) Carefully check C64BOOT.BAS against the printout and correct any errors. (Note: you can leave out a lot of the spaces which are included in the program listing. The spaces were added to improve the readability of the printout only.) 5) Save the completed C64BOOT.BAS program to a blank formatted CBM disk. Part Three: Downloading C64SLK.HEX ---------------------------------- 1) Make sure your C-64/128 and modem are operating correctly. 2) Load C64BOOT.BAS. 3) Check the communication parameters of the host computer. Make sure the parameters match those of C64BOOT.BAS. The default communication parameters for C64BOOT.BAS are: 300 bps, 8 bit word size, no parity bit, 1 stop bit (often abbreviated "8-N-1"). To change any of these parameters, modify the first OPEN statement in line 50. Some of the other common values are given below. If you need some other setup, consult the RS-232 charts in a C-64/128 reference guide. 300 bps, 7-O-1 (7 bits, odd parity): OPEN 1,2,0,CHR$(38) + CHR$(32) 300 bps, 7-E-1 (even parity) : OPEN 1,2,0,CHR$(38) + CHR$(96) 300 bps, 7-M-1 (mark parity) : OPEN 1,2,0,CHR$(38) + CHR$(160) 300 bps, 7-S-1 (space parity) : OPEN 1,2,0,CHR$(38) + CHR$(224) Note that C64BOOT.BAS is limited to 300 bps communication speed in its default form because it is written in BASIC, and BASIC is slow. If you have access to a C-64 BASIC compiler (Petspeed, Blitz, BASIC-64, etc.) you could try bumping the speed up to 1200 bps. This idea is untested but has a fair chance of working. Also note that C64BOOT.BAS is set for full-duplex (not half) communication. 4) Run C64BOOT.BAS. 5) Call the host computer. The procedure for doing this will vary according to the type of modem you have for your C-64/128. C64BOOT.BAS does not have an autodial feature, so if you cannot send a dial string to the modem from terminal mode (like "ATDT " for a Hayes modem) then you will need to dial the number manually. 6) Once connected to the host computer, log into your account. 7) Make sure the host computer's terminal settings are for (a) no echo and (b) end of line character sent to your terminal equals linefeed (ASCII 10). The procedure for checking and setting this varies widely from computer to computer. On a Xenix system I used recently, I used the command STTY to check the terminal settings. I then used the following arguments to STTY to set things correctly: STTY -ECHO -ONLCR -OCRNL These settings may very well not work for your situation but are provided as an example. Consult with your system administrator for assistance. Note: If it is impossible to have the host computer send ASCII 10 for an end-of- line character but it can send ASCII 13 (carriage return), change the CHR$(10) commands to CHR$(13) in lines 205 and 225 of C64BOOT.BAS. 8) Start the program you compiled from C64BOOT.C earlier. You need to specify the file to be downloaded (C64SLK.HEX) on the same command line. Example: C64BOOT C64SLK.HEX (assuming that you named the download program C64BOOT) Note: You will not receive any feedback that C64BOOT has started properly (there is no startup message). You will probably also not be able to see what you are typing since you have previously told the host computer to not not echo what you type. 9) Press the key on your C-64/128. C64BOOT.BAS will prompt you for a local filename. Respond with the name "slkermit" (lowercase, no quotes) and press the Return key. The host computer should then begin sending C64SLK.HEX, one line at a time. C64BOOT.BAS receives each line and calculates two checksums on each line. If the line is ok, C64BOOT.BAS will print a period (".") on your C-64/128's screen and write the data to the disk. If there was a transmission error, such as static on the phone line, C64BOOT.BAS will print "Checksum Error - sending nack" on your screen. The "nack" means Negative ACKnowledgement and will cause the host computer to re- send the line. This error can also occur if the terminal parameters for the host computer have not been set correctly or if the communication parameters of the host computer and those in C64BOOT.BAS do not match. If C64BOOT.BAS detects an error in the data itself, however, it will print "Data file bad." and will stop execution. This error will occur only if the C64SLK.HEX file has somehow become corrupted. The file C64SLK.HEX is over 1300 lines long, and each line takes about 6 seconds to be transmitted. Tests I have done show that the transmission takes about 2 - 2.5 hours if no or few transmission errors are encountered. When transmission is finished, C64BOOT.BAS will print: slkermit downloaded; returning to terminal mode At this point you should log out of the host computer, then exit C64BOOT.BAS by pressing the key. Check the size of the file "slkermit": it should be 122 disk blocks. Part Four: Running Kermit for the First Time -------------------------------------------- 1) Load the file "slkermit". Load it as a BASIC program, e.g.: LOAD "SLKERMIT",8 2) Run SLKERMIT. The disk drive light should come on for a second then you should see the Kermit startup message on your screen, at the top. Note: The disk drive error light will be flashing. This is because the file SLKERMIT.INI does not yet exist. Unlike user-port Kermit (minor version #73), SL-232 Kermit does not require an initialization file. You can create one, if you wish, to save any changes you make to the initialization parameters. So even though the error light is flashing, the program will operate normally. You can create a SLKERMIT.INI file with the SAVE command inside of SLKERMIT. Assuming that everything is working properly, it would be a good idea to use Kermit to download C64KER.DOC, the user guide for C-64/128 Kermit. You may want to use a text editor on your host computer to break the file up into smaller chunks (7 would be good) to make the file easily viewable/printable via a C-64/128 word processor or similar utility. You should also download C64SLK.TXT, an addendum to C64KER.DOC. This addendum covers the differences between v2.2 (73) and v2.2 (76). Note that C64KER.DOC was written for v2.2 (73). Finally, if you have a C-128 and would like SLKERMIT to autoboot on it, you can type in C64SLK.SEC. This program, when run on your C-128, creates an autoboot sector for SLKERMIT. (Note that the file C64SLK.TXT refers to the file SL RUN ME NOW! -- this is the same program as C64SLK.SEC.)