Author Archives: Michal Necasek

ESDI Adventures

At long last, I got hold of a decently well functioning ESDI drive. From my earlier adventures, I had a WD1007V-SE2 controller, as well as an older WD1007A. The WD1007A (Compaq branded) used to live in a Hyundai 286 machine … Continue reading

Posted in ESDI, PC hardware, PC history, Seagate | 23 Comments

Time Trouble

Last Friday I had a moment of panic. While investigating why different run-time libraries might interpret file timestamps differently, I noticed that even Windows doesn’t always agree with itself. When was dos4gw.exe last modified, at 10:14 PM or 9:14 PM? … Continue reading

Posted in Bugs, Development, Microsoft | 19 Comments

Learn Something Old Every Day, Part XIV: read() Return Value May Surprise

Last week I amused myself by porting some source code from Watcom C to Microsoft C. In general that is not difficult, because Watcom C was intended to achieve a high degree of compatibility with Microsoft’s C dialect. Yet one … Continue reading

Posted in C, Development | 4 Comments

Learn Something Old Every Day, Part XIII: InDOS Is Not Enough

The other day I spent a while trying to understand the purpose of a rather strange looking piece of code inside Borland’s THELP.COM utility shipped with Turbo Pascal 6.0 (THELP.COM was misbehaving under emulated DOS). The THELP utility performs the … Continue reading

Posted in DOS, PC history, Undocumented | 13 Comments

Minor 387 Documentation Mystery

So here I am, writing a bit of test code to figure out the behavior of x87 FPUs with regard to saving and loading the FPU state (FSTENV/FLDENV and FSAVE/FRSTOR instructions in different modes and formats). The original real-mode only … Continue reading

Posted in Documentation, Intel, x87 | 9 Comments

The Other Three

A previous blog post explored the semi-mysterious yet sometimes highly useful DOS APPEND command. Now it’s time to look at its relatives: ASSIGN, JOIN, and SUBST. ASSIGN ASSIGN is the oldest of the bunch. It was written by IBM and … Continue reading

Posted in DOS, IBM, PC history | 13 Comments

I Thought I Found a Bug…

So I was working on improving a DOS emulator, when I found that something seemingly trivial wasn’t working right when COMMAND.COM was asked to do the following: echo AB> foo.txtecho CD>> foo.txt Instead of ABCD, foo.txt contained ABBC. I verified … Continue reading

Posted in Bugs, C, Development, Watcom | 25 Comments

DOS APPEND

For a long time, I couldn’t quite grasp what the DOS APPEND command could possibly be good for. Until I came across a situation which APPEND was made for. When I worked on organizing and building the DOS 2.11 source … Continue reading

Posted in DOS, IBM | 46 Comments

Stack Checking on OS/2

A while ago I was involved in debugging a seemingly simple yet mysterious problem: A piece of code (a fairly simple interface DLL) built with the Open Watcom compiler was failing with a bogus stack overflow error. The mystery was … Continue reading

Posted in Debugging, Development, OS/2, Watcom | Leave a comment

Programming NetBIOS on OS/2

Recently I spent some time trying to understand a piece of networking code, and it turned out to be far more difficult than it should have been. The code in question is the NetBIOS interface of C-Kermit and was originally … Continue reading

Posted in Development, Documentation, IBM, Microsoft, Novell, OS/2 | 18 Comments