Calocybe: 9.9.99 ---» Probleme verursacht?

Beitrag lesen

Hi Michael

Oh, nicht wirklich: Kennst Du noch das IBM-Host-Format "Packed Decimal"?.

Du meinst BCD (binary coded decimal)? Naja, das gibt's bis auf den heutigen Tag in Intelprozessoren (andere CPUs kenne ich leider nicht). Und die RTC in einem jeden PC gibt die Zeit in diesem Format zurueck (ausser sie ist anders eingestellt).

Damit kann man rechnen (es gibt separate Arithmetik-Maschinenbefehle dafür), aber auch die Konvertierung in einen anzeigbaren Ziffernstring gibt es als Maschinenbefehl. Keine komplizierte Konvertierungs-Routine!

Eben. Die Befehle hiessen wohl AAD und AAM (hab nie mit BCDs gerechnet, nur davon gelesen). Eigentlich dienen sie zum Vorbereiten einer BCD-Division / Fertigstellen einer BCD-Multiplikation; was sie letztlich wirklich gemacht haben, war die BCDs in Binaerzahlen umzuwandeln und umgekehrt. Gerade wo es diese Moeglichkeiten nun schon gab, war es doch recht einfach, Zahlen binaer zu speichern und in BCD zu verarbeiten, oder?

Und in diesem Format wird jede Ziffer in einem Halbbyte (16 Kombinationen) gespeichert - aber bei "99" ist Ende der Fahnenstange.

Das sind uebrigens die ungepackten BCDs. Bei gepackten BCDs hat man zwei Ziffern in ein Halbbyte gesteckt, fuer jede Ziffer also nur 4 Bit verwendet.

PC-Software ist ja so 'neu', daß es bei ihrer Erstellung schon 'genug' Hauptspeicher etc. gab - und der turnaround der Versionen ist auch viel schneller (DOS -> Windows, 16Bit -> 32Bit usw., während auf den Hosts ggf. noch 20-30 Jahre alte Programme laufen).

Was ich so schlimm finde ist, dass jetzt jeder denkt, RAM gibt's sowieso ohne Ende, da braucht man sich keine Gedanken drum machen. Kein Wunder, dass heutzutage 64 MB als absolutes Minimum angesehen werden. Wuerden sich die Programmierer etwas mehr Muehe geben, koennte man ohne Probleme auch mit max. 32 MB gut arbeiten.

Calocybe