;************************************
;* JOBLST.M68
;*
;* Scans the system and prints
;* every defined job to the screen.
;*
;* Usage: JOBLST
;*
;* by Dave Heyliger - AMUS Staff
;************************************
OBJNAM JOBLST.LIT ;Define the final product
SEARCH SYS ;Grab all MACRO definitions
SEARCH SYSSYM
SEARCH TRM
;--- The following will define a 'version number' that will be displayed
; when you do a DIR/V JOBLST.LIT. These numbers are 'made-up' by the
; programmer, and can be changed when the code is changed.
;
VMAJOR=1. ;Major version number of the program
VMINOR=0. ;Minor version number of the program
VEDIT=100. ;the edit number of the program
;--- This small portion of the code reserves a little memory space in YOUR
; memory partition for a variable I called "BUFFER".
;
.OFINI ;OFfset INItialization:
.OFDEF BUFFER,7. ;OFfset DEFinition - "BUFFER"
.OFSIZ IMPSIZ ;IMPSIZ is the final size of bytes (7)
;--- Start the program with a header, and also get the size of our memory
; buffer - the 7 bytes where byte "0" is the 1st byte of 7 in "BUFFER".
;
PHDR -1,0,PH$REE!PH$REU ;Program is Re-entrant & Re-useable
GETIMP IMPSIZ,A5 ;Reg. A5 now ^'s to byte "0" of BUFFER
;--- Now get the ADDRESS of the start of the JOB table and plop it into A0
;
GETTBL: MOV JOBTBL,A0 ;Get base of JOB TABLE into A0
;--- The following loop will 1) get all names from the JOB TABLE (in RAD50)
; 2) unpack the RAD50 charaters, and
; 3) print the names to the screen
;
LOOP: MOV (A0)+,A4 ;and let A4 point to each JBC
MOV A4,D0 ;this will set the flags 2 B checked
BMI EXIT ;end of the JOB TABLE on a "-1"
BEQ LOOP ;goto the top on a "0"
LEA A1,JOBNAM(A4) ;else ^ A1 to the start of a JOB name
LEA A2,BUFFER(A5) ;and ^ A2 to byte "0" of "BUFFER"
UNPACK ;Find the ASCII letters in JOBNAM
UNPACK ; ...for up to 6 digits
CLRB @A2 ;Place a "null" after the characters
LEA A2,BUFFER(A5) ;Repoint A2 to byte "0" of "BUFFER"
TTYL @A2 ;Print out all chars until a null
CRLF ;Carriage return & line feed
JMP LOOP ;Time for the next name in the table
;--- Finally, let the user know you are through
;
EXIT: TYPE <End of Job listing for this system>
CRLF
EXIT ;return to AMOS