Category : Miscellaneous Language Source Code
Archive   : EXEC33A.ZIP
Filename : EXTEST.C

 
Output of file : EXTEST.C contained in archive : EXEC33A.ZIP
/*
--- 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hren %s %s\n\n", execfn, progpars);
if (cmdbat == 3 && strstr (progpars, "/c") == NULL)
puts ("Geben Sie EXIT ein um zu EXTEST zurckzukehren");

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r den aufgerufenen Prozeá");
#endif

while (1)
{
#ifdef ENGLISH
printf ("\nEXEC filename,params ('.' to exit): ");
#else
printf ("\nDateiname,Parameter ('.' beendet): ");
#endif
gets (fn);

if (fn [0] == '.')
return 0;

com = strchr (fn, ',');
if (com != NULL)
{
strcpy (par, &com [1]);
*com = 0;
}
else
par [0] = 0;

i = do_exec (fn, par, method, needed, env);

#ifdef ENGLISH
printf ("\nDO_EXEC returns %04x\n", i);
#else
printf ("\nDO_EXEC liefert %04x\n", i);
#endif
}
}



  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : EXEC33A.ZIP
Filename : EXTEST.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/