A quick update on the situation. After looking further it appears that loading 0 into ah and then calling interrupt 19h is supposed to reboot. I use the following code:
xor ah, ah
mov ah, 0x00
This code is supposed to wait for a keypress, then reboot the machine. I note that hitting a key seems to cause write activity from the floppy. I believe that the boot sector is copied from the boot drive to RAM when the computer is booting. This would tell me that there would be no further drive activity during booting. The fact that I see activity seems to indicate the machine is indeed booting (it is copying the sector over again). However, when one boots a machine inside VirtualBox, one sees the VirtualBox logo; plus my VM has the hard drive as the first boot drive. However each time I hit a key it just keeps displaying a black screen.
What I think is happening is the computer is indeed rebooting, but it isn't doing POST again, and isn't checking the correct boot order. What I am trying to code is like what happens if you do Start->Shutdown->Reset on Windows. The computer fully reboots, does POST, and boots from the hard drive. Does anybody know how I can instruct the BIOS to do this? I had the thought that maybe it is impossible, but it is obviously possible to do, as Windows does it.