Ludzie listy piszą...List ten jest adresowany szczególnie do autora TOS-u, Witolda Ściuka. Kiedy przeczytałem opis systemu operacyjnego stworzonego przez pana Witolda byłem wielce uradowany. Niestety po wpisaniu programu handler T: nie czytał poprawnie (na końcu pierwszego rekordu zawsze występował błąd nr 200, tzn. błąd transmisji szeregowej). Jestem jednym z tych użytkowników ATARI, którzy bardzo poważnie traktują ten komputer, i kiedy pomyślałem, że w tym systemie np. QA wczytuje się tylko 14 rekordów to bylo to dla mnie sensacją. Niestety, jak już wcześniej pisałem, program nie chodził (błędne podłączenie interfejsu nie wchodziło w grę gdyż system wypróbowałem na kilku magnetofonach). Zaopatrzyłem się w kilkanaście godzin wolnego czasu, wczytałem TOS, wczytałem Bug Huntera i zabrałem się do szukania błędów. Po 28 godzinnym maratonie znalazłem aż 3 "błędy" w programie. Okazało się że TOS przy odczycie rekordu po 1024 bajtach dławi się, bo nagle napotyka puste miejsce na taśmie. Jeżeli na samym końcu rekordu wyślemy jeszcze jeden bajt (np. #00) to ten błąd wyeliminujemy. "Piszemy" krótki program: $ODB4 JMP $OB64 $OB64 LDA #0 $OB66 JSR $0D02 $OB69 JMP $OF7E Aby zmianę tę wprowadzić do TOS-u najlepiej zmienić dane w listingu programu zamieszczonym w TA 4/92. I tak jeśli chodzi o poprawkę pierwszą to zmieniamy linie 1100 oraz 1550. 1100 DATA 9ba90020020d4c7e0f54ba0000 1550: zmieniamy z 7e0f na 640b Po tej zmianie okazale się że na końcu każdego rekordu pojawiał się błąd nr. 143. Po zamianie liczby (jednostek odczytu) z $11 na $14 odczyt jest już możliwy (na różnych egzemplarzach magetofonów ta wartość może być inna) 1610: liczbę drugą od końca zamieniamy z $11 na $14 Zauważyłem jeszcze, iż po odczycie programu w turbo TOS nie odłączał turbo w magnetofonie (LDA #$3C, STA $D303) robi coś znacznie gorszego, zapisuje $3c w $0603 co jest ewidentną pomyłką. Poprawiamy: 1250: liczbę drugą od końca zamieniamy z $06 na $d3 Po tych poprawkach system pracuje prawidłowo. W imieniu tych, którzy boleją nad nieprawidłowo pracującym TOS-em (wiem co to znaczy) proszę o wydrukowanie tych poprawek (całych lini DATA). TOS Jest wspaniałym systemem z rozsądnie i mądrze opracowanym systemem Turbo, jest bardzo wielką pomocą dla wszystkich posiadaczy magnetofonów i szkoda byłoby, aby leżał gdzieś na zakurzonej kasecie nigdy nie używany z powodu paru błędów. Istnieje możliwość dwukrotnego przyspieszenia transmisji. Oczywiście należy stosować taśmy dobrej jakości i kategorycznie nie zmieniać skosu głowicy (nie tylko w tym przypadku). Nie zagłębiając się w szczegóły podam zmienione bajty. linia 1300: zmieniamy $5d na $28 linia 1310: zmieniamy $24 na $11 linia 1600: zmieniamy $33 na $19 i $09 na $04 linia 1610: zmieniamy $19 na $0b i $11 na $0cTak przerobiony system pracuje u mnie już przez miesiąc i nie stwarza żadnych kłopotów. Jeśliby nawet od czasu do czasu jakiś rekord się nie wczytał to autor tego programu zaopatrzył go w bardzo pożyteczne ładowanie ostatniego rekordu, a nie całego pliku od początku. Od redakcji Prezentujemy ten list z dużą przyjemnością, świadczy on bowiem o pomysłowości i dociekliwości naszych Czytelników. System TOS, o którym mowa, wyróżnia się spośród innych programów tego typu również sposobem komunikacji z użytkownikiem opartej o "interpreter komend", co zbliża go do standardów (znanych z większych komputerów) takich jak UNIX czy MS-DOS, a zdecydowanie różni od amatorszczyzny typu TURBO 2000. Dla uniknięcia pomyłki przy wprowadzaniu "łat" przedstawiamy kompletne wiersze listingu TOS-a, którymi należy zastąpić dotychczasowe linie o tych numerach. Pierwsza grupa zawiera poprawki błędów: 1100 DATA 9ba90020020d4c7e0f54ba0000 1250 DATA 0bd0f248a93c8d02d38d03d3ad 1550 DATA d0f3e619c63610ed4c640b6810 1610 DATA c634d0cce434a919b002a9l485 Druga natomiast - proponowaną zmianę prędkości. 1300 DATA 3ad0e4608aa2dbd0088aa228d0 1310 DATA 038aa211cad0fdaa608540a200 1600 DATA 199006243070c6501fe004b004 1610 DATA c634d0cce4340bl9b002a90c85 Wojciech Tylkowski z Bełchatowa W numerze 9/92 Waszego pisma uwagę przykuwa tekst opisujący poprawkę plików Panthera tak, aby działały w systemie Blizzard. Stanąłem sam przed podobym problemem i rozwiązałem go, poprawiając procedury obsługi transmisji. Poprawka jest tak prosta, że postanowiłem podzielić się nią z Państwem w nadziei, że zostanie wydrukowana. Zmiany dotyczą systemu Turbo K.O.S. 1.0. Występuje on zarówno w postaci pliku, jak i na cartridge'ach. Jego wyróżniki to czarne tło po wejściu do menu oraz możliwość restartu komputera klawiszami CONTROL/=. Poprawka polega na zmianie zawartości komórek pamięci: Przy pracy w BASIC-u można dokonywać tego instrukcjami POKE. Aby trwale poprawić plik systemowy, korzystamy jednak z programu Patcher. Do Patchera dopisujemy następujące linie: 1000 DATA 1004,1,2 1010 DATA 1008,50,58 1020 DATA 1116,42,94 Użytkownicy cartridge'ów z programami systemowymi mogą nagrać tak przerobiony K.O.S. w Turbo i uruchamiać go przy pomocy dowolnego Microloadera. Poprawka umożliwia odwoływanie się zarówno do "T1:", jak i "T:", czy "T2:". Wyświetlenie nazwy pliku uzyskujemy, podając zamiast nazwy pliku znaczek "^", a nie "*". Od redakcji Program "Patcher" wydrukowany w TA 7/91 zawiera błąd, który może spowodować niepoprawne działanie programu. Poniżej prezentujemy ulepszoną wersję (zmianie ulegają wiersze 20 i 30). Nie ma to jak łaciaty łactarz, czyż nie? 1 REM ............................ 2 REM | 'PATCHER' | 3 REM | Autor: Marek Pasek | 4 REM | (c) 1991 Tajemnice Atari | 5 REM ............................ 6 REM 10 DIM IO$(7),F$(15):IO$="hhh*LVd" 20 L=FRE(0):IF L>33791 THEN L=33791 30 L=L-1024:DIM P$(L):P=ADR(P$) 40 MSB=INT(P/256):SLEN=INT(L/256) 50 MLEN=L-256*SLEN:LSB=P-256*MSB 60 ? "Plik do odczytu ":INPUT F$ 70 OPEN #2,4,128,F$:POKE 866,7 80 POKE 868,LSB:POKE 869,MSB 90 POKE 872,MLEN:POKE 873,SLEN 100 X=USR(ADR(IO$),32) 110 IF PEEK(867)<>1 THEN 130 120 ? "Zbyt wielki plik!":END 130 IF PEEK(867)=136 THEN 150 140 ? "Niepoprawna transmisja!":END 150 CLOSE #2:TRAP 210 160 MLEN=PEEK(872):SLEN=PEEK(873) 170 READ AD,OBT,BT 180 IF PEEK(P+AD)=OBT THEN 200 190 ? "To nie jest ten plik!":END 200 POKE P+AD,BT:GOTO 170 210 ? "Plik do zapisu ":INPUT F$ 220 OPEN #2,8,128,F$:POKE 866,11 230 POKE 872,MLEN:POKE 873,SLEN 240 POKE 868,LSB:POKE 869,MSB 250 X=USR(ADR(IO$),32) 260 ? "Gotowe.":END Wojciech Rawdanik odpowiada na pytanie zadane w TA 4/92: W programie TRACE z TA 4/92 najprostszym sposobem uzyskania wydruku także 1 linii jesi uruchomienie programu poprzez: CLR GOTO <numer_początkowej_linii_programu> |