QDOS Internals

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

User Tools

Site Tools


Table of Contents


This trap accesses the console linkage block and sets bytes in it.

Call ParametersReturn Parameters
D0.B$6FD0.LError return
D1.WPosition in linkage to setD1.LPreserved
D2.WNumber of bytes to setD2.LPreserved
A0.LWindow channel IDA0.LPreserved
A1.LPointer to data to setA1.LAddress of linkage block


ERR_NOChannel not open


  • All registers not mentioned above are unused and preserved.
  • The number of bytes in D2.W is set from the address in A1.L to the address D1.W bytes from the start of the console linkage block.
  • If D2.W is set to zero, no bytes are sent but the address of the linkage block is still returned in A1.L. This provides a way of accessing the linkage block without altering it.


The example shows how to access the linkage block's address.

con    dc.w   3
       dc.b   'con'

get_ad lea    con,a0       ; To open a window
       moveq  #0,d3
       moveq  #-1,d1       ; This job
       moveq  #io_open,d0
       trap   #2           ; Open the channel
       moveq  #0,d2        ; Send no bytes
       moveq  #$6F         ; IOP.SLNK
       trap   #3           ; sets the address in A1
       moveq  #io_close,d0
       trap   #2           ; close the channel
                           ; The linkage address is now in A1 
qdosmsq/pe/slnk.txt · Last modified: 2011/02/21 15:36 by george.gwilt