Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

TYPES im Speicher

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 01.09.2008, 19:54    Titel: TYPES im Speicher Antworten mit Zitat

hm, seit einiger Zeit bastle ich an einem OS. da mir asm dafür etwas zu kompliziert wurde, und ich ein großer FB-fan bin, schreibe ich gerade einen kernel in FreeBASIC. jetzt bin ich an den punkt gekommen, an dem ich mich um die GDT kümmern sollte. ich habe mir dafür einen datentyp erstellt:
Code:
type GDTentryType    '// a type for the GDT entries
    size as USHORT   '// the first 16 bits of the size                      # -> WORD 1
    baseaddress as USHORT  '// first 16 bits of the address                 # -> WORD 2
    typeofsegment as UBYTE '// access / segmenttype                         # -> WORD 3
    baseaddress2 as UBYTE  '// bits 17-24 of the address                    # /
    baseaddress3 as UBYTE  '// bits 25-32 of the address                    # -> WORD 4
    additionandsize as UBYTE  '// addition and the last 4 bits of the size  # /
end type


kann ich das einfach so am stück in den speicher schreiben, bzw. wie speicher FB das denn im Speicher?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eastler_dart



Anmeldungsdatum: 25.09.2005
Beiträge: 177
Wohnort: Baden-Würtemberg + Sachsen

BeitragVerfasst am: 02.09.2008, 00:15    Titel: Antworten mit Zitat

hallo Alle, hallo sts,

vorweg: genau kann ich das nicht erklären traurig

Aber: mit meinen OpenGL-Versuchen hatte ich probiert, sogenannte Vertiges-Listen zu erstellen. Da stehen schlichtweg die Koordinaten der vielen 3D-Punkte nahtlos hintereinander im RAM. OpenGl gibt man die Länge der Liste und die Ram-Adresse, dann läufts.
Äh-meine natürlich-sollte laufen.

Mein erster Versuch hatte ich mit TYPES gemacht.
Type Positionsangabe
PosX AS UByte
PosY AS UByte
PosZ AS UByte
END TYPE

Dim Liste(10) AS Positionsangabe
For zaehler = 0 TO 10
Liste(zaehler).PosX = zaehler
Liste(zaehler).PosY = zaehler
Liste(zaehler).PosZ = zaehler
NEXT zaehler

So sinngemäß der damalige (mittlerweile gelöschte) Code.
Das lief einfach nicht.

Mit (wieder nur sinngemäß)
DIM AS Ubyte Liste(30)
For zaehler = 0 TO 30 STEP 3
Liste(zaehler+0) = zaehler
Liste(zaehler+1) = zaehler
Liste(zaehler+2) = zaehler
NEXT zaehler
gins dann.

Also: mit Type 3 Vars hintereinander gereiht, stehen im Ram scheinbar nicht einfach direkt hintereinander! Wie aber nun solche getypten Daten im Ram stehen, kann ich auch nicht sagen

hoffe es hilft

Eastler
_________________
Kaum macht mans richtig, schon geht's
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 02.09.2008, 22:34    Titel: Antworten mit Zitat

Es wird bei Types und auch Arrays die Werte nacheinander (aufsteigend) im Speicher abgelegt.
teste mal:
Code:
Type Positionsangabe
  PosX As UByte
  PosY As UByte
  PosZ As UByte
End Type
Dim i As Integer
Dim Liste(10) As Positionsangabe
For i = 0 To 10
  Liste(i).PosX = i*3
  Liste(i).PosY = (i*3)+1
  Liste(i).PosZ = (i*3)+2
Next

Dim As UByte Lt(30)
For i = 0 To 30 Step 3
  Lt(i+0) = i
  Lt(i+1) = i+1
  Lt(i+2) = i+2
Next

Dim As UByte Ptr pt1, pt2
pt1 = @Liste(0).PosX
pt2 = @lt(0)
For i = 0 To 30
  Print pt1[i];";";pt2[i];"  ";
Next
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eastler_dart



Anmeldungsdatum: 25.09.2005
Beiträge: 177
Wohnort: Baden-Würtemberg + Sachsen

BeitragVerfasst am: 02.09.2008, 23:39    Titel: Antworten mit Zitat

Hallo Alle, hallo Volta,

klingt cool lächeln - freu
Scheint, als hätt ich da was verbockwurschtelt.

Werds demnächst analysieren, wo ich den Bock reingeschossen hab.
Kann also doch im "lesbaren" format diese GL-Listen machen.

danke vielmals.

Eastler
_________________
Kaum macht mans richtig, schon geht's
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen Yahoo Messenger
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 03.09.2008, 12:08    Titel: Antworten mit Zitat

ich danke euch, das ist wirklich wichtig. so kann ich die GDT-enträge viel bequemer verwalten/speichern.
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz