Bankumschaltung beim xe130


Bankumschaltung beim xe130

von robbifan » So 21. Sep 2008, 10:06
Warum wird das Basic nicht überschrieben wenn dieser Bereich für Grafik zb genutzt wird nach dem Umschalten : 16384 bis 32767 ?

In diesem Bereich liegt doch das Basic, oder?
mfg


Auf die zusätzlichen 65.536 Byte des RAM können Sie im ATARI BASIC durch, "Bank Switching" (Speicherbereich-Umschaltung) zugreifen. Der 6502 Prozessor und der ANTIC Videoprozesssor können lediglich 65.536 Speicherzellen adressieren (für eine Lese- oder Schreiboperation auswählen). Bank-Switching schaltet einen 16KByte großen Speicherbereich ab und ersetzt diesen durch einen Speicherbereich (Bank) des zusätzlichen RAM. So wird der adressierbare Speicherbereich vergrößert. Im 130 XE reicht der umschaltbare Speicherbereich von Adresse 16384 bis 32767 dezimal ($4000 bis $7FFF hexadezimal). Durch Ändern des Speicherauswahlbytes (Bank Select Schalter) wird festgelegt, welche Bank in dem 16K Bereich erscheint.

von dl7ukk » So 21. Sep 2008, 10:21
Hi,




weil ein Computer nur das macht, was man eingibt.

Überschreiben --- dann überschreibt er.

Umschalten --- dann wird er umschalten.


Wo bleibt "das Licht", wenn man den Schalter ausknipst??


Gruß

von Dietrich » So 21. Sep 2008, 10:29
Da scheint ein Teil des Threads zu fehlen!
Die Speicherbelegung mit Turbo-Basic sieht so aus:

$0000-$047F: Betriebssystem-Variablen
$0480-$05FF: Turbo-Basic-Zwischenspeicher (nicht benutzen!)
$0600-$06FF: frei
$0700-$207F: DOS
$2080-$2400 (ungefähr): Turbo-Basic
$2400- xxxx: Turbo-Basic-Programm+Variablen
xxxx- yyyy: frei
yyyy-$BFFF: Graphics x-Bildschirm
$C000-$FFFF: OS, Turbo-Basic und I/O-Chips

Das Turbo-Basic-Programm und der freie Bereich zusammen sind über 38KB groß.
Wie hoch yyyy ist, hängt von der Grafikstufe ab (Graphics 0 braucht z.B. 1KB, Graphics 8 braucht 8KB).

Gruß Dietrich (der mit BASIC noch nie Speicherprobleme hatte)

von robbifan » So 21. Sep 2008, 15:13
Das Turbobasic ist doch 18kb gross auf Disk und kommt trotzdem mit dem Bereich &4000-&7fff nicht in konflikt, wo der Bereich für das Umschalten liegt, oder hat das mit dem RAM des Basic nichts zu tun?.

mfg
peter

von Dietrich » So 21. Sep 2008, 21:49
Das Turbo-Basic liegt größtenteils unter dem OS-ROM. Im normalen RAM liegt nur ein kleiner Teil ($2080-$2400 oder war es $3400?). Sofern also Dein Basic-Programm inkl. Variablen, nicht zu lang ist (d.h. über $4000 hinaus geht), gibt es keine Probleme. Wenn es zu lang ist, geht das Umschalten allerdings nicht - es kann zu Abstürzen kommen.

Fürs Bankumschalten ist Assembler oder eine andere Sprache (ACTION) besser geeignet, da man den Code dorthinlegen kann, wo man will (zumindest unter Assembler ist das möglich).

Oder Du benutzt Atari-Basic. Dort beginnt das Basic-Programm direkt über dem DOS (unter $2000). Damit kann das Programm bis zu 8 KB groß werden (inkl. Variablenspeicher), ohne in den Bereich ab $4000 hineinzuragen.

Gruß Dietrich