Hallo Experten
ich ahbe eine TC Compiler und möchte ein kleines C Programm schreiben mit dem ich die Hardware, also zum Beispiel den Speicher, direkt auslesen kann.
Dazu habe ich eine Liste, mit den Schlüsseladressen im Speicher.
z.B in der Adresse 0xF000:0xFFFE finde ich die Rechnerart heraus.
Die Adresse ist doch 2 Byte groß?
Um diese Adresse auszulesen habe ich folgendes Programm geschrieben:
int rechner;
int main ()
{
rechner = peek(0xf000,0xfffe);
clrscr();
printf("%x,rechner);
while(!kbhit());
return 0;
}
Das Auslesen an sich funktioniert prima. Der Rechner spuckt mir den Zelleninhalt 23fc heraus.
Als Interpretation dieses Inhaltes habe ich folgende Information:
0xfc => Rechnertyp A
0xfd => Rechnertyp B
0xfe => Rechnertyp C
0xff => Rechnertyp D
alle diese Angaben beziehen sich aber auf den Inhalt von der Größe 1 Byte. Mir werden jedoch 2 Byte 23fc ausgegeben.
Ich vermute, dass für die Rechnertypbestimmung mir nur das letzte Byte, also fc ausreicht, die 23 also nicht notwendig sind. Wie bekomme ich also die 23 am anfang weg? Bzw. wie kann ich mir sicher sein, dass das erste Byte, also die 23, meine Interpretation nicht stört, wenn ich auf einem anderen Rechner bin und dort nicht die 23, sondern etwas anderes steht?
Bisher habe ich versucht die Variable Rechner als char zu deklarieren, damit war sie ja nur 1 Byte groß. Ausgegeben hat mir der Rechner jedoch die fffc.
Kann ich nun davon ausgehen, dass er mir auf jedem beliebigen rechner das erste Byte mit ff ausgibt?
Wäre dankbar für eure Hilfe
grüße
lignuslibri