;************************************ ; JOBSTS.M68 - JOB Status display ; Usage: JOBSTS ; by Dave Heyliger ;************************************ SEARCH SYS ; search normals SEARCH SYSSYM SEARCH TRM PHDR -1,0,PH$REE!PH$REU ; define header .OFINI ; define variables: .OFDEF BUFFER,8. ; buffer for UNPACKing .OFSIZ IMPSIZ ; final size of variable(s) = IMPSIZ GETIMP IMPSIZ,A3 ; A3 points to list of variables TYPECR < Name LOG Memory Program Reads Writes> JOBIDX A0 ; A0 points to JOB's JCB LEA A1,JOBNAM(A0) ; A1 points to JOB's name RAD50 LEA A2,BUFFER(A3) ; A2 points to BUFFER variable PUSH A2 ; save pointer to BUFFER on stack UNPACK ; string JOB name created UNPACK CLRB @A2 ; end string with null POP A2 ; repoint A2 to BUFFER TTYL @A2 ; JOB name displayed TAB ; tab under LOG title LEA A1,JOBDEV(A0) ; A1 points to device name where JOB logged LEA A2,BUFFER(A3) ; A2 points to buffer PUSH A2 ; save pointer on stack UNPACK ; devices are THREE characters long CLRB @A2 ; end string with null POP A2 ; repoint A2 to BUFFER TTYL @A2 ; type out "Dev" CLR D1 ; always clear data registers first MOVW JOBDVR(A0),D1 ; get logical device number DCVT 0,OT$TRM ; type out device number TYPE <:[> ; PPNs start with :[ PRPPN JOBUSR(A0) ; type out PPN "P,PN" TYPE <]> ; PPNs end with "]" TAB ; cursor under "Memory" CLR D1 ; clear before using MOV JOBSIZ(A0),D1 ; get memory partition size into D1 DCVT 0,OT$TRM ; type out memory size LEA A1,JOBPRG(A0) ; A1 points to RAD50 program name LEA A2,BUFFER(A3) ; boy does this look familiar PUSH A2 ; as does this.... UNPACK UNPACK CLRB @A2 POP A2 TTYL @A2 TAB ; finally, get reads and writes MOV JOBDSR(A0),D1 ; get disk reads DCVT 0,OT$TRM ; type it out TAB MOV JOBDSW(A0),D1 ; get disk writes DCVT 0,0T$TRM ; and type it out CRLF ; RETURN EXIT ; to the dot END ; end of code. .