<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 28 Dec 2008 18:15:19 +0000
From   : splodge@... (Richard Gellman)
Subject: =?utf-8?q?OT=3A_ZX80_ROM_?

On Sun, 28 Dec 2008 11:39:43 -0600, Jules Richardson
<jules.richardson99@...> wrote:
> if it's just
> as 
> simple as a ROM change - or did you have to modify something else, too?

'Fraid not.

You can get boards that do the emulation of the ZX81 on a Spectrum, and you
can even get software emulations, but you can't just "switch the ROMs".

The problem is the ZX8x uses a completely different screen system to the
Spectrum. The latter uses a bitmapped display, one bit per pixel for "ink"
or "paper" colour (foreground or background) and an attribute map for
cololurs on an 8x8 pixel block.

Contrast with the ZX8x display which is a list of 24 strings of variable
length. There's no bitmapped graphics, only characters. The display is
"executed" onto the screen. No, seriously.

The CPU is used to generate the screen addresses using some very tight
interrupt processing. The ULA then fiddles with data to generate character
data addresses (which due to the hardware layout must be in ROM space,
though there are hacks). The strings are terminated by a halt instruction,
which is cancelled by the end-of-line condition triggering an interrupt
(non-halt characters are replaced with NOPs by the ULA).

The ZX81 also implements an enhancement to use the NMI to do additional
processing, where as the spectrum does not use NMI at all (though it is
present on the edge connector).

As an additional headache, the character set on a ZX8x is not even ASCII.
Its a proprietary format with no lower case characters. It implements
graphics characters and an inverse character set (white on black) as
separate code ranges. Colour is not possible.

As you can see, there's actually a world of difference between the two
systems.

-- Richard


<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>