???

Meinungen, Programme und Hardware

Programmprojekte

Autor: Sven Friedrichs



Geräteadresse-SWAP für Commodore-Laufwerke

CMD-Laufwerke sind von Haus aus mit einer sogenannten "SWAP-Taste" ausgerüstet. Sie sorgt für ein problemloses Umschalten auf die Geräteadresse Acht. Da Commodore-Laufwerke einen solchen Komfort nicht besitzen, muß man sich eines Tricks bedienen.

Einen MS-DOS Computer mit lediglich einem Diskettenlaufwerk auszurüsten, wäre der schnellste Weg, Neueinsteiger zu vergraulen. Anders beim C64, denn hier konnte man jahrelang mit einer einzigen C1541 auskommen. Dieser vermeintliche Vorteil wirkt sich jedoch langsam als Nachteil aus, denn die meisten Programme sind für die Standardgeräteadresse Acht geschrieben worden. Das gilt insbesondere für Nachladeprogramme.

So kann es passieren, daß ein mehrteiliges Programm zwar auf die neu erworbene C1581 kopiert werden kann, jedoch erwartet das Startprogramm die zugehörenden Teile von der Geräteadresse Acht, die unglücklicherweise schon der C1541 zugesprochen wurde.

Bislang gab es nur drei Möglichkeiten, dieser Lage herr zu werden. Man konnte beispielsweise die C1541 ausschalten und der C1581 per Dipschalter die verlangte Geräteadresse vergeben. Das wurde einem mit der Zeit jedoch sehr lästig, zumal die Dipschalter nicht gerade die bestplaziertesten sind. Es gab aber auch noch die Softwareumschaltung, die zwar einfacher zu bewerkstelligen war, bei oft genutzten Programmen schon bald zu einer unliebsamen Prozedur wurde.

Schließlich konnte man das Problem noch dadurch lösen, daß man alle im Programm verwendeten Angaben zur Geräteadresse veränderte. Während das bei BASIC noch recht einfach geht, ist es in Assembler nur schwer zu realisieren. Aus platzsparenden Gründen haben die Programmierer oftmals den Befehl TYA bei der Festlegung der Geräteadresse benutzt. Mit der Auswirkung, daß die vormals eingesparten Bytes - wenn überhaupt - durch eine "Rucksack-Routine" doppelt und dreifach wieder aufgebraucht werden. Einen solchen Aufwand sollte man daher nur für wichtige und oft genutzte Programme betreiben.

Für einfache und nicht kopiergeschützte Programme, die während des Betriebs nicht die Auswahl eines neuen Laufwerks erlauben, gibt es nun einen neuen Weg, um das gewünschte Ziel zu erreichen. Es handelt sich hierbei um eine Softwareumschaltung in Assembler, die den entscheidenen Vorteil hat, linkfähig zu sein. Wird diese Routine nun mit dem Startprogramm einer mehrteiligen Software durch einen geeigneten Linkpacker verbunden, so ist es jetzt egal, von welcher Laufwerksadresse geladen wird, denn das Programm erkennt diese automatisch und tauscht sie gegen Acht um.

Diese Methode weist einen hohen Grad an Kompatibilität aus, da der Speicher nach der Aktivierung wieder frei ist. Auch fällt nun die lästige Eingabe jedesmal vor Programmstart weg, denn man braucht nun lediglich "RUN" einzugeben, der Rest geht von selbst. Das Startprogramm wird nur ein bis zwei Blocks länger, dafür werden Highscores und sonstige Daten prommt vom neuen Laufwerk geladen.


Inhalt

   
Zurueck