📄 extest.c
字号:
/*
--- Version 3.3 91-11-26 15:54 ---
EXTEST.C: EXEC function with memory swap - Test program.
Public domain software by
Thomas Wagner
Ferrari electronic GmbH
Beusselstrasse 27
D-1000 Berlin 21
Germany
*/
#include "compat.h"
#include "exec.h"
/*>e*/
#define ENGLISH 1
/*<*/
#ifdef ENGLISH
int help (void)
{
puts ("Usage: EXTEST [options]");
puts ("Options:");
puts (" -E do not use EMS for swapping");
puts (" -X do not use XMS for swapping");
puts (" -F do not use File for swapping");
puts (" -T Terminate after EXEC (no swap)");
puts (" -N do Not swap");
puts (" -C do not Copy environment");
puts (" -H Hide swapfile");
puts (" -Z Try XMS first, then EMS");
return 1;
}
#else
int help (void)
{
puts ("Benutzung: EXTEST [Optionen]");
puts ("Optionen:");
puts (" -E bei Auslagern kein EMS benutzen");
puts (" -X bei Auslagern kein XMS benutzen");
puts (" -F bei Auslagern keine Datei benutzen");
puts (" -T Terminieren nach EXEC (keine Auslagerung)");
puts (" -N Nicht Auslagern");
puts (" -C Umgebungsvariablen nicht kopieren");
puts (" -H Auslagerungsdatei 'hidden'");
puts (" -Z Zuerst XMS versuchen, dann EMS");
return 1;
}
#endif
#ifdef ENGLISH
int spcheck (int cmdbat, int swapping, char *execfn, char *progpars)
{
if (swapping > 0)
{
switch (swap_prep.swapmethod)
{
case USE_EMS:
printf ("Swapping to EMS handle %d\n", swap_prep.handle);
break;
case USE_XMS:
printf ("Swapping to XMS handle %d\n", swap_prep.handle);
break;
case USE_FILE:
printf ("Swapping to File <%s>\n", swap_prep.swapfilename);
break;
}
}
printf ("Executing %s %s\n\n", execfn, progpars);
if (cmdbat == 3 && strstr (progpars, "/c") == NULL)
puts ("Enter EXIT to return to EXTEST");
return 0;
}
#else
int spcheck (int cmdbat, int swapping, char *execfn, char *progpars)
{
if (swapping > 0)
{
switch (swap_prep.swapmethod)
{
case USE_EMS:
printf ("Auslagerung auf EMS Handle %d\n", swap_prep.handle);
break;
case USE_XMS:
printf ("Auslagerung auf XMS Handle %d\n", swap_prep.handle);
break;
case USE_FILE:
printf ("Auslagerung auf Datei <%s>\n", swap_prep.swapfilename);
break;
}
}
printf ("Ausf乭ren %s %s\n\n", execfn, progpars);
if (cmdbat == 3 && strstr (progpars, "/c") == NULL)
puts ("Geben Sie EXIT ein um zu EXTEST zur乧kzukehren");
return 0;
}
#endif
int main (int argc, char **argv)
{
static char fn [255], par [130];
char *com;
int i;
char far *x;
char far *y;
int method;
unsigned needed;
char **env;
union REGS regs;
method = USE_ALL;
needed = 0xffff;
env = environ;
spawn_check = spcheck;
for (i = 1; i < argc; i++)
{
if (argv [i][0] != '-' && argv [i][0] != '/')
return help ();
com = &argv [i][1];
do
{
switch (toupper (*com))
{
case 'E': method &= ~USE_EMS; break;
case 'X': method &= ~USE_XMS; break;
case 'F': method &= ~USE_FILE; break;
case 'T': method = 0; break;
case 'N': needed = 0; break;
case 'C': env = NULL; break;
case 'H': method |= HIDE_FILE; break;
case 'Z': method |= XMS_FIRST; break;
case '-': break;
case '/': break;
default: return help ();
}
com++;
} while (*com);
}
x = (char far *)farmalloc (64L * 1024L);
y = (char far *)farmalloc (64L * 1024L);
#ifdef ENGLISH
putenv ("XYZ=This is an environment string for the spawned process");
#else
putenv ("XYZ=Dies ist eine Umgebungsvariable f乺 den aufgerufenen Proze
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -