Page 1 of 1

How to find RSD Pointer

Posted: Tue Sep 20, 2011 12:43 am
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

Re: How to find RSD Pointer

Posted: Tue Sep 20, 2011 12:50 am
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.

Re: How to find RSD Pointer

Posted: Tue Sep 20, 2011 2:22 am
by Bietje

Re: How to find RSD Pointer

Posted: Tue Sep 20, 2011 4:34 am
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?

Re: How to find RSD Pointer

Posted: Wed Sep 21, 2011 2:17 am
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

Re: How to find RSD Pointer

Posted: Fri Sep 21, 2012 7:34 pm
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.

Re: How to find RSD Pointer

Posted: Fri Sep 21, 2012 10:14 pm
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.