All existing firmwares for ZX EVOLUTION board only copy architecture of Pentagon / Scorpion computers. But for FPGA can be writed better and more universal firmware.
My idea:
- unlimited memory paging (full 4MB) separate for each 16kB block in 64kB adress space. Block 0 (0-16383),block 1 (16384-32767),block 2 (32768-49151),block 3 (49152-65535).
- Each block can contain any 16kB page of 4MB ram or 512kB rom. With this layout will easy realisable multitasking and allram modes.
- Each block contain selectable write protect (for possibility enable writing to flash eprom or disable writing in ram page for possibility emulate rom in low 16kB)
- Readable status of all used I/O ports (ula port #FE, paging ports, configuration ports, etc...)
- possibility emulate ZX rom (48rom+128editor+gluk+tr-dos) in extended ram (very good feature for developing and testing new rom based software)
- colour palette for all 16 ZX colours
- better graphic modes (256x192/16 colours per pixel - with used palette). And for easy access to screen must be graphic area in ram as linear data block 24kB as on SAM COUPE. Each pixel = 4bits (1 byte = 2 pixels).
- possibility emulate different ZX clones ( software selectable configuration - screen size, ula timing, etc.. = similar as in SPECCY CONFIGURATOR utility on SPRINTER 2000 ).
- switchable memory size ( Pentagon 48, 128, 512, 1024, etc.. )
- emulation of european devices as MB02+ or DIVIDE interface (for possibility use +D emulation, D80 emulation, MB02 emulation, access to FAT16/FAT32 via easy LOAD/SAVE routines in zx rom. Possibility load/save snapshots from/to hdd.
- original ZX128 ULA timing (slow-down cpu for perfect 100% timing in games and demos).
- faster mode than 7 MHz
- Z80 CPU emulation in FPGA
50 different firmwares are not so good as one universal firmware !