Getting Programs for a Commodore PET
Having now repaired a broken Commodore Pet, the final stage was to get some software for it.
The Pet 3032 has no disk drives so I needed cassette software. I was looking for enough programs to fill two sides of a 60 minute audio cassette. Could this be found on the Web? A search found a site with 12 PET game disk images and one utilities disk image, all in D64 format. Using the VICE emulator in Pet 3032 mode, I checked out all the programs and copied ones of interest to two new disk images.
So far so good, but how to get them into the PET?
As with the ROM checks, the Commodore 64 played a role here. With a XA1541 adaptor it was a simple matter to transform disk images into REAL disks for use in the C64. Once I had the real disks (containing the PET programs) I then loaded them into the C64, one at a time, and saved to cassette. This was fairly straightforward.
Figure 1. Workbench set up for PC<-->C64<-->PET software transfer
So now I had a full cassette of PET software saved by the C64 and readable by the Pet via the datasette.
Readable yes, but not runnable.
As explained on this FAQ, BASIC programs saved on the C-64 will not load in the right location on the PET to be seen by the BASIC interpreter. PET BASIC starts at location 1025 ($0401 in hex) and the C-64 starts at 2049 ($0801H). In essence then you have to load the program into the PET, move it to the right location, then save it back out to tape to get your permanent copy.
Here's what was done on the PET to achieve this:
- Type NEW to clear any old programs
- Enter 0 REM
- LOAD in the program you want to convert
- When loaded, enter the machine language monitor by entering "SYS 1024"
- Display the first part of the BASIC by typing: "M 0401 0408"
- Now change the line-link to the memory location of the program to be moved; use cursor keys to move up and change the first two two-digit numbers to read: :0401 01 08 00 00 8F 00 00 00
- Press return to change the bytes then enter "X" to exit the monitor.
- Type LIST, you should see the 0 REM followed by the program.
- Enter 0 to delete line 0 which will move the BASIC to its proper place.
- Save the program.
As you can imagine, this was laborious, but it worked! After a few weeknights I had a full cassette load of working PET programs.
Figure 2. "Fire!" on the PET
The titles I gathered were:
The Pet 3032 is now fully loaded and a complete example of a cassette-enabled unit. Excellent!
20th February, 2009