*DECK TXTCTCS PROC TXTCTCS; # TITLE TXTCTCS - TERMINAL CONFIGURATION SYMPL TEXT FOR CS. # BEGIN # TXTCTCS # # *** TXTCTCS - TERMINAL CONFIGURATION SYMPL TEXT FOR CS. * * D. G. DEPEW. 81/08/18. * * THIS PROC GENERATES A SYMPL TEXT FOR COMPILING THE CS TERMINAL * CONFIGURATION ROUTINES. IT CONTAINS DEFINITIONS OF SYMBOLS, * ITEMS, ARRAYS AND COMMON BLOCKS USED FOR TERMINAL CONFIGURATION * PROCESSING AND NCF I/O. * * PROC TXTCTCS # CONTROL STEXT; DEF LRHDRL$ #3#; #LINE RECORD HEADER LENGTH # DEF TEHDRL$ #2#; #TERMINAL ENTRY HEADER LENGTH # DEF DEHDRL$ #2#; #DEVICE ENTRY HEADER LENGTH # DEF CTENQL$ #5#; #CNF/TE/N LENGTH IN OUTGOING TRAFFIC Q # DEF CTEAQL$ #3#; #CNF/TE/A LENGTH IN OUTGOING TRAFFIC Q # DEF RLIMAX$ #9#; #RLI UPPER BOUND-- ALLOWS 10 LINE RECORDS # DEF RLMAX$ #10#; #READLIST UPPER BOUND-- 10 RECS + ZERO WD # DEF NFSIZ$ #7#; #FET TOTAL SIZE-- L FIELD = NFSIZ$ - 5 # DEF NBLIM$ #256#; #CIO BUFFER UPPER BOUND = 4 PRUS + 1 WORD # COMMON NCFIO; BEGIN # NCFIO # # *** LINEREC - NCF LINE RECORD LINE PORTION FORMAT. * * LINEREC IS A TEMPLATE FOR THAT PART OF A LINE RECORD (THE FIRST * THREE WORDS) THAT CONTAINS LINE RELATED INFORMATION. * * THE FOLLOWING IS THE FORMAT OF THE LINE INFORMATION PORTION OF * THE LINE RECORD. AGAIN, THIS PORTION IS THREE WORDS LONG. * * 1 2 3 4 5 * 012345678901234567890123456789012345678901234567890123456789 *TEXT *T,42/ID,18/ *T,40/ ,8/GC,12/WC *T,42/NAME,1/A,1/ ,8/NID,8/PORT *ENDTEXT # BASED ARRAY LINEREC [00:00] S(1); BEGIN # **** # ITEM LR$ID C(00,00,07); #LINE RECORD ID = *LNREC * # ITEM LR$GC U(01,40,08); #GROUP COUNT # ITEM LR$WC U(01,48,12); #LINE REC LENGTH EXCLUDING ID WD # ITEM LR$NAME C(02,00,07); #LINE OR GROUP NAME # ITEM LR$AUTO U(02,42,01); #AUTOREC FLAG - 1=AUTO, 0=FIXED # ITEM LR$NID U(02,44,08); #OWNING NPU NODE ID # ITEM LR$PORT U(02,52,08); #PORT NUMBER # # **** # END # *** TRMINFO - NCF LINE RECORD TERMINAL PORTION FORMAT. * * TRMINFO IS A TEMPLATE FOR THOSE PARTS OF A LINE RECORD THAT * CONTAIN TERMINAL RELATED INFORMATION. SEE NDL REFERENCE MANUAL. * * THE FOLLOWING IS THE FORMAT OF THE TERMINAL INFORMATION PORTION * OF THE LINE RECORD. EACH ENTRY IS TWO WORD LONG. * * 1 2 3 4 5 * 012345678901234567890123456789012345678901234567890123456789 *TEXT *T,18/ID,30/ ,12/WC *T,4/TIP,4/STP,4/TSD,4/CST,8/A1,6/TC,30/ *ENDTEXT # BASED ARRAY TRMINFO [00:00] S(1); BEGIN # **** # ITEM TE$ID C(00,00,03); #TERMINAL INFO ID = *TRM* # ITEM TE$WC U(00,48,12); #TERM INFO LENGTH INCL DEVICES # ITEM TE$TIP U(01,00,04); #TIP TYPE # ITEM TE$STIP U(01,04,04); #SUB-TIP TYPE # ITEM TE$TSPD U(01,08,04); #TERMINAL SPEED # ITEM TE$CSET U(01,12,04); #CODE SET # ITEM TE$A1 U(01,16,08); #ADDRESS ONE # ITEM TE$TC U(01,24,06); #TERMINAL CLASS # # **** # END # *** *E *** DEVNTRY - NCF LINE RECORD DEVICE PORTION FORMAT. * * DEVNTRY IS A TEMPLATE FOR THOSE PARTS OF A LINE RECORD THAT * CONTAIN DEVICE RELATED INFORMATION. SEE NDL REFERENCE MANUAL. * * THE FOLLOWING IS THE FORMAT OF THE DEVICE INFORMATION PORTION OF * THE LINE RECORD. THIS IS A VARIABLE LENGTH ENTRY. THE LENGTH * DEPENDS ON THE NUMBER OF FN/FV PAIRS IN THE ENTRY. * * 1 2 3 4 5 * 012345678901234567890123456789012345678901234567890123456789 *TEXT *T,WORD,18/ID,30/ ,12/WC *T,42/NAME,10/ ,8/FNFV *T,8/A2,8/DT,6/ ,1/C,1/I,36/FNFV-PAIRS---> *T,60/FNFV-PAIRS---> *ENDTEXT # BASED ARRAY DEVNTRY [00:00] S(1); BEGIN # **** # ITEM DE$WORD U(00,00,60); #WHOLE WORD FOR MOVING FNFV PAIRS# ITEM DE$ID C(00,00,03); #DEVICE ENTRY ID = *DEV* # ITEM DE$WC U(00,48,12); #DEVICE ENTRY LENGTH INCL FN/FV-S# ITEM DE$NAME C(01,00,07); #DEVICE/TERMINAL NAME # ITEM DE$SUFFIX U(01,30,12); #PORT SUFFIX FOR GROUPED LINES # ITEM DE$FNFV U(01,52,08); #NUMBER OF FN/FV PAIRS # ITEM DE$A2DT U(02,00,16); #A2/DT COMBINED # ITEM DE$A2 U(02,00,08); #ADDRESS TWO # ITEM DE$DT U(02,08,08); #DEVICE TYPE # ITEM DE$CONFIG B(02,22,01); #DEVICE ALREADY CONFIGURED FLAG # ITEM DE$ISTAT U(02,23,01); #INITIAL STATUS OF DEVICE # # **** # END ITEM NRDEV; #NUM DEVS ACTUALLY CONFIGURED PER CNF/TE/R# # *** *E *** READLIST AND RLI - NCF READ LIST AND READ LIST INDEX. * * RLI CONTAINS THE RELATIVE PRU ADDRESSES OF ALL LINE RECORDS * CURRENTLY BEING READ AND POINTERS (THE LINE RECORD INDEX ENTRY * ORDINALS) BACK TO THE CORRESPONDING NCF READ REQUEST QUEUE * ENTRIES. THE BACK POINTERS ARE REQUIRED BECAUSE RLI IS SORTED * INTO ASCENDING RELATIVE PRU ADDRESS ORDER (FOR MORE EFFICIENT I/O) * PRIOR TO ISSUEING THE READLS FUNCTION. * * READLIST IS THE ACTUAL READ LIST USED BY THE CIO READLS FUNCTION. * IT CONTAINS ONLY THE RELATIVE PRU ADDRESSES IN SORTED ORDER. IT * IS REQUIRED BECAUSE NOS WILL NOT NECESSARILY PRESERVE THE LINE * RECORD INDEX ENTRY ORDINALS. # ARRAY RLI [0:RLIMAX$] S(1); BEGIN ITEM RLI$RPA U(00,00,30); #RELATIVE PRU ADDRESS # ITEM RLI$LRIORD U(00,30,30); #LINE RECORD INDEX ENTRY ORDINAL # END ARRAY READLIST [0:RLMAX$] S(1); ITEM RL$RPA U(00,00,60); #RELATIVE PRU ADDRESS # ITEM RLCOUNT; #NUMBER OF LINE RECS TO BE READ THIS TIME # ITEM RLIORD; #RLI NTRY CORRES TO LINREC BEING DEBLOCKED# # *** NCFFET AND NCFBUF - FET AND CIRCULAR BUFFER FOR THE NCF. * * THE NCF FET AND CIRCULAR BUFFER ARE DEFINED IN A GLOBAL LABELLED * COMMON AREA BECAUSE THE NCF IS USED (READ) BY BOTH THE CONFIGURE * TERMINAL ROUTINES AND BY THE INITIALIZATION ROUTINES. THESE * ARRAYS ARE COMPILED INTO A TEXT. HENCE, ALL PRESETTING MUST BE * DONE AT INITIALIZATION TIME. # ARRAY NCFFET [00:00] S(NFSIZ$); BEGIN ITEM NF$WORD U(00,00,60); #FIRST WORD OF FET # ITEM NF$LFN C(00,00,03); #FILE NAME--WILL BE *NCF* # ITEM NF$ZERO U(00,18,24); # # ITEM NF$LNAT U(00,42,08); #COMB LEVEL NR AND ABN TERM CODE # ITEM NF$CODE U(00,50,10); #CIO FUNCTION CODE # ITEM NF$CBIT B(00,59,01); #I/O COMPLETE BIT # ITEM NF$WORD1 U(01,00,60); #WORD ONE OF FET # ITEM NF$R B(01,12,01); #RANDOM ACCESS FLAG # ITEM NF$L U(01,36,06); #FET LENGTH IN EXCESS OF 5 WORDS # ITEM NF$FIRST U(01,42,18); #ADDRESS OF FIRST WORD OF BUFFER # ITEM NF$IN U(02,00,60); #NEXT DATA IN POINTER # ITEM NF$OUT U(03,00,60); #NEXT DATA OUT POINTER # ITEM NF$WORD4 U(04,00,60); #WORD FOUR OF FET # ITEM NF$LIMIT U(04,42,18); #LAST WORD ADDRESS +1 OF BUFFER # ITEM NF$LA U(05,00,60); #LIST ADDRESS(STORED AS WHOLE WD)# ITEM NF$WORD6 U(06,00,60); #WORD SIX OF FET # ITEM NF$RR U(06,31,29); #RANDOM REQUEST RELATIVE PRU ADDR# END ARRAY NCFBUF [00:NBLIM$] S(1); ITEM NB$WORD U(00,00,60); #WHOLE WORD IS ALL THAT IS NEEDED# END # NCFIO # END # TXTCTCS # TERM