Ready/Run
Takie sobie archiwum listingów ze starych magazynów komputerowych
- Język programu: Basic
- Platforma: Atari XE/XL
- Kod zamieszczono w Bajtek 06/1989
- Autor listingu: Wojciech Zientara
- Listing nadesłał: Amarok
Stan listingu:
Pokazany w poprzednim „Bajtku“ sposób uzyskania dodatkowych klawiszy nie wykorzystywał wszystkich możliwości dostępnych w systemie operacyjnym komputera.
Nieosiągalne pozostały jeszcze funkcje uzyskiwane w modelu 1200XL przez naciśnięcie klawiszy F1, F2 i F4 razem z CONTROL. Są one obsługiwane bezpośrednio przez procedurę przerwania wywołaną naciśnięciem klawisza i nie można ich funkcji przypisać innym kombinacjom klawiszy. Trzeba więc zmienić samą procedurę przerwania.
Można to zrobić kilkoma sposobami. Najczęściej rezerwuje się obszar pamięci operacyjnej komputera przez obniżenie górnej granicy obszaru dostępnego dla systemu (rejestr RAMTOP — adres 106). W takim miejscu umieszcza się nową procedurę przerwania (i ewentualnie inne dane), a adres tej procedury wpisuje się do wektora VKEYBD (520- 521). Poza zajęciem dodatkowego obszaru pamięci, metoda ta ma jeszcze jedną poważną wadę. Nie wystarczy bowiem przepisanie procedury w nowe miejsce i wskazanie go systemowi, aby procedura ta działała prawidłowo. Trzeba jeszcze dokładnie sprawdzić treść procedury i poprawić wszystkie skoki bezwzględne, gdyż w przeciwnym przypadku można spowodować zawieszenie się systemu albo, w najlepszym razie, przejście do wykonywania oryginalnej procedury znajdującej się w ROM.
Wszystkich tych trudności można uniknąć wykorzystując prezentowaną już w „Bajtku“ procedurę „ROMRAM“, która przepisuje system operacyjny z pamięci ROM do znajdującego się pod tymi samymi adresami obszaru RAM. Mając system operacyjny zapisany w pamięci RAM można dokonywać w nim dowolnych zmian. Dodatkową zaletą jest tu możliwość zmiany tablicy definicji klawiatury bez przepisywania jej w inne miejsce.
Procedura „ROMRAM“ jest zawarta w wierszach 1000-1060 zamieszczonego obok programu. W wierszach od 60 do 80 zapisane są zmiany w tablicy definicji klawiszy. Są one identyczne z podanymi w poprzednim „Bajtku“, lecz teraz zmiany są realizowane bezpośrednio w systemie, bez przepisywania tablicy. Trzy brakujące funkcje uzyskuje się po wykonaniu instrukcji umieszczonych w wierszach 90 i 100. Polega to na zmianie kodów kombinacji klawiszy wywołujących odpowiednie operacje.
Po wprowadzeniu wszystkich wymienionych wyżej zmian otrzymuje się nowe działanie następujących kombinacji klawiszy:
- SHIFT + CLEAR kursor do lewego górnego rogu
- SHIFT + INVERSE kursor do lewego dolnego rogu
- SHIFT + ESC kursor do lewego marginesu
- SHIFT + RETURN kursor do prawego marginesu
- CONTROL + ESC włącza i wyłącza dźwięk klawiatury
- CONTROL + 7 przełącza zestawy znaków (standardowy i międzynarodowy)
- CONTROL + 8 włącza i wyłącza działanie klawiatury
- CONTROL + 9 wyłącza ekran (włączenie następuje po naciśnięciu dowolnego klawisza
Korzystając z procedury „ROMRAM“ można w podobny sposób przeprogramować całą klawiaturę albo zrealizować nowe funkcje, nie istniejące dotychczas w systemie operacyjnym.
Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK
Jak zaladować (najprostsza metoda)
ALTIRRA:
- Zbootować dyskietkę.
- Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
- Cold Reset (Powinien wejść do Basica)
- LOAD "D0:KLAWISZE.BAS"
- RUN

Ten program ukazał się w reduksie "Bajtek nr 6/89"
- „3 mikrometry” Waldemar Siwiński
- „Komputerze, czy mówisz po polsku?” Marek Czarkowski
- „Ankieta "Bajtka"” Redakcja
- „Monitor na ścianie”
- „Karuzela pełna dyskietek” (JM)
- „Tłumacz” MB
- „Gry i gracze” mp
- „Krzyżówka”
- „Acorn R140 Workstation” (JM)
- „Ghettoblaster” Luke
- „Monty on The Run” Gen
- „Hot Shot” (mz)
- „CASIO SF 4000 i IF 8000” Dominik Falkowski
- „Montaż powierzchniowy” Jarosław Żurawski
