RX01 / RX02 Floppy Disk System Emulator

Verion: January 2016

Purpose

To emulate the Digital Equipment RX01 / RX02 Floppy Disk System using a microcontroller and a SD-card. The standalone emulator was developed using open soure hardware and software components. The microcontroller is an Arduino Due (with a ARM SAM3X8E ARM Cortex-M3 CPU, http://arduino.cc/en/Main/Hardware). Arduino DUE is a low-cost microcontroller board(40-50$) available from different companies. The development system is available for free from http://www.arduino.cc
The Arduino firmware is a fork of the RX01 / RX02 Floppy Disk System emulator developed by Charles Dickman which is still available from http://www.chdickman.com/rx02/
In May 2015 I ported Charles Dickman's emulator to the Raspberry PI2 single-board computer https://www.raspberrypi.org/ platform. First I removed the hardware-dependent code from the original source file and moved to two files (digital_io.c and digital_io.h). Since I wanted the create a standalone emulator without operating system using the Arduino platform, I implemented several Arduino-specific library functions for the Raspberry PI2 port. Unnecessary arrays from the device-independent source were eliminated, and several minor bugs were also corrected. Since the Raspberry PI2 and the Arduino Due are 3.3V logic devices I had to develop a new interface circuit with 3.3V to 5V logic conversion. The Raspbery PI2 port is fully compatible with Charles Dickman's emulator. After the Raspberry PI2 port was working I started the development of the Arduino fork. Since the Arduino fork of the emulator is a standalone emulator (a device without an operating system), I had to rewrite all file input/output operations. Since the standalone emulator can be switch off while the drive is in an inactive state, disk image file are closed after every elementary disk read/write operations. Missing functionaly of the original software, e.g., set media density was added.

The Rapsberry PI Port of the RX01/02 Emulator.

The Raspberry PI2 compatibe emulator and the Arduino firmware of the standalone emulator is available form: http://www.belatorok.com/computing/pdp11/rx02/rx02.zip The Raspberry PI version of the Emulator requires the 4 core Raspberry PI2 board. Due to the limited CPU-processing power of the single core boards (A, A+, B, B+) are not suitable for stable operation.

Usage:

Raspberry Port:
Fully compatible with Charles Dickman's program. See directions for use: rxm.pdf
The command line option "RX03" is not implemented! DEC planned to release RX03 a Floppy with 1 MByte capacity, but it was never released to the publicc.

Standalone Version - Arduino Port:
The emulator use disk image files stored on the SD-card. 100 disk image files are selectable with the keyboard of the emulator. The file names have the following format:
RX02-%%.dsk
%% is a two digit decimal number, range: 00 - 99

Settings (RX01 or RX02 mode & selection of image files for drive0 and drive1) can be changed using the setup menu.
Default parameters: Emulation mode RX02, image file for drive 0: RX02-00.dsk, drive1: RX02-01.dsk. Settings can be permanently stored on a file on the SD-card. If settings are saved, the next time you switch on the stimulator, it starts with the saved values. Two setup menus are implemented:
1. Via serial line emulation over the programming port. (9600 Baud, VT100 terminal emulation, e.g., putty)
2. Or via the 4-key keyboard and LCD-display.

The serial line emulation is always active, the 4-key keyboard / LCD setup is optional, must be enabled by changing the line
//#define LCD
to
#define LCD
at the beginning of RX02.ino file. To enter setup via serial VT100 terminal emulation press any key on the keyboard.
To enter to LCD setup press the "Menu" key on the 4-key keyboard for a second.

If the setup menu is activated, the emulator goes offline, commands comming from the disk controller will not be executed.
Selectable parameters:

Emulation (RX01 or RX02)
D0 Filename (disk image for unit 0)
D1 Filename (disk image for unit 1)
Save parameters
Exit setup

The standalone emulator as the Raspberry port use 100 selectable disk image files (RX-00.dsk - RX99.dsk). Settings seletced using the push buttons are stored on the "setup.dat" file. To use the standalone emulator, format a SD card to FAT32 and either insert the SD card in the emulator or copy disk image files to the root directory of the SD card. If the SD card is empty the 100 disk image files will be generated during the first power on of the emulator. Disk images files with file size 256256 Bytes will be threated as single density and with 512512 Bytes as double density floppy disks. If the file size is not equal to 256256 or 512512, after power on the emulator overwrites these files with correct sized empty disk images. Since the image files are compatible both with the simh and e11 emulators, imagage files created with these emulators can also be used with the standalone emulator. In RX02 mode the emulator can use both single and double density disk images, the emulator can also change the format of the disk images to SD or DD using the set media denstity function.
To change media density to DD or SD use the RT11 operating system "format" or "format /single" commands.
Before the first use of empty disk image files, use the RT11 "init dy0:" or "init dy1:" commands (use dx0: or dx1: in case of RX01 emulation).

Display & keyboard - circuit diagram.

RX02 Emulator, LCD Display.

RX02 Emulator, Main Components.

Contact Information

Béla Török Email: belabelatorok.com