Own softwareScanned itemsRetroChallenge

RetroChallenge 2018/09

A couple of years ago, the RetroChallenge moved from January/July to April/October. I've found myself having very little time to participate, but as the fall edition was shifted back one month to September, I'll give it a shot.

This time around, I'll try to concentrate on two projects:

  • Scan some manuals for Commodore PET BASIC extensions w/ dumping of associated ROMs.
  • Develop a game for the VIC-20 that utilizes both a 40 column display on an expansion cartridge as well as the built-in 22 column display, thus requiring both extra hardware and dual monitors.
Obviously I might be sidetracked with other items, of which some might end up in this project blog.

Process log - Latest progress

August 23, 13:15 (GMT+2)

Challenge set up, early planning started.

To the right is a picture of the 40/80 column Zero18 card for the VIC-20, which I'm planning to use in this challenge. It has been thoroughly documented by tnt.

Unfortunately there were several different 40/80 cards for the VIC, so what I'll come up with may or may not work on other brands. I'm not really planning to POKE or SYS any parameters outside of the default ones, so likely it should work.

When it comes to the PET BASIC extensions, those are the BEE 3.0 - 8.1 from Jan En Programkonsult, one version for each model of PET and CBM-II computers. For some of those, I've got ROMs, others I've got printouts of assembly code and/or only the manual.

September 1, 21:50 (GMT+2)

And so the RetroChallenge begins! I started this campaign by sketching on the VIC-20 game I'm planning to do. After a couple weeks of thinking, I will try to make some sort of board game, where the board itself is displayed on the 22 column screen and all other texts about what happens in the game, player inventories etc are echoed on the 40 column screen.

What I have in mind is some sort of cross between Monopoly and M.U.L.E. taking place on a subway grid. Each square on the board represents one station. The players take turns throwing the dice to move around the board, and when you land on a square you have the option to buy it unless someone else already owns it, for which you pay a small rent.

In order to make it a little more interesting, each station has four properties as to its capacity for business travellers, tourists, light goods and heavy goods. Each of these properties are rated 1-7, and each station has a total of 10 points to distribute on these four properties, giving 9 different combinations ranging from a highly specialized 7-1-1-1 station to a very broad 3-3-2-2. When you buy a station, you get to select which of these four properties to target on a station.

After players have made their moves, there would be a "production" stage similar to M.U.L.E. where one gains money for how many business travellers, tourists, light and heavy goods have been transported on your stations. There would be bonus multipliers for having many stations next to eachother (which is how it works both in Monopoly and M.U.L.E) and multipliers for having many stations targeting the same type of traffic.

Most likely I won't have an auction stage though, just cashing in on the production and then the next round. Whether one would play the game for a fixed number of rounds, or until all players but one have been eliminated, I haven't decided. I'm not thinking that rent for ending up on someone else's station will be cumulative to the number of stations in a row like in Monopoly, which means one would not lose money that fast.

September 4, 01:00 (GMT+2)

Regarding the second half of my challenge, I decided to scan some documents tonight when I realized my trusty 12 year old Windows XP computer no longer works with my equally old CanoScan LiDE 70 scanner. I was ready to look around for a new flat bed scanner, when it struck me I should try it on a newer computer, in case the USB or TWAIN drivers have gone bad on the old PC.

While there are no drivers for Windows 10 for this obsolete scanner, there are drivers for Windows 7 which I installed on my other desktop computer which I assembled in 2012 but barely have used in the past 6 years due to I never got around installing all the programs I want to use, so I've stuck with a much more inferior computer for most of the time.

To make a long story short, the scanner works 100% on the newer computer, and after an installation of required photo editing software with scanning capacity, I was ready to have a go. Earlier this year, I set up a small home file server where I intend to store some of the documents and files I need to have access to from multiple computers, so I took the opportunity to finish that installation and to store the scanned documents there to start with. Well, not so much retro here, but at least a challenge and one more task off the check list.

Anyway, as you can see by the image in the upper right corner, I have scanned the first document in a series of 10 manuals and disassemblies intended for this month. The EPROMs remain to be dumped by me some later day. Since the documents are a little on the heavy side, I'll wait with uploading them until later, perhaps I come up with an efficient way to do OCR that would reduce them a lot.

September 9, 02:15 (GMT+2)

As it turned out, I had an old version of OmniPage installed on my computer. It was remarkably good at recognizing the typewriter text from the scanned manual, and it only took me a few hours to fix typos and reformat the text into a MS Word document, complete with page numbering. Then it took me a little while to realize that PDF Creator during the print to PDF phase allows for including additional documents (i.e. front and back page) and combine those into one so I managed to create a PDF of the manual that for all intents and purposes looks nearly the same as the original. I optimized the page layout a little.

The manual however is mostly in Swedish, so for readers who are unable to understand the language a home translated version might be in the works for later. For the moment being, you can download the manual for BEE 3.0 plus an addendum for BEE 3.1. While I don't have a binary file that matches version 3.0, I successfully dumped the ROM for 3.1 (just like a friend of mine already did many years ago).

Eventually I will upload these to the Zimmers FTP, though I'll add manuals and ROM files for the other versions of BEE as well so I can upload them all in one go.

The VIC-20 game has not progressed any further, I didn't have the time and energy to think up something, but plenty still remains of this month so hopefully I'll get anywhere before the end of it.

September 22, 12:30 (GMT+2)

Finally I have returned to the VIC-20 game, though I'll admit not very much has happened in the past few weeks. I asked myself which programming language to use: BASIC, machine code or even C. I settled for a mix with BASIC for the main part, variables and text handling, and machine code for any routines that need to be fast.

I have made a machine code program that sets up the graphics, reorganizes the start of BASIC and executes rest of the program from there.

Apparently a BASIC program that loads to $xx01 needs to have the byte at $xx00 cleared in order for the interpreter to run it.

As you can see from the image, in particular if you click on it for full size, I'm running both screens in parallel.

Now it remains to set the rules of the game and start to implement it. With only one week left of the RetroChallenge, likely I won't reach any playable state but hopefully at least I can get some action happening.