;*************************** AMUS Program Label ****************************** ; Filename: WHOBAS.M68 Date: 10/16/89 ; Category: SUB Hash Code: 027-526-235-512 Version: ; Initials: Name: GARY ANAGNOSTIS ; Company: Telephone #: ; Related Files: ; Min. Op. Sys.: Expertise Level: BEG ; Special: ; Description: Get jobname and other information about current job ; ; ;***************************************************************************** ;******************************************************** ;* * ;* BASIC XCALL WHOBAS SUBROUTINE * ;* Format: XCALL WHOBAS,WHONAS$ * ;* Where WHOBAS$ is a mapped string, 12 bytes long * ;* MAP1 WHOBAS * ;* MAP2 JOBNAM,S,6 * ;* MAP2 TRMNAM,S,6 * ;* MAP2 DSKNNN,S,6 !Optional * ;* MAP2 WHOPPN,S,10 !Optional * ;* MAP2 ABUSR,S,6 !Optional * ;* * ;******************************************************** ; Gary Anagnostis - 01/08/82 ; [1] 08/08/86 AO/GSA Added option for DSK##:[prj,ppn] to return ; [2] 08/20/86 AO/GSA Added option to return AlphaBase User ID SEARCH SYS SEARCH SYSSYM OBJNAM WHOBAS.SBR ;TERMINAL LINE TABLE EQUATES VMAJOR=1. VMINOR=1. VSUB=2. VEDIT=0. START: PHDR -1,PV$RSM!PV$WSM,PH$REU!PH$REE CHK1: CMPW A3,#0 ;ARGUMENTS THERE? BNE CHK2 ; IF NOT 0 THEN BR TYPECR BR NO CHK2: MOVW 2(A3),D2 ;PUT 1ST VARIABLE TYPE CODE IN D2 BTST #2,D2 ; CHECK FOR STRING TYPE BEQ CHK3 ; IF BIT SET THEN BRANCH TYPECR BR NO CHK3: MOV 10(A3),D2 ;GET LENGTH OF VARIABLE INTO A2 [2] WAS 4 CMP D2,#13 ; MAKE SURE LEN AT LEAST 12 BYTE BGT CHK4 ; BRANCH IF 12 OR MORE TYPECR BR NO NO: RTN CHK4: MOV 4(A3),A2 ;GET ADDRESS OF VARIABLE INTO A2 JOBIDX A1 ; INDEX MY JOB TABLE ADD #10,A1 ; JOBNAME GOES FIRST UNPACK UNPACK JOBIDX A1 MOV JOBTRM(A1),A1 ; NOW INDEX THE TERMINAL NAME SUB #4,A1 UNPACK ; AND TRANSFER IT TOO UNPACK CHK22: MOV 10(A3),D2 ;GET LENGTH OF VARIABLE INTO A2 CMP D2,#34 ; MAKE SURE LEN AT LEAST 28 BYTEs JLT OK ; BRANCH IF 28 OR LESS JOBIDX A6 MOV A6,A4 LEA A1,JOBDEV(A4) ; GET DEVICE SPEC UNPACK MOVL #0,D1 MOVB JOBDRV(A4),D1 OCVT 0,OT$MEM ; SAVE DRIVE NUMBER MOVB #':,(A2)+ MOVB #'[,(A2)+ MOVL #0,D1 MOVB 1+JOBUSR(A4),D1 OCVT 3,OT$MEM MOVB #',,(A2)+ MOVB JOBUSR(A4),D1 OCVT 3,OT$MEM ; PPN, TO BUFFER(A2) MOVB #'],(A2)+ CHK23: MOV 10(A3),D2 ;GET LENGTH OF VARIABLE INTO A2 CMP D2,#42 ; MAKE SURE LEN AT LEAST 34 BYTES JLT OK ; BRANCH IF 33 OR LESS GETABL: MOV 4(A3),A2 ;GET ADDRESS OF VARIABLE INTO A2 ADDL #35,A2 ; Bump up to user name area SRCH GINDTA,A6,F.USR ; Find AlphaBase user area in memory MOV A6,A4 BEQ ABUSER ; GINDTA.SV found MOV 4(A3),D2 ADD #34,D2 MOV D2,A2 MOVB #0,(A2) BR OK ABUSER: MOV A6,D1 ADD #2276,D1 ; Bump up to user id MOV D1,A4 MOV 4(A3),D2 ; Variable address ADD #34,D2 ; Up to AlphaBase user name, [29,34] MOV D2,A2 MOVB (A4)+,(A2)+ MOVB (A4)+,(A2)+ MOVB (A4)+,(A2)+ MOVB (A4)+,(A2)+ MOVB (A4)+,(A2)+ MOVB (A4)+,(A2)+ OK: RTN GINDTA: RAD50 /GINDTASV / BLKW 2 EVEN BUFFER: BLKW 10 END .