VOGONS


First post, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie

I would like to share an open source project I have been working on which is a software-defined 8-bit ISA card which uses a Teensy 4.1 microcontroller board.

It is called XTMax and it combines the functionality of three ISA cards:

1) Conventional memory any amount up to 640 KB with zero wait states and fully supports DMA so it can be used with physical floppy and hard drive controllers.
2) 4 MB of Expanded RAM using an updated LoTech EMM driver.
3) MicroSD hard drive access which functions similar to an XT_IDE in that files can be copied directly from a modern computer to the MicroSD and read by XTMax. It also works with very early IBM's which do not support expansion BIOS.

The project files are posted to GitHub: https://github.com/MicroCoreLabs/Projects/tree/master/XTMax

And the project can be found on my blog here: https://microcorelabs.wordpress.com/2024/11/1 … ing-teensy-4-1/

image-1.png

Reply 2 of 23, by weedeewee

User metadata
Rank l33t
Rank
l33t

This looks like a very nice project.

What further plans do you have for it? RTC, ne2000 network, audio... ?

Are the EMS memory & base ram expansion using an extra psram on the teensy?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 3 of 23, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I like the pin header! 🙂

"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//

Reply 4 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie
weedeewee wrote on 2024-11-18, 19:43:

This looks like a very nice project.

What further plans do you have for it? RTC, ne2000 network, audio... ?

Are the EMS memory & base ram expansion using an extra psram on the teensy?

Thanks!

No additional plans for the project. PicoMem has great support for things like networking and audio, however it falls a bit short on the conventional memory expansion and MicroSD support.

XTMax is a simpler design which has no limitation bringing an XT up to 640 KB of zero wait-state memory that can support the DMA of physical floppy and hard drives.

XTMax MicroSD support is as simple to use as an XT_IDE card. Files on the MicroSD are easily accessible on any Windows/Linux/Mac/Chromebook computer and the XTMax. PicoMem can only use disk images - at least at the moment.

Yes, the EMS memory uses a PSRAM on the Teensy 4.1 board. There are actually two footprints, so much more EMS memory can be supported once a EMM 4 driver is available.

Reply 5 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie

Basically the project is meant to integrate and obsolete three ISA cards: AST-SixPak, LoTech EMM, and XTIDE. In one slot your machine would be expanded to 640 KB, 4 MB of Expanded RAM, and a universally accessible MicroSD hard disk.

Reply 6 of 23, by weedeewee

User metadata
Rank l33t
Rank
l33t
MicroCoreLabs wrote on 2024-11-18, 20:59:

Basically the project is meant to integrate and obsolete three ISA cards: AST-SixPak, LoTech EMM, and XTIDE. In one slot your machine would be expanded to 640 KB, 4 MB of Expanded RAM, and a universally accessible MicroSD hard disk.

That's wonderful !
Though I only have one mainboard that might be able to use it, an old 286-6 with 256K? I think, it's been a while since I used it.
I also looked at the Teensy and saw that it could have a battery operated RTC and thought, hey that would be useful on such old machines that lack an RTC.
I doubt the picomem has an rtc or the ease to get one like the teensy has.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 8 of 23, by weedeewee

User metadata
Rank l33t
Rank
l33t
MicroCoreLabs wrote on 2024-11-18, 21:43:

Interesting... it may be easy to add. I will check. Thanks!

Thank you.

it might be an annoyance since there was no standard IO port set for the RTC on those first pcs and also no standard way to access it.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 9 of 23, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

Unfortunately a back-up battery on the T4.1 doesn't last too long, only around 4-6 months for a CR2032. If you wanted decent battery lifetime it would be better to add an external RTC module to the Teensy.

Reply 10 of 23, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

This is pretty awesome, thanks.

I could maybe use one in future. A few annoying questions though, so I know the full range of it's abilities.

1) Estimated (or tested) maximum bus speed supported?

2) Are there obstacles to it working on a 5150 IBMPC original 5 slot motherboard? Edit: Nevermind, see you had it on a 5150 Rev A with 64Kb on your blog.

3) Would it work on low end AT class, with an appropriate XTIDE BIOS swap, for EMM and SDCard ?? (Yeah I know it's 8 bit, but 16 bit original EMM and HDD interfaces are pretty damn slow anyway on 286.)

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 11 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie

This is pretty awesome, thanks.
I could maybe use one in future. A few annoying questions though, so I know the full range of it's abilities.

Thanks! My pleasure to answer yourquestions.

1) Estimated (or tested) maximum bus speed supported?

I believe the fastest system it has been tested in so far was a bus speed of 12 Mhz, but because the Teensy runs at > 900 Mhz it should have no trouble responding to ISA bus cycles at any speed.

2) Are there obstacles to it working on a 5150 IBMPC original 5 slot motherboard?

No obstacles at all. In fact XTMax can provide conventional memory up to 640 KB even though the BIOS only counts up to 544 KB! The additional memory is accessible and can be seen by tools like Norton Utilities. Also, the very early 5150's did not support extension ROM, so it is not possible to use a flash-type hard disk like XTIDE or PicoMem. XTMax does not use an extension ROM, so it can provide MicroSD flash hard disk to these early machines.

3) Would it work on low end AT class, with an appropriate XTIDE BIOS swap, for EMM and SDCard ?? (Yeah I know it's 8 bit, but 16 bit original EMM and HDD interfaces are pretty damn slow anyway on 286.)

I would say yes. XTMax has already been used in a 286 machine where it added the 4 MB of Expanded Memory and MicroSD card support, so it can replace the XTIDE and vintage EMM cards.

Reply 12 of 23, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Thanks, wonderful, great to have such a card for the older machines, single purpose ones eat up the slots real quick.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 13 of 23, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie

After looking at the schematic I'm a bit confused; you've got address pins 0-7 and data pins 0-7 muxed to 8 Teensy pins (Teensy_A0-7), but then also have data 0-7 connected to another set of 8 Teensy pins (Teensy_OUT_D0-7).
You're using LVC245s for level shifting which are bidirectional, so why are different sets of Teensy pins being used for input vs. output? Or to put it another way, why not get eliminate U1?

Reply 14 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie
jmarsh wrote on 2024-11-19, 20:03:

After looking at the schematic I'm a bit confused; you've got address pins 0-7 and data pins 0-7 muxed to 8 Teensy pins (Teensy_A0-7), but then also have data 0-7 connected to another set of 8 Teensy pins (Teensy_OUT_D0-7).
You're using LVC245s for level shifting which are bidirectional, so why are different sets of Teensy pins being used for input vs. output? Or to put it another way, why not get eliminate U1?

It takes too much time to change the direction of IOs, so it is better to keep IO's as singe-direction inputs or outputs.

Edit: Well, I shouldn't say too much time... But it definitely takes time. So since I had enough I/O pins I chose to optimize it for speed by making them all single-direction so it would work with the fastest ISA busses.

Reply 16 of 23, by weedeewee

User metadata
Rank l33t
Rank
l33t
jmarsh wrote on 2024-11-19, 18:36:

Unfortunately a back-up battery on the T4.1 doesn't last too long, only around 4-6 months for a CR2032. If you wanted decent battery lifetime it would be better to add an external RTC module to the Teensy.

Oh. That's a bummer.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 17 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie
jmarsh wrote on 2024-11-19, 20:34:

Changing the direction of the Teensy's GPIOs? You're already doing that (twice) when reading from PSRAM...

True, but it still adds time even when you write directly to the GDIR registers. Maybe I didn't need the extra speed - but I still have it! 😀

The PSRAM is not a critical path in XTMax. It will run as fast as it can, but there is no limit on how long it takes because there are ISA bus wait states added.

Responding to memory cycles on a fast ISA bus has much tighter speed requirements - especially if you want to have zero wait states. This was on my mind when keeping the ISA bus as single-direction signals.

Reply 18 of 23, by Predator99

User metadata
Rank l33t
Rank
l33t

Looks very interesting, thank you!

Do you know if it is possible with your card (or the PicoMem) to replace the whole onboard-RAM on the motherboard? This would be useful i.e. for this board...
https://theretroweb.com/motherboards/s/micron … 10-xx-09-00021-
...where all of the RAM is located on a proprietary expansion card which one might not have.

A 386 might be a bad example. But can I start a XT with no onboard RAM but with a XTMax installed?

Reply 19 of 23, by MicroCoreLabs

User metadata
Rank Newbie
Rank
Newbie

Do you know if it is possible with your card (or the PicoMem) to replace the whole onboard-RAM on the motherboard?

Yes, in theory, because XTMax can emulate all 640 KB of the system's RAM. For motherboards with all of their RAM provided in an ISA slot then XTMax could handle it all.

But for PC/XT's and most computers with memory already on the motherboard there are buffers which would need to be disabled by cutting some pins to stop them from responding to addresses and conflicting with XTMax.

The same would be true for the BIOS ROMs. If they were similarly disabled on the motherboard then XTMax could emulate these as well!