Date: April 21, 1987 From: Mike Lucich (via tape) Subject: Sperry/Univac/Unisys Kermit We here at Ft Leavenworth initially had a rough time reading the KERMIT release tape on our Unisys (aka Sperry, Univac) 1100 mainframe and send you the following program in the hope others will find it usefull. We run both assembler and Pascal versions of KERMIT on our mainframe and have made several minor changes to accomodate MS-DOS KERMIT Version 2.27 through our ancient C/SP front end processors. Fortunately with MSKERMIT version 2.29 these kludges are no longer required (the ability to set handshake to any character solves our problems nicely). Please feel free to refer any Unisys users with problems with KERMIT to us, if we might help them. Also please return our tape with the latest KERMIT distribution to the address above. We thank you! Mike Lucich USA ISC DOIM Unisys Support Team ATTN: ATZL-GMO-IA Ft Leavenworth, KS 66027-5700 [Ed. - The COBOL program that reads a file from a Kermit tape (the format is either EBCDIC OS Standard Label Format V or else ASCII ANSI Label Format D; it's not clear from the message, most most likely it's the EBCDIC tape, since this program itself arrived on an EBCDIC tape)... is in KER:UNIVAC.INS, along with this message.] @DELETE,C RD$PRINT. @CAT RD$PRINT.,///2048 @BRKPT PRINT$,RD$PRINT. @hdg KERMIT RELEASE TAPE READ PROGRAM @ACOB,SI TPF$.READ 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. READ-KERMIT. 000300* THIS PROGRAM WILL READ A FILE FROM THE KERMIT RELEASE 000400* TAPE AND WRITE THAT FILE OUT AS AN SDF FILE NAMED 000500* OUTFILE ON DISK. THE INPUT TAPE SHOULD BE ASSIGNED AS 000600* INFILE, USING AN ASSIGNMENT STATEMENT SIMILAR TO THE 000700* FOLLOWING: @ASG,TJ INFILE.,U9S//////Q,reelno 000800* IN ADDITION, THE INPUT TAPE SHOULD BE POSITIONED 000900* AT THE PROPER FILE BEFORE RUNNING THIS PROGRAM. 000901* THIS MAY BE ACCOMPLISHED VIA: 000902* @MOVE INFILE.,n 000903* Where n=(number of desired file - 1) X 3 000910* THIS PROGRAM MUST BE COMPILED WITH THE ACOB 000920* EXTRA OPTION D. 000930* Furthermore, when this program is executed, the run 000940* --------------------MUST--------------------------- 000950* have assigned, with name or usename of DFP$, a program 000960* file which contains an omnibus element named infile 000970* which was created by the define file processor to 000980* specify option=a, for 256 character EBCDIC character 000990* set. DO YOU BELIEVE IT ? 000995* 001000 ENVIRONMENT DIVISION. 001100 CONFIGURATION SECTION. 001200 SOURCE-COMPUTER. UNIVAC-1100-80. 001300 OBJECT-COMPUTER. UNIVAC-1100-80. 001400 INPUT-OUTPUT SECTION. 001500 FILE-CONTROL. 001600 SELECT INFILE-E ASSIGN TO UNISERVO INFILE. 001700 SELECT OUTFILE-A ASSIGN TO DISC OUTFILE. 001800 DATA DIVISION. 001900 FILE SECTION. 002000 FD INFILE-E 002100 LABEL RECORDS ARE STANDARD 002200 RECORDING MODE IS V AN 002300 BLOCK CONTAINS 1 TO 8192 CHARACTERS. 002400 01 INREC-E PIC X(300). 002500 FD OUTFILE-A 002600 LABEL RECORDS ARE OMITTED. 002700 01 OUTREC-A PIC X(300). 002800 WORKING-STORAGE SECTION. 002900 77 INCNT PIC 9(07) VALUE 0. 003000 77 OUTCNT PIC 9(07) VALUE 0. 003100 77 PRINT-REC PIC 9(01) VALUE 0. 003200 01 SPOINTS. 003300 03 FILLER PIC 1(09) VALUE 90. 003300 03 FILLER PIC 1(09) VALUE 93. 003400 01 APOINTS. 003500 03 FILLER PIC 1(09) VALUE 33. 003600 01 SLBRACS. 003700 03 FILLER PIC 1(09) VALUE 173. 003700 03 FILLER PIC 1(09) VALUE 213. 003800 01 ALBRACS. 003900 03 FILLER PIC 1(09) VALUE 91. 004000 01 SRBRACS. 004100 03 FILLER PIC 1(09) VALUE 189. 004100 03 FILLER PIC 1(09) VALUE 229. 004200 01 ARBRACS. 004300 03 FILLER PIC 1(09) VALUE 93. 004400 01 SBARS. 004500 03 FILLER PIC 1(09) VALUE 79. 004500 03 FILLER PIC 1(09) VALUE 33. 004600 01 ABARS. 004700 03 FILLER PIC 1(09) VALUE 124. 005200 PROCEDURE DIVISION. 005300 OPEN-FILES. 005400 OPEN INPUT INFILE-E WITH NO REWIND. 005500 OPEN OUTPUT OUTFILE-A. 005600 READ-FILE. 005700 READ INFILE-E AT END GO TO EOJ. 005800 ADD 1 TO INCNT. 005900 INSPECT INREC-E REPLACING 006000 ALL SPOINTS BY APOINTS 006100 ALL SLBRACS BY ALBRACS 006200 ALL SRBRACS BY ARBRACS 006300 ALL SBARS BY ABARS. 006400 MOVE INREC-E TO OUTREC-A. 006500 WRITE OUTREC-A. 006600 ADD 1 TO OUTCNT. 006700 MOVE SPACES TO INREC-E OUTREC-A. 006800 GO TO READ-FILE. 006900 EOJ. 007000 CLOSE INFILE-E WITH NO REWIND. 007100 CLOSE OUTFILE-A. 007200 DISPLAY 'RECORDS IN ' INCNT UPON PRINTER. 007300 DISPLAY 'RECORDS OUT ' OUTCNT UPON PRINTER. 007400 STOP RUN. @EOF @MAP,I ,SOFTWARE.READ IN TPF$.READ END @BRKPT PRINT$