sunnuntai 7. heinäkuuta 2013

XTIDE Universal BIOS beta 3 bugs

What's going on with XTIDEUniversal BIOS? It's been four months since v2.0.0 beta 3 was released.

Beta 3 was supposed to be last and quick beta testing phase before releasing stable v2.0.4. Well, beta 3 turned out to be a lot more buggy than I thought it would. It is buggy but fortunately most of the bugs are quite minor and doesn't effect many users, except that slave drive support is broken.

I believe most people use XTIDE Universal BIOS on their XT systems along with XTIDE or Lo-tech XT-CF boards. Actually I do most of the testing with Pentium system so AT builds get most of my attention. I have 8 MHz Turbo board for testing XT builds but I don't have enough space to keep all my testing equipment available all the time. I also test with my gaming 286 and 486 systems from time to time.

Back to the bugs in beta 3. I started to do lots of testing to get stable version released and I fixed those minor bugs quite soon I found one. I decided to try to install Windows 95 and 98 along the testing process. There were no problems to install Windows 95 but Windows 98 was something else. One bug was exceptionally hard to fix and it took weeks.

Windows 98 install always crashed to blue screen at certain point. I was able to install Windows 98 using motherboard BIOS but again I got the very same blue screen when loading Windows once I had switched back to XTIDE Universal BIOS. Eventually I found out that the blue screen happened when Windows 98 tried to load protected mode floppy driver (HSFLOP.PDR). Renaming it forced Windows to use real mode floppy driver and that helped. Next I had to find out how XTIDE Universal BIOS was incompatible with Windows 98 floppy driver.

If you are familiar with XTIDE Universal BIOS, then you must know that it has a feature to allow install DOS from any floppy drive to any hard drive on the system. DOS itself only supports boot from first floppy or hard drive on the system. Drive number translation, or swapping, is a way around this limitation. During drive detection, you can use hot keys to select what drive(s) are to be set as primary. For example to boot from second hard drive in the system, press D. This sets second drive to be drive C and first drive to be D. Next you can press A to boot from floppy drive containing DOS install disk. Or you can press B to set second floppy drive as primary floppy drive and boot from it. Now you can install DOS from second floppy drive to second hard drive.

Floppy drives are handled by motherboard BIOS and there can be hard disks handled by other BIOSes as well. They don't know anything about drive swapping so XTIDE Universal BIOS must do all the drive number translations. One thing to complicate this is that the other BIOSes can make recursive INT 13h calls (INT 13h contains drive access functions) so XTIDE Universal BIOS must not translate the drive number more than once.

Previously XTIDE Universal BIOS temporarily restored system INT 13h handler before calling it. This way the system BIOS could do as much recursive calls as it needed to. Replacing the INT 13h handler was something Windows didn't expect and that caused blue screen. Now XTIDE Universal BIOS disables drive swapping before it calls system INT 13h.

I still have more testing and fixing do to before stable version can be released. I just don't have as much time for coding as I would like.



maanantai 1. heinäkuuta 2013

I'm a project leader of XTIDE Universal BIOS, a BIOS expansion to use large modern hard drives, CF cards and micro drives on old PC systems starting from original IBM 5150. But this blog is not just about XTIDE Universal BIOS, although I plan to write about it from time to time.

I'm a collector of sort. I don't want to own every piece of PC hardware ever released or fill my home with computers I don't have time to use (well, I don't really have time to use those I already have...). I aim to build “best” possible XT, 286, 386 and 486 systems for retro gaming purposes, or more properly DOS gaming purposes. That is the reason why building Pentium system is not so interesting.

Building perfect retro PC is actually impossible as there are no such thing as best components to build best possible system. There is no such thing as best sound card or even best Sound Blaster. For example my 486 system has three internal sound cards but it is still a compromise solution. And for my 286 I've tested many different VGA adapters but I'm sure there are even betters out there. I'm going to write about those and many other things eventually.

I hope my blog will be useful for other collectors and retro PC gamers such as myself.