Own softwareScanned itemsRetroChallenge

RetroChallenge Winter Warm-Up 2010

As a newbie to the RetroChallenge, I decided to try something simple. I will archive the software and scan the docs for two different Basic compilers on the PET and CBM-II series:

  • PET 3000: Integer/Compiled Basic by Oxford Computer Systems
  • CBM-II: PET 700 Komp by Datatronic AB [download disk images | manual]
Once the archival is done, I will write some Basic programs and try the software as well. There may be side projects showing up along the way, of which some I will tackle as time permits.

Process log - Latest progress

January 4, 11:30 CET (GMT+1)

Project initiated. Page will later on be updated with the actual names of the two Basic compilers, as well as pictures of equipment used.

The first step will be to determine which format the floppy disks are in. If they are 2040/3040/4040 compatible, I can use my XM1541 cable and read them in a regular 1541 drive. However I suspect them to be in 8050/8250 format, which will require me to use my C2N232I with cbmlink/CBMXfer software.

The second step is to decide which computer to run the cbmlink against, either a CBM 8032-SK or a CBM 610. The 8032 is located in a different room than my desktop PC so I'm planning to use my Eee PC - which further requires an USB to serial adapter not yet received. The 610 and 8250LP disk drive are slightly easier to move around, but I will have to see how well the C2N232 supports that model.

Scanning the documentation will be a monotone task, but I'm quite used to scanning stuff so not a real challenge unless I want to apply optical character recognition on slightly blurry, matrix printed text. We'll see about that. One software package only has documentation in Swedish which will make it harder to use for English speakers, but there's always Google Translate. :-D

The final part of my challenge will be to make some non-trivial Basic program (or perhaps download an existing one) and let the compiler(s) convert those to shiny machine code. It will involve me studying the manuals and plenty of trial and error. For practical purposes I suppose emulation may come handy. I will also have to publish my results, retaining any copyrights that still apply to this software.

January 4, 17:25 CET

Hmm.. as expected the CBM 610 will not be possible to bootstrap directly from the C2N232. However one can execute a loader program (444 bytes) which will enable the tape port. Since I have access to a bunch of 8-16K cartridge boards for the B-series, it might be a nice extention to the project to make a cartridge image out of the program and burn an EPROM.

There are also some IEC routines by Ullrich von Bassewitz' 1987-89 which me and Steve Gray have spoken about putting onto a cartridge instead of internal ROM swap. Perhaps both IEC and C2N232 support could be included in the same cartridge, since both would like to use the otherwise unsupported cassette port.

Oh well, up to now it is just speculation. In the mean time I could haul the full-sized PET closer to the master PC.

January 5, 01:15 CET

Ok, I got sidetracked from my second paragraph above, about the possibility to make a cartridge that could bootstrap the C2N232. In theory I know how the cartridge header should look like and at what memory bank it will show up, but in practise I don't even know how to properly load a machine code program to its absolute address - i.e. the VIC/C64 syntax ,8,1 does not do what I expect it to do, at least not in emulation.

Thus I will return to this project later tomorrow, by hauling the full-height PET into my bedroom. If I have spare time by end of the month, I might get back to this side branch of my project.

Oh, by the way in case people are unsure what CBM-II and B-series refer to, it was a 8-bit business computer based on the 6509 CPU, released in parallel with the C64 generation. The computer came in two different models:

  • Low-profile B128 (USA), CBM 610/620 (Europe): Looks similar to a C128, connects to an external monitor.
  • High-profile B256, CBM 710/720: Looks similar to a PET/CBM 8032-SK, i.e. integrated monitor but separate keyboard.
As the model numbers suggest, those computers came with 128K or 256K RAM, arranged into 15 banks. All the CBM-II machines have a built-in SID chip which is a bit surprising for a 80 column B&W business computer. By loading an emulator program, some of the 80 column PET software can be run. Quite some PET business software was ported to the CBM-II. One of the two Basic compilers mentioned above obviously runs on this machine.

Actually there was a third line of the B-series, the P500 which pretty much only went to prototype stage. This machine has 128K, a VIC-II just like the Commodore 64, joystick ports and the SID. Pretty much a beefed up C64 but with the 6509 CPU, several years ahead of the C128. Those who want to read up on all these slightly less familiar Commodores can visit the Secret Weapons of Commodore.

Oh well, end of the history lesson. Next time we'll get back to my RetroChallenge project.

January 5, 01:40 CET

Oops, I forgot to look up the names of the software I will work with. The PET compiler is Oxford Computer Systems - Integer/Compiled Basic imported to Sweden by a company called T-D-X Smådatorer AB. It appears to support both interactive and floppy disk based compiling, and actually looks to run on a PET 3000 or 4000. I really should insert the floppy disk into a drive to check the format, but I'll save it for tomorrow.

The CBM-II compiler is PET 700 Komp by Swedish company Datatronic AB, which also happened to be the Commodore importer and which may have had a bit of a special status to Commodore compared to other importers, due to their extensive work to produce own software of which some was released by Commodore themselves. This compiler comes in two memory versions for both 128K and 256K machines. Unfortunately this compiler requires a dongle in the cassette port to operate, but perhaps I can bypass this copy protection as the software already is 25 years old.

January 6, 19:30 CET

It appears the floppy disk for the Oxford compiler is no longer readable. :-( So far I have tried it on both a 1541 and 8250LP, both returning DRIVE NOT READY. I will have a few more attempts, perhaps trying to read it on a genuine 2031 IEEE drive.

The CBM-II compiler however is readable on the 8250. It actually turns out to be B-series versions of the DTL Basic compiler (link to PET 8032 version). It is possibly already archived in Ken Ross' collection of unsorted software or perhaps in the Chicaco B128 Users Group Library, but it won't prevent me from archiving it once more.

Supposedly the documentation for PET 700 Komp will apply to the PET Basic compiler linked on Zimmers. Perhaps I can take that approach, to download it and try to use according to docs.

January 7, 01:00 CET

No binaries yet, but I successfully scanned the PET 700 Komp manual. I'm quite impressed by the OCR software which for most part managed to recognize the letters correctly. Here and there it simply ignored a line of text, which means the original source is even more important when one is proof-reading the text.

Anyway for those who like to read compiler instructions in Swedish, you can download the 62K text file here. The wordings suggests it once was translated from English, so it is likely somewhere an original document exists. Otherwise I may translate it by hand later on.

Tomorrow I will return to archiving the floppy disks in one way or another. I just upgraded my secondary PC to become a retro-transfer computer but found out its SiS chipset and thus parallel port is likely to be incompatible with my XM1541 cable. Bugger, but it works on other computers. Perhaps after the challenge is over I'll buy an XA1541 cable/adapter which has even greater compatibility.
Update: It turned out the XM cable had a few loose wires. After a round of soldering, it is back to full working order on both my PC's, so no need to get another cable.

January 10, 03:45 CET

After a lot of struggling and false starts, I have now managed to make a CBM-II cartridge which contains the cbmlink client. While I theoretically know how to make the cartridge autostarting, part of the process is still a mystery and immediate execution of the client made the computer hang. Oh well, what is a SYS1024 more or less?

That said, I found updated versions of the cbmlink server side software which works with my C2N232I interface. It should be noted the binaries on Zimmers' FTP are outdated compared to those on Marko Mäkelä's own website.

This is my computer setup:

And these are the two key components to the sucessful disk transfer:

C2N232I interface (unsupported IEC connector not installed) and a homemade cartridge which currently contains the client software. Don't bother to cover the window with tape since I will erase and reprogram the chip soon.

Finally, click here to get a preview copy of the unmodified disk images. Please remember there are two versions depending on if you have a 128K or 256K machine.

By the way, I got an idea for a kind of game which I will implement in Basic and use as a test object for the compiler if I get it to run. I will describe the game more in detail later when I get a working implementation.