Programming of FLASH EPROM and ZX ROM patch
Programming of FLASH EPROMs of types given on schematic is very
simple, and practical for small modifications of Spectrum's ROM. It's possible
changing small sections of ROM, without need to erase whole FLASH EPROM. Minimal
length of page (sector) for programming is 128 bytes. Also lenght of block to
programm must be multiple of 128. Max length is of course 16384 bytes. Given
assembler listing makes all necessary things. User needs only to write (poke)
required parameters to begin of code, what is explained in listing. Of course
some simple Basic program may be written for it.
In case that no ROM-switch
with GAL, and it's not possible to select EPROM's section with software
commands, it's better to leave FLASH EPROM's software protection disabled,
because giving sequence to enable/disable protection is very difficult then.
Hardware protection with simple switch and following patch will be enough to
protect datas in FLASH EPROM.
ZX ROM patch:
There is one strange software solution in Spectrums F.P.
calculator routines which must be corrected to ensure correct work of machine
with FLASH EPROM. Some temporary results of calculations are simple sent to
addresses 0-5, what in normal Spectrum makes nothing (you can't write to
ordinary EPROM), but makes big problems if FLASH EPROM is used. Hardware
protection disables that problem, but if it is switched off then normal work
with Spectrum is impossible.
If software protection is enabled, then data
loss in FLASH EPROM will not happen, but every number entered in command line
will confuse machine, and usual reset it.
If software protection is disabled
then some datas in FLASH EPROM will be damaged, and it will become
unusable.
Here is simple solution (patch) for that: write value 2 to address
#33FC, and value #5C to address #33FD of ROM. So calculator will put trash to
keyboard read memory area, what will not cause problems.