Redirecting a DOS interrupt call out to Linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi all,
	I've been playing with the Dosemu source code with the hope of replacing 
an old TSR with a native Linux daemon. Currently a DOS app I have no source 
for makes an interrupt call to a TSR with data, the TSR works with it and the 
result is returned.

I had in mind to replace it with something like this:
1/ Old DOS app makes call to interrupt
2/ New Dosemu interrupt handler that collects the data given to it by the DOS 
app and pushes it into a message queue on the host.
3/ A Linux daemon that reads the incoming message, does the processing and 
returns the result via a second message queue.
4/ The new Dosemu interrupt handler then reads the result from the second 
message queue, places it in memory and returns.
5/ The DOS app sees the result and is unaware of any difference.

My first step was to hook in a new skeleton Dosemu interrupt handler, but it 
doesn't seem to be being called and the DOS app thinks the TSR is not 
installed. I'm using Dosemu 1.2.2 for historical reasons, but I expect the 
problem is similar on 1.4.0 etc.

I figured all I'd need to do would be to add a new function to 
src/base/async/int.c and reference it.

/* this is the handler for INT 76 calls from DOS to the test interface */
int test_int (void) {
	ds_printf("INT76: we have been called\n");
	return 1;

/* add reference to it in setup_interrupts() */
interrupt_function[0x76] = test_int;

Can anybody tell me what I'm missing? How does the interrupt vector table get 



To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

[Index of Archives]     [Linux Console]     [Linux Audio]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Camping]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Samba]     [Linux Media]     [Fedora Users]

  Powered by Linux