Effizientes Projekt Schlange mit Richtungs- und Zeitsteuerung im Schuljahr 2013/14 |
![]() |
![]() |
Letztmalig dran rumgefummelt: 28.11.13 18:02:20 |
|
||||||
|
||||||
Projektbeschreibung: Gesucht ist ein effizientes Programm zur Durchlaufsteuerung einer "Schlange" nach definiertem Muster noch ohne die Steuerung von Laufrichtung sowie der zeitlichen Abfolge - sprich: der Laufgeschwindigkeit! Siehe dazu SCHLANGE05
Anmerkungen zur Steuerung: es müssen keine Registerinhalte gerettet werden, AF wird zum Zeitpunkt des Aufrufs des UP nicht mehr benötigt und die Alternativregister sind nicht in Benutzung
Pseudocode zum Programm:
Zeile | Marke | Block | Adresse | Hex-Code | Assembler-Code | Kommentar |
ORG 2000H | ;Adresse Programmbeginn | |||||
0001 | M5: | INIT | 2000H | DD 21 50 20 | LD LD IX, 2050H | ;Adresse erstes Digit Bildwiederholspeicher in IX |
0002 | 2004H | FD 21 55 20 | LD LD IY, 2055H | ;Anfangsdigit (linkes) des Bildwiederholspeichers in IY | ||
0003 | 2008H | 0E 16 | LD C, 16H | ;Anzahl der Muster in C 16H | ||
0004 | M4: | 200AH | 16 06 | LD D, 0CH | ;Anzahl leere Digits in D | |
0005 | SPACE | 200CH | 3E 00 | LD A, 0CH | ;Bitmuster für Blank-Digit | |
0006 | 200EH | 21 50 20 | LD HL, 2050H | ;Ergebnis auf Speicherplatz ablegen | ||
0007 | M1: | 2011H | 77 | LD (HL), A | ;Ditgit leer schreiben | |
0008 | 2012H | 23 | INC HL | ;Digitzähler heraufzählen | ||
0009 | 2013H | 15 | DEC D | ;Ereigniszähler für Digits leer herunterzählen | ||
0010 | 2014H | 20 FB | JRNZ M1: | ;nächstes Digit | ||
0011 | QUEUE | 2016H | 21 60 20 | LD HL, 2060H | ;Zeiger auf Anfang Codetabelle | |
0012 | 2019H | 16 02 | LD D, 02H | ;Anzahl einzutragender Zeichen | ||
0013 | M2: | 201BH | 7E | LD A, (HL) | ;aktuelles Zeichen von Tabelle in A holen | |
0014 | 201CH | FD 77 | LD (IY), A | ;Inhalt von A auf den Bildwiederholspeicher schreiben | ||
0015 | 201EH | FD 2B | DEC IY | ;rechtes Zeichen bezogen auf letzte Position einstellen | ||
0016 | 2020H | 23 | INC HL | ;Codetabellenzeiger auf nächstes Zeichen | ||
0017 | 2021H | 15 | DEC D | ;Zeichenzähler herabsetzen | ||
0018 | 2022H | 20 F7 | JRNZ M2: | ;zwei Zeichen geschrieben? | ||
0019 | DISPLAY | 2024H | 06 40 | LD B, 40H | ;Anzeigezeit laden | |
0020 | M3: | 2026H | CD 83 04 | CALL DAK1 | ;CALL DAK1-Ausgabe Unterprogramm aufrufen | |
0021 | 2029H | 10 FB | DJNZ M3: | ;B decrementieren und relativer Sprung auf M3, wenn nicht Null | ||
0022 | 202BH | 0D | DEC C | ;Bildanzahl reduzieren | ||
0023 | 202CH | 20 DF | JRNZ M4: | ;nächste Zweiergruppe | ||
0024 | 202EH | 18 DF | LD B, 40H | ;Anzeigezeit laden | ||
0025 | 202FH | 76 | HALT | ;Programmstopp | ||
0026 | ||||||
0027 | TABLE: | |||||
0028 | 2050H | ORG 2050H | ;Datenadresse organisieren | |||
0029 | 2050H | 38 | DEFB 38EH | |||
0030 | 2051H | 2B | DEFB 2BAH | |||
0031 | 2052H | 00 | DEFB 00AH |
Beispiel für eine kleine Anweisungstabelle in vollständiger Mnemoic-Codierung
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 28. November 2013 um 20.37 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |