![]() |
![]() |
|
|---|---|---|
|
|
Home| Sanos| RC702| Documents| Links| Contact| Search| |
|
I have put together a PC for reading my old floppy disks. It is an old PC where I have installed a hard disk, a 3 1/2" floppy drive, and the 5 1/4" floppy drive I bought on eBay, and I have put DOS 5.0 and ImageDisk on the hard disk. I can then use ImageDisk for reading the disks and then copy the IMD files to 3 1/2" floppy disks, which I can read on my laptop using a USB floppy drive.
I have managed to read all my floppy disks using this setup. There is only one floppy I haven't been able to read without bad sectors. I'm amazed that these 30-year-old disks are still readable. I found that some of the floppies, that could not be read on the first try, often had fewer or no bad or missing sector on subsequent tries. I seems like just keeping the floppy spinning cleans the disk so it becomes easier to read. Almost all the disks had read errors, but by setting the number of read retries sufficiently high (100) it was possible to recover almost all the data. I have made the disk images available here. |
|
| I've received a "regnecentralen rc702 cp/m 2.2" disk image from Jacob Dahl Pind. The image is in IMD format produced by the ImageDisk tool, which has support for "exotic" disk formats with different encodings, number of sectors and sector sizes per track. I have added support for reading IMD file in the simulator. Now I have the pieces needed to get the RC702 simulator to boot up into CP/M. |
| Poul-Henning Kamp has been very kind and made a copy of the boot ROM from one of the RC702 machines at DDHF. This means that I can now get started with my RC702 emulator project. I have taken the Z80-SIM emulator and added support for INT mode 2 and added skeleton code for the peripherals devices. The emulator can now boot up and write "RC700" on the screen (i.e. at RAM address 0x7800). Next step is to try to see if I can make disk images from some of my boot disks using the 5 1/4" floppy drive. |
|
All the images of the RC logo I've been able to find are really poor quality, so I have scanned a logo from an old RC binder and cleaned it up in GIMP. I've created some high-quality Regnecentralen logos from this scan. |
![]() |
|
I learned to program in Pascal using Compas Pascal for CP/M-80 from a small Danish computer company called Poly-Data. Compas Pascal was written by Anders Hejlsberg (see his own story here), and was later to become Borland Turbo Pascal. Today I found someone who has an original copy of Compas Pascal for CP/M-80. It would be really cool to get this up and running again. I remember as a young teenager I attended the Mikro-Data 83 computer fair in Bella Centeret, Copenhagen, where Anders Hejlsberg himself demonstrated the new version of Compas Pascal. This was truly a revolutionary compiler. It was blazingly fast, even on a 4 MHz Z-80 computer, so the edit/compile/run cycle was much faster than with other compilers. |
|
The RC702 Technical Specification Figure 2.5 and 2.6 contain diagrams of the ROA296 and ROA327 character ROMs, including the special semi-graphics character set used for low-resolution graphics on the RC702. I have made bitmaps for all the characters in the character ROMs. I hope that using the original font, together with the distinctive amber color of the RC752 monitor, will give the RC702 emulator "the right feel". |
|
|
After studying the RC702 Technical Specification I finally figured out how interrupts are handled in the RC702. The Z80 peripherals (SIO, PIO, and CTC) use the Z80 mode 2 interrupt mechanism, where an interrupt vector is programmed in a register in the controller. This interrupt vector together with the Z80 I register is used for computing the interrupt routine address. However, it took me a while to figure out how interrupts from the CRT and FDC controllers are handled, since these do not support the Z80 interrupt protocol. Looking at Figure 2.3.14 on page 27, you can see that the interrupt output from the CRT controller is connected to the TRG2 input of the CTC, and the interrupt output from the FDC is connected to TRG3. This means that you can program the CTC to generate an interrupt when TRG2 or TRG3 is signaled, so it is actually the CTC that generates the interrupt on behalf of the CRT and FDC controllers. |
|
The Polish floppy drive vendor called today and told he could not find the drive in his warehouse, so I had to find a new drive on eBay. I have ordered another drive (Panasonic JU-455-5) from a vendor in Ventura, CA, USA. It was a little cheaper ($37), but they claim they have tested the drive, and it is in good working condition. The basis for a RC702 emulator is a Z80 emulator. I have downloaded the Z80-SIM emulator. It is written in ANSI C, and the code looks good. Although it is written for Unix it was quite simple to port it to Windows using the SOW library from Sanos. Z80-SIM is released under a BSD license, so there should be no licensing problems. The Z80-SIM emulator looks very complete with respect to Z80 emulation. However, it does not implement INT MODE 2, but it should be quite simple to implement. |
|
I have gotten a reply from Jesper Henriksen. He will send me a hex dump of the Boot EPROMS when he get them back from Dansk Datahistorisk Forening. That is fantastic news. Without a boot ROM I would be stuck. I still cannot get my old floppy drive to work, so I've bought a TEAC FD-55B-01-U 5,25" Floppy Drive on eBay for $100. I have to wait for it to arrive from Poland. |
|
The floppy cable I found had both a Card Edge connector for the 5 1/4" drive as well as a IDC-34 connector for the 3 1/2" drive. I got the 5 1/4" drive and 3 1/2" drive connected using the same cable, so now I can boot up in DOS on the 3 1/2" drive to run DOS floppy diagnostic programs on the 5 1/4" drive. The 5 1/4" drive is responding to the Floppy Seek command on boot up, and the motor responds to motor on/off requests. The drive arm also seems to respond, so the basic mechanical systems seems to be working. The motor can spin up my test floppy disk, and although the drive is a little noisy, it can spin the disk without doing any damage to the disk.
I tried using ANADISK to analyze a test floppy, but I still get a "Drive not ready" error when I try to read the disk. I tried cleaning the drive's heads using an alcohol swap. There was a bit of rust around the heads but otherwise the heads look intact. Even after cleaning I was unable to read any disks. |
|
Most floppy disk analysis tools seems to be for DOS, so I have created a FreeDOS boot disk, and I can start DOS on the Zitech PC. I have downloaded ANADISK for DOS so I can analyze the disks. |
|
Applied for membership of Dansk Datahistorisk Forening, which is a society for Danish computer history. They have a working RC700 system, so maybe I can get a copy of the boot PROM from them. |
|
Found a guy who has a RC700 system. The Boot PROM in his system was defect, containing all 0xFFs. He has asked Dansk Data-Historisk Forening, and they have promissed to send him a new Boot PROM. I sent an e-mail to him asking if I could get a dump of the Boot PROM. My first PC, a COPAM AT Computer (10 MHz 80286 with 640KB RAM from 1986), had a 5 1/4" TEAC floppy disk drive. I have installed this drive in a newer computer, a Zitech PC with a 1.67 GHz AMD Athlon 2000+ processor and 512MB RAM. The first problem is that the 5 1/4" drive uses a connector that is different from a normal floppy drive cable. It needs a Card Edge 34-pin Female connector instead of the usual IDC 34 Female connector, so I had to find an old floppy cable to be able to connect the 5 1/4" TEAC floppy drive to the motherboard. After messing around a bit I managed to get the BIOS set up correctly and set the DIP switches for Drive Select. I booted up into Windows and it could see the 5 1/4" floppy drive, but it could not read the floppy disk in the drive. I got a "Drive not ready" error. |
|
|
I found a scanned copy of the complete technical specification for the RC702 system (local mirror). This contains complete circuit diagrams and descriptions of all components in the RC702 system. The RC702 had a Zilog Z-80A CPU and 64KB RAM, one or two 5 1/4" floppy disk drives, as well as serial and parallel I/O ports. I tried searching for an emulator for the RC702, but while there are a bunch of Z-80 and CP/M emulators, there are no emulators for the RC702. It should be possible to use an existing Z80 emulator and add support for the R702 hardware devices:
Technical documentation for the hardware:
A small note on terminology: RC700 refers to a complete stand-alone computer system consisting of a RC702 micro computer, a RC721/RC722 keyboard, a RC752 monitor, and one or two RC761/RC762 flexible disk drives. The RC700 was also often called RC Piccolo.
In order to be able to use a RC702 emulator I need to find some way of transferring the data from the 5 1/4" floppy disks to a modern computer. The disks are double-side double-density disks with 360K storage capacity. It should be possible to read these using a 5 1/4" floppy drive from a PC. The RC702 also had a 2KB PROM with an autoloader program for booting the computer. When the RC702 was reset, the lower 4K of the memory was the mapped to the boot PROM, enabling the system to start the autoloader program. The PROM can be disabled using an OUT 0x18,A instruction, making the full 64K RAM available. I'll need a copy of the boot PROM to be able to run programs on the RC702 emulator. I don't have access to a physical RC702, so I have to find someone who either has a copy of this PROM or a working RC702 system, which I can copy the PROM from. |
![]() RC700 System (courtesy of Dansk Data-Historisk Forening) |
|
I found a box of program listings with my old COMAL programs back from 1981-1982 on the attic. COMAL (Common Algorithmic Language) was a computer programming language developed in Denmark by Benedict Løfstedt and Børge R. Christensen in 1973. COMAL is a mixture of BASIC and Pascal. It is an interpreted language like BASIC, but with structured programming constructs like IF/ELSE/ENDIF, PROCedures, FOR/ENDFOR etc, much like you know it from the much later Visual Basic. In Denmark, and in a few other places, it was used for teaching programming in schools. I learned COMAL in 8th grade. My first COMAL programs was for the RC7000, which was a Data General Nova 1200, produced under license by the Danish computer company Regnecentralen. The box contained some of the very first programs I ever wrote: A program to compute factorials: 0010 INPUT "INTAST FAKULTETET: ",FAK 0020 LET FAKULTETET=1 0030 FOR TÆLLER=1 TO FAK 0040 LET FAKULTETET=TÆLLER*FAKULTETET 0050 NEXT TÆLLER 0060 PRINT "FAKULTETET TIL ";FAK;" ER ";FAKULTETET and a program to output Fibonacci numbers: 0010 INPUT "INTAST TAL: ",TAL 0020 LET TAL1=0 0030 LET TAL2=1 0040 FOR TÆLLER=1 TO TAL 0050 LET TAL3=TAL1+TAL2 0060 PRINT TAL3, 0070 LET TAL1=TAL2 0080 LET TAL2=TAL3 0090 NEXT TÆLLER I found a free COMAL interpreter, OpenComal, and got it up and running. It is a COMAL-80 interpreter, so it is not quite compatible with the RC-COMAL dialect on the RC7000. I also have a box of punched tapes, which contain many of these programs, but I don't have a punched tape reader, so I cannot read them into any modern computer at the time. |