Ready/Run

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


Jeszcze o TURBO dla C-16
  • Język programu: Commodore Basic 3.5
  • Platforma: Commdore C264
  • Kod zamieszczono w Bajtek 11/1987
  • Autor listingu: Marek Hatko
  • Listing nadesłał: Faust

Stan listingu:

3
Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych

W „BAJTKU” 5/87 ukazał się, przyjęty z wdzięcznością przez użytkowników Commodore 16 (i pokrewnych) program TURBO SAVE-LOAD. Z wielkim zapałem wziąłem się za jego wpisywanie i po usunięciu kilku błędów program był gotów do uruchomienia. Postanowiłem więc wypróbować jego działanie na jednym z własnych programów, lecz niestety okazało się. że program znajduje się dokładnie w tym samym obszarze pamięci, w którym umieściłem dane graficzne mojego programu! Po uważnym zbadaniu jego konstrukcji okazało się, że w takiej postaci jak podano w „BAJTKU” nie można go w żaden sposób przenieść w inny obszar pamięci. Oczywiście możliwe było przepisanie go w inny obszar i mozolna zmiana argumentów rozkazów, lecz z wrodzonego lenistwa nie chciałem się brać za tę „czarną robotę” — od tego są przecież komputery... Zmieniłem więc program w taki sposób, by po uzgodnieniu z użytkownikiem umieszczał TSL we wskazanym miejscu odpowiednio go modyfikując. Niemożność przeniesienia programu w inny obszar pamięci (mowa o postaci podanej w „BAJTKU” 5/87) polega na obecności takich rozkazów jak JSR, LDA czy STA i występujących po nich adresów skoku czy konkretnych komórek pamięci.
W linii 210 program sprawdza ilość dostępnej pamięci RAM (PEEK 56) i wyświetla na ekranie możliwe lokalizacje programu w pamięci wybierane odpowiednio w linii 220. Linia 250 rezerwuje pamięć dla kodu maszynowego. W pętli zawartej w liniach 270-280 pobierane są dane z DATA, zliczane sumy kontrolne i przeliczane odpowiednio wartości 61, 62 i 63 odpowiednio dla wybranej lokalizacji; pętla ta także umieszcza program maszynowy w pamięci. W pętli w linii 310 następuje korekcja niepotrzebnie zmienionych wartości (pobierane są tu dane z linii 999). Linia 330 podaje adres początkowy programu i ułatwia jego uruchomienie.
Warto zaznaczyć, że blok danych w liniach 350-900 jest identyczny z podanym w „BAJTKU” 5/87, tak więc Czytelnicy, którzy już go wpisali mogą wprowadzić niezbędne przeróbki znacznie prościej i szybciej.
Informacja dla wnikliwych: po ograniczeniu dostępu edytora do pamięci ekranowej i dokonaniu niewielkich zmian w samym programie, można sam kod maszynowy umieścić poza RAM użytkownika, co pozwoli zapisywać w TURBO programy zajmujące całą pamięć.
I jeszcze jedna uwaga. Jeśli program przeznaczony do kopiowania jest także zapisany w TSL, to po jego wprowadzeniu do pamięci musimy ponownie zainicjować TURBO za pomocą SYS i odpowiedniego adresu w zależności od wybranej lokalizacji. Dalej już normalnie tzn. SAVE „nazwa”, 7 czy ,7,1.
 

Jak uruchamiać...

  • Załaduj taśmę do Vice C264
  • Załaduj Plik Turbo - dla oryginalnego listingu (niedziałający)
  • Załaduj Plik TurboZM - dla listingu z podniesioną numeracją (działający???)
Jeszcze o TURBO dla C-16