Chodzi o to, że każdy program ma swoje standardowe wyjście (stdout), na które wypisywane są komunikaty / błędy wypisywane przez ten program. I jeżeli nie przekierujesz tego wyjścia gdzieś indziej, to najczęściej jest to okno konsoli.
A system Amigi działa tak, że gdy jakiś program próbuje coś pisać na stdout, to jak nie ma konsoli na którą mógłby to wypisać, to otwiera nowe okno konsoli (CON: ) i tam właśnie trafiają wszelkie komunikaty.
No i kiedy masz już otwarte okno konsoli (otwarte bo jakiś program z startup-sequence coś wypluł), i uruchamia się C:IPrefs (wczytujący ustawienia systemu, np tryb ekranu), to masz taki komunikat z prośba o zamknięcie wszystkich okien, oprócz katalogów. To okno które mu przeszkadzam to właśnie ta konsola.
Aby uniknąć otwarcia okna tej konsoli, musisz zapobiec sytuacji gdy jakiś program w wyniku swojego działania lub błędu będzie chciał coś wypisac na stdout. Najprościej zrobić to, przekierowując standardowe wyjście z konsoli gdzieś indziej. Słuzy do tego w Amiga DOS operator ">". Przekierowywac mozna w różne miejsca, np do pliku (spróbuj w shellu wpisać np :
list C:
a potem:
list >RAM:wynik.txt C:
To drugie polecenie przekieruje Ci wynik działania polecenia list z konsoli do pliku w RAM:
A jeśli nie interesuje Cie, co dany program ma do powiedzenia, możesz przekierować jego wyjście do "nicości". Służy do tego urządzenie logiczne NIL:
Nawiązując do poprzedniego wykonaj:
list >NIL: C:
Wynik działania zostanie wrzucony do "czarnej dziury", w linuksie analogicznym urządzeniem jest /dev/null.
Wracając do Twojego problemu, któreś z poleceń które masz przed C:IPrefs coś pisze na konsolę, otwierając ją. Spróbuj dopisać do poleceń, które nie mają przekierowania do NIL: takie przekierowanie.
Na pierwszy rzut oka podejrzane są:
C:StackAttack (zrób C:StackAttack >NIL: )
C:PatchRAM (zrób C:PatchRAM >NIL: )
C:TagLiFE (zrób C:TagLiFE >NIL: )
C:IconBeFast 0 (zrób C:IconBeFast >NIL: 0 )
Nie wiem czy to któryś z tych, ale szansa jest, bo nie maja przekierowania.
Dodatkowo StackAttack odpala się 2 razy.
Dodatkowo widzę, że warunkowo odpalane są skrypty S:Maxmem-sequence i S:Bootmenu-sequence. Tam tez może coś siedzieć co otwiera konsolę.
EDIT:
I rozumiem że w startup-sequence która masz na dysku, nie ma tych krzaczków z pierwszej linii, bo jeśli tak to AmigaDOS tez otworzy konsole z błędem w stylu "niepoprawne polecenie" czy coś w ten deseń... I to tez wystarczy IPrefs krzyczał o zamknięcie okien.
Ostatnia aktualizacja: 06.03.2017 22:57:29 przez vojo