MT_JINF/SMS.INJB - Get Job Information
Return information about a specific job.
|Call Parameters||Return Register||Return Parameter|
|D1.L||Id of job to get information for.||D1.L||Id of next job in tree.|
|D2.L||Id of job at top of the tree.||D2.L||Parent job’s id for the job we enquired upon.|
|D3.L||Unused.||D3.L||$000000pp = Active job’s priority. $FFFFFFpp = Suspended job’s priority.|
|A0.L||Unused.||A0.L||Base address, JB_END, of the job.|
|ERR_NJ||Invalid job id, in D1, on entry.|
- All registers not shown above are not used on entry and are preserved on exit.
- This call can be used to scan the entire job tree, by initially calling it in a loop with D1.L = D2.L = zero, then on each subsequent call, leaving D1.L with the value returned, in D1.L, by the previous call. Eventually, D1.L will be returned as zero which indicates end of the tree.
- If, on entry, D1.L = D2.L <> zero, then only that sub-tree will be scanned, not the entire tree.
The following shows the use of this call to scan the entire job tree :
start moveq #0,d1 ; Zero = SuperBasic. move.l d1,d2 ; Job at top of tree also = SuperBasic. loop moveq #SMS.INJB,d0 ; Or MT_JINF trap #1 ; Fetch job information, sets D1.L = next job in tree. tst.l d0 ; Check for errors. bne.s <Error handler> ; Oops, an error occurred. tsl.l d1 ; Are we done yet? beq.s done ; Yes, no more jobs. ... <Do stuff here with info returned, but preserve D1.L and D2.L> ... bra.s loop ; Using D1 and D2's values from the trap, go and do next job. done ...