*IDENT UVA1 *I COMCKER.39 PARAMETER (CSB812=6) *I 174 LOGICAL EOCONV *I 182 COMMON /PROTO/ EOCONV COMMON /PROTO/ BINMODE *I 298 * OPERATING SYSTEM/NETWORK FLAGS/CONSTANTS PARAMETER (CCP=1, CDCNET=2) COMMON /OPSYS/ TSTATUS(2) COMMON /OPSYS/ NETTYPE *I KERMIT.36 * 3.4 10/05/87 OLAF PORS, UNIVERSITY OF VIRGINIA * NOS 2.5.1, LEVEL 664. * * 1. ADD SUPPORT FOR 8/12 ASCII BINARY FILES. * PACKED BINARY FILES ARE EFFICIENT AND USABLE * WITH CDC-RELEASED FILE TRANSFER PROGRAMS, * BUT CANNOT ACCURATELY PRESERVE FILE LENGTHS * DUE TO FILLER IN THE LAST WORD. 8/12 BINARY * TAKES CARE OF THE LIMITATION AND IS COMPATIBLE * WITH UTILITIES SUCH AS FCOPY. * A SUMMARY OF RELATED KERMIT COMMANDS - * * "SET FILE-MODE TEXT" (THE DEFAULT) INDICATES THAT * A TEXT FILE(S) IS TO BE SENT OR RECEIVED IN * THE CURRENT TEXT MODE. THE CURRENT TEXT MODE * IS SET WITH THE "SET TEXT-MODE XXX" COMMAND. * XXX IS "AUTO" (THE DEFAULT), "6/12", "DISPLAY", OR * "8/12". AUTO ATTEMPTS TO DETERMINE THE CHARACTER * SET OF A CDC FILE BEFORE SENDING IT, AND * CREATES A 6/12 CDC FILE IF RECEIVING. * THE OTHERS READ/CREATE CDC FILES IN THE * RESPECTIVE CHARACTER SET. * THE "AUTO" DEFAULT MAY BE CHANGED, DEPENDING * ON SITE PREFERENCE, BY PUTTING ONE OF THE * FOLLOWING INTO "KERMOD2" DURING INSTALLATION - * * *DEFINE,TEXT612 * *DEFINE,TEXTDISP * OR *DEFINE,TEXT812 * * "SET FILE-MODE BINARY" ALLOWS THE COMMAND * "SET BIN-MODE YYY" TO BE ENTERED. * YYY IS "PACKED" (THE DEFAULT) OR "8/12". * PACKED READS/STUFFS 7.5 BYTES INTO A CM WORD. * 8/12 READS/PUTS EACH 8-BIT BYTE INTO A 12-BIT BYTE. * THE DEFAULT MAY BE CHANGED AS FOLLOWS - * * *DEFINE,BIN812 * * 2. MAKE EOR/EOF CONVERSION TO #EOR/#EOF OPTIONAL. * #EOR/#EOF LINES CREATED IN/TRANSLATED FROM * TEXT FILES ON A MICRO ARE GREAT FOR PRESERVING * EOR/EOF MARKS AND FOR USE WITH CDC-RELEASED * FILE TRANSFER PACKAGES, BUT ARE EXTREMELY * ANNOYING FOR USERS WHO DON'T CARE ABOUT EOR-S * AND DON'T USE THE CDC PACKAGES. THEREFORE, * THE "SET EOR-EOF-MODE ZZZ" COMMAND ALLOWS THE USER * TO SELECT WHAT HE WANTS. ZZZ IS "ON" TO * CREATE/RECOGNIZE THE LINES, "OFF" IF NOT TO. * THE DEFAULT IS "ON", BUT MAY BE CHANGED WITH * * *DEFINE,EORMOFF * * 3. ADD SUPPORT FOR CDCNET. DIFFERENT 0016 CONTROL BYTE * SEQUENCES ARE USED DEPENDING ON WHETHER KERMIT * IS ACCESSED FROM A CDCNET OR NPU LINE. * *I KERMIT.424 * FILMODE IS SET TO TEXT OR BINARY. IF TEXT, * THEN TXTMODE IS RELEVANT. TXTMODE IS SET BY THE * SET TEXT-MODE COMMAND TO CSNONE, CSDSP, CS812, * OR CS612. IF BINARY, THEN BINMODE IS RELEVANT. * BINMODE IS CORRESPONDINGLY SET BY THE SET BIN-MODE * COMMAND TO CSB812 OR CSBIN. * WHEN A FILE IS BEING READ OR WRITTEN, THE FCSET ENTRY * IS SET TO CSDSP, CS812, CS612, CSTXP, CSBIN OR * CSB812, DEPENDING ON THE SETTINGS OF THE ABOVE * PARAMETERS, AND, IF FILMODE=TEXT, TXTMODE=NONE, * THE CONTENTS OF THE FILE BEING READ. *I KERMIT.429 *IF -DEF,TEXTDISP,3 *IF -DEF,TEXT612,2 *IF -DEF,TEXT812,1 *I KERMIT.430 *IF DEF,TEXTDISP,1 DATA TXTMODE / CSDSP / *IF DEF,TEXT612,1 DATA TXTMODE / CS612 / *IF DEF,TEXT812,1 DATA TXTMODE / CS812 / *IF DEF,EORMOFF,1 DATA EOCONV / .FALSE. / *IF -DEF,EORMOFF,1 DATA EOCONV / .TRUE. / *IF DEF,BIN812,1 DATA BINMODE / CSB812 / *IF -DEF,BIN812,1 DATA BINMODE / CSBIN / *D 493,494 DATA VERSION / '^CYBER-170/^N^O^S ^K^E^R^M^I^T ^VER 3.4 @S\N' / DATA HLPASCH / '^DECIMAL, OCTAL (^B), OR HEXADECIMAL (^H) CODE FOR *D 668,669 CALL USTART IF ( AND( SHIFT(TSTATUS(2),-48),O"77") .NE. 2 ) THEN CALL REMARK(' KERMIT - JOB IS NOT INTERACTIVE') *I 671 NETTYPE = SHIFT(TSTATUS(2),-54) *D 1037,1038 PARAMETER (TSIZE=12) CHARACTER*15 SETTYP(TSIZE) *D 1041 + 'TEXT-MODE', 'BIN-MODE', 'EOR-EOF-MODE' / *D 1046 GO TO (20,30,40,10,50,70,75,80,90,100,110,120), INDX *I 1096 * SET BINARY MODE (8/12, PACKED) 110 CALL BINMCMD RETURN * SET EOR-EOF LINE MODE (OFF OR ON) 120 CALL EOMDCMD RETURN *D KERMIT.1150 CALL FPRINTF(STDOUT,'^BINARY (',0,0,0,0) IF(BINMODE .EQ. CSB812) THEN CALL FPRINTF(STDOUT,'8/12)',0,0,0,0) ELSE CALL FPRINTF(STDOUT,'PACKED)',0,0,0,0) ENDIF *I 1160 * DISPLAY THE EOR/EOF FLAG CALL FPRINTF(STDOUT,' ^EOR/^EOF LINES: ',0,0,0,0) IF(EOCONV) THEN CALL FPRINTF(STDOUT,'^ON\N',0,0,0,0) ELSE CALL FPRINTF(STDOUT,'^OFF\N',0,0,0,0) ENDIF *D 1213,1214 CALL FPRINTF(STDOUT,'^INIT PACKET RETRY COUNT: @D ',MAXRINI, +0,0,0) *I KERMLIB.51 SUBROUTINE BINMCMD *** BINMCMD - PERFORM A SET BIN-MODE XXXX COMMAND IMPLICIT INTEGER (A-Z) PARAMETER (COMLIS = 0) *CALL COMCKER LOGICAL CONFIRM PARAMETER (TSIZE=2) CHARACTER*10 MODETYP(TSIZE) DATA MODETYP / 'PACKED', '8/12' / INDX = MATCH(MODETYP,TSIZE,.FALSE.) IF (INDX .LE. 0) RETURN IF (.NOT. CONFIRM(CMDFD)) RETURN GO TO (10, 20), INDX * SET PACKED (7.5 BYTES PER CM WORD) BINARY MODE 10 BINMODE = CSBIN RETURN * SET 8/12 BINARY MODE 20 BINMODE = CSB812 RETURN END *D 126 IF (FCSET(FD).EQ.CSBIN .OR. FCSET(FD).EQ.CSB812) THEN *D KERMLIB.322 COMMENT CHECK FILES EXISTENCE *D 324 ** CFE - CHECK FILES EXISTENCE. *I KERMLIB.995 SUBROUTINE EOMDCMD *** EOMDCMD - PERFORM A SET EOR-EOF-MODE XXXX COMMAND IMPLICIT INTEGER (A-Z) PARAMETER (COMLIS = 0) *CALL COMCKER LOGICAL CONFIRM PARAMETER (TSIZE=2) CHARACTER*5 MODETYP(TSIZE) DATA MODETYP / 'OFF', 'ON' / INDX = MATCH(MODETYP,TSIZE,.FALSE.) IF (INDX .LE. 0) RETURN IF (.NOT. CONFIRM(CMDFD)) RETURN GO TO (10, 20), INDX * DON'T RECOGNIZE OR PRODUCE EOR/EOF LINES 10 EOCONV = .FALSE. RETURN * RECOGNIZE/PRODUCE EOR/EOF LINES 20 EOCONV = .TRUE. RETURN END *D 1162 * TEXT MODE AND NOT A CONNECTED FILE IF (FCHBUF(1,FD).EQ.EORLINE .AND. EOCONV) THEN *D 1164 ELSE IF (FCHBUF(1,FD).EQ.EOFLINE .AND. EOCONV) THEN *I 1403 * = *CSB812* FOR 8/12 BINARY *D 2059 IF (FCSET(FD).EQ.CSBIN .OR. FCSET(FD).EQ.CSB812) THEN *D 2074 IF (FCSET(FD).EQ.CSBIN .OR. FCSET(FD).EQ.CSB812) THEN *I 2096 IF (EOCONV) THEN *I 2098 ENDIF *I 2102 IF (EOCONV) THEN *I 2104 ENDIF *I 2107 IF (EOCONV) THEN *I 2109 ELSE NWDS = 0 ENDIF *D 2638 ELSE IF ( FCSET(FD).NE.CSBIN .AND. FCSET(FD).NE.CSB812 ) THEN *I 2672 IF (NETTYPE .EQ. CCP) THEN *I 2673 ELSE * SET IEM=1 FOR CDCNET FCHBUF(FNWDS(FD),FD) = O"0010 4202 4001 4001 0000" ENDIF *I 2696 IF (FCSET(FD).EQ.CSB812) THEN IF (CH.EQ.0) CH=O"4000" ENDIF *D 3414 FFD = FOPEN(FILENAM,CREATE,BINMODE) *D 4156 FFD = FOPEN(FILENAM,RD,BINMODE) *D 4159 SFILE = A *I 4630 IF (NETTYPE .EQ. CCP) THEN * EP=N *I 4631 ELSE FCHBUF(1,STDOUT) = O"0010 4332 4001 4000 0000" ENDIF *I 4633 IF (NETTYPE .EQ. CCP) THEN * EP=Y *I 4634 ELSE FCHBUF(1,STDOUT) = O"0010 4332 4001 4001 0000" ENDIF *I 4642 IF (NETTYPE .EQ. CCP) THEN * SET MULTIMESSAGE TRANSPARENT INPUT. * XL=X0D, C4094 (NO TIMEOUT, 2 CARRIAGE RETURNS IN A ROW * TERMINATE XPT INPUT), MULTIMESSAGE=YES, EP=N, * IN=XPT, TRANSMISSION BLOCK SIZE = 3770B. *I 4648 ELSE * EP=NO * HOLD-PAGE=NO * XPT-TERMINATE-CHAR = 0D OR 8D * XPT-FORWARD-CHAR = 0D OR 8D * XPT-CHARACTER-MODE = FORWARD-TERMINATE * XPT-MESSAGE-LENGTH = 4094 * XPT-LENGTH-MODE = FORWARD-EXACT * INPUT-BLOCK-SIZE = 2000 * INPUT-EDITING-MODE = XPT FCHBUF(1,STDOUT) = O"0010 4332 4001 4000 4311" FCHBUF(2,STDOUT) = O"4001 4000 4205 4002 4015" FCHBUF(3,STDOUT) = O"4215 4204 4002 4015 4215" FCHBUF(4,STDOUT) = O"4203 4001 4003 4210 4002" FCHBUF(5,STDOUT) = O"4017 4376 4207 4001 4003" FCHBUF(6,STDOUT) = O"4214 4002 4007 4320 4202" FCHBUF(7,STDOUT) = O"4001 4001 0000 0000 0000" FNWDS(STDOUT) = 7 ENDIF *I 4655 IF (NETTYPE .EQ. CCP) THEN * IN = NOT TRANSPARENT *I 4656 ELSE * IEM = NORMAL FCHBUF(1,STDOUT) = O"0010 4202 4001 4000 0000" ENDIF *I 4658 IF (NETTYPE .EQ. CCP) THEN * EP=Y, IN = NOT TRANSPARENT *I 4660 ELSE * EP=Y, IEM = NORMAL FCHBUF(1,STDOUT) = O"0010 4332 4001 4001 4202" FCHBUF(2,STDOUT) = O"4001 4000 0000 0000 0000" ENDIF *D 4689 DATA MODETYP / 'AUTO', 'DISPLAY', '6/12', '8/12' / *I 4753 USE /OPSYS/ TSTATUS BSS 2 USE * *D 4760 *I 4762 TSTATUS TSTATUS *D 4765,4767 */ END OF MOD