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
★ AUTHOR: Gerhard Knapienski

★ AMSTRAD CPC ★ DOWNLOAD ★

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

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Graphic - Fast Screen Filler (CPC Amstrad International)
» Applications » DAMS (Notice)
» Applications » Micropower - Programmer's Toolbox (Your Computer)
» Applications » Coding - Hisoft - Modula - 2
» Applications » Autoformation à l'Assembleur
» Applications » CPC-Expert

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop
Page créée en 595 millisecondes et consultée 22 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.