Wiem oczywiscie, ze tak jest... Wynika to trochę z tego, że program napisany jest systemowo.
Na poczatku (także przy zmianie katalogu czy dysku) robi kulturalne GR. 0, co powoduje przywrocenie kolorow systemowych, wiec natychmiast zmienia je na swoje oryginalne. A nie wie wtedy jakie mają być kolory, bo dopiero teraz czyta katalog i jak znajdzie w nim MSDOS.DAT, przechodzi do jego odczytu. Dopiero jak odczyta go w calosci, przechodzi do analizy i wyswietlania i dla oszczędności kodu to tu jest procedura wczytania parametrów.
Metody poprawienia tego widzę, nawet 3.
- zlikwidowanie kolorów domyslnych MSDOSA i pozostawienie systemowych (jakoś mi się to nie podoba)
- bezpośrednio po GR.0 (skoro mamy mignięcie na czarno) wyłączenie ekranu i włączenie go dopiero po wyswietleniu listy plików (też jakoś nie podoba mi się),
- robienie GR. 0 tylko raz na początku programu (bo i tak zawsze przy przerysowaniu jest wysyłany na ekran kod czyszczenia), przy okazji procedurę robiącą GR.0 możnaby przerzucić do bufora na dane - bo potrzebna będzie tylko raz i może potem zostać zamazana - to mi się podoba najbardziej, bo optymalizuje kod, a jak będzie wyglądało??? kto wie. Odpadną mrugnięcia, zmiany kolorów na systemowe, więc i konieczność odtwarzania kolorów MSDOSowych....
Obaczę co się da zrobić :)