Subject: An English PDP8?

From: [email-masked] (Kevin Murrell)
Date: Sat, 30 Apr 1994 13:52:14 +0000

I have been reading a great deal about the PDP8 in this newsgroup and a
lot of the discussion about the 8 sounded very similar to an English
Minicomputer I used to work with.

An English company, variously known as Business Computers Ltd, BCL, and
Business Computers (Systems) Ltd., produced a machine known as the
Molecular (In its last few years the name changed to the Distributor).

The machine had a word length of 18 bits, was generally programmed 
directly in machine code (without the aid of an assembler!), and was
configured with between 16K and 64K of Memory (Initially core, later
static RAM with NICAD battery backup).

Offline storage was CDC Hawk Drives, and later CDC Lark Drives.  There 
were earlier options but before my time.

A general overview of the system was

CPU				Primary Storage

A Reg                           Memory (16K to 64K)
B Reg				(Bank switched to 128K)
MA Memory Address
PC Program Counter              17bits + Parity Bit
C  Carry Flag
GT Greater Than Flag

The intruction set was in the form

17| 16| 15| 14| 13| 12| 11| 10| 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1  

OpCode(2-26)      |i/d|z/c| --------memory address---------------
OpCode(00)        | mode  |a/b| ---register microinstructions----
OpCode(01)        |a/b| function  | ------device code------------

i/d = indirect or direct addressing
a/b = Register A or B
z/c = Zero Page or Current Page

The basic memory reference instruction set was quite adequate with

Add and Subtract with or without Carry
Logical AND, OR and exclusive OR
Increment and skip in zero
Decrement and skip on zero
Load and Store
Compare and set GT Flag

All operated on either Register A or B

Jump was not unusual, but Jump To Subroutine I thought was quite unique :
JSBR transferred control to the address specified + 1.  It stored the 
return address (known as the back address) in the address specified by
the JSBR instruction.   Therefore at the end of the routine you simply
did an indirect jump through the back address!  Sounds familier?

Register instructions included Clear,Shift Left, Shift Right, Clear Carry,
Set Carry, Swap, Increment, Decrement, Skip if (Bit1=0, or Bit16=0, or Bit17=0),
One's complement.   The instructions could also be combined, for instance :

Clear carry would be        002400(8)  00 000 010 100 000 000
Left shift Reg A would be   003300(8)  00 000 011 011 000 000

These could be combined into 003700(8) 00 000 011 111 000 000
One instruction that cleared the carry flag, and left shifted Reg A

I must say that combining anything more complex than this was beyond most 
of us.

IO instructions were very limited, and very generic, there were no specific
instructions for different peripherals (such as there seem to be with the 
PDP8).  Basically there was read 8 bits from device register, write 8 bits
to device, and wait on ready flag.   

Interrupt On also functioned like the PDP8 in waiting one cycle before
enabling interrupts.    One 'clever' feature of the machine was Power Fail
handling, the machine would pick its self up and carry on automatically
after a power fail.

All moleculars had very spectacular front panels.   Lots of switches and
lights.   Even if in later models these were covered up with a smart cover, 
they were always required in actual use.   Without the benefit of any
memory protection, rogue programs ran through memory creating havoc, and
the only solution was to reload the OS bootstrap through the switches on the
front panel.    The two main OS's for the machine were really only a set
of programmers utilities to load and save blocks of core, and allocate
areas of disk for data storage.   The OS did allow multi-tasking however, and
twenty users ran comfortably on a 64K machine.  The OS wasn't pre-emptive, 
and again rogue programs stuck in a loop would stop everyone else working.
As time went on we learnt to stop the machine using the front panel and set
the PC back into an address in the OS and return to rogue task back to the
OS prompt!

Probably less than 1000 were installed, primarily onto small commercial
operations.    From a 1973 issue of Computing (UK) the cost of the machine
was quoted at between 2,200 and 22,000 UK Pounds.  This would have comparable
with the UK price of the PDP8/e and PDP8/f.

There are still some in use, but are fading fast.   My lasting memory was the
relatively small group of people that could program these machine.  We are
all grown up now and are stuck with character-less boxes running slow and over
fussy software on increasingly more over-blown machines.

No one believes that 20 users could work quite happily with a machine
with only 64k !!

----------------------------------------------------------------------------
Kevin Murrell
Sutton Coldfield
England
----------------------------------------------------------------------------

---

From: [email-masked] (Charles Lasner)
Date: 3 May 1994 13:18:17 GMT

In article <[email-masked]>,
>No one believes that 20 users could work quite happily with a machine

My newswire system runs 40 tasks in 32K.  Each could be defined as a 
terminal user.  In practice about 25 actually were.  The rest were 
special-purpose lines dedicated to some incoming or outgoing service.

A standard configuration was 4 8-channel Telcon multiplexors, 03/04 
console, PC04 reader/punch, device 66 LPT and a few "extra" lines such as 
device 40/41 KL8-JA plus limited support for a VT8E.

Some lines ran Baudot and had to be translated by table lookup, etc.  
(Also it supported Baudot variants where un-shift on space does/does not 
exist, etc.)

Any line defined to output files instead of edit them, etc. could 
additionally be defined as requiring an audit trail; this was used 
off-line for customer billing, etc.

All file outputs were fully queued and could have their priority changed 
if needed.  Also, this way the system could go down real fast and be 
restarted later without loss.  Power-fail made it all possible (this is a 
32K core machine, an -8/e!)

cjl

---

From: [email-masked] (Sean Case)
Date: 1 May 94 12:11:22 GMT

>did an indirect jump through the back address!  Sounds familier?

This was quite a common trick - after all, where are you going to put
the return address? There's no stack as such, you don't really have a
register you can spare, and you can't put more than one memory address
in an instruction. The only choice left is to put it somewhere near the
top of the subroutine, so the same address field can point to both the
routine and the return address storage.

Sean Case
--
Sean Case                  [email-masked]

"November 11 - Ned Kelly died, ahh shame Fraser shame and we all cried."
        -- The Whitlams, "Gough"

---

From: [email-masked] (John Wilson)
Date: 3 May 1994 18:43:03 GMT

In article <[email-masked]>,
>(Also it supported Baudot variants where un-shift on space does/does not 

Sigh...  Now you're making me all misty-eyed...  I used to have hundreds
of pounds of Baudot TTYs, but none of mine had the USOS option.  Those
were the days...  you had to re-send FIGS in case the receiving TTY had
USOS, and you ended your lines with CR CR LF LTRS LTRS, the extra CR was
in case the receiver's dashpot was adjusted too loose and the carriage
was bouncing off the stop, and the LTRS's were to give the machine time
to settle down after the line feed.  Just seeing a comma printed on a
model 15 gives me a warm cozy feeling...  kind of the opposite of the
feeling you get from accidentally touching the loop supply!

John KC1P

---

From: [email-masked] (Charles Lasner)
Date: 4 May 1994 13:30:02 GMT

In article <[email-masked]>,
>feeling you get from accidentally touching the loop supply!

Yes, you don't want to touch the 60 ma power supply!  Amazingly enough 
these sparky things didn't affect the PDP-8/e!

The original network was a baudot paper-tape to printer system as a 
classic news-wire, and as the system was being automated to the -8/e, 
there were still some of the original terminals out there.

By the time the -8/e system was fully operational (1978) there was still 
baudot, but it had been upgraded to a bunch of little printers that ran 
at 112.5 baud and definitely had usos and no delay problems.

The paper-tapes were almost phased out, but were now all ASCII, so they 
got read into the PC04 and some serial readers.  (Basically there was 
little baudot traffic incoming, and it only came from a lone telex 
infrequently.  The paper-tape of that traffic would be read into a 
Facit-Addo reader that had a translate-to-ASCII mode, so to the -8/e it 
looked like another ASCII serial reader.  An alternate station on the 
Facit also took care of the twx input, also seldomly needed.

Most of the input traffic came from modems by then (other than the bulk 
of the in-house editted stuff, etc.)

cjl