Menu

JMP: Illegal descriptor type ##

General
Anonymous
2015-07-29
2016-12-01
  • Gisle Vanem

    Gisle Vanem - 2015-12-30

    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:

     
    • Jos Schaars

      Jos Schaars - 2015-12-30

      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

       
  • Gisle Vanem

    Gisle Vanem - 2016-01-16

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

     
    • Jos Schaars

      Jos Schaars - 2016-01-16

      It is, and used by operating systems, not by a program (it is just running “wild”).

      Jos

       
      • Gisle Vanem

        Gisle Vanem - 2016-02-04

        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.
        ...

        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?

         
        • Jos Schaars

          Jos Schaars - 2016-02-04

          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

           
          • Gisle Vanem

            Gisle Vanem - 2016-02-04

            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
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.