QDOS Internals

Anything you never knew you wanted to know about the Sinclair QL.

User Tools

Site Tools



Force remove an existing job. The job may be active, if so it will be rendered inactive and then removed.

Call ParametersReturn Parameters
D0.B$05D0.LError code.
D1.LId of job to be removed, or -1 for the current job.D1.LCorrupted.
D3.LError code to return from killed job to any waiting jobs.D3.LCorrupted.


ERR_NJInvalid job id.


  • All registers not shown above are not used on entry and are preserved on exit.
  • Job 0 (SuperBasic) cannot be removed.
  • This trap is not atomic as it can exit via the scheduler - if the current job is being removed.
  • If the job being removed is active, it is inactivated and removed.
  • If the job has child jobs, they are removed whether or not they are active.
  • The error code in D3.L is passed to any job which is waiting for this job to complete.
  • Any resources - channels, memory etc - owned by the job being removed, or its children, are released.


The following shows the use of this call to remove the current job.

kill_me moveq   #mt_frjob,d0      ; Trap code.
        moveq   #-1,d1            ; Indicate the current job.
        moveq   #0,d3             ; Don't pass any error codes.
        trap    #1                ; Kill this job. 
        bra.s   kill_me           ; Shouldn't get here, but just in case!
qdosmsq/traps/trap_1/frjb.txt · Last modified: 2008/06/25 12:52 by norman