Całkiem fajny pomysł, ale chyba na zupełnie nowy projekt. Powiem może jaki jest pomysł na mój wygaszacz i czemu powstał.
Pierwowzorem jest plemnik JBWa pod DOS-a (pecetowego). Widziałem go w redakcji Tajemnica Atari i tak mi się spodobał, że pomyślałem że może da się coś podobnego zrobić na Atari.
Wygaszacz ekranu na Atari (nie widziałem czegoś takiego w systemach na inne platformy 8-bit) ma za zadanie doprowadzać do równomiernego wypalania luminoforu telewizora w przypadku kiedy na dłużej nie dotykamy komputera i na monitorze znajduje się ciągle ten sam obraz (widziałem kiedyś zezłomowany monitor jakiegoś pecetowego terminala, na którym widniał pięknie wypalony prompt :]). Dlatego w systemie została przewidziana procedura, która po upływie ok 11 minut (256*128 ramek) odwraca cyklicznie kolory. Odbywa się to na przerwaniu VBLKI. Zaletą takiego podejścia do rzeczy jest to, że system nie zajmuje czasu procesora jakimiś czasochłonnymi działaniami dzięki czemu program użytkownika, który się w międzyczasie wykonuje, ma dla siebie praktycznie całą moc CPU.
Plemnik powstał z inspiracji i ze znurzenia systemowym trybem przyciągania uwagi. Stwierdziłem też że fajnie by było, gdyby nie trzeba było na niego czekać 11 minut, ale powiedzmy 3 (i taki właśnie był czas jego aktywacji w opublikowanej w TA wersji - taki czas zresztą jest nadal ustawiony domyślnie, choć w wersji dla SDX doszła parametryzacja). Miał za zadanie malować coś ciekawszego na ekranie nie obciążając zbytnio procesora tak, żeby program działający na komputerze nadal miał maksimum mocy obliczeniowej. Udało się to zrealizować w ten sposób, że cała procedura wygaszacza działa na dwóch przerwaniach: VBLKI mierzy jak dotąd czas bezczynności i ustawia krótszy czas oczekiwania przy opuszczeniu trybu, a na VBLKD realizowana jest procedura włączenia własnego ekranu ANTICa i skonfigurowanie GTIA tak, żeby pokazywał obraz z plemnikiem. Rysowany jest oczywiście tylko obraz składający się z 5 wierszy ekranu - reszta to puste linie dzięki czemu ANTIC przez większość czasu rysowania ekranu nie blokuje CPU. Ustawiane są wyłącznie rejestry sprzętowe dzięki czemu działanie plemnika jest niezauważalne dla pozostałych elementów systemu.
Twoje idea wygaszacza polegająca na uruchomieniu programu, który zajmie całkowicie procesor (mamy system jednozadaniowy) nasuwa mi na myśl program również autorstwa JBW, mianowicie XL Friend (popularnie zwany XLF a wchodzący w skład pakietu Quick Assemblera). XLF czekał na wciśnięcie klawisza SHIFT+CONTROL+1/2/3/4, zamrażał stan systemu i uruchamiał program przypisany do odpowiedniej kombinacji klawiszy - edytor, mapę znaków, kalkulator lub wglądownicę. Po skorzystaniu z programu stan systemu był odtwarzany i procesor wracał do wykonywania programu użytkownika. O ile XLF był bardzo przydatny i używałem go z DOS 2.5 i QA na porządku dziennym, o tyle wygaszacz ekranu zrealizowany w ten sposób (aktywowałby się oczywiście automatycznie po upływie wymaganego czasu bezczynności) zabierałby czas programowi użytkownika nie robiąc jednak nic konstruktywnego. No chyba, że zamierzasz wspomóc projekt SETI :) albo innego raka.
Nie zniechęcam jednak i gdybyś chciał coś takiego sam napisać służę pomocą.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje