QDOS Internals

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

User Tools

Site Tools



This vector can be used as part of a simple device driver to perform Trap #3 I/O operations given only three subroutines.

Call ParametersReturn Parameters
D0.BIOSS value.D0.LError code.
D1.LIOSS value.D1.LIOSS value.
D2.LIOSS value.D2.LIOSS value.
A0.LChannel ID.A0.LPreserved.
A1.LIOSS value.A1.LIOSS value.
A2.LUnused. A2.LCorrupted.
A3.LUnused. A3.LCorrupted.
A4.LUnused. A4.LCorrupted.


ERR_NCNot complete.
ERR_BOBuffer full.
ERR_NOChannel not found.
ERR_EFEnd of file.
ERR_DFDrive full


  • All registers not shown above are not used on entry and are preserved on exit.
  • When finished, the vector returns to the twelfth byte after the call. The three long words between the call and return contain, respectively, pointers to routines to test pending input, fetch a byte and send a byte.
  • On entry to these three routines A0.L will be set to the channel ID and A6.L to the system variables. The routines should set the error code in D0 and use D1 for the data byte. Registers D2-D3/A1-A3 can be used.
  • The Trap #3 calls which the vector will perform are:


An example of the use of this vector can be seen here.

qdosmsq/vectors/ssio.txt · Last modified: 2011/04/02 16:06 by george.gwilt