This page (revision-2) was last changed on 03-Feb-2023 15:21 by Gromit 

This page was created on 16-Sep-2013 12:30 by Gromit

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
2 03-Feb-2023 15:21 8 KB Gromit to previous
1 16-Sep-2013 12:30 8 KB Gromit to last Bildschirmspeicher löschen

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 23 added one line
At line 51 changed one line
Damit der Programmierer auch weiß, wo der Bildschirmspeicher liegt, legt das Betriebssystem die Anfangsadresse in bestimmten Speicherstellen ab (SAVMSC). Diese Speicherstellen liegen bei Adresse $58 und $59 (Dezimal 88 und 89). In der Speicherstelle $58 liegt das LOW-Byte der Anfangsadresse und in $59 das HIGH-Byte. Es werden ja zwei Werte benötigt, um die Adresse festlegen zu können.
Damit der Programmierer auch weiß, wo der Bildschirmspeicher liegt, legt das Betriebssystem die Anfangsadresse in bestimmten Speicherstellen ab (SAVMSC). Diese Speicherstellen liegen bei Adresse $58 und $59 (Dezimal 88 und 89). In der Speicherstelle $58 liegt das LOW-Byte der Anfangsadresse und in $59 das HIGHByte. Es werden ja zwei Werte benötigt, um die Adresse festlegen zu können.
At line 76 changed one line
Dann wird der Inhalt des Y-Registers um 1 herauf gezählt, und da das Ergebnis ungleich 0 ist, wird zu der Stelle verzweigt, an der der Label "LOOP" steht. Dann wird eine 0 in die Speicherstelle $BC41 geschrieben, $BC40 + Inhalt des Y-Registers (1) - ergibt $BC41. Das wiederholt sich jetzt solange, bis das Ergebnis des INY-Befehls (Increment Y-Registers) eine Null ist - 255+1.
Dann wird der Inhalt des Y-Registers um 1 herauf gezählt, und da das Ergebnis ungleich 0 ist, wird zu der Stelle verzweigt, an der der Label "LOOP" steht. Dann wird eine 0 in die Speicherstelle $BC41 geschrieben, $BC40 + Inhalt des Y-Registers (1) - ergibt $BC41. Das wiederholt sich jetzt solange, bis das Ergebnis des INYBefehls (Increment Y-Registers) eine Null ist - 255+1.
At line 80 changed one line
Da das X-Register zum Anfang ja mit 4 geladen wurde, wird die äußere Schleife auch 4 mal durchlaufen und dabei die Speicherstelle $E1 jedes Mal um eins herauf gezählt.
Da das X-Register zum Anfang ja mit 4 geladen wurde, wird die äußere Schleife auch 4 mal durchlaufen und dabei die Speicherstelle $E1 jedes mal um eins herauf gezählt.
At line 98 changed one line
Hier kopiere ich jetzt nur das HIGH-Byte der Bildschirmanfangsadresse in unseren Indirekt-Vektor und setze das LOW-Byte auf 0. Damit hätten wir z.B. die Adresse $BC00. Nun lade ich das Y-Register mit der LOW-Adresse des Bildschirmanfangs, das wäre $40. Zusammen ergibt das $BC40. Ab jetzt sieht unser Programm wieder wie vorher aus. Jetzt wird also erst ab Adresse $BC40 gelöscht und bereits bei Adresse $BCFF+1 wird auch die HIGH-Adresse erhöht und der Schleifenzähler (X-Register) um eins herabgezählt.
Hier kopiere ich jetzt nur das HIGH-Byte der Bildschirmanfangsadresse in unseren Indirekt-Vektor und setze das LOW-Byte auf 0. Damit hätten wir z.B. die Adresse $BC00. Nun lade ich das Y-Register mit der LOW-Adresse des Bildschirmanfangs, das wäre $40. Zusammen ergibt das $BC40. Ab jetzt sieht unser Programm wieder wie vorher aus. Jetzt wird also erst ab Adresse $BC40 gelöscht und bereits bei Adresse $BCFF+1 wird auch die HIGH-Adresse erhöht und der Schleifenzähler (XRegister) um eins herabgezählt.
At line 109 changed one line
Der Artikel entstammt der Kursreihe "6502 Programmieren" des Compy Shop Diskettenmagazins. Die Kursreihe besteht aus 14 Kursen, die im Laufe des Jahres 2011 in unregelmäßigen Abständen einzeln veröffentlicht werden, bzw. anschließend als Zusammenzug als ABBUC-Buch "6502 Programmieren" erscheinen.\\
Der Artikel entstammt der Kursreihe „6502 Programmieren“ des Compy Shop Diskettenmagazins. Die Kursreihe besteht aus 14 Kursen, die im Laufe des Jahres 2011 in unregelmäßigen Abständen einzeln veröffentlicht werden, bzw. anschließend als Zusammenzug als ABBUC-Buch „6502 Programmieren“ erscheinen.\\