QDOS Internals

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

User Tools

Site Tools


Table of Contents


This Trap restores part of a window.

Call ParametersReturn Parameters
D0.B$6ED0.LError code
D1.Lx,y start of block in areaD1.LPreserved
D2.L<>0 to keep save areaD2.LPreserved
A0.LWindow channel IDA0.LPreserved
A1.LPointer to window blockA1.LPreserved
A2.LAddress of save areaA2.LPreserved


ERR_NOChannel not open
ERR_OROut of range


  • All registers not listed above are unused and preserved.
  • If D2.L is 0 the save area is returned to the common heap.
  • The window block is a set of four words giving x,y size and x,y position as in IOP.SVPW.
  • This Trap complements IOP.SVPW which sets up and fills a save area.


The example shows a block of size 6,6 being placed in the window, whose channel ID is in A0.L, at position 2,4. The block is taken from the block in the save area with origin 14,4.

wbloc    dc.w     6,6,2,4      ; Window block.

Restore  move.l   #$E0004,d1   ; Origin in save area.
         moveq    #1,d0        ; Keep the save area.
         moveq    #-1,d3       ; Timeout.
         lea      wbloc,a1     ; Window block.
         moveq    #$6E,d0      ; IOP.RSPW
         trap     #3           ; Restore the partial area.
         tst.l    d0           ; OK? . .
         bne      error        ; . . no!
qdosmsq/pe/rspw.txt · Last modified: 2009/02/17 10:31 by george.gwilt