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
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




More information about the cctech mailing list