Dosbox-x: IPX does not work.

Created on 23 Oct 2020  路  10Comments  路  Source: joncampbell123/dosbox-x

Describe the bug
Attempting to use IPX networking results in a huge number of console errors:

LOG:  538239568 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  538239586 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  538248154 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  538252345 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  538252363 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  538254577 ERROR CPU:Illegal Unhandled Interrupt Called 6
LOG:  551432911 ERROR CPU:Illegal Unhandled Interrupt Called 6

To Reproduce
Enable IPX in the config file.
Connect to another DOSBox-X instance with ipxnet.
Try to use IPX.

Specifically, this function never returns from the int86() call (Borland C++ code):

BYTE IPX::openSocket(short *socketNumber) {
    REGS regs;

    SHORTSWAP(*socketNumber);
    regs.w.ax = 0;
    regs.w.bx = 0x0;
    regs.w.dx = (unsigned int)*socketNumber;
    printf("Calling int 0x7a function 0x0\n");
    int86(0x7a, &regs, &regs);
    printf("Back\n");
    *socketNumber = (short)regs.w.dx;
    SHORTSWAP(*socketNumber);

    return regs.h.al;
}

Expected behavior
Working IPX?

Screenshots
This is the result from mainline DOSBox:
image

With DOSBox-X it hangs after printing Calling int 0x7a function 0x0. Technically, it doesn't really hang - it just starts consuming cycles like there's no tomorrow.

Environment (please complete the following information):

  • Linux Mint 19
  • DOSBox-X 0.83.6 (SDL2)

Additional context
I'm writing new DOS software using IPX. Once I have a better IPX test program, I'm happy to share it.

bug network

All 10 comments

@sduensin With "ipx=true", does the command "ipxnet ping" work when you run it in DOSBox-X on your system? Also, I think you can still upload the current IPX test program so that we can check the issue more directly. Thanks!

@sduensin Moreover, have you also tried your IPX test program in a real DOS system and see if it works the same?

@Wengier in the screenshot, it shows ipxnet ping working.

@sduensin the ipx code in dosbox-x to my understanding is the same as that in vanilla dosbox. As such, can you try with vanilla dosbox, or dosbox SVN to double check if your problem is unique to dosbox-x?

In any case, as you seem to already understand, dosbox implements IPX over IP, and therefore will for instance not work with legacy DOS machines running plain IPX.

@rderooy I think the screenshot only showed ipxnet ping working in vanilla DOSBox, but not DOSBox-X. Correct me if I am wrong, but there seems to be no mention of whether ipxnet ping works in DOSBox-X in the original post (only the result of ipxtest in DOSBox-X was mentione there).

@Wengier my bad, your absolutely right!

IPXTEST.zip

Here's a 16-bit real-mode DOS binary and the source code. I used Borland C++ 4.52 to build it.

Thanks for uploading the IPXTEST executable.

I think I can confirm the issue. Also, after trying a few earlier DOSBox-X versions it seems that the last version that this test program could work was the following DOSBox-X release:

https://github.com/joncampbell123/dosbox-x/releases/download/dosbox-x-windows-v0.801.newyears.b3/dosbox-x-windows-dosbox-x-windows-v0.801.newyears.b3.zip

I think the issue is not with the IPX code itself, but because of other changes. Not yet sure about exact cause at this time.

@sduensin While the internal IPX option may not work for this for some reason (which I am not still not quite sure about its exact cause at this time), I found that this issue can be easily solved by using the IPX via NE2000 networking instead, which I can confirm it will work just fine:

image

So just load LSL, NE2000 and IPXODI before loading IPXTEST, while setting ne2000=true and ipx=false. More details for setting up the NE2000 networking are available from:

https://dosbox-x.com/wiki/Guide%3ASetting-up-networking-in-DOSBox%E2%80%90X

Thanks for the work-around. I'm not blocked by this. I just wanted to report it so it could be fixed.

@sduensin Sure! Thanks for reporting it.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sduensin picture sduensin  路  7Comments

jadasse picture jadasse  路  19Comments

BPaden picture BPaden  路  4Comments

mikeypdev picture mikeypdev  路  8Comments

Corak667 picture Corak667  路  7Comments