Previous Thread
Next Thread
Print Thread
Page 1 of 7 1 2 3 4 5 6 7
#107819 - 11/05/16 07:04 PM HP Integral PC (1985) WIP  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
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.
#107820 - 11/05/16 07:52 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
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

#107821 - 11/05/16 08:22 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
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.

#107826 - 11/06/16 01:14 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
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.
#107848 - 11/07/16 06:32 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Progress smile low-level GPU init puts this sprite on screen and then kernel resets.


#107862 - 11/09/16 05:03 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
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...


#107863 - 11/09/16 02:20 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Nice! What was the issue with the exception frame?

#107864 - 11/09/16 06:09 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
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.

#107865 - 11/10/16 10:36 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
+ basic text output



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

#107866 - 11/11/16 12:25 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Awesome!

#107869 - 11/11/16 09:19 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Here's how it is supposed to look like:

Scherm by Hp-fix, on Flickr

vaxbarn had pics of newer hp-ux version at http://vaxbarn.com/index.php/collection/18-m68/55-hp-integral-pc, but they are missing now.

#107870 - 11/11/16 11:18 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Jul 2011
Posts: 93
TSCHAK Offline
Member
TSCHAK  Offline
Member

Joined: Jul 2011
Posts: 93
I had forgotten about so many of the weird ways that companies tried to put a friendly face on UNIX.

This machine was one of the more creative ones.

But I really have to wonder, was HP really trying to sell this thing as say an HP-85/86 on rocket fuel?

#107873 - 11/12/16 09:53 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
The shell they've used (PAM) is apparently a port from HP 150 -- http://www.hpmuseum.net/pdf/ComputerNews_1985_Jan15_37pages_OCR.pdf p.15.

Service manual for that one is online (at http://www.hpmuseum.net/exhibit.php?hwdoc=43), but technical manual is not (but CHM has a copy -- http://www.computerhistory.org/collections/catalog/102650462).

#107905 - 11/15/16 08:04 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
...and thanks to Al the Magic Fairy, it's now online smile

bitsavers:/pdf/hp/hp150/45625-90001_HP-150_Technical_Manual_May84.pdf


Last edited by shattered; 11/15/16 08:05 PM.
#107906 - 11/15/16 09:30 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
I've said it before, Al's better than Santa smile

#107965 - 11/21/16 08:59 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
vaxbarn's IPC page is back (http://vaxbarn.com/index.php/collection-old/269-hp-ipc)



and area fills are working now:


#107966 - 11/21/16 09:38 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Niiice!

#107987 - 11/24/16 10:28 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Hooked up the floppy, but IPC doesn't yet boot from sector-level images on coho.org.

On-disk format is not documented; apparently, it uses 256-byte sectors on 77 data tracks, and (maybe) 128-byte sectors on 'privileged' track 79 (see http://www.coho.org/~pete/downloads/IPC/burst/Languages/IPC_C_Language_Preprocessor/include/sys/sony_sys.h).

ImageDisk images would be quite useful to clear this up.

#107988 - 11/24/16 11:04 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
The ipc utils source probably would help there as well.

#107989 - 11/24/16 11:32 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Jan 2011
Posts: 167
Al Kossow Offline
Senior Member
Al Kossow  Offline
Senior Member

Joined: Jan 2011
Posts: 167
Originally Posted By shattered
Hooked up the floppy, but IPC doesn't yet boot from sector-level images on coho.org.

On-disk format is not documented; apparently, it uses 256-byte sectors on 77 data tracks, and (maybe) 128-byte sectors on 'privileged' track 79 (see http://www.coho.org/~pete/downloads/IPC/burst/Languages/IPC_C_Language_Preprocessor/include/sys/sony_sys.h).

ImageDisk images would be quite useful to clear this up.


that's not what it says here
http://www.coho.org/~pete/IPC/images.html

#107990 - 11/24/16 11:36 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Found Teledisk images on http://hpmuseum.net/exhibit.php?swc=9 -- these have the magic track

td0: loading MFM track 79 head 0
td0: sector num 0 :: track 79 head 0 sector 97 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 1 :: track 79 head 0 sector 98 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 2 :: track 79 head 0 sector 99 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 3 :: track 79 head 0 sector 100 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 4 :: track 79 head 0 sector 101 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 5 :: track 79 head 0 sector 102 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 6 :: track 79 head 0 sector 103 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 7 :: track 79 head 0 sector 104 sizecode 2 size 512 deleted 0 bad_crc 0
td0: sector num 8 :: track 79 head 0 sector 105 sizecode 2 size 512 deleted 0 bad_crc 0

...but don't boot yet.

#107991 - 11/25/16 12:19 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
and now it does:



tutor.td0 (it autostarts the tutorial after this, but graphics are very broken atm)



hp-ux1.td0

#108001 - 11/26/16 12:08 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
graphics in Tutor are now OK:



Now the fun part -- hook up HP-HIL keyboard and mouse smile

#108040 - 11/28/16 09:20 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
keyboard is working (but MM58167 clock driver apparently has a bug smile


#108041 - 11/28/16 09:33 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Or 1985 HP-UX has a Y2K bug smile

#108042 - 11/28/16 10:41 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
It probably does, but I was talking about month name (should be November)

#108043 - 11/28/16 11:03 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2006
Posts: 1,013
Lord Nightmare Offline
Very Senior Member
Lord Nightmare  Offline
Very Senior Member

Joined: Mar 2006
Posts: 1,013
PA, USA
Ah, it may be an issue where some RTCs use a base-1 (january = 1) month scheme, and some RTCs use a base-0 (january = 0) month scheme. Sounds like hp/ux expects a base-0, but MAME provides a base-1?

LN


"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
#108099 - 12/01/16 06:16 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Yes, looks that way. Haven't checked the datasheet yet.

+ line drawing (via ef9365.cpp), better mouse cursor (still not sure how it's actually handled by hardware -- a separate sprite layer or not):


#108100 - 12/01/16 06:43 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Looks really nice!

#108101 - 12/01/16 09:11 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
I've noticed earlier that if printer controller chip is missing in the memory map, kernel does not crash but sets an interal variable (_desktop) to 0 and some parts of the code check it. Well...



(nothing else so far, OS endlessly resets)

#108102 - 12/01/16 10:11 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2009
Posts: 1,670
Just Desserts Offline
Very Senior Member
Just Desserts  Offline
Very Senior Member

Joined: May 2009
Posts: 1,670
So it gives you a larger desktop area if, ironically enough, it sets _desktop to 0? That's... interesting, to say the least. smile

#108103 - 12/01/16 10:43 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Likely a 'prototype' mode -- HPJ article mentions that GPU can also drive a CRT, at up to 1024x1024 px.

#108105 - 12/02/16 02:10 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Maybe the underscore meant "inverted logic" smile

#108118 - 12/05/16 12:09 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
My next target is bitblt feature of the GPU. If there's existing code that operates on 16-bit words, I'd reuse it; MAME doesn't seem to have that.

AT&T DMD 5620 source has bitblt.c but it uses WE32K assembler heavily -- https://github.com/shattered/dmd-5620rom/blob/master/5620rom/src/lib/libj/bitblt.c

X11's ddx/mfb should have something but I got lost in the maze of different functions, all alike.

(or I could try and write it from scratch, using http://research.swtch.com/bitblt and http://bitsavers.trailing-edge.com/pdf/xerox/alto/BitBLT_Nov1975.pdf as references...)

#108119 - 12/05/16 12:43 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Jan 2011
Posts: 167
Al Kossow Offline
Senior Member
Al Kossow  Offline
Senior Member

Joined: Jan 2011
Posts: 167
Originally Posted By shattered
My next target is bitblt feature of the GPU. If there's existing code that operates on 16-bit words, I'd reuse it; MAME doesn't seem to have that.

AT&T DMD 5620 source has bitblt.c but it uses WE32K assembler heavily -- https://github.com/shattered/dmd-5620rom/blob/master/5620rom/src/lib/libj/bitblt.c

X11's ddx/mfb should have something but I got lost in the maze of different functions, all alike.

(or I could try and write it from scratch, using http://research.swtch.com/bitblt and http://bitsavers.trailing-edge.com/pdf/xerox/alto/BitBLT_Nov1975.pdf as references...)


how portable does the bitblt instruction in the Alto look?

#108130 - 12/05/16 06:39 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456

#108131 - 12/05/16 07:04 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2009
Posts: 1,670
Just Desserts Offline
Very Senior Member
Just Desserts  Offline
Very Senior Member

Joined: May 2009
Posts: 1,670


holy fuck

#108133 - 12/05/16 07:26 PM Re: HP Integral PC (1985) WIP [Re: Just Desserts]  
Joined: Jan 2011
Posts: 167
Al Kossow Offline
Senior Member
Al Kossow  Offline
Senior Member

Joined: Jan 2011
Posts: 167
Originally Posted By Just Desserts


holy fuck


sorry, I forgot we actually execute the Alto microcode. earlier emulators simulated the bitblt instruction.

i'm sure there has to be a portable 1bpp blt example somewhere
but it's probably easier just to do one from scratch

#108134 - 12/05/16 07:28 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Yeah, you probably could've written one in the time it's taken for people to hunt smile

#108135 - 12/05/16 08:21 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
I hate doing bit arithmetic, it's unnatural for my organic brain smile

#108136 - 12/05/16 09:37 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2008
Posts: 166
robcfg Offline
Senior Member
robcfg  Offline
Senior Member

Joined: Mar 2008
Posts: 166
Madrid, Spain
It seems that our organic brains are power of two based laugh

http://www.sci-news.com/featurednews/mathematical-logic-underlies-brain-computations-04397.html

Sorry for the off topic!

#108137 - 12/05/16 10:11 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
So is there a Turing machine inside our brains, then? smile I have no excuses if there is...

#108177 - 12/16/16 07:31 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
You can't tell the difference, but text on this screenshot was drawn by bitblt code from 1984 paper smile


#108178 - 12/16/16 07:18 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2006
Posts: 1,013
Lord Nightmare Offline
Very Senior Member
Lord Nightmare  Offline
Very Senior Member

Joined: Mar 2006
Posts: 1,013
PA, USA
Some of the original xerox bitblt code is available in the notetaker firmware btw. The source code is even documented, on http://bitsavers.trailing-edge.com/pdf/xerox/notetaker/memos/19790620_Z-IOP_1.5_ls.pdf

LN


"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
#108192 - 12/17/16 11:36 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Working on bitmap i/o with the host (WRWIN/RDWIN commands):


#108202 - 12/18/16 10:48 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Fixed a few more bugs and IPC feels actually usable now (no obvious video errors etc.). It really needs TMS9914 chip emulated (+ one of supported HP-IB hard disks) to be useful... One day, one day smile



Reversi game from intgame3.td0 disk



Minefield game from intgame1.td0 disk



Hack 1.0.3 game from inthack.td0 disk



GraphicArt editor from utilitie.td0 disk



ArT editor from ipcart.td0 disk

#108238 - 12/22/16 12:18 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Fixed loading of sector-level disk images from coho.org (the IPC doesn't require magic track 79 after all...), here's a recording of "Point-of-sale demo" from Bundled/IPC_Demos.img

https://youtu.be/dU1xc-zNdYg

(turns out that raster ops are documented in yet another C include file, scrn/disp.h smile )

#108241 - 12/22/16 07:58 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2008
Posts: 166
robcfg Offline
Senior Member
robcfg  Offline
Senior Member

Joined: Mar 2008
Posts: 166
Madrid, Spain
Thanks for the video, really interesting!

#112171 - 01/13/18 11:00 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Originally Posted by shattered
I've noticed earlier that if printer controller chip is missing in the memory map, kernel does not crash but sets an interal variable (_desktop) to 0 and some parts of the code check it. Well...

[Linked Image]

(nothing else so far, OS endlessly resets)



So there indeed was a desktop version of IPC, model 9808, without printer: https://groups.io/g/VintHPcom/message/477

#112175 - 01/14/18 06:46 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2007
Posts: 3
jefferystone Offline
Member
jefferystone  Offline
Member

Joined: May 2007
Posts: 3
Originally Posted by shattered
Fixed loading of sector-level disk images from coho.org (the IPC doesn't require magic track 79 after all...), here's a recording of "Point-of-sale demo" from Bundled/IPC_Demos.img

https://youtu.be/dU1xc-zNdYg

(turns out that raster ops are documented in yet another C include file, scrn/disp.h smile )


---

Notice at 1:46, the misspelling of "hierachical", should be "hierarchical".

https://youtu.be/dU1xc-zNdYg?t=1m46s

#112717 - 02/21/18 06:51 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Feb 2018
Posts: 4
MarkBielman Offline
Member
MarkBielman  Offline
Member

Joined: Feb 2018
Posts: 4
Hello - just joined! Yes, I am the proud owner of that post and the rare 9808 "Desktop Integral". Correct that it has no printer and no (built-in) display. I had figured that the firmware was
intentionally designed to accommodate this ahead of time. Even the diagnostic ROM must know since it does not complain about the lack of a printer.

The system has 5 external I/O slots instead of 2. The PC board has 1MB of RAM. Not sure about GPU (display) RAM but I think it's the same as the 9807. It's also obvious that the
intention was to install a hard drive; there is a space for one, with pwr and data cables. But the OS would not be able to use it, so there are two sockets for extra ROMs, which I do not
have, so never explored it. It also has space/cables for a 2nd floppy drive but when installed it is not recognized. (maybe also handled by the missing ROMs)

The video has the old and unusual horizontal scan rate of (about) 25 KHz making monitor choices rather slim. (I use either an HP 35731 or 35741 RGB - all inputs driven)

It's a very nice machine!

#112718 - 02/21/18 07:42 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Nice! Is the built-in ROM any different from regular 9807A model? Also, any pictures? smile

#112722 - 02/21/18 10:34 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Feb 2018
Posts: 4
MarkBielman Offline
Member
MarkBielman  Offline
Member

Joined: Feb 2018
Posts: 4
Same ROM set. Pictures have been on my to-do list for quite some time - will try to get that done, maybe this weekend.

#112862 - 03/13/18 05:44 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Feb 2018
Posts: 4
MarkBielman Offline
Member
MarkBielman  Offline
Member

Joined: Feb 2018
Posts: 4
Took a bunch of photos of the 9808 "Desktop Integral" (with index/info txt file)
https://groups.io/g/VintHPcom/files/HP%20Model%209808/9808%20Photos%20with%20Index.zip

Could not seem to be able to insert any photos here.

#112863 - 03/13/18 09:52 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Feb 2018
Posts: 4
MarkBielman Offline
Member
MarkBielman  Offline
Member

Joined: Feb 2018
Posts: 4
Reading thru this again and noted you found the RTC bug. Worked on this a short while ago. Here's my post on that:

Wrote a small program to test this value (using set/gettimeofday) and the magic number is 1,382,400,000. This is when it fails.
Translation:
GMT: Tuesday, October 22, 2013 12:00:00 AM
Your time zone: Monday, October 21, 2013 5:00:00 PM GMT-07:00 DST

So the last accepted value was 1,382,399,999 or:
GMT: Monday, October 21, 2013 11:59:59 PM
Your time zone: Monday, October 21, 2013 4:59:59 PM GMT-07:00 DST

So what is so special about this number?

#112969 - 03/27/18 08:51 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
Tried to hook up diagnostics ROMS you've dumped -- "Board A" just jumps into nowhere
Code
0011DE: move.l  #$6, -(A7)
0011E4: move.l  (-$4,A6), -(A7)
0011E8: move.l  #$1ca, -(A7)
0011EE: jsr     $4308c.l


"Board B" manages to run a bit longer but then also jumps into empty area:
Code
8056EC: trap    #$3
0027A6: jmp     $4227a.l


Last edited by shattered; 03/27/18 09:26 PM.
#112984 - 03/28/18 07:58 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
... of course, the answer is simple (U3 and U4 are mapped at 0x40000) smile Here's Board B:

[Linked Image]

#112985 - 03/28/18 08:03 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Mar 2001
Posts: 15,932
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,932
USA
Nice. Just need to fix the MMU now smile

#113339 - 05/05/18 10:20 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
from "new driver flood" thread (http://forums.bannister.org//ubbthreads.php?ubb=showflat&Number=113245#Post113245)

Originally Posted by fulivi
A couple of screenshots of HP IPC connected to a 9134B HD through the IEEE-488 remotizer (see PR #3485). I used my amigo_drive utility to emulate the HD (available here).
Enjoy!
--F.Ulivi
[Linked Image]

[Linked Image]

#113345 - 05/06/18 10:23 AM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: Feb 2004
Posts: 1,948
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,948
Sydney, Australia
This driver doesn't work in debug builds - immediate assertion failure:
Code
hp ipc os 82991a.bin ROM NEEDS REDUMP
WARNING: the machine might not run correctly.
Assertion failed: ((m_conf_ptr >> 1) < ARRAY_LENGTH(m_conf)), function write, file ../../../../../src/devices/video/hp1ll3.cpp, line 572.

Thread 1 received signal SIGABRT, Aborted.
0x00007fff88a530b6 in __kill () from /usr/lib/libSystem.B.dylib
(gdb) where
#0  0x00007fff88a530b6 in __kill () from /usr/lib/libSystem.B.dylib
#1  0x00007fff88af39f6 in abort () from /usr/lib/libSystem.B.dylib
#2  0x00007fff88ae09bc in __assert_rtn () from /usr/lib/libSystem.B.dylib
#3  0x0000000105ea7c81 in hp1ll3_device::write(address_space&, unsigned int, unsigned char, unsigned char) ()
#4  0x000000010612c823 in handler_entry_write::write_stub_16(address_space&, unsigned int, unsigned short, unsigned short) ()
#5  0x0000000106140f4d in address_space_specific<unsigned short, (endianness_t)1, 0, true>::write_native(unsigned int, unsigned short, unsigned short) ()
#6  0x0000000106140f4d in address_space_specific<unsigned short, (endianness_t)1, 0, true>::write_native(unsigned int, unsigned short, unsigned short) ()
#7  0x0000000105391d28 in m68000_base_device::m68k_op_move_8_ai_d() ()
#8  0x000000010533327c in m68000_base_device::execute_run() ()
#9  0x0000000106276a78 in device_scheduler::timeslice() ()
#10 0x00000001062241b8 in running_machine::run(bool) ()
#11 0x000000010444b0ac in mame_machine_manager::execute() ()
#12 0x00000001042f7af1 in cli_frontend::start_execution(mame_machine_manager*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) ()
#13 0x00000001042f927d in cli_frontend::execute(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) ()
#14 0x000000010444bb5c in emulator_info::start_frontend(emu_options&, osd_interface&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) ()
#15 0x00000001042e3228 in main ()

#113363 - 05/07/18 08:45 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
huh, apparently config is 12 words long, not 11 as HPJ article describes it...

#113411 - 05/12/18 02:02 PM Re: HP Integral PC (1985) WIP [Re: shattered]  
Joined: May 2012
Posts: 456
shattered Online content
Senior Member
shattered  Online Content
Senior Member

Joined: May 2012
Posts: 456
GPU chip is U1 on "Logic B PCA", part number 1LL3-0005. DIP48 package, CMOS. Microcoded (21 bit wide x 1536 words). Bus interface is 8-bit, internals are 16-bit, memory accesses are either 16- or 32-bit. Microcode can be dumped electronically (per HPJ article, p. 11).

Supports up to 1024x1024 monochrome display (CRT or EL), configured for 512x255 (not 256) in the IPC and for 640x400 in 9808A prototype. Pixel addressing starts at 0,0 in upper left corner.

Supports up to 128KB of VRAM (not mapped into CPU memory space), IPC has 32KB. IPC firmware probes VRAM size and will work with 128KB as well.

GPU can do line drawing with user-defined pattern, text output with user-defined proportional font, area fill with user-defined pattern, bitblt operations with 16 raster ops, and handles two sprites (mouse and text cursors). Sprites and area fill pattern are 16x16 px, font characters up to 16x16 in size. Both sprites are always drawn using XOR.

References:

http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1985-10.pdf -- HP Journal issue dedicated to the IPC
bitsavers://pdf/hp/integral/00095-90126_Integral_Personal_Computer_Service_Jan86.pdf -- "5.9 Display" section on page 5-11.
include/scrn/dispi.h from IPC_SW_Engineering_ROM_4 disc -- documents command names and IDs.
include/scrn/disp.h -- documents raster ops (same as in another HP GPU, Topcat, recently added to MAME) and ioctl() operations of HP-UX display driver.
hp-ux.5.0.0 from IPC_Driver_Writers_Disc -- kernel symbol table.

GPU to CPU interface:

offset 0 -- command/status register
offset 2 -- data register, 8 bit. 9808A may be using a different revision of GPU -- 'diagb' ROM also accesses this register at offset 3.
interrupt request line -- causes autovectored interrupt at level 4. reason for interrupt is unknown.

CSR bits:

I do not recall where I found this info, there was no detail. MAME keeps 0 low, 1 high, 3 tracks actual vblank.

0 -- GPU is busy
1 -- data is ready
3 -- vertical blank is active
7 -- 'out of window'

GPU commands:

There are 5 command types. Data can be sent before and/or after a command, depending on command type.

type 0 -- no data are expected from the host or sent back
type 1 -- send 1 word of data, then command
type 2 -- send 2 words of data, then command
type 3 -- send command, then 12 words of data
type 4 -- send 1 word of data, then command, then read or write data, then send NOP.

Known commands by type:

type 0:

NOP -- terminates type 4 commands
ENVID, DISVID -- enable/disable video output
ENSP, DISSP -- enable/disable mouse cursor (sprite) at current sprite location
ENCURS, DISCURS -- enable/disable text cursor at current pointer location
CRLF -- move pointer to start of next line

type 1:

WRSAD -- set memory address of visible area
WRDAD -- set memory address of data area (holds 3 16x16 bitmaps -- fill pattern, sprite and cursor)
WRFAD -- set memory address of font area
WRUDL -- set user-defined line pattern
WRRR -- set raster op (replacement rule)
WRORG -- set memory address of active window. Used by FILL, COPY, RDWIN and WDWIN
FILL -- fill currently defined window with bitmap number word(0)
LABEL -- write text character at current pointer location, with clipping to current window boundaries

type 2:

DRAWPX -- draw one pixel at given coordinates, using RR
WRWINSZ -- define window size
WRWINORG -- define window origin coordinates
MOVEP -- move pointer absolute
MOVESP -- move sprite absolute
DRAWP -- draw a line from current pointer location to absolute coordinates
COPY -- copy contents of currently defined window to absolute coordinates
SCROLUP, SCROLDN, SCROLRT, SCROLLF -- scroll urrently defined window by word(1) pixels and fill the rest with bitmap number word(0)

type 3:

CONF -- configures display size, monitor timind, and memory configuration; word 9 is display width in words, word 10 -- display height in pixels.

type 4:

RDMEM, WRMEM -- read/write GPU memory; command argument -- starting offset
RDWIN, WRWIN -- read/write currently defined window; command argument -- ???

Data area (DAD) layout

+00h cursor
+10h sprite
+20h fill pattern 1
+30h fill pattern 2 -- used by SCROLxx

Font area (FAD) layout

+00h font height
+02h size of width table
+04h width table
??? bitmap data (16 words per char)

Page 1 of 7 1 2 3 4 5 6 7

Who's Online Now
6 registered members (dxl, Dorando, mixmaster, ranger_lennier, AJR, Breiztiger), 15 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,534
Posts111,537
Members4,793
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.131s Queries: 14 (0.015s) Memory: 5.5364 MB (Peak: 6.1426 MB) Zlib enabled. Server Time: 2018-05-21 07:22:39 UTC