PDP12.ORG Logo

PDP-8 Minis
PDP-8/I
PDP-8 (0)
PDP-8/A
PDP-8/E (3)
PDP-8/F
PDP-8/I
PDP-8/L
PDP-8/M (2)
PDP-8/S (0)
Reference
PDP-11 Minis
PDP-11/R20
PDP-11/10
PDP-11/20
PDP-11/R20
PDP-11/23
PDP-11/34
Reference
PDP-12 Minis
PDP-12 Front View
PDP-12
Reference
Calculators
Front View of HP-9100
HP-9100B
Monroe 630
Tektronix 909
Test Equipment
Front View of HP-3440
GR-1683
HP-3440
Marconi 2955B
Miscellaneous
Front View of IBM 360 Front Panel
Help the Museum
About...
Contact Us
Hosted by KRTEN.COM

[PREV] [NEXT]

The Restoration of the PDP-8/I Minicomputer (PAGE 10)


First Successful Program! -- 2003 11 05


Once the power supply was fixed, I then decided to try and deposit data into memory. This was successful in bank 1 (the second 4k) but not in bank 0. The symptom was that the deposit would happen, but an EXAM of bank 0 would just cause the FETCH light to come on, and that was it. Turns out it was a broken M360 card; I had one in spares and was able to replace it. Next, turns out the second core plane was damaged; another rummage through the spares turned up another core plane. At this point, I was able to deposit and examine memory -- but found a stuck bit. Bit 4000 was always zero (the MB front panel correctly showed the bit when depositing, but would always show it as zero when reading). After much swapping of cards, a G021 was diagnosed as bad. The one I had in spares also turned out to be bad :-( Luckily, the PDP-12 had a good G021, so I borrowed one. At this point, I was able to run a simple program:


0000 2010 ISZ 0010 0001 5000 JMP 0000 0002 7001 IAC 0003 5000 JMP 0000

In case you're not familiar with PDP-8 assembler, the ISZ instruction means "increment and skip if zero," which effectively increments memory location 0010 from 0000 through 7777, and then skips the next instruction (the JMP 0000 to perform the loop). This creates an nice delay, and, once every 4096 iterations, causes the instruction at location 0002, IAC, ("increment accumulator") to run. Finally, there's a JMP 0000 to get back to location zero again. This causes the accumulator to count up at a reasonably slow pace so that you can see it go.

This program of course found another bug -- a carry in the accumulator wasn't happening. Swapping around M220 boards pointed to the defective board (I don't have any spare M220's).


M220 Card Fixed -- 2003 11 06


Another dead chip! This time it was a 7474 flip-flop. Turns out, it wasn't just the carry in the accumulator that wasn't happening; there was simply no way to turn on that particular bit, and since that bit's value is fed back to the adder (7482), if the bit was always zero, it would appear like the carry didn't work. What led me to the conclusion that it was the 7474 flip-flop was that nothing would light the accumulator bit light -- an OSR, an IAC, various shifts, etc. These all came in on different channels on the M220 card via 7453/7460 gates, so the common failure point was the flip-flop.


More stuff is broken when more stuff works -- 2003 11 07


After being able to run a few test programs, I found a bunch of things that I can put on my "to fix" list:

  • One M220 card doesn't deal well with rotates. Rotating a "1" in is fine, but rotating a "0" in results in the "0" becoming "stuck". Oddly, this card increments the AC and PC just fine, and works with AND and TAD... This one is a pain; it looks to be a problem that's common across this card, and yet, replacing common components (the 7482 adder) didn't solve it...
  • Something bad is happening with the core memory. Two planes (an original one, and one from spares) are completely dead -- depositing anything and then examining it always shows a zero. The other core plane allows some small number of things to be deposited, but doesn't do this reliably for a larger number of items (the exact mode is being diagnosed).
  • And don't get me started on the EAE (Extended Arithmetic Element, the KE8I option) -- AC -> MQ transfers seem to work, but MQ -> AC doesn't, nor does the rotate AC/MQ, ...

Oh well, all part of the fun and games of antique computer restoration! :-)

[PREV] [NEXT]

Latest Updates
Master Reference
PDP-12 is alive!
New machine: PDP-8/L

Contact us This page was updated on Fri Feb 19 00:10:08 EST 2010 © 2000-2007 by Robert Krten.
All rights reserved.
Areas of expertise: 8044, 8051, ARC/CBS, ARCNet, ARM, ASM-86, Automated Disassembly, Avanza, Avionics Software, awk, bash, Bell 103, Bell 202, BITBus, Bootloaders, C, Call Processing, Caller ID, CF-UTTH, Clear Thinking and Common Sense, Client/Server, CMR-91, Code Analysis, Cold Standby, Computer Based Training, Course Developemnt, Course Presentation, CRS-1, curl, cvs, Czech Language, Databases, Data Acquisition, Data Recovery, Decompilation, Debugging, Distributed Processing, DMS-100, Documentation, Drivers, DSP, DTMF, E.164, Embedded Systems, Emulation, Equinox, expect, Fault Tolerance, FFT, Filesystems, Firewalls, Fractals, FreeBSD, FSK, Gammacell 40/1000/3000, Graphics, GSR-12000, Hardware, High Availability, Home Automation, Hot Standby, HTML, HTTP, IDA Pro, IIDS, Image Processing, In-Service Upgrade, Industrial Automation, Infrastructure, Internationalization, iRMX-86/286, ISBT-128, Kernels, ksh, Ladder Logic, Lexical Analyzers, Linux, Loggers, m4, make, Medical Devices, Memory Constrained Environments, Message Passing, Microcontrollers, MIDI, MIL-STD-2167A, NNTP, OpenBSD, Optimization, OrCAD, Oscilloscopes, PABX, Parallel Processing, Parsing, PDP-8, Photon, Porting, POSIX, POVRay, Powerpoint, PowerPC, Preprocessor, Process Control, Program Flow Analysis, Project Management, Prototyping, Public Speaking, QNET, QNX 2, QNX 4, QNX 6 (Neutrino), Radarsat, rcs, Realtime Techniques, Recursive Descent Parsers, Regression Testing, Regular Expressions, Requirements Analysis, Resource Managers, Restoration, Reverse Engineering, Scripting, Security Systems, sed, Serial Protocols, SGML, Simulation, SMDR, SMTP, Soldering, svn, SX-20, Synthesizers, System Architecture, T.4, T.30, TCL, TCP/IP, Technical Presentations, Technical Writing, Telecoms, Testcases, Testjigs, Text Processing, Threads, Tools, Traceability Matrices, TTL, UNIX, Utilities, UUCP, Validation Protocols, Vaulting, VAX/VMS, vi, Virtual Filesystems, Warm Standby, wget, Wirewrap, X-10, X.25, x86