home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
tt
/
romra11l
/
romram.txt
< prev
Wrap
Text File
|
1992-09-21
|
23KB
|
467 lines
ROMRAM Version 1.1L
__________________________________________
/ Copyright (C) Alexander Herzlinger, KL \
/ ist ein Public-Domain Programm von \
/ Alexander Herzlinger \
/ Kurt-Schumacher-Str. 26 \
/ 6750 Kaiserslautern \
/ Mailbox: Maus München, Alexander Herzlinger @ HH2 \
/ E-Mail: herzling@rhrk.uni-kl.de \
/________________________________________________________\
INHALTSVERZEICHNIS
===================================================
0. Einführung
---------------------------------------------------
1. Installation
---------------------------------------------------
1.1 Unterstützte Hardware
1.2 Unterstützte TOS-Versionen
1.3 Starten von ROMRAM
2. Optionen und Patchvariablen
---------------------------------------------------
2.1 Optionen
2.2 Patchvariablen
3. Patches
---------------------------------------------------
3.1 Allgemeines
3.2 Installation der Resident-Option
3.3 Eingebaute TOS-Fixes
3.4 Ein Paar Worte über Fehler in TT-TOS'en,
Fixprogramme und Patches.
4. Anhang
---------------------------------------------------
4.1 Fehler und Probleme in Verbindung mit ROMRAM
4.2 ROMRAM-Cookie
4.3 Verwendete XBRA's
4.4 VRAM
0. Einführung
===================================================
Dies ist ein kleines Programm, welches das TT-TOS aus dem ROM in das
TT-RAM kopiert.
- Erleichtert die Entwicklung von neuen TOS-Versionen
- Hilft bei der Analyse des Betriebsystems und bei der Fehlersuche
- Da das TT-Ram schneller ist, werden die Betriebsytemroutinen um
ca. 20% beschleunigt (z.B.: VDI/AES und damit der 'Bildschirmaufbau').
Mit der FASTVAR-Option sogar um ca. 35%.
- Fuehrt einige kleinere Fixes durch (abschaltbar,siehe Kapitel:Patches)
- Kann auch stark unterschiedliche TOS-Versionen oder gar andere
Betriebsysteme installieren.
RAMROM kopiert das ROM in das TT-RAM bzw. liest ein TOS von Disk/HD und
programmiert die PMMU so, daß ROM-Zugriffe automatisch in das TT-RAM
umgesetzt werden.
Noch ein paar grundsätzliche Bemerkungen zur PMMU-Programmierung:
die PMMU-Programmierung obliegt hauptsächlich dem Betriebsystem; sollte
in späteren TOS-Versionen die PMMU stärker benutzt werden, darf ROMRAM
dort auf keinen Fall eingesetzt werden. ROMRAM ist in dieser Hinsicht
sehr unsauber. Man darf also nicht erwarten, daß ROMRAM auf jeden Fall
mit zukünftigen TOS-Versionen zusammenarbeitet, im Gegenteil bei zu-
künftigen TOS-Versionen welche die PMMU besser ausnutzen (wie z.B.
Multitasking TOS-Versionen, sollten sie einmal kommen) kann die
Benutzung von ROMRAM zu Problemen führen.
Hier mal eine kleine Tabelle zum Geschwindigkeitsvergleich:
ohne | ROMRAM + FastVar |
---------------------+------------------+
Textausgabe: 406 | 501 543 |
Linien: 395 | 450 474 |
Rechtecke: 503 | 539 597 |
Polygone: 352 | 469 479 |
Kreise/Ellypsen: 437 | 527 561 |
RasterOps: 431 | 437 441 |
Attribute: 206 | 273 316 |
Auskunftsfunk: 213 | 280 325 |
ESCAPES: 188 | 214 221 |
BIOS-Ausgabe: 172 | 194 198 |
GEMDOS-Ausgabe: 170 | 200 218 |
AES-Objekt: 256 | 332 387 |
---------------------+------------------+
TT-8/TOS 3.01 gemessen mit GEMTEST 1.0
Alle Angaben in Prozent im Vergleich zu einem Normal-ST mit TOS1.04
1. Installation
===================================================
1.1 Unterstützte Hardware
-----------------------------
Hardwarevorausetzungen für ROMRAM ist ein TT mit TT-RAM (theoretisch und
praktisch könnte ich es auch für TT's ohne TT-RAM anpassen, falls Interesse
besteht bitte setzen Sie sich mit mir in Verbindung).
1.2 Unterstützte TOS-Versionen
----------------------------------
ROMRAM sollte mit allen derzeit verfügbaren TOS-Versionen für den TT
zurechtkommen, bei bestimmten TOS-Versionen werden (aus Tradition des
Programmes) Fixes durchgeführt, weiteres dazu im Kapitel: Patches.
ROMRAM wurde mit den TOS Versionen 3.01 vom 09.08.90 und 29.08.90,
3.05 sowie 3.06 getestet.
1.3 Starten von ROMRAM
--------------------------
ROMRAM kann entweder aus dem Auto-Ordner oder vom Desktop gestartet
werden. Dabei ist der Start aus dem Autoordner zu bevorzugen, da
in diesem Fall weniger Speicher verbraucht wird und einige Optionen
nur beim Autoordner-Start sinnvoll sind (TOS resident, siehe Kapitel:
Optionen und Patchvariablen/3.2 Tos resident installieren). Weiterhin
ist es sinnvoll ROMRAM möglichst als erstes Autoordner-Programm zu
installieren, was wiederum dem Speicherbedarf und Komfort zugute kommt.
Das Programm belegt je nach TOS und Startup zwischen 260 und 512 Kbyte
Speicher (mehr oder weniger sind bei Spezial TOS'en und anderen Betriebs-
systemen selbstverstaendlich auch möglich).
Je nach eingestellter Option werden noch andere Maßnahmen zur Installation
notwendig, näheres kann im Kapitel: Optionen und Patchvariablen, nachge-
lesen werden.
ROMRAM kann beim Booten deaktiviert werden, indem beim Start von ROMRAM
die 'linke SHIFT'+'CONTROL' Tasten gedrückt werden und die dann folgende
Frage zur Deinstallation mit 'J' beantwortet wird.
2. Optionen und Patchvariablen
===================================================
2.1 Optionen
----------------
ROMRAM bietet, gesteuert über die Patchvariablen, folgende Optionen:
- TOS aus ROM lesen und installieren.
- TOS aus Datei lesen und installieren. Dazu muss eine TOS-Datei
in dem durch die Patchvariablen angegebenen Pfad existieren; diese
Datei kann auch mit dem beiliegenden Tool GETTOS.TTP erzeugt werden.
- TOS aus Datei lesen und resident installieren. Damit ist es
möglich (im Gegensatz zu früheren ROMRAM-Versionen) auch TOS-
Versionen zu installieren die stark oder total unterschiedlich
zu der im ROM eingebauten sind. Z.B. ist es möglich bei einge-
bautem TOS 3.01 ein 3.05 zu installieren (ACHTUNG: Das soll
KEIN Aufruf sein sich TOS-Versionen illegal zu beschaffen !
TOS 3.05 und alle anderen TOS-Versionen unterliegen dem Copyright
von Atari und müssen von Atari bezogen werden !!).
- FASTVAR-Option: Dies ist eine sehr schmutzige aber doch recht
interessante Option; Dadurch wird der Speicherbereich in dem
das TOS viele seiner Variablen ablegt in des TT-RAM gemapped,
dadurch ergibt sich eine ganz nette Geschwindigkeitssteigerung.
Achtung: Die FASTVAR-Option ist etwas kritisch in der Anwendung,
ich habe mich bemüht es so sicher wie nur irgend möglich zu machen
und unter normalen Umständen sollte es keine Probleme geben,
falls doch, dann schalten Sie diese Option bitte ab und teilen
mir mit unter welcher Konfiguration es bei ihnen Probleme gab.
Die Probleme könnten sich folgendermassen Äussern:
Rechner bootet bei angeschalteter FASTVAR-Option nicht korrekt
hoch (bleibt 'stecken' oder wirft beim Bootvorgang oder im
Desktop Bomben).
Ein neues Desktop-Inf kann nicht eingelesen werden, es erscheint
immer eine Alertbox mit 'Ungültige .INF Datei' (Wenn dies
funktioniert, dann arbeitet die FASTVAR-Option korrekt, ist also
ein recht guter Test ob alles korrekt läuft).
Bei allen mir bekannten TOS Versionen sollte es aber keinen Ärger
geben und bei anderen auch nicht da die FASTVAR Option TOS-unab-
hängig ist.
- Für bestimmte TOS-Versionen führt ROMRAM Patches durch, näheres
bitte unter 3.2 'Eingebaute TOS Fixes' nachlesen. Per Option kann
dies erlaubt oder unterbunden werden.
2.2 Patchvariablen
----------------------
Über die Patchvariablen werden die Optionen von ROMRAM eingestellt.
Dabei haben die Patchvariablen folgenden Aufbau:
--------------PATCHVARS-------------------------
{
byte patchkennung[12]="PATCH HERE:";
1=> long toslaenge; Anz. von Bytes die ROMRAM kopiert und in das TT-RAM stellt.
2=> byte tosflag; 0=TOS aus Datei laden wenn möglich,
sonst aus ROM. TOS-Länge=Dateilänge
1=TOS aus Datei laden wenn möglich,
sonst aus ROM. TOS-Länge=Patchvar.toslaenge oder wenn
größer Dateilänge
2=TOS aus ROM lesen. TOS-Länge=Patchvar.toslaenge
3=TOS resident laden. TOS-Länge=Dateilänge
3=> byte tospfad[65]; Pfad und Name der zu ladenden TOS-Datei.
long tos_addr; TOS-Adresse (nur zum Auslesen !)
4=> word opt; Bit 0: AUS=FASTVAR-Option aus.
AN =FASTVAR-Option an.
Bit 1: AUS=TOS-Fixes AN.
AN =TOS-Fixes AUS.
long fastvar_addr; Adresse des durch die FASTVAR-Option gemapten
Speicherbereichs (nur zum Auslesen)
long ftable_addr; Adresse der FASTVAR-Seitentabelle (nur zum Auslesen)
long mtable_addr; Adresse der CRP-Seitentabelle (nur zum Auslesen)
}
--------------PATCHVARS_ENDE--------------------
Die Defaulteinstellung ist: toslaenge=0x41000, tosflag=1, tospfad="TTTOS.IMG",
opt=1.
Die Patchvariablen können vor dem Programmstart mittels eines geeigneten Disk-
monitors oder Editors verändert werden. Dazu sucht man die Patchkennung
"PATCH HERE:", damit hat man die oben beschriebene Struktur gefunden und kann
die entsprechenden Variablen verändern.
Die Einstellung der Optionen ist damit abgeschlossen, bei angewählten Lade-
Optionen muss natürlich noch die entsprechende TOS-Datei im durch 'tospfad'
angegebenen Pfad/Dateinamen vorhanden sein. Eine solche Datei kann auch mit
dem beiliegenden Tool GETTOS.TTP erzeugt werden näheres dazu in der Anleitung
zu den ROMRAM-Tools.
Die einzige Option die noch einige Arbeit erfordert ist die 'TOS-Resident'-
Option, dazu lesen Sie bitte Kapitel 3.2 gründlich durch.
Auch sollten Sie beachten, daß neuere TOS-Versionen als TOS 3.06 länger sein
könnten und daher die Patchvariable 'Toslaenge' entsprechend angepasst werden
muss.
3. Patches
===================================================
3.1 Allgemeines
-------------------
Durch die Option mittels ROMRAM eine TOS-Datei nachzuladen, ergibt sich auch
die Möglichkeit mehr oder weniger große Veränderungen am TOS vorzunehmen (das
TOS zu patchen). Dies sollte aber mit größter Vorsicht genossen werden da durch
'herumpatchen' in einigen Fällen auch unerwünschte Nebeneffekte heraufbe-
schwört werden können. Man sollte sich seiner Sache also ABSOLUT sicher sein,
bevor man Patches im TOS anbringt, dies gilt vor allem wenn man derart ge-
patchte TOS-Versionen fest in EPROMS brennt, über ROMRAM hat man wenigstens
noch die Möglichkeit die Patches rückgängig zu machen indem man ROMRAM nicht
benutzt oder wieder ein Orginaltos von ROMRAM benutzen läßt.
Wenn man sich also seiner Sache nicht absolut sicher ist, ist es immer besser
Fixprogramme zu benutzen oder es bleiben zu lassen. Bei Problemen mit irgend-
welchen Programmen ist es immer ratsam erst alles nocheinmal auf
Orginal-TOS-Versionen zu testen.
3.2 Installation der Resident-Option
----------------------------------------
Es gibt ein grundsätzliches Problem mit der 'TOS resident' Option, da diese
Option das TOS resident lädt und dann zum Start desselbigen einen Reset durch-
führt wird die Reset Routine des TOS ausgeführt. Diese Routine initialisiert
nun aber, wie es sich auch so gehört, die PMMU neu und deinstalliert somit
wieder das resident geladene TOS.
Um dies zu verhindern muss eben diese Installierung unterbunden werden, ROMRAM
sorgt dafür, daß die PMMU korrekt installiert wird.
Um die Initialisierung der PMMU durch das TOS zu verhindern muss das TOS ent-
sprechend gepatched werden, und zwar an folgenden zwei Stellen:
(Alles ist Hexadezimal angegeben)
1. Stelle:
........
==> PMOVE $00Exxxxx,TC F0394000 00Exxxxx Hier müssen diese beiden Lang-
wörter gepatched werden
PMOVE $00Exxxxx,TT0 F0390800 00Exxxxx
PMOVE $00Exxxxx,TT1 F0390C00 00Exxxxx
........
Beim TOS 3.05 vom 05.12.90 liegt diese Stelle bei E0005C bzw. 5C Bytes
Offset nach dem Dateianfang.
2. Stelle:
.......
==> PMOVE $00Exxxxx,CRP F0394C00 00Exxxxx Hier müssen diese beiden Lang-
wörter gepatched werden
==> PMOVE $00Exxxxx,TC F0394000 00Exxxxx Hier müssen diese beiden Lang-
wörter gepatched werden
PMOVE $00Exxxxx,TT0 F0390800 00Exxxxx
PMOVE $00Exxxxx,TT1 F0390C00 00Exxxxx
........
Beim TOS 3.05 vom 05.12.90 liegt diese Stelle bei E01370 bzw. 1370 Bytes
Offset nach dem Dateianfang.
Die entsprechenden Langwörter müssen nun durch andere Befehle überschrieben
werden wie z.B. durch den NOP-Befehl; d.h. alle oben gekennzeichneten Lang-
wörter werden durch das Langwort 4E714E71 (zwei nop's) ersetzt.
Nachdem das TOS so gepatched ist und die 'TOS resident' Option in den Patchvar-
iablen aktiviert wurde ist alles getan.
Lesen Sie bitte nun zu allerletzt das Kapitel 4.1: Fehler und Probleme in
Zusammenhang mit ROMRAM, bevor sie mit der Resident-Option arbeiten.
3.3 Eingebaute TOS-Patches:
-------------------------------
Folgende Patches können durch ROMRAM automatisch durchgeführt werden:
Deutsche TOS-Versionen (NUR bei diesen werden die Patches durchgeführt):
TOS 3.01 vom 09.08.90:
- Fehler in der Tastaturtabelle wird behoben
- TOS Datum wird auf den 29.08.90 gepatched, da das nun aktive TOS
identisch mit dem vom 29.08.90 ist
TOS 3.01 vom 29.08.90 (und natürlich das gepatchte 09.08.90 TOS):
- PTSIN-Patch, dazu gibt es auch ein FIX-Programm für den Auto-Ordner,
aber leider nicht von Atari.
- GetRes-Patch, Nun erscheint auch in TT-High wieder der 'graue' Desktop-
hintergrund
3.4 Ein paar Worte zu Fehler in TT-TOS'en
---------------------------------------------
Dieses Kapitel ist noch nicht vollstaendig geschrieben, also hier erst einmal
eine kurze Zusammenfassung von mir bekannten Fehlern und Fixprogrammen für
TOS 3.0x:
TOS 3.01 vom 09.08.90:
- Fehler in der Tastaturtabelle: ALT-Y und ALT-Z wurden nicht an die
deutsche Tastatur angepaßt.
Dazu gibt es meines Wissens nach kein Fixprogramm, ROMRAM kann diesen
Fehler beheben.
TOS 3.01 vom 29.08.90 und 09.08.90:
- PTSIN-Fehler: liefert Falsche Anzahl vom PTSIN Feldern zurück.
Dazu gibt es das Fixprogramm 'PTSINFIX.PRG', leider existiert kein
offizielles Fixprogramm von Atari. PTSINFIX.PRG kann man über
diverse Mailboxen erhalten (z.B. Maus-Mailboxen). ROMRAM kann diesen
Fehler in deutschen TOS'en beheben.
- GetRes-Fehler: bewirkt, daß in TT-High kein 'grauer' Desktophinter-
grund gesetzt wird.
Dazu gibt es meines Wissens nach kein Fixprogramm, ROMRAM kann diesen
Fehler in deutschen TOS'en Fehler beheben.
TOS 3.05 vom 05.12.90 und alle vorherigen TOS-Versionen:
- Ein Fehler bei der Behandlung der seriellen Schnittstellen, tritt
nur auf mit Highspeed-Modems oder Druckern welche an der seriellen
Schnittstelle angeschlossen werden. Dazu gibt es das Fixprogramm
'SERPTCH2.PRG' von Atari, erhältlich bei Atari(-Händlern?) oder in
diversen Mailboxen (z.B. Maus). ROMRAM behebt diesen Fehler nicht.
- Fpu-Test-Fehler: In der Reset-Routine wird beim Test auf die FPU
ein Fehler gemacht. Es kann dadurch passieren, daß bei einem Tastatur-
reset der Rechner 'hängenbleibt' und der Griff zum Resettaster nötig
wird. Dazu existiert das Fixprogramm 'FPUFIX.PRG' welches in
diversen Mailboxen erhältlich ist.
Ein durch ROMRAM mittels der Resident-Option geladenes TOS kann
(unter Berücksichtigung vom 3.1) dahingehend gepatched werden, daß
dieser Fehler nicht mehr auftritt.
Hier ein Disassemly gemacht mit Templemon und TOS 3.05. Bei TOS 3.01
ist die Routine 2 Bytes vorher im TOS, also ab $E0040E:
..............
!,00E00410 MOVE.L #$5F465055,(A0)+ 20FC 5F46 5055
!,00E00416 MOVE.L $002C,A1 2278 002C
!,00E0041A MOVE.L $0034,A2 2478 0034
!,00E0041E MOVE.L A7,A3 264F
!,00E00420 MOVE.L #$00E0043C,$002C 21FC 00E0 043C 002C
!,00E00428 MOVE.L #$00E0043C,$0034 21FC 00E0 043C 0034
!,00E00430 FMOVE.L FP0,D0 F200 6000
^^^^^^ ^^
$6000 muss durch $4000 ersetzt werden.
!,00E00434 MOVE.L #$00020000,(A0)+ 20FC 0002 0000
...............
- Mastermode-Fehler: Durch einen Fehler im TOS können Betriebsystem-
aufrufe aus dem Mastermode des 68030 zu Problemen und Abstürzen
führen. Dazu gibt es das Fixprogramm 'SUPERFIX.PRG' welches in
diversen Mailboxen erhältlich ist. Mittels ROMRAM ist es zwar
möglich diesen Fehler zu beheben, aber das Fixprogramm ist vor-
zuziehen da der Aufwand recht groß wäre.
Über die Benachrichtigung/Verbesserung bzgl. der TOS-Fehler und eventueller
neuer Fixprogramme bzw. Fixprogramme die ich vergessen haben sollte wäre
ich sehr dankbar.
4. Anhang
===================================================
4.1 Fehler und Probleme in Verbindung mit ROMRAM
----------------------------------------------------
Bugs und Probleme andere Programme mit ROMRAM:
- Bei der Benutzung vom ROMRAM mit angeschalteter Resident-Option
zusammen mit SYSMON-Versionen vor 1.0.8 tritt ein SYSMON Bug auf der
einen Buserror erzeugt.
Abhilfe: SYSMON Version 1.0.8 oder höher benutzen oder bei der
Benutzung von SYSMON den Rechner OHNE Resident bzw. ohne ROMRAM booten.
Probleme von ROMRAM:
Bei gleichzeitiger Benutzung der Resident und FASTVAR Option kann kein
Tastatur-Kaltstart (Control+Alternate+r.Shift+Delete) gemacht werden, ohne
daß der Rechner abstürzt.
Abhilfe: Reset-Taster betätigen.
4.2 ROMRAM-Cookie
---------------------
ROMRAM installiert einen Cookie 'PTOS'. Dieser Cookie zeigt auf die in
Kapitel 2.2 beschriebenen Patchvariablen. Damit lassen sich Programme
schreiben die Informationen von ROMRAM abrufen oder weitere Änderungen
an den Patchvariablen oder TOS oder Seitentabellen etc. vornehmen.
Die Tool-Programme nutzen z.B. diese Möglichkeit.
4.3 Verwendete XBRA's
-------------------------
ROMRAM hängt sich, je nach den eingestellten Optionen, in folgende
Vektoren mittels des XBRA-Verfahrens ein:
hdv_rw
wenn FASTVAR aktiv: ROMRAM-Routine übersetzt kritische DMA-Zugriffe
auf die korrekten Adressen.
reset_vektor
Wenn Resident und FASTVAR Option aktiv: Reset-Routine deinstalliert
die FASTVAR-Option.
Noch nicht benutzte aber geplante Vektoren:
bus_error
ikbdsys
ROMRAM installiert sich immer nach dem XBRA-Verfahren mit der XBRA-Kennung
'PTOS'.
===================================================
4.4 VRAM
------------
ROMRAM ist nur ein Meilenstein auf dem Weg zu VRAM.
VRAM ist eine virtuelle Speicherverwaltung für den Atari TT unter TOS, dies
bedeutet Sie können den Hauptspeicher Ihres Rechners fast unbegrenzt erweitern
ohne irgendwelche teuren Speicherbausteine, RAM-Platinen oder andere Hardware
zu kaufen ! Mit VRAM ist es möglich ungenutzten Festplattenplatz ihrem Haupt-
speicher zuzuschlagen.
Wollen Sie umfangreiche Dokumente bearbeiten ?
Programmieren Sie mit C oder C++ und haben schon oft über zuwenig Speicher
geflucht ?
Nutzen Sie MultiGEM und leiden, wenn mehrere Programme gleichzeitig laufen,
unter Speichermangel ?
Arbeiten Sie mit Datenbanken und es fallen sehr viele Daten an ?
Setzen Sie ihren Rechner zum DTP ein und ärgern sich über die langen
Aufbauzeiten bei großen Dokumenten oder eingeschränkte Dokuntgrößen ?
Benötigen und/oder bearbeiten Sie große Bilder mit vielen Farben ?
Dann, und in vielen anderen Fällen, hilft ihnen VRAM ! Begnügen Sie sich nicht
mit den bisher durch ihren Rechner und ihrer Software ihnen aufgelegten Restrik-
tionen, geben Sie kein Geld für teure Speichererweiterungen aus, sondern steigern
Sie Ihre Produktivität mit VRAM !
VRAM und Informationen über VRAM erhalten Sie bei:
Overscan GbR
Säntisstr. 166
D-1000 Berlin 48
Telefon: 030-721 94 66
Fax: 030-721 56 92
=================================================================================
=================================================================================
Tips und Anregungen sind willkommen !
Ein besonderes Dankeschön geht an Karsten Isakovic, Johannes Hill,
Julian Reschke, Dirk Steins, Patrick Seeman und Marcel Waldvogel.
******************************************************************
* *
* Unter der Voraussetzung, daß die Dateien *
* *
* ROMRAM.PRG *
* ROMRAM.TXT *
* TOOLS\GETTOS.TTP *
* TOOLS\SHOWTOS.TOS *
* TOOLS\TOOLS.TXT *
* *
* unverändert kopiert werden, darf 'ROMRAM' für private *
* Anwender frei kopiert und benutzt werden. *
* *
* Alle Rechte (Copyright,Vertrieb...) für 'ROMRAM' liegen *
* beim Autor (Alexander Herzlinger). *
* Eine kommerzielle Nutzung in jeder Form (dies schließt auch *
* den Vertrieb über Public-Domain-Sammeldisketten oder ähn- *
* liches ein) ist NICHT GESTATTET. *
* Für Schäden, welche durch die Benutzung von 'ROMRAM' entstehen,*
* haftet der Benutzer. *
* *
******************************************************************
Mit freundlichen Grüßen
Alexander Herzlinger