Hi
I have been interested in booting from usb or other flash memories for quiet some time due to their improved reliabilty and data integrity over typical floppy disk. I have successfully booted menuet32 using a compact flash and usb thumb drive in the past, starting back some 3 years ago. The method i used was similar to how it is described at Madis's link http://enos.itcollege.ee/~mkalme/PAHN/Tut/Tut.html although i used the DD program from within windows to do the same exact thing.
The main downside to this is that the image is written as a floppy image which limits the size of the memory device. Even if the device is 4gb, burning the floppy image to it will reduce the size of the image to that of a standard floppy disk (1.44mb).
Another downside to this method is that it Will require your motherboard to be capable of booting to a USB Floppy emulated device which uses BIOS interrupts designed only for Floppy disk drives. Since i dont have the information in front of me right now i cannot quote the exact bios interrrupt, but if you look into the M32 Bootsector source code for Fat12 you will see what interrupt calls i am referring to.
I am currently using a Laptop which only allows for emulating USB Boot devices as a IDE Harddrive and therefore the bios expects the programmer to use the standard bios calls for accessing Harddrives. Since this is the case, the bootsector that is normally distributed with the M32 and pressumably M64 will not work with this laptops motherboard. In order to attempt to find a way to make the usb booting capabilites viable for this laptop i looked into other methods and bootsectors.
The fat32 bootsector which is available on www.menuetos.net uses i/o ports to talk directly to the IDE controller which in turn circumvents the bios's attempt to remap the bios calls to the usb drive thus rendering the usb boot feature useless.
I have created a simple bootsector myself that works somewhat. It assumes the memory device MBR has the primary partition set as active/bootable and It uses the standard bios calls (Int 0x13 ah=2) for reading data from harddrives that is remapped to the usb device by the bios upon completing POST. The bootsector is capable of reading sectors from the usb device and printing them on the screen in text mode, but i have not had enough time to understand how the file system works and how the CHS addressing works.
I feel it should at least be possible to boot from a device like this in HDD Emulation mode. That is it should be able to say... copy the distributed Menuet.IMG file from the usb device into RAM memory and proceed to boot into it. After the OS is running tho, communication to the USB device may be lost unless USB support is implented in the kernal, or perhaps bios interrupts (Int 0x13 ah=2) are added to the kernel as an option for reading from harddrive devices.
I have been interested in booting from usb or other flash memories for quiet some time due to their improved reliabilty and data integrity over typical floppy disk. I have successfully booted menuet32 using a compact flash and usb thumb drive in the past, starting back some 3 years ago. The method i used was similar to how it is described at Madis's link http://enos.itcollege.ee/~mkalme/PAHN/Tut/Tut.html although i used the DD program from within windows to do the same exact thing.
The main downside to this is that the image is written as a floppy image which limits the size of the memory device. Even if the device is 4gb, burning the floppy image to it will reduce the size of the image to that of a standard floppy disk (1.44mb).
Another downside to this method is that it Will require your motherboard to be capable of booting to a USB Floppy emulated device which uses BIOS interrupts designed only for Floppy disk drives. Since i dont have the information in front of me right now i cannot quote the exact bios interrrupt, but if you look into the M32 Bootsector source code for Fat12 you will see what interrupt calls i am referring to.
I am currently using a Laptop which only allows for emulating USB Boot devices as a IDE Harddrive and therefore the bios expects the programmer to use the standard bios calls for accessing Harddrives. Since this is the case, the bootsector that is normally distributed with the M32 and pressumably M64 will not work with this laptops motherboard. In order to attempt to find a way to make the usb booting capabilites viable for this laptop i looked into other methods and bootsectors.
The fat32 bootsector which is available on www.menuetos.net uses i/o ports to talk directly to the IDE controller which in turn circumvents the bios's attempt to remap the bios calls to the usb drive thus rendering the usb boot feature useless.
I have created a simple bootsector myself that works somewhat. It assumes the memory device MBR has the primary partition set as active/bootable and It uses the standard bios calls (Int 0x13 ah=2) for reading data from harddrives that is remapped to the usb device by the bios upon completing POST. The bootsector is capable of reading sectors from the usb device and printing them on the screen in text mode, but i have not had enough time to understand how the file system works and how the CHS addressing works.
I feel it should at least be possible to boot from a device like this in HDD Emulation mode. That is it should be able to say... copy the distributed Menuet.IMG file from the usb device into RAM memory and proceed to boot into it. After the OS is running tho, communication to the USB device may be lost unless USB support is implented in the kernal, or perhaps bios interrupts (Int 0x13 ah=2) are added to the kernel as an option for reading from harddrive devices.


