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 LINK
Poprzednie 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. |