Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 14.06.2004, 18:34 Titel: Timer |
|
|
Servus,
ich programmier grad aus Lust und Tollerei ein VGA Spiel mit Turbo Pascal und Assembler(Yeah, mov ax, 13h. int 10h ;)). Mir fehlt noch der Zugriff auf den Timer... kennt jemand den Interrupt und weiß wie man ihn bedient? Oder kennt jemand eine vordefinierte Pascal-Funktion? _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 14.06.2004, 19:49 Titel: |
|
|
Cool, 320x200 bei 256 Farben
Aber den Timerinterrupt kenne ich leider nicht merh auswendig. Du kannst aber in Der Bibliothek mal nach dem Buch "PC-Intern" suchen, Meines erachtens maximal in der Ausgabe 4 oder 5, dort sind *ALLE* DOS-Funktionen und die dazugehörigen Interrupts und Parameter beschrieben, einen Quellcode zu Timern gibt es auch noch, in Pascal, MS-C und wenn du Glück hast sogar in Q(uick)-Basic
Ich hab das Buch hier, aber da das Thema doch sehr komplex ist und ich wenig von Assambler verstehe würde ich dir nur ungerne helfen.
[Edit:] Kaptiel 15: Tonerzeugung über den Timer - sollte alles notwendige enthalten... _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Dietmar Ferstl Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 47 Wohnort: Regensburg/Bayern Medaillen: Keine
|
Verfasst am: 14.06.2004, 20:06 Titel: |
|
|
timer enable:
mov dx,21h
mov al,0bch
out dx,al
timer disable:
mov dx,21h
mov al,0bdh
out dx,al
timer interruptroutine setzen:
push ds
push es
lea dx,name_der_routine
mov ax,cs
mov ds,ax
mov ax,2508h
int 21h
pop es
pop ds
D.
PS: Warum nimmst du keine höhere Auflösung z.b. 1280*1024 mit 16 Bit Farbtiefe. Würde doch besser aussehen, oder? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 15.06.2004, 09:03 Titel: |
|
|
Hey danke! :) Weißt du auch wie man die aktuelle Zeit ausliest und wie die Funktion aufgebaut sein muss(Pascal)?
Zitat: |
Warum nimmst du keine höhere Auflösung z.b. 1280*1024 mit 16 Bit Farbtiefe. Würde doch besser aussehen, oder?
|
Nee, das sind nicht so schön oldschool aus. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Dietmar Ferstl Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 47 Wohnort: Regensburg/Bayern Medaillen: Keine
|
Verfasst am: 15.06.2004, 09:10 Titel: |
|
|
Hallo,
Echtzeit uhr:
mov ah,2
int 1ah
;sekunden befinden sich in DH
;minuten in CL
;Stunden in CH
Alles BCD-codiert.
D. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 15.06.2004, 10:39 Titel: |
|
|
Sorry das versteh ich nicht ganz. =/ Der Timer wird doch ein paar mal in der Sekunde automatisch aufgerufen. Ich möchte jetzt eine eigene Funktion an diesen Interrupt hängen damit ich letztendlich soetwas wie timeGetTime o.ä. bekomme um eine FPS-Begrenzung programmieren zu können. Ist das irgendwie möglich? _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 15.06.2004, 11:31 Titel: |
|
|
Hab die Lösung schon gefunden, danke! :) Man kann über die Ports auch die Frequenz ändern und den Interrupt im Millsekundentakt aufrufen lassen. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Dietmar Ferstl Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 47 Wohnort: Regensburg/Bayern Medaillen: Keine
|
Verfasst am: 15.06.2004, 11:33 Titel: |
|
|
Hallo,
sorry, dachte du willst Echtzeituhr auslesen.
Also,
natürlich kann man den standardmässigen Timerinterrupt umlenken, auf eine eigene Routine zeigen lassen, und diese in einem exakten intervall anspringen lassen.
Wie oft pro sekunde ist denn gewünscht ?
D. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 15.06.2004, 12:54 Titel: |
|
|
Hab schon... 1000x die Sekunde wobei ich immer nur eine Variable inkrementiere. :) Jetzt schreib ich mir noch einen Tastatur-Hook. ;) Good old days. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Dietmar Ferstl Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 47 Wohnort: Regensburg/Bayern Medaillen: Keine
|
Verfasst am: 15.06.2004, 12:59 Titel: |
|
|
Hallo,
wenn du keine hohen ansprüche an die Tastatur stellst, kannst du sie doch einfach mit
mov ah,1
int 16h
des Bios auslesen. |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 15.06.2004, 13:38 Titel: |
|
|
Nee ich muss den Buffer direkt aus dem Port lesen weil die Standardfunktion die Tasten sequentiell liefert. Bei Spielen muss man aber auch mehrere Tasten gleichzeitig drücken können und auch gleichzeitig abfragen können. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
|