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 Mnchen, Alexander Herzlinger @ HH2 \ / E-Mail: herzling@rhrk.uni-kl.de \ /________________________________________________________\ INHALTSVERZEICHNIS =================================================== 0. Einfhrung --------------------------------------------------- 1. Installation --------------------------------------------------- 1.1 Untersttzte Hardware 1.2 Untersttzte 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. Einfhrung =================================================== 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 zuknftigen TOS-Versionen zusammenarbeitet, im Gegenteil bei zu- knftigen TOS-Versionen welche die PMMU besser ausnutzen (wie z.B. Multitasking TOS-Versionen, sollten sie einmal kommen) kann die Benutzung von ROMRAM zu Problemen fhren. 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 Untersttzte Hardware ----------------------------- Hardwarevorausetzungen fr ROMRAM ist ein TT mit TT-RAM (theoretisch und praktisch k”nnte ich es auch fr TT's ohne TT-RAM anpassen, falls Interesse besteht bitte setzen Sie sich mit mir in Verbindung). 1.2 Untersttzte TOS-Versionen ---------------------------------- ROMRAM sollte mit allen derzeit verfgbaren TOS-Versionen fr den TT zurechtkommen, bei bestimmten TOS-Versionen werden (aus Tradition des Programmes) Fixes durchgefhrt, 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 gedrckt 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 frheren 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 mssen 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 bemht 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 'Ungltige .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. - Fr bestimmte TOS-Versionen fhrt 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 natrlich 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 grndlich 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 unerwnschte 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 rckg„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- fhrt wird die Reset Routine des TOS ausgefhrt. 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 dafr, 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 mssen 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 mssen diese beiden Lang- w”rter gepatched werden ==> PMOVE $00Exxxxx,TC F0394000 00Exxxxx Hier mssen 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 mssen 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 durchgefhrt werden: Deutsche TOS-Versionen (NUR bei diesen werden die Patches durchgefhrt): 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 natrlich das gepatchte 09.08.90 TOS): - PTSIN-Patch, dazu gibt es auch ein FIX-Programm fr 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 fr 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 zurck. 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 Bercksichtigung 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 Abstrzen fhren. 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 abstrzt. 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 fr 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 ! Begngen Sie sich nicht mit den bisher durch ihren Rechner und ihrer Software ihnen aufgelegten Restrik- tionen, geben Sie kein Geld fr 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' fr private * * Anwender frei kopiert und benutzt werden. * * * * Alle Rechte (Copyright,Vertrieb...) fr '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. * * Fr Sch„den, welche durch die Benutzung von 'ROMRAM' entstehen,* * haftet der Benutzer. * * * ****************************************************************** Mit freundlichen Gržen Alexander Herzlinger