这几天最头疼的一个问题就是磁盘引导程序,就是boot.asm和setup.asm两个文件的问题,我发现,
用int13读磁盘,如果设置systemsize=5k,那么没有问题,
但是=10k的时候,根本就不行了,
真不知道为啥,需要注意的是,这个问题在vmware和boch下都没有,但是用我的真机就是不行,别人的也不行.
最后,我的代码简化到了不能再简,就是在kernel.c里头打个字到屏幕,只要读盘的那个大小设置到10k,这个字就打不出来,设置5k就没有问题.
回答:你那个问题我估计是你没有换磁头的原因,1.44m磁头真实的排法是
0磁道0面-->0磁道1面-->1磁道0面-->1磁道1面....
每磁道又有18个扇区,每1扇区有512字节,因此,如果你读的数量造过1个磁道的容量了,你就需要换面(也即换磁头号)了~~~