*DECK KNAMDFL
USETEXT NIPDEF
USETEXT FREETAB
USETEXT PARAMS
USETEXT KDIS
USETEXT KHDRX
PRGM KNAMDFL; # PROCESS NAM K DISPLAY FL COMMAND #
STARTIMS ;
#
*1DC KNAMDFL
* 1. PROC NAME AUTHOR DATE
* KNAMDFL A.BEN-ARTZI 82/08/25
*
* 2. FUNCTIONAL DESCRIPTION
*
* PROCESS FL= TYPE-IN WHILE K-DISPLAY IN NAM-MODE
* ( AND MAXFL HAS NOT BEEN REACHED )
*
* 3. METHOD USED
*
* CHECK DATA FOR VALIDITY.
* UPDATE MAXFL AND STATUS DISPLAY TO NEW VALUE
*
* 4. ENTRY PARAMETERS
*
* PARAMS1 - NUMBER OF DIGITS IN NUMBER
* PARAMS6 - VALUE RECEIVED ( IN CHARACTER FORMAT )
*
* 5. EXIT PARAMETERS
*
* PARAMS7 - ERROR CODE ( OR 0 )
*
* 6. COMMDECKS AND TEXTS USED
*
* NIPDEF FREETAB KDIS KHDRX PARAMS
* OSSIZE
*
* 7. ROUTINES CALLED
*
* KPUT - K-DISPLAY DINAMIC UPDATE INTERFACE
* XTRACE DEBUG TRACE MARK
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
*CALL OSSIZE
*
#
STOPIMS ;
#
EXTERNAL VARIABLES
#
XREF
BEGIN
PROC KPUT; # UPDATE STATUS DISPLAY #
PROC XTRACE; # TRACE CALL #
LABEL RJMAIN;
END
#
INTERNAL VARIABLES
#
ITEM I; # INDUCTION VARIABLE #
ITEM KRC; # COMMAND ERROR CODE #
ITEM FLVALUE C(10); # FL VALUE #
ITEM MFL; # MAXIMUM FL VALUE #
ITEM TEMP; # TEMPORARY #
CONTROL EJECT;
BEGIN # KNAMDFL #
CONTROL IFEQ DEBUG,1;
XTRACE("KNMFL"); # TRACE CALL #
CONTROL FI;
KRC = 0;
MFL = 0;
FLVALUE = PARAMS6;
FOR I=0 STEP 1 WHILE I LS WC
AND KRC EQ 0
AND C<I>FLVALUE NQ " "
DO # COMPUTE FL ENTERED #
BEGIN
TEMP = C<I>FLVALUE; # ONE DIGIT #
IF TEMP GQ "0"
OR TEMP LQ "7"
THEN # ALLOW OCTAL VALUE ONLY #
MFL = MFL*O"10" + (TEMP-O"33");
ELSE # ERROR, FL MUST BE OCTAL NUMERIC #
KRC = 7;
END
IF KRC EQ 0
THEN # NO ERROR OCCURRED SO FAR #
BEGIN
IF HRL LS HRLV3
THEN # ALLOW INCREASE IN FL ONLY #
BEGIN
IF MFL LQ MAXFL
OR (MFL-O"1000") LS MAXFL
OR MFL GR MAXXFL
THEN # ILLEGAL FL VALUE ENTERED #
KRC = 7;
END
ELSE # HOST NOT IN BUFFER REGULATION #
BEGIN
IF MFL LS (CTLSLWA+O"2000")
OR MFL GR MAXXFL
THEN
KRC = 7;
END
END
IF KRC EQ 0
THEN # FL COMMAND OK #
BEGIN
MAXFL = MFL; # RESET MAXIMUM FL ALLOWED TO NEW VALUE #
FREMFL[0] = FALSE; # CLEAR MAX FL REACHED INDICATOR #
HRL = HRLV3; # SET BUFFER LEVEL TO ALL TRAFFIC #
IF KDST[0]
THEN # NAM STATUS DISPLAY IS ON #
KPUT(LOC(KHDRXNM),0,KPHXMFL,MAXFL); # UPDATE HRL #
END
PARAMS7 = KRC;
GOTO RJMAIN;
END # KNAMDFL #
TERM