home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
ncr9800.tar.gz
/
ncr9800.tar
/
ivskpm.pro
< prev
next >
Wrap
Text File
|
1990-07-13
|
18KB
|
633 lines
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;