Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File7.13.4 fix31 TOS Der Datentyp fix31 entspricht dem Typ LONG, und wird in Zusammenhang mit Vektorfonts benötigt, wo mit Positonen und Schrittweiten in 1/65536 gerechnet wird. Dabei entspricht die Weite eines Pixels dem Wert 65536. Die oberen 16 Bit repräsentieren den Vorkommaanteil und die unteren 16 Bit die Nachkommastellen. Beispiele: hex. dez. $00010000 65536 1.0 Pixel $0001c000 114688 1.75 Pixel $fffec000 -81920 -1.25 Pixel $fffe4000 -114688 -1.75 Pixel Wichtig: Der Nachkommateil darf niemals abgeschnitten werden! Um Schrittweiten aufzusummieren (z.B. von vqt_advance) und dann die Pixelposition für die korrekte Positionierung des Cursors zu berechnen, sollte man wie folgt vorgehen: int16_t fix31_to_pixel( fix31 a ) { int16_t b; b = (int16_t) (( a + 32768L ) >> 16 ); /* runden !! */ return( b ); /* Pixelwert zurückgeben */ } Querverweis: GDOS NVDI SpeedoGDOS