1. Current
Project
|
DEC RL02 Simulator |
|
As I have already mentioned briefly the challenge in this project is to achieve the vintage software and preserve it on new technology. However the Software is directly dependent on the condition of the disk drive, in my case a DEC RL02 disk drive. The RL02 drive uses removable disk packs to provide 10MB of storage; twice as much as its predecessor, the RL01. After the announcement ~1980 the RL02 turned out very fast to be DEC's all-round disk drive. Although other DEC disk drives like the DEC MSCP-protocol based disk drives ( e.g. RA80 ) would be easier to simulate I nevertheless decided in favor to simulate the RL02 disk drive. My decision was based on three reasons: First: The RL02 drive was available on most of all DEC systems like PDP-8, PDP-11 and VAX systems. Second: The RL02 drive was device-driver supported running on all DEC operating systems, like OS-8, RT-11, RSX-11, MUMBS, RSTS und VMS. Third: My personal challenge and a good chance to jump into the embedded systems world. Aim of this project: Being able to use the RL02 Simulator on all DEC vintage computer platforms. To be able to start such a project, we need an up and running environment including a RL02 disk drive and a DEC computer system with disk controller and attached RL02 drive. These RL02 disk drives are already very rare. Unfortunately, most RL02 disk drives don't work any more. Spare parts don't exist anyway. I had it left nothing else to build an operating disk drive from 2 to 3 faulty disk drives left. For me the most difficult part was to adjust the mechanical part via Oscilloscope based on the maintenance instruction following the alignment procedure . I am glad that I was successful and the most important prerequisite for this project was available now. Another problem still is related to the disk packs. A disk pack consists of 2 data surfaces and were pre-formatted by factory and can not be reformatted. After about 25 years, the format information on the surfaces has been already decreased in most cases which may result in Read-Error or in Too-Many-Bad-Blocks. To be able to start the project at all, I needed the appropriate hardware. The Computer-Museum in München ( http://www.computermuseum-muenchen.de/ ) put these Hardware for me more friendly wisely at disposal. The hardware consists of a Micro-PDP-11 with 11/23+ CPU + RLV-12 Controller and a RL02 disk drive. Many thanks to DR. John G. Zabolitzky and Mr. Wolfgang Kainz-Huber. Project start was Septembers 2009. Since I had a knowledge gap since 1995 of more than 15 years, I had to switch me over to the new technology bit by bit like C programming on ARM 7 CPU. This wasn't simply for me. A video from Fritz Weld shows a RL02 disk drive in action: RL02-in-action
The project started. Nostalgia is surely also my motivation reason for this project. The main reasons are the love of the vintage computers and also to realize the challenge, something worldwide there is not yet. At least: Because I only can work exclusively in my spare time on this project , the major problem results in having not enough time to work on it continuously. Every notes/concerns are welcome ! |
|
|
|
My current development environment in my study is visible in the following picture. The RL02 disk drive was screwed for place reasons to the wall. After all almost 40 kg heavy. Under the RL02 disk drive the Scope and my PDP-11/23 SE (chapter 5) can be recognized. In this picture the Micro-PDP 11 cannot be seen which is located between desk and PDP-11/23s SE. The simulator hardware can be recognized on the desk. |
The most important specifications of the RL02 disk drive
|
Physical Specification |
19 inch RETMA Rack compatible Depth: 63.5 cm , Height: 26.5 cm Weight: 34 kg ( emty ) |
|
Generel |
Linear bit density: 147 Bits/mm Number of sectors: 30/track Number of recording tracks: 512/surface, Number of Surface:2 Encoding method: MFM |
|
Transfer Rate |
4.1 magabits/sec +/- 1% , Bit Cell With: 244 nsec , Words(16 bit): 256 kilowiords/sec +/- 1% |
|
Seek Time |
Average: 55 msec ( 120 tracks ) One cylinder track 4 msec max seek time. |
More RL02 specific information : RL02-Documentation
|
Here another picture from another viewpoint with visible Micro-PDP 11. |
|
The construction started in September 2009. First, a possibility had to be found to measure the differential RL02-bus signals and convert it to TTL level for further processing . For this purpose I designed a special, 40-pole ribbon cable for the connection between RLV-12 controller and the RL02 disk drive. Therefore I was able to watch the RL02 bus signals. The RL02 bus architecture is based on +5V/-5V differential signals, 6 signals each for the two directions. I didn't find any substitute for the necessary bus Receiver/Transmitter chips and had much trouble to get the original chips of the type 75113 and 7510. In the end after many searches I was successful anyway and the chips could be obtained via the dealer sh-Halbleiter in Germany. The board is designed in Wire-Wrap technology like in the following picture, based on the circuit diagram from the RLV-12-engineering-drawings . To get the required DC power, +5V/-5V, an additional DC/DC-Converter was installed. To be able to watch and check the transmitter read signals from the drive to the controller, I installed 3 additional 7510 receiver chips. The 40-Pin Connector of the RL02 bus is visible in the upper part of this picture. |
|
|
|
A) In the summary the complete development hardware can be seen here. The QL200 PIC MCU Development board is above on the left visibly. It was the first attempt and it turned out very fast, though, that a PIC 16 bit MCU was completely insufficient for this project. Programming based on assembler language with the Integrated Development environment MPLAP of MICROCHIP wasn't a problem for me and it turned out very fast that the throughput and the frequency range didn't suffice with 8 bits. Bad investment for this project at this point in time, but it went on ... |
|
|
|
... and here are all 3 actively connected components visible ( FEB 2010): |
|
|
|
B) I was in the decision phase in October 2009, which MCU is suited best for this project. After investigating for a long time I have decided in favor of the LPC-P2148 Development board of OLIMEX. This board works with a MCU: 16/32 bit ARM7TDMI-S™ ( Fa. Philips ) with 512K Bytes Program Flash, 42K Bytes RAM, USB 2.0, RTC, 10 bit ADC 2.44 uS, 2x UARTs, 2x I2C, SPI, 2x 32bit TIMERS, 6x PWM, 8x CCR, 1x DAC, WDT, 5V tolerant I/O, up to 60MHz operation. This board was ideally suitable for the getting in and very well for the developmental stage. This board isn't the final version, though and will then replaced by another like such as LPC-H2294 . This will become necessary because a SD card only can handle a restricted number of write cycles. The final version will hold the RL02 data in RAM and the SD-Card will be used just for the load and store operations. In the following picture my LPC-P2148 board can be seen with additional 16 LED's to be able to watch the 16 bit based data transfer visually. |
|
|
|
C) It went on rather toughly now. The setup of the software development environment had to be implemented (see 1.4) and the hardware of the RL02 Simulator had to be developed step by step. The base for this project is to be able to read the RL02 drive command register. In the first step I therefore developed a circuit diagram to read the command register of the RL02 disk drive. Since I was still an engineer of the old style I built the design based on TTL-Chips and Wire-Wrap technology. It wasn't simple for me but I managed to complete this board and I was able now to read the RL02 Drive-Command-Register. The circuit diagram to this is open here: Drive-Command-Register |
|
|
|
D) The greatest breakthrough at this project was: FPGA ( Field Programmable Gate Array ). Myself, also already an “OLDIE“ refused this new technology to employ me very long and I am annoyed afterward because I hadn't made this step earlier. I had arrived in the embedded systems world and it was going on speedily now. I decided in favor of the MAXII-FPGA of ALTERA. To make the start in the FPGA-world as simple as possible I bought the Development board , MAXII-Micro-Kit-Board , at Digi-Key, manufactured by Terasic-Technologies-Inc . This board is ready for use, includes the MAXII FPGA and also a USB Blaster for downloading the compiled circuit diagrams. With the enclosed Quartus II web edition software of ALTERA, I was able to develop a circuit diagram into a fraction of time. The Micro-Kit-Board has been built up pin-compatible to the above TTL-design like in the following picture obvious. |
|
|
Résumé:
I need soldering no more and threading Wire-Wrap
|
My
Environment: |
|
Software: My complete software environment for programming the ARM-7 MCU is “Free software“ based, on the GNU compiler Collection (GCC) area. After some tests I installed my laptop computer successfully with the following software in the correct order. Installing first the Dev-C++ Integrated Development environment (IDE). As next one needs the Cygwin environment installed to be able to work with Unix Commandos under Windows. We still need the arm-none-eabi-gcc C-compiler now to program the ARM-7 MCU. Unfortunately, no make-utility is in the Cygwin package included . I use the mingw32 utility, which runs without any problems.. The Flash-Tool from Philips should be version 2.2.3 to support for LPC-P2148 board (Flash-Utility-Doku ). The Quartus II 9.1 Web Edition Software from ALTERA is necessary to program the MAXII-Micro-Kit-Board . The new version 9.1 has to be obtained without problems of the ALTERA online update service. This version runs without any problems on my Windows-Vista 64Bit system. |
|
Block diagram: |
|
|
|
Design of the entire development environment, based on ARM 7 MCU and MAXII FPGA.
|
|
|
|
September 2010: New DE1 Board based on Cyclone® II FPGA. ARM 7 is replaced by NIOS MCU.
|
|
|
|
Action |
Timeframe |
Status |
|
Install , repair and recover Micro-PDP-11 + RL02 disk drive. |
SEP-2009 |
DONE |
|
Hardware engineering of the RL02 Receive/Transmit Bus-Board based on TTL-logic. --> 1.2 |
SEP/OKT-2009 |
DONE >> Able to monitor/watch the RL02-Bus signals via scope. |
|
Test with PIC MCU's --> 1.3-A) |
OKT-2009 |
DONE, = not useable. |
|
Implementation of ARM-7 MCU based on LPC2148 development board. --> 1.3-B) |
OKT-2009 |
DONE |
|
Development of the Software environment. --> 1.4 |
OKT-2009 - JAN-2010 |
DONE |
|
Hardware engineering, prototype = TTL based logic board to be able to receive and read the RL02 Command Register. Writing C-code for ARM-7 MCU. --> 1.3-C) |
NOV-2009 to JAN-2009 |
DONE
|
|
Installing and customizing MAXII FPGA Hardware + Software + I/O Tests to be able to verify data flow RL02-FPGA-ARM-7 --> 1.3-D) |
DEZ-2009 to JAN-2009 |
DONE
|
|
Design FPGA schematic circuit diagram and write C-Code to be able to receive RL02 Command-Register and send Status-Word. |
FEB-2010 to APR-2010 |
DONE |
|
Install and setup RT-11 environment to be able to write FORTRAN, BASIC or MACRO-11 assembler programs. |
APR-2010 to MAI-2010 |
DONE |
|
Implement Sector-Puls generator running in FPGA |
APR-2010 |
DONE |
|
New investment necessary : Logic Analyser. |
MAI-2010 |
DONE |
|
Implement MFM Decoder running in FPGA. ( 1 of 2 major problem ) |
MAR-2010 to MAI- 2010 |
DONE |
|
Implement MFM Encoder running in FPGA. ( 2 of 2 major problem ) |
MAI-2010 |
Ongoing (most = done ) |
|
Write C-code for the ARM-7 MCU to get access to the SD-card. Fake the RL02 data structures concerning sector size/header and CRC checking. |
FEB-2010 |
Ongoing |
|
Up-to-date
status , 27-MAI-10 : |
|
Implement data transfer, either per Sector oder per Track Financial problem: Investment of new Hardware!
|
?? ?? ?? |
Testing started
I would need a sponsor
|
|
During the summertime of 2010: My last attempt based on the MAXII and ARM-7 environment: The idea was to read one or two ( HEAD-0 and HEAD-1 ) complete tracks into the memory of the ARM-7 MCU. One track contains 40 sectors and one sector contains 280 Bytes, = 11200 Bytes per track x 2 = 22400 Byte ( HEAD-0 and HEAD-1 ). The available Memory on my used ARM-7, LPC2148 is 42K Bytes RAM and this would be enough to hold 2 tracks in the ARM-7 memory. Next step would be to save all tracks on a SD-Card which results in a RL02-like formated SD-Card. This would be an ideal starting point for a much simpler implementation because we have not to take care about Header+CRC sector structures. Sorry, but I was not able to solve this challenge with the current used environment. More details can be gathered from chapter 1.6 and any input/hints to this issue is very welcome. |
|
Up-to-date status, 20-AUG-10: I
made another investment with the following
product: |
|
The following picture shows the new DE1 board based on Cyclone® II from Altera. To be able to connect the RL02 bus-signals to the DE1 board an new adapter board must also be developed and is visible in the right part. |
|
|
|
Implement new environment and replace ARM C-Code by NIOS
C-Code. |
SEP-2010
OCT-2010 |
EXIT |
|
|
|
I could solve the problem as described above by replacing the DC005 and the DC004 Q-Bus chips. Unfortunately, an error has happened to me when soldering and now I have contact problems. The RLV-12 controller does not always work and sometimes I have to replug it several times until I can continue to work. This handicaps me in my work very much and I am continuous searching for a replacement. Again, any help is welcome |
|
The project goes on. A MFM decoder with Clock and Data Recovery ( CDR ) is available and up and running. For more details, see chapter 1.7 |
|
Fix and implement all open issues from MAXII environment in the new DE1 board environment. |
FEB-2011 |
Ongoing
|
|
In view of the very sad events in Japan, I can't enjoy continuing to work at the moment! |
|
The development based on blockdiagram got more problematic and inefficient. I have given up this kind of development and replaced most of my modules by Verilog programs. |
FEB-2011
JUL-2011 |
Closed
|
|
SD Card I/O implemented to be able to reconstruct the RL02 Format on a SD Card via NIOSII system. |
MAR-2011 JUN-2011 |
Closed
|
|
Developing data/timing sequencer and dual port RAM Verilog
design. |
MAY-2011 JUL-2011 |
Closed
|
|
Usage
of the SD card |
|
Servo/Header
structure of the RL02 Cartridge makes problems. |
|
Retraction My last
attempt based on the MAXII and ARM-7 environment: (summertime
2010 ) The challenge was: CLOCK RECOVERY without PLL All details with circuit diagrams , logic-analyser timings and a detailed description is available for download here : manchester-try.zip RESULT
: I was not able to solve this challenge with the current used
environment. |