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.
ZX TAP file for GENS