cdc:nos2.source:nam5871:ns_n06
Table of Contents
NS$N06
Table Of Contents
- [00010] PROC NS$N06(ERRCODE)
- [00012] NS$N06 - PROCESS NPU/DT/N (DUMP).
- [00016] PROCESS NPU/DT/N (DUMP).
- [00055] PROC NS$DBG
- [00061] FUNC NS$FEC U
- [00062] PROC NS$SDB
- [00063] PROC NS$SLT
- [00064] PROC NS$XPD
- [00065] PROC TSBINFO
- [00066] PROC WRITEW
Source Code
- NS$N06.txt
- *DECK NS$N06
- USETEXT CYB$NS
- USETEXT DTSB$NS
- USETEXT ERR$NS
- USETEXT NAT$NS
- USETEXT NDF$NS
- USETEXT SMB$NS
- USETEXT SMD$NS
- PROC NS$N06(ERRCODE); # PROCESS NPU/DT/N (DUMP) #
- # TITLE NS$N06 - PROCESS NPU/DT/N (DUMP). #
- BEGIN # NS$N06 #
- #
- ** NS$N06 - PROCESS NPU/DT/N (DUMP).
- *
- * J.C. LEE 1981
- *
- * THIS ROUTINE PROCESSES NPU/DT/N (DUMP).
- *
- *
- * PROC NS$N06(ERRCODE)
- *
- * ENTRY:
- * NONE.
- *
- * EXIT:
- * ERRCODE.
- *
- * METHOD:
- * DECREMENT DUMP BATCH COUNT (DBC)
- * CALCULATE DUMP DATA HEX WORDS.
- * IF DUMP DATA WITHIN LIMIT AND DBC NOT YET EXHAUSTED:
- * CLEAR RETRY COUNT.
- * FORMAT DUMP PACKET ENTRY.
- * TRANSFER DUMP PACKET TO DUMP TSB.
- * UPDATE DBC.
- * IF DBC EQ 0
- * IF DUMP DIRECTIVE COMPLETE
- * PROCESS NEXT DPCB DIRECTIVE.
- * ELSE
- * START DUMP DATA.
- * START LOCAL TIMER.
- * ELSE
- * SET ERRCODE TO "BAD DUMP RESPONSE FROM NPU".
- *
- #
- ITEM ERRCODE U; # ERRCODE #
- $BEGIN
- XREF
- BEGIN
- PROC NS$DBG; # TRACE PROCEDURE CALL #
- END
- $END
- XREF
- BEGIN
- FUNC NS$FEC U; # FORMAT ERROR CODE #
- PROC NS$SDB; # SEND DUMP BATCH #
- PROC NS$SLT; # START RESPONSE TIMER #
- PROC NS$XPD; # PROCESS NEXT XPCB DIRECTIVE #
- PROC TSBINFO; # LOCATE TSB #
- PROC WRITEW; # WRITEW DATA TRANSFER MACRO CALL #
- END
- ITEM CMWORDS U; # NUMBER OF CM WORDS IN NPU DUMP DATA #
- ITEM DBC U; # DUMP BATCH COUNT #
- ITEM I I; # TEMPORARY VARIABLE #
- ITEM J I; # TEMPORARY VARIABLE #
- ITEM NPUWORDS U; # NUMBER OF NPU WORDS IN DUMP RESPONSE #
- ITEM TSBFWA U; # FWA OF TSB #
- ITEM TSBSIZE U; # TSB SIZE #
- BASED ARRAY DSM$DATA [1:MAX$DPSIZE] S(1);
- BEGIN # DUMP DATA WORD FORMAT IN DUMP RESPONSE #
- ITEM DSM$DATA1 U(00,20,40); # DUMP DATA IN FIRST WORD #
- ITEM DSM$DATA2 U(00,00,20); # DUMP DATA IN NEXT WORD #
- END
- BASED ARRAY NDF$DPDATA [1:MAX$DPSIZE] S(1);
- BEGIN # DUMP PACKET DATA FORMAT #
- ITEM DPD$DATAWD U(00,00,60);
- ITEM DPD$DATA1 U(00,00,40);
- ITEM DPD$DATA2 U(00,40,20);
- END
- CONTROL EJECT;
- $BEGIN
- NS$DBG("N06"); # TRACE CALL #
- $END
- ERRCODE = 0;
- DBC = NAT$BC[0] - 1; # DECREMENT DUMP BATCH COUNT #
- NPUWORDS = (ABHTLC[0] - LNPUDTDN + 1) / 2; # DUMP DATA HEX WORDS #
- IF NPUWORDS LQ MAX$DPHWDS # DUMP DATA WITHIN ALLOWED LIMIT#
- AND DBC GQ 0 # DUMP BATCH NOT YET EXHAUSTED #
- THEN # VALID DUMP RESPONSE #
- BEGIN
- NAT$RETRYS[0] = 0;
- #
- FORMAT DUMP PACKET ENTRY
- #
- P<NDF$DPHDR> = LOC(ABH$WORD); # FWA OF DUMP PACKET HEADER #
- CMWORDS = (NPUWORDS*16 + (WL-1)) / WL; # DUMP DATA CM WORDS #
- DPH$WORD[0] = 0;
- DPH$WC[0] = CMWORDS + L$DPHDR; # CM WORD COUNT OF ENTRY #
- DPH$NC[0] = NPUWORDS; # HEX WORD COUNT OF ENTRY #
- DPH$BA1[0] = NPUBA1[0]; # DUMP PACKET BEGINNING ADDRESS #
- DPH$BA2[0] = NPUBA2[0];
- P<NDF$DPDATA> = LOC(SMB$BUFFER); # FWA OF DUMP PACKET DATA #
- P<DSM$DATA> = LOC(SMB$BUFFER) + (((2*LNPUDTDN+14)/15) - 1);
- J = 1;
- FOR I=1 STEP 1 UNTIL CMWORDS
- DO
- BEGIN # MOVE DUMP DATA FROM SM TO DUMP PACKET #
- DPD$DATA1[I] = DSM$DATA1[J];
- J = J + 1;
- DPD$DATA2[I] = DSM$DATA2[J];
- END
- #
- TRANSFER DUMP PACKET TO DUMP TSB
- #
- TSBINFO(TSBSIZE,TSBFWA,NAT$NDTSBN[0]); # LOCATE DUMP TSB #
- P<DTSB$FET> = TSBFWA + L$DTSBHDR; # FWA OF FET #
- WRITEW(DTSB$FET,NDF$DPHDR,L$DPHDR+CMWORDS); # TRANSFER PACKET #
- NAT$BC[0] = DBC; # UPDATE DUMP BATCH COUNT #
- IF DBC EQ 0
- THEN # WHOLE DUMP BATCH RECEIVED #
- BEGIN
- IF NAT$F$DP[0]
- THEN # DUMP DIRECTIVE COMPLETES #
- BEGIN
- NS$XPD(ERRCODE); # PROCESS NEXT DPCB DIRECTIVE #
- END
- ELSE # MORE DATA TO DUMP #
- BEGIN
- NS$SDB; # SEND DUMP BATCH #
- NS$SLT; # START RESPONSE TIMER #
- END
- END
- END
- ELSE # BAD DUMP RESPONSE FROM NPU #
- BEGIN
- ERRCODE = NS$FEC(EC"ERR$SM",SMEC"NSM$DMP");
- END
- RETURN;
- END # NS$N06 #
- TERM
cdc/nos2.source/nam5871/ns_n06.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator