A little while ago I made a post about running the Amiga Research Operating System under Virtual PC / Virtual Server (http://blogs.msdn.com/virtual_pc_guy/archive/2005/07/18/440250.aspx) – where I observed that there was an intermittent pause when running it under Virtual PC – but not under Virtual Server. It turns out that the reason for this is because of the different ways that Virtual PC and Virtual Server handle configuration of the floppy drive (thanks Slicer for the heads up here).
Under Virtual Server we allow you to specify whether you want the emulated floppy drive to have no media, a virtual floppy disk, or a physical floppy disk in the virtual machine settings. If you select to use a physical floppy disk we will capture the floppy disk when the virtual machine is powered on.
Under Virtual PC, capturing of floppy disks (virtual or physical) is only possible once the virtual machine is running – but we do allow you to specify whether the physical floppy disk should be ‘automatically captured’ (enabled by default). When this option is enabled we will attempt to capture the physical floppy disk whenever the virtual machine tries to access its emulated floppy drive and no other physical or virtual floppy disk is already configured. The upside to Virtual PC’s approach is that you do not have to remember to configure the emulated floppy drive each time you want to use a physical floppy disk. The downside is that if there is no physical floppy disk present you will experience a momentary pause while we try to access a floppy disk that is not there.
So why does this affect the Amiga Research Operating System? Well, original Amiga’s were able to automatically detect and mount floppy disks as they were inserted into the computer. This was possible because the Amiga hardware would actually inform the operating system of the fact that a floppy disk had been inserted. Standard PC hardware, on the other hand, has no mechanism for letting you know when a floppy disk has been inserted – or for even knowing if there is currently a floppy disk in your floppy drive (apart from just trying to read the floppy disk – and having it fail if one is not present). In order to emulate the behavior of the original Amiga OS on top of standard PC hardware – the Amiga Research Operating System periodically attempts to read from the floppy disk, which causes Virtual PC to hit the physical floppy drive, and causes the pause that I observed.
Now that I know all of this – I know that the pausing can be simply avoided by turning off the option to automatically detect the floppy disk under Virtual PC.