Thanks. But I am just baffled.
Thank you. The last result shows that the cache is not the cause for an error. I have prepared several more tests. Would you like to run them? All of them must print 3141. Just report which one prints something else.I just get:
i551
Thank you very much! It will be really astonishing if we are able to discover a general hardware bug for this CPU! Your last results are very promising, they give us chances to catch the bug. I didn't need to know what exactly was printed because the last tests have only two results: the correct one (3141) and all others.I went back and copied 7 through 12 to my 486 and I even tested back some of the old ones. The output changes between tries. Is that normal?
For instance, pi-log5 will output:
0000
0000
25A4
0000
0000
and running it again right after will give:
...
don't worry about being annoying, I've been in your spot oftentimes, wondering why a piece of code did not behave the way I expected. Takes me second to bring those files to my old computer. In the interest of science, I'll continue.
PI-LOG13>TRACE13.TXT
PI-LOG14>TRACE14.TXT
PI-LOG15>TRACE15.TXT
Thank you. This bug is very elusive. I don't think that any configuration can somehow affect the bug. We just need more tests.I've included my config.sys and autoexec.bat (renamed as .txt so that they can upload here) so you can see what's running. Right now, it's set up to accomodate Wing Commander 1, so I need expanded memory so I can run SoftMPU, in order to tap into some sweet Roland MT-32 music.
I run a CPU cache disabler right before running the game, and reenabling it right after. That disabler is NOT run as part of autoexec.bat, but rather, a separate batch file that's only launched when I launch the game itself. It's NOT been activated when I do your tests.
The purpose of this 486 is to give me access to a wide array of PC games and software from the early 90's up until the pre-3dfx days/pre-win95 days. I've played lots of the early Sierra games. The storage space (real 320 mb HD and compact flash 512 mb) makes it difficult to host a cd image so I haven't bothered with early DOS cd games much on that.
Thank you again. A man suggested two possible reasons for the unusual results for my program. He thinks it may be the incorrect value of the D flag or some self-modifying code. So I have just prepared three more tests, each must print 3141. Please report if any of them prints anything else.boop
pi-ibmpc | pi-pc386 | pi-pc486 | |
100 | 0 | 0 | 0 |
1000 | 0.16 | 0.11 | 0.16 |
3000 | 1.1 | 1.04 | 1.04 |
9264 | 9.12 | 9.12 | 9.06 |
just dos | |||
100 | 0 | 0 | 0 |
1000 | 0.16 | 0.11 | 0.11 |
3000 | 0.99 | 0.93 | 0.99 |
9264 | 8.4 | 8.4 | 8.4 |
Thank you again. A man suggested two possible reasons for the unusual results for my program. He thinks it may be the incorrect value of the D flag or some self-modifying code. So I have just prepared three more tests, each must print 3141. Please report if any of them prints anything else.
BTW the incorrect D flag may be a result of your configuration. So it is possible that your hardware works fine.
Thank you. Your system is rather too fast for my table but in absence of other Pentiums I have to use the only one result I have now. It is interesting that per MHz efficiency for this task the Pentium MMX is almost equal to the Motorola 68040.Pentium MMX 233. The first set is in a full screen command.com within Windows 98. The second set to "reboot to DOS mode" with a little overhead. It seems that most of the time on this machine is coming from print the digits to the screen.
pi-ibmpc pi-pc386 pi-pc486 100 0 0 0 1000 0.16 0.11 0.16 3000 1.1 1.04 1.04 9264 9.12 9.12 9.06just dos 100 0 0 0 1000 0.16 0.11 0.11 3000 0.99 0.93 0.99 9264 8.4 8.4 8.4
Thank you very much. Your results finally allow us to localize the problem. However I don't know how to call it. IMHO it is rather a bug because other CPUs work fine on my old code. I can suppose to call it as a cache quirk that somehow relates to the prefetch queue.18 and 19 report 0000 and sometimes 0001
20 reports 3141
Would you like to run new PI-IBMPC.COM on your system? It must work correctly now. This program also uses more accurate timer measurement than the previous variant.
EDIT. I have just received information which explains the situation. The 486 uses 32-byte prefetch queue and this quite explains the problem. So there was no bug in your CPU, it was my miss. Sorry. But it was interesting to try to catch an imaginary bug.
My tables are updated. Let me summarize our results:
486 DX2/66 pi-ibmpc pi-pc386 pi-386nd 100 0.02 0.01 0.01 1000 0.56 0.57 0.52 3000 4.70 4.91 4.72 9260 43.46 45.73 45.13