ZX Spectrum (was Re: Commodores )
Gordon JC Pearce
gordonjcp at gjcp.net
Sun Dec 2 04:06:47 CST 2007
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
ld hl, 32768; // start of loaded image
ld de, 16384; // start of screen memory
ld bc, 6912; // byte count
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?
> 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.
More information about the cctech