Re: Question about the A20 line



Thanks :-)

Yeah, I am working on my own little hobby OS. I've actually gotten
as far as getting my 32 bit elf executable loaded (my kernel) and executing
in
pmode32; irq's and everything else work. i wrote everything from the ground
up, bootsector
code, second stage loader, kernel, without stealing or copying any code. its
taken
me far longer to reach where i am now.. but i have gained a lot of knowledge
of
how things work inside by doing it this way.

the inner workings of real mode segmentation has always been a little hazy
to me.

I was just shocked when i took my work and tried it on a number of pc's
and saw my a20 code crash and burn on a heap of machines..

great fun :-) but also a great learning experience :)

thanks again for your responses :-)

"Jean-François Michaud" <spamtrap@xxxxxxxxxx> wrote in message
news:1135904349.222854.207470@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> You're most welcome :).
>
> Ouch, its been awhile since I thought about all this.
>
> The first half of your address designates a segment and the second half
> an offset (segment:offset). So basically you have 65536 segments (FFFF)
> with a maximum possible offset of 65536 (FFFF). The thing is that all
> the segments overlap every 16 bytes (10h) (this is where the 1Mb limit
> comes from (65536 * 16 = 1048576 = 1Mb)
>
> And so you have 0001:0000 (1st segment offset 0)
>
> which is the same as 0000:0010 (0th segment offset 16 which is
> basically overlapping in the 1st segment offset 0)
>
> Same with FFFF:0010 and 0000:0000
>
> 65536th segment offset 16 which overlaps into the next segment which,
> in this case, is the *0th* segment offset 0 (there's the wrap around)
>
> Are you making your own OS?
>
> Regards
> Jean-Francois Michaud
>


.



Relevant Pages