Saturday, August 6, 2011

We have lift-off

Today I trialled Mike Stirling's open source FPGA Spectrum on the DE1. I successfully loaded Atic Atac from tape with no problems but Beach Head failed - possibly because of a loading error or possibly due to Speedlock 1 being quite... finicky.

The spectrum screen is slightly misplaced on the display - there's a blank area before the border starts on the left. A few tweaks to the clock code didn't help this but I didn't spend much time on it - at the moment I'm looking at a number of open source FPGA Spectrum solutions to select which one I wish to use as a basis for the Prism - or I might use bits and bobs from different solutions. Basically I just need a basic framework on which to add my mods/extensions.

Currently, using Mike's code, the Prism is as follows:


  • 48K Spectrum compatible
  • Tape Input
  • PS/2 keyboard interface
  • Switchable VGA/RGB output

When deciding which code framework to start from I'll also be looking at ZXGate (which does Spectrum, ZX81 and Jupiter Ace) and another which is an offshoot from an FPGA Apple machine and emulates a Spectrum 128. All look to have their benifits (ZXGate has the '81 support, the other has 128 memory paging etc and Mike's was written on the DE1 hardware which I'm using for Prism)

Planned mods/extensions:

  • Expanded memory - probably 1024K 
  • 64K video RAM
  • Pentagon 1024/Spectrum 128/+3 CP/M compatible memory paging 
  • 8K paging mode (towards ZX81/Timex/Spectrum SE compatibility) will also help when using some expanded screen modes
  • ULAplus compatibility
  • 256x192, 256x384, 512x192 and 512x384 screen resolutions
  • 8x8 and 8x1 screen attributes (8 bit attributes - either ULA or ULAplus)
  • 8x8 screen attributes (16 bit attributes - 256 colours, paletted)
  • 256x192 "chunky" 256 colour mode - 1 byte per pixel
  • 256x192 16 colour "planar" mode (paletted/RGBI)
  • ZX81 compatible text mode
  • possibly other text modes
  • Look at hardware flicker-free multitech/gigascreen modes
  • Built in magic button (multiface-esque)
  • Expanded sound - "beeper", AY ACB/ABC stereo and SID
  • Support for adding a real SID and/or AY
  • DivIDE
  • +3 disk interface
  • "fast" modes - CPU speeds selectable 3.5, 7, 14, 28 MHz, possibly faster
  • Kempston/AGP and Sinclair joystick interfaces on break-out board
  • K-Mouse interface on break-out board

No comments:

Post a Comment