MARK i RELEASEO ile zainstalowanie nakładki nie przedstawia większych problemów, to pozbycie się jej z pamięci bywa niekiedy niemożliwe. Niektórzy autorzy w ogóle nie uwzględniają tej opcji w swoich programach, wychodząc prawdopodobnie z założenia "razem aż do śmierci" (do zimnego startu). Jak wiadomo, chcąc odinstalować nakładkę trzeba znać stan systemu przed jej zainstalowaniem. Temu właśnie służy program MARK: po wczytaniu bada on stan wektorów systemu operacyjnego oraz DOS'u (COS'u), a uzyskane dane zapisuje w pamięci komputera do późniejszego użytku. Te informacje są zapisywane jako specyficzna nakładka, która nie spełnia żadnych innych funkcji poza tym, że istnieje i potrafi się ochronić podczas RESETu podnosząc nad siebie MEMLO. Zajmuje ona bardzo mało miejsca, bo przeciętnie tylko około 30 bajtów. Po zaMARKowaniu stanu systemu można już wczytywać dowolne nakładki w dowolnej ilości. Gdy nam się znudzi ich obecność, uruchamiamy program RELEASE. Odszukuje on w pamięci zainstalowaną tam MARKę i na jej podstawie odtwarza stan wektorów systemowych oraz zwalnia pamięć przesuwając MEMLO na pozycję sprzed MARKowa-nia. Usuwa to zarówno MARKę, jak i wszystkie później wczytane nakładki. W wypadku, gdy mamy kilka programów rezydentnych i nie chcemy usuwać wszystkich naraz, trzeba je wczytywać przeplatając MARKowanIem: MARK, nakładka, MARK, inna nakładka... Takie postępowanie jest możliwe dzięki temu, że RELEASE odszukuje i usuwa ostatnią MARKę, pozostawiając bez zmian poprzednie. Mając zainstalowane np. dwie MARKI trzeba dwa razy użyć programu RELEASE, aby usunąć obie. Można to porównać ze stosem talerzy-nakładek poprzedzielanych deseczkami-MARKa-mi: podnosząc do góry najwyższą deseczkę (RELEASE) podnosimy razem z nią tylko te talerze, które zostały na stos położone później niż ona sama. Chcąc podnieść następne talerze, trzeba zdejmować kolejne deseczki. Programy MARK i RELEASE są przystosowane do nakładek, które instalują się poprzez wplecenie się w przerwania lub w procedury obsługi urządzeń (tablica HATABS). Nie będą więc działać z nakładkami, które przepisują system operacyjny lub BASIC z ROM'u do RAM'u i tam modyfikują jego treść. Starałem się uczynić te programy odpornymi na błędy i pomyłki. Nie da się zaMARKować dwa razy tego samego miejsca (prowadziłoby to do niepotrzebnego zużycia pamięci). RELEASE przed odtworzeniem wektorów sprawdza formalną postać MARKI - jest to zabezpieczenie na wypadek uszkodzenia jej zawartości przez jakiś nieodpowiedzialny program nie zwracający uwagi na MEMLO. Odtwarzanie stanu systemu według popsutej MARKI na pewno doprowadziłoby do jego zawieszenia. 1000 REM *--------------------------* 1002 REM : Mark : 1004 REM : autor: Wojciech Palacz : 1006 REM : (c) 1992 Tajemnice ATARI : 1008 REM *--------------------------* 1010 DATA ffff00907f906885d46885d5e6 1020 DATA d4d002e6d5a000b1d4c9eaf012 1030 DATA a20b8e4203a2008e48038e4903 1040 DATA 2056e410e06cd4002000909b4d 1050 DATA 61726b20312e3120627920576f 1060 DATA 6a63696563682050616c61637a 1070 DATA 9b2d2d2d2d2d2d2d2d2d2d2d2d 1080 DATA 2d2d2d2d2d2d2d2d2d2d2d2d2d 1090 DATA 2d2d9beaa989cde80290016020 1100 DATA 00904e6f206d656d6f72792e9b 1110 DATA ea6c0a00e002e3028090299080 1120 DATA 90a292ade70285d6ade80285d7 1130 DATA a012b9d79191d68810f818a5d6 1140 DATA 691385d69002e6d7a9ea85d8a9 1150 DATA 9185d9a000b1d8f05448c8b1d8 1160 DATA aac8b1d885dac8b1d885db18a5 1170 DATA d8690485d89002e6d98aa888b1 1180 DATA d8d1dad0108810f768188a65d8 1190 DATA 85d890cbe6d9d0c7a0006891d6 1200 DATA e6d6d002e6d78aa888b1da91d6 1210 DATA 8810f9188a65d685d690d7e6d7 1220 DATA d0d391d6e6d6d002e6d7ade702 1230 DATA 85daade80285dba006a50c91da 1240 DATA c8a50d91daa009a5d691daa00e 1250 DATA a5d791da38a50ce90585dea50d 1260 DATA e90085dfa012b9d791f004d1de 1270 DATA d06b8810f4a009b1decde702d0 1280 DATA 5fa00eb1decde802d05618a5de 1290 DATA 691285de9002e6df18a5da6912 1300 DATA 85dca5db690085dd38a5d6ede7 1310 DATA 0238e913a8b1dcd1ded02e88d0 1320 DATA f7a900a01491da8810fb200090 1330 DATA 50726576696f7573206d61726b 1340 DATA 206973207374696c6c204f4b2e 1350 DATA 9bea6c0a0018ade7026905850c 1360 DATA ade8026900850da5d68de702a5 1370 DATA d78de8022000904d61726b2073 1380 DATA 65742e9bea6c0a004d41524b20 1390 DATA 200000a9008de702a9008de802 1400 DATA 6001020a0000000202790051fb 1410 DATA 03020002cec004020602cdc005 1420 DATA 02080219fc06020a022ceb0702 1430 DATA 0c02adea08020e02ecea090210 1440 DATA 02cdc00a021202cdc00b021402 1450 DATA cdc00c02160230c00d022202e2 1460 DATA c00e0224028ac20f02260211ec 1470 DATA 1002280200001102360292c012 1480 DATA 01f402e013031a035030e41403 1490 DATA 1d034340e4150320034500e416 1500 DATA 0323035310e4170326034b20e4 1510 DATA 1803290300000019032c030000 1520 DATA 001a032f030000001b03320300 1530 DATA 00001c0335030000001d033803 1540 DATA 00000000 1000 REM *--------------------------* 1002 REM : Release : 1004 REM : autor: Wojciech Palacz : 1006 REM : (c) 1992 Tajemnice ATARI : 1008 REM *--------------------------* 1010 DATA ffff00906c906885d46885d5e6 1020 DATA d4d002e6d5a000b1d4c9eaf012 1030 DATA a20b8e4203a2008e48038e4903 1040 DATA 2056e410e06cd4002000909b52 1050 DATA 656c6561736520312e31206279 1060 DATA 20576f6a63696563682050616c 1070 DATA 61637a9b2d2d2d2d2d2d2d2d2d 1080 DATA 2d2d2d2d2d2d2d2d2d2d2d2d2d 1090 DATA 2d2d2d2d2d2d2d2d9bea60e002 1100 DATA e3026d9029906d908492ade702 1110 DATA 85d6ade80285d7a5d6d002c6d7 1120 DATA c6d6a5d7c9079055a012b9b991 1130 DATA f004d1d6d0e78810f4a900a006 1140 DATA 11d6c811d6a00911d6a00e11d6 1150 DATA f0d1207391a000b1d8f042d1da 1160 DATA f00e90c2b1daf0be20909120ae 1170 DATA 91d0e8208991209091b1d8d1da 1180 DATA d0058810f730a520ae9120a391 1190 DATA d0cf2000904d61726b206e6f74 1200 DATA 20666f756e642e9bea6c0a0078 1210 DATA ad0ed448293f8d0ed4a006b1d6 1220 DATA 850cc8b1d6850da5d68de702a5 1230 DATA d78de802207391a002b1da85dc 1240 DATA c8b1da85dda000b1daf028d1d8 1250 DATA f00f209091b1da91dc8810f920 1260 DATA ae91d0dc208991209091b1d891 1270 DATA dc8810f920a39120ae91d0c768 1280 DATA 8d0ed4582000904d656d6f7279 1290 DATA 202620766563746f7273207265 1300 DATA 6c65617365642e9bea6c0a0018 1310 DATA a5d6691385d8a5d7690085d9a9 1320 DATA cc85daa99185db60e6d8d002e6 1330 DATA d960a001b1daaaa88818a5da69 1340 DATA 0485da9002e6db60188a65d885 1350 DATA d89002e6d960188a65da85da90 1360 DATA 02e6db604d41524b20200000a9 1370 DATA 008de702a9008de8026001020a 1380 DATA 0000000202790051fb03020002 1390 DATA cec004020602cdc00502080219 1400 DATA fc06020a022ceb07020c02adea 1410 DATA 08020e02ecea09021002cdc00a 1420 DATA 021202cdc00b021402cdc00c02 1430 DATA 160230c00d022202e2c00e0224 1440 DATA 028ac20f02260211ec10022802 1450 DATA 00001102360292c01201f402e0 1460 DATA 13031a035030e414031d034340 1470 DATA e4150320034500e41603230353 1480 DATA 10e4170326034b20e418032903 1490 DATA 00000019032c030000001a032f 1500 DATA 030000001b0332030000001c03 1510 DATA 35030000001d03380300000000 Wojciech Palacz
|