001
28.01.2011, 15:25 Uhr
susowa
|
Zitat: | schnulli schrieb Kann ich über 200H bis 7FFFH tatsächlich frei verfügen oder gibt es etwas zu beachten?
|
Beim /2,3 geht es ohne Speichererweiterung nur bis 3FFFH, mit 16k Modul auf 4000H bis 7FFFH, mit 64 kB Modul bis BFFFH. Ab /4 aufwärts geht es immer bis BFFFH im Grundzustand nach dem Einschalten.
Wenn BASIC aktiv ist, stehen diese Bereiche auch immer zur Verfügung, da der IRM (8000H bis BFFFH) bei Notwendigkeit automatisch aktiviert und nach Zugriff deaktiviert wird, er ist also aus Sicht von BASIC-Programmen (und auch von dort aufgerufenen MC-Programmen) immer aus.
Ist CAOS aktiv (gilt demzufolge auch für MC-Programme, welche per CAOS-Befehl gestartet werden), dann ist der IRM im Gegensatz zu BASIC in der Regel an (steuerbar per Epilogbyte). Man muss also für RAM-Zugriffe auf IRM-Adressen diesen selbst aus- und danach wieder einschalten und sollte CAOS-UP's während des Zugriffes nicht benutzen, die überprüfen in der Regel nicht, ob der IRM aktiv ist, dann landen Zugriffe auf IRM-Adressen im RAM.
Der RAM ist komplett frei ohne Einschränkungen, wenn man natürlich eigene Treiber für umgebogene CAOS-Funktionen mitlaufen lassen will, dürfen sich Programm und Treiber nicht "berühren". Treiber o.ä. nutzen meist BA00H bis BFFFH der ersten IRM-Ebene. Mit Vorsicht kann man auch noch 0000H bis 0100H dafür nehmen - wenn man aber beispielsweise ein D004 per JUMP FC startet, kopiert das EPROM-Starteprogramm FLOAD ab Adresse 0 aufwärts ...
MfG Ralf |