*DECK NVFISUE USETEXT TEXTNVF USETEXT TXTAPSS PROC NVFISUE; # TITLE NVFISUE - SET USER ENVIRONMENT. # BEGIN # NVFISUE # # *** NVFISUE - SET USER ENVIRONMENT. * * D. G. DEPEW. 82/01/11. * * NVFISUE ESTABLISHES THE OPERATING ENVIRONMENT USED BY NVF TO * CONDUCT DIALOG WITH TERMINAL USERS CONNECTED TO NVF. THAT IS, * THE HALF-DUPLEX AND TRUNCATE UPLINE DATA MODES ARE SET AND * CERTAIN USER MESSAGES ARE PREFORMATTED FOR NETWORK OUTPUT. * * PROC NVFISUE * * ENTRY NONE. * * EXIT 1. A LST/HDX SM SPECIFYING THAT ALL CONNECTIONS WILL * OPERATE IN HALF-DUPLEX MODE HAS BEEN PLACED IN THE * OUTGOING TRAFFIC QUEUE. * 2. A DC/TRU SM SPECIFYING THAT OVERSIZED BLOCKS WILL BE * TRUNCATED ON ALL CONNECTIONS HAS BEEN PLACED IN THE * OUTGOING TRAFFIC QUEUE. * 3. A LOCAL COPY OF THE SYSTEM SYSTEM HEADER LINE FROM CMR * HAS BEEN STORED (COMMON BLOCK/DECK *TMSGNVF*), * APPROPRIATELY FORMATTED FOR OUTPUTTING TO AN IVT. * 4. THE CORRECT DISPLAY CODE FOR A COLON, ACCORDING TO THE * CHARACTER SET OF THE RUNNING SYSTEM, HAS BEEN STORED * IN THE CORRECT CHARACTER POSITIONS OF ALL USER PROMPT * MESSAGES (I.E., FAMILY, USER NAME, PASSWORD AND * APPLICATION PROMPTS). # # **** PROC NVFISUE - XREF LIST. # XREF BEGIN PROC SSBEBF; # EXTRACT BITFIELD # PROC SSBSBF; # STORE BITFIELD # PROC SSTAQE; # ACCEPT QUEUE ENTRY # FUNC XSFW; # SPACE FILL WORD (MACREL) # PROC VERSION; # GET SYSTEM TITLE AND VERSION (MACREL) # END # **** # *CALL TMSGNVF DEF CSLOC$ #O"67"#; # ADDR OF CHAR SET FLAG IN JOB COMM AREA # DEF REPLACE$ (PROMPT, WP, BP) #STOREWD = WP; STOREBP = BP; SSBSBF (PROMPT, STOREWD, STOREBP, 6, COLON)#; ITEM I; # LOOP INDUCTION VARIABLE # ITEM COLON; # COLON CHAR AND TEMP STORAGE # ITEM FETCHWD I = 1; # SYSTEM HEADER STARTING FETCH WORD # ITEM FETCHBP I = 0; # SYSTEM HEADER STARTING FETCH BIT POS # ITEM STOREWD I = 0; # SYSTEM HEADER STARTING STORE WORD # ITEM STOREBP I = 6; # SYSTEM HEADER STARTING STORE BIT POS # BASED ARRAY CHARSET [00:00] S(1); ITEM CS$64 B(00,00,01); # CHARACTER SET FLAG # # * PARAMETER WORD FOR NOS VERSION MACRO. # ARRAY VERPAR [00:00] S(1); BEGIN ITEM VP$FORM2 B(00,00,01) = [TRUE]; ITEM VP$BC U(00,01,11) = [30]; # 30 BYTES = 6 WORDS # ITEM VP$SBBP U(00,12,30) = [0]; # SOURCE/REC BYTE POS # ITEM VP$WADDR U(00,42,18); # RECEIVING ARRAY ADR # END CONTROL FASTLOOP; # * WE BEGIN BY FETCHING (FROM CMR) AND REFORMATTING THE SYSTEM * HEADER LINE. THE LINE IS SIX WORDS LONG AND (AS FORMATTED IN * CMR) CONTAINS IMBEDDED BINARY ZERO CHARACTERS. THE LINE MUST BE * PREFIXED WITH A NULL (BLANK) FORMAT EFFECTOR AND SUFFIXED WITH A * UNIT SEPARATOR (ZERO BYTE). ALSO, THE IMBEDDED BINARY ZERO * CHARACTERS MUST BE CONVERTED TO BLANKS. # VP$WADDR[0] = LOC (SYSHDR[1]); # SET ADDR TO RECEIVE HDR # VERSION (VERPAR[0]); # GET SYSTEM HEADER LINE # SYS$FE[0] = " "; FOR I=1 STEP 1 UNTIL 6 DO # RT SHIFT ONE CHAR AND BLANK FILL ZEROES # BEGIN SSBEBF (SYSHDR[0], FETCHWD, FETCHBP, 60, COLON); COLON = XSFW (COLON); SSBSBF (SYSHDR[0], STOREWD, STOREBP, 60, COLON); END SYS$ZB[6] = 0; # * NOW REPLACE THE DOLLAR SIGNS WITH COLONS IN THE FIVE USER PROMPTS. * THE CHARACTER SET FLAG IS IN THE SIGN BIT POSITION OF LOCATION * 67B OF THE JOBS FIELD LENGTH. SINCE THERE ARE ONLY FIVE * CHARACTER POSITIONS TO BE STORED, A RATHER SIMPLE TECHNIQUE HAS * BEEN CHOSEN - THE CHARACTER POSITIONS HAVE BEEN HARD CODED, IN * COMDECK *TMSGNVF*, AND ARE SIMPLY STORED VIA PROC *SSBSBF*. A * PARAMETERIZED DEF HAS BEEN DEFINED TO SAVE CODING. # P = CSLOC$; IF CS$64[0] THEN # 64 CHARACTER SET # COLON = 0; ELSE # 63 CHARACTER SET # COLON = O"63"; REPLACE$ (APPBUF[0], APPWP$, APPBP$); # APPLICATION: # REPLACE$ (FAMBUF[0], FAMWP$, FAMBP$); # FAMILY: # REPLACE$ (PIDBUF[0], PIDWP$, PIDBP$); # PERSONAL ID: # REPLACE$ (PWRDBLK[0], PASWP$, PASBP$); # PASSWORD: # REPLACE$ (USRBUF[0], USRWP$, USRBP$); # USER NAME: # # * FINALLY, ISSUE THE LST/HDX AND DC/TRU SUPERVISORY MESSAGES. THE * MESSAGES CAN HAVE IDENTICAL ABH'S. SET UP ABH FIRST, THEN SM * BODIES, THEN ISSUE MESSAGES. # ABHWORD[1] = 0; # SET UP ABH WORD # ABHABT[1] = APPCMD; ABHACT[1] = CT60TRANS; ABHTLC[1] = 1; SPMSG0[1] = 0; # SET UP AND ISSUE DC/TRU SM # PFCSFC[1] = DCTRU; SSTAQE (P, 3, ABH[1], APSM[1]); PFCSFC[1] = LSTHDX; # SET UP AND ISSUE LST/HDX SM # LSTDIS[1] = TRUE; # INPUT INITIALLY DISABLED FOR ALL ACN'S # SSTAQE (P, 3, ABH[1], APSM[1]); END # NVFISUE # TERM