============================================= Project 3 - Hints and Errors to avoid ============================================= - Ian! D. Allen - idallen@idallen.ca - www.idallen.com Here are some errors you might make working on Project 3: You don't make sure that the four start/end disk regions are congiguous and not overlapping, e.g. you have the ROOT directory end at sector 17 and the start sector of File Allocation Space also be sector 17 (wrong). You ignore the warnings that say "Do not proceed until this is true". (You cannot proceed to follow-on steps until you get the basics right.) You do decimal arithmetic on hexadecimal numbers without realizing it. For example, you add hex 13+9 and get the incorrect 22 instead of the correct 1C, or you multiply hex 15*2 and get the incorrect 30 instead of the correct 2A, or you add hex 19+1 and incorrectly get 20 instead of the correct 1Ah, or you multiply 15h*4 and incorrectly get 60 instead of the correct 54h. You type decimal numbers into DEBUG, e.g. you want to dump 10 (decimal) sectors starting at sector 25 (decimal) so you incorrectly type "L 0 0 25 10" instead of the correct "L 0 0 19 A". You reverse the last two arguments to the DEBUG LOAD "L" command. The last two arguments are "sector to load" and "number of sectors", not the other way around. Both numbers must be in hexadecimal, not decimal. You load a sector into location zero in DEBUG memory but you display it using "D" instead of "D 0". (The "D" without a following offset starts displaying memory at location 100h, not at zero.) You load only one sector into DEBUG memory (512 bytes or 200h bytes), but you use the DEBUG "D" command to display memory past offset 0200. (Anything after offset 0200 is garbage if you only loaded one sector.) You forget to reverse bytes for Intel little-endian DEBUG dump output, e.g. you see "E0 00" in the dump and you write it incorrectly as E000h instead of the correct 00E0h. You see "E0 00" in the dump and you reverse it incorrectly and write it down incorrectly as 000Eh instead of the correct 00E0h. You know a boot sector is one sector long, and you write incorrectly: Start sector = 0, End sector = 0 + 1 = 1 (WRONG!) instead of the correct: Start sector = 0, End sector = 0 + (1-1) = 0 You know that a data structure is 1F0h sectors long, starting at sector 1, and you write incorrectly: Start sector = 1, End sector = 1 + 1F0 = 1F1 (WRONG!) instead of the correct: Start sector = 1, End sector = 1 + (1F0-1) = 1F0 You know that a data structure is 20h sectors long, starting at sector 1F1h, and you write incorrectly: Start sector = 1F1, End sector = 1F1 + 20 = 211 (WRONG!) instead of the correct: Start sector = 1F1, End sector = 1F1 + (20-1) = 210