Previous Thread
Next Thread
Print Thread
Page 1 of 7 1 2 3 4 5 6 7
HP Integral PC (1985) WIP #107819
11/05/16 07:04 PM
11/05/16 07:04 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
Quoting hp_ipc.cpp
Quote:

Integral Personal Computer (HP9807A)
Hewlett-Packard, 1985

This is a portable mains-powered UNIX workstation computer system produced by Hewlett-Packard and launched in 1985
Basic hardware specs are....
- 68000 CPU at 7.96MHz
- 9" amber electro-luminescent display with a resolution of 255*512 pixels
- Internal 3.5" floppy disk drive (likely Sony OA-D32W)
- HP ThinkJet ink-jet printer integrated into the top of the case. This is a modified HP2225B Thinkjet printer
- 90-key detachable keyboard
- ROM: up to 512Kb standard and an additional 512Kb of option ROM
- RAM: 512Kb, arranged as 256Kbx16. RAM is expandable externally to 7Mb
- Real Time Clock
- Speaker
- External I/O bus with two I/O ports for interfaces and memory modules. Expandable to maximum 10 ports with two 5-port Bus Expander Modules
- HP-IB (IEEE-488) bus
- Runs the HP-UX Operating System III or System V (in ROM)


Useful links:

bitsavers:/pdf/hp/integral/00095-90126_Integral_Personal_Computer_Service_Jan86.pdf

bitsavers:/pdf/hp/hp-hil/45918A-90001_HP-HIL_Technical_Reference_Manual_Jan86.pdf
HP-HIL MLC, SLC datasheets

bitsavers:/pdf/sony/floppy/Sony_OA-D32_Microfloppy_Service_Nov83.pdf
OA-D32W

http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1983-01.pdf
HP-IL issue

http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1985-10.pdf
IPC issue

http://www.coho.org/~pete/downloads/IPC/burst/Freeware/IPC_Driver_Writers_Disc/hp-ux.5.0.0
kernel namelist

http://www.coho.org/~pete/downloads/IPC/burst/Languages/IPC_C_Language_Preprocessor/include/scrn/dispi.h
GPU command definitions

http://www.hpmuseum.net/display_item.php?hw=122
overview, manuals, software (incl. Tony Duell's schematics)

http://www.ambry.com/hp-computer-model/9807A.html
replacement parts

http://www.brouhaha.com/~eric/hpcalc/chips/
chip part numbers

Software to look for:

"00095-60978 Service ROM - Used in trobleshooting the integral PC" via ambry
"00095-60925 Service ROM" via service manual
"00095-60969 Service Diagnostic Disc" via service manual
"00095-60950 I/O Component-Level Diagnostic Disc" via serial interface service manual

Last edited by shattered; 11/05/16 07:05 PM.
Re: HP Integral PC (1985) WIP [Re: shattered] #107820
11/05/16 07:52 PM
11/05/16 07:52 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
Status: only floppy controller (2797) and rtc (mm58167) chip drivers are in MAME. The rest are missing:

- GPU -- HP custom, p/n 1LL3-0005. Microcoded, can be dumped without decapping (this is mentioned in HPJ article).
- HP-IB (aka IEEE488) -- TMS9914
- HP-IL printer controller -- HP custom, p/n 1LJ7-0015, based on Saturn CPU from HP calculators, apparently.
- HP-HIL master link controller (for keyboard and mouse) and HP-HIL bus. Keyboard and mouse also have MCUs (COP422's).
- Sound generator -- COP452

MMU (also custom) does something that m68k core couldn't handle -- it inverts A23 bit only in user mode (i.e. FC2=0). I've added a callback to the code, not sure how clean that is. I'm also using my bus error hack (https://github.com/mamedev/mame/issues/1394).

So far, kernel completes low-level init but then faults and resets (actually, the symbol name hints that it tries to enter MACSbug...), so no pretty pictures yet smile

Re: HP Integral PC (1985) WIP [Re: shattered] #107821
11/05/16 08:22 PM
11/05/16 08:22 PM
Joined: Mar 2001
Posts: 16,020
USA
R
R. Belmont Offline
Very Senior Member
R. Belmont  Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,020
USA
Check e.g. sun2.cpp/sun3.cpp for guidance on how to handle M68k custom MMUs in a way that won't get your driver rejected smile

Short version: map the entire address space to mmu_r/mmu_w. In those functions, call the m68k to get the current FC, and handle accordingly.

Re: HP Integral PC (1985) WIP [Re: shattered] #107826
11/06/16 01:14 PM
11/06/16 01:14 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
I thought that GPU could be used in other HP products of the era; but no, HP 9816 (m68k-based machine from 1982) uses a 6845, and HP 150 (a MS-DOS compatible with touch screen and Personal Applications Manager software) uses a CRT9007 plus GDC-3091 gate array (via http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1984-08.pdf), and framebuffer is directly accessible to CPU.


Last edited by shattered; 11/06/16 02:59 PM.
Re: HP Integral PC (1985) WIP [Re: shattered] #107848
11/07/16 06:32 PM
11/07/16 06:32 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
Progress smile low-level GPU init puts this sprite on screen and then kernel resets.


Re: HP Integral PC (1985) WIP [Re: shattered] #107862
11/09/16 05:03 AM
11/09/16 05:03 AM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
Look, it's a different sprite now smile Kernel has started up and window manager is running, but text output (along with everything else) is not written yet. Now I need to find or write a bitblt() implementation for monochrome framebuffers...


Re: HP Integral PC (1985) WIP [Re: shattered] #107863
11/09/16 02:20 PM
11/09/16 02:20 PM
Joined: Mar 2001
Posts: 16,020
USA
R
R. Belmont Offline
Very Senior Member
R. Belmont  Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,020
USA
Nice! What was the issue with the exception frame?

Re: HP Integral PC (1985) WIP [Re: shattered] #107864
11/09/16 06:09 PM
11/09/16 06:09 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
I didn't call set_buserror_details(). And unmapped RAM was handled incorrectly.

a few facts
- Tony Duell's schematics and those in service manual use different chip numbering. Maybe a different hw rev?
- startup code probes the printer and if it's absent, sets _desktop variable (at 0xf191c0) to 0. Haven't checked how this matters.
- there's serial init code that assumes a serial card is present at 0x710000, but it's not called from anywhere, apparently
- memory region at 0xf80000 is marked 'reserved' in the doc, but code does probe it and can use the extra memory there, apparenly
- there's a _toMACSbug routine, but there's no MACSbug smile It just jumps to reset vector.

Re: HP Integral PC (1985) WIP [Re: shattered] #107865
11/10/16 10:36 PM
11/10/16 10:36 PM
Joined: May 2012
Posts: 476
S
shattered Offline OP
Senior Member
shattered  Offline OP
Senior Member
S
Joined: May 2012
Posts: 476
+ basic text output



btw, GPU init code tests its memory size; apparently there was a version with 4x of video memory (128 KB).

Re: HP Integral PC (1985) WIP [Re: shattered] #107866
11/11/16 12:25 AM
11/11/16 12:25 AM
Joined: Mar 2001
Posts: 16,020
USA
R
R. Belmont Offline
Very Senior Member
R. Belmont  Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,020
USA
Awesome!

Page 1 of 7 1 2 3 4 5 6 7

Who's Online Now
2 registered members (Heihachi_73, MAMEBase), 93 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,587
Posts112,169
Members4,817
Most Online283
Oct 11th, 2018
Powered by UBB.threads™ PHP Forum Software 7.6.1.1
(Release build 20180111)
Page Time: 0.042s Queries: 15 (0.023s) Memory: 5.7279 MB (Peak: 5.9496 MB) Zlib enabled. Server Time: 2018-10-18 00:54:39 UTC