home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 2002 January
/
STC_CD_01_2002.iso
/
MPC620
/
MPC620
/
HISTORY.6_2
next >
Wrap
Text File
|
2001-08-04
|
12KB
|
300 lines
Liste der neuesten Änderungen/Bemerkungen zu MagiC 6.1=>6.2
===========================================================
27.3.99
-------
- (X)BIOS: negative Funktionsnummern führen nicht mehr zum Systemabsturz.
5.4.99
------
- Atari: Neue Behandlung der Echtzeituhren. Falls Unregelmä₧igkeiten auftreten,
bitte melden.
- Atari: Beim Ermitteln und Setzen der IKBD-Uhr werden Werte 0..79 hoffentlich
jetzt korrekt als 2000 bis 2079 interpretiert. Das sollte jedoch nur ältere
STs ohne Echtzeituhr betreffen.
- shel_write() verarbeitet jetzt auch Kommandozeilen mit mehr als 32k Länge.
Damit kommt MGCOPY auch mit vielen Dateien klar, wenn es zum ersten Mal
gestartet wird (später werden Parameter über VA_START übergeben).
9.4.99
------
- MGEDIT: Das Beenden des Programms kann mit "Abbruch" im Alert
"Datei sichern? Ja/Nein/Abbruch" abgebrochen werden.
2.5.99
------
- Dies ist eine Testversion, daher bitte die alte 6.10 behalten! Die gro₧en
Umbauten enthalten bestimmt noch manchen Fehler!
Die gesamte Pexec()-Behandlung ist neu geschrieben, au₧erdem alles, was
mit Datei-Handles zu tun hat. Diese Version speichert die Handles lokal zu
jedem Proze₧, au₧erdem wird der F_SETFD/F_GETFD-Kram sowie O_NOINHERIT
unterstützt. P(v)fork() sollte also mit dieser Version richtig funktionieren.
- Fcntl(F_DUPFD) eingebaut.
- Fdup() dupliziert alle Handles.
- Fforce() kann alle Handles umleiten.
- Au₧erdem habe ich die Routine mit den bidirektionalen Pipes überarbeitet.
Sie sollte jetzt so wie unter MiNT funktionieren und die "creator"-Seite
nur einmal vergeben, und zwar beim Erstellen. Jedes weitere Öffnen öffnet
die "client"-Seite.
10.5.99
-------
- DOS: Diverse Fehlerkorrekturen im Zusammenhang mit dem neuen Handle-
Konzept (Shutdown, Fcntl(F_DUPFD), Proze₧name bei Pexec(200), ...).
- AES (Menü-Manager): Fährt man mit der Maus ins Menü, wird der Bildschirm
nicht mehr bis zum nächsten Mausklick gesperrt, wenn der Mauszeiger über
einen DISABLE-ten Menüeintrag bewegt wurde.
13.6.99
-------
- VT52: Jetzt funktioniert auch das Ikonfizieren. Ikonifizierte Fenster
werden mit einem Image als Inhalt dargestellt, eine Eingabe, Ausgabe oder
Markierung ist nicht möglich. Macht ein Programm Ausgaben in das Fenster,
wird dies am Wechsel des Fensterinhalts sichtbar.
17.6.99
-------
- Fcntl(F_DUPFD) gibt bei Erfolg im Hiword keinen Müll mehr zurück.
22.6.99
-------
- Beim Erstellen einer Pipe wird das Flag für "Pseudo-TTY" zumindest insoweit
ausgewertet, als bei einem "Seek" für solche Pipes 0 statt EACCDN
zurückgegeben wird.
- Permanent lange Dateinamen für U: einstellbar. Da sich U: nicht un-mounten
lä₧t, werden die langen Namen "temporär" eingeschaltet.
2.6.99
------
- Fclose() schlie₧t für Prozesse in der MiNT-Domain auch die Standard-
Dateien 0..5. Für Prozesse in der TOS-Domain werden nach wie vor die
entsprechenden BIOS-Geräte eingetragen.
3.6.99
------
- DOS Ssysconf() mit den Unterfunktionen 0,1,2 eingebaut.
30.6.99
-------
- AES: Für die Position des Unterstrichs, z.B. bei Buttons, werden nur noch
die Bits 8-11 verwendet, wie es bereits in der Dokumentation OBTYPES.TXT
beschrieben ist. Damit gilt für das High-Byte von ob_state:
0x00 - 0x0f genau einen Buchstaben unterstreichen
0x10 - 0xfe reserviert
0xff das ganze Objekt unterstreichen
- MAGXDESK: "Original finden" führt bei ungültigem Alias-Inhalt nicht mehr
zum Busfehler.
- AES, Menü-Manager: Ich habe das BEG_MCTRL entfernt, damit Tastendrücke bei
heruntergeklapptem Menü nicht beim SCRENMGR, sondern (wie vor MagiC 5.1)
bei der Applikation landen.
- Die Umlenkung der Boot-Ausgaben sollte jetzt wieder funktionieren. Ich habe
für den Zugriff auf das Dateihandle den Zeiger auf den aktuellen Proze₧
kurz umgebogen. Keine schöne Lösung, aber geht.
11.7.99
-------
- Die Domain (TOS/MiNT) wird bei Fork() vererbt.
5.8.99
------
- Die Umstellung des Handle-Konzepts auf MiNT-konforme proze₧lokale
Handles, auch für die Geräte-Handles -1,-2 und -3, hat mit sich
gebracht, da₧ die alte Umlenkung der Geräte-Handles und damit auch
der Standard-Handles 0..5 auf andere Gerätetreiber (z.B.
"u:/dev/xyz") nicht mehr funktionieren kann und darf.
Aus diesem Grund habe ich, ähnlich wie in MiNT, neue Einträge im
[boot]-Abschnitt der MAGX.INF eingeführt, mit denen diese Umlenkung
erfolgen kann. Weiterhin habe ich die Boot-Reihenfolge etwas
geändert und die Möglichkeit eingeführt, das Verzeichnis u:/dev
besser an den eigenen Rechner, z.B. den Milan, anzupassen. Das wird
z.B. dann interessant, wenn weniger (etwa kein MIDI) oder mehr
(mehrere serielle Schnittstellen) existieren als beim Original-
Atari (bisher waren Namen und Anzahl abhängig vom Rechnertyp, was
aber auf Macs und Milanen nicht sinnvoll ist).
Das Konzept im einzelnen:
1. Beim Booten werden zunächst alle Geräte in U:\DEV und
alle Handles normal angelegt, so da₧ sich für den
Hddriver, der DOS-Aufrufe zur Texteingabe/-ausgabe
verwendet, keine Änderungen ergeben.
2. Dann wird die Datei MAGX.INF eingelesen.
3. Es werden alle Handles -4 bis 5 wieder geschlossen und
damit ungültig. Weiterhin werden alle Geräte au₧er NULL aus
U:\DEV wieder gelöscht.
4. Gerätetreiber und Dateisystemtreiber werden geladen. Diese
können dann natürlich keine DOS-Aufrufe auf Gerätehandles
machen. Es müssen BIOS-Aufrufe verwendet werden. So ein
Treiber könnte sich daher aber z.B. als U:\DEV\CON
installieren.
5. Aus dem Abschnitt [boot] der MAGX.INF werden alle Einträge
mit dem Schlüsselwort "biosdev" bearbeitet. Hier kann man zum
Beispiel eine zweite serielle Schnittstelle mit
"biosdev=7,u:\dev\modem2" anmelden.
Die hier eingetragenen Geräte verwenden einen sehr einfachen
DOS-Treiber, der lediglich die BIOS-Funktionen aufruft, bis
auf Gerät 2 (mit Zeilen-Editor) und Gerät 3 (ostat und istat
sind bei MIDI vertauscht).
6. Wenn die Gerätedateien noch nicht existieren, werden
"u:/dev/con" mit BIOS-Gerät 2, "u:/dev/prn" mit BIOS-
Gerät 0 und "u:/dev/aux" mit BIOS-Gerät 1 zum zweiten Mal
erstellt.
7. Aus dem Abschnitt [boot] der MAGX.INF werden alle Einträge
mit dem Schlüsselwort "con", "aux" oder "prn" bearbeitet.
Hier kann man zum Beispiel die Tastatureingabe über Handle -1
auf ein anderes Gerät legen. Oder ein anderes Beispiel:
"prn=u:\dev\fastprn" meldet einen anderen Treiber für Handle
-3 an.
8. Jetzt werden alle noch nicht zugewiesenen Handles -1,-2 und
-3 mit den üblichen Dateien belegt, z.B. Handle -1 mit
"u:\dev\con".
9. Schlie₧lich werden die Standard-Handles des Boot-Prozesses
mit den negativen Handles belegt, also z.B. Handle 0 und 1
mit Handle -1.
Da ohne Änderungen an der MAGX.INF ein paar Dateinamen in u:/dev
fehlen werden, hier einige Beispiele für verschiedene Rechnertypen,
die zu ergänzen sind:
Atari ST:
biosdev=3,u:\dev\midi
biosdev=6,u:\dev\modem1
Atari Mega-STE:
biosdev=3,u:\dev\midi
biosdev=6,u:\dev\modem1
biosdev=7,u:\dev\modem2
biosdev=8,u:\dev\serial2
Atari TT:
biosdev=3,u:\dev\midi
biosdev=6,u:\dev\modem1
biosdev=7,u:\dev\modem2
biosdev=8,u:\dev\serial1
biosdev=9,u:\dev\serial2
Atari Falcon:
biosdev=3,u:\dev\midi
biosdev=6,u:\dev\modem1
biosdev=7,u:\dev\lan
26.12.99
--------
- Die Beta-Versionen haben jetzt kein Verfalldatum mehr.
- Die Grö₧e von U:\ wurde von 40 auf 64 Einträge vergrö₧ert. Trotzdem
frage ich mich, wie man soviele Einträge verbrauchen kann. Vielleicht, wenn
man alle Dateinamen klein schreibt?
- Für Dateisysteme, die Gro₧-/Kleinschreibung streng unterscheiden, habe ich
in den zur Dokumentation gehörenden *.H und *.C Dateien alle Verweise auf
Dateinamen (#include) konsequent auf Kleinschrift gesetzt.
30.12.99
--------
- Bösen Fehler aus MagicMac OS behoben, der dazu führte, da₧ das Mac-
Dateisystem nicht angesprochen werden konnte.
- Pgetuid(),Psetuid(),Pgeteuid(),Pseteuid(),Psetreuid(),Psetregid(),
Pgetauid(),Psetauid(),Pgetegid(),Pgetgid(),Psetgid() eingebaut.
Das bedeutet aber nur, da₧ die Funktionen aufgerufen werden und
irgendwelche Werte zurückliefern (werden auch bei Pexec() vererbt),
es ergeben sich im Gegensatz zu MiNT keine Einschränkungen für
Dateizugriffe, BIOS-Aufrufe, Uhrzeitfunktionen, Prozesse usw.,
d.h. man kann "fremde" Prozesse nach wie vor abschie₧en. Die
User/GroupID- Funktionen existieren nur aus MiNT-Kompatibilität.
Damit werden zur Zeit noch folgende MiNT-GEMDOS-Funktionen nicht
unterstützt (es gibt sicher aber inzwischen längst mehr davon):
Pnice()
Prusage()
Talarm()
Pmsg()
Fmidipipe()
Prenice()
Salert()
Tmalarm()
Zuzüglich einer Unmenge von Fcntl()-Funktionen, speziell für Terminals.
Pnice() und Prenice() lie₧e sich noch ziemlich leicht implementieren
(bzw. simulieren, denn sie hätten keine Auswirkung). Die ganzen Terminal-
Fcntls() sind eine Sysyphos-Arbeit, ebenso die noch nicht unterstützte
Spezial-Pipe (pseudo-TTY 0x04). Die Unix-Pipe (0x20) lie₧e sich
noch einigerma₧en leicht nachbauen, ist nur die Frage, wer sowas
braucht.
2.1.2000
--------
- Pnice() und Prenice() eingebaut. Die Werte werden nur gespeichert und
auf das Intervall -20..20 begrenzt, haben aber keine Auswirkung auf die
Ausführungspriorität. Das wäre auch völlig unsinnig, denn die Priorität
gilt ja nicht für den Proze₧, sondern für einen Thread, und man mu₧
unbedingt die Threads innerhalb eines Prozesses unterschiedlich priorisieren
können.
9.1.2000
--------
- Nichtinitialisierte Variable behoben, die beim Löschen der Gerätedateien
in u:\dev nach dem Bootvorgang beim Mac mitunter zum Absturz führte. Auf
meinem G3 hatte ich keine Probleme, auf dem AWS stürzte die vorherige
Version ab, aber nur, wenn ich das Titelbild eingeschaltet hatte.
- Der Mechanismus mit dem Festlegen der Gerätenamen in u:\dev sollte jetzt
auch auf dem Atari/PC funktionieren.
20.1.2000
---------
- Talarm() und Tmalarm() implementiert.
29.1.2000
---------
- Fehler im FAT32-Dateisystem beseitigt. Dfree() lieferte einen falschen
Wert für die Anzahl der freien Cluster, nachdem das Medium mindestens
einmal gewechselt wurde.
20.2.2000
---------
- Der FSINFO-Sektor bei FAT32-Dateisystemen wird jetzt (hoffentlich)
korrekt behandelt. Das Öffnen eines seit dem letzten Bootvorgang
nicht verwendeten FAT32-Laufwerks sollte jetzt deutlich schneller
gehen.
Die Daten im FSINFO-Sektor werden jedoch nur angefa₧t, wenn
tatsächlich Schreibvorgänge durchgeführt werden. Wird ein Laufwerk
nur lesend verwendet, werden auch ungültige Einträge im FSINFO-
Sektor nicht gültig gemacht, das erste Öffnen nach dem nächsten
Booten wird daher wieder langsam sein (da der freie Plattenplatz
durch Durchsuchen der gesamten FAT ermittelt wird).
2.10.2000
---------
- wind_set(WF_ICONFIFY): Wird als Rechteck {-1,-1-1,-1} übergeben, sucht sich
das AES selbst ein Plätzchen für das ikonifizierte Fenster. Dabei kann jetzt
auch der Platz genutzt werden, den das zu ikonifizierende Fenster belegt.
Durch einen Fehler wurde bisher das zu ikonifizierende Fenster bei der
Wahl des freien Platzes bereits als ikonifiziert angenommen, und daher
konnte das ikonifizierte Fenster dort nicht liegen.