|
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 |
|
.
|