• Please review our updated Terms and Rules here

Experiences loading DOS into upper memory on an XT-class Tandy 1000?

Eudimorphodon

Veteran Member
Joined
May 9, 2011
Messages
7,020
Location
Upper Triassic
Recently I designed and built a simple Plus-bus RAM card for my Tandy 1000 EX that came with only the built-in 256k. This card includes the ability to map the remaining 128k of the 512k SRAM chip used to backfill the lower 640k into the empty D0000h and E0000h pages in the memory map.

The reason I included this feature is I'd stumbled across several threads on this forum of people successfully using Upper Memory Blocks to load device drivers and DOS on XT-class machines. (First machine I ever owned with support for UMBs back in the day was a 486.) However, in researching this I wasn't able to find solid accounts of this working on XT-class Tandy 1000s with add-on memory boards; to the contrary, it seemed like there were several accounts of this specifically not working, or at least being unstable somehow. Now that I have my card working with the XT-IDE CF daughtercard I designed for it and have a "hard disk" I've started fiddling with actually using the UMBs on my card for something other than a simple RAM disk. I'm curious if anyone has experiences they're willing to share about using UMBs on their Tandy 1000s and what software configurations work best. (Or don't work.)

Here's the result of my first attempt. Out of many apparent possibilities I chose USE!UMBS.SYS for the upper memory manager and DOSMAX version 2.1 to actually force DOS high. The operating system I used is plain MS-DOS 5.0. Here is what conventional RAM looks like without upper memory enabled:

Code:
Conventional Memory :

  Name                Size in Decimal       Size in Hex
-------------      ---------------------   -------------
  MSDOS              53744      ( 52.5K)       D1F0
  BIOSPTCH             128      (  0.1K)         80
  COMMAND             4704      (  4.6K)       1260
  FREE                  64      (  0.1K)         40
  FREE              580176      (566.6K)      8DA50

Total  FREE :       580240      (566.6K) 

Total bytes available to programs :                           580240   (566.6K)
Largest executable program size :                             580064   (566.5K)

This is the configuration I arrived at for config.sys:

Code:
DOS=high,umb
files=30
buffers=10
device=c:\tandy\use!umbs.sys D000-EFFF
device=c:\tandy\dosmax.exe /P:-
devicehigh=c:\tandy\biosptch.sys

(biosptch.sys is a driver to allow access to oddball giant floppy images on my Flashfloppy-equipped Gotek)

With this configuration this is what "mem /c" reports:

Code:
Conventional Memory :

  Name                Size in Decimal       Size in Hex
-------------      ---------------------   -------------
  MSDOS               9312      (  9.1K)       2460
  USE!UMBS             192      (  0.2K)         C0
  COMMAND             4704      (  4.6K)       1260
  FREE                  64      (  0.1K)         40
  FREE              624592      (610.0K)      987D0

Total  FREE :       624656      (610.0K) 

Upper Memory :

  Name                Size in Decimal       Size in Hex
-------------      ---------------------   -------------
  SYSTEM            249904      (244.0K)      3D030
  DOSMAX               224      (  0.2K)         E0
  BIOSPTCH             128      (  0.1K)         80
  FILES               1488      (  1.5K)        5D0
  FCBS                 256      (  0.3K)        100
                      5328      (  5.2K)       14D0
  LASTDRIV             448      (  0.4K)        1C0
  INSTALL              128      (  0.1K)         80
  FREE               85968      ( 84.0K)      14FD0

Total  FREE :        85968      ( 84.0K) 

Total bytes available to programs (Conventional+Upper) :      710624   (694.0K)
Largest executable program size :                             624480   (609.8K)
Largest available upper memory block :                         85968   ( 84.0K)

Nearly 44k freed and almost 610k conventional DOS memory on a machine that effectively has only has 624k instead of 640k. Not bad?

Here's a couple screenshots of Check-It 3 reporting on conventional and upper RAM usage.

basemap.jpg

umbmap.jpg

I can't say I've tested it extensively, but I have run a fair amount of things, including programs using Tandy Graphics/Sound modes, and I haven't seen any crashes. However, I did run into an anomaly that I'm not sure is just a cosmetic problem or not. I can reliably reproduce that after running a program that allocates more than the default 16k off the top of memory the "mem /c" command will no longer output information about upper memory. Screenshot:

DOSmem.jpg

It is consistent that the "Size in Decimal" reported by mem /c for "MSDOS" in conventional memory changes slightly, from 9312 to 9296. There don't seem to be any ill-effects, Check-It still shows the upper memory map identically and the system doesn't seem to crash, but it's... interesting. Presumably some top-of-memory structure is getting updated in a way that confuses mem /c (I can reproduce this easily just using a BASIC program that clears 32k of video memory for Tandy video modes 5 or 6.)

Anyway, I'm curious about other people's experiences with trying this on Tandy 1000s, especially the 8088/8086-equipped models that can't take the "768k" expansion that prevents the machine from sharing video RAM with conventional memory. I haven't tried alternate software yet (it looks like Quarterdeck's QRAM might be a possibility?) or other DOS versions, if someone's using that I'd love to hear about it.
 
I've yet to have trouble with the (hardware EMS 4.0 compliant) Acculogic RAMpAT!-Plus and QRAM.SYS combination in my TL/2. Where that pairing allows for the simultaneous use of UMBs and EMS, I've also had success using the just 64K page frame area of an EMS 3.2 card for UMBs (where QRAM.SYS is again the provider), in lieu of EMS accessibility.

Your post makes me want to revisit trying to get the video controller in a 768K system to map its 128K memory into the C0000h-DFFFFh range (when a VGA card is installed, of course). There's a bit combination that you'd think would allow for this, but I've struck-out with every attempt thus far.
 
Last edited:
Your post makes me want to revisit trying to get the video controller in a 768K system to map its 128K memory into the C0000h-DFFFFh range (when a VGA card is installed, of course). There's a bit combination that you'd think would allow for this, but I've struck-out with every attempt thus far.

I do wonder what the limits are for reprogramming Big Blue's hardware registers. It seems in principle at least the chip installed in the EX, HX, and SX *should* support being reprogrammed the same way as the one in the TX to allow a full 640k base and just limiting the onboard RAM to the video page (assuming you fitted your machine with a suitable RAM card), but the BIOS is hardwired to only count expansion memory up to the (expansion)+(built-in) = 640k mark.

Not that 610k free RAM is a bad number, that's DOS 5 with almost as much free as 2.11(*), which should allow any software that's actually usable on an XT to run. Unfortunately I'm still waiting for chips to show up to build my prototype serial card, I'm really dying to see what the numbers are (and if it stays stable) after adding a mouse driver.

(* Actually, that's almost as much as DOS 2.1 leaves free on a PC with a full 640k according to this, so it's actually more free DOS RAM than a Tandy 1000 ever had stock?)
 
Last edited:
Why do you have the line...

DOS=high,umb

in your config.sys?

1) It only works on a 286 or greater.

2) It requires himem.sys to be loaded.
 
Why do you have the line...

DOS=high,umb

in your config.sys?

1) It only works on a 286 or greater.

2) It requires himem.sys to be loaded.

The program I'm using to enable high-loading of DOS on an XT, DOSMAX, requires the "high" flag to be set in order to stuff DOS into a UMB. It essentially pirates the calls that would normally go to himem.sys. So with DOS 5 at least you do have to set "dos=high,umb"; if I just set "dos=umb" DOSMAX loads DOS data (files/FCBS/buffers, etc) into UMBs and enables "devicehigh" but doesn't move DOS itself.

So, yes, normally "dos=high" makes no sense on less than a 286. But it does here.
 
I've yet to have trouble with the (hardware EMS 4.0 compliant) Acculogic RAMpAT!-Plus and QRAM.SYS combination in my TL/2. Where that pairing allows for the simultaneous use of UMBs and EMS, I've also had success using the just 64K page frame area of an EMS 3.2 card for UMBs (where QRAM.SYS is again the provider), in lieu of EMS accessibility.

Out of curiosity, would you be interested in posting your config.sys/autoexec.bat and what kind of numbers you're getting from "mem /c" (or the equivalent?) I still haven't found anything to complain about yet with my USE!UMBS/DOSMAX configuration, but it's probably worth shopping around.

Been installing more software and still haven't found anything obviously wrong with the UMB-loaded DOS. Have to say, this EX with its high DOS, V-20, and SSD (okay, CF) is the slickest sub-286 machine I've ever owned. Granted the near-instantaneous disk performance probably deserves the most credit.
 
This is from several years back, but the configuration hasn't really changed much since then, other than the addition of a Windows 3.0 configuration/menu item:

http://www.vcfed.org/forum/showthread.php?43219-Tandy-TL-2-and-HIMEM-SYS&p=330456#post330456

I'm not able to load the entirety of DOS high, due to a lack of free UMB space, but the remaining conventional memory is adequate nonetheless. With your setup, it sounds like the USE!UMBS/DOSMAX combination is probably ideal.
 
I also am using USE!UMBS and DOSMAX.
I notice that

Command
And
Dos kernel

Are still in lower 640k ram in your setup. Any way to move either of those to UMB?

When I try to move COMMAND in my setup I get a Locked up computer.
 
I also am using USE!UMBS and DOSMAX.
I notice that

Command
And
Dos kernel

Are still in lower 640k ram in your setup. Any way to move either of those to UMB?

There will always be *some* DOS footprint in the bottom of RAM; coincidentally today I've been messing around with PC-DOS 7/2000 (post here) based on a claim that it had the absolute least RAM consumption of any DOS, and while that reputation seems to be well earned even it still needs about 9k of conventional RAM. (Remember, a fair chunk of that isn't even exactly code, it's the locations for DOS API calls, variables, etc. It'll still need to be there even if ever last loop of actual algorithm gets relocated up high.)

I had given up on trying to use SHELLMAX to get the stub of command.com loaded high under both DOS 5 and 6.22; supposedly it can move the roughly 4.5k resident part into a UMB but, and maybe I was missing something, but I never actually saved any RAM with it. I *did* just now get that working under PC-DOS 2000, however; its COMMAND.COM has an explicit "/H" switch to get to load into a UMB; that didn't seem to work on its own if I just did "SHELL=COMMAND.COM /H /P", but if I do *both* SHELLMAX and /H it loads high, leaving me with a conventional RAM footprint of only 9,248 bytes.

That all said, though, if you're getting the roughly 15k footprint I was getting without COMMAND loaded high in DOS 5 on your Zenith machine that counts up to 704k conventional that's still an ungodly amount of conventional RAM, more than any program is likely to use. (What does MEM /C say your largest executable program size is?)

I'll paste in my current PC-DOS 7 config.sys/autoexec.bat's when I can get them transferred over.
 
A few comments:
- I did see that DOSMAX attempted to move COMMAND.COM to UMB. So, I was thinking that it must have been possible but I'm doing something wrong,
- I started out with DOSMAX 1.7 but will shift over to 2.1 and try that. I saw there was a interrupt-off switch, perhaps that's got something to do with moving the last bits of DOS to UMB? I'll give that a whirl.
- my config.sys is much like yours, above in this thread.

I'll try to add some actual output from Checkit3 and mem /c.

At this point, I agree, it is getting ridiculous. Following your advice, If I move XUB down to C000, I will have a free UMB from C4000 to F0000. That, plus conventional RAM from 00000 to B0000, I end up with enough ram to run a max program of almost 700k.
(I haven't changed the placement of XUB yet. It still occupies C8000-CC000.)

edit:

here is my config.sys
Code:
FILES=30
BUFFERS=20
DOS=HIGH,UMB
DEVICE=C:\utils\USE!UMBS.SYS CC00-F000
DEVICE=C:\utils\DOSM86.exe /R+ /N- /P+ /W- /Y- /I+ /X+ /A0
DEVICEHIGH=C:\DOS\SETVER.EXE

I believe the /A0 switch is what prevents DOSMAX 1.7 from trying to move COMMAND.COM to UMB. I seem to need that switch in place to keep COMMAND where it normally is, so I can boot.

here is my mem /c output:
Code:
Conventional Memory :

  Name                Size in Decimal       Size in Hex
-------------      ---------------------   -------------
  MSDOS               9312      (  9.1K)       2460
  USE!UMBS             192      (  0.2K)         C0
  DOSM86               240      (  0.2K)         F0
  COMMAND             4704      (  4.6K)       1260
  FREE                  64      (  0.1K)         40
  FREE              706272      (689.7K)      AC6E0

Total  FREE :       706336      (689.8K) 

Upper Memory :

  Name                Size in Decimal       Size in Hex
-------------      ---------------------   -------------
  SYSTEM            151600      (148.0K)      25030
  SETVER               400      (  0.4K)        190
  LASTDRIV             448      (  0.4K)        1C0
  BUFFERS            10640      ( 10.4K)       2990
  FCBS                 256      (  0.3K)        100
  FILES               1488      (  1.5K)        5D0
  CTMOUSE             3312      (  3.2K)        CF0
  FREE               93840      ( 91.6K)      16E90

Total  FREE :        93840      ( 91.6K) 

Total bytes available to programs (Conventional+Upper) :      800176   (781.4K)
Largest executable program size :                             706160   (689.6K)
Largest available upper memory block :                         93840   ( 91.6K)

  35659776 bytes total contiguous extended memory
  35651584 bytes available contiguous extended memory


As you can see, somewhere there is some counter in BIOS data that indicates extended memory, and that is a bit out of whack!

here are the screenshots of Checkit3:

20191226_085330 (Large) (Medium).jpg

20191226_085400 (Large) (Medium).jpg
 
Last edited:
- I started out with DOSMAX 1.7 but will shift over to 2.1 and try that. I saw there was a interrupt-off switch, perhaps that's got something to do with moving the last bits of DOS to UMB? I'll give that a whirl.

I've been using 2.1, and digging through the documentation for that it looks like the syntax related to loading high COMMAND.COM has indeed changed since 1.7. There's this in the 2.0 release notes in particular.

(4) Added /C+ switch to enable the COMMAND.COM split feature. For most
users, /A0 was forgotten and only caused unnecessary "Packed file
corrupt" messages and wasted space. You may still use this feature,
but you must first enable it with /C+, since the default is now off.

Going through that documentation I kind of want to stick my 6.22 SD back in and try again to see if I can get the command.com split feature to work, since I see a knob that I don't think I tried twisting. It's still not entirely clear to me how the command.com-related switches to DOSMAX and the SHELLMAX.COM wedge interact, though. Again, DOS 7's command.com has its own switch to poke it to try to occupy high RAM and it seems like I had to use that *and* shellmax to make it take effect, but this could be one of those "changed two variables at once" situations.

In any case, though, it looks like the low RAM footprint you achieved with what you have is about dead-on the same as what I got with DOS 5 in my Tandy 1000, so outside of the command.com loading high you're doing about as well as you can reasonably expect. A 689.6K TPA is, again, bigger than any DOS program is ever likely to be able to use given it's a good 60k larger than what you can get in any "standard" 640k machine. You're going to have to work pretty hard to find enough stuff to fill up all that UMB space, too!
 
I can't say I've tested it extensively, but I have run a fair amount of things, including programs using Tandy Graphics/Sound modes, and I haven't seen any crashes. However, I did run into an anomaly that I'm not sure is just a cosmetic problem or not. I can reliably reproduce that after running a program that allocates more than the default 16k off the top of memory the "mem /c" command will no longer output information about upper memory...

So it's been a while since I started this thread, and I know since then several other people have built RAM cards for the Tandy 1000EX/HX that include some UMB support. (And of course this would also apply to any 8088/8086 "box" Tandy 1000, since only the 286 machines have the option for 768k RAM on the motherboard that eliminates the "RAM stealing" from the end of the 640k space.) I'm curious if anyone else can confirm this observation that running a program that utilizes a 32k Tandy graphics mode "breaks" DOS'es awareness of the upper memory blocks.

After putting PC-DOS 7 on the machine I tested to see if it had the same behavior as 5 and 6.22, and it does; running any program that resets the top of DOS RAM downwards from the normal boot-time 624k mark breaks the mem /c output so it will no longer show any contents of what resides in the upper memory blocks. (And it will also report no UMB RAM present, period.) I can now also confirm that at least on PC-DOS 7 the breakage is a little more than cosmetic because after this happens the "loadhigh" command will no longer work. (I have a "netstart.bat" that loads my network card's packet driver and does other setup; if I run this after running a Tandy graphics program the packet driver will end up in low memory instead of the loadhigh taking effect.) Programs/drivers that are loaded high *before* running a Tandy graphics program will still continue to work, however; the mouse driver works, as does the packet driver if I load it high first, etc. Checkit 3's memory map is also still able to show what's loaded into the UMBs.

Anyway, it doesn't seem to be any kind of a showstopper bug since the only thing that breaks is the ability to load new things into UMBs, but I am kind of curious what's getting clobbered when the machine switches the top of memory pointer. I assume it must be something along the lines of the BIOS video mode switching routine overwriting some bytes that DOS is expecting to remain inviolate adjacent to the value that needs to be reset.
 
Last edited:
I *did* just now get that working under PC-DOS 2000, however; its COMMAND.COM has an explicit "/H" switch to get to load into a UMB; that didn't seem to work on its own if I just did "SHELL=COMMAND.COM /H /P", but if I do *both* SHELLMAX and /H it loads high, leaving me with a conventional RAM footprint of only 9,248 bytes.

So, apparently I lied about needing SHELLMAX to get PC-DOS 2000's COMMAND.COM to load high; I'd swear it didn't work when I first tried it, but I just tried again using the SHELL argument without SHELLMAX in CONFIG.SYS and it seems to leave me with the same conventional RAM footprint of 9k. Not sure why it didn't work the first time, maybe I fatfingered something.

In case anyone's interested here's my current config.sys and autoexec.bat files; this is from an HX with 96k of UMB at C800-DFFF:

Code:
CONFIG.SYS:

FILES=30
BUFFERS=10
DOS=HIGH,UMB
DOSDATA=UMB
drivparm=/d:0 /f:2
device=c:\tandy\use!umbs.sys C800-DFFF
device=c:\tandy\dosmax.exe /P:-
devicehigh=c:\tandy\biosptch.sys
REM DEVICE=C:\DOS\HIMEM.SYS
DEVICEHIGH=C:\DOS\SETVER.EXE
REM DEVICE=C:\DOS\POWER.EXE
rem SHELL=c:\tandy\SHELLMAX.COM C:\COMMAND.COM C:\ /e:256 /P /H
SHELL=C:\COMMAND.COM C:\ /e:256 /P /H
devicehigh=c:\dos\ansi.sys

AUTOEXEC.BAT:

@ECHO OFF
SET DMCONFIG=C:\DESKMATE
SET PATH=C:\DOS;C:\TANDY;C:\UTIL\MTCP\;C:\DESKMATE;%PATH%
SET TEMP=C:\DOS
REM C:\DOS\MOUSE.COM
c:\dos\mode com2:96,n,8,1
c:\tandy\smwclock -s
c:\tandy\steprate 3
c:\tandy\ctmouse.exe /R0
LOADHIGH C:\DOS\DOSKEY.COM
LOADHIGH c:\tandy\xprt.com
REM SET IBMAV=C:\DOS
REM CALL C:\DOS\IBMAVDR.BAT C:\DOS\
rem C:\DOS\DOSSHELL
SET MTCPCFG=C:\util\mtcp\mtcp.cfg
echo "Welcome to 1986!"
PROMPT $p$g

Here's the mem /c output with everything in autoexec.bat loaded plus my NE2000 DOS packet driver. This leaves in total 615k out of 624k free conventional RAM, plus about 31k left of upper memory.

Code:
Modules using memory below 1Mb:

  Name           Total       =   Conventional   +   Upper Memory
  --------  ----------------   ----------------   ----------------
  SYSTEM      16,704   (16K)      9,040    (9K)      7,664    (7K)
  USE!UMBS       192    (0K)        192    (0K)          0    (0K)
  DOSMAX         240    (0K)          0    (0K)        240    (0K)
  BIOSPTCH       128    (0K)          0    (0K)        128    (0K)
  SETVER         816    (1K)          0    (0K)        816    (1K)
  ANSI         3,600    (4K)          0    (0K)      3,600    (4K)
  INSTALL        160    (0K)          0    (0K)        160    (0K)
  COMMAND      4,800    (5K)          0    (0K)      4,800    (5K)
  CTMOUSE      3,104    (3K)          0    (0K)      3,104    (3K)
  XPRT           528    (1K)          0    (0K)        528    (1K)
  DOSKEY       3,952    (4K)          0    (0K)      3,952    (4K)
  NE2000       4,656    (5K)          0    (0K)      4,656    (5K)
  FREE       661,392  (646K)    629,728  (615K)     31,664   (31K)

Memory summary:

  Type of Memory       Total    =     Used    +     Free
  ----------------  -----------   -----------   -----------
  Conventional          638,976         9,248       629,728
  Upper                  61,312        29,648        31,664
  Reserved              348,288       348,288             0
  Extended (XMS)              0             0             0
  ----------------  -----------   -----------   -----------
  Total memory        1,048,576       387,184       661,392

  Total under 1Mb       700,288        38,896       661,392

  Largest executable program size         629,712     (615K)
  Largest free upper memory block          31,456      (31K)

I hear tell that it may be possible to free up an additional 80 bytes of conventional memory by using the non-Y2K-patched PC-DOS 7 kernel instead of PC-DOS 2000, but other than that I think I'm getting pretty close to the limits of what's possible on a lowly Tandy 1000.
 
So it's been a while since I started this thread, and I know since then several other people have built RAM cards for the Tandy 1000EX/HX that include some UMB support. (And of course this would also apply to any 8088/8086 "box" Tandy 1000, since only the 286 machines have the option for 768k RAM on the motherboard that eliminates the "RAM stealing" from the end of the 640k space.) I'm curious if anyone else can confirm this observation that running a program that utilizes a 32k Tandy graphics mode "breaks" DOS'es awareness of the upper memory blocks.

After putting PC-DOS 7 on the machine I tested to see if it had the same behavior as 5 and 6.22, and it does; running any program that resets the top of DOS RAM downwards from the normal boot-time 624k mark breaks the mem /c output so it will no longer show any contents of what resides in the upper memory blocks. (And it will also report no UMB RAM present, period.) I can now also confirm that at least on PC-DOS 7 the breakage is a little more than cosmetic because after this happens the "loadhigh" command will no longer work. (I have a "netstart.bat" that loads my network card's packet driver and does other setup; if I run this after running a Tandy graphics program the packet driver will end up in low memory instead of the loadhigh taking effect.) Programs/drivers that are loaded high *before* running a Tandy graphics program will still continue to work, however; the mouse driver works, as does the packet driver if I load it high first, etc. Checkit 3's memory map is also still able to show what's loaded into the UMBs.

Anyway, it doesn't seem to be any kind of a showstopper bug since the only thing that breaks is the ability to load new things into UMBs, but I am kind of curious what's getting clobbered when the machine switches the top of memory pointer. I assume it must be something along the lines of the BIOS video mode switching routine overwriting some bytes that DOS is expecting to remain inviolate adjacent to the value that needs to be reset.
Did you ever figure this one out? I am building a Tandy 1000 image for the new PCXT MiSTer fpga core and I am running into the same issue. We have memory space available in A000-B000 C000-EC00 and no matter the combination of UMBS! and LTEMM I run into the same problem. It seems to actually cause some of the programs to crash from the UMB. A great example is lfndos loaded high. Everything works fine except when you kick off a Tandy Graphics game or .BAS file that triggers it like the Tandy logo. Once basic runs and displays it then lfndos will crash out of its shell with an abnormal termination. I see a couple of other games do this as well, Eye of the Beholder, Keen 4 (TGA), Indianapolis 500, Indiana Jones, etc. mem /c confims that the UMB just seems to be gone, though like you said, things like mouse loaded there still function. I am also using DOSMAX.

Easy test:
lh lfndos (from freedos or https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/system/lfndos/ )
basic showlogo.bas (from here https://forum.vcfed.org/index.php?attachments/tandylogo-zip.1067487/ )
crash


The DOS games frontend we have built uses Long file names for folders so it would be really nice to figure out this UMB bug. I was hoping you found a work around.
 
Welcome to the forum @flynnsbit !

Which MiSTer hardware are you using?

You might want to introduce yourself in the appropriate area.

- Alex
Done, It's the standard Mister DE10-Nano with all the fixin's. If you know the mt32-pi project I built the AO486 side of that and the integration into the Top 300 games 486 pack. I don't have a Tandy 1000 to test my theory on this problem above only manafests with the Tandy 1000 bios. The IBM 5160, JukoST, micro8088 and GLABIOS_0.2.0_8T all work fine with the exact same VHD disk with UMB, LTEMM, and DOSMAX together.

Though running Tandy code on those are CGA so it could be something specific to the memory in combo with Tandy graphics? Just a theory. We only have support in the PCXT core for the original Tandy1000 bios so I can't test any other bios/machines beyond that with TGA.

Is there a Tandy 1000 PC emulator that support LTEMM(EMS) any size could be small like 32K for EMS, UMB area DOS high and umb, and dosmax?
 
I was hoping you found a work around

If you’re constructing a new FPGA core the best workaround I can think of would be to do a mashup that uses the BIOS of the Tandy 1000 TX instead of a standard 1000. The TX when fitted with “768k” has 640k of ”CPU hardwired” memory so this issue of having to change the memory ceiling for Tandy video modes doesn’t come up; the 128k owned by the video chip is entirely page-flipped in the B0000h address space.

I’d love to be able to put together a hacked BIOS for the 1000EX/HX/SX that would allow them to do the same if fitted with an expansion board that backfills the full 640k, but that is currently well beyond my rudimentary x86 assembly language skills.
 
Has anyone else tried using DR-DOS 5 or higher to gain upper memory support on a Tandy 1000?

I have the 3-in-1 expansion card which gives me 96K of UMB's on my 1000EX, but I couldn not get MS-DOS 6.22 and USE!UMBS to work properly no matter what I tried. So on a whim I tried DR-DOS 5 and the included HIDOS.SYS driver with the appropriate switches (/CHIPSET=RAM, /USE=C800-DFFF) and it actually seems to work just fine. I never ran DR-DOS back in the day, so I'm not sure what I may be missing in terms of compatibility?
 
Back
Top