cdc:nos2.source:nam5871:ns_hhi
Table of Contents
NS$HHI
Table Of Contents
- [00007] PROC NS$HHI
- [00009] NS$HHI - HISTORY DISPLAY COMMAND PROCESSOR.
- [00013] HISTORY DISPLAY COMMAND PROCESSROR.
- [00038] PROC NS$DBG
- [00044] PROC MOVEOK
- [00045] PROC NS$TKD
- [00046] PROC TSBINFO
Source Code
- NS$HHI.txt
- *DECK NS$HHI
- USETEXT COM$NS
- USETEXT DEF$NS
- USETEXT HIS$NS
- USETEXT HOC$NS
- USETEXT LIN$NS
- PROC NS$HHI; # HISTORY DISPLAY COMMAND PROCESSOR #
- # TITLE NS$HHI - HISTORY DISPLAY COMMAND PROCESSOR. #
- BEGIN # NS$HHI #
- #
- ** NS$HHI - HISTORY DISPLAY COMMAND PROCESSROR.
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE PROCESS THE HISTORY COMMAND.
- *
- * PROC NS$HHI
- *
- * ENTRY:
- * NONE.
- *
- * EXIT:
- * NONE.
- *
- * METHOD:
- * IF COMMAND IS "HISTORY", SEND ONLY THE LAST PAGE OF
- * HISTORY BUFFER TEXT LINES TO *KDB*.
- * IF COMMAND IS "HISTORY,ALL", SEND THE ENTIRE HISTORY
- * BUFFER TEXT LINES TO *KDB*.
- *
- #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE CALL #
- END
- $END
- XREF
- BEGIN
- PROC MOVEOK; # ALLOW TSB TO MOVE #
- PROC NS$TKD; # TRANSFER DISPLAY DATA TO K DISPLAY BUFF #
- PROC TSBINFO; # LOCATE TSB #
- END
- DEF HISDSPSIZE # MAX$PW - 1 #; # SIZE OF HISTORY DISPLAY #
- ITEM DISLC U; # HISTORY DISPLAY LINE COUNT #
- ITEM I I; # LOOP VARIABLE #
- ITEM HISTFWA U; # FWA OF FIRST LINE OF HISTORY DISPLAY #
- ITEM HISTLC U; # HISTORY DISPLAY LINE COUNT #
- ITEM HISTWC U; # HISTORY DISPLAY WORD COUNT #
- ITEM TSBFWA U; # TSB FWA #
- ITEM TSBSIZE U; # TSB SIZE #
- CONTROL EJECT;
- $BEGIN
- NS$DBG("HHI"); # TRACE CALL #
- $END
- TSBINFO(TSBSIZE,TSBFWA,HISTSBN); # LOCATE HISTORY BUFFER #
- P<HIS$BUFFER> = TSBFWA; # FWA OF HISTORY BUFFER #
- HISTLC = HIS$LC[0]; # HISTORY BUFFER LINE COUNT #
- HISTWC = HIS$WC[0] - HIS$HDRWDL; # HISTORY LINES WORD COUNT #
- HISTFWA = P<HIS$BUFFER> + HIS$HDRWDL; # FWA OF FIRST LINE #
- IF HISTLC GR HISDSPSIZE # LINES EXCEED HISTORY PAGE SIZE #
- AND CMD$WORD[PAR$ALL] EQ 0 # NOT HISTORY,ALL COMMAND #
- THEN # DISPLAY ONLY THE MOST RECENT 30 LINES IN BUFFER #
- BEGIN
- IF CMD$WORD[PAR$CMD] EQ 0
- THEN # DEFAULT HISTORY DISPLAY IN RESPONSE TO HOP/START #
- DISLC = HISDSPSIZE; # HISTORY DISPLAY LINE COUNT #
- ELSE # HISTORY COMMAND #
- DISLC = HISDSPSIZE - 1;
- HISTLC = 0; # RESET LINE COUNT #
- P<LIN$HEADER> = 0;
- FOR I=P<HIS$BUFFER>+HISTWC STEP -1 WHILE HISTLC LS DISLC
- DO # SCAN HISTORY BUFFER BACKWARD 30 LINES #
- BEGIN
- IF LIN$ID[I] EQ LIN$IDENT
- THEN # A LINE HEADER FOUND #
- HISTLC = HISTLC + 1; # INCREMENT LINE COUNT #
- END
- HISTFWA = I + 1; # FWA OF FIRST HISTORY LINE TO DISPLAY #
- HISTWC = P<HIS$BUFFER> + HISTWC - I; # DISPLAY WORD COUNT #
- END
- DCW$F$HIS[0] = TRUE; # SET DISPLAY ASSIGNED TO HISTORY DISPLAY #
- P<HIS$BUFFER> = HISTFWA; # FWA OF FIRST LINE TO DISPLAY #
- NS$TKD(HIS$BUFFER,HISTWC,HISTLC); # SEND DISPLAY TO KDB #
- MOVEOK(HISTSBN); # ALLOW HISTORY BUFFER TO MOVE #
- RETURN;
- END # NS$HHI #
- TERM
cdc/nos2.source/nam5871/ns_hhi.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator