-
Notifications
You must be signed in to change notification settings - Fork 7
/
history.6
1670 lines (1459 loc) · 78.8 KB
/
history.6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Liste der neuesten Žnderungen/Bemerkungen zu MagiC 6
====================================================
======================= VERSION 6.00alpha =======================
11.1.98
-------
- AES: Neuen Window-Manager eingebaut.
Er verwaltet die Fensterstrukturen dynamisch und macht bei jedem
wind_create() ein Malloc() und bei wind_delete() ein Mfree().
- AES: Fensterbehandlung generell beschleunigt. Das betrifft alle
Operationen (”ffnen/schliežen/Redraws/verschieben/scrollen/...).
- AES: Bit 7 des FLG in MAGX.INF schaltet graue 3D-Mens und Submens ein.
- AES: Schnittstelle fr alternativen Fensterrahmen-Manager eingebaut.
- MAGX.INF: Eintrag #_SLB <ver> <name> eingebaut.
- AES: SLBs/ACCs/APPs erst ganz zum Schluž laden.
- AES: Neue fatale Fehlermeldung: "Fataler Fehler in Fensterverwaltung"
- WINFRAME: Alternative Fensterrahmen. Bitte nur ab 16 Farben einsetzen.
Installation:
- Abschnittkennung [shelbuf] vor #_CTR in MAGX.INF einfgen, damit der
Abschnitt [aes] korrekt abgeschlossen ist.
- Eintrag "#_SLB 0 WINFRAME.SLB" in MAGX.INF, natrlich in den
Abschnitt [aes].
- WINFRAME.SLB nach /gemsys/magic/xtension.
- WINMAN.RSC aufs Wurzelverzeichnis des Bootlaufwerks (das werde ich
natrlich noch „ndern).
18.1.98
-------
- DOS: Sind auf einem (V)FAT-Medium lange Namen vorhanden, aber nicht
aktiviert, werden bei Dgetpath() nur kurze Namen geliefert.
- AES: Beim Verschieben des obersten Fensters wird auch der obere Teil des
Fensters korrekt neu gezeichnet.
Damit ergeben sich mit den neuen Fensterrahmen und QED keine Redraw-Fehler
mehr, wenn das oberste Fenster ein Pixel unter der Menleiste lag.
- AES: Wenn ein Scrollpfeil das 3D-Flag ACTIVATOR hat, wird ein evtl.
vorhandenes erstes "child" bei der Selektion um ein Pixel nach rechts
unten versetzt.
- AES: Slidergr”že -1 wird wieder korrekt behandelt.
- AES: Fehler bei der Einbindung eines alternativen Fensterrahmen-Managers
beseitigt.
- AES/WINFRAME: Der alternative Fensterrahmen-Manager legt die H”he des
ge-shade-ten Fensters fest.
- AES/WINFRAME: Das Flag "kein expliziter Bdrop-Button" aus MAGX.INF
wird ausgewertet.
- WINFRAME: Name bei ikonifiziertem Fenster kleiner.
- WINFRAME: Name und Info werden auf leere Zeichenkette initialisiert.
- WINFRAME: diverse optische Feinheiten fr die Breite des Namensfelds.
- WINFRAME: Das Fenster kann am 3D-Rahmen verschoben werden, jedoch nur
aužerhalb des Gr”ženfelds.
- WINFRAME: Fenster ohne alle Elemente bekommen nur einen einfachen
3D-Rahmen (ben”tigt 2 Pixel).
- Die Abschnittkennung vor #_CTR in MAGX.INF muž natrlich lauten
"#[shelbuf]", Wilfried hatte das '#' vergessen, ebenso bei "#[aes]",
daher wurde die Datei nicht korrekt ausgewertet.
- AES: Sinnlos Zeit vergeudet, einen Fehler im Zusammenhang mit PRINTMON
zu finden. Es gibt keinen im AES, es befolgt korrekt alle Aufrufe.
- CALAMUS-98: Der H„nger lag natrlich an Calamus, aber ich habe einen
Workaround eingebaut. Ursache: wind_set(WF_NAME/WF_INFO) fr ein Fenster,
das weder NAME noch INFO hat. Jetzt liefert wind_set() bei diesem Unsinn
explizit 0 zurck.
- AES: Neue fatale Fehlermeldung: "Zuwenig Speicher in Fensterverwaltung"
- AES: shel_find() komplett neu geschrieben. Da jetzt fr die Dateisuche
Fxattr() statt bisher Fsfirst() verwendet wird, sind nun lange
Dateinamen m”glich. Die neue Routine ist noch nicht vollst„ndig getestet,
daher kann es sein, daž z.B. PATH noch nicht korrekt ausgewertet wird.
22.1.98
-------
- AES: Bei G_ICONs wird jetzt auch, wie bisher nur bei G_CICONs, der Text-
hintergrund weggelassen, wenn als seine Breite 0 angegeben wurde.
- AES: Fehler im neuen shel_find() korrigiert. Sucht jetzt wieder im Pfad
des Programms.
- AES: weiterer Redraw-Fehler beim Nach-unten-Schieben von Fenstern behoben.
24.1.98
-------
- Environment-Variable SLBPATH wird zum Suchen nach SharedLibraries
ausgewertet. Ist diese Variable nicht gesetzt, wird wie bisher
nur in "<bootdrv>:/gemsys/magic/xtension" gesucht.
- SharedLibraries bekommen statt der Kommandozeile in der Basepage eine
Zeichenkette, die den kompletten Pfad der SLB-Datei enth„lt, also z.B.
"C:\GEMSYS\MAGIC\XTENSION\WINFRAME.SLB". Der Pfad wird _nicht_ im blichen
Format bergeben (1. Byte = L„nge), sondern als normale 'C'-Zeichenkette.
MagiC 5.20 bergibt hier nur Nullen.
SharedLibraries, die Konfigurationsdateien ben”tigen, sollten aus der
Basepage den Pfad extrahieren und den Dateinamen anh„ngen.
- WINFRAME: Sucht seine RSC-Datei im eigenen Pfad. Ihr k”nnt Eurer
Wurzelverzeichnis wieder aufr„umen.
- WINFRAME: Installiert sich nicht bei weniger als 16 Farben.
- wind_close() korrigiert, gibt jetzt den Speicher fr die Rechteckliste
des Fensters frei. Der "fatale Fehler in der Fensterverwaltung" sollte
jetzt nicht mehr auftreten.
- Doku: Ich habe die Doku fr das Editobjekt endlich fertiggestellt,
aužerdem die Doku ber das DOS erweitert und eine spezielle Datei zu
den Pipes geschrieben.
- Jetzt ist es raus: Das Submen bei Texel bleibt weiž, weil das Muster des
Hintergrunds auf "gefllt" statt "leer" gesetzt ist. Daher bringt der
Schalter 3D-Beckgraund halt nix.
- AES: Die erweiterte Form von shel_write() wurde um einen zus„tzlichen
Parameter erweitert. Das zus„tzliche Langwort gibt in Bit 0 an, daž die
Applikation keinen proportionalen AES-Zeichensatz vertr„gt.
- APPLICAT: Bei "Anwendung anmelden" kann angegeben werden, daž eine
Applikation keinen proportionalen AES-Zeichensatz vertr„gt.
- MAGXDESK 4: Bei shel_write() wird ggf. zus„tzlich die Information
bergeben, daž die Applikation keinen proportionalen AES-Zeichensatz
vertr„gt.
- Achtung!!!!
Wenn man angibt, daž eine Applikation keinen prop. AES-Zeichensatz
versteht, wird bisher (zu Testzwecken) lediglich appl_getinfo()
manipuliert, d.h. solche Programme bekommen immer die Daten des
Systemfonts.
Leider scheint das ausschliežlich bei wenigen Programmen
zu funktionieren:
- THING, PHOTO_ST, KOBOLD, TREECHECK, CORRECT und SCIGRAPH zeigen fr
alle eigenen Objekte wie gewnscht den Systemzeichensatz.
(THING: alte Version, neue sollen mit prop. Zeichensatz laufen)
Sie sind daher einigermažen bedienbar (SCIGRAPH blieb vorher sogar
komplett h„ngen).
- INTRFACE h„ngt sich nicht mehr auf, verwendet fr seine eigenen
Objekte den Systemfont, aber (!) in der Gr”že des eingestellten
prop. Zeichensatzes.
D.h. INTRFACE ermittelt die Zeichensatzh”he nicht (!) ber
appl_getinfo() ??!!??
- ADRESSE bleibt wie bisher plump h„ngen, also kein Effekt.
- QED verwendet weiterhin den AES-Zeichensatz, also nicht den, den
es ber appl_getinfo() erhalten h„tte.
- GEMINI verh„lt sich wie QED.
Damit ist das ganze Konzept also ziemlich sinnlos. Die Frage ist, wie
diese omin”sen Programme den AES-Zeichensatz ermitteln. Offenbar gibt
es aužer TEXEL kein einziges Programm, das appl_getinfo() verwendet.
=> Scheibenkleister!!!
Jetzt bleibt nur noch brig, zu versuchen, Kontakt mit dem Sch”pfer
oder dem Hter der omin”sen MyDials aufzunehmen, um herauszufinden,
was sich wer dabei gedacht hat. Mir f„llt jedenfalls nichts mehr ein.
Irgendwer hat jedenfalls tchtig herumgeschweinert, und ich muž die
Suppe jetzt ausl”ffeln.
26.1.98
-------
- Dummer Tippfehler in MAGXDESK 4: Beim Laden von Textdateien ber
Ctrl-Doppelklick wurden die in APPLICAT eingetragenen Informationen
ignoriert.
Jetzt zeigt QED bei korrekter Anmeldung den Systemzeichensatz in den
Dialogen.
- MGEDIT: Legt seine INF-Datei ins HOME-Verzeichnis.
- MGNOTICE: Legt seine INF-Datei ins HOME-Verzeichnis. Die Notizen selbst
liegen noch im GEMDESK-Verzeichnis, sind also Rechner-global. Das sollte
ich nochmal konfigurierbar machen.
Vielleicht w„re es ganz witzig, wenn es lokale und globale Notizen g„be?
z.B.: "Wilfried an Sven, bitte den Mll rausbringen".
- MGSEARCH: Legt seine INF-Datei ins HOME-Verzeichnis.
- neues MGCOPY: Legt seine INF-Datei ins HOME-Verzeichnis.
- neues MGCOPY: Ist die Best„tigung abgeschaltet, erscheint nicht kurz
der Wahldialog, sondern sofort der Fortschrittdialog.
- EDITOBJC.SLB: ^A selektiert den gesamten Text.
20.2.98
-------
- AES: Allen Unkenrufen (Hallo, Oliver!) zum Trotz haben die Behnes
eine M”glichkeit gefunden, die vermaledeiten MyDial-Programme zum Laufen
zu bringen. Diesen fiesen Hack habe ich jetzt eingebaut, er arbeitet
folgendermažen: Fr Unverbesserliche erstellt das AES nach dem ™ffnen der
VDI-Workstation eine zweite, Dummy-Workstation. Zeichensatz dieser Dummy-
Workstation bleibt der Systemzeichensatz in Default-Gr”že.
Die D”sbaddels kriegen jetzt bei graf_handle() diese Dummy-Workstation
pr„sentiert und damit ihr Fett weg.
Klappe zu und Affe tot.
- MGCOPY: Fortschrittsbalken klappt auch bei Verschieben auf demselben
Laufwerk.
- AES: wind_open() aužerhalb des Bildschirms erzeugt kein WM_MOVED mehr.
Der Effekt kam durch das automatische "Einblenden" beim ™ffnen eines
Fensters, wenn das Fenster unterhalb des Bildschirms lag.
- AES: Scrollende MultiTOS-Dialoge berschreiben beim Scrollen nicht mehr
die Pfeile.
- AES: Scrollende MultiTOS-Dialoge scrollen korrekt bei gedrckter Maustaste.
- DOS: Ist bei Slbopen() der usp ungltig (NULL), wird die open-Funktion
und ggf. die init-Funktion der slb im Supervisor-Modus ausgefhrt.
- DOS: Fehler bei Slbopen() beseitigt. Der Prozeždeskriptor des Aufrufers
wurde nicht korrekt an slb_open() bergeben.
- DOS: Fehler bei Slbopen() beseitigt: Absturz, wenn der Aufrufer kein
Environment hatte.
- MAGXDESK: Doppelklick auf rechter Maustaste geht wieder. Das ist beim
Umstellen auf MT_AES schief gelaufen.
- MAGXDESK: Start eines Programms bei keinem ge”ffneten Fenster stellt
nicht mehr falsches Default-Laufwerk ein.
- AES: wind_set(WF_KIND) wird untersttzt. Es wird versucht, in einigen
F„llen sinnvolle Redraws auszufhren.
- MAGXDESK4: Textmodus hat jetzt horiz. Scrollpfeile und -balken.
Iconmodus hat keinen horiz. Scrollbalken mehr.
- MAGXDESK 4: freier Speicher in Infozeile, rechtsbndig.
- MGEDIT,MGNOTICE,MGSEARCH,MGCOPY: Die INF-Datei wird korrekt ins
HOME gelegt, auch wenn der Pfad in der MAGX.INF einen abschlieženden
'\' enth„lt.
- VFAT: Bei UNICode-Zeichen, die keine ASCII-Ensprechung haben, konnte
es vorkommen, daž die Umwandlung in einer Endlosschleife stecken blieb,
z.B. bei 0x2308. Das sollte jetzt nicht mehr vorkommen.
- AES: Fehler im alten (internen) Fensterrahmen-Manager beseitigt. Trat
auf, wenn die Linien im Titel ausgeschaltet waren.
- AES: Fehler beim Aufl”sungswechsel beseitigt. Vor dem Schliežen der
physikalischen VDI-Workstation per v_clswk() durch das AES werden jetzt
zun„chst alle geladenen "shared libraries" geschlossen. Diese erhalten
dabei die Gelegenheit, vorher ihre virtuellen Workstations per v_clsvwk()
zu schliežen.
Das Problem trat bei WINFRAME.SLB (ben”tigt eine virtuelle Workstation)
und ohne NVDI auf (NVDI ist offenbar robuster).
- Bootvorgang: Neuer Eintrag in MAGX.INF:
#[boot]
log=<log-Dateipfad>
tiles=<Kachel-IMG-Dateipfad>
image=<IMG-Dateipfad>
Dabei bedeuten:
#[boot] Der neue Abschnitt, der in Zukunft vielleicht noch
mehr Informationen beinhalten soll.
log Eine Log-Datei, in die die BIOS-Ausgabe bis zum Start
des AES umgelenkt wird. Man kann hier natrlich
auch z.B. NUL: angeben.
tiles Kachelhintergrund wie bei MAGXDESK.
image Titelbild, das ber die Kacheln gezeichnet wird.
Es ist zu beachten, daž die Log-Datei aus Geschwindigkeitsgrnden nur
einmal ge”ffnet und einmal am Ende geschlossen wird. Falls also irgendein
amoklaufendes AUTO-Ordner-Programm das System abschiežen sollte, wird die
Datei nicht korrekt geschlossen, und das Dateisystem ist besch„digt.
Das Problem kann natrlich nicht auf einer HFS-Partition in MagicMac
auftreten; weiterhin kann man auch das Null-Device angegeben und damit
die Ausgabe vollst„ndig und risikolos unterdrcken.
Momentan werden nur IMG-Dateien und auch nur solche mit Bittiefen von
1, 2, 4 oder 8 Bit untersttzt. Die Umwandlung wird durch die
Bibliothek XP_RASTR.SLB und das Laden und Anzeigen durch LOAD_IMG.SLB
durchgefhrt. Diese Bibliotheken k”nnen natrlich in Zukunft fr andere
Dateiformate und andere Bildtiefen erweitert werden. Ebenso ist damit eine
sp„tere Umsetzung direkt in GDI-Aufrufe m”glich.
- AES: Bei allen TEDINFO-Objekten ist <te_font = 4> fr MagiC
reserviert. Bisher sind nur 0..2 fr MuliTOS, 3 und 5 fr TOS reserviert.
- AES: Neuer Eintrag in MAGX.INF:
#_INW lineh fontID monoFlag fontH
dabei bedeuten:
lineh Zeilenh”he fr die INFO-Zeile aller Fenster. Eine H”he von
0 bedeutet: Standardh”he
fontID Zeichensatz-ID fr die INFO-Zeile. Eine 0 bedeutet: derselbe
Zeichensatz wie fr den grožen AES-Text
monoFlag 1 („quidistant) oder 0 (proportional)
fontH Zeichensatzh”he fr vst_height
- DOS: Ich mužte leider das Format der SLBs „ndern. Neue Doku und neue
SLBs sind notwendig. Siehe SHARELIB.TXT
- Atari: Wird bei Maddalt() ein FRB angelegt (seit MagiC 5.04), so wird
jetzt auch ein Cookie eingetragen. Das klappt aber nur, wenn der Cookie
Jar gengend grož ist. Da diese Aktion i.a. im AUTO-Ordner als erstes
passiert, sollte das OK sein.
Diese Aktion betrifft nur solche Rechner, die nachtr„glich mit nicht
Atari-konformen RAM- und/oder Beschleunigerkarten ausgestattet wurden.
Z.B. den Ar...brenner.
- MAGXDESK 4: Fehler beim Deikonifizieren nach ALLICONIFY behoben. Es wurde
immer nur ein Fenster wieder hergestellt.
- MGCOPY: Falscher Fenstertitel bei "nicht Best„tigen" korrigiert.
- MGCOPY: Das Fortschritt-Fenster l„žt sich verkleinern, dies wird auch
in der INF-Datei vermerkt.
- MGCOPY: Bei abgeschalteten 3D-Effekten ist der Fortschrittsbalken
Grau (Muster 4) auf Weiž, und der Rahmen ist ein statt zwei Pixel breit.
- Beim neuen MXVDI konnte ich auf dem Mac keinen (!) Unterschied feststellen.
MagicMac startet nach wie vor mit weižem Bildschirm. Vielleicht fhrt schon
Thomas' Emulator das L”schen aus.
- MAGXDESK 4: Bisher konnten Verzeichnisses mit einem Speicherbedarf von
maximal 256kB eingelesen werden. Das Konzept wurde jetzt dynamisch
ausgelegt, die Grenze erh”ht sich auf 2MB.
Dennoch sollten lange Verzeichnisse tunlichst vermieden werden, da
MAGXDESK nicht sicherstellt, daž gengend Speicher fr das System frei
bleibt.
- Dateiauswahl: Bisher konnten Verzeichnisses mit einem Speicherbedarf von
maximal 128kB eingelesen werden. Das Konzept wurde jetzt dynamisch
ausgelegt, die Grenze erh”ht sich auf 2MB.
Dennoch sollten lange Verzeichnisse tunlichst vermieden werden, da
die Dateiauswahl nicht sicherstellt, daž gengend Speicher fr das System
frei bleibt.
- SEHR SEHR WICHTIG: MagicMac soll "Hintergrund-DMA"-f„hig sein. Dazu
habe ich drei der XFS-Funktionen auf "asynchronen Zugriff" (MacOS-
Jargon) umgestellt. Genau:
- zu dev_read() und dev_write() gibt es jeweils eine neue, asynchrone
Variante dev_pread() und dev_pwrite(), die bei eingeschaltetem
preemptivem Multitasking (d.h. ab Start des AES) verwendet wird.
Der neue MagiC-Kern (*.ram) ben”tigt also einen neuen Emulatorkern
(MagicMac Debug), den ich in einer Testversion beilege.
Ansonsten: ABSTURZ!!!
- xfs_sync() arbeitet jetzt etwas intelligenter und IMMER asynchron.
Da ich mit der mir zur Verfgung stehenden Compiler-Version nur die
Debug-Version und nur Version 2.0.4 von MagicMac erstellen kann, muž
ich genau diese Version beilegen. Erst wenn das Konzept seine Brauchbarkeit
bewiesen hat, kann ich Thomas Tempelmann den neuen XFS-Quelltext schicken,
damit er ihn in die aktuelle Version einbauen kann. Ich habe die MacOS-
Versionsabfrage entfernt, so daž dieses MagicMac auch unter OS 8 l„uft.
Bitte testet also die aktuelle Version, die ich leider nur auf meiner
AWS und nur unter System 7.6 ausprobieren kann!
Stabilit„t: Beim gleichzeitigen Compilieren unter PureC und Kopieren
mit MGCOPY habe ich "unm”gliche" Fehler erzeugen k”nnen, deren Ursprung
ich absolut nicht ergrnden kann. Im schlimmsten Fall strzt MagicMac ab,
und Ihr mžt den Mac neu booten. Da der Mac sein Dateisystem automatisch
und meiner Erfahrung nach sicher repariert, sind echte Datenverluste meiner
Erfahrung nach fast unm”glich, jedenfalls ist mir noch nichts derartiges
untergekommen. Nach Wilfrieds Erfahrungen l„uft m”glicherweise MacOS 8
auch stabiler als 7.x. Vielleicht l„uft auch einen Power-Mac stabiler als
mein "altes" Teil. Interessant ist fr mich auch, wie der aynchrone Transfer
auf einer IDE-Platte wirkt, die ja bekanntlich kein DMA verwendet.
Bedeutung: Gerade beim Hintergrunddruck ber das neue NVDI 5 ist es
sehr angenehm, wenn der Rechner w„hrend der dabei stattfindenden
Dateioperationen nicht "h„ngt". Auch zeigen sich die Vorteile des
asynchronen Transfers bei l„ngeren MGCOPY-Aktionen; aufgrund des
berlegenen (im Vergleich zu Windows95 B-) ) Thread-Konzepts bleibt dabei
die Dialogbox voll bedienbar.
Bisher hatten TT-Besitzer und solche, die einen "stabilen" Falcon hatten,
gegenber der Mac-Version einen grožen Vorsprung. Dort l„uft zusammen mit
dem HDDRIVER und CBHD der Hintergrund-Transfer bereits seit MagiC 3
problemlos. In Krze soll der Druckvorgang in MagicMac ebenfalls asynchron
stattfinden, was eine weitere Verbesserung bringt.
A propos: Ein MagicMac mit asynchronem Transfer verdient eigentlich mal
wieder einen etwas gr”žeren Versionssprung, also z.B. 2.3.
- AES: wind_set(WF_BEVENT) erweitert. MT_AES.H definiert:
#define BEVENT_WORK 0x0001 /* AES 4.0 */
#define BEVENT_INFO 0x0002 /* MagiC 6 */
Dabei bewirkt BEVENT_INFO, daž der Bereich der INFO-Zeile in Bezug auf
Mausklick-šbermittlung wie der Arbeitsbereich des Fensters behandelt
wird.
- MAGXDESK 4: Klick auf INFO-Zeile zeigt Alert mit freiem Speicher.
- MAGXDESK 4: Wenn eine neue MAGX.INF erzeugt wird, werden die Abschnitte
#[boot]
#[aes]
#[shelbuf]
erzeugt. Bisher wurde f„lschlicherweise "[aes]" statt "#[aes]" erzeugt.
- MAGXDESK 4: In den Dialogen "Disk-Informationen" und "Ordner-Informationen"
gab es einen šberlauf bei grožen Partitionen. Ich habe die L„nge der
Zeichenkette erweitert, so daž jetzt maximal 99GB m”glich sind.
- MGSEARCH: "Y2000 compliant".
25.2.98
-------
- MAGXDESK 4: Mit gedrckter Alt-Taste kann man ber "Ausschalten" das
AES neu starten. Ich habe das nur fr Programmentwicklung/Testzwecke
eingebaut, da es fr diesen Fall auf dem Mac bisher keine M”glichkeit
gab (kennt keinen Aufl”sungswechsel).
- MAGXDESK 4: Erster Versuch einer "Fensteroptimalgr”ženfunktion":
Bisher wurde INSERT wie der Maximalgr”ženknopf behandelt, jetzt bewirkt
er eine Optimalgr”ženfunktion. Das Konzept arbeitet in dieser ersten
Implementation so, daž die Anzahl der sichtbaren Spalten nach M”glichkeit
beibehalten und das Fenster unter keinen Umst„nden verschoben
wird. Wenn nicht alle Dateien dargestellt werden k”nnen, wird das Fenster
in der Vertikalen maximiert.
Ist das Fenster bereits "optimal", wird es in den vorherigen Zustand
zurckversetzt.
- appl_getinfo(): Unterfunktion 10 gibt Bit 12 als erweiterten shel_write()-
Modus an (wg. prop. Zeichens„tze).
- appl_getinfo(): Unterfunktion 13 erweitert, siehe folgenden Punkt.
- Zu form_popup(): Hier gilt dasselbe wie bei menu_popup(). Bei Verwendung
von Tastaturkrzeln sowie von Trennlinien sollte der Objekttyp G_SHORTCUT
statt G_STRING verwendet werden. Die Funktion objc_draw() hat sonst leider
keine M”glichkeit, festzustellen, woher sie kommt.
Das Vorhandensein des Objekttyps ist ber appl_getinfo(), Unterfunktion 13,
viertes WORD, Bit 3 erkennbar.
- Neuer Eintrag im Abschnitt [boot] in MAGX.INF:
cookies=<n>
Wenn <n> gr”žer als die voreingestellte Zahl der Cookies (z.Zt: 21) ist,
wird ein neuer Cookie-Bereich der angegebenen Gr”že alloziert.
29.2.98
-------
- Kleine Pixeleien an der Ausrichtung des Fenstertitels.
- Kleine Pixeleien in der Fensterversion der Dateiauswahl => keine doppelten
schwarzen Striche mehr links und rechts neben dem Auswahlbereich.
- Fensterverwaltung nochmals verbessert. Fr jedes Fenster wird eine
Minimalgr”že mitgefhrt, die bei wind_create() und wind_set(WF_KIND)
berechnet wird. Falls Interesse bestehen sollte, kann ich dieses GRECT
auch ber wind_set/get() zug„nglich machen.
- Einbindung des alternativen Fensterrahmens ge„ndert. Die Einbindung ist
jetzt bersichtlicher und flexibler, aužerdem muž der Fensterahmen-Manager
jetzt die Minimalgr”že festlegen.
- SEHR SEHR WICHTIG: Ich habe die "Hintergrund-DMA"-F„higkeit von MagicMac
jetzt st„ndig eingeschaltet. Dabei sind mir aber sporadisch Fehler
untergekommen:
MGCOPY meldet immer wieder ab und zu geheimnisvolle TOS-Fehler mit
positivem (!) Fehlercode (91). Dieser Fehler kann prinzipiell in
MGCOPY berhaupt nicht auftreten; das zeigt, daž irgendwo etwas
ziemlich durcheinander geraten ist. Komischerweise konnte ich den
Fehler jedoch nie reproduzieren.
Das scheint mir aber jetzt gelungen zu sein, und zwar beim Kopieren
einer grožen Datei (834034 Bytes) von einer Platte auf eine andere
Platte. Der Fehler kam manchmal beim Lesen, manchmal beim Schreiben.
Ich konnte den Fehler sofort vermeiden, indem ich WBDAEMON entfernte
(per Ctrl-Alt-Asc und Entfernen).
Das ganze scheint anzudeuten, daž mein MacOS 7.6 auf der AWS nicht
vernnftig reentrant ist, vermutlich kommt der SCSI-Manager mit
mehreren gleichzeitigen Anfragen durcheinander (MGCOPY und WBDAEMON
sind fr das MacOS _eine_ Applikation).
Teilt mir bitte mit, ob Ihr den Fehler auch so reproduzieren k”nnt
bzw. ob Ihr mit neueren MacOS-Versionen (8.0 oder 8.1) oder anderen
Rechnern (PowerPC) vielleicht bessere Erfahrungen machen k”nnt.
Ich kann das leider mangels MacOS 8.x und PowerPC nicht testen, bin
also auf Hilfe angewiesen.
Natrlich: Ihr mžt die unmittelbare Dateisicherung ausschalten.
Bremst das System sowieso frchterlich aus. Aužerdem schaltet die
Rechenzeitabgabe ans MacOS auch aus. Bei eingeschalteter Rechenzeit-
abgabe trat der Fehler bei mir noch h„ufiger auf, kann aber Zufall sein.
Hallo Ben: Meine AWS reagiert bei Rechenzeitabgabe ans MacOS nicht
deutlich tr„ger als ohne. Muž wohl an Deinem Rechner liegen. Oder
irgendein Mac-Programm fummelt herum.
Nochwas: Ich benutze die ADB-Maussteuerung und den NVDI-eigenen
Mausbeschleuniger. Aužerdem den Copy-Back-Cache des 040. Mit der
Cache-Einstellung "Ein", d.h. ohne Copy-Back, gibt es aber dieselben
Fehler.
7.3.98
------
- MGVIEW: Wertet zus„tzlich die Tasten BildHoch (Mac), BildRunter (Mac),
Ende (Mac) und Ende (MF-2) aus.
- Neue Informationen zum Problem des asynchronen Transfers auf dem Mac.
Ich habe das Problem folgendermažen eingekreist:
1. Das Problem tritt mit und ohne irgendwelche Systemerweiterungen
auf.
2. Das Problem tritt mit OS 7.6 und 8.1 auf.
3. Das Problem tritt (zumindest unter OS 7.6, das ich lieber als
8.1 benutze) nur dann auf, wenn ich Dateien auf das Startvolume
kopiere.
- Die minimal zul„ssige Fenstergr”že (fr CURRXYWH) kann jetzt per
wind_get() abgefragt werden (MT_AES.H entsprechend erweitert):
#define WF_MINXYWH 103 /* MagiC 6 */
Achtung: Der Aufruf existiert nur in MagiC, es gibt sonst leider keine
M”glichkeit, die Existenz des Aufrufs zu ermitteln.
- MAGXDESK verwendet wind_get(WF_MINXYWH) fr die Optimalgr”ženfunktion.
- Bzgl. systemglobaler Farbauswahl: Ich schlage die AES-Funktionsnummern
220 bis 229 vor, halte es aber fr sinnvoller, einfach eine Shared Lib
zu schreiben. Fr TOS, MiNT und konsorten mžte man dann noch eine
L”sung machen, die den Shared Lib Mechanismus nachbildet.
- Mac: Ich bin jetzt in der Lage, eine neuere Version von MagicMac zu
compilieren. Zur Zeit habe ich die Quelltexte fr die Version 2.2.4.
Damit es kein Durcheinander mit den von Tempi erstellten und damit
offiziellen Versionen gibt und da ich aužerdem nur die "Debug"-Version
erstellen kann (ich weiž leider nicht, worin sich bei Tempi die
Release-Version von der Debug-Version unterscheidet, aužer zus„tzlichen,
Zeit kostenden Sicherheitsabfragen auf der Mac-Seite), nenne ich das
Programm immer "MagicMac v.r.u AK Debug".
- Mac-XFS: Merkt sich jetzt immer die Zeit des letzten Zugriffs (lesen oder
schreiben) sowie den Status "asynchroner Zugriff aktiv". Damit wird
verhindert, daž der Wbdaemon (und damit PBFlushvol) w„hrend eines laufenden
Transfers aufgerufen wird.
Der Mechanismus ist noch unvollkommen und funktioniert nur bei einem
gleichzeitig laufenden Plattenzugriff, d.h. z.B. w„hrend eines
Kopiervorgangs ber MGCOPY. Fr weitere gleichzeitige Zugriffe muž ich
den Mechanismus noch verfeinern, aber es geht mir jetzt erstmal um
die Information, ob die Version so einigermažen l„uft oder nicht.
- MGCOPY: Eine Eigenschaft von MGCOPY definiere ich als "known bug", weil
ich sie nicht beheben will. Kopiert man Daten im Modus "umbenennen", so
wirkt diese Einstellung offenbar nur auf Dateien, nicht auf Ordner.
28.3.98
-------
- MAGXDESK 4 hat jetzt einen Rckw„rtspfeil. Der Schliežknopf des
Fensters schliežt sofort, der Rckw„rtspfeil reagiert auf Einzelklick.
- Der asynchrone Dateitransfer fr Mac-Laufwerke in MagicMac hat jetzt
hoffentlich seine endgltige Form erhalten. Fr die Abstrze, die auf
meinem Mac auftraten, hat sich folgender Fehler im MacOS
als verantwortlich herausgestellt, und zwar in PBFlushVol():
Wird PBFlushVol() aufgerufen, w„hrend irgendein asynchroner
Lese- oder Schreibvorgang aktiv ist, werden irgendwelche
Speicherbereiche berschrieben, bei MGCOPY z.B. der Bereich auf
dem Stapel, der den letzten Fehlercode enthielt. Daher die
"Fehlercode #113" oder "Fehlercode #89" Meldungen.
Dieses Problem habe ich mit einer Semaphore fr jedes
einzelne Mac-Volume umgangen. Dabei habe ich sichergestellt,
daž, wenn C: und D: auf demselben (ja, demselben, nicht etwa
nur dem gleichen!) Volume liegen, auch dieselbe (auch hier
dieselbe, nicht nur die gleiche) Semaphore verwendet wird.
Der Transfer verwendet in dieser MagiC-Version erstmals den Callback-
Mechanismus des MacOS so, daž damit die auf den I/O-Transfer wartende
MagiC-Task wieder aufgeweckt wird.
Der Transfer wird also voll ber den dafr vorgesehenen MagiC-Mechanismus
evnt_IO() abgewickelt, da hier eine deutlich bessere Rechenzeit-
Ausnutzung erreicht wird als mit den bisherigen appl_yield()-Schleifen.
1.4.98
------
- Maximalgr”ženknopf in Magxdesk ist Optimalgr”že.
- Der Diskzugriff in Magxdesk beim Schliežen von Fenstern sollte jetzt
nicht mehr auftreten.
- MGCOPY: Nicht JA, sondern Ja. Nicht NEIN, sondern Nein.
- Die neue Version l„uft bis Mitte Juli.
- minimale Gr”že des Shell-Puffers auf 8k statt 4k.
- Wichtig: Beim Booten wird unbedingt das neue img_slb ben”tigt, das
ich hier beifge. Es ist 15374 Bytes lang und vom 24.2.98. Diese Version
stammt von den Behnes und kann mehrere Dateiformate lesen (?).
Die alte XP_RASTR.SLB wird nicht mehr ben”tigt.
2.4.98
------
- MAGXDESK: Farbicon fr den Rckw„rtspfeil eingebaut. Dazu muž die
APPLICAT.INF in einen Editor geladen werden, und folgende Zeile muž
im Abschnitt [<Spezial>] hinter der FLDR-Zeile eingefgt werden:
PARD Zurck MAGICICN.RSC 132 "ZURUECK"
Natrlich vorher die neue, beigefgte MAGICICN.RSC installieren. Sie
enth„lt n„mlich das Icon 132. Man kann das Icon „ndern, indem man auf
den Papierkorb klickt und "Icon „ndern..." aufruft. Dann sind n„mlich
alle Icons der Kategorie "Spezial" „nderbar.
- MAGXDESK: Freier Speicher wird nicht mehr in %, sondern in K,M oder G
angezeigt. Wer sich ber die niedrigen Zahlen (HD-Diskette hat 1,3M)
wundert: Ich habe mit K=2^10, M=2^20, G=2^30 gerechnet.
6.4.98
------
- AES: Der weiže Schatten bei 3D-Fenstertiteln lag ein Pixel zu tief und
ein Pixel zu weit links.
- Alte Fensterrahmen: Die Einstellungen von WINCOLOUR wurden bei allen
Fensterelementen nicht bercksichtigt, die vom Typ G_BOXCHAR sind.
- AES: Bei pdlg_create() wird ein Slbopen("PDLG.SLB",0) durchgefhrt.
Bei Erfolg wird in den AES-Dispatcher zurckgesprungen, bei Mižerfolg
wird eine 0 in intout[0] und eine NULL in addrout[0] geschrieben.
- MAGXDESK: GB statt G, MB statt M, KB statt K.
9.4.98
------
- Asche ber mein Haupt! Der vermeintliche Code, der bei menu_attach()
das Submen mit FL3D_BACKGR eingrauen sollte, war in meinem Quelltext
nicht mehr drin, vielleicht auf meinem TT verloren gegangen. Kein Wunder,
daž Texels Subemens immer unschuldig weiž waren.
Ist jetzt korrigiert und funktioniert.
- Der alternative Fensterrahmen funktionierte bisher nur bei einem
Objektraster von 8*16.
Das ist jetzt sowohl fr Rasterbreite wie -h”he korrigiert. D.h. der
Fensterrand ver„ndert seine Ausmaže nicht mehr mit dem Raster.
Wenn ich, wie ich Olaf schon vor 10 Jahren gesagt habe (leier, leier, ...)
in INTRFACE die Objektausmaže vernnftig h„tte einstellen k”nnen, w„re
das alles kein Problem gewesen...
Schimpf!!!
- Anmerkung: Das (V)FAT-Dateisystem weist (schon immer und auch zumindest
in einigen TOS-Versionen) eine kleine Inkompatibilit„t zum MS-DOS Standard
auf, und zwar wird nur die Cluster-Nummer -1 (0xffff) als Dateiende
erkannt.
Soweit ich mich erinnere, k”nnen laut Standard die Nummern
0xfff0..0xffff das Dateiende markieren. Der Gedanke dabei war wohl, daž
eine Datei entweder zu Ende oder ganz zu Ende oder gar ganz am Ende bzw.
endlich sein k”nnte, aužerdem wollte man sich weitere Varianten
fr NT 6.0 offenhalten.
- Žnderungen der WDIALOG-, LISTBOX- und FNTMENU-Bibliothek von Sven&Wilfried
bernommen. fnts_close() und wdlg_close() geben x/y-Koordinaten zurck, und
beim Selektieren eines Listbox-Elements wird ab Wurzelobjekt gezeichnet.
Aužerdem stellt WDIALOG den Rand eines Dialogs nach Schliežen wieder her.
- Bei „quidistantem AES-Zeichensatz sollten eigentlich die alten Regeln bei
den Objektgr”žen gelten, d.h. die H”he einer RSC-Einheit sollte der H”he
des grožen Zeichensatzes entsprechen. Bzw. in der Praxis: Hat der
Eintrag #_TXB in der MAGX.INF eine "1" fr "„quidistant", so sollte
keine (!) #_OBS Zeile angegeben sein, damit das AES die RSC-Einheiten
entsprechend automatisch korrekt berechnet.
Trotzdem habe ich fr G”tz die Sonderbehandlung fr G_(BOX)TEXT Objekte
mit DECKEND und LINKSBšNDIG, die ich bei prop. Zeichens„tzen verwende,
ebenfalls eingebaut. D.h., wenn ein Objekt eine RSC-Einheit hoch ist, aber
der Zeichensatz zu klein ist (H”he < RSC-Einheit), so wird vor dem Zeichnen
des Textes eine weiže Box "untergelegt". Diese neue Abfrage resultiert in
einer etwas verlangsamten Ausgabegeschwindigkeit fr „quidistante AES-
Zeichens„tze (auch fr den Systemfont), aber erspart vielleicht ein paar
Telefonate an der Hotline.
- Default-Desktop-Hintergrund: Ich habe die Initialisierung folgendermažen
ge„ndert:
Das Muster wird zun„chst auf 50% Schwarz gesetzt ($41).
Das Muster wird ggf. aus der MAGX.INF ausgelesen und ver„ndert.
Ist der Bildschirm S/W und hat das Muster eine Farbe > 1, d.h.
ist das Muster nicht S/W, so wird es wieder auf 50% Schwarz gesetzt.
Wer also einen Eintrag fr 100% Hellgrau in der MAGX.INF hat, erh„lt, wenn
der Rechner in S/W-Aufl”sung startet, trotzdem ein Muster von 50% Schwarz.
Wer sich im VierteWeltLaden eineN AtomstromfilterIn gekauft hat und eine
Sonne auf seine katalysatorlose Ente geklebt hat und unheimlich auf einen
grnen Hintergrund steht, muž selbigen explizit in der MAGX.INF einstellen.
- MAGXDESK: In der INFO-Zeile der Fenster werden die Gr”ženangaben jetzt
mit 1000er-Punkten angegeben.
- MAGXDESK: Ermittelt das Trennzeichen fr Datumsangaben sowie die Reihenfolge
der Datumsangaben (TMJ/MTJ,...) aus dem _IDT Cookie.
Das Trennzeichen fr die Uhrzeit kann man mit dem Cookie offenbar nicht
angeben, ich habe es daher fest auf ':' gesetzt. Aužerdem ignoriere ich
die Angabe fr 12h/24h Darstellung, da ich bei 12h durch das AM/PM immer
eine andere Zeichenkettenl„nge erhalte und Probleme mit der
Spaltendarstellung bekomme.
- Achtung: Thomas Much weist darauf hin, daž der Aufruf wind_get() mit
WF_MINXYWH nur in MagiC existiert, es gibt sonst leider keine M”glichkeit,
die Existenz des Aufrufs zu ermitteln.
Ich denke, man muž die MagiC-Version abfragen. Leider gibt TOS offenbar
in intout[0] keinen vernnftigen Fehlercode zurck.
- Fehler bei Dgetpath() auf Laufwerk U: behoben. Der Fehler hatte sich
offenbar bei MagiC 5.10 eingeschlichen und bewirkt, daž der fhrende
Backslash fehlte (siehe 31.5.97).
- EDITOB.SLB: edit_evnt() liefert jetzt einen Fehlercode (=> EDITOB.TXT)
- MT_AES: G_SHORTCUT erg„nzt. Fehlercode bei edit_evnt() erg„nzt, Makros
fr fslx_...() erg„nzt.
- WINFRAME: Ich habe den Sonderfall "inneres Rechteck hat H”he 0"
bercksichtigt. Bisher hatte das Fenster dann immer ein "Loch".
Das Ergebnis ist, bedingt durch den leeren inneren Rahmen, der wie ein
schwarzer dicker Strich aussieht, nicht berauschend, aber zul„ssig, d.h.
das Loch ist gestopft.
- AES: Die Funktion objc_sysvar() um die Unterfunktion
MENUCOL 11
erweitert. Modus "set" ist verboten, "get" liefert je nach Systemeinstellung
zur Zeit 0 (WHITE) oder 8 (LWHITE, d.h. hellgrau).
- EDITOBJC.SLB: OneOffBug beseitigt, der zum Textpufferberlauf und zur
Zerst”rung der Speicherverwaltung fhren konnte.
- EDITOBJC.SLB: OneOffBug beseitigt, der falsche Zeichenposition zur
Pixelposition des Cursors berechnete.
27.4.98
-------
- DOS: Internen Speicher vergr”žert, um die Notwendigkeit fr ADDMEM
hinauszuz”gern.
- Neuen Mechanismus fr Installationsprogramme eingebaut, die bei der
Installation eines Programmes gleich eine Iconzuweisung usw. macht.
Zur Beschreibung siehe MOD_APP.TXT.
- EDIOBJC.SLB: edit_set_font() und edit_get_font() erweitert. Das neue
Flag "fontPix" gibt an, ob die Zeichensatzh”he in Punkten (0) oder
Pixeln (1) angegeben wurde.
- MT_AES: edit_set_font() und edit_get_font() erweitert, um Zeichengr”žen
statt in Pt alternativ in Pixeln angeben zu k”nnen.
- MT_AES: Makro fr edit_evnt() korrigiert.
- MAGXDESK: Ben”tigt unbedingt das neue System vom 27.4.98
- Dateiauswahl: Bercksichtigt den IDT-Cookie fr die Darstellung des
Datums. Er wird beim Start des AES abgefragt.
8.5.98
------
- MGCOPY: Bei falschen Kommandozeilen konnte das Programm abstrzen. Ich
habe das Problem durch eine Sicherheitsabfrage entsch„rft.
Symptom war: Wurden in MAGXDESK viele Objekte innerhalb eines Fensters
selektiert und dann an MGCOPY bergeben (zum Kopieren, L”schen usw.), so
kam es bei MAGXDESK zum šberlauf eines allozierten Puffers und damit zum
Abschneiden der an MGCOPY bergebenen Kommandozeile, die damit unvollst„ndig
und ungltig war.
- MAGXDESK: Bisher wurde ein Block von 10 kB alloziert, um Kommandos an
MGCOPY zu bergeben (per ARGV oder VA_START). Dieser Block ist jetzt
variabel grož, d.h. er wird ggf. beliebig oft dynamisch in 10 kB-Schritten
vergr”žert. Endlich kann ich mal Mshrink() bzw. Mgrow() richtig ausreizen.
Wenn der Block dahinter belegt ist, kopiert MAGXDESK die Daten in einen
anderen, neu allozierten Block um. Also gleiches Prinzip wie beim Einlesen
von Verzeichnissen.
- EDITOBJC.SLB: edit_set_format() berechnet bei Žnderung des <autowrap>-
Parameters die Anzahl der Zeilen neu. Doku EDITOB.TXT erg„nzt und korrigiert.
- wind_set(WF_NAME oder WF_INFO): Verursacht kein Neuzeichnen des ge„nderten
Objekts, wenn dieses nicht Teil des Objektbaums ist.
wind_set(WF_KIND) fhrte vorher bei ikonifiziertem oder ge-shade-tem
Fenster zu einer Endlosschleife im System.
14.5.98
-------
- AES: Shortcuts RETURN und TAB werden erkannt und ggf. rechtsbndig
ausgegeben.
- EDITOBJC.SLB: B”sen Fehler behoben, der beim zweiten Editobjekt zum
Programmabsturz fhrte.
- WINFRAME.SLB: wind_get(WF_WORKXYWH) fhrte bei ge-shade-ten Fenstern zu
einer falschen Berechnung. Beim internen Fensterrahmen-Manager gab es
keine Probleme.
17.5.98
-------
- EDITOBJC.SLB: Weiteren Fehler behoben, der zu falschen Zeichensatz-
Berechnungen fhrte, wenn mehr als ein Editobjekt im Spiel war.
- MGNOTICE 2.0: Neue Version unter Verwendung des Edit-Objekts.
21.5.98
-------
- TT-SCSI und Falcon-SCSI: Untersttzung von Bus-Arbitrierung.
- MAGXDESK: Auf besonderen Wunsch von ASH ist die Anzeige des ".."
Verzeichnis-Eintrags abschaltbar. Dafr habe ich mir die M”glichkeit
geschonken, die fliegenden Dialoge abzuschalten.
Konfigurierungsfetischisten werden eh' die Jinnee bevorzugen.
- INSTMAGC: Kopiert auf beiden Disketten zun„chst das Unterverzeichnis
MAGX_<n>/_COPY auf das MagiC-Laufwerk. Dadurch lassen sich die Dateien
besser auf die zwei Disketten verteilen. Ob's jetzt pažt?
- AES: Automatisches Nachladen von PDLG.SLB klappt jetzt. War nur ein
Tippfehler, aužerdem muž appl_getinfo(7) natrlich Bit 4 setzen.
23.5.98
-------
- PDLG.SLB: Das Konzept hat die Schwachstelle, daž zwar die SharedLib
automatisch bei pdlg_create() geladen, jedoch erst bei Terminieren des
Prozesses wieder freigegeben wird.
Da z.B. COPS pdlg_create() aufruft, sich aber nie beendet, hat es wenig Sinn,
PDLG.SLB immer nachzuladen (es bleibt nach dem ersten Aufruf durch COPS
sowieso im Speicher). COPS k”nnte natrlich Slbopen() und Slbclose() explizit
aufrufen, wie dies auch MGEDIT und MGNOTICE bei EDITOBJC machen, aber das
w„re eine weitere MagiC-Sonderbehandlung (unter TOS nicht notwendig, da
WDIALOG.PRG immer da ist).
Daher sollte man PDLG.SLB einfach in die MAGX.INF eintragen, wie ich dies
auch in der Release-Version gemacht habe. Gegenber WDIALOG.PRG ergeben
sich dann immer noch leichte Speicherplatzvorteile, ein besseres
Aufl”sungswechsel-Handling (SLB wird dabei automatisch entfernt und dann
neu geladen) sowie der fr mich gr”žte Vorteil: PDLG.SLB h„ngt nicht in
Trap #2.
- MAGICICN.RSC: 8-Bit-Icon fr NVDI entfernt.
- INSTMAGC: Bgelt CHGRES.PRG und CHGRES.RSC nicht ber.
- INSTMAGX: bernimmt die Zeilen
#_ENV HOME=
im Abschnitt
#[aes]
und
drives=
im Abschnitt
#[vfat]
aus einer ggf. vorhandenen, alten MAGX.INF.
Eigentlich sollte jede #_ENV-Zeile bernommen werden, aber ich befrchte,
daž ich mir dabei noch irgendeinen Fehler in INSTMAGC.PRG einfange.
- Wilfried: Ich habe nur ein tslice.cpx, und das ist immer 6034 Bytes.
Vielleicht sind mir irgendwelche CPXe mal verloren gegangen.
- Wilfried: MGVIEW ist auf disk #2
- Wilfried: RMSLINK kann ich nicht finden. Wo sollte das liegen???
- Wilfried: MCMD.TOS l„žt sich bei mir problemlos mit dem Beenden des
VT52 beenden. Das Binary enth„lt die Zeichenfolge XBRAKLME, und dann geht
es. Nur wenn das KLME nicht stimmt, bleibt MCMD im Speicher.
- Wilfried: Euer pdlg.slb macht bei slb_exit() irgendeinen Kram mit
appl_init() und appl_exit().
Bitte ENTFERNEN!!! T™DLICH!!!
- Wilfried: Ein Problem mit neuen Fenstern in MAGXDESK konnte ich nicht
erkennen. Ich hatte 8 Fenster in MAGX.INF eingetragen und konnte dann
ohne Probleme 20 ”ffnen.
- MAGXDESK: "Rckw„rtspfeil" statt ".." im Einstellungsdialog
- Release-Paket an ASH:
neues MGEDIT
neues MGSEARCH
neue VDI-Treiber in gemsys/
MGNOTICE in magic/start
MAGX.INF enth„lt "#_SLB PDLG.SLB"
neue Kernel
neues INSTMAGC
- DOS: Absturz beim automatischen Entfernen von SharedLibraries w„hrend des
Terminierens von Accessories beseitigt.
Genau:
Die slbclose-Funktion einer SharedLibrary wird normalerweise, d.h. wenn
der usp gltig ist, im User-Modus aufgerufen.
Beim Beenden eines Accessorys (egal ob per Pterm(), Pkill(), Ctrl-Alt-Esc
usw.) war aber der usp undefiniert.
Jetzt wird explizit ein NULL-Zeiger als usp eingetragen, dadurch wird
das DOS veranlažt, die slbclose-Funktion der SharedLibrary im
Supervisor-Modus aufzurufen.
- AES: Ich habe im Maus-Event-Handling eine Vereinfachung/Beschleunigung
vorgenommen. Damit ist eine m”gliche Ursache fr die manchmal
zer-formatierten Mens w„hrend des IMG-Treiber-Drucks beseitigt.
Ob es das bringt, weiž ich allerdings nicht. Bitte ausprobieren!
25.5.98
-------
- form_xdo: B”sen šberlauffehler beim Zeichnen des Eselsohrs in 2D behoben.
Gemeinerweise trat der Fehler mit den „lteren Mac-Bildschirmtreibern
nicht auf, auch nicht mit NVDI 4.11 auf dem Atari.
Folgender Effekt war zu beobachten: In S/W waren die Eselsohren komplett
schwarz, und, wenn irgendwann irgendein Alert oder Dialog verschoben worden
war, strzte MagicMac beim Herunterfahren ab.
- MagiC-Installationsprogramm auf dem Mac: Das Programm hat offenbar noch
einen Fehler. Alle Dateien erhalten dasselbe Datum, und zwar das Tagesdatum.
So geht das natrlich nicht! Wie soll man da jemals die Versionsbersicht
behalten?
- RELEASE-Archiv:
- neues Magic.img (mit Rahmen)
- neues TSLICE.CPX (grau)
- neues PDLG.SLB (interne AES-Aufrufe)
- neue Kernel fr Mac und Atari
fehlt laut Behnes noch: neue OSD-Dateien. Da ich ber diese Tierchen leider
keine šbersicht habe, warte ich auf neue Dateinen von den Behnes.
- noch ein Problem: MGNOTICE muž bei zuwenig Farben automatisch S/W anzeigen.
Das hat bei MGNOTICE 1.0 problemlos funktioniert, ich muž aber einen
„hnlichen Mechanismus in die 2.0 einbauen.
29.5.98
-------
- DOS: Neue Dcntl-Modi eingefhrt, da sich die alten mit dem Minix-XFS
beižen. Alle MagiC-Codes haben jetzt ein 'm' im HighByte. Unberhrt davon
bleiben die VFAT-Codes, die ihr 'V' behalten.
Die neuen Codes sind in MagiC 6 „quivalent zu den alten, d.h. es werden
beide Varianten erkannt:
KER_GETINFO (0x0100) -> MX_KER_GETINFO (0x6d00)
KER_DOSLIMITS (0x0101) -> MX_KER_DOSLIMITS (0x6d01)
KER_INSTXFS (0x0200) -> MX_KER_INSTXFS (0x6d02)
KER_DRVSTAT (0x0104) -> MX_KER_DRVSTAT (0x6d04)
KER_XFSNAME (0x0105) -> MX_KER_XFSNAME (0x6d05)
DEV_M_INSTALL (0xcd00) -> MX_DEV_INSTALL (0x6d20)
DFS_GETINFO (0x1100) -> MX_DFS_GETINFO (0x6d40)
DFS_INSTDFS (0x1200) -> MX_DFS_INSTDFS (0x6d41)
- MAGXDESK: Korrekte Fehlermeldung "Keine Fenster mehr." bei eben diesem
Fehler.
- MAGXDESK: Kann leider den Fehler mit den kleinen Fenstern nicht
nachvollziehen. Wenn ich "Arbeit sichern" aufrufe und mir die INF-Datei
ansehe, ist sie immer 100% OK.
- MT_AES: MT_appl_search() korrigiert.
- EDITOBJC.SLB: T”dlichen Fehler bei edit_set_font() korrigiert. Der Wechsel
der Zeichensatzh”he fhrte unter MGEDIT zum Programm-Absturz.
- MGEDIT: Abstrze entfernt, die durch Linken mit neuem MT_AES entstanden
waren.
- MGNOTICE: Setzt die Zeichenfarbe automatisch auf Weiž, wenn der
Hintergrund eine nicht darstellbare Farbe hat. D.h. Notizen, die schwarz
auf gelb eingegeben wurden, erscheinen auf einem S/W-Bildschirm weiž
auf schwarz (wie bei der alten MGNOTICE-Version).
- INSTMAGC: "#_DEV"-Zeile wird aus alter MAGX.INF bernommen.
- objc_draw(): Clipping-Fehler bei G_(F)(BOX)TEXT behoben.
- interner Fensterrahmen-Manager: Bercksichtigt Fensterfarben (WINCOLOUR)
jetzt auch wieder fr Scrollbalken.
- rsrc_load(), shel_find(), Slbopen(): Ein Fehler in der zentralen
Datei-Finde-Routine fhrte zu unvorhersagbaren Resultaten, wenn die PATH
bzw. SLBPATH Variable leere Pfade enthielt oder mit einem ';'
abgeschlossen war.
- RELEASE-Archiv:
- neues PDLG.SLB
- neue Kernel fr Atari und Mac
- neues EDITOBJC.SLB
- neues MGEDIT.APP
- neues MAGXDESK.APP
- neues MAGICICN.RSC
- HRD entfernt
- neues INSTMAGC.PRG
- neues MGNOTICE.APP
- neue OSD-Treiber
- neue MFM-Treiber und OSD-Treiber fr Mac
- MGNOTICE.TXT aus dem START-Ordner entfernt. Bitte, ASH, berlegt
Euch, ob die Anleitung fr MGNOTICE notwendig ist bzw. ob sie
im Handbuch in Papierform schon vorliegt.
- Kann leider auf dem Mac kein Problem beim Start von PAPILLON bei
gedrckter Alt-Taste feststellen.
- AES: MT-sicherer Aufruf von vsc_form(). Vielleicht sind die Redraw-Probleme
beim Umschalten der Applikation w„hrend des IMG-Drucks jetzt beseitigt.
Bitte ausprobieren!
- VFAT-XFS: Bei der Umwandlung eines Dateinamens in das 8+3 Format wurde fr
den Fall, daž der Name mehrere Punkte enth„lt und der eigentliche Dateiname
8 Zeichen oder mehr enth„lt, f„lschlicherweise der Namensteil nach dem ersten
Punkt als Erweiterung erkannt. Jetzt wird korrekt der Teil nach dem letzten
Punkt verwendet.
- Bemerkung: Offenbar hat QED 4.5beta einen Fehler: Die Dateiauswahl bietet
"*.*" statt "*" an. Damit werden Dateien ohne Erweiterung unsichtbar.
- neues MGFORMAT: Behandlung der MGFORMAT.INF wie bei den anderen Programmen,
d.h. im ASCII-Format und aus $HOME. Bitte testen, damit wir uns jetzt nicht
noch b”se Fehler einhandeln.
9.6.98 (release an ASH)
------
- Atari-Version: Supervisorstack pro Task von 5k auf 8k erh”ht. Auf Wilfrieds
Fo:ken gab es immer einen Stapelberlauf beim Start von Programmen im
"single mode". Auf dem TT trat der Fehler nicht auf.
20.6.98
-------
- Weiteren Fehler in QED 4.5beta gefunden: Nicht nur hat es Probleme mit
Leerzeichen in Pfaden, sondern auch einen Fehler in der RSC: Die Menleiste
ist nicht weiž, sondern schwarz. Daher wird das Flag FL3DBAK nicht, die
Menleiste bleibt also weiž, auch wenn das entsprechende Bit in der
MAGX.INF gesetzt ist.
- EDITOBJC.SLB: Backspace funktioniert jetzt auch, wenn der Cursor ganz
links oben im sichtbaren Textausschnitt steht.
- Mac-XFS: Fehler in xfs_dpathconf() korrigiert. Modus DP_MODEATTR liefert
jetzt das Bit DP_FT_LNK.
- Wilfried: Schick mir bitte mal die Angaben, die Dfree() fr Deine 4G-Platte
liefert! Ich kann in Magxdesk keinen Fehler finden, und die Anzeigefunktion
selbst ist i.o.
27.6.98
-------
- MAGXDESK: Ein Fehler bei Ctrl-W konnte in eine Endlosschleife fhren,
wenn kein MAGXDESK-Fenster offen war. Ursache war nicht, wie Sven vermutet
hatte, ein Deadlock.
Neue Version an ASH.
- Bug im Mac-XFS: Die Funktion Dfree() arbeitet auf solchen Mac-Volumes nicht
korrekt, die gr”žer als 2 GB sind oder die mit HFS+ formatiert sind.
Ersteres lieže sich beheben, indem die seit System 7.5.2 vorhandene
Mac-Funktion PBXGetVolInfo() statt bisher PBHGetVInfo() aufgerufen wird.
Die neue Funktion hat zwar 64-Bit-Felder fr freie und belegte Bytes,
jedoch sind die Eintr„ge ioVFrBlk (Anzahl belegter Bl”cke) und ioVNmAlBlks
(Gesamtanzahl Bl”cke) wie bei der alten Funktion nur 16-Bit grož. Sowas von
Kurzsichtigkeit! Noch sch”ner: Fr Kompatibilit„t lgen beide Funktionen im
Eintrag ioVAlBlkSiz, der zwar 32-Bit grož ist, aber bei HFS+ Volumes
kompletten Unsinn enth„lt (riesige Blockgr”žen statt der tats„chlich
vorhandenen 4k). Dieser Unsinn hat wohl das Ziel, das Produkt aus
ioVAlBlkSiz und ioVNmAlBlks immer dicht bei 2GB zu halten.
Fazit: Weder beim Compiler noch auf Apples WWW-Seiten gibt es den Hauch
eines Systemaufrufs, mit dem sich die Blockgr”že von HFS+ Volumes
abfragen l„žt.
Kein Wunder, daž Apple bis jetzt noch kein vernnftiges Betriebssystem
geschrieben hat. Erst die Oberpanne mit dem kaputten PBFlushVol(), und nun
ein nicht existierender Aufruf!
- An Sven&Wilfried:
NAME und INFO von Fenster #0 werden beim Start des AES auf "" initialisiert.
Sie k”nnten nur ge„ndert werden, wenn w_kind das Bit fr NAME bzw. INFO
enthielte, was aber nicht der Fall ist, da der Fenstertyp immer 0 ist.
- An Sven&Wilfried:
In der Tat kann ein Ger„tetreiber erkennen, ob er als Standard-Ger„t (<0)
ge”ffnet worden ist oder nicht. Standard-Ger„te haben stets fd_refcnt == -1.
Sie werden bei der Initialisierung des Systems sowie bei
Fforce(neg_hdl, ...) erzeugt.
fd_refcnt ist normalerweise 1. Es wird nur dann erh”ht, wenn ein Prozež
per Fforce() ein Standard-Handle auf dieses Handle umlenkt. Dann ist
fd_refcnt 2. Wenn nun der Prozež Kinder und Kindeskinder bekommt, wird
fd_refcnt jedesmal erh”ht. Auch dann, wenn andere Standardhandles ebenfalls
auf dieses Handle umgelenkt werden. Ein fd_refcnt von drei k”nnte z.B.
bedeuten:
FD referenzierbar als Prozež A, Handle 6.
FD referenzierbar als Prozež A, Handle 1.
FD referenzierbar als Prozež B (Kind von A), Handle 1.
Damit k”nnte der Druckertreiber so aussehen:
LONG write( FD *fd, LONG count, char *buf )
{
LONG err;
if (fd->refcnt == -1)
... Schnittstelle ”ffnen ...
err = DruckAusgabe( buf, count );
if (fd->refcnt == -1)
... Schnittstelle schliežen ...
return( err );
}
29.6.98
-------
- Heute eine l„ngere Debugging-Session auf dem guten alten TT. Leider l„uft
die Maus nur noch horizontal. Auch mal nett...
- Žnderung im AES:
Mens: Ist ein Men zu grož (pažt nicht in den festen Bildschirmpuffer), so
wird dieser feste Bildschirmpuffer zumindest ungltig gemacht, damit beim
Restore (Men wieder verlassen) kein Mist auf den Bildschirm kommt.
Beispiel: Das "Bearbeiten" Men in QED.
- Beim Einfrieren von Applikationen (z.B. beim "single start") war offenbar
seit langem (MagiX 1.0 ???) ein Fehler beim Verstecken der Fenster, der
m”glicherweise nur dann auftrat, wenn mehrere Applikationen Fenster offen
hatten und die Fenster eine bestimmte Reihenfolge hatten.
Es ist mir aber schleierhaft, warum der Fehler auf dem Mac nicht auftrat
und warum nicht schon frher. Ich weiž auch nicht, ob ich den Fehler
tats„chlich beseitigt habe.
Bitte, Ihr alle, die Ihr werweižwasfr Probleme mit dem Start von
Programmen im "single mode" hattet, probiert die neue Version mal tchtig
aus!
- Liebe ASH-ler: Bitte setzt die neuen Release-Versionen fr Atari und Mac
nur dann ein, wenn das "single mode" Problem behoben ist!
- Nur noch einmal mein Wissens-Status zum "asynchroner Dateitransfer" Problem: