### TODO1: ### Put parition info into MBR if going to be on a new HDD, with MBR_PARTTYPE_NTFS or MBR_PARTTYPE_EXTENDED_LBA ### TODO2: ### Put some PM code in MBR if room ### TODO3: ### Figure out a way of specifying the high word of the address of interrupt handlers in case they're ever not in the 1st 64KB ### TODO4: ### If ever decide to use SMM, must change the SMRAM base so the save state data for each processor is in a different place ### TODO6: ### Find out why/if the 2nd SIPI is required. Also, put some processing in the big wait, to speed things along. ### TODO7: ### Find out why/if the INIT is required ### TODO8: ### Make sure the many other fields in the IOAPIC redirection registers work being zero like this ### TODO13: ### Find out if having all interrupts enabled like this is potentially a problem ### TODO14: ### Enable IDE interrupts instead of disabling them once IDE Bus-Mastering implemented ### TODO15: ### Set IRQ16-19 to level-triggered, low-active (Done). Find out to what IRQ20-23 should be set. ### TODO16: ### Add support for XSDT, except any addresses above 4GB ### TODO18: ### Remove SZ_STORED_IDT and IDT_LOAD_OFFSET, unless useful ### TODO19: ### Write code for checking if media present before reading sectors. ### TODO21: ### Keep track of bootable partitions in case Core.bin not found, or for providing the option ### TODO22: ### Check whether reading MBR of the boot drive, because can just copy it from memory (Find out what int 13h values correspond to which drives) ### TODO23: ### Put back in the line that sets the previous IOAPICInts element to -1 (not used) ### TODO23: ### Write code for SingleProcessorBoot ### TODO24: ### Put back in the line that enables MTRRs on the Bootstrap Processor (with wrmsr), even though it makes the computer stall ### TODO25: ### Put back in the line that enables MTRRs on non-Bootstrap Processors (with wrmsr), even though it makes the computer stall ### TODO26: ### Compress font with Huffman encoding, or some sort of run-length encoding, if only on the numerous bytes with value 0FFh ### TODO27: ### Find out why Counter0 of the PIT will not generate an interrupt unless there is noticeable wait time before starting the countdown ### TODO28: ### Write code for VCN >= 2^32 in VirtualClusNumToSector ### TODO29: ### Make special case for length of cluster run length being over 4 bytes in VirtualClusNumToSector ### TODO30: ### Write code for length of cluster offset being over 4 bytes in VirtualClusNumToSector ### TODO31: ### Have SearchNTFSDirectory use actual translation table from $UpCase (NTFSFILENUM_UPCASE) to translate letters to uppercase for case insensitivity ### TODO32: ### Set up APIC memory into the paging