PROCEDURE IVSKPM(COMMAND : STRING := ' '); % % ************************ % * COPYRIGHT NCR CORP. * % * DAYTON, OHIO * % * 1990 * % ************************ % % ************************************************* % * % * THIS SCL PROCEDURE FILE INITIALIZES IVS-KERMIT % * FOR TRANSFERRING % * FILES TO THE CATALOG OR SUD=D02 % * % * CREATED BY THE V-KERMIT PROJECT TEAM ON 8-18-89 % * % * % ************************************************* % DISPLAY : ' BEGINNING IVSKPM FOR IVS-KERMIT FILE TRANSFERS.'; DISPLAY : ' FOR GENERIC FILE USE.'; DISPLAY : ' UPDATED ON 6-20-90.'; DISPLAY : ' '; DISPLAY : ' IVS-KERMIT 2.01 NOW HANDLES:'; DISPLAY : ' 1000 BYTE PACKETS.'; DISPLAY : ' '; DISPLAY : ' MOVE kermrc TO YOUR'; DISPLAY : ' SOURCE/DESTINATION CATALOG NODE'; DISPLAY : ' AND SUD=D02'; DISPLAY : ' BEFORE CONTINUING.'; DISPLAY : ' '; DISPLAY : ' REFER TO THE V-KERMIT FS FOR MS-DOS FILE NAME EXTENSIONS'; DISPLAY : ' USED FOR VRX FILES.'; DISPLAY : ' '; DISPLAY : ' EXAMPLES ARE: FN.N3(JOB),FN.PRO(SCL PROC),FN.C(C),'; DISPLAY : ' FN.CO(COBOL),FN.NCR(NCRL),FN.NC(NEAT/C),'; DISPLAY : ' FN.BIN(BINARY DATA FILE).'; DISPLAY : ' OBJECT FILES(USE FN.OBJ).'; DISPLAY : ' '; DISPLAY : ' WARNINGS:'; DISPLAY : ' IF YOUR IVS SESSION USES A DSP COMM PORT,'; DISPLAY : ' MAX PACKET SIZE IS 222.'; DISPLAY : ' '; % % ************************************************* % * VARIABLE DEFINITIONS % ************************************************* % LOCAL MSG : STRING, ENV : STRING, VSN : STRING, DTYPE : STRING, VOL_INT : INTEGER, NODE : STRING, NODENAME : NAME, ACTION : STRING, P1 : PROCESS, VMEM_IVSK : INTEGER, LDSA_IVSK : INTEGER, PDSA_IVSK : INTEGER, FILESIZ : STRING, RSTRT_FLAG: BOOLEAN, DEFAULTS : STRING, ORG_CHOICE : STRING, REC_TYPE : STRING; % % ************************************************* % RSTRT_FLAG := FALSE; FILESIZ := '500'; % FILEL CAT/NOCAT; % FILEC CAT; % DISPLAY : ' PLEASE WAIT.'; BEGIN % IF (MYJOB(VMAXMEM) < 800); THEN MYJOB(VMAXMEM) := 800; DISPLAY : ' TOO LITTLE VMAXMEM,'; DISPLAY : ' VMAXMEM HAS BEEN SET TO 800.'; RSTRT_FLAG := TRUE; VMEM_IVSK := 800; ELSE VMEM_IVSK := MYJOB(VMAXMEM); IFEND; % IF (MYJOB(LOCALDSA) < 1000); THEN MYJOB(LOCALDSA) := 1000; DISPLAY : ' TOO LITTLE LOCALDSA,'; DISPLAY : ' LOCALDSA HAS BEEN SET TO 1000.'; RSTRT_FLAG := TRUE; LDSA_IVSK := 1000; ELSE LDSA_IVSK := MYJOB(LOCALDSA); IFEND; % IF (MYJOB(PROTECTDSA) < 800); THEN MYJOB(PROTECTDSA) := 800; DISPLAY : ' TOO LITTLE PROTECTDSA,'; DISPLAY : ' PROTECTDSA HAS BEEN SET TO 800.'; RSTRT_FLAG := TRUE; PDSA_IVSK := 800; ELSE PDSA_IVSK := MYJOB(PROTECTDSA); IFEND; % IF (RSTRT_FLAG = TRUE); THEN RSTRT_FLAG := FALSE; DISPLAY : ' RE-EXECUTE IVSKP.'; REC(V=#VMEM_IVSK,LOCALDSA=#LDSA_IVSK,PROTECTDSA=#PDSA_IVSK); RETURN : ' END OF IVSKP.'; IFEND; % END; % % ********************************************* % * SOLICITATION OF SETUP OPTIONS FOR MICKEY % * USER ACCEPTS DEFAULTS(DEFAULTS IN PARENS)? % * -FILE SOURCE/DEST(CAT) % * -NODE(USER CURRENT) % * -VOLUME/TYPE(CURRENT D02) % * -FILE SPECIFICATIONS FOR REF=DATAFILE % * -PRINTER FONT/FORM UPLOADS(NO) % * -FILESIZE FOR D02 AND FONT/FORMS(500 BLOCKS) % * -FIXED LENGTH DATAFILE RECORDS(NO) % * % ******************************************************* % % DISPLAY : ' PLEASE WAIT.'; BEGIN % % ****************************************************** % * ASKING USER FOR ACCEPTANCE OF DEFAULTS % * % ****************************************************** % DISPLAY : ' '; DISPLAY : ' '; DISPLAY : ' PLEASE SELECT THE IVS-KERMIT ENVIRONMENT.'; DISPLAY : ' '; DISPLAY : ' THE IVS-KERMIT ENVIRONMENT DEFAULTS ARE:'; DISPLAY : ' '; DISPLAY : ' DATA FILES WITH:'; DISPLAY : ' - SEQUENTIAL ORGANIZATION.'; DISPLAY : ' (THERE IS A CHOICE FOR RELATIVE(FONT/FORM) '; DISPLAY : ' FILE STRUCTURE.)'; DISPLAY : ' - FILESIZE OF 500/BLOCKS '; DISPLAY : ' - VARIABLE LENGTH RECORDS '; DISPLAY : ' '; DISPLAY : ' FILE SOURCE/DESTINATION OF:'; DISPLAY : ' - USER CURRENT NODE IN CATALOG.'; DISPLAY : ' '; DISPLAY : ' DO YOU WANT TO ACCEPT THESE DEFAULTS? [Y,N]'; DISPLAY : ' DEFAULT IS YES.'; ACCEPT DEFAULTS; % IF (SUBSTRING(DEFAULTS,0,1) /= 'N') THEN DEFAULTS := 'YES'; ENV := 'CAT'; REC_TYPE := 'VAR'; ORG_CHOICE := 'NO'; FILESIZ := '500'; GOTO TAG5; IFEND; % % % % ******************************************************* % * DEFAULTS NOT ACCEPTED % ******************************************************* DISPLAY : ' WILL YOU UPLOAD PRINTER FONT/FORM FILES? [Y,N]'; DISPLAY : ' IF YES, ALL DATA FILES WILL HAVE'; DISPLAY : ' THE RELATIVE ORGANIZATION.'; DISPLAY : ' DEFAULT IS NO.'; ACCEPT ORG_CHOICE; % IF (SUBSTRING(ORG_CHOICE,0,1) = 'Y') THEN ORG_CHOICE := 'YES'; REC_TYPE := 'VAR'; ELSE ORG_CHOICE := 'NO'; % % **************************************************** % * ASKING FOR FIXED/VARIABLE RECORD TYPE. % **************************************************** DISPLAY : ' DO YOU WANT DATAFILES TO HAVE FIXED OR'; DISPLAY : ' VARIABLE LENGTH RECORDS? [F,V]'; DISPLAY : ' DEFAULT IS VARIABLE.'; ACCEPT REC_TYPE; % IF (SUBSTRING(REC_TYPE,0,1) /= 'F') THEN REC_TYPE := 'VAR'; ELSE REC_TYPE := 'FIX'; IFEND; % IFEND; % % ****************************************************** % * ASKING FOR FILE SOURCE/DESTINATION. % ****************************************************** % $TAG2 DISPLAY : ' SELECT IVS-KERMIT SOURCE/DESTINATION ENVIRONMENT. ' ; MSG := ' DEFAULT ENVIRONMENT IS CATALOG. [CAT,DISK]'; DISPLAY : MSG; ACCEPT ENV; % IF ((SUBSTRING(ENV,0,1) /= 'C') AND (SUBSTRING(ENV,0,1) /= 'D') AND (SUBSTRING(ENV,0,1) /= '')) THEN GOTO TAG2; IFEND; % IF ((SUBSTRING(ENV,0,1) = 'C') OR (SUBSTRING(ENV,0,1) = '')) THEN % ****************************************************** % * CATALOG SELECTED;ASKING FOR NODE. % ****************************************************** $TAG3 DISPLAY : ' PLEASE ENTER SUBCATALOG NODE NAME. ' ; DISPLAY : ' USE SINGLE QUOTES. EX: ''$.NODE.NODE''.'; MSG := ' DEFAULT IS THE USER CURRENT NODE.'; DISPLAY : MSG; ACCEPT NODE; % IF (NODE = '') THEN GOTO TAG5; ELSE NODENAME := #NODE; FILENODE #NODENAME [P1]; IFEND; % IF (P1(STATUS) /= COMPLETED) THEN DISPLAY : ' CANT POSITION TO ' & #NODE & '.'; MSG := ' DO YOU WANT TO TRY ANOTHER SUBCATALOG? [Y,N].'; DISPLAY : MSG; ACCEPT ACTION; % IF (SUBSTRING(ACTION,0,1) = 'N') THEN RETURN : ' END OF IVSKPM'; ELSE GOTO TAG3; IFEND; % IFEND; % $TAG5 DISPLAY : ' '; DISPLAY :' IVS-KERMIT USING CATALOG ENVIRONMENT.' ; % * FILEC OF CAT IS TO KNOW WHERE STDERR WILL BE. FILEC CAT; FILEN; % IF (SUBSTRING(ORG_CHOICE,0,1) = 'Y') THEN % % ********************************************* % * FILE 'REFERENCE' OF 'DATAFILE' IS USED FOR % * FONT/FORM FILES % * % * FILESIZE MUST BE FOR THE LARGEST % * FILE ANTICIPATED BECAUSE RELATIVE FILES ARE NOT RMS. % * % ************************************************ % % IF (DEFAULTS /= 'YES') THEN % ********************************************* % * ASKING ABOUT FILE SIZE % * IN THE CATALOG,VARIABLE,FONT/FORM CASE. % * % * FONT/FORM FILES % * % * FILESIZE MUST BE FOR THE LARGEST % * FILE ANTICIPATED BECAUSE RELATIVE FILES % * ARE NOT RMS. % * % ************************************************ % % DISPLAY : ' '; DISPLAY : ' SPECIFY FILESIZE VALUE FOR DATAFILE REFERENCE'; DISPLAY : ' THAT IS BIG ENOUGH TO HOLD THE LARGEST '; DISPLAY : ' FONT/FORM FILE TO BE UPLOADED.'; DISPLAY : ' DEFAULT FILESIZE IS 500/BLOCKS.'; ACCEPT FILESIZ; % IF ((SUBSTRING(FILESIZ,0,1) = '') OR (SUBSTRING(FILESIZ,0,1) = 'A')) THEN FILESIZ := '500'; IFEND; % IFEND; % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE FONT/FORM CASE USING CATALOG. % ************************************************ ASSIGN FILE DATAFILE(REF=DATAFILE, % ************************************ % * THE FOLLOWING 5 PARAMETERS ARE % * FOR FONT/FORM UPLOADS % ************************************ ORGANIZATION=RELATIVE, BLOCKSIZE=1/RECORDS, CAMHEADER, RECORDSIZE=1/485, FILESIZE=#FILESIZ/BLOCKS, DATESCHEME=GEN,FILETYPE=DATA,FREEUP,CATALOG); ELSE % IF (SUBSTRING(REC_TYPE,0,1) = 'F') THEN % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE FIXED LENGTH RECORDS, NON FONT/FORM % * CASE USING CATALOG. % ************************************************ ASSIGN FILE DATAFILE(REF=DATAFILE,RMS=YES, % ************************************ % * THE FOLLOWING PARAMETERS ARE % * FOR FIXED LENGTH RECORDS % ************************************ RECORDSIZE=80, DATESCHEME=GEN,FILETYPE=DATA,FREEUP,CATALOG); ELSE % % ******************************************* % * FILE 'REFERENCE' OF 'DATAFILE' IS USED FOR % * BINARY AND TEXT 'DATA' FILES % * % * % ******************************************* % % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE VARIABLE LENGTH RECORDS, NON FONT/FORM % * CASE USING CATALOG. % * % * THIS IS CONSIDERED TO BE THE OVERALL % * DEFAULT CASE. % * % ************************************************ ASSIGN FILE DATAFILE(REF=DATAFILE,RMS=YES, RECORDSIZE=1/485, DATESCHEME=GEN,FILETYPE=DATA,FREEUP,CATALOG); IFEND; % IFEND; % **************************************************** % * ASSIGNING THE OTHER FILE REFERENCES IN THE % * CATALOG CASE. % **************************************************** ASSIGN FILE SRCFILE(REF=SRCFILE,RMS=YES,FILESIZE='NO LIMIT', RECORDSIZE=1/83, DATESCHEME=GEN,FILETYPE=SOURCE,FREEUP,CATALOG), FILE OBJFILE(REF=OBJFILE,RMS=YES,FILESIZE='NO LIMIT', RECORDSIZE=1/490, DATESCHEME=GEN,FILETYPE=OBJECT,FREEUP,CATALOG), FILE CSFILE(REF=CSFILE,RMS=YES,FILESIZE='NO LIMIT', FREEUP,DATESCHEME=GEN, RECORDSIZE=1/82, FILETYPE='CONTROL STRING',CATALOG); % **************************************************** % * END OF THE CATALOG CASE. % **************************************************** ELSE % ****************************************************** % * BEGINNING OF THE SUD=D02 CASE. % ****************************************************** DISPLAY : ' '; DISPLAY :' IVS-KERMIT USING NON-CATALOG ENVIRONMENT.' ; $TAG4 % ****************************************************** % * ASKING ABOUT SUD=D02. % ****************************************************** DI PER; DISPLAY : ' PLEASE ENTER(IN QUOTES) VOLUME NUMBER AND DEVICE TYPE.' ; DISPLAY : ' FOR EXAMPLE (''525252/BA'')'; DISPLAY : ' OR [CONTINUE] TO USE CURRENT D02.'; ACCEPT VSN; % IF (SUBSTRING(VSN,0,1) = 'C') THEN DISPLAY : ' IVS-KERMIT USING CURRENT D02.'; ELSE VOL_INT := INT(SUBSTRING(VSN,0,6)); DTYPE := SUBSTRING(VSN,7,2); ASSIGN UNIT D02(SUD=D02,VOL=#VOL_INT,TYPE=#DTYPE) [P1]; % IF (P1(STATUS) /= COMPLETED) THEN DISPLAY : ' CANT ASSIGN VOLUME ' & SUBSTRING(VSN,0,6) & ' WITH DEVICE TYPE ' & DTYPE & '. ' ; MSG := ' DO YOU WANT TO TRY ANOTHER VOLUME? '; DISPLAY : MSG; DISPLAY : ' OR CONTINUE WITH CURRENT D02? [Y,N,CONTINUE]'; ACCEPT ACTION; % IF (SUBSTRING(ACTION,0,1) = 'N') THEN RETURN : ' END OF IVSKPM'; ELSE % IF (SUBSTRING(ACTION,0,1) /= 'C') THEN GOTO TAG4; ELSE VSN := ''; DISPLAY : ' '; DISPLAY : ' IVS-KERMIT USING CURRENT D02.'; IFEND; % IFEND; % ELSE % IF(VSN /= '') THEN DISPLAY : ' '; DISPLAY : ' IVS-KERMIT USING VOLUME ' & #VSN & '.'; IFEND; % IFEND; % IFEND; % ******************************************* % * ASKING ABOUT FILE SIZE % * IN THE D02 CASE. % * % * % * % * % ******************************************* % % % ********************************************* % * FILE 'REFERENCE' OF 'DATAFILE' IS USED FOR % * BINARY AND TEXT 'DATA' FILES % * % * FILESIZE MUST BE FOR THE LARGEST % * FILE ANTICIPATED % * % ************************************************ % % DISPLAY : ' '; DISPLAY : ' ENSURE THAT ENOUGH SPACE EXISTS ON D02'; DISPLAY : ' FOR THE LARGEST UPLOADED FILE.'; DISPLAY : ' ENSURE THAT THE D02 DATAFILE FILESIZE PARAMETER'; DISPLAY : ' IS BIG ENOUGH TO HOLD THE LARGEST FILE.'; DISPLAY : ' '; DISPLAY : ' SPECIFY FILESIZE VALUE FOR D02 DATAFILE REFERENCE'; DISPLAY : ' USED BY DATA FILES.'; DISPLAY : ' DEFAULT FILESIZE IS 500/BLOCKS.'; ACCEPT FILESIZ; % IF ((SUBSTRING(FILESIZ,0,1) = '') OR (SUBSTRING(FILESIZ,0,1) = 'A')) THEN FILESIZ := '500'; IFEND; % IF (SUBSTRING(ORG_CHOICE,0,1) = 'Y') THEN % % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE FONT/FORM CASE USING D02. % ************************************************ ASSIGN FILE DATAFILE(REF=DATAFILE,RMS=NO,SUD=D02,FREEUP, DATESCHEME=GEN,NOCAT, FILESIZE=#FILESIZ/BLOCKS, % ************************************ % * THE FOLLOWING 4 PARAMETERS ARE % * FOR FONT/FORM UPLOADS % ************************************ ORGANIZATION=RELATIVE, BLOCKSIZE=1/RECORDS, CAMHEADER, RECORDSIZE=1/485, FILETYPE=DATA); ELSE % IF (SUBSTRING(REC_TYPE,0,1) = 'F') THEN % % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE FIXED LENGTH RECORD, NON FONT/FORM CASE % * USING D02. % * % * THIS IS CONSIDERED TO BE THE % * 'FIXED ACQUISITION' CASE. % ************************************************ ASSIGN FILE DATAFILE(REF=DATAFILE,RMS=NO,SUD=D02,FREEUP, DATESCHEME=GEN,NOCAT, FILESIZE=#FILESIZ/BLOCKS, % ************************************ % * THE FOLLOWING PARAMETERS ARE % * FOR FIXED LENGTH RECORDS % ************************************ RECORDSIZE=80, FILETYPE=DATA); ELSE % % % ************************************************ % * ASSIGNING REF=DATAFILE % * IN THE VARIABLE LENGTH RECORD, NON FONT/FORM % * CASE USING D02. % ************************************************ % % ******************************************* % * FILE 'REFERENCE' OF 'DATAFILE' IS USED FOR % * BINARY AND TEXT 'DATA' FILES % * % * % ******************************************* % ASSIGN FILE DATAFILE(REF=DATAFILE,RMS=NO,SUD=D02,FREEUP, DATESCHEME=GEN,NOCAT, FILESIZE=#FILESIZ/BLOCKS, RECORDSIZE=1/485, FILETYPE=DATA); IFEND; % IFEND; % % % % **************************************************** % * ASSIGNING THE OTHER FILE REFERENCES IN THE % * D02 CASE. % **************************************************** % ASSIGN FILE SRCFILE(REF=SRCFILE,RMS=NO,SUD=D02,FREEUP, RECORDSIZE=1/82, FILESIZE=200/BLOCKS,DATESCHEME=GEN,NOCAT, FILETYPE=SOURCE), FILE OBJFILE(REF=OBJFILE,RMS=NO,SUD=D02,FREEUP, FILESIZE=1000/BLOCKS,RECORDSIZE=1/490, DATESCHEME=GEN,FILETYPE=OBJECT,NOCAT), FILE CSFILE(REF=CSFILE,RMS=NO,SUD=D02,FREEUP, FILESIZE=200/BLOCKS,RECORDSIZE=1/82,NOCAT, DATESCHEME=GEN,FILETYPE='CONTROL STRING'); % % % FILEL NOCAT; % * FILEC IS TO KNOW WHERE STDERR WILL BE. FILEC NOCAT; % ****************************************************** % * END OF THE SUD=D02 CASE. % ****************************************************** IFEND; % END; % % ********************************************* TERMCHNG('796401'); DEPOT(UNSOLICITED=DROP); DEPOT(WIDTH=2048); DEPOT(LENGTH=999); DEPOT(WAIT=FALSE); % % ************************************************ % ARGS := #COMMAND & ' 2> STDERR '; DISPLAY : ' '; DISPLAY : ' EXECUTING LOAD MODULE WERMIT.'; % % MUST SPECIFY LOCATION OF LOAD MODULE IVSKERM(ARGS); DISPLAY : ' IVS-KERMIT TERMINATED.'; % BEGIN DISPLAY : ' PRINTING IVS-KERMIT TRANSFER HISTORY LOG(STDERR).'; DISPLAY : ' PLEASE WAIT.'; PUSH; FREE DEFAULT_PRINTER; ASSIGN PRINTER DEFAULT_PRINTER(SUD=P01); % IF (VSN /= '') THEN EXECUTE PRINT,SPEC='(NAME=STDERR,AGE=NEW,SUD=D02,NOCAT' & ') FORMAT=RECORDS,ASCII ONLY;'; ELSE EXECUTE PRINT,SPEC='(NAME=STDERR,AGE=NEW) FORMAT=RECORDS,ASCII ONLY;'; IFEND; % QUEUE DEFAULT_PRINTER; FREE DEFAULT_PRINTER; ASSIGN PRINTER DEFAULT_PRINTER(SUD=P01,TYPE=TERMINAL); POP; DISPLAY : ' END OF PRINTING STDERR.'; END; % IF (VSN /= '') THEN FREE D02; IFEND; % FREE DATAFILE; FREE SRCFILE; FREE OBJFILE; FREE CSFILE; % FILEL CAT/NOCAT; % FILEC CAT; % IF ( NODE = '') THEN FILEN; ELSE FILEN USER; FILEN; IFEND; % DEPOT(UNSOLICITED=NOTIFY); DEPOT(WIDTH=80); DEPOT(LENGTH=23); DEPOT(WAIT=TRUE); DISPLAY : ' END OF IVSKP.'; PROCEND IVSKPM;