***************************************** * Žnderungen am Resident Symbol Driver: * ***************************************** Žnderungen der Version 1.22 gegenber 1.21: =========================================== - Das Problem mit Megamax Modula 2 Programmen sollte ab dieser Version der Vergangenheit angeh”ren, da etv_term() nun nicht mehr abgefangen, sondern von der eigenen Gemdos-Routine bei einem Pterm() aufgerufen wird. Dadurch sollte es nicht mehr zu einer Fehlterminierung von Programmen wie z.B. CAT kommen. Žnderungen der Version 1.21 gegenber 1.20: =========================================== - Es ist geschafft! Endlich kann der SYSMON nach dem Symbol-Treiber gestartet werden, ohne daž sich gleich das System aufh„ngt! Dies war jedoch nicht der Fehler des Symbol-Treibers, sondern kollidierte mit der Art und Weise, wie der SYSMON sich installiert: hierzu h„ngt der SYSMON seinen Code-Speicher aus der Speicherliste des GEMDOS aus und beendet sich. Normalerweise wrde das GEMDOS den Speicher nicht freigeben. Der Symbol-Treiber ist jedoch st„ndig darber informiert, welcher Speicher fr ein Programm belegt ist, um im Falle der Programmbeendigung diesen Speicher und den der Tabellen frei- geben zu k”nnen. Somit wird vom Symbol-Treiber der Speicher dennoch an das GEMDOS zurckgegeben, woraufhin das Unheil seinen Lauf nahm. Sobald eine Speicheranforderung kam, die in den freigewordenen Speicher pažte, wurde der Code des SYSMON berschrieben und es kam beim n„chsten GEMDOS-Aufruf zum Absturz! Ab jetzt wird der SYSMON beim Aufruf der GEMDOS-Funktion PEXEC einfach nicht beachtet, wodurch er auch in der internen Programm-Liste nicht mehr auftaucht. Hierzu ist es jedoch wichtig, daž der Name mit SYS_MON* beginnt. Aužerdem darf der SYSMON nur aus dem AUTO-Ordner oder ohne Pfad am Anfang gestartet werden! - Die Sortierroutine fr die Symbole wurde durch eine schnellere (Quicksort) ersetzt. Jedoch darf man auch von der neuen Routine keine Wunder erwarten! - Ein Fehler beim Vergleich des eingegebenen Programmnamens mit den Namen in den internen Tabellen wurde beseitigt. - Ein weiterer Fehler, der Symbolnamen mit einem Unterstrich '_' verhinderte, eingegeben zu werden, wurde endlich beseitigt. Žnderungen der Version 1.20 gegenber 1.19: =========================================== - Ab der Version 1.20 wird auch das Erweiterte Symbolformat von Sozobon 2.0 untersttzt. Damit ist es nun auch Benutzern dieses Public-Domain-Compilers m”glich, Acessories und TSR-Programme mit den vollst„ndigen Symbol-Namen zu debuggen. Žnderungen der Version 1.19 gegenber 1.18: =========================================== - Die Programmnamen mssen nun nicht mehr den Dateityp (neudeutsch Extension) beinhalten, wenn man auf die zugeh”rigen Symboltabellen zugreifen will. So reicht z.B. "FIREWORK" aus, um "FIREWORK.PRG" auszuw„hlen. Natrlich kann man auch mit dem Wildcard '*' arbeiten. - Als weitere Anpassung an MiNT k”nnen nun die Programmnamen maximal 15 Zeichen (14 Zeichen + 1 Nullbyte) grož werden. Damit verschieben sich aber alle anderen Werte in der Struktur um 2 Bytes!! Es ist aber besser, diese Žnderung jetzt als sp„ter vorzunehmen, bevor andere Programme (aužer meinen eigenen) sich auf die Anordnung der Elemente in der Struktur verlassen. Žnderungen der Version 1.18 gegenber 1.17: =========================================== - Die Routine GetSymbolValue wurde dahingehend ge„ndert, daž man nicht mehr den vollst„ndigen Symbolnamen eingeben muž. Man kann nun bei einer beliebigen Stelle den Wildcard '*' einsetzen. - Weitere Erweiterungen fr MiNT wurden vorgenommen. So werden nun auch die neuen PEXEC-Modi 100, 104, und 106 beachtet und ausgewertet. - Die nachfolgenden GEMDOS-Routinen werden nun "sauber" angesprungen. Žnderungen der Version 1.17 gegenber 1.16: =========================================== - Anpassung an die mehrfache Installation des Symbol-Treibers vorgenommen. Damit kann man nun mehrere Treiber laden!! (unter MiNT hilfreich) - Unter MiNT wird immer Mxalloc(Gr”že,0x4030) benutzt, so daž die vom Treiber nachgeladenen Symboltabellen von allen Prozessen im Supervisor-Modus erreicht werden k”nnen. Zudem wird auf diese Art und Weise unter MiNT die Freigabe des Speichers bei der Prozessbeendigung verhindert. Žnderungen der Version 1.16 gegenber 1.15: =========================================== - Stabilit„t des Treibers verbessert. Nun kann man auch INTERFACE mehrmals aufrufen. Leider bietet das TOS bis heute keine vernnftige und legale Methode an, damit sich ein speicherresidentes Utility jederzeit Speicher fr sich reservieren kann, ohne daž bei einer Programmbeendigung dieser Speicher wieder freigegeben wird. Vielleicht wird das ja mal besser... Žnderungen der Version 1.15 gegenber 1.14: =========================================== - Die Funktion AddSymbolTable wurde erweitert. Wenn nun statt der Adresse der Basepage eines Programmes der Wert NULL bergeben wird, so wird eine fertige Symboltabelle geladen. Das Format dieser Symboltabelle kann der Datei README entnommen werden. - Die Routinen AddSymbolTable und RemoveSymbolTable besitzen nun einen neuen Returncode: der Wert 2 besagt, daá die Funktion nicht ausgefhrt werden konnte, da gerade ein Zugriff auf die Tabellen erfolgt (kann eigentlich nur unter MultiTOS passieren). Dieser Returncode muá also einen neuen Versuch nach sich ziehen, die betreffende Funktion muá also nochmals aufgerufen wer- den. - Wenn nun versucht wird, eine beliebige Datei als Programm zu starten, so wird dies nun bemerkt und mit dem GEMDOS-Fehler -66 abgebrochen. - Fehler bei der Zusammenarbeit mit GEMDOS beseitigt. Nachdem das letzte Auto- Ordner-Programm gestartet wurde, erfolgt ein PEXEC (0, NULL (!!!), ...), der zu einer gewaltigen Verwirrung gefhrt hat, da beim folgenden FOPEN-Aufruf des Symbol-Treibers ein Fehler zwar entdeckt, jedoch nicht mehr an die nach- folgenden TRAP-Handler weitergeleitet wurde. Dies geschah in der Annahme, daž es ausreicht, den Fehler an den Aufrufer zurckzugeben. Jedoch muž man bei einem NULL-Zeiger als Programmnamen jeden Fehler ignorieren!! - Beim Programmstart versucht der Symbol-Treiber, die Datei "\AUTO\SYSTEM.SMB" zu laden. Hierbei handelt es sich um eine fertige Symboltabelle, die die Adressen der bekannten Systemvariablen und Hardware-Bausteine beinhaltet. - Fehler bei der Behandlung des MFREE-Aufrufs von Cham„leon beseitigt. Man sollte halt nie versuchen, einen Speicherbereich mehrfreich freizugeben... Žnderungen der Version 1.14 gegenber 1.13: =========================================== - Die Funktion GetSymbolValue wurde komplett berarbeitet. Neben der bisher vorhandenen M”glichkeit, einen Programmnamen zu bergeben, gibt es nun auch eine andere Variante: Hierzu bergibt man in A0 einen String des Formats "Programmname:Symbolname" und in A1 einen NULL-Zeiger. Dies erleichtert die Zusammenarbeit mit Programmen wie z.B. Templmon, da nun der Resident Symbol Driver diesen String "zerlegt". - Bei der Suche eines Symbols arbeitet GetSymbolValue nun nach dem folgenden Prinzip: wenn ein Programmname angegeben wurde, so wird das Symbol nur in den Programmen gesucht, fr die der Name paát. Andernfalls wird zuerst die Symboltabelle des aktiven Programmes durchsucht. Sollte danach das Symbol immer noch nicht gefunden sein, so werden zuletzt alle Tabellen berprft. - Der Resident Symbol Driver braucht nicht mehr vor dem Templemon gestartet zu werden, da er sich nun mit einer neuen Funktion des Templemons nachtr„glich installieren kann. Žnderungen der Version 1.13 gegenber den Vorg„ngern: ===================================================== - Beim Aufruf der Funktion GetSymbolValue ist es nun m”glich, innerhalb des Programmnamens den Allquantor '*' einzusetzen. Somit braucht nicht mehr der gesamte Name angegeben werden (z.B.: "NVDI*") - Der Treiber kann nun auch in den AUTO-Ordner kopiert werden. Sinnvollerweise sollte er m”glichst am Anfang der Programme stehen, damit von allen folgenden Programmen die Symboltabellen geladen werden. - Ein Fehler bei der Sortierung der Symbole wurde beseitigt. Nun werden wirklich alle Symbole bernommen.