um die CPU zu schonen, gibt es verschiedene möglichkeiten.
einen Timer gibt es seit 4.40, der funktioniert aber nur in Verbindung mit einem Window,
also kannst du den nur bei einem WindowedScreen verwenden...
bei einem Fullscreen kannst du ein Delay(0) einbaun, das stellt zumindest sicher, dass ressourcen freigestellt werden.
ein altes Beispiel für einen billigen Timer per Wartezeit-Berechnung findest du hier:
http://www.purebasic.fr/german/viewtopic.php?t=17400
Bei der Verwendung von ElapsedMilliseconds oder Delay musst du beachten,
dass die Genauigkeit systembedingt auf ganze Timeslices beschränkt ist, also um die 10-16ms.
wenn du genaueres brauchst, kannst du über API gehen (TimeGetTime, TimeBeginPeriod, etc)
noch ein Wort zu .i
Integer hat immer Registergröße, wird also 32bit
oder 64bit haben, je nachdem ob das Programm mit x86 oder x64 compiliert wird.
die Typen Long .l und Quad .q hingegen haben auf beiden systemen ihre festen 32bit bzw. 64bit.
.i ist der Standardtyp, also ohne typangabe wird eine Variable oder eine Procedure immer Integer sein.