How to find RSD Pointer

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
TudorOS1
Posts: 8
Joined: Mon Sep 19, 2011 9:24 pm

How to find RSD Pointer

Post by TudorOS1 »

can you please tell me what asm code i need to fine the RSD Pointer :?: That and using the video card and usb without drivers is all I need to finish my protected mode, preemptive multitasking, hybrid-kernel, x32+x64 os.I have tried to write some code but it failed

Code: Select all

mov ax, 0040h
mov es, ax
mov si, 000Eh
mov ax, [es:si]
mov es, ax
mov si, 0

search_ebda: 
 mov cx, [es:si]
 cmp cx, 'R'
 je done
 mov ax, es
 inc ax
 mov es, ax
 inc dx
 cmp dx, 400h
 je search_romstart
jmp search_ebda

search_romstart:
 mov ax, 0E000h
 mov es, ax
search_rom:
 mov cx, [es:si]
 cmp cx, 'R'
 je done
 mov ax, es
 cmp ax, 0
 je fail
 inc ax
 mov es, ax
jmp search_rom

done:
 mov cx, 0
 mov al, [es:si]
 mov bh, 0
 mov bl, 0Fh
 mov ah, 09h
 int 10h
 inc cx
 cmp cx, 20
 je finish
jmp done 

finish:
 mov     ah, 1
 int     16h
 jz      finish
 mov     ah, 0
 int     16h
 cmp     al, 1bh
 je      halt
jmp finish

halt:
fail:
hlt
Did I mention im 11 years old

UPDATE
I just figured it out, i thought it was big endian, but it was little endian #-o
Last edited by TudorOS1 on Sun Oct 30, 2011 2:31 am, edited 2 times in total.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: How to find RSD Pointer

Post by Combuster »

TudorOS1 wrote:can you please tell me what asm code i need
The code you are going to write yourself.

There's no such thing as a free lunch here.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Bietje
Member
Member
Posts: 100
Joined: Wed Apr 20, 2011 6:57 am

Re: How to find RSD Pointer

Post by Bietje »

User avatar
Chandra
Member
Member
Posts: 487
Joined: Sat Jul 17, 2010 12:45 am

Re: How to find RSD Pointer

Post by Chandra »

TudorOS1 wrote:That and using the video card and usb without drivers is all I need to finish my protected mode, preemptive multitasking, hybrid-kernel, x32+x64 os.
Your goal looks rather interesting to me, a hybrid kernel without external drivers, huh?
Programming is not about using a language to solve a problem, it's about using logic to find a solution !
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: How to find RSD Pointer

Post by AJ »

Hi,
TudorOS1 wrote:can you please tell me what asm code i need to fine the RSD Pointer :?: That and using the video card and usb without drivers is all I need to finish my protected mode, preemptive multitasking, hybrid-kernel, x32+x64 os.
Apologies if this sounds harsh, particularly given your stated age, but how do you nearly have a "finished" OS when you are unable to research or do any debugging? The problem is, once you get far enough with a kernel, you will no longer find cut and paste examples - you need to be able to read specifications and translate this in to the required code yourself. If you manage to do that, and then come up with a more specific problem than "it doesn't work", let us know and you'll get more help than simply being told to read the wiki.

Cheers,
Adam
User avatar
TudorOS1
Posts: 8
Joined: Mon Sep 19, 2011 9:24 pm

Re: How to find RSD Pointer

Post by TudorOS1 »

Development Reset

I now had a development reset. I realised no one is going to make standard interfaces. Besides, drivers can do more than just drive a device.
WARNING: Bad joke
Why did the chick run away?
He was a little chicken
Antti
Member
Member
Posts: 923
Joined: Thu Jul 05, 2012 5:12 am
Location: Finland

Re: How to find RSD Pointer

Post by Antti »

I do not have access to modify the wiki yet. However, there is an error:

Code: Select all

Detecting ACPI Version

The ACPI Version can be detected using the Revision field in the RSDP. If this field contains 0, then ACPI Version 1.0 is used. 1 stands for ACPI Version 2.0, 2 for ACPI Version 3.0, and so on...

ACPI standard 2.0 says:

Code: Select all

The revision of this structure. Larger revision numbers are
backward compatible to lower revision numbers. The ACPI
version 1.0 revision number of this table is zero. The ACPI 2.0
value for this field is 2.

ACPI standard 5.0 says:

Code: Select all

The revision of this structure. Larger revision numbers are backward
compatible to lower revision numbers. The ACPI version 1.0
revision number of this table is zero. The current value for this field
is 2.
Post Reply