On Sun, 2007-12-02 at 02:08 +0000, Andrew Burton wrote:
Yeah, I remember that.
The pictures I made were saved in such a way (by BASIC) so that as they loaded they would
draw onscreen straight away!
A handfull of professionally-made games found a way so that they were drawn in such a way
that they only flicked into view at the last minute - presumably by setting all ink &
pen colours to zero, until all the image data was loaded.
There are two ways to do this. You can say INK 0:PAPER 0:BORDER 0:CLS
(or whatever colour you want). Then when you do LOAD ""SCREEEN$ then
the attribute buffer will get overwritten in a few seconds just at the
end, and the picture will appear.
The alternative is to use a bit of machine code to copy the image into
screen RAM really quickly after loading it higher up. That would be
something like:
ld hl, 32768; // start of loaded image
ld de, 16384; // start of screen memory
ld bc, 6912; // byte count
ldir
One final alternative is that on the Speccy 128 you could flip between
two addresses for the screen RAM with a bit on one of the IO ports. By
switching during the screen draw time, you could do lovely smooth wipes.
Just incase I do get around to playing with the Speccy
again, do you recall where the screen memory starts?
See above
All my graphical operations were done using plot,
circle and draw commands. I did manage to poke graphics into the character set to replace
them, but whenever I went back to BASIC I couldn't read the program listing!!!
I did find a way to reset that, but I don't recall of-hand what I did.
The screen layout is *weird*. I'm sure you'll figure it out.
Gordon