Output of file : KERMSERV.CMD contained in archive : CA29-3.ZIP
; Kermit server command script file
; ---------------------------------
; Commenced: 6/8/88 R.McG
;
; First - open a window
;
ON ESCAPE GOSUB Exit ; Exit if esc pressed
Restart:
GOSUB Window ; Open window and ask for command
;
; S0 returns the response: Interpret the response
;
SWITCH S0
CASE "1"
GOTO Send
ENDCASE
CASE "2"
ENDCASE
CASE "3"
GOTO Finish
ENDCASE
CASE "4"
GOTO Logout
ENDCASE
CASE "S"
GOTO Send
ENDCASE
CASE "R"
ENDCASE
CASE "F"
GOTO Finish
ENDCASE
CASE "L"
GOTO Logout
ENDCASE
ENDSWITCH
;
; Unrecognized entry
;
SOUND 100 500
GOTO Restart
;
; Exit routine
;
Exit:
RESTORE ; CLose the window we opened in subroutine Window
EXIT
;
; Command subroutine - build and send a KERMIT packet
; .. The body of the packet is in S0
;
Command:
N0 = 1 ; Set MARK value (SOH)
LENGTH S0 N2 ; Compute length of type&data
N3 = N2+2+32 ; Account for blknum and checksum, and make an ASCII

ITOC N0 S1(0) ; Set MARK into string
ITOC N3 S1(1) ; Set length into string
S1(2) = " " ; Set block number
S1(3:79) = S0 ; Store type and data
;
; Now, compute the checksum
;
N4 = 1 ; Start at length variable
N5 = N2+2 ; Make a loop count
N6 = 0 ; Initialize summation
Loop:
CTOI S1(N4:N4) N7
N6 = N6+N7 ; Sum the value

INC N4 ; Point to next
DEC N5 ; Decrement count to go

IF NOT ZERO N5 ; Loop for count in
GOTO Loop ; .. N5
ENDIF

N6 = N6-(N6/256)*256 ; Reduce to 8 bits
N7 = N6/64 ; Extract top 2 bits
N6 = N6+N7 ; Sum MSBits with low 6 bits
N6 = N6-(N6/64)*64 ; And reduce result to 6 bits
N6 = N6+32 ; Make printable ascii
;
; Store the CHECKSUM, and transmit the whole
;
N2 = N2+3 ; COmpute index to checksum
ITOC N6 S1(n2:n2)
INC N2 ; Point after checksum
S1(N2) = "!" ; Store a c/r
TRANS S1 ; And send it
RETURN ; And we're done
;
; Build and send a logout and we're done
;
Logout:
S0 = "GL"
GOSUB Command
GOTO Exit
;
; Build and send a finish and we're done
;
Finish:
S0 = "GF"
GOSUB Command
GOTO Exit
;
; Initiate a KERMIT send operation
;
Send:
SOUND 400 200
ATSAY 17 12 (Default) "File name: "
ATGET 17 27 (Default) 40 S1

IF NOT ISFILE S1
SOUND 100 500
ATSAY 17 27 (Default) "File does not exist... please re-enter. "
PAUSE 5
GOTO Send
ENDIF
SENDFILE KERMIT S1
GOTO Exit
;
; Initiate a KERMIT receive operation
;
SOUND 400 200
ATSAY 17 12 (Default) "File name: "
ATGET 17 27 (Default) 40 S1

S0 = "R"&S1
GOSUB Command
GETFILE KERMIT
GOTO Exit
;
; Open a window and read a command
;
Window:
SAVE 10 10 18 70
BOX 10 10 18 70 (Default)
ATSAY 10 12 (Default) " COM-AND Kermit Server "
ATSAY 11 12 (Default) "(1) Send (request host to receive file(s))"
ATSAY 12 12 (Default) "(2) Receive (request host to send file(s))"
ATSAY 13 12 (Default) "(3) Finish (terminate host KERMIT server)"
ATSAY 14 12 (Default) "(4) LogOut (terminate host server and logoff)"

ATSAY 16 12 (Default) "Enter command: "
ATGET 16 27 (Default) 2 s0
UPPER S0 ; Make it upper case
Return


### 3 Responses to “Category : Communication (modem) tools and utilitiesArchive   : CA29-3.ZIPFilename : KERMSERV.CMD”

1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/