Powrót do spisu treści |
Rozdział 1TABLICA SKOKÓWSkoro istnieje wiele wersji systemu operacyjnego, to jak w takim razie zapewniona jest pełna zgodność oprogramowania dla różnych modeli? Osiągnięte jest to dzięki tak zwanej tablicy skoków. Ma ona ustalone miejsce w pamięci (w każdej wersji takie samo). Dzięki temu odwołania do procedur, które korzystają z tej tabeli, zawsze trafią w odpowiednie miejsce, ponieważ zawiera ona aktualny adres procedury.Wyjaśnia to również, dlaczego niektóre programy wywagają użycia "Translatora". Po prostu autor programu nie korzystał z tablicy skoków, lecz odwoływał się bezpośrednio do procedur OS. "Translator" (lub mający identyczne działanie "XL Fix") odłącza pamięć ROM zawierającą system operacyjny i wpisuje w RAM znajdującą się w tym obszarze poprzednią wersję OS (z modeli 400/800). Tablica skoków w modelach XL/XE wygląda następująco: 0100 ;JUMP TABle 0110 ; 0120 CASOPIN = $FCF7 0130 CASRDBL = $FD8D 0140 CIOINIT = $E4C1 0150 CIOMAIN = $E4DF 0160 DSKINIT = $C6A3 0170 DSKINT = $C6B3 0180 EXITVBL = $C28A 0190 LINK = $E898 0200 NEWDEVC = $EEBC 0210 NMIENBL = $C00C 0220 RESETCD = $C2C8 0230 RESETWM = $C290 0240 SETVBLV = $C272 0250 SIOINIT = $E95C 0260 SIOINT = $C933 0270 SNDENBL = $EC17 0280 SYSVBL = $C0E2 0290 TESTROM = $F223 0300 TESTST = $5000 0310 UNLINK = $E915 0320 ; 0330 *= $E450 0340 ; 0350 JMP DSKINIT 0360 JMP DSKINT 0370 JMP CIOMAIN 0380 JMP SIOINT 0390 JMP SETVBLV 0400 JMP SYSVBL 0410 JMP EXITVBL 0420 JMP SIOINT 0430 JMP SNDENBL 0440 JMP NMIENBL 0450 JMP CIOINIT 0460 JMP TESTROM 0470 JMP RESETWM 0480 JMP RESETCD 0490 JMP CASRDBL 0500 JMP CASOPIN 0510 JMP TESTROM 0520 JMP TESTST 0530 JMP NEWDEVC 0540 JMP UNLINK 0550 JMP LINKPoprzednie modele (400/800) nie zawierały w tablicy odwołań do procedur TESTROM, TESTST, NEWDEVC i LINK. Dwukrotne umieszczenie w tablicy skoku do procedury TESTROM nie jest pomyłką. Pierwszy skok jest przewidziany do obsługi niektórych błędów systemu i w przyszłości może ulec zmianie, gdy zostanie dodana nowa procedura. Wydruk tablicy skoków jest tak prosty, że nie wymaga właściwie żadnego dodatkowego komentarza. Można jedynie zauważyć, że ujęte są tu wszystkie procedury istotne dla pracy systemu komputerowego oraz wszystkich możliwych translatorów języków programowania. |