Tajemnice ATARI

Ludzie listy piszą...

    Mirosław Budzanowski ze Strzelec Opolskich ostro skrytykował Mapę Pamięci. Odpowiada autor:

   Dziękuję za uwagi zawarte w liście (konstruktywna krytyka jest bardzo cenna) i wyjaśniam nieścisłości zawarte w mapie pamięci. W TA 3/91: w tłumaczeniu znaczenia komórki ICHIDZ (lokacja 00033 ($0020)) napisałem, że służy ona do identyfikacji numeru IOCB-U. Ściślej, używana jest jako indeks wpisu urządzenia w tabeli HATABS. Komórka BUFEN (lokacja 00052, 00053 ($0034,$0035)) nie zawiera adresu kolejnej danej przeznaczonej do przesłania, lecz wskazuje na koniec bufora danych w operacji wykonywanej przez SIO. W TA 4/91: karygodnie opisałem znaczenie komórki RAMTOP (lokacja 00106, czyli $006a). W rzeczywistości pamięć ekranu znajduje się poniżej RAMTOP-u i zmiana trybu graficznego nie powoduje zmniejszenia ani zwiększenia zawartości komórki RAMTOP. Za zaistniałe nieścisłości i pomyłki przepraszam.

Leon


   Marek Bielecki z Łowicza

   W TA 4/91 jest wzmianka o możliwości współpracy programu Quick Assembler z magnetofonem w systemie "turbo". Czy moglibyście opisać, na czym ta współpraca polega?

   Quick Assembler powstał przy użyciu napędu dysków, a więc DOS-u, stąd wiele opcji dedykowanych posiadaczom tego typu pamięci masowej. Jednak ogólna filozofia pakietu uniezależnia go w praktyce od konkretnego urządzenia wejścia/wyjścia, ale...

   Każdy system przyspieszania transmisji magnetofonowej "turbo", który ma cechy autentycznego systemu operacyjnego, pozwala na użytkowanie QA z wykorzystaniem szybkiego zapisu i odczytu plików. Niestety, istnieją rozwiązania, które nie szanują ogólnie przyjętych zasad konstruowania systemów operacyjnych, w tym dwóch podstawowych: nieużywania strony zerowej od adresu $80 do $FF oraz ochrony pamięci użytkownika pomiędzy adresami MemLo i MemTop, zapisanymi odpowiednio w słowach $2E7 i $2E5. QA bowiem korzysta TYLKO z tych obszarów pamięci (na stronie zerowej nawet do $EF). Dodatkowych kłopotów może przysporzyć "zagospodarowanie" pamięci RAM przykrytej systemowym ROM-em, z której korzysta XLFriend, ale to już nieco mniejszy problem. Ani QA, ani też BH nie używają tej pamięci.

   Najbardziej rozpowszechnionym systemem, który NIE pozwala na pracę QA, jest Turbo 2000. Występuje on przy tym (pomimo tej samej lub podobnej nazwy) w niezliczonych wprost odmianach. Niektóre z nich pozwalają na uruchomienie QA, lecz zabijają go przy próbie odczytu lub zapisu. Inne umożliwiają tylko odczyt, lub tylko zapis. Są takie, które używają pamięci pod ROM-em, inne zaś nie... Bez wątpienia system ten, przeznaczony głównie do wczytywania gier, nie nadaje się do skomplikowanych programów użytkowych. Wszelako pomysłowość ludzka me zna granic. W tym numerze TA można znaleźć częściowe rozwiązanie problemu: usunięcie konfliktu na stronie zerowej w jednej z mutacji Turbo 2000.

   Przykładem dobrze zaprojektowanego systemu jest Turbo-Blizzard. Podczas testów przeprowadzonych z pakietem QA nie ujawniły się żadne usterki. Warto więc przemyśleć PRZED planowaną przeróbką magnetofonu, do czego będziemy go w przyszłości używać.

   Ponieważ nie sposób przetestować i opisać wszystkich obecnych i przyszłych systemów dostępnych na rynku, spróbuję, nie zagłębiając się w szczegóły, podać garść uwag, które mogą okazać się przydatne. Programy pakietu należy przenieść do gęstego zapisu przy pomocy dedykowanego danemu systemowi kopiera "normal-turbo". Większość tych systemów wyposażona jest w kopier lub opcję przenoszenia programów w formacie DOS. Skopiowany tym sposobem QA powinien uruchomić się bez kłopotów opcją "Load&Run" lub coś w tym rodzaju (nie zetknąłem się dotąd z systemem, w którym to byłoby niemożliwe).

   Bezpośrednio po uruchomieniu QA próbuje odczytać plik D:QA.SET, w którym (przy pracy z dyskiem) można zapisać parametry pracy QA. Ponieważ wiele systemów "turbo" definiuje urządzenie "D:", następuje próba odczytania tego pliku z magnetofonu. Wydaje się jednak, że zapisywanie konfiguracji na taśmie i odczytywanie jej sprawia więcej kłopotu, niż przynosi pożytku. Najprościej jest więc w tym miejscu użyć klawisza BREAK, co zniechęci QA do odczytywania wspomnianego pliku.

   Jeżeli dany system definiuje urządzenie "T:", to do zapisywania i odczytywania tekstów programów należy używać nazw w stylu T:PROGRAM. Nie można natomiast korzystać z opcji "skleroza", czyli używać gwiazdeczek w nadziei, że zapomniany tekst programu sam się odnajdzie, gdyż metody wyświetlania komunikatów przez system "turbo" i przez QA zbytnio się różnią (są nie do pogodzenia). Zawsze więc wpisujemy pełną nazwę pliku.

   Niektóre systemy nie definiują urządzenia 'T:", a tylko "D:". Problem polega na tym, że QA rozpoznaje "D:" jako stację dysków i próbuje przed zapisaniem odczytać ten sam plik, aby sprawdzić, czy jest już taki na dyskietce. W praktyce uniemożliwia to zapisanie pliku, bo QA daje zawsze sygnał jak do czytania. Aby pokonać tę przeszkodę, trzeba po prostu zamienić nazwę urządzenia "D:" na "T:" bezpośrednio w tablicy HATABS. Litera ta figuruje najczęściej pod adresem 809, wystarczy więc krótki "program":
      OPT 21
      ORG 809
      DTA C'T'
      END
i dalej można się już odwoływać do "T:". W przypadku częstego (popieram) używania QA lepiej wygenerować na kasetę kod tego programiku i scalić go z QA, za pomocą programu APPEND z TA 5/91.

(jbw)



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001