VOGONS


Reply 40 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Oh here my output from my NexGen Nx586-P90 (no FPU):

not running idon.com: file.php?mode=view&id=67537&sid=5e426d47ce56773e72d3c68cf0c5618e

Running idon.com: file.php?mode=view&id=67536&sid=5e426d47ce56773e72d3c68cf0c5618e

Attached are also dbgout and local save:

Filename
siv_nexgen.zip
File size
2.18 MiB
Downloads
75 downloads
File license
Fair use/fair dealing exception

When saving local information the benchmark step took really long.

Also: CPU frequency is 84 MHz, FSB is 42 MHz, L2 Cache size is 256 kB.

Attachments

  • siv_idoff_with_nexgen_flag.png
    Filename
    siv_idoff_with_nexgen_flag.png
    File size
    737.14 KiB
    Views
    1499 views
    File license
    Fair use/fair dealing exception
  • siv_id_on.png
    Filename
    siv_id_on.png
    File size
    734.06 KiB
    Views
    1499 views
    File license
    Fair use/fair dealing exception

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 41 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t
red-ray wrote:
elianda wrote:

I was wondering also about the NExGen approach. If you enable IDON it identifies by CPUID as Cyrix 486SX. What does that help you to eventually identify it as NexGen CPU ?

Thank you for the save files and I will post Beta-19 once I have added DEC 10EB164 motherboard support and improved the GPU detection.

What makes you think "If you enable IDON it identifies by CPUID as Cyrix 486SX"? AFAIK once CPUID is enabled then the maker will be returned as NexGenDriven, see download/file.php?id=67039. When I run SIV in test mode using that CPUZ save file SIV reports NexGen Nx586, but with CPUID Disabled it's an Intel 386.

See results from my previous posting for SIV, where SIV reports a Cx486 when idon.com is used.

See results for CPU-Z from the same system here: Re: Need help to improve the support of 486/586/686 class CPUs in CPU-Z

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 42 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:

See results from my previous posting for SIV, where SIV reports a Cx486 when idon.com is used.

Thank you for checking out SIV on the NexGen. I have worked out why if says Cyrix when IDON. With IDOFF Windows reports it as a 385 without CPUID support.

DBGINI 2683 Process Type 386 Level 3
DBGINI 2688 Process No CPUID Instruction

With IDON it's a 486, but without CPUID support.

DBGINI 4829 Process Type 486 Level 1
DBGINI 4841 Process No CPUID Instruction

When it's a 486 SIV does Cyrix detection which succeeds! The code is ad below.

CONST TCHAR *cpu_is_cyrix(              // check to see if a CPU is Cyrix
CPUB *cpu, // CPU Instance Pointer
CONST TCHAR *mkr ) // CPU maker
{ BYTE iah; // work data

if( ( cpu->family == 4 ) ) // processor is i486 ?
{ //
__asm xor ax, ax // yes, clear ax
__asm sahf // clear flags, bit 1 is always 1 in flags
__asm mov ax, 5 // move 5 into the dividend
__asm mov bx, 2 // move 2 into the divisor
__asm div bl // do an operation that does not change flags
__asm lahf // get flags
__asm mov iah, ah // ah should two if Cyrix 486

if( iah == 2 ) // Cyrix ?
{ //
cpu->maker = CPU_M_CYRIX; // yes, update the maker
tcscpy( cpu->pm_1, mkr = TEXT( CyrixInstead ) ); // then update the string
} //
} //

return mkr; // return the maker string
}

But why is it not reporting CPUID is supported. My code for this is:

ULONG cpu_has_cpuid( ULONG mode )               // decide if CPUID should be used
{ ULONG val; // work value

__asm pushfd
__asm pop ecx
__asm mov eax,ecx
__asm xor eax,0x00200000
__asm push eax
__asm popfd
__asm pushfd
__asm pop eax
__asm xor eax,ecx
__asm mov val,eax

return val; // return if CPUID should be used
}

I wonder why cpu_has_cpuid() returns FALSE, do you have any idea please?

Reply 43 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Ok feipoa has a Nx586-PF110 which runs on a PCI capable mainboard and the BIOS loads HyperCode V34 into the NexGen. I think (feipoa can verify this) supports the CPUID instruction.

I have the VLB NexGen board with a Nx586-P90 and the VLB BIOS loads HyperCode V33. It does not support the CPUID instruction.

In the NexGen BIOS is an option to enable alternate instructions:
OFF - 386 only
ON - 386 + some 486 user mode instructions

IDON.COM sets in EFLAGS Bit 18 - Alignment Check. It does not change CPU behavior on the NexGen. However if read back as 1 most software thinks there is a 486SX+. On 386 this bit reads back as 0.

IDOFF.COM sets the bit to 0.

So the reporting of a 486 from Windows seems to be based on the EFLAGS bit already. Interestingly with Bit 18 cleared, Windows reports NexgenDriven in the Workplace properties as string.

Now, my idea would be:
If the CPU identifies as 386 (or 486 due prior IDON), try to call a NexGen hypercode function present in all versions, like function 01h (cache on/off).
Using this approach and NXOP: https://www.memotech.franken.de/NexGen/Opcode0F55.html
Basically IDON.COM gives you already a template. If an illegal instruction exception with SI=0B0xxh is thrown, then it is a 386. Otherwise NXOP succeeded and you call 01h again with sub function 01h to switch the cache on again, it is a NexGen.
This would work independently of alternate instruction or EFLAGS.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 44 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Another comment on why cyrix 486SX is the detection outcome:
I don't know how you determine cpu->family, but the cyrix documentation for CPU detection at http://datasheets.chipdb.org/Cyrix/detect.pdf describes the 5/2 method on page 14. But a requirement is:

A software check is required to determine if the CPU is an 80486 or above class processor,
since all Cyrix CPUs are 80486 and above class processors. If this check is not made, the
software may report a Cyrix CPU when one is not present.

So faking the detection from windows by setting EFLAGS.AC on the NexGen, such that Windows determines to have a 486 class cpu leaves you with wrong preconditions. The NexGen might be at its core a 586 class CPU but instruction wise it is a 386. Then you use the Cyrix detection method on a effectivly 386 class CPU and get the wrong identification.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 45 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:

Ok feipoa has a Nx586-PF110 which runs on a PCI capable mainboard and the BIOS loads HyperCode V34 into the NexGen. I think (feipoa can verify this) supports the CPUID instruction.

Thank you for the pointers, let's see what happens on the Nx586-PF110 and while I am waiting I will have a look at the links. The reason SIV reports FPU is because Windows says it's not emulated.

    cpu->cpu1.edx = ( pIsProcessorFeaturePresent( PF_FLOATING_POINT_EMULATED     ) ? 0 : BIT00 ) | // FPU
( pIsProcessorFeaturePresent( PF_RDTSC_INSTRUCTION_AVAILABLE ) ? BIT04 : 0 ) | // TSC
( pIsProcessorFeaturePresent( PF_COMPARE_EXCHANGE_DOUBLE ) ? BIT08 : 0 ) | // CX8
( pIsProcessorFeaturePresent( PF_MMX_INSTRUCTIONS_AVAILABLE ) ? BIT23 : 0 ); // MMX

Please try the attached SIV32A.exe on your Alpha and generate new save files. It should do rather better and may even report the GPU clock speeds, but http://vgamuseum.info/images/doc/3dlabs/tvp40 … nual_issue6.pdf says RDMemoryClock1 is write only, so maybe not, have a look @ Menu->Machine->GPU Info.

Reply 46 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Here are the results of this version:

Filename
alpha.zip
File size
124.42 KiB
Downloads
66 downloads
File license
Fair use/fair dealing exception

GPU Info gives as expected 0 kHz as clocks. Though this is probably not of utter importance. The Permedia2 driver control panel shows 83 MHz.

Attachments

  • SIV32A_Permedia2.png
    Filename
    SIV32A_Permedia2.png
    File size
    997.5 KiB
    Views
    1463 views
    File license
    Fair use/fair dealing exception

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 47 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:

GPU Info gives as expected 0 kHz as clocks. Though this is probably not of utter importance. The Permedia2 driver control panel shows 83 MHz.

Thank you, but you should have dropped the two files on top of Beta-18. As PCIDEVS.txt was absent SIV was unable to read the GPU description and reported Unknown GPU.

I wonder how to read the 83 MHz from the driver. Have you tried any other GPUs in your Alpha? I recall the Matrox MGA-2064W Millennium (Storm) - Vendor ID 102B-0519 is supported and SIV should report those clocks.

Reply 48 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

I will run with the supplementary files tomorrow.

I ran various GPUs supported by NT4 to check which is best suited and Permedia2 has some degree of 3D acceleration and 8 MB. I don't want to change the systems config at the moment.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 49 of 1037, by feipoa

User metadata
Rank l33t++
Rank
l33t++
red-ray wrote:
Thank you for running the test and posting the files. Casting my mind back something changed in the way Windows did screen sizin […]
Show full quote
feipoa wrote:

I am now running beta-18 and did not experience any issue with system shutdown. I did still notice that the screen size is too small resulting in your buttons being truncated. Attached are the requested files.

Thank you for running the test and posting the files. Casting my mind back something changed in the way Windows did screen sizing between 3.51 and 4.00 and this may be the reason for the size issue. Please try the attached SIV32O.exe to see it's any better. It's built to run on NT 3.10 so I suspect it may. You could do Menu->Tools->Maximum Lines->Set nn Lines to tell SIV how many lines to use.

DBGINI 2593  SIV32L V5.41 Beta-18 NEXGEN-NT::feipoa  Built Aug 24 2019 at 16:34:23  Windows NT x32 V3.51 Build 1057 Service Pack 5
DBGINI 2603 Calling net_get_date_info()
DBGINI 2683 Process Type 386 Level 3
DBGINI 2688 Process No CPUID Instruction

Looking in SIV_DBGOUT.log I can see that CPUID is not reported as available. I think this is because IDON.com has not been run, what happens if you run it in a command window?

After pondering IDON I adjusted SIV so please do SIV32O -NEXGEN -DBGINI > SIV_DBGOUT.log | more, the -NEXGEN tells SIV to do what IDON.com does, but I have not been able to test this works. What happens when you try this please?

The window screen displays correctly with SIV32O.exe. I also tried to use the Maximum Line adjustment with SIV32L.exe, but it does not adjust the initial window size, only subsequent windows that are opened after the initial window.

Does Nx586 support CPUID?

Attachments

  • Filename
    Save_Local_from_SIV32O.zip
    File size
    93.93 KiB
    Downloads
    64 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    SIV_DBOUT.log
    File size
    5.99 KiB
    Downloads
    66 downloads
    File license
    Fair use/fair dealing exception

Plan your life wisely, you'll be dead before you know it.

Reply 50 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Here is the run of SIV32A with supplementary files:

Filename
alpha.zip
File size
125.07 KiB
Downloads
66 downloads
File license
Fair use/fair dealing exception

file.php?mode=view&id=67587&sid=92f443f0651219c0194e6f38453d0733
file.php?mode=view&id=67588&sid=92f443f0651219c0194e6f38453d0733
file.php?mode=view&id=67589&sid=92f443f0651219c0194e6f38453d0733

Attachments

  • SIV32A_Permedia2.png
    Filename
    SIV32A_Permedia2.png
    File size
    1.1 MiB
    Views
    1430 views
    File license
    Fair use/fair dealing exception
  • SIV32A_GPU.png
    Filename
    SIV32A_GPU.png
    File size
    1.15 MiB
    Views
    1430 views
    File license
    Fair use/fair dealing exception
  • SIV32A.png
    Filename
    SIV32A.png
    File size
    1.16 MiB
    Views
    1430 views
    File license
    Fair use/fair dealing exception

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 51 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:

Does Nx586 support CPUID?

The window screen displays correctly with SIV32O.exe. I also tried to use the Maximum Line adjustment with SIV32L.exe, but it does not adjust the initial window size, only subsequent windows that are opened after the initial window.

Thank you for running the tests and maybe, but if it does it does not say that it does. Looking @ the start of SIV_DBGOUT.log it's as below so even after mu enable code ran it's not reporting CPUID support. Please will you see what happens on Windows 9X after you have run IDON.

DBGINI 28 Called cpu_nexgen( 1 ) CPUID 00000000 - zero means not supported
DBGINI 33 Finished cpu_nexgen( 1 ) CPUID 00000000 - still not supported

I have attached SIV32L + SIV32O 5.41 Beta-20 to SIV support for 386/486/586 class + Alpha CPUs and 3dfx + S3 + SiS + Matrox + XGI + old ATI + NVidia GPUs - Testing Help, please update. SIV32O is only for NT 3.51 + 3.50 + 3.10, don't use it on other systems.

Good I am pleased SIV32O was better. When you change the number of lines it should be used the next time you start SIV. If it's not as you expect post a screen shot.

Reply 52 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:

Here is the run of SIV32A with supplementary files:

Thank you, it's all looking rather better. Please try Beta-20 in which I have tried to improve the DEC EB164 motherboard support. It should now say EDO SIMMs @ 66MHz, how many SIMMs do you have and what size are they please?

How is Beta-20 looking and is there anything I should try and improve? [Cache Latency] did not do too well at detecting L3 Unified Cache Direct 32-byte 1MB, how does it do if run it a few times when the CPU is idle?

I have attached SIV32L + SIV32A 5.41 Beta-20 to SIV support for 386/486/586 class + Alpha CPUs and 3dfx + S3 + SiS + Matrox + XGI + old ATI + NVidia GPUs - Testing Help, please update, remember to put the files from both in the same folder.

Reply 53 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Beta 20:
file.php?mode=view&id=67609&sid=2a05144695ab0d9a81110518fd3a395b

Filename
alpha.zip
File size
125.14 KiB
Downloads
64 downloads
File license
Fair use/fair dealing exception

The mainboard uses 8x PS/2 SIMMs with Parity and 16 MB and 4Mx36 organisation.

Attachments

  • SIV32A.png
    Filename
    SIV32A.png
    File size
    1.16 MiB
    Views
    1417 views
    File license
    Fair use/fair dealing exception

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 54 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:

The mainboard uses 8x PS/2 SIMMs with Parity and 16 MB and 4Mx36 organisation.

Thank you your prompt testing and it's two steps forward one step back. I fixed the name to be EB164 rather than 10EB162, but this caused 1 x 128 rather than 8 x 16 MB SIMMs to be reported.

I think I have fixed this in the attached test SIV, please will you check it and post new files?

I am also wondering why there is no BIOS date, what is in HKLM\Hardware\Description\System please?

Have you ever pondered installing Windows 2000 on your Alpha? I have RC1 + RC2 on my two systems which work rather better than NT 4.0 SP6a, then again it's good to test SIV on NT4. I do have NT4 on my PWS 600, but rarely boot it.

Last edited by red-ray on 2019-08-29, 09:55. Edited 1 time in total.

Reply 55 of 1037, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Alpha will run on the pre-release versions of W2K? I imagine that there would be even less software out there to run on this combination compared to Alpha+NT4.

Plan your life wisely, you'll be dead before you know it.

Reply 56 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:

Alpha will run on the pre-release versions of W2K? I imagine that there would be even less software out there to run on this combination compared to Alpha+NT4.

Yes, I have both W2K RC1 + RC2 on my Alphas and use one of then build the native SIV32A.exe. I suspect most software that will run on NT 4.00 Alpha will run on W2K Alpha,

file.php?id=67632

Attachments

  • siv_axp.png
    Filename
    siv_axp.png
    File size
    30.98 KiB
    Views
    1397 views
    File comment
    SIV32A on a DS20
    File license
    Public domain

Reply 57 of 1037, by elianda

User metadata
Rank l33t
Rank
l33t

Beta-21 SIMM

file.php?mode=view&id=67640&sid=0b088a71154dab16e8a0fe340abece8d

file.php?mode=view&id=67641&sid=0b088a71154dab16e8a0fe340abece8d

DRAM Speed in the Machine page still shows 100 MHz.
It also reports ECC, but its Parity.
I also was wondering, how do you know it is EDO and not FPM?

Filename
alpha.zip
File size
125.11 KiB
Downloads
79 downloads
File license
Fair use/fair dealing exception

I did consider Win2K RC2 for Alpha, though I don't have it here. Interesting would be if it supports some more modern hardware because the HWCL of NT4 for Alpha is quite short.
I was also considering to install VC++ 6 on NT4, but could not find it for Alpha yet. Generally it seems to be hard to find native alpha software, even for free available programs.

Attachments

  • SIV32A_machine.png
    Filename
    SIV32A_machine.png
    File size
    1023.9 KiB
    Views
    1379 views
    File license
    Fair use/fair dealing exception
  • SIV32A.png
    Filename
    SIV32A.png
    File size
    935.8 KiB
    Views
    1379 views
    File license
    Fair use/fair dealing exception

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 58 of 1037, by red-ray

User metadata
Rank Oldbie
Rank
Oldbie
elianda wrote:
DRAM Speed in the Machine page still shows 100 MHz. It also reports ECC, but its Parity. I also was wondering, how do you know i […]
Show full quote

DRAM Speed in the Machine page still shows 100 MHz.
It also reports ECC, but its Parity.
I also was wondering, how do you know it is EDO and not FPM?

I did consider Win2K RC2 for Alpha, though I don't have it here. Interesting would be if it supports some more modern hardware because the HWCL of NT4 for Alpha is quite short.
I was also considering to install VC++ 6 on NT4, but could not find it for Alpha yet. Generally it seems to be hard to find native alpha software, even for free available programs.

Thank you for running the test and I will fix the 100MHzs on [Machine] and AFAIK the memory controller does support ECC memory. Much of the information is a best guess and I can't figure out how to read the DECchip 21171 Core Logic Chipset, see http://mirror.freedoors.org/CottonTail/

The tooltip will work with COMCTL32 V5.00.2919.800 which I have on my W2K RC1 system, but my NT 4.00 system has the same issue as yours so V5.00.2314.1000 is just too old.

I did not read the W2K HCL, I just crossed my fingers and tried it. I also advanced the date by 50 years so it did not timeout, [Windows] says InstallDate 2059-08-27 22:48:32 Wednesday (2829250112) Licensed CPUs 2 Registered CPUs 2.

I managed to find MSVC 6.0 Alpha on eBay in 2009 and recall the seller asking if I really wanted it as it would not work on x86! I also found SP3 on my MSDN CDs. I use the 2003R2 SDK .H files to compile SIV32A + SIV32L + SIV32O, even though all the Alpha support has gone, by defining _M_CEE_PURE in a SIV common header.

AFAIK SIV is the only CPUID type utility with an AXP driver let alone an native .exe. Have you tried any of the others on Alpha (they don't do well at all)?

Reply 59 of 1037, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Concerning CPUID, I thought it should be emulated on the NexGen, but I cannot say for sure. Read this comment from CPU-World posted by mtx500, http://www.cpu-world.com/forum/viewtopic.php?p=267052#267052

Posted: Sun Jan 20, 2019 4:35 pm    Post subject:	Reply with quote
I have Windows 98 SE running on both of my Nx586 PCs, one being VL and one PCI.

The important things are:
- You have to make sure your BIOS is the latest available version.
- You have to run IDON.com before Windows starts. So IDON.com must be in your AUTOEXEC.BAT file that is executed first. It's best to have it as the first line.

Note that in the BIOS Setup (pressing DEL during boot), in menu Setup > Chipset, setting "Alternate Instructions" to "yes" is not enough to get Windows 98SE installed. This setting enables the emulation of some 486 user mode instructions, but does not enable writing of EFLAGS.AC bit (Alignment Check), which some software uses to detect a 486 versus a 386 CPU.

Only IDON.com and IDOFF.com toggle both the emulation of 486 user mode instructions plus EFLAGS.AC being writeable. Of course, on a Nx586, the AC flag has no effect, but you can write it and read it back, while on a 386 you will always read 0 on that bit position.

If you don't use IDON.com, and only set alternate instructions to yes, then the Windows Explorers throws an Undefined Opcode Exception in SHLWAPI.DLL (Shell Light-weight Utility Library).

By the way, IDON.com and IDOFF.com do not itself contain any interesting code. They are just using opcode 0x0F 0x55 which is an API into the HyperCode that is stored within the BIOS chip and transferred into 2nd level cache during startup. BTW, 0x0F 0x55 is just an unused opcode that raises the Undefined Opcode Exception, so it is nothing special for the Nx586 hardware, but as all exceptions are handled in HyperCode, it is the HyperCode that treats this in a special way. So it looks like a magic NexGen-Instruction from the outside.

If your BIOS is new enough to emulate the CPUID instruction, then this instruction is always emulated. It can't be switched on/off. Some software uses CPUID to detect the CPU as 486, and some software tries EFLAGS.AC, so this explains mixed results if you have "Alternate Instructions" on but didn't use IDON.com.

But even if you do all this, there are some programs which still do not run. Some special opcode combinations are either not implemented, or not correctly implemented. The setup of Netscape 6 browser for example crashes on the lock xadd instruction. xadd is correctly emulated, but the combination with the lock prefix does not work.

I believe mtx500 from CPU-World hosts this, https://www.memotech.franken.de/NexGen/

Plan your life wisely, you'll be dead before you know it.