cdc:nos2.source:nam5871:ns_pag
Table of Contents
NS$PAG
Table Of Contents
- [00006] PROC NS$PAG(ERRCODE)
- [00007] NS$PAG - PROCESS HOP/PAGE COMMAND.
- [00011] PROCESS HOP/PAGE COMMAND.
- [00048] PROC NS$DBG
- [00054] PROC EXREDUC
- [00055] PROC MOVEOK
- [00056] FUNC NS$FEC U
- [00057] PROC NS$TKD
- [00058] PROC TSBINFO
Source Code
- NS$PAG.txt
- *DECK NS$PAG
- USETEXT COM$NS
- USETEXT ERR$NS
- USETEXT KDS$NS
- USETEXT SMB$NS
- PROC NS$PAG(ERRCODE); # PROCESS HOP/PAGE #
- # TITLE NS$PAG - PROCESS HOP/PAGE COMMAND. #
- BEGIN # NS$PAG #
- #
- ** NS$PAG - PROCESS HOP/PAGE COMMAND.
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE PROCESS HOP/PAGE COMMAND.
- *
- * PROC NS$PAG(ERRCODE)
- *
- * ENTRY:
- * NONE.
- *
- * EXIT:
- * ERRCODE.
- *
- * METHOD:
- * IF K-DISPLAY ASSIGNED:
- * IF HOP CHARACTER = "-":
- * SET PAGE-WAIT TO FALSE.
- * IF HOP CHARACTER = "+":
- * SET PAGE-WAIT TO TRUE.
- * ELSE, FLAG ERROR.
- * IF ERRCODE = 0:
- * ACCESS PAGE-WAIT BUFFER.
- * IF PAGE-WAIT BUFFER LINE COUNT NQ 0:
- * SEND LINES TO K-DISPLAY BUFFER.
- * UPDATE PAGE-WAIT BUFFER WORD-COUNT.
- * CALL TSB MANAGER TO REDUCE PAGE-WAIT BUFFER
- * SIZE BY NUMBER OF WORDS SENT TO K-DISPLAY.
- * ELSE, FLAG ERROR.
- *
- #
- ITEM ERRCODE U; # ERROR CODE #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE PROC CALL #
- END
- $END
- XREF
- BEGIN
- PROC EXREDUC; # REDUCE TSB SIZE #
- PROC MOVEOK; # ALLOW MOVE #
- FUNC NS$FEC U; # FORMAT ERROR CODE #
- PROC NS$TKD; # MANAGE K-DISPLAY #
- PROC TSBINFO; # TSB INFORMATION #
- END
- DEF CHAR$MINUS # "-" #;# MINUS IN DISPLAY CODE #
- DEF CHAR$PLUS # "+" #;# PLUS IN DISPLAY CODE #
- ITEM PWBLC U; # PAGE WAIT BUFFER LINE COUNT #
- ITEM PWBTSBN U; # PAGE WAIT BUFFER TSB NUMBER #
- ITEM PWBWC U; # PAGE WAIT BUFFER WORD COUNT #
- ITEM TSBFWA U; # TSB FWA #
- ITEM TSBSIZE U; # TSB SIZE #
- BASED ARRAY PWB[0:0]P(1);
- BEGIN # PAGE WAIT BUFFER #
- ITEM PWBLINES U(00,00,60);
- END
- CONTROL EJECT;
- $BEGIN
- NS$DBG("PAG"); # TRACE CALL #
- $END
- IF DCW$F$ASS[0]
- THEN # K-DISPLAY IS ASSIGNED #
- BEGIN
- IF HOPPC[0] EQ CHAR$MINUS
- THEN # HOP PAGE CHARACTER IS "-" #
- DCW$F$PWM[0] = FALSE; # TURN PAGE WAIT TO OFF #
- ELSE
- BEGIN
- IF HOPPC[0] EQ CHAR$PLUS
- THEN # HOP PAGE CHARACTER IS "+" #
- DCW$F$PWM[0] = TRUE; # TURN PAGE WAIT TO ON #
- ELSE # NAM ERROR, ILLEGAL PAGE CHARACTER #
- ERRCODE = NS$FEC(EC"ERR$SM", SMEC"HSM$HOPSM");
- END
- IF ERRCODE EQ 0
- THEN
- BEGIN # TURN PAGE VIA PAGE WAIT BUFFER #
- DCW$F$PAGE[0] = FALSE; # CLEAR PAGE FULL FLAG #
- DCW$LC[0] = 0; # SET NAM K DISPLAY LINE COUNT TO ZERO #
- PWBTSBN = DCW$PWBTSB[0]; # PAGE WAIT BUFFER TSB NUMBER #
- TSBINFO(TSBSIZE,TSBFWA,PWBTSBN); # LOACATE PAGE WAIT BUFFER #
- P<PWB$BUFFER> = 0;
- PWBLC = PWB$LC[TSBFWA]; # PAGE WAIT BUFFER LINE COUNT #
- PWBWC = PWB$WC[TSBFWA] - PWB$HDRL; # PWB WORD COUNT #
- IF PWBLC NQ 0
- THEN # LINES EXIST IN PAGE WAIT BUFFER #
- BEGIN # MOVE LINES TO K DISPLAY BUFFER KDB #
- P<PWB> = TSBFWA + PWB$HDRL; # FWA OF FIRST LINE IN PWB #
- NS$TKD(PWB,PWBWC,PWBLC);
- EXREDUC(PWBWC,PWBTSBN,FALSE,TSBFWA);
- PWB$LC[TSBFWA] = 0; # PWB NOW HAS A HEADER ONLY #
- PWB$WC[TSBFWA] = PWB$HDRL;
- END
- MOVEOK(PWBTSBN); # ALLOW PAGE WAIT BUFFER TO MOVE #
- END
- END
- ELSE
- BEGIN # K-DISPLAY NOT ASSIGNED - SET ERROR CODE #
- ERRCODE = NS$FEC(EC"ERR$SM", SMEC"HSM$HOPSM");
- END
- RETURN;
- END # HS$PAG PROC #
- TERM
cdc/nos2.source/nam5871/ns_pag.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator