Post Reply 
HP 9872T Trouble Shooting
03-01-2023, 07:27 AM
Post: #15
RE: HP 9872T Trouble Shooting
After many many years, the riddle has been solved.

I strongly believe that there is nothing wrong with the printer itself, but the program ROM has failed.

The 9872C and its companion 7220C have a 16bit multiplexed address/data bus, so it needs two 8-bit x 8096 ROMs to store the control program (actually the 7220C has two more ROMs as it needs an additional 2K words of program memory). Both plotters have a very similar architecture and internal layout, but the main PCB is different (one has the HP-IB interface, the other has RS232). The ROMs are predictably different as well, but as we shall see not *very* different.

In the problematic 9872C, the MSB ROM is totally flaky. For some locations it returns different values each time it is read, and for others the returned value may be corrupted.

I am looking for the binary images of 9872C ROMs to replace the failed ROMs.

In the mean time I had a look at the code , comparing the code in the 7220C ROMs with what I could read from the 9872C ROMs.

The CPU is a custom HP processor (predictably) consisting of the BPC unit from the famous hybrid processor used in the 9825 calculator. The part in the two plotters is identified as the 1818-2500 and it has the 15-bit version of the BPC. Fortunately the manual for the NMOSS-II hybrid is available on the bitsavers archive, so I could write a quick and dirty disassembler for the BPC.

The BPC uses the first 32 words of memory (0000 - 001F) as "registers", so the code starts at address 0020 hex.

Looking at the 7220C startup code

Code:

0020  F060    CMA                   ; two's compliment of A-Register
0021  0081    LDA 0081           ; 
0022  3016    STA Reg2           ; Register 22 which is the Serial interface Register
0023  2081    ADA 0081           ; so I am guessing it is initializing the serial i/f here
0024  3016    STA Reg22
0025  2081    ADA 0081
0026  3016    STA Reg22
0027  2081    ADA 0081
0028  3016    STA Reg22
0029  7C82    SSS 002B          ; here is the interesting bit, it looks for the state of the test switch
002A  E97A    JMP 017A,I        ; and branches to the 'normal' code
002B  69B5    JMP 01B5           ; or the test code (blinking the diagnostic LEDs)

and here is the code I extracted from the broken 9872C ROMs (note that this code is corrupted).

Code:

0020  FC60    SBP 0020           ; <------- skip if B-Register is positive
0021  0084    LDA 0084
0022  3016    STA Reg22         ; Register 22 which is the HP-IB interface Register
0023  2084    ADA 0084
0024  3C16    STB Reg22
0025  2084    ADA 0084
0026  3016    STA Reg22
0027  2084    ADA 0084
0028  3C16    STB Reg22
0029  7C82    SSS 002B          ; here it also checks the state of the test switch
002A  E8D5    JMP 00D5,I
002B  E8D7    JMP 00D7,I

So the code looks more or less the same, initializing the HP-IB control register and checking for the state of the test switch. But in this case we see that the instruction at 0x0020 has changed from a CMA to an SBP 0020 which is a conditional branch instruction. If the contents of Register B are non-zero (i.e. bit 15 is zero) then jump to address 0x0020. Voila! Since the BPC has been reset, the B Register is zero and the SBP 0020 jumps to ... 0020, i.e. to itself, looping for ever.

Great, so the printer stays in reset state with large chunks of its logic uninitialized, which is probably what causes the Y-axis motor to hum loudly.

I am waiting for some parts to allow me to swap the boot ROMs with EEPROMs so that I can carry out more testing of the unit. Ultimately I hope to be able to load working code into the EEPROMs and hopefully this will get the 9872C working again.

Keep fingers crossed.

Vassilis

http://www.series80.org
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
HP 9872T Trouble Shooting - husmann - 06-09-2018, 07:19 PM
RE: HP 9872T Trouble Shooting - husmann - 06-09-2018, 09:56 PM
RE: HP 9872T Trouble Shooting - cruff - 06-09-2018, 11:48 PM
RE: HP 9872T Trouble Shooting - husmann - 06-10-2018, 01:31 PM
RE: HP 9872T Trouble Shooting - rprosperi - 06-10-2018, 02:11 PM
RE: HP 9872T Trouble Shooting - cruff - 06-10-2018, 04:29 PM
RE: HP 9872T Trouble Shooting - husmann - 06-10-2018, 08:05 PM
RE: HP 9872T Trouble Shooting - cruff - 06-10-2018, 09:37 PM
RE: HP 9872T Trouble Shooting - husmann - 06-10-2018, 10:49 PM
RE: HP 9872T Trouble Shooting - husmann - 06-13-2018, 11:38 PM
RE: HP 9872T Trouble Shooting - husmann - 06-14-2018, 09:41 PM
RE: HP 9872T Trouble Shooting - husmann - 06-10-2018, 06:47 PM
RE: HP 9872T Trouble Shooting - husmann - 06-16-2018, 10:10 PM
RE: HP 9872T Trouble Shooting - vassilisprevelakis - 03-01-2023 07:27 AM
RE: HP 9872T Trouble Shooting - cruff - 03-01-2023, 01:28 PM



User(s) browsing this thread: 1 Guest(s)