You will return to the elevated command prompt - do not close it.
Use a 64-bit edition of Windows to create a 64-bit USB stick. Important Note: You cannot create a bootable 64-bit (圆4) Windows 10 USB stick from a 32-bit (x86) edition of Windows. Then you can just copy and paste files from the virtual DVD drive to your USB stick. Simply double click the ISO to mount it Windows 8 will create a virtual DVD drive inside the This PC folder.
In Windows 8 and Windows 8.1, you don't need any third-party software to extract the ISO's contents to the USB flash drive: Windows 8 and Windows 8.1 have built-in support for ISO images. It creates a virtual drive which can mount ISO images and you can work with them like a regular DVD disk inserted in the physical DVD drive.
In Windows 7, use the free and open source 7-zip archiver or install Virtual CloneDrive software which is also free. Hopefully, I can get past the bootloader and abstract the file IO as soon as possible.Īny suggestions would be greatly appreciated.Warning! You will need to erase all data from the USB flash drive you use for this, so make a backup of the important data on it before you proceed. I've overcome a number of issues with Assembly so far, but this one has me stumped.
(The full source, including the BPB, can be found on Pastebin ( ) Jnz ReadSectors.loop Try again if we've failed Jnc ReadSectors.success If we successfully read the data, Mov di, 0x0005 How many times should we retry the read?
Here is the main part of my code for loading a sector (using ah 02h/int 13h, which I heard worked properly for a USB): ReadSectors: They both have the exact same information loaded on each, including the BPB.
So, the difference is that one is a USB stick, and one is a (virtual) floppy disk.
(I would have used actual debug messages, but the 512-byte limit is pretty gruesome.) 'F' means the file is being located (or Found, hence the F) 'D' indicates the FAT table was loaded properly 'T' indicates the FAT table is being loaded '!' indicates all of the desired sectors were loaded properly Here is the expected output (in VirtualBox):Ĭompared to the actual output (on an old laptop) So, what is the issue then? It's what I see when I load on to actual hardware via a USB stick (in this case, /dev/disk3, where the compiled file is boot.bin): dd bs=512 count=1 if=compiled/boot.bin of=/dev/disk3 With some additional Assembly hackery (the basis being Brokenthorn's tutorial, part 6), I also got file loading working with my bootloader, which loads the aptly-named 'boot' file from my virtual disk (made using dd if=/dev/zero of=boot.img bs=512 count=2880) With some HexFiend shenanigans and some blank FAT16 images, I eventually got the BPB worked out. Eventually, I decided that I wanted to also develop a bootloader (after hitting the 512-byte wall pretty hard) by powering through the infamous Brokenthorn tutorial, up until the point of loading from filesystems. VirtualBox and NASM in tow, I actually got off to a pretty good start. For about the past week, I've been developing a simple OS for learning purposes and.