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.

Assembler listing

ZX TAP file for GENS