![]() | ![]() |
Nieraz chcieliśmy zabezpieczyć nasz program przed przypadkowym zatrzymaniem czy też ciekawością wścibskich? Niestety BASIC umieszczony w ROM-ie ZX Spectrum nie posiada komendy ON BREAK. Poniższy program pozwala na przejęcie kontroli nad klawiszem BREAK.
Podprogram należy umieścić na początku programu. Uruchomienie odbywa się przez RANDOMIZE USR 60000. Następnie trzeba podać do której linii ma się odbyć skok. Dwubajtowy odpowiednik numeru linii zostaje wprowadzony pod adresy 60053 i 60054. Dwubajtową konwersję liczby X uzyskujemy według wzoru: X=256 * N+M. Najprostszym sposobem jest wprowadzenie do komputera RANDOMIZE X:PRINT PEEK 23670, PEEK 23671. Liczba po lewej stronie to M następna to N. Tak więc pod adres 60053 wprowadzamy M a pod 60054 Iiczbę N. W efekcie kolejna linia programu powinna wyglądać następująco:
RANDOMIZE USR 60000:POKE 60053,M:POKE 60054,N
Przed uruchomieniem programu proponuję umieścić go na taśmie, gdyż najmniejszy nawet błąd może spowodować jego zniszczenie. Podprogram musi się znajdować poza główną pętlą programu.
Istnieje także możliwość zapisania programu w formie kodu maszynowego. W tym celu "należy podać komendę SAVE "z" CODE 60000,72. Tak nagrany na taśmie program trzeba niestety wgrywać zawsze przed głównym programem. Wywoływanie go z pamięci odbywa się analogicznie jak w pierwszym przypadku.
