qdosmsq:pe:rspw

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

qdosmsq:pe:rspw [2009/02/16 16:33]
george.gwilt created
qdosmsq:pe:rspw [2009/02/17 10:31] (current)
george.gwilt Example added
Line 1: Line 1:
 +====== IOP.RSPW ======
 +This Trap restores part of a window.
 +^Call Parameters^^Return Parameters^^
 +|D0.B|$6E|D0.L|Error code|
 +|D1.L|x,y start of block in area|D1.L|Preserved|
 +|D2.L|<>0 to keep save area|D2.L|Preserved|
 +|D3.W|Timeout|D3.L|Preserved|
 +|A0.L|Window channel ID|A0.L|Preserved|
 +|A1.L|Pointer to window block|A1.L|Preserved|
 +|A2.L|Address of save area|A2.L|Preserved|
 +===== Errors =====
 +|ERR_NO|Channel not open|
 +|ERR_OR|Out of range|
 +===== Notes =====
 +  *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 [[svpw|IOP.SVPW]].
 +  *This Trap complements [[svpw|IOP.SVPW]] which sets up and fills a save area.
 +===== Example =====
 +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.
 +<code>
 +wbloc    dc.w     6,6,2,     ; 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     #          ; Restore the partial area.
 +         tst.l    d0           ; OK? . .
 +         bne      error        ; . . no!
 +
 +</code>
  • qdosmsq/pe/rspw.txt
  • Last modified: 2009/02/17 10:31
  • by george.gwilt