First post, by CraigAB69
- Rank
- Newbie
Hi,
I was wondering if some smart person had created a project to build an EMS card from scratch.
Regards,
Craig
“Wyrd bið ful āræd. Fate is inexorable.”
Hi,
I was wondering if some smart person had created a project to build an EMS card from scratch.
Regards,
Craig
“Wyrd bið ful āræd. Fate is inexorable.”
Here's a Github project, but it's derived from the Lo-Tech/Texelec design.
https://github.com/hkzlab/ISA_EMS_4Mb
It's very basic compared to the "real thing", such as an Intel AboveBoard Plus or AST Rampage 286.
Those ancient boards were much more sophisticated/flexible, I think, and had mapping capabilities and other features (backfill, DMA, XMS, EEMS).
Too bad there's no compatible, modern re-implementation of them.
Being able to use, say, remm.sys instead of LTEMM driver would be nice.
Edit: This is one of the few times where I'm pro FPGA.
It would be cool, if a re-implementation of a classic board could be written using that technology.
This would give maximum compatibility with older DOS software, too, who was being tested with the old EEMS/LIM4/LIM3.2 memory managers.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//
Jo22 wrote on 2022-12-31, 07:41:Here's a Github project, but it's derived from the Lo-Tech/Texelec design. […]
Here's a Github project, but it's derived from the Lo-Tech/Texelec design.
https://github.com/hkzlab/ISA_EMS_4Mb
It's very basic compared to the "real thing", such as an Intel AboveBoard Plus or AST Rampage 286.
Those ancient boards were much more sophisticated/flexible, I think, and had mapping capabilities and other features (backfill, DMA, XMS, EEMS).
It seems to be a matter of taste what "the real thing" is. You are citing the latest AT boards with EMS capabilities. The Lo-Tech design is a clone of the earliest XT boards with EMS capabilities, which did indeed only provide a single 64KB page frame, up to 2MB, 8-bit bus only, no extended memory support and no alternat DMA mappings. Both were "real things" in the eighties.
mkarcher wrote on 2022-12-31, 09:24:Jo22 wrote on 2022-12-31, 07:41:Here's a Github project, but it's derived from the Lo-Tech/Texelec design. […]
Here's a Github project, but it's derived from the Lo-Tech/Texelec design.
https://github.com/hkzlab/ISA_EMS_4Mb
It's very basic compared to the "real thing", such as an Intel AboveBoard Plus or AST Rampage 286.
Those ancient boards were much more sophisticated/flexible, I think, and had mapping capabilities and other features (backfill, DMA, XMS, EEMS).
It seems to be a matter of taste what "the real thing" is. You are citing the latest AT boards with EMS capabilities. The Lo-Tech design is a clone of the earliest XT boards with EMS capabilities, which did indeed only provide a single 64KB page frame, up to 2MB, 8-bit bus only, no extended memory support and no alternat DMA mappings. Both were "real things" in the eighties.
Yes, when EMS 3.2 hardware was still around. 🙄
DESQView and other products were made with EEMS and LIM4 hardware in mind, however.
Windows 2.03 ships with REMM.SYS (AST)/PS2EMM.SYS (IBM)/EMM.SYS (Intel);
Windows 3.0 supports 256 KB EMS page frame for proper multitasking.
Would simply be nice if emulators and replica hardware would get things right somewhen. Preferably before the 2030s.
It would also get away with the dependency on EMM386, QEMM etc for full-fledged LIM4 support.
- That's something I do miss in PCem/86Box, by the way: XT and 286 machine types have no EMS support (not to mention UMBs or x87).
Despite the fact that some of the real-world chipsets had a memory mapping capability built-in (used for shadow memory, too).
Expanded Memory Support via chipsets or memory boards work independantly from the CPU state.
Aslong as the memory manager works, the condition of the CPU and MMU are trivial.
That's something that I find most interesting about bank-switching mechanisms.
They can be entirely separate systems and merely talk throught a communications channel (-> page frame, i/o ports) to the PC.
I some way or another, they remind me of the Weitek Abacus processor,
which also uses memory addresses for communication (ironically, that demands for V86, though; there's a switch in EMM386). ^^
Don't get me wrong, I think LTEEM/Lo-Tech are nice ideas, as such. Just incomplete, I think. Back-filling and XMS aren't really needed, I think.
But if these two compare to real hardware like EMM386 vs EMM286, it's not that great of an experience.
On paper, EMM286 should be very compatible, too - but in practice, not even AutoSketch or PC/GEOS works correctly with it.
16-Bit I/O support would be nice, also. Maybe through interleaving 8-Bit chips, if that's possible.
Because sophisticated software products used to prefer the IBM PC/AT, anyway.
Not that this is mandatory, anyhow. Some 16-Bit ISA boards also used 8-Bit transfers (AST Rampage AT? Not sure).
But not at merely 4,77 MHz..
So it would be nice if a new 8-Bit EMS card wouldn't use the 4,77 or 14MHz time base.
If in an 16-Bit slot, they should work at full speed (6 to circa 12 MHz), a least. That's still a bottleneck, but not as worse.
Maybe a jumper can be installed, not sure ?
Or let's do another approach, maybe. How about "emulating" the external 286 MMU mentioned in PC-MOS/386 ? 😁
There used to be a few different external MMUs for 286 systems on interposer cards.
They could not only add EMS support to a 286 platform, but also do paging and re-mapping of i/o ports.
Things like SoftMPU could then do their magic, as if run on a 386 with EMM386.
Just more clean and real-mode friendly (again, it's external "physical" hardware to the PC).
Edit: Video of such a card: https://www.youtube.com/watch?v=xgMIbo6QoM4
The external MMU would be independant of the 286's internal MMU.
A new form of A20 gate could be implemented that way, too,
since the external MMU -as an interposer- could disconnect/manipulate the physical address lines of the 286, as needed.
It's essentially working like a mapper device in a Nintendo NES cartridge (simplified analogy).
Edit: On the other hand, such an interposer is limited to a single CPU socket (or two, if the board has enought space left).
A memory board that goes into ISA slot would be more useful for a wider audience in general.
Believe it or not, the AST Rampage 286 worked like a charm in a Pentium 133 on MS-DOS 6.2x with the latest REMM.SYS. 😁
EMS enabled games like Commander Keen IV (Real-Mode) or Lollypop (386+ flatmode) ran nicely with an ISA-based EMS board.
By the way, back then (early 2010s?), this made think about PCI-based Hercules Monochrome cards and EMS cards..
I thought it would be really cool if the retro community would come up with PCI versions of these cards.
Early PCI revisions still allowed that PCI devices use the ISA address space, if my memory serves me well.
Not sure about Pentium 3 era hardware or PCIe hardware, even.
Edit: I'm just thinking out loud here. I'm not demanding anything, I do have all I need (several vintage memory boards for testing purposes).
These things would simply make life easier for other users, who have to go through the hell of memory managers and must use V86..
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//
PicoMEM https://forum.vcfed.org/index.php?threads/pic … -board.1241199/
- Emulate 128Kb of RAM from the Pico internal RAM (Full speed, no wait states)
- Emulate memory (Blocks of 64k anywhere) and EMS (Up to 4Mb) with 6/8 wait states.
- Emulated ROM (I did run the CH37x BIOS on it)
- Execute commands from the 2nd core.
- Memory and IO Address decoding to redirect the access to different types of Memory/Emulated device
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor
rasz_pl wrote on 2023-01-01, 13:56:PicoMEM https://forum.vcfed.org/index.php?threads/pic … -board.1241199/ - Emulate 128Kb of RAM from the Pico internal RAM (Full […]
PicoMEM https://forum.vcfed.org/index.php?threads/pic … -board.1241199/
- Emulate 128Kb of RAM from the Pico internal RAM (Full speed, no wait states)
- Emulate memory (Blocks of 64k anywhere) and EMS (Up to 4Mb) with 6/8 wait states.
- Emulated ROM (I did run the CH37x BIOS on it)
- Execute commands from the 2nd core.
- Memory and IO Address decoding to redirect the access to different types of Memory/Emulated device
oh wow, that's perfect!
I wonder what other things the pi can do that we haven't thought of yet. socket 7 to pi interposer?
Sphere478 wrote on 2023-01-03, 02:42:I wonder what other things the pi can do that we haven't thought of yet. socket 7 to pi interposer?
30 I/O pins and very little PIO (dedicated IO coprocessors) memory.
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor
[/quote]
oh wow, that's perfect!
I wonder what other things the pi can do that we haven't thought of yet. socket 7 to pi interposer?
[/quote]
Hi,
The EMS emulation still need improvement due to the big wait State.
My Board can do Floppy and Disk emulation from a microSD now, and I will/May add more functions