From ard@siva.bris.ac.uk Mon Mar 21 10:39:53 1994
Received: from siva.bris.ac.uk by nfs1.digex.net with SMTP id AA11027
  (5.67a8/IDA-1.5 for <rdd@access.digex.net>); Mon, 21 Mar 1994 10:33:51 -0500
Received: by siva.bris.ac.uk (MX V3.3 VAX) id 3177; Mon, 21 Mar 1994 15:35:53
          GMT
Date: Mon, 21 Mar 1994 15:35:49 GMT
From: "PDP11 Hacker ....." <ard@siva.bris.ac.uk>
To: rdd@access.digex.net
Message-Id: <0097BC58.6F6095B6.3177@siva.bris.ac.uk>
Subject: ftp site : hardware FAQ
Status: RO

PERQ 2 HARDWARE FAQ LIST
------------------------

The following questions are answered on this list

General
-------
What models of PERQ 2 existed, and what are the differences?
How do I open up a PERQ 2?
What are all the circuit boards for?
Is there a colour code for the handles in the card cage?
Are there any custom chips in a PERQ 2?
What are the pinouts of the I/O ports?
What sort of hardware expansions are possible?
What are the I/O port addresses?
What do the DDS numbers mean?
What are ICL-coded chips?

CPU
---
Can you give an overview of CPU operation?
What is the format of the microcode word?
What are the commands for the microcode sequencer?
What is a short jump, long jump, leap?
What is the Raster-op machine?
How does the CPU do input-output operations?
Can I modify a 24 bit CPU into a 20 bit CPU? How about the other way?
How do I debug a WCS failure
What are the edge connectors on the front of the CPU board?

Mem
---
What memory boards existed?
Can I increase the size of my memory board?
Can I use a landscape board with a portrait monitor, or vice-versa?
What are the useful links on the memory board for?
What is the trim-pot on the front of the memory board for?

EIO
---
What are the main sections of the EIO board?
What is an NIO board?
There are 4 serial channels. What are they used for?
How is the sound produced?
Where is the ethernet address stored?
How do I set the links for different types of hard disk?

OIO
---
What is an OIO board?
What versions of OIO existed?
What sort of Laser printer do I need?
What are the PERQLink connectors for, and what are the pinouts?
What other boards went in the OIO slot?
Can I add tape streamer support to an OIO board?
What sort of tape streamers were supported?
Is there any reason why the PERQlink connectors are similar to the DEC DR11?

Monitors
--------
Safety precautions.
What are the scan rates of a PERQ monitor?
How do I open up a monitor?
What are the presets in the monitor?
What do I do if the hybrids in my T1 monitor fail?
My landscape monitor flickered a bit, and went blank. Help!
What's the EHT unit in a landscape monitor?

Keyboard/Mouse
--------------
What are the interfaces on the keyboard/mouse?
How do I open up the mouse and tablet, and what's inside?
What are the custom chips in the keyboard?

Disks
-----
How do I clean the floppy disk heads?
What is a DIB?
Can I add a 2nd floppy drive?
How about a second hard drive?
What are the pinouts of the 8" floppy drive?
Can I use a 5.25" Floppy drive?
Does double-density operation work?

Power supplies
--------------
Safety precautions
Are the PSU's the same between different models?
What are the ratings of the PERQ 2 PSUs
What voltages can I get from the outputs on the back of the PERQ?
What are the fuses on in the PERQ 2 psu?
How do I open up the PSU?
What normally fails in the PSU?

---------------------------------------------------------------------
And so, On with the Questions
---------------------------------------------------------------------

General
-------
What models of PERQ 2 existed, and what are the differences?
There were 3 different PERQ 2's : 
T1 - 20 bit CPU with 16K WCS, 8" micropolis hard disk, often 1M RAM and
     portrait monitor. This machine (aka ICL 8222) was distributed by the SERC
     in the UK to many UK universities, and is relatively common in the UK
T2 - Basically a T1 with a 5.25" ST506 hard disk. 1M or 2M RAM, portrait or
     landscape monitor. This machine (aka ICL 8223) is probably the most common
     PERQ 
T4 - A 24 bit CPU, giving 24 bit addressing, although only 4Meg memory boards
     existed. This machine is very rare (about 10 were made).
-----

How do I open up a PERQ 2?
It's easy. The screws on the bottom edge of the front and sides retain those
panels, which can then be removed. Removing the front and left side panel
allows access to the card cage (remove the boards by pulling the handles), the
PSU (remove it by unplugging the 4 connectors at the  back, removing the 2
screws at the front edge, and sliding it out), and the floppy drive (unplug
the 3 cables, remove 3 fixing screws (2 at the front, 1 at the rear), and slide
it out). To remove the hard disk, it's best to remove the 6 large screws
holding the top half of the back panel, carefully swing it out, and disconnect
the cables.
-----
 
What are all the circuit boards for?
In the card cage, there are 5 slots. From the left, they are : 
1) CPU option (empty)
2) CPU board
3) Memory board (also video circuitry)
4) EIO (input/output)
5) OIO (optional Input/output).
The other boards in the case are
DDS (Digital Diagnostic system) - top right above card cage, with 7 segment
displays - displays hardware error codes.
Disk adaptor (DIB) - mounted on the hard disk.
Floppy disk board - on the drive itself.
Power supplies
-----

Is there a colour code for the handles in the card cage?
Yes. The code is : 
CPU option - Blue
CPU - White
Memory - Green
EIO - Red
OIO - Yellow
Some cabinets have a coloured label under the card cage which gives this
information. Also, the boards will not fit in the wrong slots.
-----

Are there any custom chips in a PERQ 2?
There are many proms and PALs on all boards of the PERQ 2, but none of these
are copy-protected, so backups can be made for personal use. The same applies
to the EPROM in the keyboard, and the microcontroller in the tablet. The real
custom chips are the floppy disk read amplifier (on the shugart 851 disk
drive), the keyboard drive/sense chips (in the keyboard itself), and hybrid
circuits in the KME T1 monitor.
-----

What are the pinouts of the I/O ports?
The RS232 ports are wired as DTE's and the following pins are used  :
1 - Gnd, 2 - TxD, 3 - RxD, 4 - RTS, 5 - CTS, 7 - Gnd, 8 - DCD, 15 - TxC in
17 - RxC, 20 - DTR, 24 - TxC out
The GPIB bus is silly. The pins of the 25 pin D-connector on the PERQ have to be
wired to the same _numbered_ pins of the amphenol plug , pin 25 is not used.
So, you can't use a simple IDC cable. The pinout is : 
1 - D1, 2 - D2, 3 - D3, 4 - D4, 5 - EOI, 6 - DAV, 7 - NRFD, 8 - NDAC, 9 - IFC, 
10 - SRQ, 11 - ATN, 12 - Gnd, 13 - D5, 14 - D6, 15 - D7, 16 - D8, 17 - REN
18-24 - Gnd
The ethernet ports are standard - 
1 - Gnd, 2 - Coll+, 3 - Tx+, 5 - Rx+, 6 - Gnd, 9 - Coll-, 10 - Tx-, 12 - Rx-
13 - +12V
The Display D-connector seems to have the following pinout, but check pins 8
and 15, which are swapped on some machines! - 
1 - +12V, 2 - Speaker audio, 3 - Gnd, 4 - Hsync, 5 - Gnd, 6 - Vsync, 7 - Gnd, 
8 - Tablet Data, 9 - Tablet Clock, 10 - Gnd, 11 - N/C (loop?), 12 - NC (Land L)
13 - Keyboard Data, 14 - Gnd, 15 - +5V
The Display BNC carries the video data on it's centre pin.
The Laser Printer connector is for a Canon CX direct engine, and carries the
following signals : 
1 - Dot +, 3 - Clock, 4 - Status, 5 - Print, 6 - Status Request, 7 - PFSP, 
8 - Rdy, 9 - PRND,  10 - Top, 12 - Bd sync+, 13 - Dot-, 15-22 - Gnd, 
23-24 - Bd Sync - 
The pins on the circuit boards are numbered from 1(top) to 100 on the component
side, and 101-200 on the track side. For I/O expansion, the useful pins are the
same on the OIO and CPU option slots and are : 
156 - IOD15, 56 - IOD14, 157 - IOD13, 57 - IOD12, 158 - IOD11, 58 IOD10, 
159 - IOD9, 59 - IOD8, 161 - IOD7, 61 - IOD6, 162 - IOD5, 62 - IOD4, 163 - IOD3,
63 - IOD2, 164 - IOD1, 64 - IOD0, 166 - IOA7, 66 - IOA6, 167 - IOA5, 67 - IOA4,
168 - IOA3, 68 - IOA2, 169 - IOA1, 69 - IOA0, 71 - IO Enable L
IOD = IO Data, IOA = I/O address, and IOA7 is a read/write line. 
Pins 50,150,51,151,52,152 are +5V. Other pins ending in 0 or 5 seem to be
ground, but check with an DMM.
-----

What sort of hardware expansions are possible?
Almost anything. There are enough spare I/O addresses to allow quite a number
of extra I/O ports on a board placed in the CPU option slot. Some suggestions
include SCSI, I2C, more serial ports, MIDI, and more. 
If you don't want to mess about inside the PERQ, you can use the GPIB as an
expansion bus. Also, the perq-link connectors on the OIO board are a 16-bit
parallel I/O port.
-----

What are the I/O port addresses?
Here are all the I/O port addresses that are known, with bit definitions where
apropriate. Note that there is some ambiguity about the sense (active high or
low) of the port address lines, and most PERQ software in fact uses an iverted
high bit from that given here, which represents the hardware

Octal         Hex      Function
EIO card : 
134:136       5C:5E    Load usec clock
130:132       58:5A    Load Bit Counter
124:127       54:57    Load DMA Address
336:337       DE:DF    Read usec clock
332:333       DA:DB    Read Bit Counter
105           45       Load Interrupt Enable
                       Bit     Meaning
                         3      External Address
                         2      Not Reset
                         1      Microprocessor Ready Interrupt Enable
                         0      Microprocessor Interrupt Enable (to PERQ)
104           44       Load uproc data
103           43       Load Net Enable
                       Bit     Meaning
                         0      Enable Network Interrupt
102           42       Load Net Control
                       Bit     Meaning
                         8      Go
                         6      Receive All
                         5      Not Reset Net
                         4      Transmit
                         3      Enable bit count
                         2      Enable usec clock
                         1      Enable usec interrupt
101           41       Load FP Inst (Not implemented)
100           40       Load DMA Channel
110:117       48:4F    Load Net File
325           D5       Read uproc status
                       Bit     Meaning
                        15      Micro IOD out ready
                         7      Micro Ready
324           D4       Read uproc data
323           D3       Read disk status
                       Bit     Meaning
                        10      Drive type bit 1} 11=8"micropolis, 10=14"
                         9      Drive type bit 0} Shugart, 00=5.25" All types
                         8      Index/2
                         7      Drive unit ready
                         6      Seek complete
                         5      Drive (write) fault
                         4      Seek Error/Track 0 (depends on drive type)
                         3:0    Disk controller status?
322           D2       Read net status
                       Bit     Meaning
                         7      Carrier sensed
                         6      PIP????
                         5      usec clock overflow
                         4:0    Net controller status
321           D1       Read FP Result (Not implemented)
320           D0       Read FP status (Not implemented)
123           53       Load disk control 2
                       Bit     Meaning
                         7      Drive select 0/DIB address 0
                         6      Drive select 1/DIB address 1
                         5      BA0/Dir/Data5
                         4      BA1/Fault Clr/Data4
                         3:0    Data3:Data0 
122           52       Load disk control 1
                       Bit     Meaning
                         7      T2 bit
                         6      Bus Enable/Disk Step/Load
                         5      T bit
                         4      Disk Interrupt Enable
                         3      Not disk reset
                         2:0    Disk function
121           51       Load disk register file data
120           50       Load disk register file counter
EIO buffers are enabled for all ports 100:137 octal (40:5F hex) and 300:337
octal (C0:DF hex)

Mem : 
140          60        Load Line counter
141          61        Load Display Address counter
142          62        Load cursor address counter
143          63        Load video status
                       Bit     Meaning
                       15:13    Map select
                        12      Write bad parity
                        11      Enable parity interrupt
                        10      Enable display?
                         9      Enable vertical sync
                         8      Enable cursor 
144          64        Load cursor X posn
345          E5        Read CRT signals
                       Bit     Meaning
                         7      Landscape display
                         4      Line couner overflow
                         2      Loopthrough - low if all 3 boards in place
                         1      Vertical sync
                         0      Horizontal sync
346          E6        Read Hi address parity
347          E7        Read low address parity

OIO:
000:003      00:03     Load SMD 4
004:007      04:07     Load Streamer 4 (and Canon Interface)
 004          04       Load Canon Control
                       Bit     Meaning
                         4      Enable Canon Interrupt
                         3      Read Status
                         1      Reset Canon Interface
                         0      Not Blank
 005          05       Load Canon Length Counter
                        (Ports 4,5 may be swapped - I'll check)
014:017      0C:0F     Load bit counter
024:027      14:17     Load Canon 4
 024          14       Margin Counter control
 025          15       Left Margin
 026          16       Right Margin
030          18        Load SMD data
031          19        Load PERQ Control register for ethernet
                       Bit     Meaning
                         8      Go
                         6      Receive All
                         5      Not Reset net
                         4      Transmit
                         3      Enable Bit Counter
                         2      Enable usec clock
                         1      Enable usec Interrupt
                         0      Enable Net Interrupt
032          1A        Load SMD 2
033          1B        Load SMD 3
034          1C        Load PROM 1
035          1D        Load PROM 2
036          1E        Ext Dev 1 Wr
037          1F        Ext Dev 2 Wr
210:213      88:8B     Read Canon 4
 210          88       Read Canon Status
 211          89       Read Canon Interrupt 
                       Bit     Meaning
                         3      Status Full
                         2      Ready
                         1      Canon PRND
                         0      End of Band 
214          8C        Read SMD
215          8D        Read Streamer 1
216          8E        Read Streamer 2
217          8F        Read net status
                       Bit     Meaning
                         7      Carrier sensed
                         6      CRC Error
                         5      usec clock overflow
                         4      Net Controller Status
                         3      Busy
                         2      Receive Transition
                         1      Collision
                         0      PIP 
220:223      90:93     Ex Dev 41 Rd
224:227      94:97     Ex Dev 42 Rd
230:233      98:9B     Ex Dev 43 Rd
234:237      9C:9F     Ex Dev 44 Rd
240          A0        Read Link status
                       Bit     Meaning
                         3      Transmit Done Input
                         2      Flag Input
                         1      External Data cycle (Data Available)
                         0      Data to bus
041          21        Load Link Control
                       Bit     Meaning
                         3      Transmit done output
                         2      Flag output
                         1      Ext Data to bus
                         0      Data Cycle
242          A2        Read Link Data
043          23        Write Link Data
044          24        Write Loopback
245          A5        Read Loopback
200:237      80:8F     Read I/O test PROM

Multibus Adaptor :
000          00        Load Control Register
                       Bit     Meaning
                        7      Read cycle, Not write cycle
                        6      IO cycle, Not Memory cycle
                        5      Enable PERQ to do multibus cycles
                        4      Enable DMA
                        3      Initialise Multibus
                        2      Byte, Not word I/O
                        1      Enable Multibus Interrupt
                        0      Enable Interrupt on cycle complete
001          01        Write Data Register
002          02        Write High 8 address lines
003          03        Write Low 16 address lines and start bus cycle
006          06        Enable Interrupt lines
007          07        Write DMA Base (High 8 bits of DMA address)
212          8A        Status
                       Bit     Meaning
                       15      Interrupt pending
                       8       Non existant memory
                       5:3     Multibus Interrupt number
                       2       Cycle Interrupt
                       0       Cycle complete
213          8B        Read Data Register
-----

What do the DDS numbers mean?
The DDS (Digital Diagnostic System) is the 3-figure numeric display that is
reset to 0 on a press of the reset/boot switch, and is incremented by the CPU
on a clear stack microinstruction. It is incremented at various points during
the bootstrap, and should the bootstrap fail, the number reached on the DDS can
give a clue as to what the failure is. Here's a (partial) list of DDS codes.
0 - CPU not running, Clock failed, stack reset failed
1 - Branches fail
2 - Data path fail
3 - Dual address failed on registers
4 - Y register failed
5 - Constant/carry failed
6 - ALU failed
7 - Conditional branch failed
8 - Looping failed
9 - Writable control store failed
10 - Waiting for disk boot
11 - Memory data failed
12 - Memory address failed
13 - Disk not ready
14 - Could not boot from disk (or memory failed)
15-20 - bad interrupts from disk
The system now executes software off the disk, so the DDS codes become
OS-specific.
-----

What are ICL-coded chips?
Some UK perqs have chips with an ICL code, rather than the standard number.
Here's an equivalent list for those I've come across - please e-mail me of any
updates or corrections to this list.

  ICL              Standard Equivalent
  ---              -------------------
  AZ               74S00
  BZ               74S20
  DZ               74S74
  IZ               74S112
  M20              74S138
  M21              74S175
  M25              74S153
  M4Z              74S280
  UZ               74S10
  Y11              74S37
-----

CPU
---
Can you give an overview of CPU operation?
The CPU consists of a 20-bit ALU (24 bit on the T4), the inputs for which come
from the A-mux and B-mux multiplexers. The B-mux is relatively simple, and
switches the B-input from either the register selected by the Y field, or a
constant. The A-mux selects between the register selected by the X field,
memory data, an 8-byte queue of memory opcodes (selected by the BPC counter),
I/O data, etc. The output of the ALU is fed back to the X-register, to the
memory address register, the memory data register, and the I/O ports.
There is a 16-level stack onto which the output of the ALU may be pushed, and
which may be popped into the A-mux. 
The system is controlled by a RAM-loaded microcode (stored in the writable
control store - the WCS) and sequenced by an AMD2910 sequencer circuit. The
execution sequence may be modified by a condition code, or by various multi-way
jumps (cf the forks in a DEC PDP11), such as the interrupt vector instruction,
or the dispatch, which is used to decode opcodes.
A raster-op machine is provided to speed up graphics operations, and
incorporates a 16-bit barrel shifter that may also be used independently for
arithmetic operations.
There are several other facilities that are only of interest if you are
attempting to repair or program the processor at a low level, and which I would
be happy to discuss in a more specialised posting.
-----

What is the format of the microcode word?
The microcode word is divided into several fields, the meaning of which is as
follows : 
bit 47                                                bit 0
     XXXXXXXXYYYYYYYYAAABWHUUUUFFSSSSZZZZZZZZCCCCJJJJ

X - X register number (Destination) 
Y - Y register number (Source)

(Registers <77 Octal ORed with Base register).

A - AMux Control

0 - Shifter output
1 - Nextop (Opfile[BPC])
2 - IOD (IO Data Bus)
3 - MDI (Memory Data)
4 - MDX (Memory Data Extended - to bits 16-19)
5 - Ustate
6 - X Register
7 - Expression Stack

B - BMux Control

0 - Y Register
1 - Constant (Y field, + Z*256 if long constant)

W - Enable write to X Register

H - Hold (Prevent IO from DMA). Also used for jump control

U - ALU

0 - AMux
1 - BMux
2 - NOT(A)
3 - NOT(B)
4 - A AND B
5 - A AND NOT B
6 - A NAND B
7 - A OR B
10 - A OR NOT B
11 - A NOR B
12 - A XOR B
13 - A XNOR B
14 - A + B
15 - A + B + Carry
16 - A - B
17 - A - B - Carry

F - Function

     SF Use              Z Use
0   Special Function     Constant/Short Jump
1   Memory/Extended SF   Short Jump
2   Special Function     Shift Control
3   Long Jump            Long Jump

S - SF (Special Function)
Long Jump - Top 4 Address Bits
Special Function
0 - Long Constant
1 - Shift On R
2 - Stack Reset
3 - TOS := R
4 - Push Estack
5 - Pop Estack
6 - CntrlRasterOp = Z
7 - SrcRasterOp = R
10 - DstRasterOp = R
11 - WidthRasterOp = R
12 - LoadOp (OP = MDI)
13 - BPC = R
14 - WCS[15..0] = R
15 - WCS[31..16] = R
16 - WCS[47..32] = R
17 - IOB Instruction (Input/Output)

Memory Control/Extended Special Function
0 - R = Victim Latch
1 - Multiply/Divide Step
2 - Load Mult/Div Register
3 - Load Base Register
4 - R = Product/Quotient
5 - Push Long Constant (Estack)
6 - 2910 Address Inputs = Shift
7 - Leap Address Generation
10 - Fetch 4R
11 - Store 4R
12 - Fetch 4
13 - Store 4
14 - Fetch 2
15 - Store 2
16 - Fetch
17 - Store

Z - Data field 

C - Condition

0 - True
1 - False
2 - IntrPend
3 - Spare
4 - BPC[3] - OpFile Empty
5 - C19 - No carry from bit 19
6 - Odd (ALU bit 0)
7 - ByteSign (ALU bit 7)
10 - Neq (Not Equal)
11 - Leq (Less / Equal)
12 - Lss (Less)
13 - Ovf (Overflow)
14 - Carry (Carry out of bit 15)
15 - Eql (Equal)
16 - Gtr (Greater)
17 - Geq (Greater / Equal)

J - Jump
             
0 - Jump0
1 - Call
2 - NextInst (H=0), ReviveVictim (H=1)
3 - Goto
4 - Pushload
5 - CallS
6 - Vector (H=0), Dispatch (H=1)
7 - GotoS
10 - Repeatloop
11 - Repeat 
12 - Return
13 - JumpPop (H=0) LeapPop (H=1)
14 - LoadS
15 - Loop
16 - Next
17 - ThreeWayBranch
-----

What are the commands for the microcode sequencer?
The 4K perq 1 CPU used an AMD 2910 sequencer, which has 12 address lines.
Although the 16K CPU used in the PERQ 2 series needs a 14 address line
sequencer, the AMD2910 is still used, but extended by a 2-bit extension built
from TTL, PROMs and PALs. The AMD2910 data sheet is the best reference on what
the sequencer commands are, which correspond to the J-field in the microcode
word.
-----
  
What is a short jump, long jump, leap?
These refer to different sizes of jumps in the CPU microcode.
A short jump is one in which only the bottom 8 bits of the address are changed.
A long jump is one in which the bottom 12 bits of the address are changed. Both
of these only use the 2910 sequencer. A leap may change all 14 bits of the
microcode and uses the 2-bit sequencer extension as well.
-----

What is the Raster-op machine?
The Raster-op machine is a small finite state machine in the CPU which is
programmed to perform operations on graphics bitmaps. Conceptually, it is
similar to the Blitter in an Amiga. It contains a 16-bit barrel shifter, and
combiner ROMs that perform the logical operation between the bitmaps.
Unfortunately, there seems to be little documentation on this device.
-----

How does the CPU do input-output operations?
An output is easy - the ALU calculates the data to be sent to the port, the
microcode Z-field specifies the I/O address (bit 7 = 0 implies an output
port), and the CPU microcode decoder asserts the IO Enable signal. For an
input, 2 microinstructions are needed. The first one specifies the I/O address
with bit 7 set, whereupon the I/O enable signal is asserted, and the data from
the port is stored in a latch on the CPU. The contents of this latch may then
be processed by the ALU via the A-mux
-----

Can I modify a 24 bit CPU into a 20 bit CPU? How about the other way?
24 bit (T4) CPU's may be downgraded into 20 bit CPUs by moving 2 links on the
board. The first is just behind the ALU bank, and selects whether the final
carry comes from bit 19 or 23. The other is the unmarked link a bit below the
register bank, which selects the CPU identity bit. 
To upgrade a 20bit CPU into a 24 bit CPU is much more difficult. You have to
provide an extra ALU, X and Y register for the extra 4 bits, rebuild the carry
logic to accommodate the extra input, and then re-build the A-mux completely.
I'll post any more information that I discover on doing this.
-----

How do I debug a WCS failure
If your DDS stops at 9, the quickest way that I've found to find the dead RAM
is to buy 8 new 16K * 1 45ns RAMS, and then to push them over each bank of 8
rams in turn until the DDS gets to 10 or beyond. Then do a binary split on that
bank to find the dead RAM, and replace it. This method has worked on every WCS
failure I've had so far.
-----
 
What are the edge connectors on the front of the CPU board?
The Edge connectors on the front of the 16K CPU board provide access to the
microcode address and data buses, and were intended for connecting to a logic
analyser for debugging microcode. It appears that the pin numbering is slightly
odd though - The convetional way to number the pins is : 

1 3 5 7 ...... 47 49
2 4 6 8 ...... 48 50

The PERQ CPU pins seem to be numbered :

26 27 28... 48 49 50
1  2  3 ... 23 24 25

The end pins are numbered on the component side of the CPU board, and provide a
reference. I'm not sure if the other pins have any connections though. I alos
don't know if this pin-numbering scheme was deliberate, or an error in
production.
Anyway, here are the signals that I know about.
JA is the top 50 pin connector, JC is the 26 pin connector at the bottom
Un = microcode data bit n, UUAn = microcode address bit n
JA1 - U0, JA3 - U1, JA5 - U2, JA7 - U3, JA9 - U4, JA11 - U5, JA13 - U6, 
JA15 - U7, JA17 - U8, JA19 - U9, JA21 - U10, JA23 - U11, JA25 - U12,
JA27 - U13, JA29 - U14, JA31 - U15, JA33 - U16, JA35 - U17, JA37 - U18,
JA39 - U19, JA41 - U20, JA43 - U21, JA45 - U22, JA47 - U23, JA49 - U24

JB2 - U25, JB4 - U26, JB6 - U27, JB8 - U28, JB10 - U29, JB12 - U30, JB14 - U31,
JB16 - U32, JB18 - U33, JB20 - U34, JB22 - U35, JB24 - U36, JB26 - U37, 
JB28 - U38, JB30 - U39, JB32 - U40, JB34 - U41, JB36 - U42, JB38 - U43,
JB40 - U44, JB42 - U45, JB44 - U46, JB46 - U47, 
JB47 - Disable microcode store (tie low to disable internal WCS and roms).

JC1 - UUA0,  JC3 - UUA1, JC5 - UUA2, JC7 - UUA3, JC9 - UUA4, JC11 - UUA5
JC13 - UUA6, JC15 - UUA7, JC17 - UUA8, JC19 - UUA9, JC21 - UUA10, JC23 - UUA11
JC25 - LD MIR' A (Strobe signal at the end of every microcode execution cycle).

UUA12, UUA13 do not seem to be brought out anywhere.
-----

Mem
---
What memory boards existed?
PERQ1's originally used a 256K board that was soon increased to 0.5Mbyte. The
1Mbyte portrait board was developed from this, and was the first board to be
really supported in the PERQ 2. It drove portrait monitors only. This is the
board that turns up in a lot of UK PERQ 2 T1's. This board was then modified
(basically by adding a phase-locked loop for a faster dot-clock) to drive the
landscape monitor. Some of these 1M landscape boards had the PLL hand-wired on
prototyping board. These boards used 4164 64K DRAMs. I have been told that
there was a 2Mbyte board that was portrait only, although I have never come
across one, or seen any references to it. The standard 2Mbyte board had the PLL
for landscape monitors, although they could be trivially modified to drive a
portrait monitor. This design seems to be the most common PERQ 2 memory board,
especially in PERQ 2 T2 machines. There are 2 main versions, which were built
on the same PCB pattern - just a few links were swapped. I was told that one
version was developed by ICL, and the other by 3RCC, but as they are _so_
similar, I find this hard to believe.The first design had a Mostek hybrid at
each ram location which contained 2 4164 chips. The next revision had half as
many 41256's, in every other column, but otherwise very few modifications.
The PERQ T4 4Mbyte board had a full set of 41256's and a few links swapped to
enable the extra address line. It was otherwise identical to the 2Mbyte board.
-----

Can I increase the size of my memory board?
Non-trivially. The 1Mbyte boards are almost impossible to expand, as there are
no free locations for the extra chips (I now _know_ I'm going to get e-mail
from people who've piggy-backed rams and hacked the address decoder...). The
2Meg board with 41256's can be increased to 4Meg, but this is only useful if
you have a 24-bit CPU.
-----
 
Can I use a landscape board with a portrait monitor, or vice-versa?
The scan frequencies are the same between monitors, so if you don't mind a
terribly distorted picture, you can just plug in and go. 
The 2 Meg(any version), and 4Meg landscape boards can be modified to drive a
portrait monitor in the following way  :
Locate U270 - a  10104 chip. Pins 14 and 15 are bent up from the PCB, and pin
15 carries a twisted pair line, while pin 14 is not connected. Bend pin 14 so
that it contacts pin 15, and solder them together (leave the twisted line
connected as well). Now find the empty jumper position J15, near U218 (a 74S08
chip). Put a 2-pin jumper plug there. Fit a link on J15 for portrait monitors,
remove it for landscape. Due to timing problems, it's a good idea to change
U220 (a 74x157 multiplexer) as well - fit a 74S157 or 74F157 for landscape and
a 74LS157 for portrait. Otherwise, you seem to get missing columns.
-----

What are the useful links on the memory board for?
J15 was mentioned in the portrait conversion.
JP5,9,4 are fitted on the 2Meg (256K chips) board. These should be moved to
JP3,JP10,JP7 on a 4Meg board. JP16 is removed on a 2Meg(256K chips) board. This
enables the bankA chips). It is fitted on 4Meg boards, which enables address
bit 2 to select bankA or bankB. If you have a failing 4M memory board, move the
above links to reselect it as a 2Meg board, and remove JP16. This will select
bank A only. If you ground the pin of JP16 that is connected to R25 (a 10k
resistor), you will select bank B only. In this way, you can isolate a failing
memory chip to 1 of the banks.
-----

What is the trim-pot on the front of the memory board for?
It sets the centre frequency of the Phase lock loop on the memory board. It's
best not to twiddle unless you have video timing problems, when a small tweak
may restore missing columns.
-----

EIO
---
What are the main sections of the EIO board?
The main sections of the EIO are: 
6 channel DMA controller for the microprocessor, Net Tx, Net Rx, Hard disk, and
2 external channels (used by the OIO)
A Z80-A microprocessor controlling : 
   4 serial channels
   GPIB port
   Floppy disk controller
   Real time clock
A finite state machine for the ethernet.
A finite state machine for the hard disk
-----

What is an NIO board?
It's an EIO board without the chips for the ethernet circuit.
-----

There are 4 serial channels. What are they used for?
The 4 channels are controlled by 2 Z80 SIOs. The channels are used as follows:
SIO 1
  A - RS232 port A on the rear of the cabinet
  B - Tx - bitstream to the sound circuit
      Rx - Tablet input
SIO 2 
  A - RS232 port B on the rear of the cabinet
  B - Tx - Not used
      Rx - Keyboard data
-----

How is the sound produced?
The synchronous bitstream from the SIO is fed, along with its clock into a
motorola MC3417 PCM codec IC. The analogue output of this device is filtered by
an Intel 2912 filter IC clocked at 2MHz, and then amplified by an LM380 before
being fed along the display cable to the speaker.
The codec is wired permanently as a PCM -> audio device. I've thought about
using a second one (or more likely an MC34115) hooked up to the tablet port
(which is the second half of the same serial channel) for sound input, but have
never got round to it.
-----

Where is the ethernet address stored?
As far as I know, it's in the PROM NET13, which certainly differs between
machines.
-----

How do I set the links for different types of hard disk?
I am informed that the PERQ 2 does not support the 14" shugart disk. The links
to set are JP2 and JP3 near the front edge of the board (JP1 and JP2 on a
24-bit EIO board from a T4), and should both be fitted for 5.25" hard disks.
They should both be removed for 8" micropolis disks. Note that the CPU
microcode boot proms are different as well - MCxxxx proms for 8" and TCxxxx
proms for 5.25"
-----

OIO
---
What is an OIO board?
The OIO board is an optional input/output board that goes in slot 5 of the card
cage. Several versions were produced by PERQ systems/3RCC, and there were also
3rd party boards to go in this slot.
The original OIO board had support for a second ethernet port, a Canon laser
printer engine, and a 16 bit parallel PERQ-link.
-----

What versions of OIO existed?
>From PERQ systems/3RCC, there were 3 versions of the OIO, depending on whether
they supported the second ethernet, the Canon printer, or both. All versions
included the PERQ-link circuits. The OIO-1 contained the ethernet circuitry,
the OIO-3 contained the Canon controller, and the OIO-2 contained both. 
-----

What sort of Laser printer do I need?
The Laserprinter connector (the pinout of which is given above) was designed
to drive a Canon CX engine, as was used in the original LBP8A1, HP laserjet,
etc. Unfortunately, Canon will not reveal the connections to the engine
controller board in these printers, so that modifying such a printer for use
with the PERQ is difficult.
-----

What are the PERQLink connectors for, and what are the pinouts?
The PERQLink is a 16-bit parallel I/O port that is connected to the 2
connectors on the front of the OIO board. It was originally designed to allow
one PERQ to download boot microcode from another, during factory testing, and
all PERQ 2 series microcode checks for an active perqlink early in the boot
sequence. However, it can also be used as a 16 bit user port, and the  pinouts
are : 
Connector A - all inputs, Connector B - all outputs. Even # pins are ground
1 - Xmit done (rdy), 3 - Flag, 5 - RCSR->bus, 7 - Buf Cyc (strobe), 
9 - Data 15, 11 - Data 14, etc, until  37 - Data 1, 39 Data 0.
-----
 
What other boards went in the OIO slot?
There was a wire-wrapped QIC02 tape streamer controller, produced in small
quantities by PERQ systems. I think the extremely rare Multibus adaptor fitted
in here also, and linked the PERQ backplane to an external Multibus card cage.
I am collecting a list of 3rd party boards at the moment, but there was
certainly a datacopy 300 CCD camera controller.
-----

Can I add tape streamer support to an OIO board?
Yes. There is enough space on the unused area to fit the necessary chips, and
the I/O addresses do not clash, provided you don't use the tape and the Canon
laserprinter at the same time (they share an output port). I'll look up the
details and post them. The 26 pin connector on the OIO board is unused, and
makes an ideal place to connect the streamer to.
-----

What sort of tape streamers were supported?
The PERQ systems tape streamer was an Archive Sidewinder in a case with PSU.
Almost any QIC02 streamer should work. If anyone has a list of those that
definitely do or don't, please e-mail it to me.
-----

Is there any reason why the PERQlink connectors are similar to the DEC DR11?
Yes. The OIO board has remained basically unchanged in design from the PERQ 1.
Originally, PERQ microcode was developed on a PDP11 system, and the result
downloaded to the PERQ via a DR11 (I guess a DR11-A) and an OIO board with
PERQlink. I am trying to obtain information on this.
-----

Monitors
--------
Safety precautions.
The Cathode Ray Tube in the monitor is dangerous. It contains a high vacuum,
and could implode violently if cracked. Also, there are high voltages
(typically 17kV), and the tube itself is the smoothing capacitor. Take extreme
care if you decide to repair your monitor - there are few enough perq fanatics,
and we don't want to loose any. Please ask if you are not sure - there are no
stupid questions when it comes to repairing monitors.
-----

What are the scan rates of a PERQ monitor?
Veritcal : 60Hz
Horizontal : 64kHz.
These rates apply to both landscape and portrait monitors. All signals (syncs
and video drive) are at TTL levels.
------

How do I open up a monitor?
1) Unplug it from the power supply (mains or 55V from the PERQ), and let it
discharge for about 15 minutes
2) Remove the screws on the back cover, and slide the cover off
3) On a portrait monitor, remove the screws holding the metal plates round the
back of the CRT, and _carefully_ pull the plates out
4) Remove the fixing screws for the stand, and take the stand off.
5) Most of the electronics is held by screws going through the base of the
monitor.
The KME portrait monitor (PERQ T1's) contains a PSU regulator heatsink at the
back, the video circuitry on the tube base, and a PCB in the base which
contains the scanning circuits and the flyback transformer. This monitor is
conventional, except that it uses hybrid circuits in almost all stages.
The Moniterm landscape monitor has the main PCB on the right (looking from the
back), but the flyback circuit is not used to produce the EHT (it does produce
supply voltages for video amplifier and tube heater). The EHT is produced by a
separate EHT unit in the black box on the left. There is also a simple
unregulated PSU.
-----
 
What are the presets in the monitor?
Landscape - from the rear of the PCB : 
P1 - Width
P2 - Horizontal hold
P11 - Horizontal dynamic focus
P8 - Brightness
L1 - Horizontal linearity
P7 - DC focus
P9 - Vertical DC centering
P10 - Vertical dynamic focus
P6 - Vertical linearity
P5 - Vertical top-bottom linearity
P3 - Vertical hold
P4 - Height
(On the EHT module - set EHT voltage).

Portrait KME
(on power heatsink - set power supply voltage - do not tweak!).
VC1 - Horizontal phase
L1 - Horizontal frequency
L2 - Horizontal linearity
VR1 - Vertical hold
VR2 - height
VR3 - Vertical linearity - bottom
VR4 - vertical linearity
VR5 - vertical shift
VR7 - Horizontal hold
VR8 - focus
(tube base L1 - video peaking)
-----

What do I do if the hybrids in my T1 monitor fail?
Pray and panic :-). Seriously, I've not found a replacement, and can't trace
KME who made the monitor. Your best bet is to redesign that stage of the
monitor without the hybrid
-----

My landscape monitor flickered a bit, and went blank. Help!
Bob Davis (rdd) has covered the horizontal phase locked loop problems in his
FAQ,which cause flickering, but not a blank screen. No, this indicates a
failure of the (potted !) EHT module in the monitor, which happens all too
often. The only cure seems to be replacement of the EHT module, and new ones
are very difficult to find. Somebody will have to design an easy-to-build
replacement for this part. In order to check, measure the voltages on the Blue
and yellow wires coming from the EHT unit (take care). The yellow wire should
carry +1000V, and the blue wire -110V. If either or both of these are low, the
EHT unit has almost certainly failed. The tube final anode voltage should be
about 17kV, and you can check this with a suitable meter. This also goes low
when the EHT module fails.
-----

What's the EHT unit in a landscape monitor?
Physically, it's a black metal box bolted to the inside of the monitor cabinet,
and connected to the tube final anode (EHT cable to the side of the tube), and
to the monitor PCB. It supplies the 17kV final anode and +1000V/-110V to the
electron gun controls. It is notorious for failing at the wrong moment.
It contains a 1 transistor blocking oscillator which drives a small
ferrite-cored transformer. The secondary windings on this transformer drive
half-wave rectifiers for the +1000V/-110V supplies and a voltage multiplier for
the 17kV supply. The 17kV output also feeds a potential divider that is fed to
a comparator. There, it's compared to a reference voltage, and used to control
the blocking oscillator, thus providing EHT regulation. Unfortunately, the
device is encapsulated in silicon rubber, and debugging/repairs seem
impossible.
-----
  
Keyboard/Mouse
--------------
What are the interfaces on the keyboard/mouse?
Keyboard - 8 bit, 300 baud Asynchronous. Pinout is: 
4 - Ground, 2 - Keyboard Data, 5 - +5V (note, pins on DIN plug numbered 
1 4 2 5 3).
The keyboard data stream is _almost_ inverted ascii for the printable
characters. For those, the control key clears the top bit when pressed. The
non-printing keys are a different though. A table of PERQ hardware keycodes is
available, should you need it. 
Mouse - 8 bit synchronous. Clock comes from EIO board in PERQ. Pinout :
1 - +12V, 2 - Tablet Data, 5 - Ground, 3 - Tablet Clock. (Pins numbered as
above).
I will have to hook a logic analyser up to these devices, and see exactly what
they send.
-----
 
How do I open up the mouse and tablet, and what's inside?
The Tablet is easy. The plastic cover just unclips, and then you remove the
screw on the bottom, and lift out the PCB. When reassembling, note that 1 piece
of cardboard goes above the PCB, the rest under it. The cables for the mouse and
PERQ plug into connectors on the PCB.
The PCB contains a 8748 microcontroller, and some control electronics. Traces
on the PCB form the transmitting matrix that produces magnetic fields that are
detected in the mouse. 
The mouse is glued together, but can be dismantled by using a sharp knife round
the underside. It contains a sense coil, and 3 microswitches for the buttons,
fitted onto a PCB.
-----

What are the custom chips in the keyboard?
There are 2 - Z1 (22-908-3B) and Z4 (22-950-3B). Both are for the Keytronics
keyboard, and were not designed for PERQ systems/3RCC.

Z1 (leftmost IC) is the keyboard Row Receiver. It contains 8 capacitive matrix
sense amplifiers, driving SR latches. The outputs of the latches drive
open-collector-with-passive-pull-up drivers, which are connected to Port 1 or
the microcontroller. Port 2 bit 4 of the microcontroller resets all 8 latches -
It's active low
Pinout is : 1 - Row 0, 2 - Row 1, 3 - Row 2, 4 - Row 3, 5 - ResetOut, 6 - Row 4
7 - Row 5, 8 - Row 6, 9 - Row 7, 10 - Gnd, 11 - Out 7, 12 - Out 6, 13 - Out 5 
14 - Out 4, 15 - Out 3, 16 - Out 2, 17 - Out 1, 18 - Out 0, 19 - Reset, 
20 - Vcc

Z4 is the column driver. It latches the lower 4 lines of port 1 of the
microcontroller on the rising (?) edge of the clock pulse, also driven by 
Port 2 Bit 4. The 4 latched bits are fed to a 12 output decoder, and then used
to drive the column lines of the keyboard.
Pinout is 1 - Col 8, 2 - Col 9, 3 - Col 10, 4 - Col 11, 5 - Clock, 6 - Sel A
7 - Sel B, 8 - Sel C, 9 - Sel D, 10 Gnd, 11 - Sync, 12 - Col 0, 13 - Col 1, 
14 - Col 2, 15 - Col 3, 16 - Col 4, 17 - Col 5, 18 - Col 6, 19 - Col 7, 
20 - Vcc
The microcontroller drives these chips in the following way.
1) Microcontroller puts out column address on port 1 (may appear corrupted at
this point, due to the fact that some lines are held low by the row receiver
chip
2) Microcontroller pulls Port 2 bit 4 low. This clears the row receiver
latches, and thus uncorrupts the port 1 signals
3) Microcontroller sets port2 bit 4. This latches the column address in Z4, and 
then allows Z1 to pull port 1 lines low
4) Microcontroller sets all of port 1 high. This enables the signals to be used
as inputs.
5) Microcontroller reads port 1, and thus sees if any of the rows were active.
Repeat the above for all 12 columns.
-----

Disks
-----
How do I clean the floppy disk heads?
Incidentally, Shugart, who made the 8" drive, do not recomend cleaning the
heads. However, no damage will occur if you are careful.
Firstly, you remove the Floppy drive from the machine (See the notes above).
Then lay it circuit-board side down, and slacken the 2 screws holding the
plastic cover over the head assembly. Remove the cover. Clean the heads using
a cotton bud (Q-tip) dipped in disk cleaner (91% propan-2-ol, 9% distilled
water). Reassemble the machine. Do not use a cleaning disk (aka sandpaper) in
any machine I'm ever likely to see, as it will ruin the heads.
-----

What is a DIB?
A DIB is a disk interface board - the PCB mounted on top of the hard disk drive
that converts the EIO signals into the micropolis interface or ST506.
-----

Can I add a 2nd floppy drive?
Not easily. The perq floppy disk controller does not use the drive select
signals (apart from Drive 0). You may be able to enable the 2nd drive by
inverting the Drive Select 0 signal and linking that to the select input on
the other drive, but you'd have to re-write all the system software, including
the z80 code file.
-----

How about a second hard drive?
This one's much easier. On a T2 or T4, you just need a second ST506 drive, the
mounting bracket, and some cables. You fit the drive on the back panel, above
the drive that's already there, remove the terminating resistor from the
existing drive (remove the DIB to gain access), and make sure it's fitted to
the new drive. You then set the drives to DS0 and DS1, use a straight 34 pin
cable to link JC on the DIB to the 34 pin connector on each drive, and 2
separate 20 pin cables to link JD on the DIB to the data connector on the
original drive and JE on the DIB to the data connector on the new drive. You'll
find a power connector for the new drive on the power cable inside the machine.
On a T1, I'm told it's possible to hang a second drive off the DIB, but I've
never tried it, and I'm not sure where you mount it. Also, 8" hard disks are
non-trivial to obtain now.
-----

What are the pinouts of the 8" floppy drive?
The important pinouts of the floppy drive are :
(All odd-numbered pins are ground)
2 - Reduce write current
10 - 2 sided (output from drive if DS disk loaded)
14 - side select
16 - In use (not used on a PERQ)
18 - Head load
20 - Index
22 - Ready
24 - Sector (Hard sectored drives/disks only)
26 - Drive Select 0
28 - DS1  }
30 - DS2  } Not used on a PERQ
32 - DS3  }
34 - Step direction
36 - Step
38 - Write Data
40 - Write Gate
42 - Track 00
44 - Write Protect
46 - Rd Data
48 - Single Density Separated Data (not used on a PERQ)
50 - Single Density Separated Clock (ditto)
-----

Can I use a 5.25" Floppy drive?
I've never tried it, but I think that a 1.2Mbyte PC floppy drive will replace
the 8" unit in the PERQ. You need to make a special cable to match up the right
signals on the 50 pin PERQ cable (to the EIO board) and the 34 pin drive
connector.
-----
 
Does double-density operation work?
On every PERQ 2 I've come across, double density operation works reliably. You
need to use quality floppy disks though.
-----
 
Power supplies
--------------
Safety precautions
All PERQ 2's use switch-mode power supplies. If you don't know what that means,
stop, read a book on electronics, and then carry on. They rectify the line
voltage and produce about 400V DC at a considerable current. This voltage is
stored on some sizable capacitors, and the residual charge is nasty as well.
Take great care if you decide to repair the PERQ 2 power supply.
Also, Check the power supply works correctly on load before you put it back in
the PERQ. If the 5V line is high, it could wipe out all the chips in the PERQ,
and that's expensive.
The PERQ T1 has 2 5V power supplies that are linked at the backplane. You have
to adjust the voltages of each power supply until they deliver equal current.
This is non-trivial,and you need a pair of 30A ammeters and some high-power
load resistors for this. Don't fiddle unless you know what you're doing.
-----

Are the PSU's the same between different models?
The T2 and T4 power supplies are interchangeable. The T1 power supply is quite
different. The T2/T4 unit has 1 5V 70A supply, and a second supply for the 12V
and 24V rails. The T1 power supply also contains 2 units, each supplying 5V at
35A. The other supply rails are divided between the units. There is a 55V
supply for the monitor on the T1 supply, but not on the others.
Do NOT swap a T1 supply with any other type.
-----

What are the ratings of the PERQ 2 PSUs
I'll have to look these up!
-----

What voltages can I get from the outputs on the back of the PERQ?
The T1 monitor DIN plug has the following pin-out.
1 - +55V, 2 - 0V, 3 - Chassis.
The T2 monitor plug provides 24V, but I'll have to look up the pinout.
The tablet power connector was designed to supply a summagraphics BP1 tablet.
It's a useful supply for home-made projects as well, and the pinout is : 
1 - +5V, 2 - +12V, 3 - -12V, 4 - 0V.
You can find some of the supply rails on the other connectors as well - see
above for the pinouts.
-----

What are the fuses on in the PERQ 2 psu?
I'll have to look that up as well, but basically its the supplies to the
peripherals - disks, keyboard, etc, and not the CPU cards.
-----

How do I open up the PSU?
Read the safety warning above!.
Firstly, remove the power supply from the PERQ, as described above. Then, cut
the cable ties holding the output cable to the back, and the ones holding the
cables to the metal strip that runs from front to back inside the PSU.
Remove the 2 screws on the back of the PSU, and the 4 screws holding the back
panel to the supply units. Ease the back panel off. Then, remove the 2 screws
holding the metal strip to the front panel, and remove this strip. Then, remove
the 4 screws holding the front panel to the supply units. Now, you can unfold
the PSU by placing it on one side, and lifting the upper supply unit and tuning
it over. You can now reach the internals of the PSU.
-----
 
What normally fails in the PSU?
PERQ power supplies are very reliable, and the only failure I've seen is the
failure of the chopper transistor (the largest power transistor in the supply).
This blew the mains fuse, but nothing else. 
Like all switch-mode power supplies, the chopper transistor will fail from time
to time, and it's worth checking the other components on the mains side when
this happens. All the components (except the transformer) in the PSU are
standard, and failures tend not to blow everything in sight.
-----

