;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 .