Post Reply 
HP82143 Processor details
09-27-2023, 04:53 AM
Post: #21
RE: HP82143 Processor details
The repository for the M3870 dumper is here:

https://github.com/blackjetrock/dumper_m3780/tree/main

There's the code and the PCB files (note that a modification is needed ot get the PCB to work). the Boris and HP dumps are there as well.

Andrew
Find all posts by this user
Quote this message in a reply
09-27-2023, 05:38 AM
Post: #22
RE: HP82143 Processor details
Thanks again! I've started writing an MK3870 disassembler, based on some earlier ones I've written, including one for the Intel 8089 (not a typo!). However, I've got a lot of other spare time programming going on at the moment, so I'm not promising a working disassembler real soon.
Find all posts by this user
Quote this message in a reply
10-01-2023, 07:54 AM
Post: #23
RE: HP82143 Processor details
I have done a video of the equipment I used, it's here:

https://youtu.be/cLVAnvutmH4

and also on Hackaday:

https://hackaday.com/2023/09/30/a-1970s-...s-secrets/

Andrew
Find all posts by this user
Quote this message in a reply
11-10-2023, 10:53 PM (This post was last modified: 11-11-2023 02:27 AM by brouhaha.)
Post: #24
RE: HP82143 Processor details
I've started reverse-engineering the firmware. I've put what I've got so far into a git repository. Thus far I've figured out a little bit of the RAM usage, a little bit of the timer interrupt state machine, and a little of the communication to the NPIC chip.

There are some mysterious things in the code that may relate to a factory test mode using MK3870 GPIO pins that are not connected on the PCB. In particular, P01 (pin 4), P16 (pin 24), and P57 (pin 26) are read as inputs, and P01 is also written as an output.

There are a whopping TWO WHOLE BYTES of unused ROM, very slightly contradicting the claim in the HP Journal that "The microprocessor requirements of the 82143A printer use ALL of the 3870's capabilities." [emphasis added]
:-)

It will be interesting at some point in the future to compare the code to that of the 82162A HP-IL printer. The 82162A also uses an MK3870 series part, but I think it may be an MK3870/32 or MK3870/42, which have 3K or 4K of ROM, and an additional 64 bytes of RAM. Certainly the original MK3870 and the other variants without the added 64 bytes of RAM don't have enough RAM for the 82162A's 101-byte buffer. The extra RAM in the /x2 parts is accessed differently than the 64 bytes of scratchpad RAM in all MK3870 family parts, so the code to put characters into the buffer and get them back out must be more complicated than that of the 82143A.
Find all posts by this user
Quote this message in a reply
11-11-2023, 01:50 AM
Post: #25
RE: HP82143 Processor details
(11-10-2023 10:53 PM)brouhaha Wrote:  I've started reverse-engineering the firmware. I've put what I've got so far into a git repository. Thus far I've figured out a little bit of the RAM usage, a little bit of the timer interrupt state machine, and a little of the communication to the NPIC chip.

There are some mysterious things in the code that may relate to a factory test mode using MK3870 GPIO pins that are not connected on the PCB. In particular, P01 (pin 4), P16 (pin 24), and P57 (pin 26) are read as inputs, and P01 is also written as an output.

There are a whopping TWO WHOLE BYTES of unused ROM, very slightly contradicting the claim in the HP Journal that "The microprocessor requirements of the 82143A printer use ALL of the 3870's capabilities." [emphasis added]
:-)

It will be interesting at some point in the future to compare the code to that of the 82162A HP-IL printer. The 82162A also uses an MK3870 series part, but I think it may be an MK3872'32 or MK3872/42, which have 3K or 4K of ROM, and an additional 64 bytes of RAM. Certainly the original MK3870 and the other variants without the added 64 bytes of RAM don't have enough RAM for the 82162A's 101-byte buffer. The extra RAM in the /x2 parts is accessed differently than the 64 bytes of scratchpad RAM in all MK3870 family parts, so the code to put characters into the buffer and get them back out must be more complicated than that of the 82143A.

Excellent work. It looks like the dump was a good one, then.
Have you looked at Ghidra? It is a reverse engineering tool that can be extended to handle unsupported processors for disassembly and decompilation, fairly easily. I extended it for the 6303 processor and it was relatively painless. Although with 2K to reverse engineer it's maybe not needed.

As it looks like there's at least one more M3870 family ROM to extract in the future do you think it's worth updating the PCB with the level shifters that I needed to get the original circuit to work? At the moment anyone wanting to make a dumper would have to put those extra transistors on as a bodge.
Find all posts by this user
Quote this message in a reply
Post Reply 




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