AmiBlitz³

Normale Version: 64 Bit rechnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

hat jemand einen Vorschlag, wie man BB2 das Rechnen mit 64 Bit beibringt? Ich hatte so etwas schonmal irgendwo gesehen, glaube ich.
Im Prinzip müßte man sich nur einen neuen 8Byte Type bauen. Aber wie geht es weiter? Als ASM-Funktion wäre das schon optimal, aber da würde man ja ständig gegen Mauern laufen, oder? Gäbe sicher ständig Überläufe bei 32Bit-Grenze.
BB2/AB3 hat keinen 64bit integer Typ. Man kann sich einen definieren:

NEWTYPE.ll
hi.l
lo.l
End NEWTYPE

Die Rechenoperationen muss man dann leider selbst implementieren. Das habe ich in der longlong.include von Ab3 mal gemacht.
Da AB3 keine Operatoren definieren kann, läuft alles über Funktionen, was etwas umständlich ist.
Hi,

hier nochmal eine erweiterte Variante der Frage:

Wenn ich DOS-Verzeichnisse durchsuche, bekomme ich die Dateigröße aus dem FileInfoBlock. Da ist FileSize ein LONG Typ, also 32Bit, max. 2GB. Das funktioniert natürlich nicht bei modernen Laufwerken, z.B. im Netzwerk.

Wie bekomme ich via dos.library 64bit Dateigrößen mit?
Grüße
Gar nicht.
Was wäre, wenn ich UsedBlocks*BlockSize nehme (in 64bits), und dann irgendwie den nicht-File-Platz(Blockheader usw.) abziehe? dann müßte ich die echte Größe bekommen, oder?