JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=de55c5d7c5074ad06ac6fd8173420cefMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Timer

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 14.06.2004, 18:34    Titel: Timer Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 14.06.2004, 19:49    Titel: Antworten mit Zitat

Cool, 320x200 bei 256 Farben Wink
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dietmar Ferstl
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 47
Wohnort: Regensburg/Bayern
Medaillen: Keine

BeitragVerfasst am: 14.06.2004, 20:06    Titel: Antworten mit Zitat

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? Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 09:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Dietmar Ferstl
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 47
Wohnort: Regensburg/Bayern
Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 09:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 10:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 11:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Dietmar Ferstl
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 47
Wohnort: Regensburg/Bayern
Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 11:33    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 12:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Dietmar Ferstl
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 47
Wohnort: Regensburg/Bayern
Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 12:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 15.06.2004, 13:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum