This blog aims to follow the development of my FPGA based Spectrum Compatible computer. The ZX Prism should remain compatible with the ZX Spectrum whilst expanding its graphics and memory.
how can it have 256 colours and only use 16kb?
...it doesn't use 16K .. no idea where you got that from. It uses 32K.
cant you ofcus on modes like 256x384 intelraced or 512x384 - this last one is opengl & directX compatible surely
There is a 256x384 mode and a 512x384 mode. Neither are interlaced, they don't need to be.Prism is real hardware, not a PC emulator so directX and openGL are completely irrelivant
56MHz are you sure ? that's 7 mips no?
I'm building the thing and writing the FPGA microcode. 56MHz is the fastest CPU clock that I'm trying to implement (the CPU is modelled within the FPGA), but I'm having problems with crashes when interrupts are enabled. It may end up being max CPU speed of 28MHz with interrupts enabled.
do you know what the maximum amount of video ram for a screen is please?
32K on Prism; this is a limitation of the resources on the FPGA so it's not going to increase in size (unless I move to a different FPGA - and that's not likely any time soon)
is the video ram fast as in faster than the normal program ram - like the bbc model b which had double speed video ram so that the processor was not interrupted or suffered from contention please?
Prism has no memory contention.
could you team up with someone to develop pc tools to convert screens (and ofcourse i'd love to see video especially as 56MHz is fast enough to pull the full amount of data in at sufficiently high frame rates) to the zx prisnn
There's already a couple of tools for converting screens to a couple of the modes. I'm not interested in video so that's up to someone else to arrange/code.
is there any chance of converting or getting to work a straight conversion of tasword 128k please?
Tasword 128 would already work on Prism. No need for any conversion unless for some reason you wanted to modify it to use a different screen mode. Why you'd want to run a word processor on a FPGA-based spectrum compatible when you could run something more modern on a PC/Mac/Linux box is beyond me though!
56MHz - wow that is even faster than the 7MHz R800 processor in the msx turboR - which is supposed to be arounbd 28MHz compared with a z80 - mind you she does have a lot of video ram 192kb and a vdp9990 which has a lot of hardware sprites and hardware scrolling both vertical and horizontal - though nothing like a maths coprocessor for assisting with 3d vectorsare you sure you arent planning programs like doom for zx prisnn?
Doom would be nice, but I'll settle for something like Alien Breed or Super Mario World personally... I don't expect any will actually happen though! :)
that is the other question how many dedicated programmers do you have available!?
http://simonowen.com/sam/articles/mode1/this shows you how much video ram contention the processor suffers with a normal internal 512kb ram sam coupe - though there is less if we use external 1mb ram interface for full 6mhz running see youtubefreescape running at 6MHzhttps://www.youtube.com/watch?v=3x0VsNWEs-4
This isn't a Sam. Prism has no memory contention as its VRAM is dual ported ("ULA2" can read it at the same time as the CPU is reading/writing to it)I can run Freescape at up to 28MHz already ;)
you couldn't move up to 48kb of vram would make a big difference no?
No I can't, it's a hardware limitation - you've asked me that before ;)
the msx turbo R has 192kb opf video ram but the video modes are different along with hardware scrolling and several hardare sprites
I don't see what that has to do with Prism. It's not an MSX.
no but if you want to measure its performance by some kind of landmark than the msx turbo R is the most video ram on an 8bit machine - just hoping i guess
I'm not interested in comparing Prism against other machines like that, sorry.
what size colour palette are you offering please?
The Prism prototype has 12 bit colour, so the pallete is 256 colours chosen from 4096.
is there anyway to combine the video output of more than one fpga please in particular using more than one z80 in parallel so that if they both had 8bit per pixel then the effect would be to increase from one to 16bit and with three fopr the full 24bit tru colour effects no? sam mode 3 has hmpr bits 5 &6 that can select the different four colours from the clut for what should be a four colour only screen but no DMA to assist with this?do you know anything about a maths coprocessor please?
You'd be better off just using a bigger FPGA and modeling two Z80s if you wanted to run them in parallel. That wouldn't affect bit depth though, so your question doesn't fully make sense. I don't really care what Sam modes do, Prism isn't a Sam, nor is it intended to ever be Sam compatible. I don't know anything about Sam maths coprocessor.Prism doesn't have a maths coprocessor. It's fast enough as it is at the moment.
This comment has been removed by the author.
the reason i was asking about the parallel thingi was that surely with three processors you could fix the colour pallette at 256 colours maximum and then combine the video output from the three processors to give 24bit tru colour - only each processor would only 'see' 8bits per pixel?
The processors don't determine the palette colour depth. ULA2's palette is done in such a way that it can support up to 24 bit colour - the 12 bit colour restriction is mainly down to my balancing colour depth with FPGA out pits required to drive the video DACs. If I have 12 spare output pins on the FPGA after I've added all the external hardware I want to add, then I'll increase the colour depth.
similarly if you had two processors each with a 12bit colour palette as you claim to have then the second processor would give the full 24bit tru colour depth to the palette - couldn't it also help with interlaced images as you have a fixed amount of video ram on your fpga system - does your system have any audio capabilities - anything similar to the general sound neo?i think that has a 12mhz80 with mp3 playback from an sd memory card but i cant get any sense from the russian manufacturers - at least not by email!
I don't "claim to have" 12 bit colour - I *do* have 12 bit colour, and I've posted plenty of pictorial evidence of that. Adding more processors (soft Z80s) won't help anything. I think you're thinking of the Spec256 emulator which basically ran 8 copies of every game, one per processor, with the graphics/colour modified on each instance to give 256 colours. A very odd way to do it. Prism doesn't have interlaced images. It outputs 640x480 VGA, which is plenty of pixels to display a 256x192 or 512x384 res mode without needing to interlace.Prism currently only has beeper sound. I'm adding an AY as on the 128K spectrums, plus an SAA as on the Sam. On top of that, I'm adding an audio codec chip which automatically decodes MP3, OGG and WAV from a bit stream sent to it. It also acts as a MIDI player. So there'll be plenty of audio options eventually, but at the moment... just BEEP!
48kb of video ram is impossible you say what a pity it would have been a drastic improvement to all these closed systems if you designed something that had a more open architecture - in other words that we could add ram and processors to to boost performance?
It's not possible on the FPGA I'm using in Prism's development. There are other FPGAs out there with more on-chip memory cells that could do 48K or more -- or I could redesign the memory interface and use SRAM or SDRAM for video memory shared with the CPU ... but that introduces memory contention again as it's not dual ported RAM (and gets horribly messy to get the bus arbitration correct when the CPU and video clock domains don't have a common base clock).Prism is being designed by me FOR me. It's something I've been dreaming up since I was 13 or so, so it's going to do what I want it to, not what other people demand. Prism WILL be open once it's finished (and probably once a couple of friends with better knowledge of FPGA design have taken a good look over it to iron out any wrinkles). People will then be free to build their own, add RAM, put it on a bigger FPGA with more on-chip memory, add more SRAM etc etc. I know once I "finish", I'll carry on tinkering anyway...
http://www.emulatronia.com/emusdaqui/spec256/download-eng.htmusing a similar style to this you could get 256x192 256 colours for only 6kb of video ram! wow!
Unfortunately that's not true. Spec256 basically has 8 virtual Z80 CPUs with their own RAM. Each runs a modified version of the original game. Therefore it's actually 8 lots 6K of memory for graphics (so 48K). Sorry!
http://atmturbo.nedopc.com/not sure but i think the atm turbo website is also home of the general sound neo which uses an sd memory card to read mp3 tracks while you run 7mhz zx spectrum software - i tried to find out about the pinouts on the socket that the general sound neo plugs into - yes that's right i was trying to find out if the video output red green and blue signals were included so far no joyonce again big thanks and happy newyear
Happy New Year to you too Roger. Thanks for your continued enthusiasm and comments mate.
the thing is we really need 512x384 with at least 64k colours and even then the 50MHz+ processor wouldnt be able to cope and it wouldnt look any better than a pc without a 3dfx chipset to boost the frame rate and add anti aliasing?
Do we REALLY need that on a Spectrum type computer? I don't think so. Like you say, the CPU wouldn't be able to shift the amount of data needed - in fact it'd be more memory than the CPU could address without paging a LOT making things even slower.
what is a spectrum type computer you mean a single processor? the bbc model b could have two and the micro command interface had its own z80 though that was used solely for audio input i think
Prism is Spectrum compatible. Apart from differences in timing in its display rendering and lack of memory contention which means that "rainbow processing" type effects don't work, Prism can run the majority of software for the Spectrum. Ergo "Spectrum type computer".
we aren't taking on microsoft and sony then!?
if you have a z80 doing over 50mhz then surely you can intelace two 32kb video ram images giving 256x384?
Actually it'd end up 256x256, would probably flicker like all hell and would need you to copy 32K into VRAM every frame which would require a *lot* of paging. A lot of effort for something that wouldn't look that great probably.Sure there's software tricks you can do, and that's half the fun of hacking around with a system - but at the moment I'm still working on the hardware, so all I'm concerned with at the moment is what can be implemented in hardware. Feel free to speculate what you could do in software, but it doesn't really interest me (at least not at the moment). Software screen modes get very timing specific - and at the moment, Prisms timings aren't nailed down yet.Prism has a 16, 32 or 256 colour hardware 256x384 mode (using attributes) which uses about 12K of video memory, and similarly a 512x384 mode which uses about 24K.
ld sp,add+32k-16pop af,bc,de,hlexx ex af'pop af,bc,de,hlld sp,video ram address32k-16push hl,de,bc,afexx ex af'push hl,de,bc,afrepeat for 16bytes only needs another32k/16
Yes, but why when you'd have all the new hardware screen modes to play with?