Warum laufen nicht alle KC85/3-Programme auf dem KC85/4 ?
Kundeninformation des VEB Mikroelektronik "Wilhelm Pieck" Mühlhausen vom 29.11.1988
Einige Anwender haben beim Laden von Programmen des KC85/2 oder KC85/3 in den KC85/4 bemerkt, daß nicht Alles so funktioniert wie gewohnt. Die Hauptursache dafür liegt im veränderten Aufbau des Bildwiederholspeichers. Für den Pixel- und Farb-RAM hat sich gegenüber dem KC85/3 die Adreßrechnung verändert. Zu sehen ist, daß sich die Berechnung einer bestimmten Adresse aus der x-y-Position eines Pixels stark vereinfacht hat. Außerdem braucht die Farbpositionsadresse nicht extra errechnet zu werden, da sie identisch mit der Pixelpositionsadresse ist. Zu beachten ist dabei, daß der Farbspeicher in einer anderen Speicherebene angeordnet ist als der Pixelspeicher. Die Adreßfolge auf dem Bildschirm ist beim KC85/3 zeilenorientiert und beim KC85/4 spaltenorientiert.
KC85/3-Programme, die eigene Adreßrechnungen durchführen, können aus oben genannten Gründen auf dem KC85/4 nicht laufen. Wurde an den entsprechenden Stellen mit dem CAOS-Unterprogramm (CAOS-UP) 34H (Berechnung Pixel- und Farbadresse) gearbeitet, bekommt man auch beim KC85/4 die korrekte Pixel- und Farbadresse heraus. Beim KC85/3 übergibt dieses CAOS-UP u.a. im Doppelregister DE die Farbadresse. Das ist beim KC85/4 nicht mehr der Fall, weil erstens im Doppelregister HL die Pixeladresse übergeben wird, die mit der Farbadresse identisch ist, und weil zweitens an diesen Programmstellen sowieso Programmänderungen notwendig werden, da ja die Farbebene erst zugeschalten werden muß, um in ihr Manipulationen durchführen zu können. Folgende Programmteile schalten die Farbebene ein bzw. aus, wirken also als Schalter:
1. BASIC:
PRINT CHR$(27);"9";
2. FORTH:
HEX 39 1B EMIT EMIT
3. Assembler:
LD A,(IX+1) ;aus Merkzelle XOR 2 ;Umschalten LD (IX+1),A ;in Merkzelle OUT (84H),A ;an Port 84H
Bei den bisher ausgelieferten Geräten KC85/4 mit dem Betriebssystem CAOS Version 4.0 oder 4.1 treten weitere Probleme auf, so z.B. bei der Verwendung des CAOS-UP 31H (Verlagerung des Arbeitsbereichs). Bis zur Version CAOS 4.1 werden in diese CAOS-UP {\em alle} internen Speicherblöcke in den Grundzustand, der nach einem Kalt- oder Warmstart vorliegt, zurückgesetzt. Ab der Version CAOS 4.2 werden die aktuellen Schaltzustände der internen Speicherblöcke durch das CAOS-UP 31H nicht mehr geändert.
Bei der Anwendung der CAOS-UP 08H (Initialisierung Magnetbandausgabe, Ausgabe des ersten Blockes) und 0AH (Initialisierung Magnetbandeingabe, Einlesen des ersten Blockes) wird bis zur Version CAOS 4.1 immer die Kassettenpufferanfangsadresse B700H durch diese CAOS-UP eingestellt. Andere Pufferadressen sind also für die Ausgabe, bzw. für das Einlesen des ersten Blockes nicht möglich. Ab der Version CAOS 4.2 ist auch dieser Unterschied behoben.