Source code for interlaced pic loader http://users.tpg.com.au/rybags/Atari/ivb2.asm
It's for AtAsm.
Or, you can just use the loader code, but it will have my title text in it:
http://users.tpg.com.au/rybags/Atari/ivb2.65o
To use the loader code, create a file as follows:
1. File ivb2.65o at start. File has the necessary binary header for load address already.
2. Append an init segment (2e2,2e3) with init address $5800
3. Create a data segment of 768 bytes that loads at $7000-72FF. Palette data is loaded into PAL1, should be stored as byte sequence of RGB,RGB.. etc - 256 entries covering colour 0-255.
3. Create an init segment with INIT address $5803 - loader program has code to setup VBXE bitmap and load palette data into registers.
4. Next up, the picture data. The loader program clears enough VBXE RAM such that smaller pics will display OK, although won't be centred.
Since we're dealing with interlace, potentially the picture can be 320x480 bytes.
The picture data should be split into data segments of exactly 4K which are loaded to $8000-8FFF. Each segment should be followed by an INIT segment which calls $5806.
Routine at $5806 increments VBXE bank so the picture loads sequentially. Last segment of picture can be truncated without problems.
5. After picture data, an INIT segment to $5809. This sets up interlace.
6. Finally, RUN segment. This can be your own program, e.g. to play music etc. If you just want static pic, use $580C (endless loop).