★ APPLICATIONS ★ DIVERS ★ Kreative Gestaltung|CPC Amstrad International) ★ |
Bankgeschäfte (CPC Amstrad International) | Applications Divers |
Ein “Ready to use“-Tip Der CPC 6128 heißt CPC 6128, weil er außer der Sechs im Namen auch noch eine zweite 64-KByte RAM-Bank unter seinem Gehäuse besitzt, was seinen Speicherplatz auf insgesamt 128 KByte erhöht. Leider sind diesen zweiten 64K nur mit Mühe oder dem auf der Systemdiskette befindlichen 'BANKMANAGER' beizukommen. Zumindest Assembler-Programmierer haben jetzt aber mit unserem Assembler-Programm die Möglichkeit, sich diese RAM-Bank für eigene Projekte bereitzuhalten. Das Quellcode-Modul macht im Grunde genau das, was das RSX-Bankmanager Programm für das BASIC Ihres CPC 6128 macht: Es realisiert die Benutzung des Erweiterungs-RAMs. das nur unter den Programmen angesprochen werden kann, die zur Verwaltung der zweiten RAM-Bank eingesetzt werden, die sogenannten 'Manager-Programmen Diese Programme übernehmen dabei eine Umschaltfunktion zwischen den beiden RAM- Bereichen. Das “normale“ System-RAM (die erste Bank) kann dabei ganz normal weiter benutzt werden. Im folgenden werden die einzelnen Einsprünge vorgestellt: bpeek Diese Routine lädt das Register E mit dem Bytewert aus der Speicherzelle (HL) der zweiten Bank. bpoke : macht das Umgekehrte von “bpeek“: Es wird der Bytewert aus dem Register E in die Speicherzelle (HL) der zweiten RAM-Bank geschrieben. bdeek : lädt das Register DE mit dem Integerwert aus den Speicherzellen (HL) und (HL +1) der zweiten RAM-Bank. bdoke : speichert den Integerwert, den das Register DE enthält, in den Speicherzellen (HL) und (HL + 1) der zweiten RAM-Bank. bcopy : speichert den Speicherbereich, der durch die Register DE (Anfang) und BC (Ende) spezifiziert ist, aus der ersten RAM-Bank in das Erweiterungs-RAM, und zwar ab der Adresse, auf die HL zeigt. rcopy : lädt den Speicherbereich von DE (Anfang) bis BC (Ende) aus der zweiten RAM-Bank in die erste RAM- Bank ab der Adresse HL. Wenn Sie also eines der obigen Unterprogramme benutzen wollen, müssen Sie zuerst die notwendigen Register laden und dann per “CALL“ die Routine aufrufen. Ein Beispiel: Wollen Sie den Bytewert aus der Speicherzelle (#1CDE) des Erweiterungs-RAM's im Akkumulator haben, so müssen Sie wie folgt vorgehen: LD HL, #1CDE ; Adresse in HL |
|
|