nav-left cat-right
cat-right

Bedienungsanleitung LC80

Bedienungsanleitung LC80

Hier der letzte, nicht vollständige, Stand der Bedienungsanleitung.

Bild: birgitH / pixelio.de

I/O-Adressen

CTC 1 (D233) Kanal 0 ECh
Kanal 1 EDh
Kanal 2 EEh
Kanal 3 EFh
PIO 1 (D20x) Port A Daten F4h
Port B Daten F5h
Port A Control F6h
Port B Control F7h
PIO 2 (D201) Port A Daten F8h
Port B Daten F9h
Port A Control FAh
Port B Control FBh
PIO1 (D2xx) Port A Bit 0
Bit 1
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Port B Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
PIO 2 (D244) Port A Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Port B Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7

3.6. Speicherbereiche

Das Monitorprogramm ist in zwei ROM’s U505 (2 x 1 kByte) enthalten. Der RAM-Bereich wird durch 2 Schaltkreise U214 realisiert. Davon sind die letzten 66 Byte für das Monitorprogramm reserviert.

Adresse Belegung
0000h – 03FFh 1. 1kB-PROM
0800h – 0BFFh 2. 1kB-PROM
0C00h – 0FFFh 3. 2kB-EPROM (optional)
1000h – 17FFh 4. 2kB-EPROM (optional)
1800h – 1FFFh 5. 2kB-EPROM (optional)
2000h – 23FFh 1kB-RAM-Speicher
2400h – 27FFh 1kB-RAM-Speicher (optional)
2800h – 2BFFh 1kB-RAM-Speicher (optional)
2C00h – 2FFFh 1kB-RAM-Speicher (optional)

Durch den Decoderschaltkreis DS8205 (D209) wird der ROM-Bereich in Blöcken zu 2 kByte ausgewählt, bei der Adresse 0000h beginnend. Mittels des DS8205 auf Pos. D210 erfolgt die Decodierung des RAM-Bereiches in Blöcken zu 1 kByte, bei der Adresse 2000h beginnend. Über den Anschluß MEDI des CPU-Bus kann mit MEDI = L der gesamte interne Speicherbereich abgeschaltet werden.

ROM-Adresse Adresse im
RAM-Bereich
RST1 – 0008h 2308h
RST2 – 0010h 2310h
RST3 – 0018h 2318h
RST4 – 0020h 2320h
RST5 – 0028h 2328h
RST6 – 0030h 2330h
RST7 – 0038h 2338h

3.7. Periphere Bausteine

Die Ansteuerung der Tastatur und der Anzeige erfolgt durch die beiden PIO-Bausteine U855. Die System-PIO D206 gibt über das Port A die Segmentinformation und über das Port B die Digit-Information aus. Diese Signale dienen gleichzeitig der Tastaturaktivierung. Bit 0 und 1 von Port B werden für das Magnetband-Interface verwendet.

4. Programmierbeispiele

4.1 Einerkomplement

Aufgabe: Vom Inhalt des Speicherplatzes 2040h ist das Einerkomplement zu bilden (Negation). Das Ergebnis ist auf den Speicherplatz 2041h abzulegen.
ADR	OPCODE		SOURCE-STATMENT
2000				ORG	2000H
2000	3A4020		BSP1:	LD	A, (2040H)	; AUSGABEWERT LADEN
2003	2F			CPL			; KOMLEMENT BILDEN
2004	324120			LD	(2041H), A	; ERGEBNIS ABSPEICHERN
2007	76			HALT			; CPU-HALT
2040				ORG	2040H		; ADRESSE DATEN
2040	6A			DEFB	6AH		; AUSGANGSWERT (BEISPIEL)

Als Ergebnis wird auf dem Speicherplatz 2041h das Ergebnis 95h abgelegt.

4.2 8-Bit-Addition

Aufgabe: Die Inhalte der Speicherplätze 2040h und 2041h sind zu addieren. Die Summe ist auf dem Speicherplatz 2042h abzulegen. (Ein eventueller Übertrag ist nicht zu berücksichtigen).
2000			ORG	2000H
2000	214020		BSP2:	LD	HL, 2040H	; ADRESSE ERSTER OPERAND
2003	7E			LD	A, (HL)		; OPERAND NACH A LADEN
2004
2005
2006
2007
2008
2040
2040
2041

6.2 Praktische Beispiele

Beispiel 1: Anzeige ‘HELPUS’

Unter Verwendung des Unterprogramms DAK1 ist der Text ‘HELPUS’ anzuzeigen, solange nicht die Taste “+” gedrückt wird. In diesem Fall soll der Rechner in den HALT-Zustand gehen.

2000				ORG	2000H
2000	DD212020	EX1:	LD IX,	HELP		; ADR. TEXT
2004	CD5A08		DISP:	CALL	DAK1		; ANZEIGE
2007	FE10			CMP	10H		; TASTE "+"

2009	20F9			JRNZ	DISP		; FALSCHE TASTE
200B	76			HALT

2020				ORG	2020H
2020	AE		HELP:	DEFB	0AEH		; "S"
2021	E3			DEFB	0E3H		; "U"
2022	4F			DEFB	4FH		; "P"
2023	C2			DEFB	0C2H		; "L"
2024	CE			DEFB	0CEH		; "E"
2025	6B			DEFB	6BH		; "H"

Durch das Unterprogramm DAK1 wird der Text, der durch das IX-Register adressiert wird, angezeigt. Dieses Unterprogramm wird verlassen, sobald eine Taste (außer RES oder NMI) gedrückt wird. Durch obiges Programm wird getestet, ob die Taste “+” gedrückt wurde. Ist dies der Fall, geht die CPU in den HALT-Zustand; andernfalls wird das Unterprogramm erneut aufgerufen. Die Codierung für die 7-Segment-Anzeige ergibt sich aus dem Bild im Pkt. 3.6. bzw. der Tabelle im Anhang.

Beispiel 2: Blinkende Anzeige ‘HELPUS’

Das Unterprogramm DAK2 steuert die Anzeige für die Dauer von rund 10ms an. Der Text ‘HELPUS’ soll alle 0,5 Sekunden für 0,5 Sekunden aufleuchten.

2000				ORG	2000H
2000	212620		EX2:	LD	HL, BLANK	; "LEERZEICHEN"
2003	E5			PUSH	HL
2004	DD212020		LD	IX, HELP	; TEXT "HELPUS"
2008	DDE3		LOOP:	EX	(SP), IX
200A	0632			LD	B, 32H
200C	CD8308		LOOP1:	CALL	DAK2
200F	10FB			DJNZ	LOOP1
2011	18F5			JR	LOOP

2020				ORG	2020H
2020	AE		HELP:	DEFB	0AEH		; "S"
2021	E3			DEFB	0E3H		; "U"
2022	4F			DEFB	4FH		; "P"
2023	C2			DEFB	0C2H		; "L"

2024	CE			DEFB	0CEH		; "E"
2025	6B			DEFB	6BH		; "H"
2026	00		BLANK:	DEFB	0
2027	00			DEFB	0
2028	00			DEFB	0
2029	00			DEFB	0
202A	00			DEFB	0
202B	00			DEFB	0

Zur Änderung der Anzeigezeit ist der Wert auf dem Speicherplatz 200Bh zu ändern, der die Anzahl der Schleifendurchläufe zum Aufruf von DAK2 vorgibt und damit die Zeit bestimmt. Die Änderung des Anzeigetextes ist auf den Speicherplätzen 2020h bis 202Bh möglich.

Beispiel 3: Blinklichtsteuerung

Die OUT-LED soll durch HIGH- bzw. LOW-Signale angesteuert werden, so daß diese blinkt.

2000				ORG	2000H
2000	3EFF		EXO3:	LD	A, 0FFH
2002	D3F5			OUT	(0F5H), A
2004	0650			LD	B, 50H
2006	CD1820		LOOP1:	CALL	DELAY
2009	10FB			DJNZ	LOOP1
200B	3EFD			LD	A, 0FDH
200D	D3F5			OUT	(0F5H), A
200F	0650			LD	B, 50H
2011	CD1820		LOOP2:	CALL	DELAY
2014	10FB			DJNZ	LOOP2
2016	18E8			JR	EXO3
2018	0EFF		DELAY:	LD	C, 0FFH
201A	0D		LOOP3:	DEC	C
201B	20FD			JR	NZ, LOOP3
201D	C9			RET

Beispiel 4: Textdarstellung

Mittels der Taste “-” wird die Anzeige gelöscht. Nach dem Drücken der Taste “+” erscheint das Wort “Hallo” in der Anzeige.
Benutzt werden dabei die Textdefinitionen im Monitorprogramm. (Text gemäß Code-Tabelle für die 7-Segment-Anzeige, siehe Anhang.)

2000	            		ORG 	2000H
2000	DD218309	EX04:	LD	IX, DISP3	; TEXT "HALLO"
2004	CD5A08		DISPL1:	LD	B, 50H
2007	FE11			CMP	11H		; TASTE "-"
2009	20F9			JR	NZ, DISPL1
200B	DD218909		LD	IX, DISP4	; LEER-TEXT
200F	CD5A08		DISPL2:	CALL	DAK1
2012	FE10			CMP	10H		; Taste "+"
2014	20F9			JR	NZ, DISPL2
2016	DD218909		LD	IX, DSIP4
201A	0E06			LD	C, 6
201C	0620		INI1:	LD	B, 20H
201E	CD8308		INI2:	CALL	DAK2
2021	10FB			DJNZ	INI2
2023	DD2B			DEC	IX
2025	0D			DEC	c
2026	20F4			JR	NZ, INI1
2028	18D6			JR	EX04

Beispiel 5: Umlauf-Spiel

Die Segmente einer Anzeigestelle werden einzeln nacheinander angesteuert. Der Umlauf wird mittels der Taste “+” gestoppt und mit jeder anderen Taste (außer Reset und Interrupt-Taste) fortgesetzt. In der Tabelle

….

Anhang 1

Arbeitszellen im RAM

Adresse Länge Funktion
22D8h
45 Zwischenspeicher für die Registeranzeige
2305h
2308h RST1
2310h RST2
2318h RST3
2320h RST4
2328h RST5
2330h RST6
2338h RST7
2340h 3 Seite 19
23F2h Datenanzeige 1. Stelle
23F3h Datenanzeige 2. Stelle
23F4h Adressanzeige
23F5h Adressanzeige
23F6h Adressanzeige
23F7h Adressanzeige