Thus, parallel calls to the driver or TSR were blocked.Īs I already noted, in the 16-bit world, the ROM BIOS itself was engaged in formatting, and for compatibility purposes, floppy disk formatting was still sent via 13h software 16-bit interrupt so that all TSRs and drivers could see what was happening. When one virtual machine captured the main critical section, any other virtual machine that attempted to do the same was forced to wait until the first virtual machine released the section. The INDOS flag was a 16-bit reflection of the entity that the 32-bit kernel called Main Critical Section The 32-bit kernel kept the main critical section and the INDOS flag in the same state, so as not to call the same MS-DOS or TSR driver in parallel several times. Since MS-DOS did not allow a nested call to itself, TSR had to carefully monitor this flag to know whether it was safe to access MS-DOS. MS-DOS set this flag during the processing of an I / O request. Anyone who was involved in TSR programming (wow, the definition of anyone who was involved in TSR programming once covered a lot of people, and today describes several dozen experienced programmers, most of whom would like to forget this as a nightmare), knows everything about the INDOS flag.
Why did formatting floppy disks so significantly affect the system?Īs I noted in the article from the link above, the 32-bit file subsystem carefully faked evidence, forcing the 16-bit code to believe that MS-DOS was responsible for everything, although this was not true.
In the end, Windows 95 drove all disk I / O, not just floppy disk formatting, through 16-bit code. Some TSR backup programs did this (backup programs developed for Windows 3.0 included 32-bit drivers for Windows 3.x, called VxD, for tracking disk operations). In the 16-bit world, 13h software interrupt was involved in formatting, and many programs used this fact by intercepting the interrupt so as to gain control when formatting a floppy disk. Despite the fact that I / O operations were processed by a 32-bit file subsystem, they all went through 16-bit code so that 16-bit drivers, TSR, and similar processors saw “normal 16-bit operations” and worked in their usual way surrounded by. It's all about compatibility with MS-DOS.Īs we saw a little earlier, MS-DOS in Windows 95 acted as a layer for old 16-bit drivers. (Actually, you can buy floppy disks already formatted, only shhh!) But why did Windows 95 hang when formatting a floppy disk? Who formats diskette all day long? It turns out that many geeks are only busy with this. Now, son, I’ll just format the floppy disk. Dad, show me which Windows is multitasking!