HH HH PPPPPPPP 8888888 6666666 HH HH PP PP 88 88 66 HH HH PP PP 88 88 66 HHHHHHHHH PPPPPPPP 8888888 66666666 HH HH PP 88 88 66 66 HH HH PP 88 88 66 66 HH HH PP 8888888 6666666 KK KKK EEEEEEEE RRRRRRRR MMM MMM IIIIII TTTTTTTTTT KK KKK EE RR RR MMMM MMMM II TT KK KKK EE RR RR MM MM MM MM II TT KKKKK EEEEEEE RRRRRRRR MM MMM MM II TT KKKKKK EE RR RRR MM M MM II TT KK KKK EE RR RRR MM MM II TT KK KKK EEEEEEEE RR RRR MM MM IIIIII TT ==================================================================== IIIII N N SSSSS TTTTT AA L L AA TTTTT IIIII OOO N N I NN N S T A A L L A A T I O O NN N I N N N SSSSS T AAAA L L AAAA T I O O N N N I N NN S T A A L L A A T I O O N NN IIIII N N SSSSS T A A LLLL LLLL A A T IIIII OOO N N ==================================================================== HP86 Kermit Installation Manual Edition 1.00 This Manual applies to version 1.00 - 1 - =============================== HP86 Kermit Installation Manual =============================== Edition 1.00 This Manual applies to version 1.00 CONTENTS -------- 1. Introduction. 1.1. Software requirments. 1.2. File name convention. 2. Installation of HP86 Kermit version 1.00 2.1 Try again to find a Kermit disk. 2.2 Bootstrapping from the communication line. 2.2.1 Using an existing file capture system. 2.2.2 Type in your own bootstrap. Appendix A: Program listings. Appendix B: RS232 settings. Appendix C: Modifying the program. - 2 - 1. INTRODUCTION ------------ This manual describes what software is needed to run HP86 Kermit on the HP86 microcomputer and how to obtain this software. Two bootstrapping programs, for downloading Kermit from a mainframe, are supplied for use if necessary. Also information is given on how to modify the Kermit program. The HP86 Kermit program was written by Martin Rootes of the Computer Services Department, Sheffield City Polytechnic. The two bootstrapping programs (HP8BOO.BAS & HP8BOO.FOR) are adaptions of two programs, written by Bill Catchings of Columbia University, for MS-DOS Kermit. - 3 - 1.1 SOFTWARE REQUIREMENTS ------------------------- To have a working version of Kermit for your HP86 you will need a disk with at least the following two files on it: KERMIT - The actual Kermit BASIC program. UTIL/1 - A binary program containing various utilities. Also if you wish to transfer BASIC programs you will need: GETSAVE - Binary program giving utilities to save BASIC programs as DATA files, and load DATA files into memory as BASIC programs (GET) The two utility programs can be found on the HP86 DEMO disk supplied with each machine. The rest of this document describes how you can obtain a copy of the Kermit program, and gives information on how to modify the program. 1.2 FILE NAME CONVENTIONS ------------------------- The file names of kermit files have a slightly different format depending on whether they are on a mainframe or on the HP86. when referring to files on a mainframe the following convention is used: name.type , where name is 6 characters and type 3. When referring to files on the HP86 the '.' separator is replaced by a space, thus : HP8KER.BAS would be translated to HP8KER BAS Also all the files on the remote are stored as ASCII strings, so in the case of BASIC programs once they are transferred to the HP86 they should be translated to BASIC files, using GETSAVE. The files once translated will be referred to by dropping the type part of the name, except HP8KER BAS which is renamed as KERMIT, for example: HP8BOO BAS would after conversion become HP8BOO - 4 - 2. INSTALLATION OF HP86-KERMIT VERSION 1.00 ---------------------------------------- Modified from a document for MS-DOS Kermit by Bill Catchings, CUCCA by M.J.Rootes, Sheffield City Polytechnic. To obtain a copy of Kermit for your HP86 you will need to do one of the following, borrow a floppy disk containing Kermit and copy it, use a file capture program to download it from the mainframe at your site, or use the following instructions to 'bootstrap' Kermit from the mainframe. There are at least three methods of initially getting HP86 Kermit onto your HP86: 1. Try again to find a copy on diskette. 2. Use another file capture facility to get it. 3. Type in and run a bootstrapping program. 2.1. Try Again To Find A Kermit Disk ------------------------------------ Before explaining how to bootstrap Kermit onto your HP86, a disclaimer must be made. Although a fair amount of thought and time has gone into these procedures, they are far from error free. If they were foolproof, there would be no need for a protocol such as Kermit. There are many places where things can go wrong, from something as simple as a typing mistake to something as unavoidable and probably inevitable as a communications line failure. By far the easiest and best way to install Kermit is from a floppy disk. Before you embark on any of the following procedures it is a good idea to check once again for a diskette to copy, even it it contains an old version of Kermit. The time you spend searching is likely to be far less frustrating than the time you spend trying to bootstrap Kermit by the methods described below. 2.2. Bootstrapping From the Communication Line ---------------------------------------------- If you can't find a disk with Kermit on it, there are two other methods available for bootstrapping HP86 Kermit onto your HP. The first method is to use a file capture method or other file transfer protocol to transfer the file to your HP86. The second method requires you to type in your own downloading program. - 5 - In either case, you must transmit the file from the system where it resides over a communication line and into your HP86. The HP8KER.BOO file contains only printable ASCII characters, to ensure that downloading can take place regardless of parity or other peculiarities of the communication channel. 2.2.1. Use An Existing File Capture Facility -------------------------------------------- Use your file capture facility, whatever it may be, to get the file HP8KER.BAS onto your HP's disk, but first make sure you have enough room for it (approx 30k). Once the file is on your disk, you must convert it in to a BASIC program using the GETSAVE utility program, supplied on the HP86's demo disk. The utility program UTIL/1 must be present in the HP86's memory before GETTING 'KERMIT BAS'. LOADBIN "UTIL/1" <- Load the utility program. LOADBIN "GETSAVE" <- Load the DATA - BASIC conversion utility. GET "HP8KER BAS" <- Load the DATA file 'HP8KER BAS' as a BASIC program. .....If successful, no lines should be displayed during GET..... STORE "KERMIT" <- Save the BASIC program on your disk. 2.2.2. Type In Your Own Bootstrap --------------------------------- If you can't find some method for downloading the HP8KER.BOO file, the second way of bootstrapping Kermit is to use the programs 'HP8BOO BAS' and HP8BOO.FOR to download via your HP86's serial port from your host You run the program HP8BOO.FOR on your host and then run the program 'HP8BOO BAS' on your HP86. The FORTRAN program sends the HP8KER.BOO file to the BASIC program, which stores it as string data on your current disk as 'KERMIT BOO'. A very rudimentary form of error checking is done to allow obviously corrupted records to be retransmitted. Follow this procedure: 1. First, you must establish a connection from your HP86 to the host system. A high speed connection is preferable; a "clean" line is preferable to a noisy one. In fact, a clean line is essential for this procedure. You must be able to log in to the host system over this connection. If your HP86 already has a terminal emulation facility, use that. If not, you might need to put your HP86 next to a real terminal and use that for logging in, then switch the connector to the HP86 at the critical moment. If you are using a terminal, make sure the terminal and HP86 have their communication ports set to the same speed. - 6 - 2. Ensure that the files HP8BOO.FOR and HP8KER.BOO are present on the host system. HP8BOO.FOR is listed below, in case you need to type it in. 3. Get back to your HP86 and type in 'HP8BOO BAS' on your HP86; a listing appears below. There is no need to type in the comments (anything following an exclamation mark); they are only there to clarify what the program is doing. Check very carefully for errors. You should check the RS232 settings in the program (lines 2000 - 2180) to see that it reflects the way your system is actually set up. If necessary, change the control register settings (see appendix B). The settings are correct for downloading from an IBM 4341. For half-duplex systems, leave line 1000 as it is; otherwise, replace it by a RETURN statement. If you type it in directly to BASIC make sure you save the program before you run it, so you won't have to type it in again in case of error. 4. Get back to your host system and compile HP8BOO.FOR, if it needs compiling. Define logical unit numbers 5 and 6 to be the controlling terminal, and logical unit 7 to be the file HP8KER.BOO. On VAX/VMS systems, for example, use these commands: $assign sys$input for005 $assign sys$output for006 $assign hp8ker.boo for007 On a DECSYSTEM-20, do: define 5: tty: define 6: tty: define 7: hp8ker.boo On an IBM system under VM/CMS, do this: .filedef 5 term ( lrecl 80 recfm v .filedef 6 term ( lrecl 80 recfm f .filedef 7 disk hp8ker boo ( lrecl 80 recfm f perm 5. Set your host system up for downloading: - Ensure that your terminal does not automatically pause at the end of a screenful of output. For instance, on a DEC-20 you would issue the command "terminal no pause end-of-page". - Do whatever you can to disable messages from appearing at your terminal while these programs are running. This would include messages from other users, mail notification, alarms or alerts, system messages, and so forth. Such messages will interfere with the procedure, and probably render the result useless. - 7 - - You should put your host terminal in "local echo" or "half duplex" mode, if possible. 6. Start the HP8BOO program on your host system. 7. Get back to the HP86. If you have been using a terminal, switch the connector to the HP86. 8. Now run the BASIC program, 'HP8BOO BAS'. This procedure will take at least twenty minutes and possibly longer depending on line speed. Watch your disk lights for reassurance that something is happening. 9. The file 'KERMIT BOO' should now exist on the current HP86 disk this should be converted into a BASIC program using the GETSAVE utility. LOADBIN "UTIL/1" <- This must be loaded otherwise getsave will not convert the file correctly. LOADBIN "GETSAVE" <- Load the conversion utility. GET "KERMIT BOO" <- Load the data file 'KERMIT BOO' and convert to a BASIC program. .....When the conversion has completed successfully......... STORE "KERMIT" <- Store the Kermit BASIC program. 10. Before finishing remember to log off from the host system, you may of course now use the HP86 Kermit to achieve this. By using one of these installation methods, you should now have a working version of Kermit. If you experience any problems or quirky behavior with the program, it's possible that some part of it was corrupted during the downloading procedure. Perhaps enough usable code remains to allow you to transfer HPKERMIT.BAS from the host. If not, you will have to repeat the downloading procedure. Once you have HP86 Kermit on your disk, you should make the disk available to other users for copying, so that they can be spared the tedium of this bootstrap procedure. - 8 - Appendix A: Program listings ---------------------------- Here is a listing of 'HP8BOO BAS'. The DISP statements with line numbers 140 & 350 may be included if you want incoming records to be displayed on the screen. You don't need to include the comments. 1 ! Run this program on the HP86 in conjunction with a FORTRAN program 2 ! (HP8BOO.FOR) on the mainframe to download kermit to the HP86. This 3 ! program will run for about thirty minutes, depending on line speed 4 ! Original program, for use with a PC running MS-DOS, by:- 5 ! Bill Catchings, June 1984 (revised Sept 1984) 6 ! Columbia University Center for Computing Activities 7 ! Converted for use on HP86 by:- 8 ! M.J.Rootes, Sheffield City Polytechnic, Apr 1986. 9 ! 10 INTEGER n,s 20 DIM x$[88],f$[20] 30 SETTIME 0,0 40 GOSUB 2000 ! Set RS232 interface 100 OUTPUT 10 ;"O ,2" 110 ENTER 10 ; f$ 120 IF LEN (f$)<5 THEN 110 ! in case of echo repeat 130 ENTER 10 ; n 140 DISP f$&" "&VAL$ (n) 150 IF n>10 THEN 900 ! incorrect filename 160 CREATE f$,110 165 ASSIGN# 1 TO f$ 170 DISP "Outputting to "&f$ 180 GOTO 300 200 GOSUB 1000 ! Turnaround processing 210 OUTPUT 10 ;"N" ! Data incorrect 220 GOTO 320 300 GOSUB 1000 ! Turnaround 310 OUTPUT 10 ;"O" ! data Ok 320 ENTER 10 ; x$ 330 IF LEN (x$)<5 THEN 320 ! in case of echo 340 ENTER 10 ; n 350 DISP x$&" "&VAL$ (n) 360 IF LEN (x$)#n THEN 200 ! length wrong - nak 370 IF x$="&&&&&&&&&&" THEN 800 ! end of file 400 PRINT# 1 ; x$ 410 GOTO 300 800 DISP "Processing complete, file transferred" 805 DISP "Time taken "&VAL$ (TIME )&"secs" 810 ASSIGN# 1 TO * 820 END - 9 - 900 DISP "Filename incorrect" 910 GOTO 820 1000 STATUS 10,9 ; s ! return for full duplex 1010 IF s<128 THEN 1000 ! wait for transmitter to be enabled 1020 RETURN 2000 ! SET RS232 INTERFACE 2020 CONTROL 10,3 ; 6 ! Set baud rate 300 baud 2040 CONTROL 10,4 ; 42 ! Set parity to MARK 2060 CONTROL 10,5 ; 0 ! Set auto handshake (DTR/RTS) off 2080 CONTROL 10,9 ; 225 ! Strip Nulls, backspace & enable transmit & receive 2100 CONTROL 10,11 ; 192 ! Set handshake/flow-control on 2105 CONTROL 10,14 ; 19 ! Set XOFF 2110 CONTROL 10,15 ; 17 ! Handshake character XON 2120 CONTROL 10,16 ; 67 ! EOL transmit disable & 3 char EOL count 2140 CONTROL 10,17 ; 13 ! CR 2160 CONTROL 10,18 ; 17 ! XON 2170 CONTROL 10,19 ; 46 ! '.' 2180 RETURN - 10 - Here is a listing of HP8BOO.FOR, in case you can't find it on your host system: C This Fortran program should be run on the mainframe in conjunction C with a BASIC program ('HP8BOO BAS') on the HP86 to transfer C HP8KER.BOO to the HP86 and store it as 'KERMIT BOO'. this C program uses a very rudimentary technique to try to insure that C the characters it sends arrive correctly. It just sends a count C of the number of characters sent after each line. In this way any C errors of character loss or insertion will be caught. If a C character is just corrupted it will not be caught. Hopefully if C this happens it will be in a non-critical part of the 'KERMIT BOO' C file. The reason a simple checksum was not used was so that this C program could run on machines using either EBCDIC or ASCII C characters. This program should take about thirty minutes to run. C C This program assumes that 5 and 6 are directed to the terminal and C 7 is directed to the file HP8KER.BOO. C C *Original Program* for use with a PC running MS-DOS by:- C Bill Catchings, C Columbia University Center for Computing Activities C June 1984 (Revised September 1984) C C *REVISED* at Sheffield City Polytechnic by R.L.Horton 22Aug85:- C 1) FORTRAN G1 cannot accept "I-1" on a WRITE statement. C 2) Insert a call to NULIN and to RETYPE. C *REVISED* at Sheffield City Polytechnic by R.L.Horton 10Apr86:- C 1) NULIN has been rename to NULLIN. C 2) For some unknown reason this program started issuing a double C read to the terminal at statement 100/3 (at start-up)! C The FORMAT statement 200 has been corrected to stop it. C 3) The FILEDEF for the terminal has been changed to RECFM F80. C C *CHANGED* for use with 'HP8BOO BAS' at Sheffield City Polytechnic C By M.J.Rootes 11Apr86:- C 1) Accept lines up to 79 characters long C 2) Reverse character count as HP86 BASIC lines contain spaces C 3) Insert Linefeed between Line and character count C INTEGER LINE(79), ACK(4), CHECK, OK, SPACE, COMMA CALL NULLIN CALL RETYPE WRITE(6,100) 100 FORMAT(' Ready to transfer, now run 'HP8BOO BAS' on the HP86.') C Get characters for constants (character constants are rough in C some FORTRANs). - 11 - READ (5,200) OK, SPACE, COMMA, ACK 200 FORMAT(A1,A1,A1,4A1) C The following statement has been changed from GO TO 30. GO TO 20 C Get terminal handshake. 10 READ (5,200)ACK C Did the other side like it? (Did they send OK?) IF (ACK(1) .NE. OK) GO TO 50 C Yes, get new line from file. 20 READ (7,300,END=99)LINE 300 FORMAT(79A1) C Count the characters as some rudimentary check for noise. I = 79 30 IF (LINE(I) .NE. SPACE) GO TO 50 I = I - 1 GO TO 30 C Put in a comma followed by the count. C 40 LINE(I) = COMMA C Write to TTY. 50 WRITE (6,400)LINE,I 400 FORMAT(79A1/I2) GOTO 10 C Send good-bye message. 99 WRITE (6,500) 500 FORMAT(10('&')/'10') STOP END - 12 - Appendix B: RS232 settings -------------------------- The following is a list of certain control registers for the RS232 interface and there effect on its characteristics for use when adapting 'HP8BOO BAS' to systems other than the IBM 4341 (Mark parity, XON handshake, on 300 baud line). Please read the I/O programming manual for a more detailed explanations of these registers. CONTROL 10,3 ; - Gives baud rate 110 - 2 300 - 6 1200 - 8 CONTROL 10,4 ; - Parity None - 3 Odd - 10 Even - 26 Mark - 42 Space - 58 CONTROL 10,5 ; - DTR/RTS handshake Off - 0 On - 48 CONTROL 10,11 ; - XON/XOFF control None - 0 XON - 128 XON/XOFF - 192 CONTROL 10,14 ; - XOFF character XOFF - 19 CONTROL 10,15 ; - XON character XON - 17 CONTROL 10,16 ; - End of line No of characters - bits 0 - 4 Transmit disable - bit 5 Auto RTS enable - bit 7 CONTROL 10,17 - CONTROL 10,23 - Hold end of line character sequence - 13 - Appendix C: Modifying the program --------------------------------- HP86 Kermit version 1.00 is a very basic implementation of the Kermit protocol, most of the advanced facilities having been left out. Due to the basic nature of version 1.00 it is anticipated that other users may want to upgrade this version to include facilities such as server support. Also users may wish to modify the program to give different default values. To enable easy modification a fully commented version is available (HP8KRC.BAS), however this program is to large to run in the (64k) memory of the HP86. To circumvent the memory problem the commented program is also available split into various logical sections, the relevant section can then be loaded over the non commented version using the GET utility. Once modified the new version of that section should be saved (SAVE) and then the comments stripped from the new program. To overlay a commented section of program use the following procedure LOAD "KERMIT" <- Load kermit program if not already done. LOADBIN "UTIL/1" <- '' utilities '' '' '' '' . LOADBIN "GETSAVE" <- Load the GETSAVE utility program. GET "HP8xxx BAS" <- Load the desired section. When any modification is complete SAVE the program as it is, delete all lines except those in the modified section and SAVE it. Now use the 'HP8CSU BAS' comment strip utility to remove the comments from the saved program. LOADBIN "GETSAVE" <- Load GETSAVE utility if not present. SAVE "TEMP" <- Save the complete program as a data file. DELETE 1,nnnn <- Delete lines before changed section. DELETE mmmm,99999 <- '' '' after '' '' . SAVE "HP8xxx BAS" <- Save the desired section. ... If 'HP8CSU BAS' has not been converted to a BASIC file then DELETE 1,99999 <- Remove any existing program. GET "HP8CSU BAS" <- Get DATA file and convert to BASIC. ... Else LOAD "HP8CSU" <- Load basic program. RUN 'Enter old name, new name, size of file ?' TEMP,HP8KER BAS,120 <- Enter names and size of the new file. A new version of the commented program can be produced by using GETSAVE. GET the old file 'HP8KER BAS', delete the section that has been changed, then GET the new commented section, and finally save the complete program. - 14 - LOADBIN "UTIL/1" <- Load utilities if not present. LOADBIN "GETSAVE" <- '' GETSAVE '' '' '' . GET "HP8KRC BAS" <- GET old version. DELETE nnnn,mmmm <- Delete the section that was changed. GET "HP8xxx BAS" <- GET the new version of that section. SAVE "HP8KRC BAS" <- SAVE the complete commented program. HP86 Kermit version 1.00 : Program sections:- Name Line numbers Description ---- ------------ ----------- HP8DEF BAS 1 - 499 Define arrays, variables & constants. HP8CPR BAS 500 - 999 Command processor. HP8TRM BAS 1000 - 1999 Terminal mode (CONNECT command) HP8SND BAS 2000 - 3999 SEND command. HP8REC BAS 4000 - 4999 RECEIVE command. HP8SSC BAS 5000 - 6999 SET and SHOW commands. HP8COM BAS 10000 - 12999 Subroutines for sending & receiving packets HP8CDF BAS 20000 - 20999 Functions for coding & decoding packets. HP8DSP BAS 30000 - 30999 Subroutines for displaying current state. HP8FSS BAS 40000 - 42999 Filling system subroutines HP8MSC BAS 50000 - 52999 Miscellaneous subroutines. - 15 -