Cumulus is an SD card peripheral for Oric-1 and Oric Atmos computers that emulates the complete Oric Microdisc system.
Update: Due to unbelievably stupid and unfair new regulations implemented by Turkish Customs, apparently it has become virtually impossible for me to personally import small quantities of the components and parts required to execute a small, non-profit Cumulus manufacturing run. However, I think people interested in obtaining a Cumulus board should still leave a comment here on this page, in case some other party would become interested in organizing production.
Oric-1 and Oric Atmos computers (like many others from the 80s) do not have a built-in floppy controller IC. Instead, the Microdisc peripheral contains a controller card with a WD1793 that connects to the Oric expansion port. One could use a standard SD card floppy emulator (e.g. TFE) with the with a Microdisc controller card, but the Microdisc system itself can be very difficult to obtain.
Instead of emulating only the floppy drive, Cumulus emulates the whole Microdisc system. There are significant advantages to emulating the controller together with the drive. For example, SD card access times are no longer critical as the emulator is in complete control of when the floppy disk surface is accessed. MFM conversion of data is no longer necessary as the floppy disk interface is eliminated.
- Read/write access for Oric-1 and Atmos computers.
- Connects to the Oric expansion port (over CumuluBus).
- Compatible with existing software written for the Oric Microdisc.
- On-board support for DSK images. No conversion on PC necessary.
- Emulates multiple drives.
- Color LCD and 5 buttons for user interface.
- Full FAT32 support (incl. long file names and directories) for the SD Card. SDHC support.
- Firmware updates can be made through SD Card.
- Completely solderless installation.
- CumuluBus (bus buffer) + 80-conductor IDE cable for very high signal integrity.
- PIC18F46K20 MCU @32Mhz, Xilinx XC95144XL CPLD. Double-sided PCB.
Cumulus draws power from the Oric main unit, but the power supply originally supplied with the Oric computers is usually not powerful enough to power both. The original power adapter needs to be replaced with one with a higher current rating. A commonly available, 9V DC, 1A adapter is more than enough.
Simply attach the CumuluBus buffer board to the Oric expansion port and connect the Cumulus and the CumuluBus boards with the 80-conductor IDE cable (40-pins) and the AUX cable (4-pins, Power and Reset). The black connector on the IDE cable always connects to the CumuluBus. The “Plug Select” jumpers (marked P6 on Cumulus and P4 on CumuluBus, found next to the connectors) select whether to use the gray connector or the blue connector on the Cumulus. Leave both jumpers open to use the blue connector, or keep both jumpers shorted to use the gray connector.
How to Use
Upon boot, Cumulus displays the status screen, which shows the state of all drives, including the image mounted, the current track (updated in real-time), and the write protect status, as well as the most recent status of the emulated floppy controller. From this screen, one may go into the image selection menu to mount a DSK image in one of the emulated drives or modify the write protect status. Also accessible from here is the main menu which allows one to modify the more general settings/preferences or even reset the Oric.
The square “light” on the top right blinks in green when Cumulus is idle and becomes red when disk operations are being executed. One can even interact with Cumulus while disk operations are in progress. Obviously, disk operations are given priority over user interaction, so the UI may feel sluggish or unresponsive if the drives are being accessed frequently.
FAQ (as of February 2011)
Is it possible to purchase a Cumulus board?
Not yet. A small production run will probably be organized in the near future. If you are interested, please leave a comment here in this page.
What about the license?
All elements of the hardware design and software are (or will be) available under GNU GPL.
What is the status of the firmware?
The firmware is in an early state. While all the basics work well, there are still bugs and several features are still missing, including support for some WD1793 commands (e.g. read/write track) and old-style DSK images. I expect that these issues will eventually be solved with the help of the Oric community.
There is no firmware release yet, but the latest sources can be found on the SVN here:
To update firmware, copy Cumulus.bin onto a freshly-formatted SD card with FAT32 filesystem. Cumulus.bin must be the only file on the card. On powerup, simultaneously press and hold the two buttons on the left side of the LCD screen. Cumulus will go into firmware update mode and a progress bar will be displayed. In case of failure (e.g. firmware not found on card) the LCD will turn red.
Theory of Operation
Cumulus consists of two main components: A Xilinx XC95144XL CPLD and a PIC18F46K20 microcontroller. The CPLD implements the all the logic on the original Microdisc board as well as part of the emulated WD1793, including the CPU bus interface, sector, command, data and status registers. The PIC microcontroller implements the rest (most) of the WD1793, i.e. emulation of the floppy controller commands through SD card access. The user interface (the LCD and buttons) is also handled by the microcontroller.
The CPLD and the PIC uC communicate through a dedicated, 8-bit wide data bus. Through this bus, the PIC uC is able to access all the WD1793 registers on the CPLD and modify the WD1793 status as presented to the Oric (read commands, transfer data, generate IRQ, etc.).
Both components are driven by a 32Mhz clock, generated by an on-board crystal oscillator. The 1 Mhz clock from the Oric is oversampled using the 32Mhz input clock and a synchronized counter on the CPLD controls the generation of the Oric bus signals (such as MAP).
Also contained on the Cumulus board is a 28C256 EEPROM that contains the original Microdisc ROM and a 74LVC4245 that performs 5V-3.3V voltage conversion for interfacing with the Oric bus.
The idea for a floppy emulator like Cumulus was born after I got UFE to a useable state. Some people had asked whether it would be possible to use UFE with an Oric Atmos. Upon some investigation, I found out that it was possible, but the Oric Microdisc unit would be necessary. At that point, it occurred to me that the floppy controller could be emulated together with the drive, with the help of a CPLD to implement parts of the controller IC together with the required glue logic. As a proof-of-concept, I started to work on Cumulus, bearing in mind that the concept could be applied to several microcomputers from the 80s which did not have built-in floppy controllers.
The first version of Cumulus was implemented in two boards, a mainboard and a UI daughterboard. The idea was to separate the UI from the mainboard to make the design more flexible. Later on, it became clear that it would be more practical and less costly if the two boards were consolidated into a single, integrated board (rev B). It also turned out that there were significant signal integrity problems with a cable in between the Oric and Cumulus, so a bus buffer board (similar to AmpliBus) was added on the Oric side to solve these issues. More details on the development progress of Cumulus can be found in my main blog (posts tagged Cumulus).
Feb, 2011: Initial publication.
Apr, 2011: Customs update, acknowledgments.
This information here is provided AS IS without any express or implied warranties. While every effort has been taken to ensure the accuracy of the information contained in this text, the author assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. I will not be held responsible for any damages or costs which might occur as a result of anything related to projects described or referred to on this page. You are not allowed to use information contained in these pages for commercial purposes without my written authorization.