TS-Labs wrote:Thanks for info.
The problem is that FPGA wouldn't success at 48 MHz. I discussed this question before with LVD and made my own tests, so 28 MHz is the only choice as yet.
To make it work at 48 one should thoroughly rewrite the Verilog sources to fit all timings.
It is possible, but needs too much efforts.
Then will possible use 28MHz as main CLK:
14MHz as pixel clock
7MHz for CPU (and 3.5MHz if ZX mode is set)
1.75 MHz for AY (if will used)
screen niming will different and some software run about 17% faster.
SAA1099 can be on external sound card with 8MHz oscillator, or emulated in FPGA and clock must be calculated from 28MHz (28 MHz / 3.5 = 8MHz).
SAM COUPE software use programmable INTerrupt timing on any screen line 0-191, only demos with perfect timing will work at high speed...
Emulation of other SAM's features is not hard.
SAM MOUSE - return relative positions X,Y and buttons state.
MIDI CONNECTORS/PORTS - can be ignored, not exist good software for it
EXTERNAL MEMORY 1MB - canbe emulated, EVO contain 4MB ram (512kB for SAM COUPE and 1MB for EXTER.MEM). Sam support up to 4MB external memory, then on EVO can be used 3x 1MB module :-)
FDD - fdc controller VL1772 can be ignored and all FDD operaions will redirect to HDD via B-DOS (need only sam coupe IDE ports)
RTC 72421 - don't need, but can be emulated on EVO
graphic modes - hires 512x192/4colours + 256x192/16colours pex pixel + 256x192/hardware multicolor mode with 8x1 attributes + 256x192 ZX mode (in all this modes is used colour palette and all other modes than ZX mode use linear data layout in memory)
memory paging - easy 32kB paging with 16kB shifting. Enable set allram mode, active write protect in low 16kB(in allram mode for better rom emulation). Rom size is only 32kB (first 16kB can be connect only in low 16kB and second 16kB only from 49152. High 32kB of adress space can be disabled for enable connect 1MB external memory. This memory is connect from 32768-65535 and use two paging ports for 16kB paging from adress 32768 and 49152 (similar as on ZX128/Pentagon)
colour palette - 128 colours = 2xred + 2xgreen + 2xblue + 1xbright. On EVO must be BRIGHT bit ignored or implement on external graphic card.
keyboard - sam coupe use 100% compatible keyboard layout and ports with ZX Spectrum 48(two layers membrane) + next extra keys on new ports
ZX compatibility - original SAM can active ZX graphic mode and CPU will slow down from 6MHz to similar speed as ZX (only about 20% faster than ZX). If in EVO will use 28MHz oscillator then in ZX mode can SAM COUPE run at 3.5MHz (or at 7MHz if will implement turbo CPU mode)
SAM JOYSTICK - on SAM COUPE is one joystick port with possibility connect joystick splitter for connection SINCLAIR 1 and SINCLAIR 2 joysticks (keys 1-5 and 6-0 as on ZX). Some SAM's software use this joystick controll.
IMPLEMENTATION OF MODERN HARDWARE:Kempston mouse - can be emulated for possibility use on SAM COUPE in ZX mode :-)
System bus on EVO - no problem...
NEMO IDE - can be implement also, no problem
TR-DOS - can be implement (must be enable on any extra port if ZX mode is set...
Pentagon 1024 compatibility - port 7FFD can be used if ZX mode is set (need extra port for enable it)
Kempston joystick - this port is not used on SAM COUPE software, but in ZX mode can be used for controll in ZX software/games
With all this features will EVO board compatible with SAM COUPE and Pentagon 1024. It's very good idea. After power on can be automatically active ZX mode (Pentagon 1024 with tr-dos)....