APPLICATIONSDIVERS ★ ROM-SIEB FÜR ZUSATZ-ROMS (CPC MAGAZIN) ★

ROM-Sieb für Zusatz-ROMs (CPC Magazin)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Mit dieser Routine werden die vorhandenen ROMs ausgesiebt und bei der Initialisierung nur die gewünschten berücksichtigt.

Wer die vortex-RAM-Erweiterung in seinen CPC einbaut, muß feststellen, daß einzelne Programme nun nicht mehr laufen. Für den Graphik Master wird von vortex eine Kurzanleitung zur Anpassung angegeben. Für andere Programme gibt es keine derartige Hilfe, sie sind zunächst wertlos geworden. Dabei dürfte die RAM-Erweiterung im Normalbetrieb überhaupt nicht stören, denn die Zusatzsoftware bleibt vollständig im ROM, bis der Startbefehl BOS gegeben wird. Aber auch im Ruhezustand muß ein Er-weiterungs-ROM vom Betriebssystem verwaltet werden. Dazu werden beim Einschalten (und bei jedem Reset) 4 Byte angelegt, die unter anderem die ROM-Nummer enthalten. Der Wert von HIMEM verschiebt sich entsprechend nach unten, so daß Programme, die HIMEM abfragen und die Abweichung von 4 Byte nicht tolerieren, schließlich ab-stürzen.

Schuld haben in diesem Falle die Softwarehersteller, die die Möglichkeit von Hardwareerweiterungen nicht genügend berücksichtigt haben. Vergleichbare Probleme gab es bereits mit der Floppy. Nur daß man die Floppy ausgeschaltet lassen kann. Wer aber will die RAM-Erweiterung jedesmal wieder aus- und einbauen? Wir stellen nun eine Software-Lösung für dieses Problem vor. Dabei geht es nicht nur um die vortex-RAM-Erweiterung, sondern ebenso um jedes andere Peripheriegerät, dessen ROM den Normalbetrieb stört. Mit der angegebenen Routine werden die vorhandenen ROMs ausgesiebt (daher der Name) und nur diejenigen bei der Initialisierung berücksichtigt, die erwünscht sind.

VORTEX SPEZIAL!

Das Basicladeprogramm erzeugt ein Maschinenprogramm, mit dem ein Reset erzeugt werden kann (wie sonst mit CTRL, SHIFT, ESC). ROM-SIEB.BIN muß dazu an eine beliebige freie Stelle des RAM oberhalb &4000 geladen werden. Der Befehl CALL ladeadresse, r1, r2, r3, r4.....

setzt dann den Rechner vollständig zurück, wobei jedoch nur ROMs, deren Nummern mit r1, r2, usw. angegeben sind, initialisiert werden und anschließend verfügbar sind. Mögliche ROM-Nummern liegen von 1 bis 7, wobei bis jetzt erst 7 (Floppy), 6 (vortex-RAM-Erweiterung) und 5 (MAXAM -Assembler) benutz werden. Falsche EingabèWfeue berücksichtigt das Programm nicht. Wird keine ROM-Nummer angegeben, bleiben alle ROMs abgeschaltet. Eine Eingabereihenfolge 5,6,7 bewirkt die normale Initialisierungsreihenfolge 7, 6, 5. Jede andere Reihenfolge ist möglich, dabei ist aber zu bedenken, daß die von den ROMs angelegten RAM-Bereiche dadurch an anderen Adressen als sonst liegen. Wird eine Nummer wiederholt (maximal 32-fach), so wird auch das ROM entsprechend oft initialisiert und damit der RAM-Bereich für dieses ROM mehrfach angelegt. Auf eine mögliche Anwendung dieser Nebeneigenschaft des ROM-SIEB-Programmes wurde in dem Beitrag "SESAM und die Indexregister" (CPC Magazin 2/86) hingewiesen. Für Experimente besteht demnach jede Gelegenheit.

Der Hauptzweck der Routine wird mit dem Befehl CALL ladeadresse, 7 erfüllt. Damit steht die Floppy weiter zur Verfügung, alle anderen ROMs bleiben "kalt". Der Rechner ist in genau dem Zustand, der ohne weitere Zusätze ursprünglich bestanden hat, so daß problematische Programme wieder lauffähig sind. Bei der Entwicklung der Routine stellte sich nämlich heraus, daß das Betriebssystem des CPC 464 (und der anderen beiden) eine harte Nuß zum Knacken aufgegeben hat. Um alle Fehlerquellen zu vermeiden, war ein völliges Zurücksetzen des Betriebssystems notwendig, ein "Warmstart" hätte nicht ausgereicht. Dazu eignet sich der Firmwareeinsprung START PROGRAM (&BD16).

Da in dem Reset-Ablauf erst später die vorhandenen Er-weiterungs-ROMs zugeschaltet werden, mußten die Eingabewerte für die gewünschten ROM-Nummern an einem sicheren Platz zwischengespeichert werden. Dazu wurde der Speicherbereich unmittelbar hinter ROM-SIEB.BIN gewählt. Zum Glück wird das RAM erst zum Schluß mit der Basic-Initialisierung gelöscht, so daß die Routine überhaupt arbeiten kann. ROM-SIEB ist verschiebbar. Das wurde mit einem Maschinensprachetrick erreicht (über den User-Restart 6), der hier wie die übrigen Details des Maschinenprogramms nicht weiter erklärt werden soll. Die Routine endet mit einem Sprung in die Initialisierung des Basic-ROM an die Adresse &C00C. Es erscheint die übliche Ready-Meldung und gegebenenfalls die Meldungen der mitinitialisierten ROMs. Da das RAM gelöscht wird, ist ROM-SIEB nun nicht mehr vorhanden und muß für eine weitere Anwendung neu geladen werden.

Gerhard Knapienski , CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1985 1986
★ AUTHOR: Gerhard Knapienski
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» ROM-Sieb    (CPC  Magazin)    LISTING    GERMANDATE: 2020-05-28
DL: 222
TYPE: PDF
SiZE: 35Ko
NOTE: 1 page/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » CPC-Fehlerroutine (CPC Magazin)
» Applications » RSX Varlist (Computer Technik)
» Applications » Screen Commands (Compute Mit)
» Applications » Breakpoint (Amstrad Action)
» Applications » Amstrad Forth (Computing with the Amstrad)
» Applications » Curso Autodidactico de Basic I
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 501 millisecondes et consultée 991 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.