These Traps write a sprite or a blob to a position in a window.
Trap | Value in D0.B | Action |
IOP.WSPT | $76 | Writes a sprite |
IOP.WBLB | $73 | Writes a blob |
IOP.SPRY | $77 | Sprays pixels |
Call Parameters | Return Parameters |
D0.B | See above | D0.L | Error code |
D1.L | x,y coordinates | D1.L | Preserved |
D2.L | 0 or number of pixels | D2.L | Preserved |
D3.W | Timeout | D3.L | Preserved |
A0.L | Window channel ID | A0.L | Preserved |
A1.L | Pointer to sprite or blob | A1.L | Preserved |
A2.L | Pointer to pattern (for blob) | A2.L | Preserved |
ERR_NO | Channel not open |
ERR_OR | Out of range |
ERR_BP | Bad parameter |
Name | Number | Sprite |
SP.ARROW | $00 | arrow |
SP.LOCK | $01 | padlock |
SP.NULL | $02 | empty window |
SP.MODE | $03 | wrong mode (4 or 8) |
SP.KEY | $04 | keyboard entry |
SP.BUSY | $05 | no entry sign |
SP.WMOVE | $06 | window move |
SP.WSIZE | $07 | window change size |
The example shows how to write a move sprite. We assume that A0 contains the window channel ID.
wrt_mve movea.w #6,a1 ; "Move sprite" code
move.l #$a000a,d1 ; Print at 10,10
moveq #-1,d3 ; Timeout
moveq #$76,d0 ; IOP.WSPT
trap #3 ; Write the sprite