Turbo BASIC XL und VBI

Bild Alles zum Thema Programmierung
Bild All around programming

Moderatoren: Sven, Sleepy, Wolfgang, cas, des-or-mad

Turbo BASIC XL und VBI

Beitragvon slx » Di 10. Mär 2015, 21:11

Verwendet Turbo BASIC XL (zB für die TIME-Funktion oder PM-Grafik) eigene VBI-Routinen oder kann man da wie bei ATARI BASIC nach Lust und Laune eigene verwenden?
slx
Multi Poster
Multi Poster
 
Beiträge: 254
Registriert: Fr 31. Mai 2013, 22:20

Re: Turbo BASIC XL und VBI

Beitragvon tfhh » Mi 11. Mär 2015, 07:29

Moin,

slx hat geschrieben:Verwendet Turbo BASIC XL (zB für die TIME-Funktion oder PM-Grafik) eigene VBI-Routinen oder kann man da wie bei ATARI BASIC nach Lust und Laune eigene verwenden?

Meines Wissens nach installiert TBXL keine eigenen VBI Routinen, ich wüßte auch nicht, wozu. Die TIME$ Funktion nutzt die normalen drei Speicherstellen RTCLOK (dez. 18,19,20).

Im Sinne einer sauberen Programmierung (Stichwort: SDX mit "TD ON" oder soetwas in der Art) solltest Du so vorgehen, daß Dein VBI-Code vor der Installation die entsprechenden Vektoren (siehe Profibuch, Speicherplan Page 2, Vektoren VVBLKI und VVBLKD) sichert, die eigene Routine einhängt und anschließend zum vorherigen Inhalt des Vektors weiterspringst. War keine entsprechende Routine installiert, wird der VBI normal beendet (OS zeigt auf eine "Exit" Routine). Nach Möglichkeit nur den Deferred VBI verwenden und natürlich auch die Laufzeit achten, aber das merkt man sonst recht schnell 8)

Gruß, Jürgen
Benutzeravatar
tfhh
Night&Day Poster
Night&Day Poster
 
Beiträge: 1829
Registriert: Do 1. Jan 1970, 01:00

Re: Turbo BASIC XL und VBI

Beitragvon slx » Mi 11. Mär 2015, 08:32

Danke für die Tips. Ich dachte, dass TBXL vielleicht eine eigene "richtige" Uhr mit Sekunden hat, aber wenn es nur RTCLOK ausgibt, ist das natürlich nicht nötig.

Da ich eine "korrigierte" Uhr ohne RTCLOK programmieren will, brauche ich den Immediate VBI fürs "weiterzählen", da der deferred ja bei SIO-Aktivität "auslassen" könnte und dann geht die Uhr falsch. Im Moment bin ich bei einer Genauigkeit von einer Sekunde pro Tag.

Cycle-Limit (auch kürzeres für NTSC) kenne ich, und da bin ich weit drunter. Sind nur 200 Bytes fast ohne Loops.
slx
Multi Poster
Multi Poster
 
Beiträge: 254
Registriert: Fr 31. Mai 2013, 22:20

Re: Turbo BASIC XL und VBI

Beitragvon Sleepy » Mi 11. Mär 2015, 11:37

slx hat geschrieben:Danke für die Tips. Ich dachte, dass TBXL vielleicht eine eigene "richtige" Uhr mit Sekunden hat,...


Hat es: TIME$.

TIME$ enthält eine Zeichenfolge in der Form HHMMSS, d.h. 10 Uhr 15 und 23 Sekunden wird als "101523" übergeben.

Gesetzt wird die Zeit, beispielsweise 11 Uhr 38 und 0 Sekunden, mit TIME$="113800".

Sleepy

Edit: Hier ein Beipiel: klick
Benutzeravatar
Sleepy
Night&Day Poster
Night&Day Poster
 
Beiträge: 6724
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Köln

Re: Turbo BASIC XL und VBI

Beitragvon slx » Mi 11. Mär 2015, 23:46

Danke!

Wenn ich das richtig verstanden habe, arbeitet TBXL aber mit '50 jiffies / Sekunde' und einem Fehler von ein paar Sekunden pro Tag?
slx
Multi Poster
Multi Poster
 
Beiträge: 254
Registriert: Fr 31. Mai 2013, 22:20

Re: Turbo BASIC XL und VBI

Beitragvon Jac » So 15. Mär 2015, 21:49

Hi,

TBXL verwendet innerhalb des VBI die Standard OS Vektoren und Routinen. Allerdings hat es einen besondere NMI/IRQ Routine, die aktiv ist wenn der Interrupt auftritt, solange das OS ausgeschaltet ist. Dann wird das OS für die Dauer des Interrupts wieder eingeschaltet und vor dem RTI wieder aus. Ein Programm was für das normale OS geschrieben ist merkt davon nix.

Der I/O hat keinen Einfluss auf die Uhr. Das Hochzählen von RTCLOCK/+1/+2 ist immer das Erste,was im Immediate VBI des OS passiert. Der "Fehler pro Tag" kommt schlich daher, dass die Routine "/50" rechnet. Die exakte VBI Rate unter PAL ist aber 49,861 FPS. Kannst als ruhig RTCLOCK nehmen und dann einfach genauer rechnen.

Grüße, Peter.
Jac
Star Poster
Star Poster
 
Beiträge: 470
Registriert: Do 1. Jan 1970, 01:00
Wohnort: 66822 Lebach


Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste