•  Back 
  •  VDI-Strukturen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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