- uhrd: Uhrzeit-Darstellung
- init: Initialisieren der PIO, Stellen der Uhr
Es kann auf beliebigen Adressen stehen. Die Startadresse von
"uhrd" muß allerdings in den Teil "init" eingetragen werden.
Der Teil "init" besteht ebenfalls aus zwei Teilen: Uhr stellen und
Initialisieren. Beim vorliegenden Programm wird auf der Adresse 0B0
für "@U" ein Sprung zum Stellen der Uhr eingetragen. Eventuell
dort vorhandene Sprungadressen bleiben erhalten. Folgende RAM-Zellen werden
benutzt:
00 = 0...Uhr aufgeblendet
+ 0...Uhr läuft verdeckt
08 Sekundenzähler
09 Minutenzähler
0A Stundenzählar
10 NWT der Startadresse von uhrd
11 HWT der Startadresse von uhrd.
Die Interrupt.Programmierung der PIO sieht wie folgt aus:
1. PIO auf BIT-E/A, BIT 4 auf Eingabe
2. Startadresse von uhrd in Adresse 10/11
eintragen
3. Laden des lnterrupt-Registers der CPU
4. Laden des Interrupt-VektorRegisters der PIO
5. Ausgabe des lnterrupt-Steuerwortes an PIO
6. Ausgabe des lnterrupt-Maskenwortes an PIO
7. Freigabe Interrupt
Bei Verschiebung auf andere Adressen muß der Inhalt von 3F11
und 3F12 die neue Adresse von jetzt 3F16 beinhalten.
In jetzt 3F41 muß der NWT und in jetzt 3F42 der
HVVT der neuen Startadresse von uhrd stehen (jetzt 3F57).
Wird ein 2-Sekunden-Takt eingespeist, so ist der Inhalt von 3F5F von
01 auf 02 zu ändern.
init ab 3F00
21 DC 00 11 DF 00 01 2E
00 ED B8 3E 55 32 B0 00
21 16 3F 22 B1 00 E7 02
61 6B 74 75 65 6C 6C 65
20 5A 65 69 74 BA 21 0A
00 0E 03 06 02 E7 01 E7
00 D6 30 ED 6F 10 F6 E7
0E 2B 0D 20 EE F3 ED 5E
21 57 3F 22 10 00 AF ED
47 3E 10 D3 03 3E 97 D3
03 3E EF D3 03 FB FF
uhrd ab 3F57
F5
E5 D5 21 08 00 7E C6 01
27 FE 60 38 01 AF 77 38
20 23 7E C6 01 27 FE 60
38 01 AF 77 38 13 23 7E
C6 01 27 FE 24 38 01 AF
77 38 06 D1 E1 F1 FB ED
4D 2A 2B 00 E5 ED 5B 1F
00 3A 00 00 B7 20 1A 21
16 EC 22 2B 00 21 0A 00
7E E7 06 E7 02 BA 2B 7E
E7 06 E7 02 BA 2B 7E E7
06 E1 ED 53 1F 00 22 2B
00 3E 20 32 1E EC 18 C3
| E100 21 DC 00 | LD HL,00DC |
| E103 11 DF 00 | LD DE,00DF |
| E106 01 2E 00 | LD BC,002E |
| E109 ED B8 | LDDR |
| E10B 3E 55 | LD A,55 |
| E10D 32 B0 00 | LD (00B0),A |
| E110 21 16 E1 | LD HL,E116 |
| E113 22 B1 00 | LD (00B1),HL |
| E116 E7 02 | DA PRST7 |
| E118 61 6B 74 75 | DB 'aktu' |
| E11C 65 6C 6C 65 | DB 'elle' |
| E120 20 5A 65 69 | DB ' Zei' |
| E124 74 BA | DB 't:' |
| E126 21 0A 00 | LD HL,000A |
| E129 0E 03 | LD C,03 |
| E12B 06 02 | LD B,02 |
| E12D E7 01 | DA INCH |
| E12F E7 00 | DA OUTCH |
| E131 D6 30 | SUB 30 |
| E133 ED 6F | RLD |
| E135 10 F6 | DJNZ E12D-# |
| E137 E7 0E | DA OUTSP |
| E139 2B | DEC HL |
| E13A 0D | DEC C |
| E13B 20 EE | JRNZ E12B-# |
| E13D F3 | DI |
| E13E ED 5E | IM 2 |
| E140 21 57 E1 | LD HL,E157 |
| E143 22 10 00 | LD (0010),HL |
| E146 AF | XOR A |
| E147 ED 47 | LD I,A |
| E149 3E 10 | LD A,10 |
| E14B D3 03 | OUT 03 |
| E14D 3E 97 | LD A,97 |
| E14F D3 03 | OUT 03 |
| E151 3E EF | LD A,EF |
| E153 D3 03 | OUT 03 |
| E155 FB | EI |
| E156 FF | RST 38 |
| E157 F5 | PUSH AF |
| E158 E5 | PUSH HL |
| E159 D5 | PUSH DE |
| E15A 21 08 00 | LD HL,0008 |
| E15D 7E | LD A,M |
| E15E C6 01 | ADD 01 |
| E160 27 | DAA |
| E161 FE 60 | CMP 60 |
| E163 38 01 | JRC E166-# |
| E165 AF | XOR A |
| E166 77 | LD M,A |
| E167 38 20 | JRC E189-# |
| E169 23 | INC HL |
| E16A 7E | LD A,M |
| E16B C6 01 | ADD 01 |
| E16D 27 | DAA |
| E16E FE 60 | CMP 60 |
| E170 38 01 | JRC E173-# |
| E172 AF | XOR A |
| E173 77 | LD M,A |
| E174 38 13 | JRC E189-# |
| E176 23 | INC HL |
| E177 7E | LD A,M |
| E178 C6 01 | ADD 01 |
| E17A 27 | DAA |
| E17B FE 24 | CMP 24 |
| E17D 38 01 | JRC E180-# |
| E17F AF | XOR A |
| E180 77 | LD M,A |
| E181 38 06 | JRC E189-# |
| E183 D1 | POP DE |
| E184 E1 | POP HL |
| E185 F1 | POP AF |
| E186 FB | EI |
| E187 ED 4D | RETI |
| E189 2A 2B 00 | LD HL,(002B) |
| E18C E5 | PUSH HL |
| E18D ED 5B 1F 00 | LD DE,(001F) |
| E191 3A 00 00 | LD A,(0000) |
| E194 B7 | OR A |
| E195 20 1A | JRNZ E1B1-# |
| E197 21 16 EC | LD HL,EC16 |
| E19A 22 2B 00 | LD (002B),HL |
| E19D 21 0A 00 | LD HL,000A |
| E1A0 7E | LD A,M |
| E1A1 E7 06 | DA OUTHX |
| E1A3 E7 02 | DA PRST7 |
| E1A5 BA | DB ':' |
| E1A6 2B | DEC HL |
| E1A7 7E | LD A,M |
| E1A8 E7 06 | DA OUTHX |
| E1AA E7 02 | DA PRST7 |
| E1AC BA | DB ':' |
| E1AD 2B | DEC HL |
| E1AE 7E | LD A,M |
| E1AF E7 06 | DA OUTHX |
| E1B1 E1 | POP HL |
| E1B2 ED 53 1F 00 | LD (001F),DE |
| E1B6 22 2B 00 | LD (002B),HL |
| E1B9 3E 20 | LD A,20 |
| E1BB 32 1E EC | LD (EC1E),A |
| E1BE 18 C3 | JR E183-# |