Previous Thread
Next Thread
Print Thread
Page 1 of 2 1 2
#108595 - 01/25/17 02:11 AM Intergraph InterPro WIP  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
I think this is how it's done, and since I've now embarrassed myself by pulling my InterPro emulation into public view, I thought I'd give a quick update.

More of the boot ROM diagnostic routines are working. Some very basic DMA handling is working, to the point where the system can now read a partition table from a floppy disk.



I've now refactored the ioga, sga and mcga as separate devices, and done some preliminary work on the cammu (although actual address translation isn't done yet).

The CPU now sends all its memory access to the CAMMU, which decides which of the 3 real address spaces to hit (main, i/o or boot), and fowards them on. This killed performance, so I've hacked a primitive instruction cache into the CAMMU for now, which helps a bit. Probably I just need a faster PC.

Lots to do, and still quite some way away from being able to boot CLIX I think.

#109971 - 06/23/17 05:17 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
It's been a while, with life and work getting in the way, but have recently made a bit more progress.

[Linked Image]

Nothing too earth-shattering:

  • nmi is working properly now
  • dma is better, now working read and write for the floppy at least
  • configurable ram sizes (not working completely)
  • most devices are now at least stubbed out and mapped
  • basic mmu address translation is working
  • added the diagnostic 7-segment led, which is nice to watch during diagnostics

The system still spews diagnostic errors at boot, but it's passing some of those it was failing previously.

I also now have my hands on a real physical keyboard, so I have no excuses for figuring that out in the future.

Most importantly, I've made contact with someone who has a working 2000 and parts(?) for a 2400, and the means to dump some of the key ROMs from them and especially their graphics boards.

Last edited by pwm; 06/23/17 05:17 AM.
#110064 - 06/30/17 07:45 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
All iogadiag tests are now passing (although due to a hack forcing bus errors during dma operations).

More importantly, SCSI is alive!

[Linked Image]

Hopefully now I have enough of the basics working to begin to tackle OS boot.

#110160 - 07/05/17 11:41 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
First step on the road to OS booting - serial DMA is working!

[Linked Image]

The new "Fic" variation of the Forth diagnostic monitor has new commands to play with as well.

So now to figure out what it doesn't like about my disk, and whether I can get to the next step.

#111164 - 10/26/17 07:58 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
Dear diary, it's been a while since my last entry, so...

The big news is I now have the keyboard and a very primitive amount of graphics working, so I can start using them interactively instead of the MAME terminal emulation. Floppy is working well enough to load the diagnostics from disk, which includes the graphics diagnostics I need to implement at least some of the rest of the graphics hardware (bitblit, line drawing, clipping, antialiasing, stereo, etc.). It seems the lack of some of these functions is what's preventing me from doing anything useful after loading the boot floppy from the "rebuild" set (which should show a blue menu screen with functions to format the hard disk and create partitions, etc.).

WIP screenshots

Thanks to contributions from others, I also have boot ROMs for the 2000, 2400 and 2700 systems, and these are working to about the same extent as the 2800. The 2000 is the most different, as it uses the C300 CPU and has different floppy, Ethernet and SCSI devices to the other three, and has no flash/eeprom on board. The 2000 system was known as a Turquoise model, while the other three (and the otherwise yet not sourced 2500) are Sapphire models.

Intel 82586/82596 Ethernet is implemented, and working as far as passing almost all the diagnostics; starting the Sapphire systems (2400/2700/2800) without any disks will cause them to start trying to RARP an address and network boot with TFTP.

Probably a bunch of other things I've forgotten to mention, but it's a significant milestone just the same. I'm now working on reverse engineering the graphics, and hopefully that'll result in something a bit more pretty to look at in due course.

#111252 - 11/10/17 02:25 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
Still here, working my way through the GT graphics hardware. The screenshot shows a few things:

  • Identified the hblank/vblank screen parameters needed to get the Bt459 cursors to align with pixel graphics
  • Haven't implemented Bt459 dual-cursor OR/XOR behaviour yet
  • Clipping status register computes Cohen-Sutherland clipping outcodes for each of two input points
  • Aliased (the opposite to anti-aliased, I learned) clipped hardware line drawing is working, although may not be 100% pixel-perfect matching with real hardware

Next up is a different method of hardware line drawing (using the "RI" function of the custom graphics ASIC), and then onto bitblit operations.

[Linked Image]

#111253 - 11/10/17 02:39 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Feb 2004
Posts: 1,889
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,889
Sydney, Australia
This is the most awesome thread on this board lately.

#111257 - 11/10/17 08:11 PM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: May 2012
Posts: 423
shattered Offline
Senior Member
shattered  Offline
Senior Member

Joined: May 2012
Posts: 423
Originally Posted by pmackinlay
<...>and then onto bitblit operations.


Could you make them generic? I could use that in hp_ipc.cpp (which has a monochrome frrame buffer driven by a custom HP GPU).

#111267 - 11/13/17 10:25 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
Thanks for the comment Vas - hope I can keep entertaining.

Shattered, I'll do what I can, but I might be somewhat limited in how generic I can make it depending on how closely I need to emulate the NS DP8510 bitblit unit in the system. No promises at this stage smile

#111268 - 11/13/17 02:18 PM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Mar 2001
Posts: 15,807
R. Belmont Online content
R. Belmont  Online Content

Very Senior Member

Joined: Mar 2001
Posts: 15,807
USA
Bitblt operations (now commonly called ROPs because that's what Microsoft named them in Windows and Nvidia and AMD followed suit) are just "src (math operator) dest", so I'm fuzzy on shattered's thinking that they're scary.

#111269 - 11/13/17 07:05 PM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: May 2012
Posts: 423
shattered Offline
Senior Member
shattered  Offline
Senior Member

Joined: May 2012
Posts: 423
It's not that scary, there's just a small matter of programming it, is all, taking care of all ROPs as well.

#111550 - 12/08/17 08:56 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
For my latest trick, I now present the InterPro "blue screen", the entry point for configuring the system and formatting disks and installing CLIX etc.

The mouse pointer moves, but doesn't track vertically for some reason, and there are also some lines missing (e.g. around the buttons) because my line drawing hardware emulation isn't up to scratch yet, but this is a milestone for me.

The toughest part was working out how the "data select" mode operates when writing to video buffer memory - essentially it expects a write to video memory of 4 bits to expand to 4 8bpp pixels/bytes using the active "plane data". Of course, now that I know/understand it's all obvious smile

[Linked Image]

#111566 - 12/09/17 12:31 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Aug 2011
Posts: 12
drewcifer Offline
Member
drewcifer  Offline
Member

Joined: Aug 2011
Posts: 12
Very, very cool.

#111573 - 12/09/17 01:09 PM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Mar 2001
Posts: 15,807
R. Belmont Online content
R. Belmont  Online Content

Very Senior Member

Joined: Mar 2001
Posts: 15,807
USA
Considering how aggressively secretive I remember Intergraph being back in the 80s/90s I'm really impressed it's gotten this far.

#111617 - 12/12/17 04:50 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
Got the mouse tracking properly, and enough line drawing to make it usable. Time to start playing with SCSI and such again.

[Linked Image]

[Linked Image]

[Linked Image]

#111619 - 12/12/17 01:48 PM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Mar 2001
Posts: 15,807
R. Belmont Online content
R. Belmont  Online Content

Very Senior Member

Joined: Mar 2001
Posts: 15,807
USA
Was there an x86 card available for those workstations to run DOS, or is it an emulator?

#111624 - 12/13/17 07:16 AM Re: Intergraph InterPro WIP [Re: pmackinlay]  
Joined: Nov 2016
Posts: 28
pmackinlay Offline
Member
pmackinlay  Offline
Member

Joined: Nov 2016
Posts: 28
In fact, there was both a hardware x86 emulation card, named "Hard PC", as well as a port of the relatively well-known SoftPC software emulator. Unfortunately, I have next to no information on the former; a quick search throws up the link below, which is interesting, but doesn't reveal anything too informative about the hardware.

I'm not at all sure if the PC-DOS button on the blue screen was the only way to boot this Hard PC hardware, or whether it could be accessed concurrently via CLIX. I do know that there was an InterPro model 29xx system designed and manufactured which was based on the 2xxx series case/monitor etc., but used a PC (Pentium?) motherboard, but this system was not able to run CLIX or CLIPPER software. It was basically just a PC in an InterPro box, designed to run Windows NT, supposed to allow existing customers to extend the life of their InterPro monitors and maybe some other peripherals.

The Hard PC board would be an excellent longer term emulation target, but I suspect there's even less information available than the slim pickings I have for the InterPro, so progress may be very slow.

Just found a few more bits and pieces of information - it appears the Hard PC had a 486 CPU, some kind of VGA hardware/emulation, and supported 2, 4, 8 or 16 megabytes of its own SIMM memory. It appears the board's "ROMs" (presumably system BIOS and VGA BIOS, at least) were loaded at start by the host, so it's possible these files exist somewhere in the OS media. I think the VGA on the board was essentially "copied" to the host video memory at runtime. All of these seems to indicate that the host and emulator could run concurrently.

PS: got enough SCSI working to enable the "rebuild" process to complete, and it's now crashing somewhere when attempting to boot the minimal rebuild environment.

Old Microsoft knowledge base article relating to Intergraph HardPC

[Linked Image]

Last edited by pmackinlay; 12/13/17 07:29 AM. Reason: added more Hard PC information
Page 1 of 2 1 2

Who's Online Now
6 registered members (AntoPISA, R. Belmont, sof-max, mixmaster, 2 invisible), 23 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,479
Posts110,299
Members4,770
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.051s Queries: 14 (0.017s) Memory: 5.0867 MB (Peak: 5.3905 MB) Zlib enabled. Server Time: 2018-01-17 20:19:05 UTC