OSDev Series Chapter 20

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: OSDev Series Chapter 20

Post by neon »

Creature wrote:
Tutorials wrote:This command reads a sector from a FDD. For every byte in the sector, the FDC issues interrupt 6 and places the byte read from the disk into the data register so that we can read it in.
Again a simple mistake or is it just me again? :P
Woops! :D Im going to have to fix that one... ;)

NReed: Your integer is a different one then the one we were discussing. In your integer, its a 32bit integer with the top bit 1. In the integer we were discussing, the top bit is 0 making 01111111 11111111 11110000 00000000 binary == 0x7FFFF000. I suppose that could be made more clear in the comment though, sorry about that :)
and also you say that you will explain why there is a twist in the cable later on, but (I believe that) you do not.
I forgot about that one. I will be sure to add it tonight if possible :) Thanks for letting me know :D

Thanks for all of the comments and suggestions so far :D I will be sure to fix the few problems with it tonight if possible.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: OSDev Series Chapter 20

Post by neon »

Okay,

I have decided to start implementing revision 3 of the series which includes: bug fixes, additional content in the existing chapters, and easier navigation (implemented for the most part). Please feel free to let me know (PM, email, forums, etc) if you have additional ideas that can help improve the series for everyone and I also thank everyone for their great support :D

(ps: this also means that you might see some updates to the chapters or series as a whole during the next few weeks.)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
frank
Member
Member
Posts: 729
Joined: Sat Dec 30, 2006 2:31 pm
Location: East Coast, USA

Re: OSDev Series Chapter 20

Post by frank »

Clicking on the right arrow to go to the next tutorial doesn't work. Trys to go to http://www.brokenthorn.com/Resources/anchor the left arrow works fine. Clicking on the name chapter number works as expected though.
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: OSDev Series Chapter 20

Post by neon »

frank wrote:Clicking on the right arrow to go to the next tutorial doesn't work. Trys to go to http://www.brokenthorn.com/Resources/anchor the left arrow works fine. Clicking on the name chapter number works as expected though.
Fixed :) Might need to refresh the page in order to see results though.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
gzaloprgm
Member
Member
Posts: 141
Joined: Sun Sep 23, 2007 4:53 pm
Location: Buenos Aires, Argentina
Contact:

Re: OSDev Series Chapter 20

Post by gzaloprgm »

neon wrote: NReed: Your integer is a different one then the one we were discussing. In your integer, its a 32bit integer with the top bit 1. In the integer we were discussing, the top bit is 0 making 01111111 11111111 11110000 00000000 binary == 0x7FFFF000. I suppose that could be made more clear in the comment though, sorry about that :)
Neon, frame address uses the highest 20 bits, so if you want to get the address from a pt/pd entry you should AND the value with 0xFFFFF000, not 0x7FFFF000... Otherwise you wont be able to map addresses > 2GB.
http://www.brokenthorn.com/Resources/OSDev18.html wrote: # Bits 12-31 (FRAME): Page Table Base address
Thats right, from bits 12-31 there are 20, not 19 bits.

Cheers,
gzaloprgm
Visit https://gzalo.com : my web site with electronic circuits, articles, schematics, pcb, calculators, and other things related to electronics.
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: OSDev Series Chapter 20

Post by neon »

gzaloprgm wrote:Thats right, from bits 12-31 there are 20, not 19 bits.
Hm, off by 1 errors #-o Ill need to fix that... Thanks for pointing it out.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
User avatar
ehenkes
Member
Member
Posts: 124
Joined: Mon Mar 23, 2009 3:15 am
Location: Germany
Contact:

Re: OSDev Series Chapter 20

Post by ehenkes »

Great tutorial. =D>
Post Reply