Seite 1 von 1

Freepascal Datenausrichtung?

Verfasst: Di 27. Aug 2013, 16:26
von Dosenware
Gruß,

gibt es eine Möglichkeit die automatische Datenausrichtung innerhalb von komplexen Datentypen (z.b. Records) zu Deaktivieren?

Aktuell zerschießt er mir die Datenstruktur die mir der Vesainterrupt zurückliefert:

Code: Alles auswählen

Vesainf:record
 Signature:array[0..3] of Char;
 Version:array[0..1]of byte;
 OEMStringPTR:longint; {fpcintern haben Pointer 48bit}
 .....

liefert bei folgender Rückgabe:

56 45 53 41 00 02 04 77 00 C0 00 00 00 00 22 00

die Werte:
Signature=         41 53 45 56
Version  =         02 00
### OEMStringPTR = 00 00 C0 00

statt den erwarteten Werten:
Signature=         41 53 45 56
Version  =         02 00
### OEMStringPTR = C0 00 77 04
Dadurch verschiebt sich die gesamte Datenstruktur und ich bekomme fehlerhafte Daten, wenn ich OEMStringPTR auf array [0..1] of word setze funktioniert das ganze.

Re: Freepascal Datenausrichtung?

Verfasst: Di 27. Aug 2013, 16:36
von Dosenware
Ok. erledigt... packed Record - kennt man von PB7 nicht, der macht das Automatisch.

Re: Freepascal Datenausrichtung?

Verfasst: Do 29. Aug 2013, 01:04
von zatzen
Jo, ich hab in freepascal auch {$A1} schalten müssen, um wie in DOS-Pascal Strukturen verwenden zu können.