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

       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