Sie sind nicht angemeldet.

Bitte schaut euch auch ruhig den aktuellen Entwicklungsstand der Emu64 Version 5.xx an. Diese läuft schon recht stabil und rückt dem Ende der Portierung (Linux/windows) Woche für Woche immer näher.
https://github.com/ThKattanek/emu64

Kontrollzentrum

Geburtstage

Heute hat niemand Geburtstag.

Neue Benutzer

janney(1. Mai 2018, 08:15)

rba1207(7. April 2018, 10:35)

luck42(16. März 2018, 13:03)

MiniWiesel1512(18. Januar 2018, 18:23)

Shooter(12. Januar 2018, 23:11)

Zur Zeit sind keine Benutzer aktiv.

Statistik

  • Mitglieder: 841
  • Themen: 1109
  • Beiträge: 7119 (ø 1,5/Tag)
  • Wir begrüßen unser neuestes Mitglied: janney

Umfrage

Lieber Besucher, herzlich willkommen bei: Emu64. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

C64 Freak

unregistriert

1

Freitag, 16. Oktober 2009, 22:07

"Zeitschleife"Bitte um Hilfe

;( ;( Hallo "Freunde! Ich brauche mal wieder eure "Hilfe!
Nochmals vielen "Dank bei der Hilfe mit dem"Goto"befehl,es funktioniert "PRIMA"
Ich brauche jetzt ein Step für Step für die "Anweisug einer "Zeitschleife"!
ich möchte ein Bild für "ZB." für 10-oder Länger sec. auf dem Bildschirm haben,bevor ich zur nächsten "anweisung gehe.
Vileicht könnt ihr mir das als "Programm" wenn es nicht zu viel ist,Anzeigen,genau wie bei der"goto Abzweigung!
Vielen Dank im Voraus!
PS: Mein erstes "Mini Programm habe ich dank eurer Hilfe geschrieben!mit Abzewigungen und Bildschirm löschen !Hat RIESIGEN Spass gemacht! :thumbsup:

Bis denne,und einen dicken Gruß an euch alle! :thumbup:
>>>"Franz"<<<<!

Thorsten Kattanek

Emu64 - Entwickler

  • »Thorsten Kattanek« ist männlich
  • Deutschland

Beiträge: 1 298

Wohnort: Berlin

Beruf: Staatlich geprüfter Techniker in Elektrotechnik / Informatik

  • Nachricht senden

2

Freitag, 16. Oktober 2009, 23:32

auch das ist relativ einfach ...

Man benutzt einfach eine For Next Schleife die einfach nichts tut !

Quellcode

1
2
3
PRINT "WARTEN START"
FOR I=0 TO 2000:NEXT I
PRINT"WARTEN ENDE"


In der Zeile 2 ist die eigentliche Verzögerung. Die länge der Pause wird durch den Wert 2000 bestimmt.
Durch Verändern dieses Wertes veränderst du die länge der Pause.

MfG Thorsten
Ich möchte gerne die Welt verändern, doch Gott gibt den Quelltext nicht frei.

C64 Freak

unregistriert

3

Samstag, 17. Oktober 2009, 12:04

:!: :love: :love:
auch das ist relativ einfach ...

Man benutzt einfach eine For Next Schleife die einfach nichts tut !

Quellcode

1
2
3
PRINT "WARTEN START"
FOR I=0 TO 2000:NEXT I
PRINT"WARTEN ENDE"


In der Zeile 2 ist die eigentliche Verzögerung. Die länge der Pause wird durch den Wert 2000 bestimmt.
Durch Verändern dieses Wertes veränderst du die länge der Pause.

MfG Thorsten


Danke Thorsten! hast mir sehr weitergeholfen :thumbsup:

Lg>>>"Franz<<<! :)

TGS

Anfänger

  • »TGS« ist männlich

Beiträge: 36

Wohnort: aus meines Mamas Bauch

Beruf: DemoCoder ;)

  • Nachricht senden

4

Samstag, 17. Oktober 2009, 12:43

Die Lösung mit der FOR - NEXT - Schleife funktioniert, hat allerdings einen Nachteil: Der User muss in der Zeit warten und kann die Warteschleife von sich aus nicht unterbrechen.

Besser wäre daher eine Variante, bei der der User entweder die Aktion durch einen Tatendruck beschleunigen / abbrechen kann bzw. das Programm ohne Usereingabe nach einer bestimmten Zeit von sich aus weiterarbeitet.

Mögliche Lösung:

Quellcode

1
2
3
4
5
6
10 PRINT "Eine kleine Pause..."
20 POKE 198,0
30 FOR TGS = 20000 to 0 STEP -1
40 IF PEEK(198)>0 THEN TGS = 0
50 NEXT TGS
60 PRINT "Pause ist beendet!"


Zur Erklärung: Die Schleife wird wie gewohnt durchlaufen, nur daß nun überprüft wird, ob eine Taste gedrückt wurde. Die Speicherstelle 198 registriert nämlich, ob und wieviele Tasten gedürckt wurden. Dafür wird der Tastaturspeicher in Zeile 20 zunächst gelöscht. Wenn nun während der Schleife ein Tastendruck registriert wird (Zeile 40), wird die Zählvariable TGS auf 0 und somit auf das Ende der Schleife gesetzt. Passiert innerhalb des Schleifendurchlaufs keine Tasteneingabe so wird die Schleife ganz normal zu Ende ausgeführt und am Ende mit der normalen Programmausführung fortgesetzt.

Man könnte rein theoretisch die Zeile 40 auch wie folgt abändern:

Quellcode

1
40 IF PEEK(198)>0 THEN GOTO 60


Mit dieser Abänderung würde man direkt aus der Schleife springen, sobald eine Taste gedrückt wurde. Allerdings ist das sehr unsauberer Programmierstil und kann ggf. zu Problemen führen, wenn im späteren Programm der Befehl NEXT ohne Variablenname auftauchen würde.

C64 Freak

unregistriert

5

Samstag, 17. Oktober 2009, 15:34

Die Lösung mit der FOR - NEXT - Schleife funktioniert, hat allerdings einen Nachteil: Der User muss in der Zeit warten und kann die Warteschleife von sich aus nicht unterbrechen.

Besser wäre daher eine Variante, bei der der User entweder die Aktion durch einen Tatendruck beschleunigen / abbrechen kann bzw. das Programm ohne Usereingabe nach einer bestimmten Zeit von sich aus weiterarbeitet.

Mögliche Lösung:

Quellcode

1
2
3
4
5
6
10 PRINT "Eine kleine Pause..."
20 POKE 198,0
30 FOR TGS = 20000 to 0 STEP -1
40 IF PEEK(198)>0 THEN TGS = 0
50 NEXT TGS
60 PRINT "Pause ist beendet!"


Zur Erklärung: Die Schleife wird wie gewohnt durchlaufen, nur daß nun überprüft wird, ob eine Taste gedrückt wurde. Die Speicherstelle 198 registriert nämlich, ob und wieviele Tasten gedürckt wurden. Dafür wird der Tastaturspeicher in Zeile 20 zunächst gelöscht. Wenn nun während der Schleife ein Tastendruck registriert wird (Zeile 40), wird die Zählvariable TGS auf 0 und somit auf das Ende der Schleife gesetzt. Passiert innerhalb des Schleifendurchlaufs keine Tasteneingabe so wird die Schleife ganz normal zu Ende ausgeführt und am Ende mit der normalen Programmausführung fortgesetzt.

Man könnte rein theoretisch die Zeile 40 auch wie folgt abändern:

Quellcode

1
40 IF PEEK(198)>0 THEN GOTO 60


Mit dieser Abänderung würde man direkt aus der Schleife springen, sobald eine Taste gedrückt wurde. Allerdings ist das sehr unsauberer Programmierstil und kann ggf. zu Problemen führen, wenn im späteren Programm der Befehl NEXT ohne Variablenname auftauchen würde.


Vielen "Dank"! Bei euch "lerne ich noch das "Programmieren!
Schönes Wochenende!
>>>"Franz"<<<!