All Questions
16
questions
13
votes
5
answers
3k
views
What are the minimum system requirements to run GW-BASIC?
In DOSBox 0.74, I can run GWBASIC.EXE without any problem (DOSBox reports 632 KB of free conventional memory). It is GW-BASIC's version 3.10 dated 01-07-1989 with filesize 72576 bytes. On screen it ...
35
votes
3
answers
5k
views
Why did DOS-based Windows require HIMEM.SYS to boot?
My understanding is that all versions of Microsoft Windows that ran on top of DOS — that is, the lineage from Windows 1.0 up to Windows ME, even though the reliance on DOS diminished over time — ...
10
votes
2
answers
2k
views
How to use all memory on an IBM PC with 8086
I'm developing software for the IBM PC with an 8086 processor. I want my program to use all available memory.
I know that I can use DOS int 21h function AH=48h to allocate all available conventional ...
5
votes
1
answer
2k
views
MS DOS 6.22 hangs on modern hardware after loading HIMEM.SYS
I am trying to run MS-DOS 6.22 on modern hardware. I successfully created bootable flash disk with MS-DOS 6.22. But when it starts with HIMEM.SYS enabled in CONFIG.SYS it hangs. Searching Internet the ...
2
votes
2
answers
284
views
Why isn't this invocation of XMS function Move EMB 0Bh in Turbo C correct?
Following on from my last question, I cannot get Move Extended Memory Block (Function 0Bh) working in Turbo C 2.01.
The following main.c contains only the minimum functions: get the XMS driver pointer,...
11
votes
3
answers
2k
views
How can I access/use memory outside of the standard 1 MB address range of MS-DOS?
How do you access more memory (above the 1MB) in DOS if the 640KB of conventional memory are not enough?
I have read a lot about this, but I couldn't figure out how to do this in actual code. Is ...
0
votes
2
answers
1k
views
Get himem.sys working on an AMI 1.06.09 bios (not on VM)
I tried many 98SE boot disks online, they all boot successfully on my mobile workstation from USB (C:\>), but all can't run the Windows 98SE Installer because of XMS Memory, giving an error like:
...
10
votes
2
answers
3k
views
What's the difference between the DOS HIMEM.SYS and the Windows 3.x version?
An installation of DOS (e.g. MS-DOS 5.0) will typically include a statement in its CONFIG.SYS such as DEVICE=C:\DOS\HIMEM.SYS.
When installing Windows 3.1, it's setup comments (REMs) that line out, ...
14
votes
1
answer
2k
views
What manages Upper Memory Blocks (UMBs) in MS-DOS?
I had always assumed that EMM386.EXE was responsible for managing the Upper Memory Blocks - UMBs - the memory space between 640KiB and 1MiB in real mode x86. For example, on MS-DOS 6.22, help emm386....
32
votes
1
answer
3k
views
Did DOS zero out the BSS area when it loaded a program?
As an example, say we have a DOS MZ EXE file that's around 20 KiB in size. The EXE header contains the value 0x1400 at offset 0x0A indicating that the program is requesting 5,120 paragraphs (or 80 KiB)...
5
votes
1
answer
1k
views
Minimal DOS long filename driver
Am trying to run Latex + Emacs under DOS 5.0, and would currently seem to need long filenames. I have tried the DOSLFN driver but it prevents Emacs from running. I have 4 MB RAM in total.
Is there ...
6
votes
3
answers
2k
views
Allocate 64 KiB in Watcom C 16-bit DOS
I'm trying to allocate a 64 KiB buffer in Watcom C 16-bit DOS. I'm using the "compact" memory model which defines the code segment to be limited to 64 KiB and addressed by near pointers (...
5
votes
2
answers
992
views
What 286 chipsets support UMBs?
I read in some forums that some 286 boards support UMBs and thus can load drivers and TSRs into the upper 384 KiB of conventional memory.
What chipsets support this and do I need special drivers?
3
votes
3
answers
650
views
TSRs at top of memory conflicting with COMMAND.COM
I've seen that many TSRs installs themselves at the top of conventional memory. To do so they rely on the value at 0:413h/int 12h to tell how much conventional memory is available, and then update ...
10
votes
4
answers
3k
views
How did DOS know where to load itself in upper memory?
If I remember correctly, you could ask DOS to load in upper memory by writing something like...
DOS=UMB
...somewhere in the CONFIG.SYS file.
But the question is, how did DOS know what portions of ...