This page (revision-14) was last changed on 03-Feb-2023 15:21 by Roland B. Wassenberg 

This page was created on 28-Jul-2017 22:15 by Roland B. Wassenberg

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
14 03-Feb-2023 15:21 8 KB Roland B. Wassenberg to previous
13 02-Aug-2017 12:12 8 KB Peter Dell to previous | to last
12 01-Aug-2017 13:23 8 KB Roland B. Wassenberg to previous | to last
11 01-Aug-2017 13:12 8 KB Roland B. Wassenberg to previous | to last
10 31-Jul-2017 10:38 8 KB Roland B. Wassenberg to previous | to last
9 31-Jul-2017 10:26 8 KB Roland B. Wassenberg to previous | to last
8 31-Jul-2017 09:43 8 KB Roland B. Wassenberg to previous | to last
7 29-Jul-2017 00:43 8 KB Roland B. Wassenberg to previous | to last
6 29-Jul-2017 00:43 8 KB Roland B. Wassenberg to previous | to last
5 29-Jul-2017 00:20 8 KB Roland B. Wassenberg to previous | to last
4 28-Jul-2017 23:22 8 KB Roland B. Wassenberg to previous | to last
3 28-Jul-2017 22:41 8 KB Roland B. Wassenberg to previous | to last
2 28-Jul-2017 22:28 1 KB Roland B. Wassenberg to previous | to last
1 28-Jul-2017 22:15 19 bytes Roland B. Wassenberg to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 11 changed one line
Technisch unterscheiden sich die Module in den Adressen, die für die Bankumschaltung verwendet werden. Für die, die nichts über Bankumschaltung wissen: der Atari hat ja einen begrenzten Speicherraum von 64 KiB. Um dem Anwender davon möglichst viel zu lassen, haben sich die Hersteller einiger Module etwas einfallen lassen. Da der Atari ja ohnehin nur auf eine Adresse gleichzeitig zugreifen kann, ist es nicht erforderlich, alles gleichzeitig für den Zugriff bereit zu halten. Also hat man so ein 16K-Modul genommen und es in 4 Teile (Bänke) unterteilt, wobei nur eine Hauptbank und jeweils einer der anderen 3 Bänke gleichzeitig im Speicherzugriff bereit gehalten werden. Die "Neben-"Bänke werden bei Bedarf umgeschaltet. Das nennt sich dann Bankumschaltung oder auf Neudeutsch: bank switching. Als Adresse für die Umschaltung der Bank wird die hexadezimale Adresse $D50x verwendet.\\
Technisch unterscheiden sich die Module in den Adressen, die für die Bankumschaltung verwendet werden. Für die, die nichts über Bankumschaltung wissen: der Atari hat ja einen begrenzten Speicherraum von 64 KiB. Um dem Anwender davon möglichst viel zu lassen, haben sich die Hersteller einiger Module etwas einfallen lassen. Da der Atari ja ohnehin nur auf eine Adresse gleichzeitig zugreifen kann, ist es nicht erforderlich, alles gleichzeitig für den Zugriff bereit zu halten. Also hat man so ein 16K-Modul genommen und es in 4 Teile (Bänke) unterteilt, wobei nur eine Hauptbank und jeweils einer der anderen 3 Bänke gleichzeitig im Speicherzugriff bereit gehalten werden. Die "Neben-"Bänke werden bei Bedarf umgeschaltet. Das nennt sich dann Bankumschaltung oder auf Neudeutsch: bank switching. Als Adresse für die Umschaltung der Bank wird die hexadezimale Adresse $D500 verwendet.\\
At line 18 changed one line
Die Masterbank muß immer an der Stelle $B000 - $BFFF liegen, weil das Atari Betriebssystem die Adressen $BFFA - $BFFF verwendet, um zu entscheiden, wie mit dem Modul verfahren werden muß. Die genaue Dokumentation hierzu findet sich zum Beispiel im Atari Profibuch.\\
Die Hauptbank (ab jetzt Masterbank genannt, weil in der Modulbezeichnung das "M" für sie steht) muß immer an der Stelle $B000 - $BFFF liegen, weil das Atari Betriebssystem die Adressen $BFFA - $BFFF verwendet, um zu entscheiden, wie mit dem Modul verfahren werden muß. Die genaue Dokumentation hierzu findet sich zum Beispiel im Atari Profibuch.\\
At line 20 changed 4 lines
$BFFE: (WORD)\\
$BFFD: (BYTE)\\
$BFFC: (BYTE)\\
$BFFA: (WORD)\\
$BFFE: CARTAD Initialisierungsadresse des Moduls\\
$BFFD: CARTFG (Kontrollbyte für verschiedene Optionen)\\
$BFFC: CART Signalisiert das Vorhandensein eines Moduls\\
$BFFA: CARTCS Startadresse des Moduls\\
At line 81 changed one line
Richtig schwierig könnte es werden, wenn indizierte Adressierung verwendet wird, so etwas wie STA $D500,X. Da muß man in die Anpassung deutlich mehr Energie reinstecken. Glücklicherweise hatte ich bislang einen solchen Fall nicht.\\
Richtig schwierig könnte es werden, wenn indizierte Adressierung verwendet wird, so etwas wie STA $D500,X. Da muß man in die Anpassung deutlich mehr Energie reinstecken. Glücklicherweise hatte ich bislang einen solchen Fall nicht, aber ich hab ja auch erst ein paar Module angepaßt.\\
At line 99 changed 3 lines
STA $D500,0 aktiviert Bank B in $A000-$AFFF\\
STA $D500,9 aktiviert Bank B in $A000-$AFFF\\
STA $D500,1 aktiviert Bank B in $A000-$AFFF\\
LDA #$0__0__\\
STA $D500 ; aktiviert Bank B in $A000-$AFFF\\
At line 102 added 6 lines
LDA #$0__9__\\
STA $D500 ; aktiviert Bank C in $A000-$AFFF\\
\\
LDA #$0__1__\\
STA $D500 ; aktiviert Bank D in $A000-$AFFF\\
\\
At line 105 changed one line
Ggf. steht am Ende jeder Bank auch noch einmal die Banknummer als Kontrolle, aber das findet man am bestem im herausgespeicherten Bereich direkt.\\
Ggf. steht am Ende jeder Bank auch noch einmal die Banknummer als Kontrolle, aber das findet man am bestem im herausgespeicherten Bereich direkt. Das sieht man gut auf dem ersten Screenshot oben.\\