RamProcess Version 2.0 Benutzerhandbuch Seite: SEITE

RamProcess

Version 2.0

Restlose Ausnutzung

der Speichererweiterungen

1750 und 1764,

GeoRAM

und Kompatible

Benutzerhandbuch

Entworfen und programmiert von:

Stefan Milcke

Erweiterungen von:

Gerd Boerrigter

Rabenhauptstraße 20

D-49828 Neuenhaus

(c) 1991 - 1993 by Stefan Milcke

(c) 1994 - 1995 by Gerd Boerrigter

Alle Rechte vorbehalten.

Inhalt

Kapitel Thema Seite

Vorwort 3

Rechtliche Vereinbarungen 3

1. Systemvoraussetzungen von RamProcess 4

2. Die Bedienung von RamProcess 4

2.1 Installation von RamProcess 4

2.2 Verwendung von RamProcess-Anwendungen 4

2.3 Löschen von RamProcess-Anwendungen und RamProcess selbst 5

3. Andere Programme, die die Ramerweiterung benutzen 5

3.1 Sperren von Bereichen 5

4. Zur Funktionsweise von RamProcess 6

4.1 Memory-Swapping. Was steht dahinter ? 6

4.2 Wofür wird RamProcess gebraucht ? 6

5. Hinweis für Programmierer 7

Vorwort

Anstelle von Lob und Tadel auf GEOS möchte ich hier einmal die Gründe nennen, die mich dazu bewogen haben, ein Programm wie RamProcess zu schreiben.

Die grafische Benutzeroberfläche GEOS läßt den C64/C128-Fan beinahe vergessen, mit was für einem Computer er es eigentlich zu tun hat. Auf einem 8-Bit Prozessor programmiert bietet Sie doch schon recht flotte und zueinander kompatible Programme, die denen aus dem PC-Bereich an Komfort und Bedienerfreundlichkeit um fast nichts nachstehen. Mit den Speichererweiterungen von Commodore ist die Leistungsfähigkeit von GEOS nochmals gestiegen. Doch ist dieser Speicher in seinen Möglichkeiten und Kapazitäten noch lange nicht ausgereitzt. Einige Programmierer merkten bald, daß man im Speicher der REU sehr einfach eigene, sogenannte residente Programme, unterbringen kann. Diese Programme ließen sich durch bestimmte Aktionen von jeder Applikation aus aufrufen. Natürlich können solche Programme nicht ohne Veränderung des eigentlichen Kernals von GEOS realisiert werden. Es kam, wie es kommen mußte. Jeder Programmierer suchte sich geeignete Stellen im Kernal, um solche Programme zu installieren. Doch sehr bald kamen Kompatibilitätsschwierigkeiten auf. Einige Programme benötigten die gleichen Bereiche im Kernal oder auch in der REU.

Ich habe mir Gedanken darüber gemacht, wie man das ändern könnte. Meine Anforderungen an ein solches System waren folgende:

- Es muß eine Speicherverwaltung programmiert werden, die auch die 2 MB REUs verkraften kann.

- Programmierern muß eine Sprungtabelle zur Verfügung stehen, über die alle notwendigen Routinen erreichbar sind.

- Die Speicherverwaltung soll so komfortabel und einfach wie möglich sein, damit sich recht viele Programmierer darauf "einschießen".

- Programme und Daten sollen auf einfache Art und Weise in einer Speichererweiterung gesichert und wieder entfernt werden können.

- Das Starten von Programmen aus der REU soll auf drei verschiedene Arten erfolgen können:

1.) zeitabhängig

2.) auf Tastendruck oder Druck auf die Maustaste

3.) direkt per Aufruf von einer Applikation.

- Programme werden im "Tauschverfahren" (im Folgenden "Memory-Swapping" genannt) kurzfristig in das RAM des Computers eingeblendet und wieder entfernt.

- Das Ganze muß parallel zu jeder beliebigen Applikation oder Hilfsmittel geschehen können, nach dem Prinzip der Speicherresidenten Programme.

Das Alles und noch Einiges mehr ist mir mit dem Zusatz-Betriebssystem RamProcess gelungen. Ich möchte mit diesem Programm einen neuen Standard vorschlagen, von dem ich hoffe, daß er von möglichst vielen Programmierern angenommen und eingehalten wird.

Auch sei hier auf die nicht zu verachtende Gefahr durch sogenannte Computerviren hingewiesen. Bitte teilen Sie mir sofort mit, wenn Sie Kenntnis über einen eventuellen Virus besitzen.

Wer mehr über RamProcess und dessen Funktionsweise erfahren will, findet Hinweise dazu in Kapitel 5.

Stefan Milcke

Rechtliche Vereinbarungen

Die Autoren des Programms übernehmen keine Haftung für Schäden, die durch die Benutzung des Programms oder durch Änderung der Copyrightmeldung auftreten.

RamProcess ist Share-Ware. Das Programm darf beliebig oft kopiert werden, unter der Bedingung, daß das Programm unverändert bleibt und der Copyrightvermerk in der Einschaltmeldung unter keinen Umständen geändert wird. Eine Share-Ware Gebühr wird nicht erhoben. Wer die Mühen der Programmierer aber dennoch honorieren will, lasse sich nicht davon abhalten. :-)

1. Systemvoraussetzungen RamProcess

Ab Version 2.0 unterstützt RamProcess GEOS 64 und 128 in den Versionen 2.x. Es wird jede Ramerweiterung von RamProcess unterstützt, mit der GEOS zusammenarbeiten kann.

Es können maximal 2MB von RamProcess verwaltet werden. Wenn Sie eine größere Ramerweiterung besitzen, was z.B. mit RamLink oder RamDrive möglich ist, müssen Sie Ihre Ramerweiterung so einstellen, daß zur direkten Verwendung von GEOS nur bis zu 2MB zur Verfügung stehen.

Zusammen mit dem deutschen Kernal verwendet RamProcess auch deutsche Bildschirmmeldungen. Ansonsten werden englische Texte verwendet. Für Besitzer der BBG ist zu beachten, daß das Programm MountBBG den Wert für die Nation ($c010) von 1 für deutsch auf 0 für amerikanisch zurücksetzt. Deshalb verwendet RamProcess beim Betrieb mit der BBG die englichen Texte. Es gibt jedoch inzwischen bei der GUSS einen Patch, der MountBBG entsprechend korrigiert.

2. Die Bedienung von RamProcess

2.1 Installation

Um mit Programmen, die RamProcess benötigen (sog. RamProcess-Anwendungen), arbeiten zu können, muß es erst im Kernal verankert werden. Da es sich um ein selbstausführendes Programm handelt, ist es am besten, wenn Sie es auf die Systemdiskette kopieren. So ist sichergestellt, daß es nach jedem Booten aktiv ist. Achten Sie darauf, das sich KONFIGURIEREN vor RamProcess befindet und das alle RamProcess-Anwendungen sich dahinter befinden.

Sie können RamProcess zwar auch manuell vom DeskTop aus starten, aber die Verwendung als selbstausführendes Programm ist bequemer. Falls Sie jedoch RamProcess nur selten benötigen empfiehlt sich dennoch das manuelle Starten. Beachten Sie, daß RamProcess im Kernal verankert sein muß, um RamProcess-Anwendungen verwenden zu können.

Beim Start von RamProcess erscheint folgende Mitteilung oben auf dem Bildschirm:

Die Anzahl der freien Blöcke wird heruntergezählt. Sobald dahinter 'O.K.' angezeigt wird, ist RamProcess im Kernal verankert. Es wird nun verlassen und RamProcess-Anwendungen können genutzt werden.

2.2 Verwendung von RamProcess-Anwendungen

Um Programme zu nutzen, die RamProcess benötigen (die RamProcess-Anwendungen), muß RamProcess im Kernal verankert sein (siehe 2.0). Anschließend können die entsprechenden RamProcess-Anwendungen einfach vom DeskTop gestartet werden, als seien sie normale GEOS-Programme.

In der Regel wird sich die RamProcess-Anwendung in die Ramerweiterung verschieben und dafür sorgen, daß es durch einen Tastendruck während der Benutzung einer beliebigen GEOS-Anwendung gestartet werden kann. Oft erscheint daraufhin eine kurze Meldung auf dem Bildschirm, die die erfolgreiche Installation der RamProcess-Anwendung anzeigt und es wird zum DeskTop zurückgekehrt. Da diese Vorgehensweise aber nicht zwingend vorgeschrieben ist, sollten Sie die Anleitung zur RamProcess-Anwendung aufmerksam durchlesen, um zu erfahren, wie Sie mit der RamProcess-Anwendung umgehen müssen.

2.3 Das Löschen von RamProcess-Anwendungen und RamProcess selbst

Alle RamProcess-Anwendungen lassen sich wieder aus der Ramerweiterung entfernen. Dazu müssen Sie RamProcess wie eine normale Anwendung vom DeskTop starten. Es erscheint folgende Dialogbox, die die zur Zeit installierten RamProcess-Anwendungen in einer Standart Dateiauswahlbox anzeigt und zum Löschen anbietet (bei aktiviertem FileBrowser, wie im Bild, in dessen Dateiauswahlbox):

Markieren Sie einfach den gewünschten Namen und klicken danach auf das Feld "löschen". Der Name der RamProcess-Anwendung verschwindet aus der Liste und die Anwendung auch aus der Ramerweiterung.

Achtung: Wenn die RamProcess-Anwendung schlecht programmiert ist, kann es passieren, daß zusätzlich verwendete Bereiche in der Ramerweiterung nicht freigegeben werden. Das ist nicht weiter schlimm, aber der Bereich kann dann bis zur erneuten Installation von RamProcess nicht weiter verwendet werden, da RamProcess davon ausgeht, daß solche Bereich noch belegt sind.

Möchten Sie alle RamProcess-Anwendung auf einen Schlag löschen, so klicken Sie bitte auf das Feld "Alles". Die Liste wird gelöscht und alle RamProcess-Anwendung auch aus der Ramerweiterung entfernt.

Wenn Sie mit Ihren Änderungen fertig sind, klicken Sie auf das Feld "DESK TOP" und das Programm wird verlassen.

Sollte kein Prozeß mehr installiert sein, werden Sie gefragt, ob Sie auch RamProcess selbst aus dem Kernal entfernen wollen. Dies ist wichtig für das Programm KONFIGURIEREN, denn RamProcess läßt es aus speicherorganisatorischen Gründen nicht zu, daß Sie dieses Programm starten, wenn sich noch RamProcess-Anwendung in der Ramerweiterung befinden.

Sie haben jedoch auch die Möglichkeit beim Starten von KONFIGURIEREN RamProcess zu entfernen. Dazu erscheint eine Dialogbox. Es besteht die Möglichkeit RamProcess aus der Ramerweiterung zu löschen, indem Sie das 'Ja'-Icon anklicken. Beachten Sie, daß dabei natürlich auch alle RamProcess-Anwendungen aus der Ramerweiterung gelöscht werden, die evtl. wichtige Daten enthalten. Seien Sie also vorsichtig, wenn Sie diese Frage bejahen, da wichtige Daten verloren gehen können. Wenn Sie diese Frage verneinen ('Nein'-Icon), wird KONFIGURIEREN nicht ausgeführt und der DESKTOP erscheint.

3. Andere Programme, die die Ramerweiterung benutzen

Leider sind manche Programmierer trotz vieler Versuche nicht bereit, sich an die Konventionen von RamProcess zu halten. Doppelbelegungen und Systemabstürze sind dann der Fall.

Es ist deshalb die Möglichkeit vorgesehen, gewisse Bereiche der Ramerweiterung vor der Benutzung von RamProcess zu sperren und gebe so anderen Programmen die Chance, diese Bereiche zu benutzen.

3.1 Sperren von Bereichen

Leider ist die Parametrierung nicht ganz einfach. Dazu später noch ein paar Tips.

Im Info-Block von RamProcess können diese Bereiche angegeben werden. Dabei können diese Angaben mitten zwischen dem normalen Info-Text stehen. Eingeleitet wird die Bereichsangabe durch die Zeichenkombination "A:" (Für allocate = zuweisen). Danach folgen in sechs Hexziffern die Angaben. Die erste und zweite Ziffer geben die REU-Bank an, in der der Bereich liegt. Die dritte und vierte Ziffer geben den ersten Block in dieser Bank an und die fünfte und sechste Ziffer schließlich stellen die Länge des zu sperrenden Bereiches dar. Dazu ein paar Beispiele:

A:080A20 - Es sollen $20 (Hex) Blöcke ab Block $0A in der Bank acht gesperrt werden.

A:0F0000 - Es soll eine komplette Bank (64K) ab Bank $0f (Hex) ab Block $00 (Hex) gesperrt werde

Folgende Dinge sind dabei zu beachten:

1.) Alle Buchstaben sind als Großbuchstaben anzugeben, auch Hexziffern!

2.) Es dürfen mehrere Bereich angegeben werden. Sie müssen immer mit A: eingeleitet werden.

3.) Es erfolgt keine Prüfung der Bereich und der Hexziffern. Wenn Sie eine ungültige Hexziffer (z.B. "0G") angeben, kann es zu unvorhersehbaren Ergebnissen führen.

Nun noch ein paar Tips:

Gute Programme, die die REU benutzen, sollten immer angeben, welche Bereiche sie benutzen. Dann ist die richtige Einstellung relativ einfach. Schwieriger wird es, wenn keine Angabe zu bekommen ist. Dann muß man testen. Dabei sind folgende Angaben hilfreich:

Die Bank 0 der REU ist für GEOS-interne Zwecke reserviert. Ab da folgen direkt die Bereiche für Diskettenlaufwerke (Schadow und RAM). Diese Bereich werden automatisch von RamProcess berücksichtigt. Auch der RamTop wird erkannt. Danach folgt der Bereich, wo sich andere Programme einnisten können. Wie findet man nun den Anfang dieses Bereiches? Ganz einfach: Man untersucht die aktuelle Konfiguration von GEOS und addiert dann nach folgender Tabelle auf:

RAM 1541 oder 1541 schattiert 3 Bänke

RAM 1571 oder 1571 schattiert 6 Bänke

1581 schattiert 1 Bank

RAM 1581 13 Bänke

RamTop installiert 0,7 Bänke

Beispiel:

A: 1541 schattiert = 3

B: RAM 1541 = 3

C: RAM 1571 = 6

RamTop wird benutzt = 0,7

-------------------------------------------------

= 12,7 Bänke

Das heißt also, ab Bank 12 Block $A0 fängt der freie Bereich an. Wenn Sie nun wissen, daß ihr Programm eine Bank belegt, sollten sie ab der nächsten freien Bank anfangen.

Der Parameter wäre also: A:0D0000 (Ab Bank $0d/13 Block 0 die komplette Bank freigeben.)

Vom GeoHexer ist bekannt, daß er sich immer in der letzten verfügbaren Bank einnistet. Hier hilft nur ausprobieren.

Wenn Sie wissen wollen, wieviel Banken Sie in der REU haben, so müssen Sie folgende Berechnung anstellen: Größe in KB geteilt durch 64 = Anzahl der Banken.

Wenn Sie eine geeignete Einstellung für ihr Programm gefunden haben, so bitte ich Sie, die Einstellungen dafür auch Anderen zugänglich zu machen.

4. Zur Funktionsweise von RamProcess

4.1 Memory-Swapping. Was steht dahinter ?

Viele werden sich vielleicht fragen, wie es möglich ist, diverse Routinen im "Hintergrund" zu einer beliebigen Applikation oder Hilfsmittel zu behalten, ohne daß das jeweilige Programm etwas davon merkt. Das Geheimnis heißt Memory-Swapping und heißt nichts Anderes, als das für die Ausführung einer solchen Routine gewisse Speicherbereiche der REU mit denen aus dem Computer ausgetauscht werden. Dabei spielt die Geschwindigkeit des Datenaustausches, die nur mit dem in der REU eingebauten DMA-Chip möglich ist, eine sehr große Rolle. Nach dem Abarbeiten der Routinen wird das RAM wieder zurückgetauscht, und das Programm dort wieder fortgesetzt, wo es vorher unterbrochen wurde. Da die GeoRAM - und die meisten anderen Ramerweiterungen - keinen DMA-Chip enthält, ist die Geschwindigkeit für die meisten RamProcess-Anwendungen nicht ausreichend. GEOS kann dann bis zum Stillstand gebremst werden!

4.2 Wofür wird RamProcess gebraucht ?

Es existieren bereits einige Programmpakete auf dem Markt, die das Zusatz-Betriebssystem RamProcess benötigen. Erwähnt seien hier nur "Spezial RAM", "Bildschirm Schoner Spezial" und "FileBrowser", denn alle RamProcess Anwendungen, die für die alten 1.x Versionen geschrieben wurden, funktionieren auch mit den neuen Versionen 2.x!

5. Hinweis für Programmierer

Genauere Informationen zu RamProcess und dessen Programmierung können bei Gerd Boerrigter für einen Unkostenbeitrag von 5,- DM (als Verrechnungsscheck, in Briefmarken oder Bar) für Porto und Diskette bezogen werden. Die Adresse lautet:

Gerd Boerrigter

Rabenhauptstraße 20

D-49828 Neuenhaus

Das Informationspaket enthält eine 1581 Diskette (das 1541 Format kann ich leider nicht mehr anbieten), die folgendes enthält:

- das Programmier- und das Referenzhandbuch mit allen wichtigen Informationen zu RamProcess und

- alle Dateien, die zur Programmierung von RamProcess Anwendungen benötigt werden im geoProgrammer und MegaAss Format.

- einige Beispielprogramme.

Zusätzlich ist noch einer der beiden Assembler geoProgrammer oder MegaAss nötig. Andere Assembler, die GEOS Programme erzeugen können, sind auch möglich, allerdings müssen Sie die notwendigen Dateien dann selbst anpassen.

Das Informationspaket ist zur Zeit nur in deutscher Sprache erhältlich. Falls Bedarf besteht, wird eine englischsprachige Ausgabe zu haben sein.

Seit Version 1.9 gibt es keine neuen Routinen in RamProcess, ein Update der Dokumentation ist also nicht notwendig..

Viel Vergnügen mit RamProcess 2.0 wünscht