noch vorhandene Probleme beim Betrieb von MagiC 5
-------------------------------------------------

Andreas Kromke
22.4.95/9.6.97


- Es kann vorkommen, da bei aktiviertem DMA-Hintergrundtransfer beim Booten
  von XCONTROL die Meldung kommt, da zuwenig Speicher vorhanden ist.
  Verantwortlich dafr ist die (leider dokumentierte) Eigenschaft des GEMDOS,
  einem Programm beim Laden den gesamten Speicher zuzuteilen. Ist nun der
  Ladevorgang unterbrechbar (wg. Hintergrundtransfer) und fordert gleichzeitig
  ein anderes Programm Speicher an, gibt es den entsprechenden Fehler.
  Abhilfe: Die Zeile "#_TSL" aus magx.inf entfernen und das prae-emptive
  Multitasking erst mit Hilfe des CPX-Moduls aktivieren.

- MANVIEW hat noch einige Probleme mit der Standarddatei-Umlenkung, die eine
  Verkettung unglcklicher Umstnde sind:

  1. STDOUT wird auf eine Datei (Handle 7) umgelenkt.
     Der Referenzzhler fr Handle 7 ist also 2.
  2. Die Datei "CON:" wird im Modus ReadOnly im TOS- Kompatibilittsmodus
     geffnet, d.h. in Mag!X "shared read & exclusive write".
     Das Dateihandle ist 8.
     Ich habe deshalb nicht -1 als Dateihandle zurckgegeben, weil ich den
     vielen genialen Programmen, die die geniale Pure-C oder Turbo-C Include-
     Datei TOS.H verwenden, die Mglichkeit zu geben, auf ein Gert
     auszugeben (die meisten Programme deklarieren Fopen und Fcreate als
     "int").
  3. STDOUT wird auf die Datei 8 umgelenkt.
     Der Referenzzhler fr Handle 7 ist 1.
     Der Referenzzhler fr Handle 8 ist 2.
  4. Handle 7 wird zweimal geschlossen, da der Referenzzhler nur 1 ist, wird
     beim zweiten Mal EINHNDL zurckgegeben.
     Handle 7 ist geschlossen.
  5. Handle 7 wird neu geffnet (mit einer Datei).
  6. STDOUT wird auf eine Datei (Handle 7) umgelenkt.
     Der Referenzzhler fr Handle 7 ist also 2.
  7. Die Datei "CON:" wird noch einmal geffnet. Da Handle 8 nicht
     geschlossen wurde, wird EACCDN geliefert, jedoch von MANVIEW ignoriert.
  8. STDOUT wird intelligenterweise nach <EACCDN> umgelenkt, was Mag!X mit
     EINHNDL quittiert, aber von MANVIEW wieder ignoriert wird.
     STDOUT zeigt also weiterhin auf Handle 7.
     Der Referenzzhler fr Handle 7 bleibt also 2.
  9. Um einen Fehler im TOS (!) zu umgehen, wird intelligenterweise das
     Handle 7 zweimal geschlossen. Weil der Referenzzhler 2 war, geht dies
     ohne Fehlermeldung ab, der Referenzzhler ist 0.
     STDOUT zeigt auf das _UNGLTIGE_ Handle 7.
 10. Handle 7 wird neu geffnet (mit einer Datei).
     Jetzt zeigt STDOUT auf Handle 7 (also auf die Datei), aber der
     Referenzzhler ist nur 1.
 11. STDOUT wird auf Handle 7 umgelenkt.
     Dazu wird erst die bisherige Umlenkung (war schon Handle 7) geschlossen,
     dabei wird Handle 7 vllig geschlossen. Die neue Umlenkung ist jetzt
     ungltig, Mag!X lenkt die Datei wieder nach CON: um.

  Um das Dilemma zu umgehen, fllt mir z.Zt. keine Universallsung ein. Wenn
  man dann noch bercksichtigen mu, da zur Befriedigung irgendwelcher vllig
  maroden TOS- Versionen noch gefhrliche Spielchen getrieben werden, wird
  das ganze noch etwas problematischer.

- Achtung: Beim Betrieb mit parallel arbeitendem Plattentreiber (HDDRIVER
           4.x) drfen keine Cache-Programme wie TCACHE verwendet werden,
           weil sie i.a. nicht reentrant sind.
  Achtung: Das gleiche gilt fr SPEEDO-GDOS, auch dieses ist nicht reentrant.

- Die interne Hardcopyroutine fr 9-Nadel-Epsondrucker ist aus dem BIOS
  rausgeflogen. Statt der ALT-Help-Routine, Scrdmp und Prtblk sind nur noch
  Dummy-Routinen vorhanden.
  Das beiliegende Programm HARDCOPY.PRG installiert die bisher im BIOS
  integrierten Hardcopy-Funktionen. Das Programm lt sich nur unter MagiC
  starten. Aber Achtung: Es hat keine Abfrage auf die MagiC- Version und darf
  unter MagiC 2.0 oder lteren 3.0- Versionen nicht gestartet werden.

- Bei wind_get(WF_TOP) den Hack fr Tempus entfernt.
  Tempus KANN JETZT NICHT MEHR LAUFEN!!!!!!!! Bei Problemen bitte an Wilfried
  wenden.

- Auf besonderen Wunsch zweier einzelner Herrn, die immer paarweise genannt
  werden, wird der Kreuzchenbutton im 2D- Modus nicht mehr im Modus XOR,
  sondern REPLACE gezeichnet.
  Es ist daher darauf zu achten, da im 2D-Modus der Hintergrund wei ist,
  sonst gibt es Grtze.

- Ist die Auflsung ungeeignet, um Fenster mit 3D-Rahmen darzustellen, wird
  die Breite des 3D-Rahmens verkleinert. Vorher waren smtliche 3D-Buttons
  leer.
  Es wird dringend empfohlen, in TT low auf 2D-Darstellung zu schalten.

- Erinnerung: Pipes mit Modus 4 (Pseudo-TTYs) werden nicht untersttzt. MagiC
  kennt nur uni- und bidirektionale Pipes und erstellt bei Modus 4 eine
  bidirektionale Pipe. Der Hauptgrund fr Pipes sind zur Zeit das Drag&Drop-
  Protokoll. Alles andere ist noch Spielerei.

- Fsfirst/next knnen keine relativen Symlinks dereferenzieren, wenn das
  durchsuchte Verzeichnis nicht das aktuelle ist. Hintergrund: Der
  altertmliche Mechanismus lt bei Fsnext() keine Rckschlsse auf das
  Verzeichnis zu, in dem gerade gesucht wird und von dem aus der Symlink
  verfolgt wird.
  Abhilfe: Absolute Symlinks oder noch besser gleich Dxreaddir verwenden.
