Computers Overview
Commodore PET
    Adverts
    Articles
    Documents
    Options
    Photos
    Projects
    Repairs
        Keyboard
        PIA
        RAM
        RAM (Extended)
    Software
Sinclair ZX80
Sinclair ZX81
BBC Micro
Commodore 64
Sinclair ZXSpectrum
Memotech MTX
Memotech CP/M
Tatung Einstein
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Commodore PET (Model : CBM 8096)

RAM Expansion Board Repair

Introduction

I had previously fixed a RAM fault on the main board of my CBM 8096 and the system appeared to be working correctly with the 64kByte RAM expansion board fitted. However, the PET does not test the memory on the expansion RAM board at boot time and I had not been using any software that could take advantage of the extra memory, so a hidden memory fault had gone undetected until I tried to use programs that access the expansion RAM board.

 Infocom was a software company that produced a number of Interactive Fiction (adventure) games for home computers in the 1980s, probably the most famous titles are the Zork series of adventures. Infocom games were written in a programming language called ZIL (Zork Implementation Language or Zork Interactive Language) that compiled into a byte code able to run on a standardized virtual machine called the Z-machine. By porting the Z-machine, Infocom was able to release versions of its games for the most popular home computers of the time, including the Commodore 64, Apple-II, Atari 800, etc. but not the Commodore PET.

Edilbert Kirk has written a Z-machine interpreter that allows Infocom adventures to be run on a number of PET/CBM computers, including the CBM 8032 and CBM 8096 / 8296. Edilbert's Z-machine interpreter was the first program that I tried that actually makes use of the expansion memory board. When I tried to load some of the Incofom games though, I was not able to do so and the interpreter reported various "Internal Error" messages and then rebooted the machine.

Edilbert advised that the error messages meant that the interpreter had detected the additional memory and tried, unsuccessfully, to use it to create a RAM disk to hold the game data. Edilbert suggested that my problems could be due to differences between the 8296 (that had used for testing) and my 8096 in the way that RAM bank switching was done.

Nils was also on the case and suggested that there were no material differences in the RAM paging and that a RAM fault was more likely. Nils sent me an image of the 8296D system test disk and I was able to use it to run some diagnostics on the expansion RAM.

 

The "8296d diagnostic" program generates the menu shown :

The menu options invoke a corresponding program on the disk, the majority of which are specific to the CBM 8296, however, the "Burn-in Diagnostic" test runs a RAM & ROM diagnostic which is broadly compatible with the 8096.

(Screenshot from the VICE emulator in 8096 mode)
Typical output from the "Burn-in Diagnostic" test is shown :
RAM Status Hardware
System Board   32768 Bytes ROM Status
  Video RAM  
Expansion Board Block 0 (16kB) I/O Port Status
  Block 1 (16kB)  
  Block 2 (16kB) Timer Status
  Block 3 (16kB)  
Screen mock-up of the results from my CBM 8096 :

The Editor ROM "error" is because I have a customised Editor ROM
 
The errors in the video RAM area are likely due to the fact that the 8096 has a different VRAM configuration than an 8296

The significant result though, is that the program is flagging Bit 1 of expansion RAM block 3 as BAD.
The 64kB RAM expansion board

A ribbon cable attached to the grey IDC connector is connected to a header plug installed in the CPU socket on the system board and the CPU is relocated to the RAM board.

The 64kB of RAM is made up of 4 x 16kB blocks, each block consisting of 8 x ITT 4116 16k x 1 bit DRAMs.
I have not been able to find a circuit diagram for the 64kB RAM board, but Dave Curran had previously traced the signals from the CPU to the RAM and established that the DRAMs closest to the top edge of the board were for bit 7 and the ones at the bottom of each column, closest to the centre of the board was for bit 0.

The RAM is installed in board columns A to D, in the absence of any published data, it was logical to assume that column A would be for bank 0 and column D for bank 3.
Having replaced the DRAM in the UD6 position, the system passed the diagnostic program tests and I was able to use Edilbert's Z-machine interpreter to load Infocom games as  shown :
Including Hitchhiker's Guide to the Galaxy

 

.

 

mailto: Webmaster

 Terms & Conditions