Hi!

23-Авг-2004 20:08 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

>> (1) why are there STRINGS.C and MISC.C, apparently with the same
>> functionality and same routines in the same programming language?
BO> They are just there for reference now.
BO> there in case somebody wants to play with M68K's or whatever.

     Also, duplication was (and is - see how generated iasmsupt.obj) because
there is two different segments - initialization and resident code.

>> (4) I ignore if the boot loader will send any valuable value to kernel
>> routine inside variables AX and BX. Nevertheless, the following code
>> seems to show that the value of AX is lost (and I ignore if the value on
>> BX is useful), so I'd suggest this small change. Correct?
BO> BX is used to store the boot drive in BL (see boot.asm). But you're right
BO> about AX. It doesn't need to be pushed and popped.

     Though, removing these instructions doesn't decreases code, because
starting code placed in the fixed 256-bytes area (see "resb" allocation
directive after this code). On the other side, removing extra push/pop
should (slightly) increase compression.

>> (8) At the end of PreConfig one can see the following comments about MCB
>> initialisation, whereas it has obviously been moved to PreConfig2. I'd
>> suggest this cosmetic change (or remove any comment at all), am I correct?:
>> =====
>> -  /* Done.  Now initialize the MCB structure                      */
>> -  /* This next line is 8086 and 80x86 real mode specific          */
>> +  /*  MCB initialisation was once here, now moved to PreConfig2  */
>> #ifdef DEBUG
>>   printf("Preliminary  allocation completed: top at %p\n", lpTop);
>> #endif
>> }
>> =====
BO> Yes, the comment is obsolete.

     This is far not the last obsolete or even incorrect comment. In my
patches I sometime try to fix also this.

>> (9) Finally, after the comments and patches by Lucho, I sincerely
>> expected to see some kind of LOOP in the MAIN.C:kernel() function, as I
>> see none, I guess I am misunderstanding this, so how does this work
>> whenever one exists the main SHELL?
BO> The loop is in resident code, otherwise it would disappear. task.c:P_0().

     Yes. See main.c:FreeDOSmain(), which calls kernel.asm:init_call_p_0,
which is relocatable indirection to procsupt.asm:reloc_call_p_0() (assembler
required for switching stacks), which comes to resident task.c:P_0().




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to