Ready/Run

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


Scroll w górę
  • Język programu: Basic
  • Platforma: ZX Spectrum
  • Kod zamieszczono w Bajtek 11/1988
  • Autor listingu: Grzegorz Krupa
  • Listing nadesłał: Faust

Stan listingu:

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

Prezentowany program umożliwia płynne (a nie skokowe jak w przypadku „scroll") przesuwanie zawartości ekranu do góry.

Wykorzystana została przy tym procedura z ROM-u zawarta pod adresem 8874 (#22AA), przeliczająca współrzędne punktu na jego adres w pamięci ekranu. Program zamienia współrzędne początku danej linii (przechowywane w rejestrze BC) oraz linii o jedną pozycję wyżej na adresy (umieszczane w rejestrze HL) i przesuwa całą linię (32 bajty) pod nowy adres. Tę procedurę uruchamia RANDOMIZE USR 32000. Procedura, zaczynająca się od adresu 32040, przerzuca zawartość pamięci ekranu wraz z atrybutami pod adres 36384, skąd można ją z powrotem „wsunąć” płynnie na ekran przez RANDOMIZE USR 32052, a następnie pokolorować przez RANDOMIZE USR 32080. Działanie podprogramu, rozpoczynającego się od adresu 32052, oparte jest na podobnej zasadzie z tym, że „nową” linię stanowi zawsze najniższa linia ekranu. Kolorowanie obrazu (RANDOMIZE USR 32040) polega na przemieszczeniu zawartości pamięci ekranu rozkazem ldir. O ile pierwsza z procedur może pracować samodzielnie, to pozostałe wymagają obecności pierwszej. Program może obsługiwać obrazy o długości do 22 wierszy. Wszystkie procedury napisane zostały w kodzie maszynowym, lecz można je wczytać z poziomu BASIC-a korzystając z poniższego programu ładującego, który zawiera również przykład praktycznego zastosowania programu.