The aim is to have several bob data in fast, and copy on bank 1 of bob 1.
The procedure to accomplish this is a bit complicated
However, what needs to be known about the data structures is readily found on this page in the manual
https://www.ultimateamiga.co.uk/HostedProjects/AMOSFactory/AMOSProManual/14/1430.htmland on the top of the next page (next-button is located in bottom right corner).
So to create a custom sprite bank, the manual says you can do this:
IMAGES=1
Reserve As Work 1,2+8*IMAGES
Doke Start(1)-12,5
Then you need to reserve some chip memory for the image data, and loke the address of this memory block into
Start(1)+2+8*(IMAGE-1)
This chip memory block can be larger than required for a given bob image, which means you may theoretically use the same memory block for images of different sizes. All that remains to be done is then to copy the image data from fast ram into this memory block (you should use the
Copy instruction for this).
Things to keep in mind:
- It will get hard to avoid memory leak problems if you let amos compute masks for your images. Either set the mask address to -1 OR keep a precomputed mask in fast ram for each bob image (which you copy to chip ram the same way as with the ordinary image data).
- You must always do Doke Start(1)-12,0 before erasing bank 1.
- It is probably a good idea to make sure the value of Deek(Start(1)) is always the same as the highest-numbered image in the bank.