cdc:nos2.source:nam5871:inip
Table of Contents
INIP
Table Of Contents
- [00014] PRGM INIP
- [00094] PROC IKDIS
- [00095] PROC ISCP
- [00096] PROC ITABS
- [00097] PROC OMSG
- [00098] PROC OTIME
- [00099] PROC NXDCB
- [00100] PROC OVLCALL
- [00101] PROC XTRACE
Source Code
- INIP.txt
- *DECK INIP
- USETEXT NIPDEF
- USETEXT BPIPBUF
- USETEXT FREETAB
- USETEXT INPARUT
- USETEXT MEM
- USETEXT MSGIDX
- USETEXT STATTAB
- USETEXT STATTB2
- USETEXT SYSCOMD
- USETEXT SYSTIME
- USETEXT OVERLAY
- USETEXT DBGBUF
- PRGM INIP; # NIP INITIALIZATION PROCEDURE #
- *CALL NAMLEV
- STARTIMS;
- #
- *1DC INIP
- *
- * 1. PROC NAME AUTHOR DATE
- * INIP S. WATANABE 80/03/25
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * THIS ROUTINE IS RESPONSIBLE FOR SETTING UP NIP-S TABLES, POTS
- * AND BUFFERS PLUS WHATEVER INITIALIZATION IS NEEDED.
- *
- * 3. METHOD USED.
- * INITIALIZE TABLES AND FREETAB
- * INITIALIZE NIP AS A SYSTEM-CONTROL-POINT
- * INITIALIZE K DISPLAY
- * DISPLAY INITIALIZED MESSAGE
- *
- * 4. ENTRY PARAMETERS. NONE
- *
- * 5. EXIT PARAMETERS. NONE
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * NIPDEF BPIPBUF FREETAB
- * OSIZE STATTB2 SYSCOMD
- * SYSTIME
- *
- * 7. ROUTINES AND OVERLAYS CALLED.
- * IKDIS INITIALIZE K DISPLAY
- * ILOFS INITIALIZE LIST OF FILES
- * ISCP INITIALIZE NIP AS SCP
- * ITABS INITIALIZE TABLES AND FREETAB
- * ITRACE INITIALIZE TRACE BUFFER
- * OMSG ISSUE DAYFILE MESSAGE
- * OTIME GET SYSTEM TIME
- * XTRACE TRACES CALLS
- *
- * 8. DAYFILE MESSAGES.
- * *NAM VER 1.2- NNN* AND
- * *NAM REG LEVEL 0*
- * THESE MESSAGES DISPLAYED WHEN INITIALIZATION PROCEDURES
- * HAVE BEEN COMPLETED.
- *
- * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
- * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
- * TO RETURN TO THE CALLING PROGRAM.
- *
- * W A R N I N G - THIS PROGRAM IS LOADED WITH IKDIS,
- * ISCP, ITABS, AND ITRACE. THE SUM
- * OF THEIR SIZES MUST NOT EXCEED THE
- *CALL OSIZE
- *
- * THIS OVERLAY IS CALLED BY NIP.
- *
- #
- STOPIMS;
- #
- PARAMETERS
- INPUT NONE
- OUTPUT NONE
- #
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN # RA COMMUNICATION AREA #
- ARRAY ARG[1:22] S(1);
- BEGIN
- ITEM ARGSYM C(00,00,07); # ARGUMENT VALUE #
- ITEM ARGSEP U(00,NL,AL); # ARGUMENT SEPERATOR #
- ITEM ARGWORD U(00,00,60); # WHOLE WORD #
- END
- ARRAY ACT[0:0] S(1);
- BEGIN
- ITEM ACTCOUNT U(00,NL,AL); # ARGUMENT COUNT #
- END
- END
- XREF BEGIN
- PROC IKDIS; # INITIALIZE K DISPLAY #
- PROC ISCP; # INITIALIZE NIP AS A SYSTEM CP #
- PROC ITABS; # INITIALIZE NBT,POA,CET,AT,TNT,FREETAB #
- PROC OMSG; # DAYFILE MESSAGE IN NIP"S DAYFILE #
- PROC OTIME; # GET SYSTEM TIME #
- PROC NXDCB; # CONVERT DISPLAY CODE TO BINARY #
- PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
- PROC XTRACE; # TRACE CALLS #
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- END
- #
- LOCAL VARIABLES
- #
- ITEM I U=0; # COUNTER FOR CARD-PARAMETERS #
- ITEM J U=0; # INDEX INTO THE TABLE OF VALID PARAMETERS #
- ITEM PARRC U=0; # REASON CODE FOR CARD ERROR #
- ITEM LEN U=0; # MAXIMUM LENGTH ALLOWED FOR PARAMETER VALUE #
- ITEM NUM U; #DISPLAY CODE DIGIT#
- ITEM DIGIT U; #EITHER 10 OR 8#
- ITEM DONE B; #DONE FLAG#
- ITEM N U; #INDEX#
- ITEM PARV U=0; # PARAMETER VALUE #
- ITEM PARCHAR C(1);
- ITEM ERROR B; # ERROR FLAG RETURNED FROM CONV. RTN. #
- #
- MISC DEFS
- #
- DEF EQUAL #O"54"#;
- DEF YES #O"31052300000000"#;
- DEF YY #O"31000000000000"#;
- DEF NO #O"16170000000000"#;
- DEF NN #O"16000000000000"#;
- DEF MAXPARAM #12#; #NUMBER OF VALID PARAMETERS#
- DEF MAXERRS #08# ; # MAXIMUM ERROR MESSAGES ACTIVE #
- # #
- SWITCH PARLAB PARNIN,IFSTP,IFSTP,PRUU,PRUU,PRUU,
- PARMC,PARACT,PARFL,PRUU,PRUU,PRUU,PARERR;
- #
- ARRAY AND MESSAGE ARRAYS
- #
- ARRAY PARS [0:MAXPARAM] S(1);
- BEGIN
- ITEM PARVAL U(0,00,42) = [
- O"16111600000000", # NIN #
- O"11232420000000", # ISTP #
- O"06232420000000", # FSTP #
- O"16342022250200", # N1PRUB #
- O"16352022250200", # N2PRUB #
- O"16362022250200", # N3PRUB #
- O"15030000000000", # MC #
- O"11160103240000", # INACT #
- O"15013006140000", # MAXFL #
- O"16340000000000", # N1 #
- O"16350000000000", # N2 #
- O"16360000000000", # N3 #
- 0];
- ITEM PARLEN U(0,42,18) = [3,3,3,2,2,2,7,7,7,2,2,2,7];
- END
- # #
- ARRAY PARMSGR [1:MAXERRS] S(3);
- BEGIN
- ITEM PARMSG C(0,0,30);
- ITEM PARMSGE U(3,48,12) = [ 0, 0, 0, 0, 0, 0]; #TERMINATE MSG#
- ITEM PARNUM U(0,6,6) ;
- ITEM PARMSGT C(0,0,28) = [
- "CONTROL-CARD FORMAT ERROR ",
- "PARAMETER EXCEEDS MAX LENGTH",
- "ILLEGAL PARAMETER VALUE",
- "ONLY YES OR NO ALLOWED ",
- "UNRECOGNIZED PARAMETER ",
- "NIN MUST BE SPECIFIED ",
- "LOWER PRU-STATE IS ZERO ",
- "NXPRUB IS BELOW MINIMUM "] ;
- END
- ARRAY MERPRUA [1:MAXPRU] P(1); # MININUM VALUE FOR PRU BUFFERS #
- BEGIN
- ITEM MERPRU = [2,4,2];
- END
- ITEM TEMPLWA;
- CONTROL IFEQ DEBUG,1 ;
- # DEBUG NAM DAYFILE MESSAGE #
- ARRAY DBGNAM [0:0] S(3);
- BEGIN
- ITEM DBGMSG C(0,0,20) = ["NAM BUILT WITH DEBUG"];
- ITEM DBGZRO U(2,0,60) = [0];
- END
- CONTROL FI;
- CONTROL IFEQ STAT,1 ;
- # STAT NAM DAYFILE MESSAGE #
- ARRAY STNAM [0:0] S(3);
- BEGIN
- ITEM STMSG C(0,0,20) = ["NAM BUILT WITH STAT"];
- ITEM STZRO U(2,0,60) = [0];
- END
- CONTROL FI;
- # NAM REGULATION LEVEL DAYFILE MESSAGE #
- ARRAY NAMREG [0:0] S(2);
- BEGIN
- ITEM NAMREGM C(0,0,13) = ["NAM REG LEVEL"];
- ITEM NAMREGN C(1,18,5) = [" 0"]; # LEVEL NUMBER IN DECIMAL #
- ITEM NAMREGZ U(2,48,12) = [0];
- END
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1 ;
- XTRACE("INIP ") ;
- CONTROL FI;
- #
- INITIALIZE MAXFL TO MAXNIP (60000B)
- #
- MAXFL = MAXNIP;
- #
- STEP 0 - GET PARAMETERS FROM CONTROL CARD
- #
- BEGIN
- FOR I=1 STEP 2 WHILE(I LS ACTCOUNT[0] AND PARRC EQ 0) DO
- BEGIN
- IF ARGSEP[I] NQ EQUAL
- OR ARGSEP[I+1] NQ 0
- THEN
- BEGIN
- PARRC=1;
- END
- ELSE
- BEGIN
- PARVAL[MAXPARAM] = ARGSYM[I];
- FOR J=0 STEP 1 UNTIL MAXPARAM DO
- BEGIN
- IF ARGSYM[I] EQ PARVAL[J] THEN
- BEGIN
- LEN = PARLEN[J];
- IF LEN EQ NC OR C<LEN,NC-LEN>ARGSYM[I+1] EQ 0
- THEN
- GOTO PARLAB[J];
- ELSE
- BEGIN
- PARRC = 2;
- END
- END
- END
- END
- GOTO PAREXIT;
- PARNIN:
- NXDCB(ARGSYM[I+1],PARV,ERROR);
- IF ERROR
- THEN
- PARRC = 3; # ILLEGAL PARAMETER VALUE #
- ELSE
- INPNIN[1] = C<0,LEN>ARGSYM[I+1];
- GOTO PAREXIT;
- PARMC:
- NXDCB(ARGSYM[I+1],MC,ERROR);
- IF ERROR
- THEN
- PARRC = 3; # ILLEGAL PARAMETER VALUE #
- GOTO PAREXIT;
- PARFL:
- DIGIT = 10;
- DONE = FALSE;
- #
- CHECK IF THERE IS A B IN THE PARAMETER.
- IF THERE IS B, THEN DIGIT IS 8.
- #
- FOR N=0 STEP 1 WHILE N LS WC AND NOT DONE
- DO
- BEGIN
- NUM = C<N,1>ARGSYM[I+1];
- IF (NUM EQ O"02")
- THEN
- BEGIN
- DIGIT = 8;
- DONE = TRUE;
- END
- END
- #
- CONVERT DISPLAY CODE TO BINARY, DEPENDING ON DECIMAL
- OR OCTAL.
- #
- ERROR = FALSE;
- DONE = FALSE;
- MAXFL = 0;
- FOR N=0 STEP 1 WHILE N LS WC AND NOT ERROR AND NOT DONE
- DO
- BEGIN
- NUM = C<N,1>ARGSYM[I+1];
- IF (NUM EQ O"02" OR NUM EQ O"04" OR NUM EQ O"00")
- THEN
- DONE = TRUE;
- ELSE
- IF (NUM GQ O"33" AND NUM LQ O"44")
- THEN
- MAXFL = (MAXFL * DIGIT) + (NUM - O"33");
- ELSE
- ERROR = TRUE;
- END
- IF ERROR
- THEN
- PARRC = 3; #ILLEGAL PARAMETER VALUE#
- #
- IF MAXFL IS GREATER THAN MAXXFL, THEN SET IT TO MAXXFL
- #
- IF MAXFL GR MAXXFL
- THEN
- MAXFL =MAXXFL;
- # LOOP #
- GOTO PAREXIT;
- IFSTP:
- BEGIN
- IF ARGSYM[I+1] EQ YES OR ARGSYM[I+1] EQ YY
- THEN
- BEGIN
- INPSTP[J] = TRUE;
- END
- ELSE
- BEGIN
- IF ARGSYM[I+1] EQ NO OR ARGSYM[I+1] EQ NN
- THEN
- BEGIN
- INPSTP[J] = FALSE;
- END
- ELSE
- BEGIN
- PARRC = 4;
- END
- END
- GOTO PAREXIT;
- END
- PRUU: # PRU BUFFER COUNT PARAMETER #
- NXDCB(ARGSYM[I+1],PARV,ERROR); # CONVERT TO BINARY VALUE #
- IF ERROR
- THEN # ILLEGAL PARAMETER VALUE #
- PARRC = 3;
- ELSE
- BEGIN
- IF J GQ 9
- THEN J = J-6; #MAKE J THE SAME AS NNPRU#
- IF PARV LS MERPRU[J-2]
- THEN
- BEGIN
- PARNUM[8] = J - 2 + O"33";
- OMSG(PARMSG[8],0) ; # DAYFILE A MESSAGE #
- PARV = MERPRU[J-2]; # LESS THAN MINIMUM, USE MINIMUM VALUE #
- END
- INPPRU[J-2] = PARV ; # SET PRU BUFFER COUNT #
- END
- GOTO PAREXIT;
- PARACT:
- NXDCB(ARGSYM[I+1],PARV,ERROR) ;
- IF ERROR
- THEN
- PARRC = 3 ;
- ELSE
- IF PARV GR 0
- THEN
- INACTVAL = PARV * 60 ; # SET INACT TIME TO INPUT VALU#
- GOTO PAREXIT ;
- PARERR: BEGIN
- PARRC = 5;
- GOTO PAREXIT;
- END
- PAREXIT:
- END # LOOP ON PARAMETERS #
- IF INPNIN[1] EQ O"333333"
- THEN
- BEGIN # NIN VALUE MUST BE SPECIFIED #
- PARRC = 6 ;
- END
- # #
- IF PARRC NQ 0
- THEN
- OMSG(PARMSG[PARRC],0);
- # #
- END # PARAMETER PROCESSING #
- # #
- #
- STEP 1 INITIALIZE NBT, POA, CET, AT, TNT AND FREETAB
- #
- CONTROL IFEQ STAT,1; # STATISTICS ON #
- #
- INITIALIZE STATISTICS VARIABLES FOR DETERMINING AVG FL, AVG NO
- OF EMPTY BUFS, AND AVG NO OF EMPTY WORDS
- #
- OTIME(THETIME); # GET CURRENT SYSTEM TIME #
- TIMESTR = RTSECS[0]; # TIME NIP BEGIN EXECUTION #
- TIMECFL = TIMESTR; # TIME FOR MEASURING OCFL CALLS #
- TIMEGBG = TIMESTR; # TIME FOR MEASURING MGBGCLT CALLS #
- CONTROL FI;
- ITABS; # SET UP TABLES #
- #
- STEP 2 INITIALIZE NIP AS A SCP
- #
- SSCVF[0] = TRUE;
- SSCLP[0] = 66;
- SSCLK[0] = FALSE;
- ISCP; # INITIALIZE NIP AS A SYSTEM CP, READ CHAR#
- #
- INITIALIZE THE K DISKPLAY
- #
- IKDIS;
- #
- ISSUE DAYFILE MESSAGES
- #
- OMSG(NAMLEV,0); # NIP INITIALIZED, NAM VERSION MSG #
- CONTROL IFEQ DEBUG,1 ;
- OMSG(DBGNAM,0); # ISSUE DEBUG NAM MESSAGE #
- CONTROL FI;
- CONTROL IFEQ STAT,1 ;
- OMSG(STNAM,0); # ISSUE STAT NAM MESSAGE #
- CONTROL FI;
- OMSG(NAMREG,0); # NAM REGULATION LEVEL = 0 #
- GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
- END
- TERM
cdc/nos2.source/nam5871/inip.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator