VOGONS


Register settings for various CPUs

Topic actions

First post, by feipoa

User metadata
Rank l33t++
Rank
l33t++

There have been periodic requests for which CPU configuration registers to use for various CPUs and which programs are best suited to enable them. Below is a list of the programs and commands I use for various CPUs. If you know of other useful register settings with certain hardware combinations, please share your experience.

Cyrix 486SXL & DLC
I use a program from the SRC_MS folder by Paul Gortmaker called cyrix.exe. My settings are,

DOS
cyrix.exe -i1 -f
you may also need to set -m- if you experience periodic problems with your floppy drive.
some motherboards set L1 to disabled by default. In which case, you need to enable it with -e

You can use cyrix.exe -q to check the current status of the CPU.

For the SXL2, to enable clock doubling, cyrix.exe -cd
To go back to non-doubling mode, cyrix.exe -c

Note that the SXL and SXL2 CPUs always have their L1 cache scheme set to two-way set associative. Cyrix/TI 486DLC processors use the same registers that the SXL uses [for clock doubling], but for changing the L1 cache scheme.

For the DLC, to to set L1 in direct-mapped mode, cyrix.exe -cd
To go back to two-way set associative (the default), cyrix.exe -c

The options are:

Option			Action
------ ------
-a[-] Enable [disable] A20M input.
-b[-] Enable [disable] BARB input.
-c[d] Two way assoc. [direct-mapped] cache. -cd for SXL 2x mode
-d Raw dump of control registers and exit.
-e[-] Enable [disable] 1k cache via CR0.
-f[-] Enable [disable] FLUSH input.
-h Print this help screen and exit.
-i<n> Inhibit non-cachable region <n>, where n={1,2,3,4}.
-k[-] Enable [disable] KEN input.
-m[-] Enable [disable] cache of 1st 64k of each Mb.
-o Override check for existence of Cyrix DLC chip.
-p Disable all power saving modes.
-q Query DLC configuration status and exit.
-r[-] Disable [enable] cache of 640k -> 1M ROM shadow area.
-s[-] Enable [disable] SUSP i/o.
-v Print version number and exit.
-x<hex>,<size> Don't cache <size>kb from segment <hex>.

Windows
cyrix.exe -f -m- -xA000,128 -xC000,256
some MB's set Barb and Flush. If you are using Flush, do not set Barb. Deselect the Barb pin with -b-
some motherboards set L1 to disabled by default. In which case, you need to enable it with -e
I beleive -xA000,128 -xC000,256 is the same as using -r and -i1 -i2 -i3 -i4 together, however I use -xA000,128 -xC000,256 instead.

The DLC/SXL chips have L1 cache enabled by default, however the whole 4 GB memory region is set as non-cacheable [by default], which doesn't allow for operation of the L1 internal cache. Use -i1 to inhibit region 1, thereby making this region cacheable. The use of -f enables the FLUSH pin on the CPU, which allows the L1 cache to be invalidated (cleared) when needed. There are various other settings which you might need to enable depending on your specific motherboard/chipset, such as A20M, BARB, KEN, NC0, NC1 and some hardware modifications to the FLUSH, A20M, ADS#, and LOCK# pins, if necessary. You can use cyrix.exe -q to display a list of what registers are currently set and cyrix.exe -h for a list of commands.

If you are using a DMA-capable SCSI controller, such as the Adaptec AHA-1540/1542, and the SXL, SXL2, or DRx2, you will need to use the BARB method to invalidate the cache, cyrix.exe -b . The necessity of -f or -b or neither depends on your motherboard, CPU, and SCSI card. Experimentation may be necessary. If using BARB, and your motherboard has enabled FLUSH, disable flush with cyrix.exe -f-

For a more complete example, I use the following configuration line in my autoexec.bat file when using an AMI Mark V Baby Screamer motherboard + SXL2-66 + AHA-1540, cyrix.exe -e -b -cd -m- -r , however instead of disabling cache of the first 64 KB of each megabyte boundary, you can probably get away with just not caching the first 64KB after the first 1 MB boundary using -x10000,64 instead of -m-

EDIT - 2 Aug 2023:
I've attached information from a newsgroup posting by Ernie van der Meer which documents various motherboard hardware modifications for getting the DLC working. I scanned it myself from a very old printout I had. Refer to the attachment here:

Filename
Cyrix_DLC_hardware_mods_by_Ernie_van_der_Meer.pdf
File size
600.99 KiB
Downloads
98 downloads
File license
Fair use/fair dealing exception

There was also a youtube video by Atheatos which showed that tying #KEN to GND via a 1 K-ohm resistor improved DOOM results by around 6%. He also enabled #KEN via software once he did this. He had #FLUSH enabled in software.

IBM Blue Lightning BL3
For DOS, I use a utility from Evergreen Technologies called REVto486.exe. There is also a driver tool from Kingtston called lght486.exe, but do not use the installer. When using the Evergreen REVto486, add the following to your config.sys file

DEVICE=c:\REVto486.sys /BL /CN /CCM /3

/BL tells the software to setup the registers according to an IBM Blue Lightning CPU
/CN - unknown
/CCM makes the FPU faster.
/3 is for 3x, 2 for 2x, and 1 for 1x multiplier

there is a lot of additional settings which are documented well in the REVTO486 product manual.

DEVICE=c:\lght486.sys /3
/3 is for 3x, 2 for 2x, and 1 for 1x multiplier

The Evergreen driver and the Kingston driver setup the register a little differently. The most notable concerning performance are:

Processor Operation Register, Byte 1, or 1000h:1
Bit 7, CNPX - REVTO486 sets as 1, while LGHT486 sets to 0. The optimal setting is 1. Setting it to 0 drops FPU performance, as witnessed in Landmark Speed from 224.8 to 203.9

Bit 4, XTOUT - REVTO486 sets as 1, while LGHT486 sets as 0. The optimal setting is 0. Setting it to 1 drops DOOM score by 49 realtics.

These two settings can be set optimal using CTCHIP34. The command line option for this would be:
CTCHIP34 IBM486 /1000h:1:=%1xx0xxxx

If you are wanting to place this in autoexec.bat, you need an extra %, that is:
CTCHIP34 IBM486 /1000h:1:=%%1xx0xxxx

If for some reason, it is still not working correctly with autoexec.bat, use HEX syntax (but cannot set don't care's):
CTCHIP34 IBM486 /1000h:1:=8C

Processor Control Register, Byte 3, or 1000h:3
Bit 4, CLP - REVTO486 sets as 0, while LGHT486 sets as 1. Setting this to 1 lets the L1 cache turn off while not in use to save power, but doing so drops 4 realtics in DOOM. However, if you are overclocking your CPU, and given the rarity of these chips now, it may be more beneficial to turn L1 off while not in use.

If you want to force disable of L1 power savings, use CTCHIP34 IBM486 /1004h:3:=%%xxx0xxxx

If you want to force enable of L1 power savings, use CTCHIP34 IBM486 /1004h:3:=%%xxx1xxxx

Many systems have trouble with the IBM Blue Lightning BL2/BL3/DLC3 chip. Use HIMEM with /TESTMEM:on for an initial test. The following HIMEM settings have helped the BL3 work on many of my systems,
/MACHINE:1
/CPUCLOCK:ON

e.g. in config.sys, DEVICE=HIMEM.SYS /TESTMEM:on /CPUCLOCK:on /MACHINE:1 /V

The best outcome appears to be loading the REVTO486.SYS or LGHT486.SYS right before HIMEM with DOS=HIGH,UMB, however this may lead to a HIMEM error. On my SiS Rabbit system, I have thus set /TESTMEM:off and have not witnessed any issues in DOS or Windows 3.11.

Some important observations when using DOS=UMB were,

a) issues with soft-reset.
b) hang when loading speedsys with garbled image
c) cannot display DOOM result after benchmark
d) hang at DOS prompt when exiting Windows 3.11

The issues disappear with DOS=HIGH,UMB.

There are also some slight differences between REVTO486.sys and LGHT486.sys which I have not noticed any performance differences. These are as follows.

Processor Operation Register, Byte 0 or 1000h:0
Bit 6, DBCS, Cache Double Byte Character Set. REVTO486.sys sets this to 0, while LGHT486.sys sets to 1
Bit 1, CPC, Cache Parity Checking. REVTO486.SYS sets to 1, while LGHT486.sys sets to 0

Cache Region Control Register, Byte 3, or 1001h:3
Bits 7-0, LMROR, 1 Meg Read only hi-byte. REVTO486.sys sets this to 00000000, while LGHT486.sys sets to 00010000

Cache Region Control Register, Byte 1, or 1001h:1
Bits 7-9, LMCR, 1 Meg Cacheable hi-byte. REVTO486.sys sets this to 00000011, while LGHT486.sys sets to 00010011

Some general information about upper memory range:
640K - 704K = A0000 - AFFFF (sometimes VGA shadow)
704K - 768K = B0000 - BFFFF
768K - 832K = C0000 - CFFFF = VGA BIOS SHADOW starting at C0000 and SCSI BIOS SHADOW starting at C8000
832K - 896K = D0000 - DFFFF
896K - 960K = E0000 - EFFFF
960K - 1024K - F0000 - FFFFF = SYSTEM BIOS SHADOW

In some conventions, this notation may be represented as:
640K - 704K = A000 - AFFF (sometimes VGA shadow)
704K - 768K = B000 - BFFF
768K - 832K = C000 - CFFF = VGA BIOS SHADOW starting at C0000 and SCSI BIOS SHADOW starting at C8000
832K - 896K = D000 - DFFF
896K - 960K = E000 - EFFF
960K - 1024K - F000 - FFFF = SYSTEM BIOS SHADOW

So if we wanted to identify these as ROMs, then a write to these regions will not be updated in cache. Theoretically, should be more efficient, but why would there ever be writes to these regions if they are reserved to begin with? Anyway, so we would set the Cache Region Control Register Byte 3 (the Hi-byte), 1001h:3 as, 100100xx

Similarly, if we want to have these shadowed regions read cacheable, we'd identify them in Cache Region Control Register Byte 1 (hi-byte0, 1001h:1 as 100100xx

Kingston does identify as default in their driver the loction of the VGA/SCSI BIOS ROM, but not the system ROM.. Curious. Conversely, my Daewoo board, which is BL3 aware, only identifies the system ROM here, not the hard drive controller. Nonetheless, these are the options I have ended up with after loading either the Kingston or Evergreen drivers:

ON MY SYSTEM w/VGA at C0000 and w/SCSI BIOS at C8000:

CTCHIP34 IBM486 /1000h:0:=%%x1xxxx1x
CTCHIP34 IBM486 /1000h:1:=%%1xx0xxxx
CTCHIP34 IBM486 /1004h:3:=%%xxx1xxxx
CTCHIP34 IBM486 /1001h:3:=%%100100xx
CTCHIP34 IBM486 /1001h:1:=%%100100xx

If you don't know the location of your HDD controller's ROM, remove the middle 1 and put a 0 on the last two entries.

Cyrix/IBM/SGS Thomson 5x86 [/size]
For DOS, I use a program by Peter N. Moss called 5x86 Register Bit Enabler, Version C2

UMC 8881F/8886BF-based motherboards
(note that LINBRST may need to be disabled on some older revisions of this chipset)

DOS (stepping 0, revision 5 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=on /LINBRST=on /LOOP_EN=off /RSTK_EN=off /BTB_EN=on

DOS (stepping 1, revision 3 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=off /LINBRST=on /LOOP_EN=off /RSTK_EN=off /BTB_EN=on
(S1R3 CPUs do not support BWRT.)

The easiest program to use to adjust the multiplier of the 5x86 is SetMul by G. Broers.

setmul.exe 1 ----> sets multiplier to 1x
setmul.exe 2 ----> sets multiplier to 2x
setmul.exe 3 ----> sets multiplier to 3x
setmul.exe 4 ----> sets multiplier to 4x
setmul.exe HSE ----> sets multiplier 0.5x

Note that a 4x-capable Cyrix 5x86 chip, when booted in 4x mode, can only switch between 1x, 2x, and 4x, not 3x; a 4x- or 3x-capable Cyrix 5x86 chip, when booted in 3x mode, can only switch between 3x and 1x; and a 3x-capable Cyrix 5x86 chip, when booted in 2x mode, can only switch between 2x and 1x.

Win9x (stepping 0, revision 5 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=on /LINBRST=on /LOOP_EN=on /RSTK_EN=on /BTB_EN=off

Win9x (stepping 1, revision 3 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=off /LINBRST=on /LOOP_EN=off /RSTK_EN=off /BTB_EN=on
(I discovered that my particular S1R3 chip, which is rated for 100 MHz, would not load Windows with BTB or RSTK enabled at 120 MHz. For such chips, you can use /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=off /LINBRST=on /LOOP_EN=on /RSTK_EN=off /BTB_EN=off. Other reports indicate that BTB will work in Windows at 120 MHz if LSSER=on.)

These settings assume that your motherboard has already set L1 in write-back mode (CR0: CD=0, NW=1, CCR2: USE_WBAK=1). To see a list of which registers are currently set, you can use the Evergreen DOS utility and type ET586.exe /s, or use CTCHIP34.exe cx586.

WinNT4 / W2K (stepping 0, revision 5 CPUs)
For NT4/W2K, I use the Evergreen 586 Driver Setup version 1.0, dated 5/06/96. This loads a driver, ET586NT.SYS, into your Control Panel/Devices folder, and is set to run at System bootup. The values this program requires are in decimal. The settings for NT4 are the same as for Win9x, except that the format is in 8-bit register HEX-to-DEC.

Cache Mode: Write Back Cache
Set Startup Type: Yes, attempt to setup
PCR0 = 5
CCR1 = 2
CCR2 = 214
CCR3 = 28
CCR4 = 56

WinNT4 / W2K (stepping 1, revision 3 CPUs)
PCR0 = 2
CCR1 = 2
CCR2 = 150
CCR3 = 28
CCR4 = 56

These values are stored in HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ET586NT\Parameters. Oddly enough, they are stored in HEX in the registry.

SiS 496/497-based motherboards

DOS (stepping 0, revision 5 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=on /LINBRST=off /LOOP_EN=off /RSTK_EN=off /BTB_EN=on

DOS (stepping 1, revision 3 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=off /LINBRST=off /LOOP_EN=off /RSTK_EN=off /BTB_EN=on

Win9x (stepping 0, revision 5 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=on /LINBRST=off /LOOP_EN=on /RSTK_EN=on /BTB_EN=off

Win9x (stepping 1, revision 3 CPUs)
5x86.exe /LSSER=off /FP_FAST=on /MEM_BYP=on /DTE_EN=on /BWRT=off /LINBRST=off /LOOP_EN=off /RSTK_EN=off /BTB_EN=on

These settings assume that your motherboard has already set L1 in write-back mode (CR0: CD=0, NW=1, CCR2: USE_WBAK=1).

WinNT4 / W2K (stepping 0, revision 5 CPUs)
For NT4/W2K, I use the Evergreen 586 Driver Setup version 1.0, dated 5/06/96. This loads a driver, ET586NT.SYS, into your Control Panel/Devices folder, set to run at System bootup. The values this program requires are om decimal. The settings for NT4 are the same as for Win9x, except that the format is in 8-bit register HEX-to-DEC.

Cache Mode: Write Back Cache
Set Startup Type: Yes, attempt to setup
PCR0 = 5
CCR1 = 2
CCR2 = 214
CCR3 = 16
CCR4 = 56

WinNT4 / W2K (stepping 1, revision 3 CPUs)
PCR0 = 2
CCR1 = 2
CCR2 = 150
CCR3 = 16
CCR4 = 56


Cyrix MediaGXm

DOS & Win9x

We want to enable RSTK_EN, LOOP_EN, and FP_FAST, using CTCHIP34 . The command, if you want to type it out in DOS is,

CTCHIP34 cx586 /20h:=%xxxxx1x1
20h refers to the HEX index for Performance Control Register [PCR0]
x = no change
1 = set high
xxxxx1x1 = set high the 0th and 2nd bit of this register (RSTK_EN and LOOP_EN, respectively)

If using in autoexec.bat, add an extra %, so: CTCHIP34 cx586 /20h:=%%xxxxx1x1

CTCHIP34 cx586 /0E8h:=%xx1xxxxx
0E8h refers to the HEX index for Control Register 4 [CCR4]
x = no change
1 = set high
xx1xxxxx = set high the 5th bit of this register, which is FP_FAST.

If using in autoexec.bat, add an extra %, so: CTCHIP34 cx586 /0E8h:=%%xx1xxxxx

If you get an error with this particular index, saying that E8H not found, remember to prefix it with a 0, that is 0E8H. You can also manually go into CHCHIP's GUI to enable FP_FAST as follows,
CTCHIP34 cx586
Hit Page Down until you arrive at E8h
P
5=1
Hold down PG DN to exit.

You can also use a combination of programs to enable FP_FAST, RSTK_EN, and LOOP_EN, but it is messy and not necessary. The first program was in a zip file called CyrixGo.zip. It contains set5x86.exe and free5x86.exe and mentions the author as AEB Software. First run set5x86.exe. It goes through a series of questions concerning which Cyrix 5x86 features you would like enabled. Answer the questions as follows: LSSER = No, LOOP_EN = Yes, BTB_EN = No, RSTK_EN = Yes, BWRT = Yes, WT1 = Yes, USE_WBAK = Yes, DTE_EN = Yes, MEM_BYP = Yes. Unfortunately, there is no FP_FAST option to enable with this program and the program also makes a mess of many other register settings. This program creates a configuration file, 5x86.cfg which is invoked by free5x86.exe.

Place free5x86.exe in autoexec.bat

We now must use 6x86ctl.exe by Ray Van Tassle to fix the mess that free5x86.exe made and to enable FP_FAST. Unfortunately, 6x86ctl.exe does not allow for setting LOOP_EN and RSTK_EN, which is why free5x86.exe was required.

Place the following commands in your autoexec.bat

6x86ctl.exe -n1 -b2
6x86ctl.exe -n2 -b80
6x86ctl.exe -n2 -b8
6x86ctl.exe -n3 -b4
6x86ctl.exe -n4 -b80
6x86ctl.exe -n4 -b20
<------------this particular line enables FP_FAST

It was quite a headache to figure all this out. Unfortunately, free5x86.exe leaves the colour of your DOS font as a reddish pink. Add mode co80 to your autoexec.bat file to bring the colour back to system default. Thanks to Malvineous for this tip.

Cyrix MII

DOS
I use a program called 6x86ctl by Ray Van Tassle and 6x86opt by Mikael Johansson.

6x86ctl.exe -f
What is this? A quote from the readme, "Branch Target Buffer is set to enable far change of flow (FAR_COF)".

6x86opt.exe -l
What is this? A quote from the readme, "Searches for a Linear Frame Buffer and tries to define an ARR/RCR for it allowing Write Gathering."

These are the only two register settings which had any measureable gain on my system. NO_LOCK and WT_ALLOC are enabled by default. If your board does not have write allocate enabled by default, you can use 6x86cfg.exe by Olivier Gilloire.

6x86cfg.exe -WA ------> Set this to enable write allocate

If your board do not have NO_LOCK enabled by default, you can use Fast'n'Slow, Fass.com, by Serge Ivanov

FASS.com /C ------> Set this to enable NO_LOCK

Win9x/NT4/W2K/XP

I use the Powerleap CPU Control Panel and set it to load at system boot. The settings I have with a check box are:
CPUID, Negate Lock#, Write Allocate, Use SMM, No Delay I/O Recovery, SUSP#, SUSPA#, Lower Power Suspend.
Caching regions A0000-BFFFF and Main memory set to W.G.

Cyrix 6x86

DOS & Win9x
I recall only NO_LOCK had any measureable performance gain.
FASS.com /C

My motherboard, a VIA MVP3-based board, has LINBRST set to 1 by default. I think many boards which support LINBRST should have it enabled, otherwise it is likely not supported. Intel 430TX boards do not support Cyrix's LINBRST feature.

VIA C3 Nehemiah

DOS & Win9x
I use Setmul by G. Broers to set the multiplier to 10.5x, allowing the CPU to run at 1.4 GHz.

setmul.exe 10.5

Setmul also contains other useful slow down features, like disabling cache and branch prediction.

NT4/W2K/XP
I use CrystalCPUID v4.15.5.452 to set the multiplier. This program has a startup program option which puts a link into your startup folder. Mine looks like this,
CrystalCPUID.lnk with target: "C:\CrystalCPUID.exe" /F20 /P1 /E

AMD K6
The BIOS in my 430TX board was modified by Jan Steunebrink to support Write Allocate. If you have a modified BIOS from J. Steunebrink, the System, and sometimes Video, BIOSes must be set to non-cacheable. For software enabling, you can try,

Fass.com /a

or

K6waon

A nice compilation of K6-2 utilities can be found here: https://www.philscomputerlab.com/k6-2-2-3-resources.html

Attachments

  • Filename
    CPU_Register_Control_Apps.rar
    File size
    4.18 MiB
    Downloads
    653 downloads
    File comment
    Attached here are the programs used in the above examples to set various CPU registers.
    File license
    Fair use/fair dealing exception
Last edited by feipoa on 2023-08-09, 08:03. Edited 43 times in total.

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

Reply 1 of 26, by carlostex

User metadata
Rank l33t
Rank
l33t
feipoa wrote:
AMD K6 The BIOS in my 430TX board was modified by Jan Steunebrink to support Write Allocate. If you have a modified BIOS from J […]
Show full quote

AMD K6
The BIOS in my 430TX board was modified by Jan Steunebrink to support Write Allocate. If you have a modified BIOS from J. Steunebrink, the System, and sometimes Video, BIOSes must be set to non-cacheable. For software enabling, you can try,

Fass.com /a

This is indeed due to the Intel TX chipset. On boards based with this chipset i was told by Jan that Video and System should always be set to non-cacheable.

Reply 2 of 26, by BSA Starfire

User metadata
Rank Oldbie
Rank
Oldbie

Great & informative post, thanks for sharing.

286 20MHz,1MB RAM,Trident 8900B 1MB, Conner CFA-170A.SB 1350B
386SX 33MHz,ULSI 387,4MB Ram,OAK OTI077 1MB. Seagate ST1144A, MS WSS audio
Amstrad PC 9486i, DX/2 66, 16 MB RAM, Cirrus SVGA,Win 95,SB 16
Cyrix MII 333,128MB,SiS 6326 H0 rev,ESS 1869,Win ME

Reply 4 of 26, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Really glad to see someone else using a Cyrix MediaGX board! I predict these will become rare and collectible in the future as they were so obscure. It was a real pain to figure out those optimal MediaGX register settings.

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

Reply 5 of 26, by elianda

User metadata
Rank l33t
Rank
l33t

Great information.
Could you give a single archive with all the tool programs you used?

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 6 of 26, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I updated the original post with a single .rar file containing the programs. I also added more information to the Cyrix 486SXL section.

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

Reply 7 of 26, by alvaro84

User metadata
Rank Member
Rank
Member

I necropost the thread to thank you feipoa for figuring out these settings. And report that my Quake timedemo went up from 19.3 to 20.6 fps with your guidance. I don't even know what clock it's running at, though. It's a BGA 180MHz piece but BIOS insists the board drives it at 200MHz. And every diagnostic software says something different, ranging from 50 to 150... Is there a definitive program to report it correctly?

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 8 of 26, by jasa1063

User metadata
Rank Oldbie
Rank
Oldbie

After doing some testing with CTCHIP34 I am able to set via the command line on my Cyrix MediaGX. You have to specify a value in hex for it to work. Run CTCHIP34 with the specified register to see the current values. Figure out what bit values to change and then come up with the required hex value for example:

CTCHIP34 cx586 /20:=5

Register E8 can be configured by prefixing it with a zero on the command line, so use /0E8 instead of /E8.

Reply 9 of 26, by feipoa

User metadata
Rank l33t++
Rank
l33t++
jasa1063 wrote on 2021-03-09, 04:43:

After doing some testing with CTCHIP34 I am able to set via the command line on my Cyrix MediaGX. You have to specify a value in hex for it to work. Run CTCHIP34 with the specified register to see the current values. Figure out what bit values to change and then come up with the required hex value for example:

CTCHIP34 cx586 /20:=5

Register E8 can be configured by prefixing it with a zero on the command line, so use /0E8 instead of /E8.

The register needs to be hex, but the value doesn't need to be. Did you follow my instructions for CTCHIP34 for the MediaGX? I've added your comment about the 0-prefixing. Were you able to get ctchip34 to work in autoexec.bat? I had trouble with that.

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

Reply 10 of 26, by jasa1063

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote on 2021-03-09, 06:51:
jasa1063 wrote on 2021-03-09, 04:43:

After doing some testing with CTCHIP34 I am able to set via the command line on my Cyrix MediaGX. You have to specify a value in hex for it to work. Run CTCHIP34 with the specified register to see the current values. Figure out what bit values to change and then come up with the required hex value for example:

CTCHIP34 cx586 /20:=5

Register E8 can be configured by prefixing it with a zero on the command line, so use /0E8 instead of /E8.

The register needs to be hex, but the value doesn't need to be. Did you follow my instructions for CTCHIP34 for the MediaGX? I've added your comment about the 0-prefixing. Were you able to get ctchip34 to work in autoexec.bat? I had trouble with that.

Yes, I did follow your instructions. It appears that the default values on a command line are assumed to be hex according to the documentation for CTCHIP34. It also mentioned about prefixing the 0 to values starting with "A" and above. Everything is working while setting via my autoexec.bat and is running much faster now. Speedsys peformance index went from 150 to 179!

Reply 11 of 26, by jasa1063

User metadata
Rank Oldbie
Rank
Oldbie

I just wanted to mention since getting CTCHIP34 working in my AUTOEXEC.BAT, I decided to try and enable Branch Prediction on my MediaGX. With all options now enabled, I have had no stability issues in DOS or Windows. Now my CPU is branded as a Geode from National Semiconductor. I don't know if these newer revisions of the MediaGX fixed the Branch Prediction or not. I was also able to overclock the CPU to 300Mhz going from 266Mhz.

Reply 12 of 26, by feipoa

User metadata
Rank l33t++
Rank
l33t++

That is good to know that you've found a working autoexec.bat method for ctchip34. Maybe I don't need to use my messy means with 3 utilities to set the registers anymore.

How much performance gain did branch prediction offer? Were you able to quantify this?

I found clocking to 300 MHz a challenge, especially if you want to use the fastest memory timings. I had to limit my system to 64 MB of RAM. Which motherboard are you using and how much RAM?

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

Reply 13 of 26, by jasa1063

User metadata
Rank Oldbie
Rank
Oldbie

I have an ECS P5GX-M motherboard with a Geode GXm-266P CPU overclocked to 300Mhz. It has 256MB (2x128MB) of PC100 SDRAM set to CPU clock divided by 4 with CAS 2. I am using an ET6000 video card with 4MB of MDRAM. Trying to run the memory with a divider of 3 was a no go. Here are some Speedsys results from various registers settings. The Speedsys performance index increased from 174.25 from 179.82 with branch prediction enabled. I am running CTCHIP34 in my AUTOEXEC.BAT with the follow values:

CTCHIP34 cx586 /20:=7
CTCHIP34 cx586 /0e8:=0f8

Attachments

  • SSTIMG03.jpg
    Filename
    SSTIMG03.jpg
    File size
    56.84 KiB
    Views
    5678 views
    File comment
    CTCHIP34 all options enabled including Branch Prediction
    File license
    Public domain
  • SSTIMG02.jpg
    Filename
    SSTIMG02.jpg
    File size
    58.17 KiB
    Views
    5678 views
    File comment
    CTCHIP34 all options enabled excluding Branch Prediction
    File license
    Public domain
  • SSTIMG01.jpg
    Filename
    SSTIMG01.jpg
    File size
    57.06 KiB
    Views
    5678 views
    File comment
    Default BIOS settings
    File license
    Public domain

Reply 14 of 26, by JohnBourno

User metadata
Rank Newbie
Rank
Newbie
feipoa wrote on 2021-03-14, 03:42:

That is good to know that you've found a working autoexec.bat method for ctchip34. Maybe I don't need to use my messy means with 3 utilities to set the registers anymore.

So for me to make ctchip34 work when calling it in the autoexec.bat I had to use this format
CTCHIP34 SYM461 /33h=&0101000

So instead of := I used = and instead of % I used & .. this was mentioned somewhere in the tool itself.

Reply 15 of 26, by feipoa

User metadata
Rank l33t++
Rank
l33t++

JohnBourno, thanks for the additional details. I will revisit this when I fix my information on register settings. My current method of setting the MediaGX registers is appalling and I've been meaning to retry the suggestions shown with CTCHIP34.

jasa1063, did you notice any benefit with branch prediction on the MediaGX with any games?

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

Reply 16 of 26, by Vynix

User metadata
Rank Oldbie
Rank
Oldbie

I decided to give Peter Moss' utility a try, and so far, I got some... Interesting results.

This particular system is a bit unusual as in, it is an Apple DOS card (the 7in PCI with the 5x86-100) running in a Power Macintosh 7500/100 (the CPU has been swamped for a Sonnet Crescendo G3/300) using System 7.6F on the Mac side and MS-DOS 6.22/Windows 3.11 for Workgroups on the PC side.

And the reason I point this out is that the Apple BIOS is a bit weird, it looks like a AMIBIOS from back in the day but it is embedded in the card's MacOS driver file and doesn't give you any options besides what is exposed in the "PC SETUP" control panel:

c0bc4548-794f-4dc3-89dd-1a732e0082a3photo.jpeg
Filename
c0bc4548-794f-4dc3-89dd-1a732e0082a3photo.jpeg
File size
80.45 KiB
Views
2234 views
File license
Public domain
00203816-4fc7-47e0-aea2-58c69372fe59photo.jpeg
Filename
00203816-4fc7-47e0-aea2-58c69372fe59photo.jpeg
File size
407.35 KiB
Views
2234 views
File license
Public domain

Without any of the registers enabled, Speedsys' CPU index topped out at 39.46:

5d9d89a0-0c44-421b-a66f-b22a35491150photo.jpeg
Filename
5d9d89a0-0c44-421b-a66f-b22a35491150photo.jpeg
File size
368.86 KiB
Views
2234 views
File license
Public domain

With the Stepping 1/Rev3 settings, this jumped from 39 to 45.30:

410ddb4f-4673-45d2-9b1b-806f76833f8ephoto.jpeg
Filename
410ddb4f-4673-45d2-9b1b-806f76833f8ephoto.jpeg
File size
397.58 KiB
Views
2234 views
File license
Public domain

Using the Stepping 0/Rev5 (as my CPU is a S0/R5) it increased to... 45.31:

f47ebb46-a239-4181-b885-4a82e91a5047photo.jpeg
Filename
f47ebb46-a239-4181-b885-4a82e91a5047photo.jpeg
File size
402.59 KiB
Views
2234 views
File license
Public domain

I guess it's time to mess around with CTChip or SetMul..

Edit:
Here's a couple of observations:

- When LH'ing 5x86.exe, I would get constant weird glitches, such as DOSSHELL or WinFile causing the whole card to reset and throw a keyboard error

- The multiplier on those 5x86 Apple DOS/PC cards seems to be fixed at a 3x multiplier, even setting it to 1x multi does not work (and SETMUL still reports the chip as running in 3x mode).

Edit 2: About the pictures, I don't have a capture card for this Mac yet, there was a Startech one that was perfect as it had a VGA pass-through port, but it's been since discontinued and I can't find any for sale, so in the meantime, I had to take pictures directly off the screen of the monitor using my craptacular phone camera, that's the least I can do.

Proud owner of a Shuttle HOT-555A 430VX motherboard and two wonderful retro laptops, namely a Compaq Armada 1700 [nonfunctional] and a HP Omnibook XE3-GC [fully working :p]

Reply 17 of 26, by Peter z80.eu

User metadata
Rank Newbie
Rank
Newbie

I am missing any help/any utility to enable/disable the internal CPU cache of the Cyrix Cx486DX2 (in fact it is a clone named "It's ST 486DX2-80") in a reliable way.
I've tested several 486DLC tools, but they do not work or do not even start (because it's of course not a 486DLC), the 5x86 utilities are not working for the same reasons.
For sure the Cyrix Cx486DX2 has an internal CPU cache and yes, the documentation of the CPU says it can be enabled or disabled (disabled by default unfortunately), but there is no dedicated utility software for exactly this CPU...

Reply 18 of 26, by gerwin

User metadata
Rank l33t
Rank
l33t
Vynix wrote on 2023-07-29, 14:53:

Edit 2: About the pictures, I don't have a capture card for this Mac yet, there was a Startech one that was perfect as it had a VGA pass-through port, but it's been since discontinued and I can't find any for sale, so in the meantime, I had to take pictures directly off the screen of the monitor using my craptacular phone camera, that's the least I can do.

Speedsys has a build-in function to export to what you see on the screen to a pcx image, by pressing the R-key when tests are done. You can then convert that saved pcx image to png (or gif) and attach it to the forum.

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 19 of 26, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie
gerwin wrote on 2023-07-30, 17:14:

Speedsys has a build-in function to export to what you see on the screen to a pcx image, by pressing the R-key when tests are done. You can then convert that saved pcx image to png (or gif) and attach it to the forum.

Yes. But please please do not convert them to JPG. For low colour count pictures PNG is superior.