Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

core_multiboot.bi

Uploader:MitgliedThePuppetMaster
Datum/Zeit:26.08.2008 22:13:10

'###############################################################################################################
'###############################################################################################################
'###   F B - C O R E
'###############################################################################################################
'###############################################################################################################
'### Version:  1.00.0
'### Revision: 0
'###############################################################################################################
'### (c) 2008 By.: /_\ DeltaLab's Germany [experimental computing]
'### Author:       Martin Wiemann
'### Date of Idea: 2008.08.16 - 17:55:38
'###############################################################################################################
'### Copy('s) of this code or a part of this IS allowed!!!
'###############################################################################################################





'###############################################################################################################
Type MultiBoot_Drives_Type
    V_Next                  as MultiBoot_Drives_Type Ptr
    V_Num                   as UInteger
    V_Mode                  as UInteger
    V_Cylinder              as UInteger
    V_Heads                 as UInteger
    V_Sectors               as UInteger
'   V_Ports                 as UInteger
End Type
Dim Shared Core_MBS_Drives  as MultiBoot_Drives_Type Ptr
'--------------------------------------------------------------------------------------------------------------------
Type MultiBoot_Type
    V_Flags                 as UInteger
    V_Memsize_Low           as UInteger
    V_Memsize_High          as UInteger
    V_Boot_Device           as UInteger
    V_CMDLine               as UInteger
    V_Mods_Count            as UInteger
    V_Mods_Adr              as UInteger
'   V_Syms                  as ULongInt
    V_mmap_Len              as UInteger
    V_mmap_Adr              as UInteger
    V_Drive_Len             as UInteger
    V_Drive_Adr             as UInteger
    V_ConfigTable           as UInteger
    V_BootLoaderName        as UInteger
    V_APMTable              as UInteger
    V_VBE_ControlInfo       as UInteger
    V_VBE_Mode_Info         as UInteger
    V_VBE_Mode              as UInteger
    V_VBE_Interface_Seg     as UInteger
    V_VBE_Interface_Off     as UInteger
    V_VBE_Interface_Len     as UInteger
End Type
Dim Shared Core_MBS         as MultiBoot_Type





'###############################################################################################################
Private Function Code_MultiBoot_Drives_Read() as Integer
If Core_MBS.V_Drive_Len <= 0 Then Return GURU_NoError
If Core_MBS.V_Drive_Adr <= 0 Then Return GURU_Multiboot_NoDriveAdr
'For X as UInteger = 1 to
'Core_MBS_Drives
Return GURU_NoError
End Function


'====================================================================================================================
Private Function Core_MultiBoot_Read() as Integer
If GRUB_MultiBoot_Magic <> 732803074 Then Return GURU_Multiboot_NoMagicKey
With Core_MBS
    .V_Flags                = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H0))
    .V_Memsize_Low          = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H1))
    .V_Memsize_High         = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H2))
    .V_Boot_Device          = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H3))
    .V_CMDLine              = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H4))
    .V_Mods_Count           = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H5))
    .V_Mods_Adr             = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H6))
    '.V_Sims1
    .V_mmap_Len             = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H11))
    .V_mmap_Adr             = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H12))
    .V_Drive_Len            = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H13))
    .V_Drive_Adr            = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H14))
    .V_ConfigTable          = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H15))
    .V_BootLoaderName       = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H16))
    .V_APMTable             = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H17))
    .V_VBE_ControlInfo      = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H18))
    .V_VBE_Mode_Info        = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H19))
    .V_VBE_Mode             = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H20))
    .V_VBE_Interface_Seg    = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H21))
    .V_VBE_Interface_Off    = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H22))
    .V_VBE_Interface_Len    = Cast(UInteger,    *(GRUB_MultiBoot_PTR + &H23))
End With
Return Code_MultiBoot_Drives_Read()
End Function