• Please review our updated Terms and Rules here

Monster PPC512 Upgrade Project

RtechLab

Member
Joined
Mar 26, 2022
Messages
39
I've been adding to this thread :here

This inital post is image heavy

I thought it better to start a new one. So here goes. I want to make this a bit of a dump for this project so there's going to be updates here as I work through this. This also draws on a few other prjects and I'll acknowledge these where they pop up.

Years ago I had a PPC640 with a HD, in fact I had a number of these, all purchased from GreenWeld Electronics in Southampton UK as a pile of scrap. Out of the four 512/640s in there I rescued two, one plain Jane 640 and one with an internal HD. These were used with the PC1640 monitor as BBS browsing machines for a couple of years. I wasnt allowed loose on the big box Amigas we had at the time and the 500 was a faff with the modem. These machines just worked. Eventually they got replaced and time marched on. I had a soft spot for both though.

With a lot of these era machines now being considered classics one came up at a sensible price so I purchased it. and thus started the fun.

PXL_20251011_162821517.jpg

My original machine had a hard drive, I knew at the time this was a hack and only supported XT IDE drives. This card, the Stratum Sprint is detailed here. TLDR is that it wires into the expansion port on the underside of the ports and runs an XT-IDE controller with BIOS.

Without a HD it's really not that useful, also this is a 512K model, so less RAM, no modem. Modem isnt a huge loss but the RAM is. First job, ordered up the chips required and did the upgrade. Nice and easy. As for the horror stories of opening these, they really arent that bad at all if you are careful. The biggest tip is to remove the floppy cover first, plase the unit on its keyboard with the ports towards you, undo all screwws and tild the base away from you, rotating around the battery compartment, easy peasy. Once the sheilding is gone its evean easier.

Next Job, I need a hard disk, new screen and possibly more RAM. So I went off looking and many people have tried the connection method used on the Sprint but nothing ever seems to have come to fruition. I've worked with industrial systems so a first version of a PPC to PC104 card was spun up, prototyped in card, then ordered. ...
PXL_20251027_132242380.jpg

I had an idea what I wanted onthe expansion board so that was breifly laid out on card too. All good, PCB's ordered and they arrived a few days later...

PXL_20251028_122311913.jpg
While these were on the way a GoTek was ordered and flashed over to FashFloppy, the drives were serviced and a PC104 VGA card PCB and parts were ordered...
PXL_20251106_102803716.jpgPXL_20251106_102610783.jpg
I also noticed I have a line out on the display. Given I want to go to VGA and I remeber well how awful these screens are, I ordered a replacement LCD to go in once the VGA output is done. It actually fits inside the old LCDs metal frame!
PXL_20251104_084038095.jpg

The expander was laid out in a way you can flip it, install connectors and use it on the back. An ISA connector placed in the PC104 pins allows the use of ISA cards. So let the testing begin...
The RealTek VGA card I have doesnt work, it throws up the odd BIOS error but in general does nothing, never shows in the memory map and does noting. The POST card I had didnt behave as expected instead throwing random digits as if something was floating. After adding bodge wires for signals I failed to route (T/C and !Refresh the bahaviour settled down. I now get nothing, which I expected but I can't write to the port with Debug either. Hmmm... So I hunted about, found an old PII and threw the ISA VGA Card in, it hangs at boot. OK, so that may not be healthy. The old PII had a 3Com 3C509b in, so after scrabbling to find my EPROM eraser I burned an XT-IDE ROM, set it up to somehting that should work in an XT and...oh dear.

PXL_20251106_102757327.MP.jpg

So this is where I'm at now. I've found some issues with the online information and some of the expanders people have built. Seems that there are some inconsistancies. I'll go over these in the next post.

The base board will wait until this part works. I've been messing with a few ideas but I've settled on this for the first version:
A connector for a Teensy 4.1 running XTMAX. I may/may not change the code a little for this application to give me some more chip selects
A PC104 bus port with the VGA output in the right place to take the VGA module above. I may/may not leave this as the final VGA solution meaning if you sacrificed the second floppy bay you could cut the case to give you one more PC104 slot ot ISA slot in the floppy bay.
A Header for chip select logic - I'm teaching myseld CPLD programming, this board wil need a lot of glue logic otherwise. If I generate selects myself then this saves tampering with XTMAX's code. I want to use this to experiment with soft configuration later.
A Header for an OPL2/3 card with pass-through for the internal speaker and an audio amp. I'm aiming for Ad-Lib conpatibility
A Header for a second UART for PS/2 mouse support or WiFi via an ESP32
On board theres also a RealTek RTL8019 with ROM socket. As the XTMAX can emulate ROMs I may drop this as it make sthe board quite cramped
Finally a PSU to generate all needed rails.

The hope is to drop a VGA to HDMI adapter in there somewhere to drive the screen.

So thats where we are at now, the next post will detail the issues I've found...
 
Errata I've Found:

Note I'm of the opinion at this point there may be multiple board revisions, not sure how to prove this but it would explain some of these weirdies.


PXL_20251106_105513039.jpg
D0-D7:
All build threads and designs I've seen pull up D0-D7. The likley reason is that the main source of info here
Looking at the schmatic in the service manual these ARE pulled up already via NR105 which give a weak pullup anywa. Its possible that expansion may need a harder pull up but thats unproven right now.

Power:
Supplying power to the PPC through this port as detailed seems to result in a non working system regardless of the state of the Power In pin. I think this is a missing -5V line but not sure on that one. My ATX PSU no longer provides it.

PXL_20251106_105939910.jpg
A8-A15:
While looking for the source of my issues I can see that the levels on these pins are low, aprox 2V P-P which isnt ideal for TTL. I beleive this may be my issue and looking at the schematic, although they are supplied by an LS device they also drive the BIOS ROMs, Display control and other items on the memory PCB. My personal feeing is that these are the pins that may need pull ups rather than the data pins. At the very least a buffer may be beneficial. The other possibility is that ls373 is weak.

PInout:
The pinout on the site listes above is wrong with 2 pins added to each connector. There is errata linked but of you arent looking you won't catch it.
 
We have life!
So the Realtek card is truly, truly horrible, but it works. Adding the pullups on A8-A15 did the job:
PXL_20251106_131405638.jpg
Pretty sure the fill rate on this card is only marginally faster than an etch-a-sketch
 
So, I'll roll these fixes into the V2 board and I want to change the footprint of the 104 header a little so that a r/a ISA slot will fit better.
Next problem is how to mate the new board to this one. 104 wont work without soldering meaning EVERYTHING is hung off the bottom board and nothing can be changed out. The board has a height difference so R/A 104 may not work nor will DIN connectors. Only workable idea I've had so far is SMD pin header sockets that go through the board. I think I'm also going to buffer the remaining address lines for resilience. I know some had issues with XT-IDE on other PPC expander boards and I wonder if this is what it is.
 
Just to add, for these sorts of old DOS portables, there is bit-wiggling interface using an SD card as an HD drive via the printer port, using only resistors, diodes, transistors and caps, no external "helper" processor. I think the SD card can be accessed this way with a slow processor, whereas usb needs 16mhz+ processor for a bit wiggling i/f to work. There are threads on vcfed and vogons, here are some links:

https://www.vogons.org/download/file.php?id=53412

(there is a thread somewhere here on vcfed too, if anyone has it..)

quote.. "the Nilquader Driver needs only ~1,5k RAM and implents SPI in Software on LPT." This design uses SD card adapters with the voltage level adapter build in, which makes the circuit very simple.

There is a little device driver for is somewhere, which you can add to a DOS boot floppy. You need to bootstrap via a floppy disk, and I think speed is about 10-20k/sec, a little faster than a floppy.
But a lot less work than soldering in an XT HD controller!
 
Last edited:
I've seen this and the issue is speed, and given I have to do VGA anyway and being an internal upgrade this means boards adding the XTMAX is trivial, in fact its 3 chips and a Teensy after a redesign.
 
Fair enough if you are doing the work anyway. I mention it because once made its a handy plug in solution for different machines.

Back in the 80s I had the PC1512, but I did sometimes wish I had the PPC512 for traveling, £400ish for a portable was one heck of a good deal back then.

BTW Does the PPC have the special CGA 16 color enhanced mode? That was a nice feature on the PC1512.
 
Last edited:
Did the 1512 have an enhanced 16 color CGA mode?.. Seems it did... I worked on these for years and never saw this - even when watching GEM on one back in the mid 80s - for some reason the ones I saw with GEM ( running Ventura Publisher ) were only configured for 2 colors and were black and white.

Thank you for mentioning that - I used to think it was only the Tandy that did this. I wonder why it never came out in games as an option for the display like the Tandy did?
 
Yes there was a special pc1512 gem driver for it too, I think there is a Win2.0 driver somewhere?
https://www.seasip.info/AmstradXT/pc1512disp.html

Downside is slower animation/scrolling/update with more raw data to move about, pretty much the same problem with adding VGA to the PPC512, or the Amstrad 8086/VGA desktop machines (pc5086 etc).
I did published some CGA shareware game back then, but just the std modes so that it works with other machines, most DOS stuff never used these extra modes.

In one shareware game from that time I used VGA mode X graphics to make a car race scroller. That uses "hardware" scrolling rather than moving data, that might work ok on a V30/VGA pc, but I havent tested it.

See: racer20 with source

https://github.com/orac81/miniapples?tab=readme-ov-file#racer-1982

Maybe RtechLab could test that on his modded PPC512?


BTW, The Amstrad PPC technical manual is an interesting read:
http://www.seasip.info/AmstradXT/ppctech/section1.html
 
Last edited:
In one shareware game from that time I used VGA mode X graphics to make a car race scroller. That uses "hardware" scrolling rather than moving data, that might work ok on a V30/VGA pc, but I havent tested it.

See: racer20 with source

https://github.com/orac81/miniapples?tab=readme-ov-file#racer-1982

Maybe RtechLab could test that on his modded PPC512?


BTW, The Amstrad PPC technical manual is an interesting read:
http://www.seasip.info/AmstradXT/ppctech/section1.html
Absolutley can do that.

I want to see just how much faster the TVGA is too over the Realtek. Chips arrived yesterday so I need to get parts ordered and really wish I'd ordered a stencil. I may yet do so.

I'm going to test everything out on PC104 cards as I can make each subsystem self contained and testable in isolation. I need to get my head round the mechanics of it all too, I cant find a nice, workable interconnect just yet with the mimited height from PCB to base and the fact that not every board will get soldered on the same way.

I have a booting XT-IDE ROM now so I'm pretty happy all is working as it should.

"BTW, The Amstrad PPC technical manual is an interesting read:
http://www.seasip.info/AmstradXT/ppctech/section1.html"

I've been working from that and it seems that a few errors I've found originate from there, although without the source material I can't be sure for definate thats where they came from, they may have been earlier. The need for pullups on D0-7 is a good example. Every project has done it, its mentioned on that site but no-where else, the schematics and looking at a physical machine makes it clear they are absoluteley not required, they are already there. The weak signals on A8-A15 seem like a more likely target.
 
Last edited:
Might have had a working XT-IDE today as mine made its way back from where it had been loaned. However, most of the TTL chips on it are toast :( Looks like the borrower may have put it in the slot the wrong way round. RS Delivery tomorrow *should* solve that.
 
@orac81
For what it's worth, any "IDE" (Integrated Drive Electronics) hard drive has plenty of electronics on it that are essentially the 'controller' element of the equation. Beyond a certain era in computing, the interface chip in a PC is just a 'host adapter'.

Drives prior to that innovation required a true controller board on the computer side of things that actually controlled the drive itself.

So using a "helper" processor really isn't that unusual or anachronistic.

Granted that with SD cards you're mostly using the 1-bit communication method and the helper is mostly serving as a hardware SPI interface with some additional "intelligence". So unless it also does read/write caching it is mostly offloading the task from your CPU and potentially adding overhead to the data transfer.

I doubt it's particularly sensible or cost effective these days, but using a microcontroller would mean you could have the storage be based on parallel/serial flash memory (e.g. eeprom) or battery backed static rams, etc.

You could even make it super complex using multiple SD cards and some sort of RAID-esque approach...
 
Ok, but the IDE controller and firmware itself has to be added as a slot in card on an XT PC, or be present on the motherboard. I was just suggesting a "starter" option like the parallel port SD interface, since once you have made it with boot floppy, it can (effectively) add an HD to any old XT in minutes, even portables that have no slots.

Yes, no problem adding a helper processor via the printer port for SD, given that things like the pi picos/nanos are about $5, and can achieve much higher data rates for such a task. Of course if you can do what RTechLab has done, adding a real IDE i/f, that is better, but a bigger job.
 
Last edited:
I have no issues with the LPT port SD option, and I can see where it would be handy and indeed I may go that route temporarilly while debugging but it's not the solution I want to use here.
It definateley has a place but its not what I want here. The end goal is to have this working with no external parts or massiveley obvious mods (Bar the screen).

I could roll my own PIO driven interface, you can actually get flash IC's that present as large floppy drives too. Adding a simple interface and going that route isnt hard either. But these need drivers and I want to kill as many birds with one stone as I can, primarilly complexity and power use reasons, but also I don't want to have to write drivers either. The Teensy XT-MAX works because its mass storage, its extended memory, it *can* be used to expand base memory and gives me EMS. On top of that I know the Teensy, the code makes sense and I *could* also add a serial port for Wifi, network support, PS2 ports and/or generate my OPL and other chip selects there.

Each project presents different challenges and even the same project can be different with different people doing it.
 
VGA Card now done, now to wait for the DRAM for testing. Didnt expect that to cost quite so much and I have a mountain of SMD DRAM too :(


PXL_20251205_143437414.jpg
 
Back
Top