VOGONS


HWiNFO for DOS resurrected !

Topic actions

Reply 860 of 884, by amigopi

User metadata
Rank Newbie
Rank
Newbie
Mumak wrote on 2023-08-11, 10:08:

For the invalid ATAPI device, what drive details does it show in that case? Is there some other mismatch in the info?

IIRC it showed the details of the optical drive twice; they were correct from what I could tell.

I didn't notice any other mismatches, and the "double ATAPI" thing happens fairly randomly, maybe only like 10% of the time? I was not able to get a report with it happening.

And yeah, thanks for the clarification re: the Vibra. It's not a particularly great card anyway, so, whatever, man. 😄 (Sorry if that hurt someone's feels.)

Into the eyes of nature, into the arms of God, into the mouth of indifference, into the eyes of nature...

Reply 861 of 884, by b_w

User metadata
Rank Newbie
Rank
Newbie

1. Does actual HWiNFO detect CGA Plantronics and Olivetti/ATT 6300, IBM PGC, Secondary FDC controller, streamer devices on FDC port?
2. If VESA/DDC multidisplay in HWiNFO detection will be made, I recommend X-VESA utility by Marco Pistella which can detect two monitors on same videocard (f.e. Geforce 2/3/4/5 series VGA+DVI).
3. It is possible to detect FDC controller version, see here https://github.com/torvalds/linux/blob/master … /block/floppy.c

Reply 862 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie
b_w wrote on 2023-08-13, 13:02:

1. Does actual HWiNFO detect CGA Plantronics and Olivetti/ATT 6300, IBM PGC, Secondary FDC controller, streamer devices on FDC port?
2. If VESA/DDC multidisplay in HWiNFO detection will be made, I recommend X-VESA utility by Marco Pistella which can detect two monitors on same videocard (f.e. Geforce 2/3/4/5 series VGA+DVI).
3. It is possible to detect FDC controller version, see here https://github.com/torvalds/linux/blob/master … /block/floppy.c

I'm not aware of any software possibility to detect various CGA adapters. AFAIK all those have same register sets. If you maybe know how to do that, let me know.
FDC controller version - I wasn't aware of that but let me look at that code...
Streamer devices can't be detected by HWiNFO.

Reply 863 of 884, by b_w

User metadata
Rank Newbie
Rank
Newbie

Detect Plantronics ColorPlus and Olivetti https://forum.vcfed.org/index.php?threads/is- … software.79115/

Also it's a good idea to make HWiNFO graphics frames work in EGA text mode (since it has reprogrammable character set also) not only it regular (S)VGA, if you using BIOS calls to do it - it should work right without great modifications, you need 8x14 font. You only has to detect that this system is EGA. Either color or mono.

Hercules plus also has reprogrammable character set, see sample below and use font.bin file sized 14x256=3584 bytes:

Spoiler
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <math.h>
#include <memory.h>

int main (int argc, char *argv[])
{
char * p;
char i;
unsigned short j,k,l, m;
union REGS regs;
struct SREGS sregs;
char fname[255];
FILE* f;

regs.x.ax = 0x07;
int86x(0x10, &regs, &regs, &sregs);
printf("HGC FontSet. Press a key to start.\n");
if (argc < 2) { printf("USAGE: hgcset [font.fnt], font.fnt - 8x14 font file\n"); return 1; }

strcpy(fname,argv[1]);
printf ("Using font: '%s' ... ",fname);

f = fopen(fname,"r");
if (f)
{
printf ("OPENED\n");

asm{
mov dx, 0x3BA
in al,dx
mov i,al
}
if (i & 0x80)
{
i &= 0x70;
switch (i)
{
case 0x00: printf ("HGC detected\n"); break;
case 0x10: printf ("HGC+ detected\n"); break;
case 0x50: printf ("HGC InColor detected\n"); break;
default: printf ("HGC unknown detected\n"); break;
}

while (!getch());

asm{
mov dx, 0x3B4
mov ax,0x0114
out dx,ax
mov dl,0xBF
mov al,1
out dx,al
}
///////////////////////
p = malloc(8*14*256);
Show last 40 lines
if (fread(p, 1, 8*14*256, f))
{
m = 0;
for (j = 0; j < 256; j++)
for (k = 0; k < 14; k++)
{
i = p[m]; m++;
l = (j << 4) + k;
asm{
mov ax,0xB400
mov es,ax
mov ax, l
mov di, ax
mov al, i
stosb
}
}

}
if (p) free(p);
///////////////////////
asm{
mov dx, 0x3BF
mov al,0
out dx,al
}

}
else
{
printf("HGC not detected.");
}

fclose(f);
}
else
printf ("BAD\n");

return 0;
}
Last edited by b_w on 2023-08-13, 18:55. Edited 1 time in total.

Reply 864 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie
b_w wrote on 2023-08-13, 15:34:
Detect Plantronics ColorPlus and Olivetti https://forum.vcfed.org/index.php?threads/is- … software.79115/ Also it's a good idea […]
Show full quote

Detect Plantronics ColorPlus and Olivetti https://forum.vcfed.org/index.php?threads/is- … software.79115/
Also it's a good idea to make HWiNFO graphics frames work in EGA text mode (since it has reprogrammable character set also) not only it regular (S)VGA, if you using BIOS calls to do it - it should work right without great modifications, you need 8x14 font. You only has to detect that this system is EGA. Either color or mono.
Hercules plus also has reprogrammable character set, see sample below and use font.bin file sized 14x256=3584 bytes:

Spoiler
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <math.h>
#include <memory.h>

int main (int argc, char *argv[])
{
char * p;
char i;
unsigned short j,k,l, m;
union REGS regs;
struct SREGS sregs;
char fname[255];
FILE* f;

regs.x.ax = 0x07;
int86x(0x10, &regs, &regs, &sregs);
printf("HGC FontSet. Press a key to start.\n");
if (argc < 2) { printf("USAGE: hgcset [font.fnt], font.fnt - 8x14 font file\n"); return 1; }

strcpy(fname,argv[1]);
printf ("Using font: '%s' ... ",fname);

f = fopen(fname,"r");
if (f)
{
printf ("OPENED\n");

asm{
mov dx, 0x3BA
in al,dx
mov i,al
}
if (i & 0x80)
{
i &= 0x70;
switch (i)
{
case 0x00: printf ("HGC detected\n"); break;
case 0x10: printf ("HGC+ detected\n"); break;
case 0x50: printf ("HGC InColor detected\n"); break;
default: printf ("HGC unknown detected\n"); break;
}

while (!getch());

asm{
mov dx, 0x3B4
mov ax,0x0114
out dx,ax
mov dl,0xBF
mov al,1
out dx,al
}
///////////////////////
p = malloc(8*14*256);
Show last 40 lines
if (fread(p, 1, 8*14*256, f))
{
m = 0;
for (j = 0; j < 256; j++)
for (k = 0; k < 14; k++)
{
i = p[m]; m++;
l = (j << 4) + k;
asm{
mov ax,0xB400
mov es,ax
mov ax, l
mov di, ax
mov al, i
stosb
}
}

}
if (p) free(p);
///////////////////////
asm{
mov dx, 0x3BF
mov al,0
out dx,al
}

}
else
{
printf("HGC not detected.");
}

fclose(f);
}
else
printf ("BAD\n");

return 0;
}

Thanks! I see the CGA test requires native CGA mode to be set, which is not supported by HWiNFO GUI. I'm not even sure how HWiNFO for DOS will run/look on a CGA adapter.

Reply 865 of 884, by Robbbert

User metadata
Rank Member
Rank
Member

For latest version 7.62 noticed missing info for windows 98 - the Computer Description is not there. It shows on newer OS's though.

It's in the registry at HKLM\System\CurrentControlSet\Services\VxD\VNETSUP - keyname is Comment

Reply 866 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie
Robbbert wrote on 2023-09-11, 14:17:

For latest version 7.62 noticed missing info for windows 98 - the Computer Description is not there. It shows on newer OS's though.

It's in the registry at HKLM\System\CurrentControlSet\Services\VxD\VNETSUP - keyname is Comment

Thanks, will be fixed in the next build.

Reply 867 of 884, by Robbbert

User metadata
Rank Member
Rank
Member

Thanks, tried 7.64 on Win98Se - works.

Just to satisfy my curiosity, I tried running HWINFO32.exe in Windows for Workgroups, but I got a message to say it was incompatible with win32s. Then I tried with the installer and got the same error.
I imagine that the hooks you use to gather the information might not exist. Just wondering if there's any thought or possibility of HWINFO32 working with WIN32S at some time?

Reply 868 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie

HWiNFO32 requires at least Windows 95 to run. Support for earlier versions like 3.x would require significant effort which is currently not planned. For such systems I rather recommend using HWiNFO for DOS.

Reply 871 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie
Robbbert wrote on 2023-11-13, 12:05:

I notice the new version 766 will not install on Win98SE.

Does that mean you've removed support for various old platforms?

Can you list what you do support now?

That wasn't intentional.
Is the problem installation or running the HWiNFO32 ?

Reply 874 of 884, by Robbbert

User metadata
Rank Member
Rank
Member

The portable version works.

The installer starts up and asks for the language, but then says it can't run on this computer.

"This program does not support the version of Windows your computer is running".

Last edited by Robbbert on 2023-11-13, 12:22. Edited 1 time in total.

Reply 877 of 884, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Main problem of Hwinfo for Dos are for me at least are system freezes, on some machines. Navratil and others are crashing machine so much.

Its possible write it more safely? Its guess that you are using some ASM calls to check some registry if there is something what you can identify and after you asking for details.. I suppose that ask for something what is not existing on machine is not freeze machine itself.. So problem would be probably something like unhandled exception, some values what you don't expect.. or what else could cause these fails?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 878 of 884, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

This is a bunch of hacks and it simply cannot be clearly done. Some routine that works on some machine can crash/hang on other machine, it's hard to avoid this when you are trying to get maximum available info. Maybe you can e.g. use CPUID first and then decide if some specific hack make a sense to call for such a machine with that CPUID range or not, that can slightly lower the probability of hang but it cannot be avoided at all.

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 879 of 884, by Mumak

User metadata
Rank Oldbie
Rank
Oldbie

Hard to know what to improve when I don't know exactly where and on which systems it crashes. I suppose it's mostly the Super IO check which others don't check, so they don't crash. But this can be disabled in HWiNFO.
Problem with such legacy systems is that there's no universal standard or method that would help you detect many things. So you need to perform several test probes (accessing various registers and I/O) which on some other systems can use these locations for something else or not use at all which will cause a crash. PnP was the first attempt to somehow standardize things but even that doesn't work properly on many systems.