25 has been known to work with SD card readers on the Due, and you may need to set this slower forĪlso, read SdFat library change below. If your reader will not operate at 50MHz (many won't), you can change SDMHZ
If your board is not listed, copy the board that's closest to yoursĪnd update the SDINIT macro with your SD card reader's CS pin. In the Hardware folder, you will find additional board defintions. To do this, look at line 9 in RunCPM.ino: #include "hardware/due.h" You will also need to set the correct board definition. If building for the Teensy, ESP32 and STM32, please read the entire document, as there is more information below.
The default serial speed is 9600 for compatibility with vintage terminals. When using Arduino boards, the serial speed as well as other parameters, may be set by editing the RunCPM.ino sketch. It is theoretically possible to run it on an Arduino which has enough Flash (at least 96K) by adding external RAM to it via some shield, but this is untested, probably slow and would require an entirely different port of RunCPM code. RunCPM needs A LOT of RAM and Flash memory by Arduino standards, so it will NOT run on other Arduinos than the DUE (not the Duemilanove) as they will not have enough of those. Other than that the user LED will indicate disk activity. LED blink codes: Arduino/Teensy/ESP32/STM32 user LED will blink fast when RunCPM is waiting for a serial connection and will send two repeating short blinks when RunCPM has exited (CPU halted). Some ESP32 and STM32 boards may need external SD card adapters.Īrduino digital and analog read/write support was added by Krzysztof Kliś via extra non-standard BDOS calls (see the bottom of cpm.h file for details). The Teensy has an on-board microSD adapter. If using the Arduino DUE, RunCPM also needs a SD (or microSD) card shield to place the CP/M files in. RunCPM so far runs on the Arduino DUE, on the Teensy 3.5 and up, on the ESP32 and on some STM32, as it requires a fair amount of RAM to run (64K used to be a lot back in those days). RunCPM builds on Arduino IDE 1.8.7 or later. RunCPM then evolved as more and more CP/M applications were added to its compatibility list. So I decided to write something that would allow me to run the executable right away after making any modifications. Making changes, recompiling MicroMumps and loading it onto a regular CP/M emulator via a disk image every time I moved a bit forward on the restoration was becoming too time consuming. RunCPM was written to serve as a test environment when I was restoring the only copy of Z80 MicroMumps v4.06 which exists online ( ). Makefiles are provided with the distribution. It can be built also on Cygwin (posix) and Mingw. RunCPM builds on Visual Studio 2013 or later. RunCPM emulates CP/M 2.2 from Digital Research as close as possible, the only difference being that it uses regular folders on the host instead of disk images. If you miss using powerful programs like Wordstar, dBaseII, mBasic and others, then RunCPM is for you.
No modification to the main code modules should be necessary. RunCPM is fully written in C and in a modular way, so porting to other platforms should be only a matter of writing an abstraction layer file for it.
It can be built both on 32 and 64 bits host environments and should be easily portable to other platforms.
Please visit my site for more info and a screen shot.RunCPM is an application which can execute vintage CP/M 8 bits programs on many modern platforms, like Windows, Mac OS X, Linux, FreeBSD, Arduino DUE and variants, like the Teensy or ESP32. This way there are no artefacts when changing tempo, no phasing effects when combining rhythms, no fixed balance or panning between sounds, no fixed arbitrary accent level, no out-of-sync guiro scrapes. I must stress these are not samples of the rhythm patterns themselves taken at some arbitrary tempo, but recreations of them using scripting. Subtle velocity and timing “errors” can be introduced, and the accent amount controlled. Sound groups can be balanced, panned, and muted. Rhythms can be triggered via a MIDI sequencer or DAW and combined in more ways than on the original CR-78. All sampled eight times to preserve the subtle differences you get with analogue machines giving a total of 184 samples. All the internal sounds including the different sounds produced by the accent control (no, it doesn’t just make beats louder) and the short and long Tambourine sounds have been sampled. All the original preset rhythms and variations have been faithfully reproduced. This is not just a sample pack, but a virtual drum machine for Kontakt.
The legendary Roland CompuRhythm CR-78 Drum Machine I'd like to mention my latest sample pack / Kontakt instrument: