LC-80 Interruptpgrammierung PIO Mode 0 |
![]() |
![]() |
Letztmalig dran rumgefummelt: 17.04.05 02:24:26 |
Anmerkungen zur Steuerung: Register A, BC sowie HL muss vor dem Aufruf der Subroutine SOUND gerettet werden
Pseudocode zum Programm:
1.) Monitor-Musik wieder geben3.) Rücksprung zum aufsteigenden Ton
4.) RESET entspricht Stopp
Zeile | Marke | Block | Adresse | Hex-Code | Assembler-Code | Kommentar |
ORG 2000H | ||||||
0001 | ANF: | MUSIC | 2000H | CD EA 04 | CALL 04EAH | ;CALL MONMUS-Ausgabe Anfangsmelodie |
0002 | INIT | 2003H | 21 01 00 | LD HL, 00001H | ;Registerpaar HL wird geladen (Zeitwert aller Töne) | |
0003 | M3: | 2006H | 01 FE FF | LD BC 0FFFEH | ;Register B Intervallanzahl Register C Anfangstonhöhe | |
0004 | M1: | TONAUF | 2009H | C5 | PUSH BC | ;Registerpaar BC retten |
0005 | 200AH | E5 | PUSH HL | ;Registerpaar HL retten | ||
0006 | 200BH | CD 76 03 | CALL 0376H | ;CALL SOUND-Ausgabe Unterprogramm aufrufen | ||
0007 | 200EH | E1 | POP HL | ;Registerpaar HL wieder hergestellt | ||
0008 | 200FH | C1 | POP BC | ;Registerpaar BC wieder hergestellt | ||
0009 | 2010H | 0D | DEC C | ;Tonfrequenz um einen Schritt erhöhen | ||
0010 | 2011H | 10 F6 | DJNZ, M1: | ;Relativer Rücksprung auf Adresse mit Index M1: | ||
0011 | TONAB | 2013H | 06 FE | LD B, 0FEH | ;B mit neuem Anfangszähler laden | |
0012 | M2: | 2015H | C5 | PUSH BC | ;Registerpaar BC retten | |
0013 | 2016H | E5 | PUSH HL | ;Registerpaar HL retten | ||
0014 | 2017H | CD 76 03 | CALL 0376H | ;CALL SOUND-Ausgabe Unterprogramm aufrufen | ||
0015 | 201AH | E1 | POP HL | ;Registerpaar HL wieder hergestellt | ||
0016 | 201BH | C1 | POP BC | ;Registerpaar BC wieder hergestellt | ||
0017 | 201CH | 0C | INC C | ;Tonfrequenz um einen Schritt verringern | ||
0018 | 201DH | 10 F6 | DJNZ, M2: | ;Relativer Rücksprung auf Adresse mit Index M2: | ||
0019 | 201FH | 18 D5 | JR M3: | ;Rücksprung in die Endlosschleife Adresse mit Index M3: | ||
0020 | 2020H | 76 | HALT | ;Haltepunkt wird theoretisch nicht erreicht |
Beispiel für eine kleine Anweisungstabelle in vollständiger Mnemoic-Codierung