Ready/Run
Takie sobie archiwum listingów ze starych magazynów komputerowych
- Język programu: Basic
- Platforma: ZX Spectrum
- Kod zamieszczono w Bajtek 11/1988
- Autor listingu: Grzegorz Krupa
- Listing nadesłał: Faust
Stan listingu:
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.
zx_scroll_b11-1988-t2e.pl.7z

