Home » RBC Forums » General Discussion » Multicomp Cyclone IV (Preliminary design thoughts)
| Multicomp Cyclone IV [message #1009] |
Tue, 26 July 2016 07:16  |
dr_acula
Messages: 68 Registered: October 2015 Location: Adelaide
|
Member |
|
|
Grant Searle's Cyclone II multicomp http://searle.hostei.com/grant/Multicomp/index.html is an amazingly versatile machine. I have had one running now for over a year without a reboot, collecting data from a radio network of arduino's and then talking to an ESP8266 and uploading data to the internet. CP/M, Wordstar (to write the program) and BDS C (to compile the program) are actually practical solutions for a real world problem.
But it is possible to run up against the limitations of the Cyclone II FPGA and the current design (being discussed on other threads) is 99% full. No room for any more serial ports, for instance. Max Scane and I have built several boards using the Cyclone IV FPGA and this has more pins and a lot more internal space for VHDL. Max has software that is compatible with both boards (and with some of the boards that use real Z80 chips too). However, with a similar number of pins to the Cyclone II, it is possible to still run out of pins.
This is a very early discussion on the possibilities of the Waveshare system. The complete package is very expensive http://www.waveshare.com/product/fpga-tools/altera/altera-bo ards/openep4ce10-c-package-b.htm and contains every peripheral you might want. But it is possible to buy the individual boards for prices that are competitive with similar Cyclone IV packages. It still is expensive, but prices will come down and peripherals can be made for low cost.
The package comes with a sdram board which has lots of capacity, but there are no drivers as yet. However there is potential to port over existing "sram to sdram" vhdl and make it look like something that us old-skool tinkerers understand - ie a data bus, address bus and /rd, /wr and /cs eg http://codehackcreate.com/archives/444
Meanwhile, I thought I would throw together a few peripheral boards that would enable someone to get Grant's project up and running with not much more than recompiling with the pin numbers changed. These boards may have mistakes, and are not perfect, but could be a useful starting point. I'm taking a punt and getting some made. One nice thing I like about the Waveshare system is they do have some sort of standard for peripherals. They have an 8 bit peripheral, which is 10 pins in a single row, 3V, 0V then 8 pins. Then there is a 16 bit peripheral which is 3V (in pairs), 0V (in pairs) then 16 pins. And a 32 bit peripheral that is the same.
I'd like to get a few more things working on these boards - in particular a touchscreen, and maybe audio, 16x2 LCDs, multiple serial ports for a true MP/M machine etc.
I have a crazy vision that CP/M can be expanded to something that is in color, with pictures, and even a GUI. But maybe that is a bit controversial...
Thoughts would be most appreciated.
Cheers,
James Moxham
|
|
|
|
| Re: Multicomp Cyclone IV [message #1012 is a reply to message #1009] |
Tue, 26 July 2016 12:57   |
 |
positron
Messages: 78 Registered: November 2015 Location: Buenos Aires, Argentina
|
Member |
|
|
James, regarding your vision, "I have a crazy vision that CP/M can be expanded to something that is in color, with pictures, and even a GUI. But maybe that is a bit controversial..." I think many of us in the retro community share it, even though being controversial.
Maybe a "crossbreed" between a classic CP/M machine and a Sinclair Spectrum...
As a side project I'm also exploring the capabilities of other FPGA platforms. In the past I worked with the Xilinx Spartan 3E using Gadget's Factory Papilio One board. Now in particular I started a porting project of Grant's Multicomp to the Xilinx Spartan 6 FPGA, using Gadget's Factory Papilio Duo board [ http://papilio.cc/index.php?n=Papilio.PapilioDUOHardwareGuid e], in combination with the Classic Computing Shield [ http://papilio.cc/index.php?n=Papilio.ClassicComputingShield].
It looks like a perfect fit because out of the box it has all the hardware subsystems and interfaces needed for the Multicomp (SRAM, VGA, SD Card, Keyboard, RS-232, etc... even an Arduino thrown in ! and an FPGA fabric capacity that exceeds the one in the Cyclone IV.
I´ll post following my progress.
Cheers.
[Updated on: Tue, 26 July 2016 12:58] Report message to a moderator
|
|
|
|
| Re: Multicomp Cyclone IV [message #1021 is a reply to message #1012] |
Sun, 31 July 2016 05:35   |
dr_acula
Messages: 68 Registered: October 2015 Location: Adelaide
|
Member |
|
|
Reading through the links above now. *very* interesting, thanks positron
Attached is another board design for Waveshare, this time a touchscreen board.
Max has got something preliminary working with a simple version of Grants Multicomp.
[Updated on: Sun, 31 July 2016 05:35] Report message to a moderator
|
|
|
|
|
|
| Re: Multicomp Cyclone IV [message #1039 is a reply to message #1031] |
Tue, 16 August 2016 12:06   |
 |
positron
Messages: 78 Registered: November 2015 Location: Buenos Aires, Argentina
|
Member |
|
|
jonb wrote on Tue, 16 August 2016 06:04
Take a look at the Amstrad PCW16. It's a sort of clone of a Macintosh, with a monochrome screen, GUI and (I believe) a 16Mhz Z80. There's supposed to be an unofficial CP/M implementation for it, too. Also, the PCW 8256 and its derivatives do have a bit mapped display that can be used for GUIs (and some have been written, working with aftermarket mice), but they're a little bit slow.
Thanks jonb, very interesting machine indeed ! There's an extensive article in Wikipedia covering sw and hw details. One thing surprised me...
"Unusually, the Z80 CPU in the PCW 8256, 8512, 9512, 9256 and 9512+ had no directly connected ROM, which most computers used to start the boot process. Instead, at startup, the ASIC (customised circuit) at the heart of the PCW provided access to part of the 1k ROM within the Intel 8041 microcontroller used to drive the printer. The Z80 would copy 256 bytes via the ASIC into RAM, providing sufficient instructions to load the first sector from a floppy.[50] The ROM-based code cannot display text, being too small to support character generation; instead it displays a bright screen which is progressively filled by black stripes as the code is loaded from floppy."
So using an ASIC and a 8041 microcontroller to boot the Z80... amazing, just like the things we do here with FPGA's
|
|
|
|
| Re: Multicomp Cyclone IV [message #5566 is a reply to message #1039] |
Thu, 22 November 2018 00:51   |
JonB
Messages: 92 Registered: August 2016 Location: UK
|
Member |
|
|
I'm sorry to resurrect an old topic but wanted to add some colour to the PcW comments.
I acquired a PcW16 last year for the princely sum of £5 and yes, it does look like a Mac, sort of. Has a cur down office suite but no command line. There is a version of CP/M Plus for it, written by John Elliot, but it doesn't feel any faster in operation than the CP/M Plus on the PCW8000 machines (these have 4Mhz Z80s). Looking at John's documentation, it looks like there is a lot of memory paging or mapping going on behind the scenes, as the CP/M implementation doesn't run natively (it's an application running under Anne, the PcW16's operating system). Nevertheless it is an impressive achievement. The "16 Mhz Z80" appears to be a core built into a larger chip on the PcW16's board (which, tantalisingly, seems to have the capability to support an IDE drive).
The 8000 series boot process description is correct. When in "boot mode" every instruction fetched comes from the printer controller irrespective of what is on the address bus. So the CPU is kind of "force fed" the boot code. This makes alternative boot approaches (such as the holy grail of booting from a hard disk) difficult to implement (not impossible, though). As I have implemented a simple IDE interlace for the PCW8000/9000 computers I would really like to build this feature.
|
|
|
|
|
|
|
|
|
|
| Re: Multicomp Cyclone IV [message #5577 is a reply to message #5575] |
Thu, 22 November 2018 10:31   |
JonB
Messages: 92 Registered: August 2016 Location: UK
|
Member |
|
|
norwestrzh wrote on Thu, 22 November 2018 09:49Why not translate that logic to an FPGA?
In a word... overkill. The uIDE design is ridiculously simple. It uses a 74LS688 comparator to decode the Z80 address and control signals plus a 74LS02 to handle /RD and /WR signals.. There is an inverter implemented with a transistor and that is about it. You could drop that if you were prepared to forego the drive activity light, and it's possible the 74LS02 isn't needed, either (hmm, would be an interesting experiment). Implementing that in an FPGA would be pretty wasteful. Maybe the 16 bit multiplexer design might be worth doing, if it is complicated enough to warrant the cost, but you could use a CPLD or PAL, surely?
[Updated on: Thu, 22 November 2018 10:36] Report message to a moderator
|
|
|
|
|
|
| Re: Multicomp Cyclone IV [message #5593 is a reply to message #5579] |
Fri, 23 November 2018 04:30  |
JonB
Messages: 92 Registered: August 2016 Location: UK
|
Member |
|
|
The problem with not initialising the CF card is that it might not be in a known state when you bootstrap. My CP/M driver initialises it as follows:
- Performs a test to ensure it is present (invokes the wait loop checking the busy flag on the status register, times out if not clear). Not sure this is really a valid test.
- Issues the "8 bit mode" set feature command (feature code 01h)
- Issues the "no write cache" set feature command (feature code 82h)
[Updated on: Fri, 23 November 2018 04:31] Report message to a moderator
|
|
|
|
Current Time: Thu Mar 26 05:36:18 PDT 2026
Total time taken to generate the page: 0.02681 seconds
|