home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 2002 January / STC_CD_01_2002.iso / MPC620 / MPC620 / HISTORY.6_2 next >
Text File  |  2001-08-04  |  12KB  |  300 lines

  1. Liste der neuesten Änderungen/Bemerkungen zu MagiC 6.1=>6.2
  2. ===========================================================
  3.  
  4.  
  5. 27.3.99
  6. -------
  7.  
  8. - (X)BIOS: negative Funktionsnummern führen nicht mehr zum Systemabsturz.
  9.  
  10. 5.4.99
  11. ------
  12.  
  13. - Atari: Neue Behandlung der Echtzeituhren. Falls Unregelmä₧igkeiten auftreten,
  14.   bitte melden.
  15. - Atari: Beim Ermitteln und Setzen der IKBD-Uhr werden Werte 0..79 hoffentlich
  16.   jetzt korrekt als 2000 bis 2079 interpretiert. Das sollte jedoch nur ältere
  17.   STs ohne Echtzeituhr betreffen.
  18. - shel_write() verarbeitet jetzt auch Kommandozeilen mit mehr als 32k Länge.
  19.   Damit kommt MGCOPY auch mit vielen Dateien klar, wenn es zum ersten Mal
  20.   gestartet wird (später werden Parameter über VA_START übergeben).
  21.  
  22. 9.4.99
  23. ------
  24.  
  25. - MGEDIT: Das Beenden des Programms kann mit "Abbruch" im Alert
  26.   "Datei sichern? Ja/Nein/Abbruch" abgebrochen werden.
  27.  
  28. 2.5.99
  29. ------
  30.  
  31. - Dies ist eine Testversion, daher bitte die alte 6.10 behalten! Die gro₧en
  32.   Umbauten enthalten bestimmt noch manchen Fehler!
  33.   Die gesamte Pexec()-Behandlung ist neu geschrieben, au₧erdem alles, was
  34.   mit Datei-Handles zu tun hat. Diese Version speichert die Handles lokal zu
  35.   jedem Proze₧, au₧erdem wird der F_SETFD/F_GETFD-Kram sowie O_NOINHERIT
  36.   unterstützt. P(v)fork() sollte also mit dieser Version richtig funktionieren.
  37. - Fcntl(F_DUPFD) eingebaut.
  38. - Fdup() dupliziert alle Handles.
  39. - Fforce() kann alle Handles umleiten.
  40. - Au₧erdem habe ich die Routine mit den bidirektionalen Pipes überarbeitet.
  41.   Sie sollte jetzt so wie unter MiNT funktionieren und die "creator"-Seite
  42.   nur einmal vergeben, und zwar beim Erstellen. Jedes weitere Öffnen öffnet
  43.   die "client"-Seite.
  44.  
  45. 10.5.99
  46. -------
  47.  
  48. - DOS: Diverse Fehlerkorrekturen im Zusammenhang mit dem neuen Handle-
  49.   Konzept (Shutdown, Fcntl(F_DUPFD), Proze₧name bei Pexec(200), ...).
  50. - AES (Menü-Manager): Fährt man mit der Maus ins Menü, wird der Bildschirm
  51.   nicht mehr bis zum nächsten Mausklick gesperrt, wenn der Mauszeiger über
  52.   einen DISABLE-ten Menüeintrag bewegt wurde.
  53.  
  54. 13.6.99
  55. -------
  56.  
  57. - VT52: Jetzt funktioniert auch das Ikonfizieren. Ikonifizierte Fenster
  58.   werden mit einem Image als Inhalt dargestellt, eine Eingabe, Ausgabe oder
  59.   Markierung ist nicht möglich. Macht ein Programm Ausgaben in das Fenster,
  60.   wird dies am Wechsel des Fensterinhalts sichtbar.
  61.  
  62. 17.6.99
  63. -------
  64.  
  65. - Fcntl(F_DUPFD) gibt bei Erfolg im Hiword keinen Müll mehr zurück.
  66.  
  67. 22.6.99
  68. -------
  69.  
  70. - Beim Erstellen einer Pipe wird das Flag für "Pseudo-TTY" zumindest insoweit
  71.   ausgewertet, als bei einem "Seek" für solche Pipes 0 statt EACCDN
  72.   zurückgegeben wird.
  73. - Permanent lange Dateinamen für U: einstellbar. Da sich U: nicht un-mounten
  74.   lä₧t, werden die langen Namen "temporär" eingeschaltet.
  75.  
  76. 2.6.99
  77. ------
  78.  
  79. - Fclose() schlie₧t für Prozesse in der MiNT-Domain auch die Standard-
  80.   Dateien 0..5. Für Prozesse in der TOS-Domain werden nach wie vor die
  81.   entsprechenden BIOS-Geräte eingetragen.
  82.  
  83. 3.6.99
  84. ------
  85.  
  86. - DOS Ssysconf() mit den Unterfunktionen 0,1,2 eingebaut.
  87.  
  88. 30.6.99
  89. -------
  90.  
  91. - AES: Für die Position des Unterstrichs, z.B. bei Buttons, werden nur noch
  92.   die Bits 8-11 verwendet, wie es bereits in der Dokumentation OBTYPES.TXT
  93.   beschrieben ist. Damit gilt für das High-Byte von ob_state:
  94.  
  95.   0x00 - 0x0f        genau einen Buchstaben unterstreichen
  96.   0x10 - 0xfe        reserviert
  97.   0xff            das ganze Objekt unterstreichen
  98.  
  99. - MAGXDESK: "Original finden" führt bei ungültigem Alias-Inhalt nicht mehr
  100.   zum Busfehler.
  101. - AES, Menü-Manager: Ich habe das BEG_MCTRL entfernt, damit Tastendrücke bei
  102.   heruntergeklapptem Menü nicht beim SCRENMGR, sondern (wie vor MagiC 5.1)
  103.   bei der Applikation landen.
  104. - Die Umlenkung der Boot-Ausgaben sollte jetzt wieder funktionieren. Ich habe
  105.   für den Zugriff auf das Dateihandle den Zeiger auf den aktuellen Proze₧
  106.   kurz umgebogen. Keine schöne Lösung, aber geht.
  107.  
  108. 11.7.99
  109. -------
  110.  
  111. - Die Domain (TOS/MiNT) wird bei Fork() vererbt.
  112.  
  113. 5.8.99
  114. ------
  115.  
  116. - Die Umstellung des Handle-Konzepts auf MiNT-konforme proze₧lokale 
  117.   Handles, auch für die Geräte-Handles -1,-2 und -3, hat mit sich 
  118.   gebracht, da₧ die alte Umlenkung der Geräte-Handles und damit auch 
  119.   der Standard-Handles 0..5 auf andere Gerätetreiber (z.B. 
  120.   "u:/dev/xyz") nicht mehr funktionieren kann und darf.
  121.  
  122.   Aus diesem Grund habe ich, ähnlich wie in MiNT, neue Einträge im 
  123.   [boot]-Abschnitt der MAGX.INF eingeführt, mit denen diese Umlenkung 
  124.   erfolgen kann. Weiterhin habe ich die Boot-Reihenfolge etwas 
  125.   geändert und die Möglichkeit eingeführt, das Verzeichnis u:/dev 
  126.   besser an den eigenen Rechner, z.B. den Milan, anzupassen. Das wird 
  127.   z.B. dann interessant, wenn weniger (etwa kein MIDI) oder mehr 
  128.   (mehrere serielle Schnittstellen) existieren als beim Original-
  129.   Atari (bisher waren Namen und Anzahl abhängig vom Rechnertyp, was 
  130.   aber auf Macs und Milanen nicht sinnvoll ist).
  131.  
  132.   Das Konzept im einzelnen:
  133.  
  134.     1. Beim Booten werden zunächst alle Geräte in U:\DEV und 
  135.        alle Handles normal angelegt, so da₧ sich für den 
  136.        Hddriver, der DOS-Aufrufe zur Texteingabe/-ausgabe 
  137.        verwendet, keine Änderungen ergeben.
  138.     2. Dann wird die Datei MAGX.INF eingelesen.
  139.     3. Es werden alle Handles -4 bis 5 wieder geschlossen und 
  140.        damit ungültig. Weiterhin werden alle Geräte au₧er NULL aus 
  141.        U:\DEV wieder gelöscht.
  142.     4. Gerätetreiber und Dateisystemtreiber werden geladen. Diese 
  143.        können dann natürlich keine DOS-Aufrufe auf Gerätehandles 
  144.        machen. Es müssen BIOS-Aufrufe verwendet werden. So ein 
  145.        Treiber könnte sich daher aber z.B. als U:\DEV\CON 
  146.        installieren.
  147.     5. Aus dem Abschnitt [boot] der MAGX.INF werden alle Einträge 
  148.        mit dem Schlüsselwort "biosdev" bearbeitet. Hier kann man zum 
  149.        Beispiel eine zweite serielle Schnittstelle mit 
  150.        "biosdev=7,u:\dev\modem2" anmelden.
  151.        Die hier eingetragenen Geräte verwenden einen sehr einfachen 
  152.        DOS-Treiber, der lediglich die BIOS-Funktionen aufruft, bis 
  153.        auf Gerät 2 (mit Zeilen-Editor) und Gerät 3 (ostat und istat 
  154.        sind bei MIDI vertauscht).
  155.     6. Wenn die Gerätedateien noch nicht existieren, werden 
  156.        "u:/dev/con" mit BIOS-Gerät 2, "u:/dev/prn" mit BIOS-
  157.        Gerät 0 und "u:/dev/aux" mit BIOS-Gerät 1 zum zweiten Mal 
  158.        erstellt.
  159.     7. Aus dem Abschnitt [boot] der MAGX.INF werden alle Einträge 
  160.        mit dem Schlüsselwort "con", "aux" oder "prn" bearbeitet. 
  161.        Hier kann man zum Beispiel die Tastatureingabe über Handle -1 
  162.        auf ein anderes Gerät legen. Oder ein anderes Beispiel: 
  163.        "prn=u:\dev\fastprn" meldet einen anderen Treiber für Handle
  164.        -3 an.
  165.     8. Jetzt werden alle noch nicht zugewiesenen Handles -1,-2 und
  166.        -3 mit den üblichen Dateien belegt, z.B. Handle -1 mit 
  167.        "u:\dev\con".
  168.     9. Schlie₧lich werden die Standard-Handles des Boot-Prozesses 
  169.        mit den negativen Handles belegt, also z.B. Handle 0 und 1 
  170.        mit Handle -1.
  171.  
  172.   Da ohne Änderungen an der MAGX.INF ein paar Dateinamen in u:/dev 
  173.   fehlen werden, hier einige Beispiele für verschiedene Rechnertypen, 
  174.   die zu ergänzen sind:
  175.  
  176.         Atari ST:
  177.         biosdev=3,u:\dev\midi
  178.         biosdev=6,u:\dev\modem1
  179.  
  180.         Atari Mega-STE:
  181.         biosdev=3,u:\dev\midi
  182.         biosdev=6,u:\dev\modem1
  183.         biosdev=7,u:\dev\modem2
  184.         biosdev=8,u:\dev\serial2
  185.  
  186.         Atari TT:
  187.         biosdev=3,u:\dev\midi
  188.         biosdev=6,u:\dev\modem1
  189.         biosdev=7,u:\dev\modem2
  190.         biosdev=8,u:\dev\serial1
  191.         biosdev=9,u:\dev\serial2
  192.  
  193.         Atari Falcon:
  194.         biosdev=3,u:\dev\midi
  195.         biosdev=6,u:\dev\modem1
  196.         biosdev=7,u:\dev\lan
  197.  
  198. 26.12.99
  199. --------
  200.  
  201. - Die Beta-Versionen haben jetzt kein Verfalldatum mehr.
  202. - Die Grö₧e von U:\ wurde von 40 auf 64 Einträge vergrö₧ert. Trotzdem
  203.   frage ich mich, wie man soviele Einträge verbrauchen kann. Vielleicht, wenn
  204.   man alle Dateinamen klein schreibt?
  205. - Für Dateisysteme, die Gro₧-/Kleinschreibung streng unterscheiden, habe ich
  206.   in den zur Dokumentation gehörenden *.H und *.C Dateien alle Verweise auf
  207.   Dateinamen (#include) konsequent auf Kleinschrift gesetzt.
  208.  
  209. 30.12.99
  210. --------
  211.  
  212. - Bösen Fehler aus MagicMac OS behoben, der dazu führte, da₧ das Mac-
  213.   Dateisystem nicht angesprochen werden konnte.
  214. - Pgetuid(),Psetuid(),Pgeteuid(),Pseteuid(),Psetreuid(),Psetregid(),
  215.   Pgetauid(),Psetauid(),Pgetegid(),Pgetgid(),Psetgid() eingebaut.
  216.  
  217.   Das bedeutet aber nur, da₧ die Funktionen aufgerufen werden und
  218.   irgendwelche Werte zurückliefern (werden auch bei Pexec() vererbt),
  219.   es ergeben sich im Gegensatz zu MiNT keine Einschränkungen für
  220.   Dateizugriffe, BIOS-Aufrufe, Uhrzeitfunktionen, Prozesse usw.,
  221.   d.h. man kann "fremde" Prozesse nach wie vor abschie₧en. Die
  222.   User/GroupID- Funktionen existieren nur aus MiNT-Kompatibilität.
  223.  
  224.   Damit werden zur Zeit noch folgende MiNT-GEMDOS-Funktionen nicht
  225.   unterstützt (es gibt sicher aber inzwischen längst mehr davon):
  226.  
  227.     Pnice()
  228.     Prusage()
  229.     Talarm()
  230.     Pmsg()
  231.     Fmidipipe()
  232.     Prenice()
  233.     Salert()
  234.     Tmalarm()
  235.  
  236.   Zuzüglich einer Unmenge von Fcntl()-Funktionen, speziell für Terminals.
  237.  
  238.   Pnice() und Prenice() lie₧e sich noch ziemlich leicht implementieren
  239.   (bzw. simulieren, denn sie hätten keine Auswirkung). Die ganzen Terminal-
  240.   Fcntls() sind eine Sysyphos-Arbeit, ebenso die noch nicht unterstützte
  241.   Spezial-Pipe (pseudo-TTY 0x04). Die Unix-Pipe (0x20) lie₧e sich 
  242.   noch einigerma₧en leicht nachbauen, ist nur die Frage, wer sowas 
  243.   braucht.
  244.  
  245. 2.1.2000
  246. --------
  247.  
  248. - Pnice() und Prenice() eingebaut. Die Werte werden nur gespeichert und
  249.   auf das Intervall -20..20 begrenzt, haben aber keine Auswirkung auf die
  250.   Ausführungspriorität. Das wäre auch völlig unsinnig, denn die Priorität
  251.   gilt ja nicht für den Proze₧, sondern für einen Thread, und man mu₧
  252.   unbedingt die Threads innerhalb eines Prozesses unterschiedlich priorisieren
  253.   können.
  254.  
  255. 9.1.2000
  256. --------
  257.  
  258. - Nichtinitialisierte Variable behoben, die beim Löschen der Gerätedateien
  259.   in u:\dev nach dem Bootvorgang beim Mac mitunter zum Absturz führte. Auf
  260.   meinem G3 hatte ich keine Probleme, auf dem AWS stürzte die vorherige
  261.   Version ab, aber nur, wenn ich das Titelbild eingeschaltet hatte.
  262. - Der Mechanismus mit dem Festlegen der Gerätenamen in u:\dev sollte jetzt
  263.   auch auf dem Atari/PC funktionieren.
  264.  
  265. 20.1.2000
  266. ---------
  267.  
  268. - Talarm() und Tmalarm() implementiert.
  269.  
  270. 29.1.2000
  271. ---------
  272.  
  273. - Fehler im FAT32-Dateisystem beseitigt. Dfree() lieferte einen falschen
  274.   Wert für die Anzahl der freien Cluster, nachdem das Medium mindestens
  275.   einmal gewechselt wurde.
  276.  
  277. 20.2.2000
  278. ---------
  279.  
  280. - Der FSINFO-Sektor bei FAT32-Dateisystemen wird jetzt (hoffentlich) 
  281.   korrekt behandelt. Das Öffnen eines seit dem letzten Bootvorgang 
  282.   nicht verwendeten FAT32-Laufwerks sollte jetzt deutlich schneller 
  283.   gehen.
  284.   Die Daten im FSINFO-Sektor werden jedoch nur angefa₧t, wenn   
  285.   tatsächlich Schreibvorgänge durchgeführt werden. Wird ein Laufwerk 
  286.   nur lesend verwendet, werden auch ungültige Einträge im FSINFO-
  287.   Sektor nicht gültig gemacht, das erste Öffnen nach dem nächsten 
  288.   Booten wird daher wieder langsam sein (da der freie Plattenplatz 
  289.   durch Durchsuchen der gesamten FAT ermittelt wird).
  290.  
  291. 2.10.2000
  292. ---------
  293.  
  294. - wind_set(WF_ICONFIFY): Wird als Rechteck {-1,-1-1,-1} übergeben, sucht sich
  295.   das AES selbst ein Plätzchen für das ikonifizierte Fenster. Dabei kann jetzt
  296.   auch der Platz genutzt werden, den das zu ikonifizierende Fenster belegt.
  297.   Durch einen Fehler wurde bisher das zu ikonifizierende Fenster bei der
  298.   Wahl des freien Platzes bereits als ikonifiziert angenommen, und daher
  299.   konnte das ikonifizierte Fenster dort nicht liegen.
  300.