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