On 5 July 2012 19:53, Jecel Assumpcao Jr. <jecel at merlintec.com> wrote:
Alexey Toptygin wrote:
The Spectrum isn't really bitmapped. IIRC you
define up to 20? 8x8 pixel
tiles (one bit per pixel) and can draw them in place of characters (i.e.
at any multiple-of-8 pixel vertical or horizontal offset from 0) with the
same color and bright/flash attributes as normal characters. That was the
case in BASIC, at least, maybe you could do more in assembly, but I don't
recall seeing a frame buffer in the memory map...
When the Spectrum came out, I had the impression that it was a text mode
machine with redefinable characters like many of its competitors. Given
that this was a popular hack to give the ZX81 "high resolution" graphics
and the way color is controlled in 8x8 pixel blocks, this was a
reasonable guess. But I learned otherwise a few years ago.
The only hardware mode is a simple 256x192 bitmap starting at 0x4000
which is modified by a 32x24 attribute map at 0x5800. The model
presented by Basic is what you described, but the model seen by assembly
language programs is very similar to what the Mac had.
It's not really "the model presented by BASIC".
I mean, yes, there are user-defined graphics (UDG) characters, but
they weren't widely-used except in the very early days.
Spectrum BASIC has direct access to individual pixel-plotting (PLOT
command), line-drawing and arc-drawing (DRAW command), circle-drawing
(CIRCLE command), and setting foreground and background colours (INK,
PAPER, BRIGHT). You can also interrogate a point on the screen to find
its status (set/reset) or colour (POINT command, IIRC - I'm not sure).
Aside: This sort of functionality is why the 14-year-old version of me
found the Commodore machines crippled to the point of utter
un-usability and uselessness - none of this was possible in CBM BASIC.
It all had to be done with PEEK and POKE commands directly
manipulating memory locations. I'd already had a little experience of
that on the PET machines and I did *not* want to go back.
If you added Dr Andy Wright's Beta BASIC toolkit to your Spectrum,
then you got graphics "modes" - you could choose a 6- or 5-pixel-wide
font for 42 or 51 columns with a high degree of legibility, or 4-pixel
characters and 64 columns with poor legibility, or 3-pixel characters
without gaps between them for a fairly illegible 85 columns - but
which permitted porting BASIC apps from expensive American
"professional" machines with 80-column displays, or in
word-processors, something which could show a full-width A4 page's
worth of text. It also supported text windows with scrolling and other
luxuries, and could store arrays in the RAMdisk of the Spectrum 128,
meaning that your ~20KB basic program could manipulate ~80-90KB arrays
in RAM - very snazzy stuff for 1985 or so.
--
Liam Proven ? Profile:
http://lproven.livejournal.com/profile
Email: lproven at cix.co.uk ? GMail/G+/Twitter/Flickr/Facebook: lproven
MSN: lproven at
hotmail.com ? Skype/AIM/Yahoo/LinkedIn: liamproven
Tel: +44 20-8685-0498 ? Cell: +44 7939-087884