PDA

View Full Version : HIMEM.SYS not finding XMS on a Toshiba T3200

CloakedAlien
July 5th, 2016, 01:45 AM
If I recall correctly I could on my old 286 desktop make use of the 384KB extra RAM using HIMEM.SYS and loading DOS in the UMB.

This does not seem to work on my T3200 (286-system), it's simply not finding any XMS.

I've got an old Ericsson Portable PC (XT) that has 384KB extra ram as well but that can only be used as a ramdisk. So I'm guessing there's something special with that extra RAM in my T3200 as well. The system counts up to 1024 each boot though so it's certainly there.

I haven't been able to find anything in the online reference manuals yet that confirms or denies the possibility utilize it as UMB.

Maybe someone here knows for sure? =)

3pcedev
July 5th, 2016, 02:39 AM
It might has EMS installed, not XMS. EMS can't be used to load dos high etc; it's only good for programs that directly utilise it.

CloakedAlien
July 5th, 2016, 02:47 AM
It might has EMS installed, not XMS. EMS can't be used to load dos high etc; it's only good for programs that directly utilise it.

Hmm, but it's not listed in EMS when I run MEM.EXE and not recognized by norton sysinfo. Do I need a driver to let programs access it? EMM386/286 requires HIMEM.SYS and recognized XMS.

But I have seen mentions for Word and Lotus so you might be onto something.

Stone
July 5th, 2016, 02:57 AM
This does not seem to work on my T3200 (286-system), it's simply not finding any XMS.On some 286s you can to go into the setup and select whether to use that 384K as Shadow RAM or remap it to XMS.

CloakedAlien
July 5th, 2016, 06:40 AM
On some 286s you can to go into the setup and select whether to use that 384K as Shadow RAM or remap it to XMS.

Unfortunately I can't seem to do this with jumpers or configuration programs. The configuration program only lets me set HDD/FDD type, but it lists memory configuration.

Also, the official specs says:

"Memory
1024 KB standard. 640 KB may be used for MS-DOS and 384 KB as expanded memory (Lotus/ Intel/ Microsoft standard), as virtual disk, or as extended memory. Optional 3 MB memory expansion card for total RAM of 4 MB"

So I'm guessing it's some kind of hardware LIM EMS, but to use it as virtual disk I should be able to use some driver or something. Can't seem to find any direct reference yet though.

I've grown up using both XT and AT systems, but this is a new one for me. But it's part of the fun =)

CloakedAlien
July 5th, 2016, 07:58 AM
Found something called EMM.SYS which seems to give me access to the memory, at least QRAM can see it but I can't use it as HIGH memory. Not yet anyhow.

Stone
July 5th, 2016, 08:14 AM
EMM.SYS is another Expanded Memory Manager.

SomeGuy
July 5th, 2016, 10:13 AM
DOS memory management above 640k is a whole load of fun.

There are two types of additional memory: EMS and XMS.

EMS pages memory in to the 8088 1MB addressable block. Paging means that only a small amount of that memory is directly accessible to the CPU at any one given time. This is the only way to add memory above 640k on an 8088 or 8086 system and was used by many expansion cards. Some DOS productivity programs like Lotus 1-2-3 can make of this type of memory.

XMS is memory over 640k that is directly addressable by 286, 386, and higher CPUs as they have more address lines. Paging is not normally involved. Instead DOS programs copy data back and forth, but protected mode programs can access this memory directly. Most importantly, Windows 3.x needs XMS in order to operate. MS-DOS 5/6.x also need XMS to make use of a little hack (High Memory Area gives an extra 64k at the end of the real mode 1mb addressable area) to give DOS a little more free memory.

Some 286 and 386 machines had a hardware feature to make extra memory avaialble as EMS rather than XMS. You can not have both at the same time. (A 386 can simulate EMS, but you can't do that on a 286). It sounds like that is what this laptop does, and that this EMM.SYS file might be correct driver for it (Technically, each vendor had to supply their own EMS driver but there weren't that many of them). On 286s this was usually an option that could be configured via a DIP switch or jumper, but you will have to find a manual to be sure.

(On top of all of that, some 286 chipsets or EMM386 can map memory in the the Upper Memory Block of the 1MB DOS addressable area between the video ram and BIOS ROM and load drivers in there, but worry about the other stuff first)

The bottom line is on a 286, you really want XMS. You should be able to find a disk cache program or ram disk that can use EMS. But many later DOS programs, games, and Windows 3.x expect XMS. But if this laptop does not provide a way to switch between the two, you may be stuck with EMS.

CloakedAlien
July 5th, 2016, 10:32 AM
Cheers, thanks!

Yes, as far as I can tell it's EMS and not XMS. Nothing I can do about it. A bit of a shame, but better than nothing I suppose. Unfortunately using EMM.SYS to enable the EMS eats up parts of my conventional ram =/

The manual specifically states "1024 KB standard. 640 KB may be used for MS-DOS and 384 KB as expanded memory (Lotus/ Intel/ Microsoft standard), as virtual disk, or as extended memory. Optional 3 MB memory expansion card for total RAM of 4 MB." I'm guessing the optional ram card could possibly be used as XMS, that's how I interpret it, but I could be wrong. Seems like the RAM card is really hard to get a hold of though =/

Can EMS be used for any tricks at all or is it only useable by applications that directly supports it? 4DOS command interpreter can swap do it but it doesn't help me free up conventional ram.

I'm mainly interested in keeping as much conventional ram free as possible.

CloakedAlien
July 5th, 2016, 10:34 AM
Oh, and EMM.SYS seems to be Expanded Memory Manager 4.0s, don't know if it's the intel one.

krebizfan
July 5th, 2016, 10:52 AM
EMS can be used to load some DOS drivers high. With a 286, it can be tricky to figure out which drivers will survive being loaded high and which ones will crash immediately. You will need unallocated address regions in the upper 384k to load high. Fragmentation caused by hardware BIOSes can result in not having any block large enough to load a sizable driver high.

EMS can also sometimes be used for BIOS shadowing which would improve performance considerably on any code running off the ROMs.

Do you know what version of EMS the T3200 supports? Most of the good uses of EMS require EMS 4.0.

The Toshiba BIOS design is poor. I am pretty sure that you can reset the RAM from EMS to XMS but it requires finding the correct informational screen and then pressing a number to permit editing of values.

Stone
July 5th, 2016, 10:57 AM
The manual specifically states "1024 KB standard. 640 KB may be used for MS-DOS and 384 KB as expanded memory (Lotus/ Intel/ Microsoft standard), as virtual disk, or as extended memory.Are you sure that what it actually states? Because 'extended memory' *is* XMS.

SpidersWeb
July 5th, 2016, 11:08 AM
You're lucky, my Erricsson Portable only has 512KB RAM - nobody forked out for the printer or memory disk module.

From memory the T3200 lets you configure the extra RAM as EMS or XMS or a mix in the BIOS setup. Mash the keyboard during the RAM test to get in or use TEST3.EXE, and see if you have options for Expanded and Extended configurations. Last time I did this I remember it being as simple as highlighting the option and using the left and right keys to set the value.

SomeGuy
July 5th, 2016, 11:28 AM
There is a toshiba T3200 manual here:
http://www.minuszerodegrees.net/manuals/Toshiba/Other/Toshiba%20T3200%20-%20Maintenance%20Manual.pdf

And while it is about as clear as mud, it does seem to indicate that extended memory (XMS) is only avaialble with the extra RAM card. (Very unusual and a dumb design, but possible.)

CloakedAlien
July 5th, 2016, 01:24 PM
I've read the manual, I even have a printed one in Swedish =)

As far as I know I can only access BIOS using TEST3 or equivalent, it does NOT let me select any memory options. It asks me about each setting one at a time but you can only access the memory setting if you got the 3MB extra RAM card. I'm guessing the T3200SX and T3200SXC has much more flexible settings, but those are 386 machines.

As for Extended/Expanded that's what the text said here: http://www.abc80.net/docs/toshiba/t3200_E.pdf

Which is quite confusing to say the least =/

I can't even recall how i found EMM.SYS, I think I stumbled across it somewhere. Don't know what version of EMS the machine supports, don't know how to check it. Docs are a bit spotty on this matter. Maybe EMM.SYS has some fancy parameter that sorts all this, but haven't been able to find anything obvious using google yet.

Thanks for all your time guys, I really appreciate it. I love tinkering with these old machines and trying to get as much performance out of them as possible is a blast.

Freeing up more conventional ram would make the machine SO much more useable =)

CloakedAlien
July 5th, 2016, 01:32 PM
Editing the EMM.SYS it contains the string "TOSHIBA Expanded Memory Maneger Ver4.00 Copyright(c) 1987-1988 TOSHIBA ONE WORK" (yes, it's misspelled in the file). The other strings seems to reference EMS and only EMS as well.

CloakedAlien
July 5th, 2016, 02:03 PM
For anyone interested this is how my CONFIG.SYS looks now:
---8<---
dos=umb
device=c:\bin\emm.sys
devicehigh=C:\QRAM\QRAM.SYS FL=0
country=46,,c:\dos\country.sys
files=10
buffers=10
lastdrive=d
shell=c:\4dos\4dos.com /e:512 /p
---8<---

I'm using QRAM v2.02 and 4DOS 8.0.
Using this configuration I seem to be able to use the LOADHI-tool from QRAM to load stuff into a 64kb-block. It seems a bit inefficient but it's the best I've been able to pull off so far.

I found a thread where one of you guys posted some possible QRAM-parameters that might be worth trying out. But I have to admit this is a bit above me and it's pretty much trial 'n' error at this point.

3pcedev
July 5th, 2016, 02:06 PM
The phrase "Lotus Intel Microsoft" or LIM is a dead giveaway. LIM was the standard for EMS back in the day. Doesn't matter what driver you use, as long as its a LIM compatible.

krebizfan
July 5th, 2016, 02:22 PM
The phrase "Lotus Intel Microsoft" or LIM is a dead giveaway. LIM was the standard for EMS back in the day. Doesn't matter what driver you use, as long as its a LIM compatible.

That is incorrect. EMS 3.2 drivers will only provide a 64kB window; all the advanced features of loading high, multiple 16KB windows, and back-filling memory for multitasking require EEMS or EMS 4.0.

More importantly, the IBM EMS drivers shipped with DOS 4 only work with the non-standard EMS cards from IBM. Those drivers will cause data loss when used with any other card.

Other cards had differences in how handles were allocated. The correct EMS driver would generally provide the best performance though other drivers would typically work. EMS was very loosely defined standard.

3pcedev
July 5th, 2016, 02:40 PM
That is incorrect. EMS 3.2 drivers will only provide a 64kB window; all the advanced features of loading high, multiple 16KB windows, and back-filling memory for multitasking require EEMS or EMS 4.0.

More importantly, the IBM EMS drivers shipped with DOS 4 only work with the non-standard EMS cards from IBM. Those drivers will cause data loss when used with any other card.

Other cards had differences in how handles were allocated. The correct EMS driver would generally provide the best performance though other drivers would typically work. EMS was very loosely defined standard.

I probably should have qualified that more - I already read the OP was using a Toshiba EMS 4.0 based driver given by the string inside EMM.sys. Your right about the IBM cards/drivers; although I thought they were limited to the older EMS 3/3.2 standard.

CloakedAlien
July 6th, 2016, 05:03 AM
I just tried UMBEMS.SYS with my EMM.SYS and it gives me 64KB UMB and makes all the rest of the EMS unuseable (same as with using QRAM and FL=0), which is fine. As previously stated I just want maximum conventional ram available =)

But it also claims that a more up to date EMS driver might give me more memory, is this possible? Or is the 64KB limit pretty much standard for machines with presumed hardwar EMS rather than XMS?

CloakedAlien
July 6th, 2016, 05:11 AM
Just found this:
http://www.toshiba.pcxt-micro.com/detail/t3200.txt

Seems to indicate that those 384KB are "384K LIM-EMS 3.2"

Stone
July 6th, 2016, 05:46 AM
There's a program called USE-UMBS that may be useful.

CloakedAlien
July 6th, 2016, 07:10 AM
There's a program called USE-UMBS that may be useful.

Ah, thanks! Will look into it =)

As a side note: I just tried cramming in my Sound Blaster CT2940 (with physical OPL chip) and of course it ran into problems because it's PnP.
For the record CTCM ran just fine and I'm getting both FM and Digital Sound. It did however require me to load EMU386! I would never have figured that one out without some serious googling. The stuff I've learned just the last couple of days...

CloakedAlien
July 6th, 2016, 07:55 AM
I've tried USE-UMBS now but I'm not sure it would help me in any way.

The only way it sees any UMB is if I've already loaded EMM.SYS and either QRAM or UMBEMS.SYS, in which case I can already load certain programs in my 64KB block.

I have to run QRAM with the FL=0 option though, it claims:
---8<---
QRAM ERROR: Your EMS board only has a 64K page frame available for mapping in high memory. It is possible that your EMS driver or hardware can be reconfigured. For QRAM to create High RAM in the current configuration, you need to use the QRAM parameter: FL=0. This would, however, disable the ability for applications to use expanded memory.
---8<---

So either I have to make do with 64K, or there's an option with EMM.SYS that can work around it.

CloakedAlien
July 6th, 2016, 08:09 AM
Found a newer EMM.SYS now, it seems anyways. Claims to be the same version but binary is twice the size (22K instead of 10K) and the Copyright years have changed to 1987-1992, so it does seem to be from a later date.

Doesn't make any difference though and I have yet to see any way to figure out what parameters it can take.

I found it here:

CloakedAlien
July 6th, 2016, 08:13 AM
Are there any generic LIM-EMS 3.2 drivers or am I stuck with Toshibas specific ones?

Edit: Perhaps this is just the way it works when getting UMB from EMS? 64K is the limit? =)

CloakedAlien
July 6th, 2016, 08:48 AM
Bloody hell, I just realized that I'm currently up to 594K free conventional ram. I made sure to change some settings in 4DOS and load all my stuff in UMB.

That's actually quite impressive considering that's what I've managed to squeeze out of my IBM P70 that actually has high ram.

Stone
July 6th, 2016, 08:53 AM
Perhaps this is just the way it works when getting UMB from EMS? 64K is the limit? =)I think you are correct on that score. :-)

CloakedAlien
July 6th, 2016, 09:24 AM
I think you are correct on that score. :-)

I can live with that, especially with the ammount of free conventional RAM I have now! \o/

Also, I had an annoying issue with two keys on the keyboard being mixed up (Swedish layout).
Was fine in DOS 5.0 but not in DOS 6.22.

Solved it by copying keyb.com and keyboard.sys from 5.0 and using SETVER to fool it to run.
Just copying keyboard.sys didn't solve it though!

And since SETVER loads high it doesn't eat up my ram either! \o/

CloakedAlien
July 6th, 2016, 01:27 PM
Fun fact: UMBEMS.SYS works better than QRAM v2.02.
QRAM seems to make most of the games hang the computer.
At least with the newer EMM.SYS

SomeGuy
July 6th, 2016, 03:07 PM
Glad to hear loading things in to UMB is working for you. When you find a configuration that you are happy with, please do post the details.

I think the trickiest I had ever done were some chipset-specific UMB drivers, but I never encountered any 286s like this that could not also do XMS.

CloakedAlien
July 6th, 2016, 10:15 PM
Sure thing!

Fort starters I'm running MS-DOS 6.22 and 4DOS 8.0 as command interpreter (I think earlier versions consumed less RAM but they aren't freeware)
I've currently got a CT2940 PnP SB16 installed.
Machine is T3200 with 1024KB of RAM, 40MB HDD.
CT2940 requires CTCM to initialize. CTCM requires me to use EMU386 (not to be confused with EMM386), but these only have to be used ONCE! Even after a cold boot, loosing CMOS settings, I just have to run DIAGNOSE /S to make the card useable in games.

I also own a IBM P70 machine that I fitted with a SCSI-card and replaced the ESDI drive with a SCSI-one. Required a lot of hacking, splicing in a molex power connector to begin with, but it works beautifully! So I'm pondering if I should fit a 16-bit SCSI-card in the T3200 and use a 8-bit Sound Blaster instead... But only if I can route cables to replace the internal drive with a SCSI-one. If not I might be better off with a XTIDE-adapter but I've never used one of those (and it would cost me)

CONFIG.SYS

dos=umb
files=10
buffers=4
lastdrive=c
shell=c:\4dos\4dos.com /e:512 /p

REM Using Toshibas Memory Handler to access the EMS
device=c:\progs\toshemm\emm.sys

REM Using UMBEMS.SYS to create UMB from EMS
REM QRAM does the same thing but seems to make programs/games
REM accessing the sound card crash
device=c:\progs\umb\umbems.sys
rem device=c:\progs\qram\qram.sys fl=0

REM SetVer is used to fool the keyb.com from 5.0 to work
REM Using keyb.com and keyboard.sys from 5.0 to avoid the <> and '*
REM keys being switched
devicehigh=c:\dos\setver.exe

rem This is only needed to run the PnP utility CTCM for the CT2940
rem devicehigh=c:\progs\em3134b1\emu386s.exe

AUTOEXEC.BAT

@echo off
rem -(enviroment)------------------------------------------------------------
call c:\envrmnt.bat
alias /r aliases.cfg
lh setdos /A1 /B0 /M1 /S10:10

rem -(video)-----------------------------------------------------------------
rem hires

rem -(i\o)-------------------------------------------------------------------
lh mode con rate=32 delay=1
lh c:\stuff\xtra\keyb sv
lh kstack
lh diagnose /S
rem mixerset /P /Q
rem ctcm

echo -(initialization complete)----------------------------------------------

ENVRMNT.BAT

set prompt=Ó(mem: %%@dosmem[k]kb)þ(time: %%_time)þ($p$g
set path=c:\dos;c:\4dos;c:\progs\nc;c:\progs\nu;c:\pro gs\ctcm;c:\bin;c:\qram
set comspec=c:\4dos\4dos.com
set colordir=asm bas bat btm c cpp dll pas obj tpu tpp:9;com exe sys: 11;doc txt:4;dirs:15;*:7;
set temp=c:\temp
set blaster=A220 I5 D1 H5 P330 T6

4DOS.INI

[4DOS]
InstallPath = C:\4DOS\
Swapping = C:\TEMP\
UMBEnvironment = Yes
UMBDirHistory = Yes
UMBHistory = Yes

I've also attached relevant hard-to-find-files in case anyone else stumbles across this post in the future. I couldn't attach the support disk though, but I've hosted everything on my own server as well.

http://eternal-dreams.org/files/T3200/

Trixter
July 7th, 2016, 01:30 PM
Using this configuration I seem to be able to use the LOADHI-tool from QRAM to load stuff into a 64kb-block. It seems a bit inefficient but it's the best I've been able to pull off so far.

Believe it or not, you probably want EMS over XMS. EMS is faster than XMS for reading; requested blocks show up magically in the EMS page frame, while XMS must copy blocks to conventional RAM. Also, most software written for 16MHz-class and slower systems uses EMS. So I wouldn't think of it as something you're "stuck" with.

That said, I'd be curious to learn of any software that supports both standards, but works better under XMS than EMS.

Chuck(G)
July 7th, 2016, 01:54 PM
That said, I'd be curious to learn of any software that supports both standards, but works better under XMS than EMS.

I'm sure that I'm not the only one, but my old CopyQM utility used EMS, then XMS, then disk for "overflow" storage. Could use all three, if available. Since what I was doing was copying floppies, speed didn't really matter.

Stone
July 7th, 2016, 02:25 PM
Chuck, in the 1990s I used CopyQM extensively and regularly. It was one of my all-time favorite/usefull programs of the time. Kudos for some fantastic work on that (and several other programs as well). :-)