OK, the manual is giving wrong info about POST so I started looking at signals on the cpu card. Clocks and supply voltages were good, everything else hung either high or low; no activity. The manual troubleshooting procedures assume you have an HP 5004A Signature Analyzer, which I do not have. Knowing the cpu is good, I started replacing chips which *should* have output to the test points. This is one of those moments when hoarding 74LS chips for all these years came in very handy. And sure enough signals started to appear. Activity on the address bus after replacing those buffers. Then the data bus transceivers (though their falling edge looked messy). This went on for the better part of two days by which time I had replaced all but four chips on the board. Some kind of cascade failure had occurred on this thing. By now a couple dots showed in the displays at powerup, but still no boot.
At this point I stopped to study the digital systems memory map, cpu opcodes, and ROM files, looking for more clues. When the 6800 wakes up, it reads a 16 bit pointer from the very top of the 64kB memory space (locations FFFE and FFFF), which has to contain the address of the Reset routine. Low and behold, that address is F815, which is in ROM 1 (U1) address space, and not U3. So let's look at what the machine does on boot. I did a quick "hand disassembly" of the boot area of ROM 1.
--------------------------
HP 4275A boot code
Boot Address (from Reset vector @ FFFE) : F815 (on ROM 1)
F815: JMP F876
:
: some more JMP's and code...
:
Reset: ; startup routine (on powerup or when reset line pulled low)
F876: LDS 03FF ; Set stack pointer 1/4 way into SRAM addr space
LDA A 0FFF ; get the last bye of SRAM into accumulator A
CMP A FF ; if all bits high, SRAM is defective or not installed,
BEQ F3 ; branch if == (-115 bytes relative) to abort
LDA B FC ; otherwise continue
STA B 800B ; initialize something on A7 board ( peripheral control = 8xxx address space)
LDA B F4
STA B 8009 ; and another
CLR 016C ; zero a byte in SRAM
CLR 016D ; another
CLR 016E ; "
CLR 016F ; "
CLR 0181 ; "
; ... it does this a few more times ...
Loop: CLR 0189 ; last one
LDA A 01B7 ; load byte at 01B7 into A (startup set it to zero...)
F8C0: NOP ; Why NOP? It works around a bug in pre- Nov '77 6800's before setting or clearing interrupts.
EOR A B6 ; Exclusive OR A with 10110110
SEI ; set interrupt mask (disable interrupts)
STX 81FE ; store index register to something on A7 board (peripheral control)
BEQ 26 ; branch if == zero +38 bytes rel.
CMP A FD ; a bunch of compares follows
BEQ 40 ; branch if == +64 bytes rel.
CMP A FC
BEQ 50 ; branch if == +80 bytes rel.
CMP A FB
BEQ 15 ; branch if == +23 bytes rel.
CMP A FA
BEQ 0A ; branch if == +10 bytes rel.
CMP A F9
BEQ 09 ; branch if == +9 bytes rel.
CMP A F8
BEQ 08 ; branch if == +8 bytes rel.
BRA A7 ; otherwise an unconditional jump -39 bytes (to Loop)
.
.
.
------------------------
And we see here a bunch of housekeeping code that makes sense for what should happen at bootup.
It first sets the stack pointer into the static RAM address space.
Then it reads the last byte of the SRAM to see if the chip is absent, or defective, and aborts if so.
And there is our first clue. The first thing tested is the SRAM. If no "P" appears, it means the SRAM is bad, not U10 like the manual says. And that makes logical sense; if it has no ram to work with, it can't continue.
You have to wonder, did they print that by mistake, or is it intentionally misleading? Why? Because U10 is an OPTION ROM !! Many 74A and 75A's don't have it.
Anyway, I need to check the SRAM chips.
The pic below shows the cpu card with most of the IC's that were replaced. Third installment follows.