This is a VHDL version of Amstrad CPC 6128 running on FPGA starter-kit NEXYS2 500k-gates from Digilent. A starter-kit is a standard board made for learning FPGA, so it is standard.
This project result of a experiment of applying Agile method with constraint that : we don't know if next month I have to stop it... Finally this project has during 5 month. The result is a standalone platform that can run several games of Amstrad. Normaly, I had to dedicate 2 month on this project, but as the result was so great, I continue to a standalone and better version.
This project is for my father birthday, so sorry that I can't deliver it yet ^^'
How to assemble it
You need : - a "NEXYS2 500kgates" starter kit - a "PMODSD" module for reading sdcard - a alimentation (cause they don't give it with starter kit) - optionally a DIGILENT USB JTAG (normally starter kit can be programmed directly by usb, but I didn't have test this way) - a 4Go SDCARD (no more)
The binary of this project, available by there : [[1]] Several ROM files : - OS6128.ROM BASIC1-1.ROM AMSDOS.ROM (from JavaCPC) - MAXAM.ROM (from CPCWiki) Several DSK files (one or more) : - TEMPEST.DSK ARKANOID.DSK FRUITY.DSK BRUCELEE.DSK CHASEHQ.DSK WIZLAIR.DSK XEVIOUS.DSK BOULDER.DSK CLASSIC_AXIENS.DSK CLASSIC_INVADERS.DSK
""You have to :"" - program FPGA with the binary of this project, for it I use Digilent Adept software and my USB JTAG cable - format your 4Go SDCARD in FAT32 4096 byte allocation size - copy ROM and DSK on SDCARD - plug PMODSD on slot JC1 of starter kit, and set all switches to 0 - plug VGA, and turn on starter kit
""You can :"" - plug a PS/2 keyboard, and type "cat" - increment switch to select another disk at boot, if screen became RED, it's that binary value done by switches is too big, leds are doing a small animation when a disk is correctly loaded - plug joystick on slot JA1 (Vcc 3.3v is common) - plug another joystick on slot JB1 (Vcc 3.3v is common) - plug a jack on slot JD1, one at upper GND plug, and second wire at next plug, just at left of it (if it was 3.3v Vcc, is that in fact you had to take the right one)