Hello all, I have recently taken an academic interest in the freedos project. My current goal is to understand how the kernel was implemented.
While reading the kernel.asm file located in freedos-svn/kernel/branches/jhall/kernel I have inferred that the routine "kernel_start" is calculating the overall memory available to the system. but I came across a snippet of code that confused me. Starting on line 128 it goes mov dx,init_end+15 mov cl,4 shr dx,cl sub ax,dx why is 15 added to the end of the address of the symbol init_end if you just shift the value right by 4, doesn't that just undo the addition? Is it related to memory addresses having to be divisible by 16? Segmentation or something like that? Also is that last sub calculating the amount of room needed for the kernel? I hope all is well and get back to me when it is convenient for you, thanks -- *Quinton Cook*
_______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
