tests
This commit is contained in:
56
nwtests.c
56
nwtests.c
@@ -426,6 +426,59 @@ static int tests_nwreq87(int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
static int tests_reqtype(void)
|
||||
{
|
||||
union REGS r;
|
||||
struct SREGS s;
|
||||
|
||||
memset(&r, 0, sizeof(r));
|
||||
memset(&s, 0, sizeof(s));
|
||||
|
||||
fprintf(stdout, "TEST requester type probes\n\n");
|
||||
|
||||
/*
|
||||
* DeveloperNet 1997 dvlmreq.c:
|
||||
* AX=7A20h, BX=0, INT 2Fh
|
||||
* if AX==0 then ES:BX is VLM entry and client type is VLM.
|
||||
*/
|
||||
r.x.ax = 0x7A20;
|
||||
r.x.bx = 0;
|
||||
int86x(0x2F, &r, &r, &s);
|
||||
|
||||
fprintf(stdout, "INT 2F AX=7A20 -> AX=%04X BX=%04X ES=%04X\n",
|
||||
r.x.ax, r.x.bx, s.es);
|
||||
if (r.x.ax == 0)
|
||||
fprintf(stdout, "VLM entry likely present at %04X:%04X\n", s.es, r.x.bx);
|
||||
else
|
||||
fprintf(stdout, "VLM entry not reported by INT 2F/7A20\n");
|
||||
|
||||
/*
|
||||
* DeveloperNet 1997 dvlmreq.c:
|
||||
* AH=DCh, CX=0, INT 21h
|
||||
* if CX != 0 then NETX/Shell API is present.
|
||||
*/
|
||||
memset(&r, 0, sizeof(r));
|
||||
memset(&s, 0, sizeof(s));
|
||||
r.h.ah = 0xDC;
|
||||
r.x.cx = 0;
|
||||
int86x(0x21, &r, &r, &s);
|
||||
|
||||
fprintf(stdout, "INT 21 AH=DC CX=0 -> AX=%04X BX=%04X CX=%04X DX=%04X ES=%04X\n",
|
||||
r.x.ax, r.x.bx, r.x.cx, r.x.dx, s.es);
|
||||
if (r.x.cx != 0)
|
||||
fprintf(stdout, "NETX/Shell API likely present\n");
|
||||
else
|
||||
fprintf(stdout, "NETX/Shell API not reported by AH=DC\n");
|
||||
|
||||
fprintf(stdout, "\nInterpretation like DeveloperNet dvlmreq.c:\n");
|
||||
if (r.x.cx != 0)
|
||||
fprintf(stdout, " Shell bit present\n");
|
||||
fprintf(stdout, " If INT2F AX=7A20 returned AX=0000, VLM path should be used for NWCREQUEST.\n");
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
int func_tests(int argc, char *argv[], int mode)
|
||||
{
|
||||
if (argc >= 2) {
|
||||
@@ -435,6 +488,9 @@ int func_tests(int argc, char *argv[], int mode)
|
||||
if (tests_same_arg(argv[1], "E300") || tests_same_arg(argv[1], "NETCALLE300"))
|
||||
return tests_netcall_e300();
|
||||
|
||||
if (tests_same_arg(argv[1], "REQTYPE"))
|
||||
return tests_reqtype();
|
||||
|
||||
if (tests_same_arg(argv[1], "NWREQ87"))
|
||||
return tests_nwreq87(argc, argv);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user