Ready/Run

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


SpeedTrans
  • Język programu: Atari Basic
  • Platforma: Atari XE/XL
  • Kod zamieszczono w Bajtek 08/1987
  • Autor listingu: Marek Drążkiewicz
  • Listing nadesłał: Faust

Stan listingu:

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

Przedstawiony program jest procedura zapisana w języku maszynowym służąca do przemieszczania danych w pamięci komputera.
Istotna cecha programu to możliwość składowania zbiorów bajtów w obszarze wyłączonym z użycia przez ROM z interpreterem BASIC-a i systemem operacyjnym, a więc możliwość przechowywana danych w obszarach 40960-53247,
55296—66529 (ostatnie sześć bajtów pamięć 65530—65535 jest zajęte przez wektory przerwań RESET). Procedurę wywołuje się przy użyciu następującej instrukcji:
X = USR(1536,APD,APZ,IL), gdzie:
APD - adres początku danych do przesłania,
APZ - adres   początku    obszaru   zapisywania danych,
IL - ilość bajtów do przesłania.
Procedura SPEED TRANS może być wykorzystywana do różnych celów np. przechowywania kilku ekranów graficznych, składowanie informacji w bazach danych itd. W przypadku podania złej ilości parametrów lub wciśnięcia klawisza RESET podczas przesyłania bloku bajtów następuje powrót do BASIC-a. Z uwagi na możliwość działania w całej przestrzeni adresowej procedury tej należy używać rozważnie. Przesłanie przypadkowych danych do obszaru zmiennych systemowych lub do portów wejścia/wyjścia może spowodować zawieszenie pracy komputera. Procedura jest relokowalna, jej umieszczenie na szóstej stronie pamięci podytkowane było względami bezpieczeństwa. Jeśli po wpisaniu kodu do pamięci użyjemy POKE 1538,253, to podczas pracy program nie będzie odłączał pamięci ROM; POKE 1538.254 powoduje powrót do normalnego działania.