For those of you not following this thread, leave now. I want to thank all those who sent ideas, thoughts, etc. It turns out the school board DOES have the source code (just didn't know it). I found the code and traced the problem to an SL member. I then found what I think is the source for the procedure, and what to my wondering eyes should appear, but "GETPRIVMODE", after they had assured me there was "no PM code used". That code is attached below. My SPL is VERY VERY dated (and was never very strong to begin with). This is only part of the code (didn't feel like typing in any more ot it), but I think you can get the idea from this bit. I think some of this code may have been written as early as 1978. This predates my 3K beginnings, was there a time when something like this was required? I thought the basic IMAGE intrinsics had been around since "forever". It seems like this could be easily accomplished within a COBOL program with no need for all of this "extra effort". I would be happy to discuss further with anyone interested, but for now I'll "cease bandwidth consumption" on this. Sample of the SPL code (please excuse the spacing, but my OCR software is no so great. REPCHECK: GET THE PROCESS IDENTIFICATION NUMBER >) AND SET PROGRAM CAP TO ALL "I"'S >> (< STEP 1 FIND PXGLOB )> PUSH (DL); TOS := SI(-I); ASSEMBLE SUB @ DLIADDR TOS; PROG'CAP DL'ADDR (13); DLIADDR (13) := -1; << STEP 2 GET MAIN PIN FROM JIT >> TOS := @PIN; TOS := DL'ADDR (6).(6:10); TOS :=10; TOS :=1; ASSEMBLE ( MFDS ); PIN := PIN.(8.8); $IF X3 = ON (( GET THE CURRENT PRIORITY OF THE PROCESS MPE3 )> $IF X4 = ON (( GET THE CURRENT PRIORITY OF THE PROCESS MPE4 >> INDEX -.= 4; ASSEMBLE ( PLDA ); CPB := TOS; INDEX := CPB + 13; ASSEMBLE ( PLDA ); PROC'INFO'1 := TOS; IF PROC'INFO'l.(2:1) THEN OLD'PRIORITY := "CS"; IF PROC'INFO'I.(3:1) THEN OLD'PRIORITY := "DS"; IF PROC'INFO'I.(4:1) THEN OLD'PRIORITY := "ES"; IF PROC'INFO'l.(1:1) THEN OLDIPRIORITY := PROC'INFO'1 & LSL (8) + 65; $IF << GET RUN TIME PARAMETER AND RETURN IT TO PROGRAM >> GETUSERMODE; ASSEMBLE (LRA Q-0; SUBM Q-0; SUBI 4; STAX; LOAD DB+O,X); PARM := TOS; << SET STATUS TO DEFAULT OF ZERO >> STATUS := 0; GETPRIVMODE; WHO (MODE,,,USER,GROUP,ACCOUNT,,TERM); MOVE LG'W (12) := PROG'NAME, (3); DATE := CALENDAR; TIME := CLOCK; << IF JOB MODE SET TERM TO 99 >) IF MODE.(12:2) = 2 THEN TERM := 99; << DISABLE BREAK KEY AND CONTROL Y IN SESSION MODE >> IF MODE.(12:2) = I THEN BEGIN FCONTROL (1,14,WORK); FCONTROL (1,16,WORK); END; << FIND THE RIGHT DATABASE NAMES >> GETUSERMODE; IF NOT (I <= MODE'A <= MAX'A) THEN BEGIN GETPRIVMODE; GO TO ILL'CALL; END; MOVE BASE'NAME := BASE'STORE ((MODE'A - 1) *8),(8) MOVE DATABASE := BASE'NAME (1), (7); MOVE LG'W (26) := " "; GETPRIVMODE; << CHECK MODE'B PARAMETER AND GO TO ILL'CALL IF ERROR >> IF NOT (1 <= MODE'B <= 3) THEN GO TO ILL'CALL; << OPEN DATABASE ROOT FILE AND GET PASSWORD >> MOVE LBUFF := BASE'NAME(l),(7); DB'FILE := FOPEN (BBUFF,%OOO1,%1340,,,,,,,,,,-400); IF <> THEN BEGIN IF MODE'B = 3 THEN GO TO RETURN'NOT'AVIL; FCHECK (DB'FILE,WORK); IF <> THEN FILE'ABORT (DB'FILE); IF 5O <= WORK <= 52 OR 92 <= WORK <=93 THEN GO TO ILL'ACCESS; IF WORK = 48 OR 90 <= WORK <= 91 THEN GO TO EXCLUS'ACCESS; FILE'ABORT (DB'FILE); END; << GET THE MAINTANCE PASSWORD AND OTHER PASSWORDS >> FREADLABEL (DB'FILE, PBUFW, 128, 0); IF <> THEN FILE'ABORT (DB'FILE); MOVE MBUFW := PBUFW (64), (4); FREADLABEL (DB'FILE, PBUFW, 128, 1); IF <> THEN FILE'ABORT (DB'FILE); FREADLABEL (DB'FILE, PBUFW (128), 128, 2); IF <> THEN FILE'ABORT (DB'FILE); FFILEINFO (DB'FILE, MODE1, FILE'NAME, MODEI8, FILE'CR); IF <> THEN FILE'ABORT (DB'FILE); FCLOSE (DB'FILE,O,O); IF <> THEN FILE'ABORT (DB'FILE); << FIND THE HIGHEST PASSWORD >> GETUSERMODE; MOVE BASE'PASS := " "; MOVE HIGH'PASS := " "; FOR X := 0 UNTIL 63 DO IF PBUFB (X * 8) <> " " THEN MOVE HIGH'PASS := PBUFW (X * 4), (4); << GET THE ACCOUNT FOR THE FILE NAME >> MOVE FILE'ACCT := " "; TOS := @ FILE'ACCT; SCAN FILE'NAME UNTIL " .", 1; TOS := TOS + 1; SCAN * UNTIL " .", 1; TOS := TOS + 1; MOVE * := * WHILE A; GETPRIVMODE; CHECK'JOB: IF NOT JOB'OK THEN BEGIN IF MODE.(12:2) = 2 THEN GO TO NOT'IN'JOB; END;