| Entry | |
|---|---|
| R0 | Reason code + Area value |
| All other registers dependent on reason code | |
| Exit | |
|---|---|
| R0 | Preserved |
| All other registers dependent on reason code | |
The purpose of this call is to perform different sprite related actions.
The action performed depends on the reason code value in R0.
The area value can be added to the reason code in R0 to specify how to select a sprite. R1 and R2 are often used to select a sprite.
| Value | R1 | R2 |
|---|---|---|
| +0 | System Sprite area1 | Sprite name |
| +256 | Sprite area? | Sprite name |
| +512 | Sprite area? | Sprite pointer? |
1 It is strongly recommended not to use the system sprite area.
This SWI is indirected via SpriteV?.
| # | Hex # | Action |
|---|---|---|
| 2 | &02 | Screen save? |
| 3 | &03 | Screen load? |
| 8 | &08 | Read area control block? |
| 9 | &09 | Initialise sprite area? |
| 10 | &0A | Load sprite file? |
| 11 | &0B | Merge sprite file? |
| 12 | &0C | Save sprite file? |
| 13 | &0D | Return name? |
| 14 | &0E | Get sprite from cursor? |
| 15 | &0F | Create sprite? |
| 16 | &10 | Get sprite from user coords? |
| 17 | &11 | Verify sprite area? |
| 24 | &18 | Select sprite/Get address? |
| 25 | &19 | Delete sprite? |
| 26 | &1A | Rename sprite? |
| 27 | &1B | Copy sprite? |
| 28 | &1C | Put sprite to screen? |
| 29 | &1D | Create mask? |
| 30 | &1E | Remove mask? |
| 31 | &1F | Insert row? |
| 32 | &20 | Delete row? |
| 33 | &21 | Flip about x axis? |
| 34 | &22 | Put sprite at user coords? |
| 35 | &23 | Append sprite? 1 |
| 36 | &24 | Set pointer shape? 1 |
| 37 | &25 | Create/remove palette? 1 |
| 40 | &28 | Read sprite info? |
| 41 | &29 | Read pixel colour? |
| 42 | &2A | Write pixel colour? |
| 43 | &2B | Read pixel mask? |
| 44 | &2C | Write pixel mask? |
| 45 | &2D | Insert column? |
| 46 | &2E | Delete column? |
| 47 | &2F | Flip about y axis? |
| 48 | &30 | Plot sprite mask? |
| 49 | &31 | Plot mask at user coords? |
| 50 | &32 | Plot mask scaled? 1 |
| 51 | &33 | Paint char scaled? 1 |
| 52 | &34 | Paint sprite scaled? 1 |
| 53 | &35 | Put sprite grey scaled? 1 |
| 54 | &36 | Remove left-hand wastage? |
| 55 | &37 | Plot mask transformed? 1x |
| 56 | &38 | Plot sprite transformed? 1x |
| 57 | &39 | Insert/delete rows? 1x |
| 58 | &3A | Insert/delete columns? 1x |
| 60 | &3C | Switch output to sprite? |
| 61 | &3D | Switch output to mask? |
| 62 | &3E | Read save area size? |
1 Requires SpriteExtend module to be loaded.
x Not available on RISC OS 2.
Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.