Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Dodatkowe Klawisze Inaczej
  • Język programu: Basic
  • Platforma: Atari XE/XL
  • Kod zamieszczono w Bajtek 06/1989
  • Autor listingu: Wojciech Zientara
  • Listing nadesłał: Amarok

Stan listingu:

4
Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku

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

 

Pobierz: