This commit is contained in:
Mario Fetka
2026-05-23 15:19:35 +02:00
parent 99c3eed1bf
commit 3562cd1301

View File

@@ -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);