cdc:nos2.source:opl871:0av
Table of Contents
0AV
Table Of Contents
- [00010] 0AV - VERIFY USER NAME.
- [00012] VERIFY USER NAME.
- [00100] MAIN ROUTINE.
- [00102] VUN - MAIN PROGRAM.
- [00171] SUN - SEARCH FOR USER NUMBER.
- [00226] SIB - SEARCH INDEX BLOCK.
- [00321] CAN - COMPARE ACCOUNT NUMBER.
- [00346] SBL - SET BUFFER LIMITS.
- [00368] CFA - CHECK FAST ATTACH FILE.
- [00400] PRESET.
- [00402] IVF - INITIALIZE VALIDATION FILE.
Source Code
- 0AV.txt
- IDENT 0AV,/REL/VUNX
- PERIPH J
- BASE MIXED
- SST
- IRA$ SET 0 EXTERNAL PRESET OF RANDOM ADDRESSING DECKS
- QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
- REL$ SET 1 DEFINE FULL RELOCATION
- *COMMENT 0AV - VERIFY USER ACCOUNT NUMBER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 0AV - VERIFY USER NAME.
- SPACE 4
- *** 0AV - VERIFY USER NAME.
- * C.J.MATULE 71/01/11.
- * R.P. ROHRBOUGH 72/09/07.
- SPACE 4
- *** 0AV IS A LOCATION FREE ROUTINE WHICH VERIFIES THAT
- * THE SPECIFIED USER NUMBER IS A VALID ONE. THE VALIDATION
- * FILE FOR THE CORRECT FAMILY IS SEARCHED FOR THE GIVEN USER
- * NUMBER AND THE VALID USER INDEX IS RETURNED IF FOUND.
- * THE ACCOUNT RECORD BLOCK IS ALSO SET UP FOR THE CALLER,S USE.
- *
- * 0AV CAN ALSO BE CALLED TO DECREMENT A GIVEN USER,S
- * SECURITY COUNT AFTER AN ATTEMPTED BREACH OF SECURITY.
- * NOTE - THE SECURITY COUNT MAY NOT BE DECREMENTED IN ALL CASES
- * DUE TO THE AVAILABILITY OF THE VALIDATION FILE. THIS
- * CONDITION WILL BE FLAGGED BY THE ACCOUNT FILE MESSAGE THAT IS
- * ISSUED.
- SPACE 4
- *** ACCOUNT FILE MESSAGES.
- *
- * *SISC, NN.*
- * USER,S SECURITY COUNT HAS BEEN DECREMENTED TO THE VALUE NN.
- * WHEN NN EQUALS ZERO, THE USER NUMBER WILL NOT BE ALLOWED
- * ACCESS TO THE SYSTEM.
- *
- * *SISC.*
- * THE SYSTEM WAS UNABLE TO DECREMENT THE SECURITY COUNT FOR
- * THIS USER FOR ONE OF THE FOLLOWING REASONS
- * - VALIDATION FILE BUSY.
- * - SECURITY COUNT ALREADY AT ZERO.
- * - SECURITY COUNT IS UNLIMITED.
- SPACE 4
- ** ENTRY CONDITIONS.
- *
- *
- * (UN - UN+3) = USER NUMBER.
- * (UN+4) = FUNCTION CODE.
- * 0 = VALIDATE USER NUMBER.
- * 1 = DECREMENT USER,S SECURITY COUNT.
- *
- * (CN - CN+4) = FAMILY NAME.
- * = 0 IF NOT AVAILABLE.
- SPACE 4
- ** EXIT CONDITIONS.
- *
- *
- * (A) .LT. 0 IF VALIDATION FILE DEVICE INACCESSIBLE.
- * (T5) = EST ORDINAL OF VALIDATION FILE DEVICE IF INACCESSIBLE.
- *
- * FUNCTION 0. (VALIDATE USER NUMBER)
- * (T1 - T2) = 0 IF THE USER NAME WAS NOT FOUND.
- * (T1 - T2) = USER INDEX IF FOUND.
- * (T3) = FWA OF ACCOUNT RECORD BLOCK.
- * (T4) = 0 IF UI .LT. AUIMX.
- * (T4) = 1 IF UI .GE. AUIMX.
- * (T5) = FAMILY EQUIPMENT.
- * (T6) = SECURITY COUNT.
- * (CN - CN+4) = FAMILY NAME.
- *
- * FUNCTION 1. (DECREMENT USER,S SECURITY COUNT.)
- * SECURITY COUNT DECREMENTED.
- * ACCOUNT FILE MESSAGE ISSUED.
- * (T6) = DECREMENTED SECURITY COUNT.
- SPACE 4
- *CALL COMPMAC
- LIST X
- *CALL COMSACC
- LIST *
- *CALL COMSCPS
- *CALL COMSMSP
- *CALL COMSPIM
- *CALL COMSPFM
- *CALL COMSZOL
- *CALL COMPRLI
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- RI EQU 16 - 17 RANDOM INDEX (2 LOCATIONS)
- CN EQU 30 - 34 FAMILY NAME (5 LOCATIONS)
- UN EQU 40 - 44 USER NAME (5 LOCATIONS)
- ****
- SPACE 4
- ** CONSTANTS.
- VFDL EQU 4000D DELAY CYCLES WAITING FOR VALIDATION FILE
- SPACE 4
- TITLE MAIN ROUTINE.
- VUN SPACE 4
- ** VUN - MAIN PROGRAM.
- VUN SUBR ENTRY/EXIT
- REL$ EQU 1 SET FULL RELOCATION
- RJM. REL,LA RELOCATE ADDRESSES
- LJM IVF INITIALIZE VALIDATION FILE
- VUN1 RJM SUN SEARCH FOR USER NAME
- ZJN VUN2 IF USER ACCOUNT BLOCK NOT FOUND
- LDD UN+4
- VUN2 ZJN VUN3 IF VALIDATION FUNCTION
- * UPDATE VALIDATION FILE.
- LDM AHSC*5+1,T3
- SHN -6
- ZJN VUN4 IF SECURITY COUNT EXHAUSTED
- LMN 77
- ZJN VUN4 IF UNLIMITED
- LDC -100
- RAM AHSC*5+1,T3
- SHN -6
- STM VUNE
- STD T1 SET SECURITY COUNT IN MESSAGE
- SHN 3
- LMD T1
- SCN 70
- RAM VUNF+3
- LDC. BUF-2+WLSF
- RJM WDS WRITE DISK
- VUN3 UJN VUN5 RETURN VALIDATION FILE
- VUN4 STM VUNF+3 SET END OF ACCOUNTING MESSAGE
- LDC 2L .
- STM VUNF+2
- * RETURN VALIDATION FILE.
- VUN5 ENDMS
- LDC *
- VUNB EQU *-1 (FNT ORDINAL)
- STD CM+4
- LDC 0
- VUNC EQU *-1 (FILE MODE)
- STD CM+2
- LDN RFAS RETURN FAST ATTACH FILE
- RJM CFA CHECK FOR LOCAL/GLOBAL FAST ATTACH FILE
- VUN6 LDC 0
- * LDC VUNF+ACFN *SISC,NN.* OR *SISC.*
- VUNA EQU *-1 (FWA OF ACCOUNT FILE MESSAGE SET BY *IVF*)
- ZJN VUN7 IF NO ACCOUNT FILE MESSAGE
- ADC ACFN
- RJM DFM
- VUN7 LDN 0 SET USER INDEX FLAG
- * LDN 1 (UI .GT. *AUIMX*)
- VUND EQU *-1
- STD T4
- LDC 1 SET SECURITY COUNT (USE 1 IF FILE BUSY)
- VUNE EQU *-1
- STD T6
- LJM VUNX RETURN
- VUNF VFD 60/9LSISC, 00.
- * VFD 60/5LSISC.
- CON 0 END OF MESSAGE
- SPACE 4,10
- SUN SPACE 4
- ** SUN - SEARCH FOR USER NUMBER.
- *
- * ENTRY VALIDATION FILE ATTACHED.
- * (UN - UN+3) = USER NUMBER.
- *
- * EXIT (A) = 0, USER BLOCK NOT FOUND.
- * (T1 - T2) = USER INDEX.
- * (T3) = FWA OF USER VALIDATION BLOCK.
- * (T5) = EQUIPMENT.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * CALLS CAN, RDS, SBL, SIB.
- SUN3 LDN 0 CLEAR USER INDEX
- SUN4 STD T2 SET USER INDEX
- SHN -14
- STD T1
- SHN 14
- LMD T2
- ZJN SUNX IF USER BLOCK NOT FOUND
- ADC -AUIMX
- MJN SUNX IF UI LESS THAN AUIMX
- AOM VUND SET *UI .GE. AUIMX* FLAG
- * LOCATE PRIMARY LEVEL BLOCK FOR ACCOUNT NUMBER.
- SUN SUBR ENTRY/EXIT
- RJM SIB SEARCH INDEX BLOCK (LEVEL 0)
- SUN1 MJN SUN3 IF BAD ADDRESS
- RJM SIB SEARCH INDEX BLOCK (LEVEL 1)
- MJN SUN3 IF BAD ADDRESS
- LDC. BUF-2 READ DATA BLOCK
- RJM RDS READ LEVEL 2 BLOCK
- MJN SUN3 IF READ ERROR
- * SEARCH BLOCK FOR ACCOUNT NUMBER.
- RJM SBL SET LIMIT OF DATA IN BUFFER
- SUN2 LDC -ARBS*5
- RAD T3
- SBD T1 CHECK FOR LIMIT
- MJN SUN1 IF NO VALUE HIT
- RJM CAN COMPARE ACCOUNT NUMBER
- NJN SUN2 IF NOT EQUAL
- LDM AHSC*5+1,T3 SET SECURITY COUNT
- SHN -6
- STM VUNE
- LDM 3,T3
- LPN 37
- SHN 14
- LMM 4,T3
- LJM SUN4 SET USER INDEX
- SIB SPACE 4
- ** SIB - SEARCH INDEX BLOCK.
- *
- * ENTRY (FTOV) = FIRST TRACK.
- * (T6) = TRACK.
- * (T7) = SECTOR.
- *
- * EXIT (A) .LT. 0 IF ERROR.
- *
- * USES T1, T3, RI - RI+1.
- *
- * CALLS CAN, CRA, RDS, SBL, SRI.
- *
- * MACROS SETMS.
- SIB13 LCN 0 SET EXIT CONDITION
- SIB SUBR ENTRY/ EXIT
- SIB1 LDC. BUF-2 READ NEXT SECTOR
- RJM RDS
- MJN SIBX IF READ ERROR
- SETMS POSITION
- RJM SBL SET LIMIT OF INDEX ENTRIES IN BUFFER
- SIB2 LCN ANWE*5 DECREMENT ENTRY
- RAD T3
- SBD T1
- PJN SIB5 IF NOT BEFORE FIRST ENTRY IN BLOCK
- LDM BUF
- ZJN SIB4 IF LEVEL - 0
- LDM BUF+5*2+3 CHECK FOR LINK
- LPN 77
- SHN 14
- ADM BUF+5*2+4
- SIB3 ZJN SIB13 IF NO LINK
- LJM SIB12 LINK THROUGH BLOCKS
- SIB4 LDC. 0
- SIBA EQU *-1
- STD RI
- LDC. 0
- SIBB EQU *-1
- STD RI+1
- ADD RI
- ZJN SIB3 IF NO LINK
- UJN SIB6
- * SET RANDOM INDEX.
- SIB5 LDM 5+3,T3
- STD RI
- LDM 5+4,T3
- STD RI+1
- RJM CAN COMPARE ACCOUNT NUMBERS
- MJN SIB8 IF ACCOUNT PAST ENTRY
- ZJN SIB6 IF MATCH
- LJM SIB2 DECREMENT ENTRY
- SIB6 LDC **
- FTOV EQU *-1 FIRST TRACK OF VALIDATION FILE
- STD T6
- RJM CRA CONVERT RANDOM INDEX
- SIB7 LJM SIBX RETURN
- SIB8 LDM BUF+1 CHECK ENTRY
- SBN 2+ANWE
- STD T0
- SHN 2
- ADD T0
- ADD T1
- LMD T3
- NJN SIB9 IF NOT LAST
- LDM BUF+5*2+3 SET LINKED BLOCK
- ADM BUF+5*2+4
- NJN SIB11 IF LINK EXISTS
- SIB9 LDM BUF CHECK LEVEL
- ZJN SIB6 IF LEVEL-0
- LCN 1
- SIB10 UJN SIB7 RETURN
- SIB11 LDM BUF CHECK LEVEL
- NJN SIB12 IF NOT LEVEL - 0
- LDM 5+3,T3
- STM SIBA SAVE RANDOM ADDRESS OF LAST ENTRY
- LDM 5+4,T3
- STM SIBB
- SIB12 LDM BUF+5*2+3 SET READ OF LINKED BLOCK
- STD RI
- LDM BUF+5*2+4
- STD RI+1
- LDM FTOV RESET FIRST TRACK
- STD T6
- RJM CRA CONVERT RANDOM ADDRESS
- MJN SIB10 IF BAD ADDRESS
- LJM SIB1 READ BLOCK
- CAN SPACE 4
- ** CAN - COMPARE ACCOUNT NUMBER.
- *
- * ENTRY (T3) = ADDRESS OF ENTRY.
- * (UN - UN+3) = USER NUMBER.
- *
- * EXIT (A) = 0 IF EQUAL.
- * (A) < 0 IF LARGER.
- * (A) > 0 IF VALIDUS ENTRY LARGER.
- CAN SUBR
- LDI T3
- SBD UN
- NJN CANX IF NOT EQUAL
- LDM 1,T3
- SBD UN+1
- NJN CANX IF NOT EQUAL
- LDM 2,T3
- SBD UN+2
- NJN CANX IF NOT EQUAL
- LDM 3,T3
- SCN 77
- SBD UN+3
- UJN CANX EXIT
- SBL SPACE 4
- ** SBL - SET BUFFER LIMITS.
- *
- * ENTRY (BUF - BUF+4) = CONTROL WORD FOR BLOCK.
- *
- * EXIT (T1) = FWA OF BLOCK FOR SEARCH.
- * (T3) = LIMIT OF BLOCK FOR SEARCH.
- SBL SUBR ENTRY/ EXIT
- LDM BUF+4 SET FWA OF ENTRIES
- SHN 2
- ADM BUF+4
- ADC. BUF
- STD T1
- LDM BUF+1 SET LIMIT OF ENTRIES
- SHN 2
- ADM BUF+1
- SBN 2*5
- ADD T1
- STD T3
- UJN SBLX RETURN
- CFA SPACE 4,10
- ** CFA - CHECK FAST ATTACH FILE.
- *
- * ENTRY (A) = SUBFUNCTION.
- * (BUF) = FST WORD.
- *
- * EXIT (CM - CM+4) = RESPONSE FROM *AFAM* FUNCTION.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- CFA SUBR ENTRY/EXIT
- STD CM+3 STORE SUBFUNCTION
- CFAA LDN 0 (GLOBAL FAFT FLAG)
- ZJN CFA1 IF NOT GLOBAL FAST ATTACH FILE
- LDD T5
- CFAB ADD TH IMMEDIATE RETURN IF INACCESSIBLE DEVICE
- * PSN (AFTER FILE IS ATTACHED)
- CFA1 STD CM+1
- MONITOR AFAM
- UJN CFAX RETURN
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMPCRA
- SPACE 4
- * BUFFER.
- BUF EQU *+2
- TITLE PRESET.
- IVF SPACE 4,30
- ** IVF - INITIALIZE VALIDATION FILE.
- *
- * ENTRY (CN - CN+3) = FAMILY NAME.
- * = 0 IF NO FAMILY NAME.
- * (UN - UN+3) = USER NAME.
- * (UN+4) = FUNCTION CODE.
- *
- * EXIT (T5) = EQUIPMENT.
- * (T6) = FIRST TRACK.
- * (T7) = FIRST SECTOR.
- * (FTOV) = FIRST TRACK.
- * *SETMS READ* PERFORMED.
- * VALIDATION FILE ATTACHED.
- * TO *VUN6* WITH (T1) = (T2) = (T4) = 0, IF ONE
- * OF THE FOLLOWING IS TRUE-
- * -NO USER NAME IS PRESENT.
- * -THE VALIDATION FILE COULD NOT BE FOUND.
- * -THE VALIDATION FILE IS CURRENTLY BEING USED BY
- * *MODVAL*.
- * -AN *ORET* ERROR FLAG WAS SET WHILE WAITING FOR THE
- * VALIDATION FILE TO BECOME AVAILABLE.
- *
- * USES T1 - T7, CM - CM+4, CN - CN+4.
- *
- * CALLS FAT, CFA.
- *
- * MACROS CFI, MONITOR, PAUSE, SETMS, SFA.
- IVF LDD UN
- NJN IVF1 IF USER NAME PRESENT
- LJM IVF7 CLEAR USER INDEX
- IVF1 LDD UN+3 CLEAR USER NAME
- SCN 77
- STD UN+3
- * LOCATE CORRECT VALIDATION FILE.
- LDD MA SET FILE NAME
- CWM IVFB,ON
- SBN 1
- CRD CM
- LDD CN
- ZJN IVF2 IF FAMILY NAME NOT SPECIFIED
- SHN -6
- LMN 1R0
- NJN IVF4 IF NOT BLANK FAMILY NAME
- LDC PFNL
- UJN IVF3 USE SYSTEM DEFAULT FAMILY
- * GET FAMILY NAME IF NOT GIVEN.
- IVF2 LDD CP FETCH FAMILY EST ORDINAL
- ADN PFCW
- IVF3 CRD T1
- SFA EST,T4 READ EST ENTRY
- ADK EQDE
- CRD CN
- LDD CN+4 READ FAMILY NAME
- SHN 3
- ADN PFGL
- CRD CN
- IVF4 RJM FAT FIND FAST ATTACH FILE
- ZJN IVF5 IF FOUND
- LJM IVF7 CLEAR USER INDEX
- IVF5 LDM FATB SET FWA OF FNT
- STM IVFA
- LDM FATB+1
- STM IVFA+1
- CFI FNT,T1 READ FST ENTRY
- IVFA ADC * (FWA OF FNT)
- CRD CM
- ADN FSTG
- CRD T5
- LDD CM+3
- LPN 77
- RAM CFAA
- SETMS IO,(NS,RW)
- LDM. MSD
- SHN 21-6
- MJP VUNX IF DEVICE INACCESSIBLE
- LDD CM+4
- SHN 3
- ADN TRLL FETCH TRT ADDRESS
- CRD CM
- LDD CM+3
- LPN 77
- SHN 14
- LMD CM+4 PRESET *COMPCRA*
- SBD TH
- STM CRAA+1
- SHN -14
- RAM CRAA
- IVF6 LDD T1 SET FNT ORDINAL IN REQUEST
- STD CM+4
- STM VUNB
- LDD UN+4
- ZJN IVF9 IF ATTACH IN READ/ALLOW MODIFY MODE
- LMN 1&0
- ZJN IVF8 IF ATTACH IN NON-ROLLABLE UPDATE MODE
- LDC. * SET ADDRESS WHERE ERROR DETECTED
- STD CM+1
- LDN 0 DO NOT SET AN ERROR FLAG
- STD CM+2
- MONITOR CHGM CONDITIONALLY HANG PP
- IVF7 LDN ZERL CLEAR USER INDEX
- CRD T0
- LJM VUN6 EXIT
- IVF8 LDC. VUNF SET FWA OF DAYFILE MESSAGE
- STM VUNA
- LDC 4000+PTUP&PTRM REQUEST NON-ROLLABLE UPDATE MODE
- IVF9 LMN PTRM
- STD CM+2
- STM VUNC SAVE FILE MODE FOR RETURNING FILE
- LDN AFAS SET ATTACH FAST ATTACH FILE
- RJM CFA CHECK FOR LOCAL/GLOBAL FAST ATTACH FILE
- LDD CM+1 CHECK RETURN STATUS
- ZJN IVF12 IF FILE ATTACHED
- SHN 21-11
- MJP VUNX IF DEVICE INACCESSIBLE
- LDD CM+4
- LPN 2
- ZJN IVF10 IF ATTACHED IN MODIFY MODE BY *MODVAL*
- * WAIT FOR OTHER *0AV* TO RELEASE VALIDATION FILE.
- PAUSE
- LDD CM+1 CHECK ERROR FLAG
- LMN ORET
- NJN IVF11 IF NO ERROR
- IVF10 STM VUNF+3
- LDC 2L . SET END OF ACCOUNTING MESSAGE
- STM VUNF+2
- LJM IVF7 CLEAR USER INDEX
- IVF11 LDC VFDL/2 DELAY
- SBN 1
- PJN *-1 IF NOT END OF DELAY
- LJM IVF6 RETRY ATTACH
- IVF12 STM CFAB
- LDD T6 SET FIRST TRACK
- STM FTOV
- LDD T5 SET EST ORDINAL
- STD CM+1
- LDN UTRS GET CURRENT TRT
- STD CM+3
- MONITOR STBM
- LDN FSMS SET SECTOR
- STD T7
- LJM VUN1 RETURN
- IVFB VFD 42/0L"APFN",6/0
- SPACE 4,10
- * COMMON DECKS.
- *CALL COMPFAT
- SPACE 4,10
- * ASSEMBLE REMOTE CODE.
- HERE
- SPACE 4,10
- * CHECK FOR OVERFLOW.
- ERRPL *-ZAVL *0AV* OVERFLOWS CALLING PROGRAM
- ERRNG ZAVL-BUF-501 BUFFER OVERFLOWS CALLING PROGRAM
- END
cdc/nos2.source/opl871/0av.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator