Same story as with Borland Pascal above. You can experiment with low = on/off and the amount of XMS memory (just start with 63MB). If it doesn’t help, you’ll have to use for instance DOSBox to compile your programs.
Jos
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It is, and used by operating systems, not by a program (it is just running “wild”).
I may be barking up the wrong tree here, but working with Pharlap's 386|DOS-Extender (and later djgpp) way back in 1995-98, I too had to handle hardware interrupts (under plain DOS and Win-95). Regarding the way Pharlap handled this, I can quote from their excellent manual:
J.2. Task Switching on Hardware Interrupts
...
Hardware interrupts invoked with a task switch have nothing (not even EFLAGS and CS:EIP) on their initial stack frame. Instead, they must look in the back-linked TSS to see the register values at the time of the interrupt.
386|DOS-Extender uses the convention that every system TSS segment in the GDT is immediately followed by a data segment mapping that TSS.
...
Who would do the task switching in the emulated DOS environment?
Well, no idea really. Hence the barking up the wrong tree term.
Although I've not tried it (will do), the VYV emulator seems able to run djgpp. programs. VYV / Takeda Toshiya's homepage: http://homepage3.nifty.com/takeda-toshiya/msdos/
He seems to an expert in emulators.
Last edit: Gisle Vanem 2016-02-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I also just installed vDOS. It looked really cool. But trying to run djgpp's gcc inside it, also triggered an "JMP: Illegal descriptor type 9"
Please see this image:
Same story as with Borland Pascal above. You can experiment with low = on/off and the amount of XMS memory (just start with 63MB). If it doesn’t help, you’ll have to use for instance DOSBox to compile your programs.
Jos
"LOW = ON" or "LOW=OFF" has no effect. The same
JMP: Illegal descriptor type 9.Would that be
System Segment Descriptor Type 9? According to a list here:Values for system segment descriptor type:
0 reserved
1 available 16-bit TSS
2 LDT
3 busy 16-bit TSS
4 16-bit call gate
5 task gate
6 16-bit interrupt gate
7 16-bit trap gate
8 reserved
9 available 32-bit TSS << !!!
10 reserved
11 busy 32-bit TSS
12 32-bit call gate
13 reserved
14 32-bit interrupt gate
15 32-bit trap gate
I've no idea what or who is triggering this. But keep up the good work.
It is, and used by operating systems, not by a program (it is just running “wild”).
Jos
I may be barking up the wrong tree here, but working with Pharlap's 386|DOS-Extender (and later djgpp) way back in 1995-98, I too had to handle hardware interrupts (under plain DOS and Win-95). Regarding the way Pharlap handled this, I can quote from their excellent manual:
Googling for back-linked TSS gave only 1 hit; VYV - a Japanese MS-DOS Player for Win32-x64. (with some parts forked from Wine?):
https://github.com/vyv03354/msdos/blob/master/source/mame/emu/cpu/i386/i386.c
But VYV seems to run djgpp programs in Win-64 just fine:

Although stubbed (?) with a very old version of go32. Does that give you any clue?
I don’t think that PharLap comment is related to vDos not running gcc. Who would do the task switching in the emulated DOS environment?
Jos
Well, no idea really. Hence the barking up the wrong tree term.
Although I've not tried it (will do), the VYV emulator seems able to run djgpp. programs. VYV / Takeda Toshiya's homepage:
http://homepage3.nifty.com/takeda-toshiya/msdos/
He seems to an expert in emulators.
Last edit: Gisle Vanem 2016-02-04