;*************************** 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 <N:A>
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 <N:S>
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 <N:R>
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
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