;  LOGPPN.SBR - SUBROUTINE TO GET CURRENT LOG IN DRIVE AND PPN
;  USE - XCALL LOGPPN,string
;        WHERE string  is at least 15 characters long.
;
;  Written by: Doug Azzarito
;  TECHNOLOGY CONSULTANTS
;  5480 Eagle Lake Drive
;  Palm Beach Gardens, FL
;
;  Updated by Dave Heyliger - AMUS Staff to make it work if HEX set
;             (dkh)


       SEARCH  SYS
       SEARCH  SYSSYM
       SEARCH  AAA                     ;dkh

;       AUTOEXTERN                      ;dkh - don't need this

       OBJNAM  LOGPPN.SBR

       VMAJOR=1.
       VMINOR=0.
       VSUB=1.
       VEDIT=100.
       VWHO=1.

;registers

       BASIC=A3                                ; BASIC PARAMETERS
       FREMEM=A4                               ; FREE MEMORY POINTER
       JOBSYS=A5                               ; JCB POINTER

; offsets from A3 for BASCI parameters

       PARMS=0
       TYP.1=2
       ADD.1=4
       SIZE.1=10

       PHDR    -1,PV$RSM,PH$REE!PH$REU

       BR      START
       ASCII   / LOGPPN.SBR - TECHNOLOGY CONSULTANTS (1985)/
       EVEN
START:
       CMPW    PARMS(BASIC),#1                 ; Check for at least 1 param
       JLT     ABORT                           ; user goofed!
       ANDW    #17,TYP.1(BASIC)                ; Mask type
       CMPW    TYP.1(BASIC),#2                 ; See if it's a string
       JNE     ABORT                           ; No, he goofed
       MOV     SIZE.1(BASIC),D1                ; get the string length
       CMP     D1,#15.                         ; is it long enough?
       JLT     ABORT                           ; no, get out

;
       JOBIDX  A6                              ;dkh - get yourself
       LEA     A6,JOBTYP(A6)                   ;dkh - get your job stuff
       PUSHW   @A6                             ;dkh - save job stuff
       OCTAL                                   ;dkh - set octal

       JOBIDX  JOBSYS                          ; find JCB
       LEA     A1,JOBDEV(JOBSYS)               ; get DEVICE
       MOV     ADD.1(BASIC),A2                 ; point to BASIC string
       UNPACK                                  ; and put DEVICE there
       MOVW    JOBDRV(JOBSYS),D1               ; Get log'ed drive
       DCVT    0,OT$MEM                        ; convert
       MOVB    #72,(A2)                        ; add a colon
       INC     A2
       MOVB    #133,(A2)                       ; add a '[' if you want
       INC     A2
       MOVW    JOBUSR(JOBSYS),D1               ; get PPN
       RORW    D1,#8.                          ; we just want P
       AND     #377,D1
       OCVT    0,OT$MEM                        ; convert it
       MOVB    #54,(A2)                        ; add a ','
       INC     A2
       MOVW    JOBUSR(JOBSYS),D1               ; now get PN
       AND     #377,D1
       OCVT    0,OT$MEM                        ; convert that
       MOVB    #135,(A2)                       ; add ']'
       INC     A2

       JOBIDX  A6                              ;dkh - get yourself
       LEA     A6,JOBTYP(A6)                   ;dkh - get your job stuff
       POPW    @A6                             ;dkh - restore job status

       RTN                                     ; back to BASIC
ABORT:  TYPECR  ?PARAMETER ERROR IN LOGPPN.SBR
       EXIT                                    ; go BOOM!
       END