10 ! ----- READ_UAF_BY_UIC.FUN ----- ! ! ----- FUNCTION TO READ THE SYSUAF FILE BY A SPECIFIC UIC ----- ! ! ----- RETURNS FALSE IF PASSED UIC MATCHES A SYSUAF RECORD ----- ! ! ----- Last Change 05/01/89 by Brian Lomasky ----- ! ! ----- Teradyne, Inc., 179 Lincoln Street, Boston, MA 02111 ----- ! ----- (617) 482-2706, x3259 ----- ! ! ----- Neither Brian Lomasky nor Teradyne, Inc. implicitly or ----- ! ----- explicitly implies this program is usable in any way. ----- ! ----- This program is released to the public domain in an ----- ! ----- "AS-IS" condition. ----- ! ! ----- Restrictions: ----- ! ----- 1) Requires VAX BASIC V2.4 or later. ----- ! ----- 2) Calling program must have UAF Map defined ----- ! ----- 3) The SYSUAF.DAT file must have been already opened ----- ! ----- on BASIC I/O Channel #9 ----- ! FUNCTION WORD READ_UAF_BY_UIC(LONG UIC_TO_CHECK) ! ----- COMMON CONSTANTS ----- DECLARE WORD CONSTANT TRUE = (1%=1%) DECLARE WORD CONSTANT FALSE = NOT TRUE ! ----- ERROR CODES RETURNED BY ERR ----- DECLARE WORD CONSTANT BUCKET_LOCKED = 154% DECLARE WORD CONSTANT END_OF_FILE = 11% DECLARE WORD CONSTANT REC_NOT_FOUND = 155% ! ----- MAP FOR SYSUAF.DAT DATA FILE ----- ! ----- (Calling program must have this UAF Map defined) ----- MAP (UAF) STRING UAF_REC = 1412% MAP (UAF) STRING FILL = 4%, & STRING USER_NAME_NO_TAG = 31%, & STRING USER_NAME_TAG = 1%, & WORD UIC1, & WORD UIC2 MAP (UAF) STRING FILL = 4%, & ! ----- USER_NAME IS THE PRIMARY ----- & ! ----- KEY (NO DUPLICATES, NO ----- & ! ----- CHANGES) ----- & STRING USER_NAME = 32%, ! ALJTB & ! ----- UIC IS THE ALTERNATE KEY ----- & ! ----- #1 (DUPLICATES, CHANGES) ----- & LONG UIC, & STRING FILL = 44%, & BYTE OWNER_NAME_LENGTH, & STRING OWNER_NAME = 31%, & STRING FILL = 352%, & BYTE FLAGS(3%) READ_UAF_BY_UIC = TRUE ! ASSUME ERROR STATUS ON ERROR GOTO READ_UAF_BY_UIC_ERROR GET #9%, KEY #1% EQ UIC_TO_CHECK, REGARDLESS ! ----- INVALID USERNAME IF ACCOUNT IS DISUSER-ED ----- ! ----- (DISACNT) ----- EXIT FUNCTION IF (FLAGS(0%) AND 16%) = 16% READ_UAF_BY_UIC = FALSE ! RETURN SUCCESS STATUS EXIT FUNCTION ! AND EXIT FUNCTION READ_UAF_BY_UIC_ERROR: IF ERR = BUCKET_LOCKED THEN ! IF BUCKET IS LOCKED? SLEEP 1% RESUME END IF RESUME READ_UAF_BY_UIC_EXIT IF ERR = REC_NOT_FOUND OR & ERR = END_OF_FILE PRINT "Unexpected error from READ_UAF_BY_UIC"; ERR; TIME$(0%) ON ERROR GO BACK READ_UAF_BY_UIC_EXIT: END FUNCTION