Die Indirections der Firmware-PacksBDCD: IND TXT DRAW CURSORZeichne einen Cursor-Fleck, falls dieser auf beiden Ebenen eingeschaltet ist. Eingaben: keine Ausgaben: keine Unverändert: BC,DE,HL,IX,IY Wenn Die Text-VDU: Der Cursorder Cursor sowohl 'enabled' als auch 'on' ist, wird die Cursorposition in das aktuelle Textfenster gezwungen und Die Text-VDU: Der Cursorder Cursor gezeichnet. BDD0: IND TXT UNDRAW CURSOREntferne den Cursor-Fleck, falls dieser auf beiden Ebenen eingeschaltet ist. Eingaben: keine Ausgaben: keine Unverändert: BC,DE,HL,IX,IY Wenn Die Text-VDU: Der Cursorder Cursor sowohl 'enabled' als auch 'on' ist, wird der Cursor-Fleck im aktuellen Textfenster wieder von der Cursorposition entfernt. Bedingt durch den primitiven Aufbau des Standard-Cursors (Invertieren aller Datenbreite: Bits BDD3: IND TXT WRITE CHARSchreibe ein Zeichen auf den Bildschirm. Eingaben: Operationen: BD5B / 349A / 349A: FLO SUBA = Zeichencode
H = Spalte (phys.)
L = Zeile (phys.)
Ausgaben: keine
Unverändert: IX,IY
Bezugspunkt für die Koordinaten-Angaben ist die linke, obere Ecke mit den Koordinaten (0,0). Aufgabe dieser Überblick: Die Indirections der Firmware-Packs Diese Überblick: Die Indirections der Firmware-Packs BDD6: IND TXT UNWRITELese ein Zeichen vom Bildschirm. Eingaben: H = Spalte (phys.)
L = Zeile (phys.)
Ausgaben: CY=1 -> Operationen: BD5B / 349A / 349A: FLO SUBA=Zeichencode
CY=0 -> Kein Zeichen erkannt.
Unverändert: IX,IY
Bezugspunkt für die Koordinatenangaben ist die linke, obere Ecke mit den Koordinaten (0,0). Die Text-VDU: Der CursorDer Cursor darf nicht auf der Leseposition dargestellt sein. Um ein Zeichen vom Bildschirm zu lesen, wird die Grafikinformation auf der angegebenen Position wieder zu einer 8-Datentypen: Bytes Dabei gibt es zwei Durchgänge: Zuerst wird die Zeichenposition unter der Annahme komprimiert, dass das Zeichen in der aktuellen PEN-Tinte geschrieben wurde. Wird so kein Zeichen erkannt oder ist das Egebnis das Leerzeichen, so wird ein weiterer Durchgang unter der Annahme gestartet, dass der Hintergrund in der aktuellen Paper-Tinte geschrieben ist. Ziemlich viele Faktoren können diese Routine am Erfolg hindern: Entweder wurden die Die Bildausgabe: Tinten und FarbenTinten gewechselt (oder auch nur einfach vertauscht), eine Zeichenmatrix geändert oder die Zeichenposition ganz oder teilweise durch Punkte oder Linien verändert. In all diesen Fällen erkennt diese Routine ein Zeichen nicht wieder. BDD9: IND TXT OUT ACTIONSchreibe ein Zeichen oder befolge einen Control-Code. Eingaben: Operationen: BD5B / 349A / 349A: FLO SUBA = Zeichen- oder Controlcode
Ausgaben: keine
Unverändert: IX,IY
Diese Überblick: Die Indirections der Firmware-Packs BDDC: IND GRA PLOTZeichne einen Punkt. Eingaben: DE = X-Koordinate HL = Y-Koordinate Ausgaben: keine Unverändert: IX,IY Die Koordinatenangaben sind Adressierungsarten der Z80: Relativrelativ zum Origin als Ursprung. Diese Überblick: Die Indirections der Firmware-Packs BDDF: IND GRA TESTBestimme die Die Bildausgabe: Tinten und FarbenTinte eines Punktes. Eingaben: DE = X-Koordinate
HL = Y-Koordinate
Ausgaben: Operationen: BD5B / 349A / 349A: FLO SUBA = Tintennummer des Punktes
Unverändert: IX,IY
Die Koordinatenangaben sind Adressierungsarten der Z80: Relativrelativ zum Origin als Nullpunkt. Diese Überblick: Die Indirections der Firmware-Packs BDE2: IND GRA LINEZeichne eine Linie. Eingaben: DE = X-Koordinate HL = Y-Koordinate Ausgaben: keine Unverändert: IX,IY Die Koordinatenangaben sind Adressierungsarten der Z80: Relativrelativ zum Origin. Der Grafik-Cursor wird auf die angegeben Position gesetzt und eine Line von der alten Cursorposition zur neuen gezogen. Dabei werden nur Punkte innerhalb des aktuellen Grafikfensters gesetzt. Die einzelnen Punkte werden gesetzt, indem &Die Indirections der Firmware-Packs: BDE8: IND SCR WRITEBDE8 IND SCR WRITE aufgerufen wird, diese Routine wiederrum befolgt den aktuellen Grafik- Vordergrundmodus. Garbage Collection: ... beim CPC 664 und 6128Beim CPC 664 und 6128 wird der erste Punkt der Linie nicht geplottet, wenn die Erster-Punkt-Option entsprechend gestellt ist. Außerdem werden nur die in der Linien-Maske als Vordergrund-Pixel markierten Punkte mittels &Die Indirections der Firmware-Packs: BDE8: IND SCR WRITEBDE8 IND SCR WRITE gesetzt. Hintergrund-Pixel werden entsprechend dem Grafik-Hintergrundmodus entweder ignoriert (transparent) oder ohne Berücksichtigung der alten Die Bildausgabe: Tinten und FarbenTinte an dieser Position geplottet (opaque). BDE5: IND SCR READLese einen Punkt vom Bildschirm. Eingaben: HL = Byte-Adresse im Bildschirmspeicher C = Die Kodierung der Tintennummern in den Bildschirm-Bytes: PixelmaskenPixelmaske Operationen: BD5B / 349A / 349A: FLO SUBA = Tintennummer des Pixels Ausgaben: BC,DE,HL,IX,IY Unverändert: BDE8: IND SCR WRITESetze einen oder mehrere Punkte im Bildschirm unter Berücksichtigung des Grafikmodus. Eingaben: HL = Byte-Adresse im Bildschirmspeicher C = Maske für das oder die Pixel LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL Das oder die durch HL adressierten und C maskierten Pixel werden entsprechend dem aktuellen Grafik-Vordergrundmodus mit dem alten Bildschirm-Inhalt verknuepft und in den Bildschirm geplottet. BDEB: IND SCR MODE CLEARLösche den Bildschirm mit Die Bildausgabe: Tinten und FarbenTinte 0. Eingaben: keine Ausgaben: keine Unverändert: IX,IY Diese Überblick: Die Indirections der Firmware-Packs BDEE: IND KM TEST BREAKFühre den Erklärung der Anschlussbelegung: TestTest auf Break und Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset Eingaben: C = Status von [SHIFT] und [CTRL] Ausgaben: keine Unverändert: BC,DE,IX,IY Diese Routine wird vom Interrupt-Pfad aus aufgerufen (&Die Indirections der Firmware-Packs: BDF4: IND KM SCAN KEYSBDF4 IND KM SCAN KEYS Garbage Collection: ... beim CPC 664 und 6128beim CPC 664 und 6128). Deshalb müssen Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts verboten sein und bleiben es auch. Der Shift- und Ctrl-Status ist in C folgendermaßen codiert: Datenbreite: Bits Der Zustand der ESC-Taste wird noch einmal überprüft. Sind nur [ESC], [CTRL] und [SHIFT] gedrückt, wird ein ROM-Konfiguration: RestartsRestart 0 durchgeführt (Kaltstart). Ist die ESC-Taste gedrückt, die weiteren Bedingungen aber nicht erfüllt und der Break-Mechanismus aktiv, so werden die Aktionen wie bei &KEY MANAGER: BB4B: KM BREAK EVENTBB4B KM BREAK EVENT beschrieben durchgeführt. BDF1: IND MC WAIT PRINTERVersuche, ein Zeichen zum Drucker zu schicken. Eingaben: Operationen: BD5B / 349A / 349A: FLO SUBA = Code des zu druckenden Zeichens
Ausgaben: CY = 1 -> Zeichen wurde zum Drucker gesandt
CY = 0 -> Es dauerte zu lange. Nicht gedruckt.
Unverändert: DE,HL,IX,IY
Diese Überblick: Die Indirections der Firmware-Packs Garbage Collection: ... beim CPC 464Beim CPC 464 reicht der ungenutzte Platz bis &BDFF genau aus, um eine 2-Pfennig-Lösung für das 8. Drucker-Bit softwaremäßig zu unterstützen. Garbage Collection: ... beim CPC 664 und 6128Beim CPC 664 und 6128 ist jetzt leider die folgende Überblick: Die Indirections der Firmware-Packs BDF4: IND KM SCAN KEYSNur CPC 664 und 6128. Frage Einleitung: Die Tastatur Eingaben: keine Ausgaben: keine Unverändert: IX,IY Bei Aufruf dieser Überblick: Die Indirections der Firmware-Packs Die Tastatur-Matrix wird überprüft und neu gedrückte Tasten in den Tastatenpuffer eingetragen. Ist [ESC] gedrückt, wird &Die Indirections der Firmware-Packs: BDEE: IND KM TEST BREAKBDEE IND Erklärung der Anschlussbelegung: TestTEST BREAK aufgerufen. Diese Routine kümmert sich auch um die Entprellung der Tastatur (indem losgelassene Tasten erst nach zwei Durchläufen als nicht mehr gedrückt markiert werden) und um das Auto-Repeat der einzelnen Tasten. |