Tiled sprite plotting

Introduction and Overview

From version 1.73 onward of SpriteExtend a new reason code has been added to OS_SpriteOp (and the variants which use this) to tile a sprite across the graphics window. This operation allows a single system call to be used to render a large number of images. It allows tiled area fills to be accelerated better than it would be for multiple sprite operations.

SWI Calls

OS_SpriteOp 41OS_SpriteOp_TileSpriteScaledSWI &2E
Tile sprite scaled
R0=65 + 0, &100 or &200 as for other SpriteOps
R1=Pointer to sprite area
R2=Pointer to sprite name, or pointer to sprite dependant on R0
R3=X origin (bottom left of sprite)
R4=Y origin (bottom left of sprite)
R5=Plot action (as for OS_SpriteOp 52)
R6=Pointer to scale factors, or 0 for 1:1 scaling
R7=Pointer to pixel translation table, or 0 if none
R0 - R7=Preserved
Interrupts are undefined
Fast interrupts are undefined
Processor is in undefined mode
Not defined

This reason code is used to tile the sprite specified across the graphics window. The origin supplied in R3 and R4 will be used as the location of the bottom left corner of the sprites. The origin may be located within the graphics window, or outside it and will be bounded to the window.