Emulating an Amstrad PC5286

Support and general discussion.
Post Reply
Banjo
Posts: 6
Joined: Mon 03 Sep, 2018 3:14 pm

Emulating an Amstrad PC5286

Post by Banjo » Sun 09 Sep, 2018 1:59 pm

For the sake of nostalgia (it was my second computer ever), I'm really wanting to emulate an Amstrad PC5286 (1mb memory, 3.5" floppy, 40mb HDD, AdLib card).

Thanks to PCem, I'm having an absolute blast emulating an old Amstrad PC1512 (my first computer!) but it seems PCem is only able to recreate Amstrad's XTs (PC1512, PC1640) and early ATs (PC2086, PC5086, etc.) and not their later 286 models (PC2286, PC5286, etc.). The Amstrad MegaPC (a 386SX) is also emulated, but not the machines in between.

Could this be due to missing bios systems (i.e. nobody has dumped a PC5286, etc.) or just lack of interest in such machines? Maybe both?

I'd *almost* be content with using a "generic" 286 but I can't seem to get those to properly use 1mb of memory (bios errors/complaints), which I believe is a known issue with the current compatible 286 bioses.

Is it possible that emulation of Amstrad 286 series (and later 386 or 486 series) PCs might be emulated in PCem at some point in the future? I'm just curious evenif it might not be for awhile, before I look at other options to emulate this machine in a more "hacky" way.

Hope it's okay to ask this here... I've only just discovered PCem and am loving it! I actually thought "why would you want this over DOSBox?" when I first saw it... until I booted it up and saw what it was and now I KNOW why! So nostalgic, too! :)

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Emulating an Amstrad PC5286

Post by SarahWalker » Sun 09 Sep, 2018 4:47 pm

Banjo wrote:
Sun 09 Sep, 2018 1:59 pm
Could this be due to missing bios systems (i.e. nobody has dumped a PC5286, etc.)
Basically this - if the BIOS hasn't been dumped then it can't be emulated. I'd be interested in emulating these systems, though due to other commitments it would probably be some time before I could look at them.

Zup
Posts: 57
Joined: Mon 30 Nov, 2015 10:47 am

Re: Emulating an Amstrad PC5286

Post by Zup » Tue 11 Sep, 2018 6:00 am

I wonder if MAME/MESS guys have some infos/dumps for these computers (and the more interesting Amstrad 2000 series).

MESS has a driver (I don't know if it works or is a skeleton driver) for Amstrad PC2386, but there are no drivers for other (unemulated by PCem) Amstrad computers.

In the meantime there are some 286 compatible computers (i.e.: Commodore PC30) that can be configured with 1024 Kb of memory. I don't remember which ones have EMS drivers available (or can be configured to work with XMS), but it should be possible to configure AT machines as you wish.

Banjo
Posts: 6
Joined: Mon 03 Sep, 2018 3:14 pm

Re: Emulating an Amstrad PC5286

Post by Banjo » Tue 11 Sep, 2018 8:55 am

Thanks for the replies (and Sarah, I'm loving PCem sooo much... thanks!).

It's probably way outside of my abilities, but what would be involved in dumping the bios if I had a *real* PC5286 on hand?

Zup, where would I go to talk to those folks? I've used MAME in some form for many years, but never used MESS so don't know much about it.

I would be very very grateful if you or someone else could help me set up the closest possible match to the Amstrad model I want to emulate. I've been having particular trouble with the 1MB of RAM and am not sure how to fix the issue (presumably via bis settings). Below is the "real thing" and my emulation attempt:

Real Amstrad PC5286
CPU: 286/16
Memory: 1MB
Video: VGA
Audio: AdLib compatible
FDD: 3.5" 1.44MB
HDD: Type 17 40MB

My PCem Profile:
Machine: [286] Award Clone
CPU: 286/16
Memory: 1024kb
Video: VGA (default speed)
Audio: AdLib
FDD: 3.5" 1.44M (on FDD1)
HDD: Sectors 17, Heads 5, Cylinder 977, size 40MB (via Standard IDE as Primary Master 0)

The only way I can get "MEM" (a DOS 6.22 program, though not really designed for a 286 it was the only program I knew to find this info) to report 1024kb total memory is to turn off "Shadow RAM" in the BIOS. This gives me 384k XMS, which MEM detects as shown in the screenshot below:
pc5286_mem1.PNG
pc5286_mem1.PNG (9.54 KiB) Viewed 651 times
Does that look right for a 286 machine with "1MB of memory"? Without being able to boot up a real PC5268, I can't remember if this is how the memory *was* detected or if I should be getting 640kb base and 1024kb XMS. Like I said, it's been a very very long time since I did stuff like this, and my memory of... well... memory is pretty rusty! :)

I was using the [286] AMI Clone machine previously, but can't get that to give me 1024kb (1MB) memory in any way. With the [286] Award Clone machine type, however, I found that by disabling Shadow RAM, I get the full 1024kb (1MB) memory to be recognised. I have no recollection of "Shadow RAM" from my old DOS days (I was in highschool back then!) but looked it up and now think I understand what it is... but I don't know if disabling it is a good or bad thing, or if this gets me closer to recreating the experience of an Amstrad PC5286 or not!

Thanks again to everyone at PCem and all who can help me out!

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Emulating an Amstrad PC5286

Post by SarahWalker » Tue 11 Sep, 2018 5:25 pm

640kb conventional + 384kb XMS looks right for a 1 MB machine. I don't know if the PC5286 enabled Shadow RAM or not; disabling it will give you more RAM, but run the machine a bit slower.

If you were to get a real machine, you can dump the BIOS through DEBUG.EXE. The following commands should dump the main and video BIOSes :

Code: Select all

n bios.bin
m F000:0 FFFF 1000:0  ; Copy 0x10000 bytes from F000:0000 to 1000:0000
rbx
1                     ; Write 0x10000 bytes (64kB) - upper 16-bits
rcx
0                     ; Lower 16-bits
w 1000:0              ; Write copied data to file, starting from 1000:0000

Code: Select all

n vbios.bin
m c000:0 7FFF 1000:0  ; Copy 0x8000 bytes from C000:0000 to 1000:0000
rbx
0                     ; Write 0x8000 bytes (32kB) - upper 16-bits
rcx
8000                     ; Lower 16-bits
w 1000:0              ; Write copied data to file, starting from 1000:0000

User avatar
JohnElliott
Posts: 75
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Emulating an Amstrad PC5286

Post by JohnElliott » Tue 11 Sep, 2018 8:20 pm

Or you could use a utility like SaveROM, which scans the upper 256k and saves the BIOS and any adapter ROMs it finds.

altheos
Posts: 46
Joined: Wed 24 Feb, 2016 7:27 pm

Re: Emulating an Amstrad PC5286

Post by altheos » Wed 12 Sep, 2018 3:53 pm

One detail Banjo : many machines from that era did not have an IDE controller, so you could switch to MFM or ESDI controller / drive if you care.

User avatar
SarahWalker
Site Admin
Posts: 1588
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Emulating an Amstrad PC5286

Post by SarahWalker » Wed 12 Sep, 2018 5:11 pm

I believe the PC5286 did use IDE - Amstrad were using it as early as the PC2000 series.

Banjo
Posts: 6
Joined: Mon 03 Sep, 2018 3:14 pm

Re: Emulating an Amstrad PC5286

Post by Banjo » Wed 12 Sep, 2018 5:31 pm

Thanks for the awesome info, folks! I am going to see what I can do about getting my (very) old 5286 out of storage and if by some miracle it boots, I will dump the bios.

It seems saveROM is pretty straightforward... I just boot and run it with a "saverom romfile" command, right? Any way to test it or know if I've done it right before doing it for real on my ancient machine?

Thanks for pointing that out, Altheos... though I think Sarah is correct. I can't find the service manual anywhere, but according to this site, the PC5286 probably *did* have an IDE controller. Which is good, because it's the only way I can get my "clone" to see the HDD right now.

I also found this fascinating video here of someone tearing apart a PC5286 (it's the only PC5286 video on YouTube that I could find!) and even booting it up.

Most interesting to me was the boot screen (showing the bios version: "AM52V004") and the bios screen itself. From the screenshots below, it seems indeed that the machine's advertised "1mb memory" does indeed equal 640kb base + 384kb extended, as Sarah and I hypothesized. No mention of any shadow ram there in the bios options, so presumably (from my limited understanding) it wasn't a feature of the PC5286 anyway... so it's probably accurate to disable it in the Award 286 bios?
screenshot1.png
screenshot1.png (43.94 KiB) Viewed 529 times
screenshot2.png
screenshot2.png (150.88 KiB) Viewed 528 times

User avatar
JohnElliott
Posts: 75
Joined: Sun 31 Jan, 2016 7:29 pm

Re: Emulating an Amstrad PC5286

Post by JohnElliott » Wed 12 Sep, 2018 8:21 pm

Banjo wrote:
Wed 12 Sep, 2018 5:31 pm
It seems saveROM is pretty straightforward... I just boot and run it with a "saverom romfile" command, right? Any way to test it or know if I've done it right before doing it for real on my ancient machine?
Practise in a PCEM session and see what it does :D

Post Reply