Archive for November, 2011
Version 0.97: + Stub now appends to output file instead of overwriting it. + Command-line options added to optinally skip dodgy detection routines, add a system description, and change the output filename.
Created so that remote debugging is easier.
Version 0.96: * Added two compilation targets, one normal and one for debugging (dstub). Either one can be run to gather output, although only dstub will produce errors that the author can use to debug problems. + Fixed bug with Cirrus Logic detection (was trying to write a word value to a byte-sized port)
For extra fun, you can load “dstub” into Turbo Debugger and see all of the variable/procedure/symbol names. Only if you’re curious though.
Version 0.95: - BIOS CRC routine was overzealous. Now only the area from the BIOS init vector to FFFFF is scanned. + VirtualBox and PC Transporter added to detection library.
This is about the final level of maturity for the detection stub, so I am going to start writing the main program now. I’ve already written a 12-page design document, so I know what direction I’m heading in. I should have something ready for beta testing in a few weeks.
Version 0.94: + Added detection for AT&T PC 6300, Olivetti M24, and Compaq Portable III extended CGA 640x400 adapters. + Added machine model word to the output, to help expand the detection database. + Rewrote BIOS identification from HLL to assembler and brought the execution time from ~24 seconds down to 0.5 on 8088 :-D + Identified stack overflows and fixed them (whoops). Compatibility should rise because of this. - Extra handling of floppy support added so the floppy access wouldn't affect the CPU MHz calc. RAM usage up 3K as a result. * topbench source currently at 5700 lines.
I converted all of the program’s output from Turbo Pascal write/writeln statements to DOS “print character” and “print string” statements to make the stub more compatible with MS-DOS clones. (The stub still might have issues on MS-DOS clones, like the Dec Rainbow, Tandy 2000, etc. but at least the status output will be visible, which will help with debugging.) Stub 0.93 is available on the Downloads page.
I decided to stop being lazy and figure out why the stub had a problem on DOS 2.1. 20 minutes with d86 and I found that DOS 2.x does not like it one bit if you try to call a DOS function that does not exist. I was trying to execute Int 2F/AX=1600h to check if the user was in Windows or not, and it turns out this causes DOS 2.x to freak the hell out and die.
I have decided that checking for the presence of Windows is no longer important (if you’re running TOPBENCH in Windows, you’re missing the point entirely). Stub 0.92 now works properly on DOS 2.x.
I was going to just dump TOPBENCH on http://www.oldskool.org/pc like I’ve done with most of my other stuff, but the amount of research I’d done was just too cool to bury. Trying to cram it all into a PDF or on a single web page would be a disservice to the material, so I bit the bullet and decided to see if wordpress could serve as a simple content management platform.
The good news is that it can — barely. So welcome to the TOPBENCH website. Download the stub and run it on your classic platform and send me the results so I can have something to populate the database with other than my own collection, ok?
While TOPBENCH itself is not yet ready for public consumption, the benchmarking metric routines themselves have been written and are fixed (meaning, they will not change for the life of the benchmark, since doing so would invalidate the metric score).
Please help me seed the TOPBENCH database by running the stub on your own classic hardware and sending me the output. The latest version of the stub is located at the Downloads tab.