;FNDUSR.M68 - Finds JOBs owned by an AlphaBase user
;
       MAYCREF
       SEARCH  SYS
       SEARCH  SYSSYM
       SEARCH  TRM
       BYP
       MOV     A2,A4
       JOBIDX  A6
       MOV     JOBTRM(A6),A5
       ADDW    #T$IMI+T$ECS,(A5)
       MOV     JOBTBL,A0
LOOP1:  MOV     (A0)+,D7
       BEQ     LOOP1                   ; no job allocated
       CMP     D7,#-1                  ; ? end of table
       JEQ     ENDTBL                  ; yes
       MOV     D7,A3                   ; no put index to jcb in a3
       ; this is the jbc indexed by a3
LOOP:
       MOV     JOBBAS(A3),D1           ; job base addr.
       JEQ     LOOP1                   ; NEVER ON
       MOV     JOBSIZ(A3),D1           ; job size
       JEQ     LOOP1                   ; NO MEMORY
       MOV     JOBUSR(A3),D1           ; LOAD PPN NUMBER
       CMP     D1,#177777              ; TEST FOR LOGOFF
       JEQ     LOOP1                   ; IF NOT VALID GOTO MESSAGE
       MOV     JOBBAS(A3),A1           ; POINT TO JOB BASE
       MOV     #0,D1
LOP:
       MOV     @A1,D1                  ; size of element
       JEQ     LOOP1                   ; if zero then last memory mod reached
       ADD     A1,D1                   ; add addr. to counter for next item
       ADD     #6,A1                   ; move pointer to NAME
       CMP     (A1),#^H2D361C21        ; MACTH FOR GIN
       JEQ     MACH
       MOV     D1,A1                   ; set new pointer
       JMP     LOP                     ; goto loop
MACH:
       ADD     #^H4C4,A1               ; MOVE POINTER TO ID
       MOV     A4,A2
       CMPB    (A2)+,(A1)+
       JNE     BY1
       TRM
       BEQ     E1
       CMPB    (A2)+,(A1)+
       JNE     BY2
       TRM
       BEQ     E2
       CMPB    (A2)+,(A1)+
       JNE     BY3
       TRM
       BEQ     E3
       CMPB    (A2)+,(A1)+
       JNE     BY4
       TRM
       BEQ     E4
       CMPB    (A2)+,(A1)+
       JNE     BY5
       SUB     #5,A1
       JMP     N1
E4:     MOV     A1,A2
       SUB     #4,A1
       JMP     N
E3:     MOV     A1,A2
       SUB     #3,A1
       JMP     N
E2:     MOV     A1,A2
       SUB     #2,A1
       JMP     N
E1:     MOV     A1,A2
       SUB     #1,A1
N:      TRM                     ! IS THIS END OF A1 TO
       JNE LOOP1
N1:
       TTYL    (A1)                    ; PRINT IT
       TAB                             ; BLANK SPACE
       ADD     #6,A1                   ; BUMP POINTER TO NAME
       TTYL    (A1)                    ; TYPE NAME
       TAB
       LEA     A1,JOBNAM(A3)           ; program name to be unpacked
       LEA     A2,BUFF                 ; where the unpack goes to
       UNPACK
       UNPACK
       MOV     #0,(A2)
       TTYL    BUFF                    ; PRINT NAME
       LEA     A2,BUFF
       CRLF                            ; kick new line for blank between jobs
       JMP     LOOP1                   ; goto main loop

ENDTBL:
       EXIT                            ; get out of the job

BY5:    SUB     #1,A1
BY4:    SUB     #1,A1
BY3:    SUB     #1,A1
BY2:    SUB     #1,A1
BY1:    SUB     #1,A1
       JMP     LOOP1

BUFF:   BLKW    24.

       END