cdc:nos2.source:nam5871:ns_fln
Table of Contents
NS$FLN
Table Of Contents
- [00012] PROC NS$FLN(F$RELOAD)
- [00014] NS$FLN - SEND NPU/DT/R (LOAD NDCB).
- [00018] SEND NPU/DT/R (LOAD NDCB).
- [00048] PROC NS$DBG
- [00054] FUNC EDATE
- [00055] FUNC ETIME
- [00056] PROC LFGCKSM
- [00057] PROC MOVEOK
- [00058] PROC NETPUT
- [00059] FUNC NS$CDA U
- [00060] PROC NS$FBH
- [00061] PROC NS$GNW
- [00062] PROC PDATE
- [00063] PROC TSBINFO
Source Code
- NS$FLN.txt
- *DECK NS$FLN
- USETEXT CYB$NS
- USETEXT DEF$NS
- USETEXT NAT$NS
- USETEXT NDCB$NS
- USETEXT NPT$NS
- USETEXT NST$NS
- USETEXT PFC$NS
- USETEXT SMB$NS
- USETEXT SMD$NS
- PROC NS$FLN(F$RELOAD); # SEND NPU/DT/R (LOAD NDCB) #
- # TITLE NS$FLN - SEND NPU/DT/R (LOAD NDCB). #
- BEGIN # NS$FLN #
- #
- ** NS$FLN - SEND NPU/DT/R (LOAD NDCB).
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE SENDS AN NPU/DT/R (LOAD NDCB).
- *
- * PROC NS$FLN(F$RELOAD)
- *
- * ENTRY:
- * F$RELOAD - NDCB RELOAD INDICATOR.
- *
- * EXIT:
- * NONE.
- *
- * METHOD:
- * FORMAT ABH.
- * FORMAT NDCB IN NPU/DT/R (LOAD NDCB).
- * IF F$RELOAD NOT SET, SWITCH TO FORMAT NDCB CASES.
- * ELSE, LOCATE NDCB FIRST AND GOTO PACKSM.
- * PACKSM: PACKS NPU WORD INTO SM BUFFER.
- * COMPUTE CHECKSUM OF NDCB DATA.
- * FORMAT NPU/DT/R AND NETPUT IT.
- *
- #
- ITEM F$RELOAD B; # RELOAD NDCB INDICATOR #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE PROCEDURE CALLS #
- END
- $END
- XREF
- BEGIN
- FUNC EDATE; # CONVERT PACKED DATE TO DISPLAY CODE #
- FUNC ETIME; # CONVERT PACKED TIME TO DISPLAY CODE #
- PROC LFGCKSM; # COMPUTE CHECKSUM OF NPU DATA #
- PROC MOVEOK; # ALLOW TSB TO MOVE #
- PROC NETPUT; # NETPUT #
- FUNC NS$CDA U; # DISPLAY-CODE TO ASCII CONVERSION #
- PROC NS$FBH; # FORMAT ABH FOR NETWORK SM #
- PROC NS$GNW; # GET NPU WORDS #
- PROC PDATE; # GET DATE/TIME IN PACKED BINARY FORMAT #
- PROC TSBINFO; # LOCATE TSB #
- END
- ITEM ASCCHAR U; # ASCII CHARACTER #
- ITEM BITCOUNT I; # BIT COUNT #
- ITEM DISCHAR U; # DISPLAY CODE CHARACTER #
- ITEM I I; # LOOP VARIABLE #
- ITEM J I; # TEMPORARY #
- ITEM K I; # TEMPORARY #
- ITEM L I; # TEMPORARY #
- ITEM NDCBFWA U; # NDCB FWA #
- ITEM NPUWORD U; # NPU WORD WITH 16-BIT DATA #
- ITEM TEMP U; # TEMPORARY #
- ITEM TSBFWA U; # TSB FWA #
- ITEM TSBN U; # TSB NUMBER #
- ITEM TSBSIZE U; # TSB SIZE #
- SWITCH NDCBCASE:NDCBINDEX # STATUS SWITCH FOR FORMATTING NDCB #
- RDF:NDCB$RDF, # RELOAD DUMP FLAG #
- LTDF:NDCB$LTDF, # LONG TERM DUMP FLAG #
- LPATH:NDCB$LPATH, # MOST RECENT LOAD PATH #
- LDATE1:NDCB$DATE1, # MOST RECENT LOAD DATE #
- LDATE2:NDCB$DATE2,
- LDATE3:NDCB$DATE3,
- LTIME1:NDCB$TIME1, # MOST RECENT LOAD TIME #
- LTIME2:NDCB$TIME2,
- LTIME3:NDCB$TIME3,
- NHC:NDCB$HALTC, # NPU HALT CODE #
- NPR:NDCB$PREG; # NPU P-REGISTER DATA #
- CONTROL EJECT;
- $BEGIN
- NS$DBG("FLN");
- $END
- NS$FBH(LNPUDTLR+NDCB$SIZE*2,TRUE); # FORMAT ABH #
- P<SMB> = LOC(SMB$BUFFER); # FWA OF SM BUFFER #
- FOR I = NDCBINDEX"NDCB$RDF" STEP 1 UNTIL NDCBINDEX"NDCB$PREG"
- DO # FORMAT NDCB IN NPU/DT/R (LOAD NDCB) #
- BEGIN
- NPUWORD = 0;
- IF NOT F$RELOAD
- THEN # FORMAT AND LOAD NDCB #
- GOTO NDCBCASE[I]; # SWITCH TO FORMAT NDCB CASES #
- ELSE # RELOAD NDCB RECEIVED FROM NPU #
- BEGIN
- IF I EQ NDCBINDEX"NDCB$RDF"
- THEN # LOCATE NDCB FIRST #
- BEGIN
- TSBN = NAT$SMTSBN[0]; # NDCB DUMP RESPONSE TSB #
- TSBINFO(TSBSIZE,TSBFWA,TSBN);
- P<NDCB> = TSBFWA; # FWA OF NDCB DUMP RESPONSE #
- END
- NS$GNW(NDCB,LNPUDTDN,I,NPUWORD);
- GOTO PACKSM;
- END
- RDF: # CLEAR RELOAD DUMP FLAG #
- NHC: # CLEAR NPU HALT CODE #
- NPR: # CLEAR NPU P-REGISTER #
- TEST I;
- LTDF: # SET LONG TERM DUMP FLAG #
- IF NPT$F$LTDF[NTORD]
- THEN # LONG TERM DUMP FLAG = DUMP #
- NPUWORD = ASC$YY; # SET TO ASCII YY #
- ELSE # LONG TERM DUMP FLAG = NO DUMP #
- NPUWORD = ASC$NN; # SET TO ASCII NN #
- GOTO PACKSM;
- LPATH: # SET LOAD PATH #
- NPUWORD = NAT$LPATH[0];
- GOTO PACKSM;
- LDATE1: # SET LOAD DATE YY #
- PDATE(TEMP); # GET PACKED BINARY DATE/TIME #
- NAT$LPDATE[0] = TEMP; # SAVE IN NAT #
- TEMP = EDATE(NAT$LDATE[0]); # DISPLAY-CODED DATE YY/MM/DD #
- GOTO DATETIME;
- LTIME1: # SET LOAD TIME HH #
- TEMP = ETIME(NAT$LTIME[0]); # DISPLAY-CODED TIME HH.MM.SS #
- DATETIME:
- LDATE2: # SET LOAD DATE MM #
- LDATE3: # SET LOAD DATE DD #
- LTIME2: # SET LOAD TIME MM #
- LTIME3: # SET LOAD TIME SS #
- TEMP = TEMP * LSHIFT6; # LEFT-SHIFT 6 SPACES #
- FOR J = 0 STEP 1 UNTIL 1
- DO # CONVERT NEXT TWO DISPLAY-CODED CHARACTERS TO ASCII #
- BEGIN
- DISCHAR = B<J*DCSIZE,DCSIZE>TEMP; # DISPLAY-CODED CHARACTER #
- ASCCHAR = NS$CDA(DISCHAR); # CONVERT TO ASCII #
- B<WL-NPWSIZE+J*ASCSIZE,ASCSIZE>NPUWORD = ASCCHAR;
- END
- TEMP = TEMP * LSHIFT12; # LEFT-SHIFT 12 SPACES #
- PACKSM: # PACK NPU WORD INTO SM BUFFER #
- BITCOUNT = LNPUDTLR*ASCSIZE + I*NPWSIZE; # BIT COUNT #
- K = BITCOUNT / WL; # WORD INDEX #
- L = BITCOUNT - K*WL; # BIT INDEX #
- J = L + NPWSIZE - WL; # BITS IN NEXT CM WORD #
- IF J GR 0
- THEN # NPU WORD CROSSES CM WORD #
- BEGIN
- B<L,WL-L>SMBWORD[K] = B<WL-NPWSIZE,NPWSIZE-J>NPUWORD;
- B<0,J>SMBWORD[K+1] = B<WL-J,J>NPUWORD;
- END
- ELSE # NPU WORD FITS IN CM WORD #
- B<L,NPWSIZE>SMBWORD[K] = NPUWORD;
- END # END FOR LOOP #
- #
- COMPUTE CHECKSUM OF NDCB DATA
- #
- BITCOUNT = LNPUDTLR * ASCSIZE; # BIT COUNT TO NDCB DATA #
- K = BITCOUNT / WL; # WORD INDEX #
- NDCBFWA = P<SMB> + K; # FWA OF NDCB DATA #
- L = BITCOUNT - K*WL; # SYMPL FIRST BIT POSITION #
- J = WL - 1 - L; # COMPASS FIRST BIT POSITION #
- LFGCKSM(NDCBFWA,J,NDCB$SIZE,TEMP); # GET CKECKSUM OF NDCB DATA #
- #
- FORMAT NPU/DT/R (LOAD NDCB)
- #
- TSBN = NPT$NSTTSB[NTORD]; # NST TSB NUMBER #
- TSBINFO(TSBSIZE,TSBFWA,TSBN); # LOCATE NST #
- P<NST> = TSBFWA; # FWA OF NST #
- PFCSFC[0] = NPUDT; # PFC/SFC CODE #
- NPUPO[0] = NAT$PN[0]; # PORT NUMBER #
- NPUSP[0] = NAT$SPN[0]; # SUBPORT NUMBER #
- NPUCC[0] = CMDCODE"CC$LOAD"; # COMMAND CODE #
- NPULS[0] = NAT$LSN[0]; # LOAD SEQUENCE NUMBER #
- NPUBA1[0] = NAT$NDCBA1[0]; # SET NDCB FWA #
- NPUBA2[0] = NAT$NDCBA2[0];
- NPUBC[0] = 1; # SET BATCH COUNT #
- NPUCK[0] = TEMP; # SET LOAD DATA CHECKSUM #
- MOVEOK(TSBN); # ALLOW NST TO MOVE #
- NETPUT(ABH$WORD,SMB$BUFFER); # SEND NPU/DT/R (LOAD NDCB) #
- RETURN;
- END # NS$FLN #
- TERM
cdc/nos2.source/nam5871/ns_fln.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator