home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet MPEG Audio Archive
/
IMAA.mdf
/
util
/
dos
/
l3v100n
/
rsx
/
source
/
stubdj.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-01-19
|
1KB
|
64 lines
/*
** running bound DJGPP exe-files
** go32.exe without DPMI
** rsxdj.exe with DPMI
*/
#include <process.h>
#include <dos.h>
unsigned _heaplen = 8192;
unsigned _stklen = 4096;
extern unsigned _psp;
static void x2s(int v, char *s)
{
static char hex[] = "0123456789abcdef";
int i;
for (i = 0; i < 4; i++) {
s[3 - i] = hex[v & 15];
v >>= 4;
}
s[4] = 0;
}
void print_string_stdout(char *s)
{
_AH = 0x09;
_DX = (unsigned) s;
geninterrupt(0x21);
}
static int dpmi_host(void)
{ /* ret = 0 DPMI, else not */
_AX = 0x1687;
geninterrupt(0x2F);
return _AX;
}
char *exe_name;
char rsx_name[] = "RSXDJ.EXE";
char go32_name[] = "GO32.EXE";
main(int argc, char **argv)
{
char s_argc[5], s_seg[5], s_argv[5];
int r;
if (dpmi_host() == 0)
exe_name = rsx_name;
else
exe_name = go32_name;
x2s(argc, s_argc);
x2s(_DS, s_seg);
x2s((int) argv, s_argv);
r = spawnlp(P_WAIT, exe_name, exe_name, "!proxy", s_argc, s_seg, s_argv, 0);
if (r == -1) {
print_string_stdout(exe_name);
print_string_stdout(":file not found\r\n$");
}
return r;
}