ROM (EPROM) adapter for the PET-2001
====================================
Install upto four additional ROM sets using 16 KB EPROMs
(27128). The adapter plugs into the CPU socket of the PET
mainboard (the adapter carries the CPU afterwards).
Advantage: no soldering has to be done on the PET board,
the original ROMs can stay in place and the adapter can be
removed without problems.

Files in this package
---------------------
README.TXT   - this file
schema.gif   - schematic diagram of the adapter
pcb.gif      - PCB layout (solder side view)
               160x100 mm (picture resolution is 600 dpi)
assembly.gif - PCB assembly (parts side view)

Technical description
---------------------
The adapter basically acts like an octal switch between the
CPU data bus (D0-D7) and the original PET hardware (RAM, I/O,
ROM). The purpose is to switch the data lines to one of the
EPROMs if the ROM area is addressed by the CPU.

There are two possible situations:

(1) The CPU addresses the ROM in the range $C000-FFFF.

    The logic "cuts" the data lines from the original PET
    hardware and activates one of the EPROMs instead.
    The CPU will only see the content of the selected EPROM.

(2) The CPU does not address ROM.

    The logic disables all EPROMs and puts the data lines
    in the desired direction to the original PET hardware.
    The CPU will now access the PET RAM or I/O chips.

Notes: the PET has I/O chips in the address range $E800-$EFFF.
Thus the adapter logic excludes this memory area from (1) and
treats it like (2).

If the adapter is switched off (S1), the data lines will
always get through to the PET board during the CPU
data fetch (Phi2=Low). The original ROMs must be kept
installed then.

The adapter should work in any 6502 system, but the
covered ROM memory range ($C000-$FFFF with the 2K hole
at $E800-$EFFF) may be insufficient in non-PET systems.

Parts list
----------
    1 x PCB of the switchboard (160x100 mm, single sided)
    1m wire (0.8 mm diameter)
    1 x DIP adapter socket 40 pin
    1 x DIP socket 40 pin
    1 x DIP socket 20 pin 
    1 x DIP socket 16 pin
    2 x DIP socket 14 pin
    4 x DIP socket 28 pin (EPROMs)
    1 x 3 pin connector (5,08 mm)
    2 x 5 pin connector (2,54 mm)

    1m cable with 5 or 9 wires (remote switch)
    1 x switch 1-0-1
    1 x switch 4-to-1
    2 x push-buttons (optional)

    1 x 1 kOhm, 0.25 W
    4 x 10 kOhm, 0.25 W
    4 x 100 nF
    1 x 10 F/25V (Electrolytic)

    1 x 74 LS 00
    1 x 74 LS 32
    1 x 74 LS 42
    1 x 74 LS 245
    4 x 27128 EPROM

If you cannot get a 40 pin DIP adapter socket, try to get
a 40 pin wire wrap socket.
    
Assembly notes
--------------
You should start soldering the wires (unfortunately 22 wires
were necessary). Note that some wires are covered with DIP
sockets afterwards. You should be very careful in the area
between the CPU and the EPROM sockets as there are most of
the wires to solder. Then insert the connectors, DIP sockets
and solder them. Proceed with the passive components. After
soldering you can install the TTL and EPROMs.
The last step is to open the PET, remove the 6502 CPU from
the socket, push it into the socket on the switch board and
place the switch board in the CPU socket on the PET board.

You must find yourself a way for the mechanical installation
of the adapter (it has to be fixed by a screw or something).
If you do not move your PET very often it might be OK just
to plug the adapter into the CPU socket and hope that it
will not slip out.

The best way to install the switches S1 and S2 (optional
the buttons T1 and T2) is to use a little plastic box and
a cable to connect the switches to the adapter.
You really should *not* drill holes in your PET case.

EPROM notes
-----------
Each ROM set covers the range $C000-$FFFF (16 KB) and must
be programmed into one 27128 EPROM.
The area $E800-EFFF has to be included in the EPROM, although
it cannot be read by the 6502 CPU.

Offset in EPROM   PET memory location  Comment
$0000-$0FFF       $C000-$CFFF          4 KB ROM
$1000-$1FFF       $D000-$DFFF          4 KB ROM
$2000-$27FF       $E000-$E7FF          2 KB ROM
$2800-$2FFF       $E800-$EFFF          I/O (no ROM)
$3000-$3FFF       $F000-$FFFF          4 KB ROM

I suggest that you fill the range $2800-$2FFF in the EPROM
with the value $FF. Intelligent EPROM programmers (all I know)
will skip this byte value, so programming will take less time.

You can install a 40xx ROM, but you need additional ROM
in the range $B000-$BFFF (not covered by the adapter).
However, the video output will look disturbed if 40xx ROMs
are used in an unmodified PET-2001: the 40xx series has
an improved video logic and their ROM routines neither wait
for vertical retrace (faster output) nor disable the screen
during scrolling (flickerless scrolling).

Options
-------
The switch board has two additional connectors (T1 "RESET"
and T2 "NMI"). You can connect push buttons here.
The RESET line can be used with all PETs, but the NMI line
can only be used with the PET-2001 if a patched ROM is
installed (the original ROM does not provide a suitable
NMI vector). 

If you install the NMI button (T2), the jumper JP1 must be
open and R5 must be installed.

History
-------
This board is in use in my PET-2001 since 1987 with the
following ROMs installed:

  [1] PET-2001 (individual patches)
  [2] CBM-30xx (from a CBM-3032)
  [3] CBM-40xx (from a CBM-4032)  (*)
  [4] empty    (waiting for a CBM-50xx...) 
  
(*) I slightly modified the PET video logic (the video RAM
    access has to be synchronized). The additional 40xx ROM
    area $B000-$BFFF is stored in a static CMOS RAM extension
    that has a battery ("Pseudo ROM")

Author
------
Helge Pretzlaff
email: h.pretzlaff@tecs.de

