XCONTROM.ACC ============ XCONTROM.ACC ist eine von mir modifizierte Version des XCONTROL.ACC Version 1.31 von Atari. Es wird jetzt das Register A2 vor allen TRAP-Aufrufen gesichert. Im Original wird A2 vor TRAP#1 (GEMDOS) nicht gesichert. Dadurch k”nnen die seltsamsten Effekte auftreten, einschliežlich Bomben und zerst”rter Speicherbereiche. Atari hat leider alle XCONTROL von 1.0 bis 1.31 mit TurboC oder PureC und einer fehlerhaften Library kompiliert. Die Mail, die ich in einigen Atari-Gruppen gepostet habe, h„ngt an diesem Text dran. XCONTROM erkennt man an der Versionsnummer "V 1.31modifi", die angezeigt wird, wenn man Optionen/Info... ausw„hlt. Ich hoffe, daž bald ein fehlerfreies XCONTROL von Atari vorliegt. Bitte benennt XCONTROM __nicht__ in XCONTROL um, es sollte sich weiterhin schon im Namen von Original unterscheiden. Ich habe hoffentlich keine neuen Fehler in XCONTROM eingebaut. Ich bernehme aber keine Haftung fr irgendetwas. Jeder benutzt (oder auch nicht) XCONTROM auf eigenes Risiko. Wenn jemand Fehler in XCONTROM findet, m”ge er mir bitte eine Mail schicken. Harun Scheutzow Email im Mausnetz: Harun Scheutzow@B aus Internet: Harun_Scheutzow@B.maus.de Hier die angeh„ngte Mail: WARNUNG! Alle XCONTROL.ACC von Version 1.0 bis einschliežlich Version 1.31 haben mindestens einen schweren Fehler. Das Register A2 wird vor einigen TRAP#1 Aufrufen nicht gesichert, enth„lt aber einen wichtigen Wert. Dies fhrt dazu, daž irgendwo Speicherbereiche zerschossen werden, Busfehler auftreten u.„., wenn ein Patch oder Betriebssystem, das im TRAP-Aufruf h„ngt, A2 ver„ndert. Dieses XCONTROL hat z.B. HSMODEM1 zerschossen. Hier nur eine Stelle, wo A2 nicht gesichert wird, aber werden mžte. Es ist m”glicherweise nicht die einzige, ich suche noch. Ich werde versuchen, XCONTROL.ACC 1.31 zu patchen. Sollte das klappen, ist es bestimmt in ATARI.INFO zu lesen. Oder sollte ATARI selbst die Fehler schneller beseitigen als unsereins? Momentan einzig m”gliche Abhilfe: XCONTROL.ACC nicht benutzen!!! ---------------------------------------------------------------- Hier ein disassemblierter Schnipsel, er kommt so z.B. in XCONTROL 1.0 und 1.31 vor: L0: MOVE.L 28(SP),D1 MOVEQ #1,D0 JSR L1 MOVE.L A0,-12(A2) MOVE.L A0,D0 BEQ.S L2 MOVEA.L A2,A0 CLR.W D0 JSR L9 MOVE.W D0,D3 MOVEA.L -12(A2),A0 ;hier wird ein unsinniger Wert in A0 geladen, falls ;A2 im TRAP modifiziert wurde MOVE.L 28(A7),D1 JSR L3 ;innerhalb der hier aufgerufenen Routine wird ;der Inhalt von A0 als Adresse des Lesepuffers ;fr Fread benutzt MOVE.W D3,D0 JSR L4 CLR.W -8(A2) LEA -298(A2),A0 JSR L5 L9: MOVE.W D0,-(SP) MOVE.L A0,-(SP) MOVE.W #$3D,-(SP) ;Fopen TRAP #1 ;GEMDOS, darf D0-D2/A0-A2 zerst”ren ADDQ.W #8,SP RTS