Infofile


Der CPLD-BWS ist im Prinzip erst einmal ein ganz normaler BWS fr den AC1,
Die gesamte Logik auer RAM und Zeichengenerator sind aber im CPLD enthalten.

Die Leistungsstrke des CPLD XC95108 von XILINX lies noch einiges an 
Erweiterungen zu, die jetzt bereits im CPLD-BWS integriert sind.

Diese sind:

1. INVERS Modus mit 10H/11H, 
2. Umschaltbarkeit zwischen BAS Modus (wie AC1 Original) oder TFT Modus !!,
3. Erweiterung auf Farbausgabe einfach mglich !!,
4. Programmierbarkeit des Zeichengenerator (Einsatz 28C64 100ns notwendig),
5. Taktumschaltung via Software fr AC1 zwischen 2/4Mhz integriert,
6. INVERS-Modus fr ganzen BWS,
7. BWS Steuerport auf IO F0H ist rcklesbar,


Der CPLD-BWS verhlt sich nach Reset zunchst wie ein ganz normaler BWS.
Lediglich eine EINMALIGE Initialisierung des FarbRAM ist notwendig. Diese
sollte im Monitor bereits erfolgen und zwar VOR der Monitor berschrift.

Im CPLD-BWS gibt es ein vom AC1 rcklesbares IO-Latch auf Adresse F0H. 
Dieses Latch steuert das Verhalten des BWS und AC1 (Taktumschaltung).

Das Bit 0 schaltet Ac1-Takt zwischen 2Mhz (Bit=0) und 4Mhz (Bit=1),
Das Bit 1 schaltet zwischen NormalModus (Bit=0)und INVERS Modus (Bit=1) um,
Das Bit 2 schaltet zwischen TextRAM (Bit=0) und FarbRAM (Bit=1),

Die Bits3..7 sind fr die Programmierung des Zeichengenerator ZG reserviert.

Bit 3   -->     ZG Programmierung 0=Normal BWS, 1=ZG lesen/schreiben
Bit 4	-->	ZG Programmierung A0
Bit 5	-->	ZG Programmierung A1
Bit 6	-->	ZG Programmierung A3
Bit 7	-->	frei


Erluterung Programmierung ZG:
Mit Setzen von Bit 3 im BWSLatch wird der BWS in den Programmier-Modus gesetzt.

D.h. der BWS wird dunkel und der ZG kann mit einem einfachen LD Befehl gelesen 
oder geschrieben werden. Beim Schreiben muss jedoch die Schreibzeit abgewartet
werden, ehe die Daten im ZG gltig sind.

Da ein Zeichen auf dem BWS aus 8 Bytes im ZG besteht, mssen immer 8 Bytes 
gelesen oder geschrieben werden, um ein vollstndiges Zeichen zu erhalten.

Adressiert wird der ZG dabei wie folgt:

BWS Adresse 1000H + Offset Zeichen --> Zeichen 00H auf Adr. 1000H
                                   --> Zeichen FFH auf Adr. 10FFH

Die Zeilennummern des Zeichens (A0..A2 ZG) stehen im Register F0H Bit4..6
PIO1 Port B3 entspricht A11 und schaltet damit den Zeichensatz des ZG.


So funktioniert die ZG Programmiersequenz:

1. richtigen ZG (SCCH oder ACC) einstellen (PIO1 Port B3)
2. Zeilennummer vom Zeichen nach BWS-Latch F0H Bit4..6, Bit7=0
3. Bit 3 auf 1, damit wird RAM deaktiviert und ZG_OE auf H (ZG ProgrammierMode)
4. Schreib oder Lesebefehl auf BWS Adresse 10xxH 
5. beim Schreiben Schreibzeit mit Warteschleife abwarten
6. nchste ZG Zeile in IOF0H einstellen und weiter zu 3.
7. wenn alle 8 Zeilen durch ist das zeichen fertig gelesen oder geschrieben,

