It seemed too good to be true. A 128K Speccy that would run all existing software. Well, maybe it isn't quite true. It seems that there could just be some software that won't work on the 128 in 48K mode. And although our review 128 has EPROMS, it's doubtful if Sinclair has the space or time to fix the problem. But whatever you do, don't panic - it may affect only a handful of recent games.
Certainly, the 128 goes a long way to being
a Spectrum+ when it's in 48K mode. And the new features get
switched off. And we were led to believe that the original
Spectrum ROM is copied to RAM and write-protected. Not so
on our machine - the 48 Basic mode and 128 Basic mode have
identical code where the ROM is and this is subtly altered
from the original ROM. The 128's extra software features are
accessed with new code in RAM (which explains why many old
POKEs and add-one won't work in 128 mode) and by bank-switching
new bits of code, as necessary.
So, in 48K mode, there's a whole new section
of code in the previously unused locations 14440-15015 and
five places in other ROM routines where calls are made to
it (at 75, 2898, 4937, 7037 and 9798 decimal). The calls won't
affect commercial tapes because no programmer worth his Wimpy
relies on ROM routines - but they may affect some of your
own code if you leap in and out of the ROM, in unusual places.
The big problem's the unused locations - they used to hold OFFh and are apparently unless. But some games programmers use a block of 257 of these bytes as a vector table for their interrupt routines, so saving the space needed to set one up in RAM. Games with this feature won't run on the 128! And to save you going boss-eyed with Lenslok - Firebird's Elite is one such. Let us know if you find others.