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