DODATKOWA STACJA DYSKÓW
Do stworzenia instalatora DSD zostałem zainspirowany artykułem zamieszczonym w ósmym numerze
Tajemnic Atari pod tytułem "RAM-plik". Zastanowiłem się, czy w niezbyt skomplikowany sposób można
symulować dodatkową stację dysków, której pliki będą
umieszczone w pamięci RAM pod ROM-em. Przejrzałem uważnie książkę Wojciecha Zientary pt. "Mapa pamięci ATARI XL/XE - Dyskowe Systemy Operacyjne"
i... wymyśliłem. Udało mi się stworzyć program w pełni
symulujący DSD o identyfikatorze D8.
Instalator po utworzeniu stacji nr 8 zajmuje tylko
222 bajty i spełnia wymogi (mam nadzieję, że wszystkie) rezydentnej nakładki na system. Modyfikuje on
procedurę RAMDIO, która znajduje się pod adresem
$1481. Wynika z tego, że IDSD będzie działał tylko
z DOSem 2.5. Jest to jego poważna wada, ale wielu
programistów pracuje teraz w tym otoczeniu (przecież
z takim systemem rozprowadzany jest QA), więc mam
nadzieję, że znajdzie on niemało użytkowników.
IDSD nie najlepiej współżyje z procesorem komend
DUP.SYS. Wymarzone środowisko dla instalatora to
Dyskowy System Operacyjny 2.5 oraz procesor poleceń
CP.SYS. IDSD modyfikuje również nieco procedurę
XFORMT, znajdującą się pod adresem $B70, aby prawidłowo była wykonywana operacja formatowania.
Sposób wywołania IDSD za pośrednictwem CP (w
przypadku użycia parametrów niezbędne jest podanie
rozszerzenia .COM):
DSD[.COM /[T][S][D]]
D - dezaktywacja.
S - oznacza zachowanie starej zawartości DSD (nie jest ona po prostu formatowana),
T - włącza tryb turbo.
Opcje D i S są, mam nadzieję, jasne. Wyjaśnienia wymaga jedynie parametr T. Otóż podczas transmisji
między komputerem a D8, włączana jest pamięć RAM
pod ROMem. Powoduje to, że w miejscu, gdzie jest
generator znaków ($E000 - $E3FF), pojawiają się nieokreślone wartości. Efektem tego są śmieci na ekranie.
Gdy nie podamy parametru T, sterownik D8 będzie
czekał z transmisją do czasu, kiedy wyłączenie ROM-u
nie spowoduje brzydkich dla oka efektów (jest to zresztą sprawa gustu). Dokładnie czeka on, aż licznik
VCOUNT ($D40B) nie osiągnie wartości $70, co oznacza, że wiązka elektronów w kineskopie tworzy (omija)
niewidoczną część obrazu. Należy jednak wspomnieć,
że przesyłanie danych w trybie turbo jest kilkakrotnie
szybsze.
Do zalet programu należy fakt, że naprawdę w pełni
symuluje on stację dysków. Na D8 możemy wykonywać
dosłownie wszystkie operacje, jakie dotychczas wykonywaliśmy na fizycznych stacjach. A więc jest to formatowanie, zmiana nazwy pliku, odczyt, zapis itd. Możemy to robić również w taki sam sposób jak poprzednio,
np. instrukcją XIO.
Wady DSD, to brak możliwości stosowania programów, które wykorzystują pamięć pod ROMem, duże
wymagania co do środowiska pracy oraz fakt wynikający z istoty tego typu nakładek: cała zawartość Dodatkowej Stacji Dysków po wyłączeniu komputera bezpowrotnie ginie.
Starałem się stworzyć inteligentną i wygodną dla
użytkownika procedurę instalującą. Za każdym razem
informuje ona o przeprowadzonych akcjach. Zmienia
odpowiednie komórki pamięci, aby sterownik DSD nie
został zniszczony i w sekwencji RESET wykonał nie
tylko swoją procedurę inicjującą, lecz także poprzednie. Gdy IDSD wykryje, że jest już zainstalowany, nie
zabiera dodatkowej pamięci, a jedynie aktualizuje się
według podanych parametrów. W razie braku pamięci
lub niezgodności DOS-u odpowiednie komunikaty pojawią się na ekranie. Po zimnym starcie (ale bez wyłączania komputera) dane zawarte w D8 można odtworzyć, uruchamiając DSD z parametrem S:
DSD.COM /S
1000 REM *----------------------,---*
1002 REM : Dodatkowa Stacja Dyskow :
1004 REM : autor: Dariusz Dziuda :
1006 REM : (c) 1992 Tajemnice ATARI :
1008 REM *--------------------------*
1010 DATA FFFF00800A81AD440385CBAD45
1020 DATA 0385CCA90B8D4203A9008D4903
1030 DATA A272A970A080205880AD0C07C9
1040 DATA CCD009AD0D07C919D002F00FA2
1050 DATA 18A9F3A0802058802066806C0A
1060 DATA 00A900CDE702A980EDE802B00F
1070 DATA A211A9E2A0802058802066806C
1080 DATA 0A00608E48038D44038C4503A2
1090 DATA 004C56E4A210A90C9D42034C56
1100 DATA E49B496E7374616C61746F7220
1110 DATA 446F6461746B6F77656A205374
1120 DATA 61636A69204479736B6F772E9B
1130 DATA 0D0D0D0D0D0D0D0D0D0D0D0D0D
1140 DATA 0D0D0D0D0D0D0D0D0D0D0D0D0D
1150 DATA 0D0D0D0D0D0D0D0D0D0D9B6175
1160 DATA 746F723A204461726975737A20
1170 DATA 447A697564612C202077657273
1180 DATA 6A6120312E3020209B9B9BFDFD
1190 DATA 4272616B2070616D696563692E
1200 DATA 9B9BFDFD4E69657A676F646E6F
1210 DATA 73632044534F2D65676F2E9B9B
1220 DATA E202E30200800080BD844CE980
1230 DATA 20FFFFADCB128DE702ADCC128D
1240 DATA E802A94A8D201360F005A5464C
1250 DATA 8E0B2025804CC21220A980A9FB
1260 DATA 8D3380A080A9009900FBC8D0FA
1270 DATA EE3380D0F5A9028D80FBA9678D
1280 DATA 81FB8D83FBA9FFA00B998BFB88
1290 DATA 10FAA90F8D8AFBA9E08D97FB4C
1300 DATA BD807808AE0B03F017CAD00FAE
1310 DATA 0A03E0689008E071B004CA8AD0
1320 DATA 0F2858A08B60AD0A0338E904C9
1330 DATA 67B0F1209D14A53369C0C9D090
1340 DATA 0269078533AD040320A81420A9
1350 DATA 80A07F2820B2144CBD8020C880
1360 DATA A90185428D0ED478AD01D329FE
1370 DATA 8D01D360AD01D309018D01D34C
1380 DATA C914AE0BD4E070D0F9608E4803
1390 DATA 8D44038C4503A2004C56E4C961
1400 DATA 9006C97BB002E91F60A90085CD
1410 DATA A000B1CBC92FF007C99BF028C8
1420 DATA D0F3B1CB20DE80C944D0034C1C
1430 DATA 82C954D00506CD3866CDC953D0
1440 DATA 0546CD3826CDC99BF003C8D0DB
1450 DATA A21CADF982ACFA8248ADD312F0
1460 DATA 0A68A21BADE782ACE882486820
1470 DATA D080ADD312D010ADD41285CBAD
1480 DATA D51285CCA000A9AE91CBA5CD0A
1490 DATA 089025A214ADED82ACEE8220D0
1500 DATA 80A2608EC880ADD312D010ADD4
1510 DATA 1285CBADD51285CCA000A96091
1520 DATA CBA221ADEB82ACEC8228D00B20
1530 DATA 2580A21DADE982ACEA8220D080
1540 DATA ADD312F076A94C8D8A0BADE182
1550 DATA 8D8B0BADE2828D8C0BA94C8D81
1560 DATA 14ADE3828D8214ADE4828D8314
1570 DATA A9608DA5148DAF148DC414A94A
1580 DATA 8D2013A201B50C9D04809DCF12
1590 DATA BDDF82950C9DCD12CA10EDADE7
1600 DATA 028DD112ADE8028DD212A9008D
1610 DATA D312ADE5828DD412ADE6828DD5
1620 DATA 12ADFB828DE7028DCB12ADFC82
1630 DATA 8DE8028DCC12A201ADF182ACF2
1640 DATA 824CD080ADD312F00BA21EADF7
1650 DATA 82ACF8824CD080A9068DD312A9
1660 DATA 008D2013A9AD8D8114A90A8D82
1670 DATA 14A9038D8314A9F08D8A0BA947
1680 DATA 8D8B0BA9A58D8C0BA9AD8DA514
1690 DATA A9A08DAF14A9A98DC414A21CAD
1700 DATA EF82ACF08220D080ADCD1285CB
1710 DATA ADCE1285CCA003A96091CBADE7
1720 DATA 02CDCB12D037ADE802CDCC12D0
1730 DATA 2FA50CCDCD12D028A50DCDCE12
1740 DATA D021ADCF12850CADD012850DAD
1750 DATA D1128DE702ADD2128DE802A21A
1760 DATA ADF382ACF4824CC582A21EADF5
1770 DATA 82ACF68220D080A00AB9FB8399
1780 DATA CB128810F7A201ADF182ACF282
1790 DATA 4CD08000038018806080C880FF
1800 DATA 821A83378358836C8388838983
1810 DATA A383C183DF83D0800000445344
1820 DATA 207A6F7374616C61207A61696E
1830 DATA 7374616C6F77616E612E9B5072
1840 DATA 7A6570726F7761647A6F6E6F20
1850 DATA 666F726D61746F77616E69652E
1860 DATA 9B4E69652070727A6570726F77
1870 DATA 61647A6F6E6F20666F726D6174
1880 DATA 6F77616E69612E9B416B747977
1890 DATA 6E79207472796220747572626F
1900 DATA 2E9B445344207A6F7374616C61
1910 DATA 207A64657A616B7479776F7761
1920 DATA 6E612E9B9B50616D696563207A
1930 DATA 6F7374616C61207A776F6C6E69
1940 DATA 6F6E612E9B50616D696563206E
1950 DATA 6965207A6F7374616C61207A77
1960 DATA 6F6C6E696F6E612E9BFD445344
1970 DATA 206E6965206A657374207A6169
1980 DATA 6E7374616C6F77616E612E9B9B
1990 DATA 445344206A657374206A757A20
2000 DATA 7A61696E7374616C6F77616E61
2010 DATA 2E9BA0018442AE0F073006A614
2020 DATA 0000A9608D0884A90085CFADE7
2030 DATA 0285D4ADE80285D538A90085D2
2040 DATA E5D485D0A98085D3E5D585D1A0
2050 DATA 00F0033866CFA5D2C908A5D3E9
2060 DATA 8490036CE70224CF70633027B1
2070 DATA D285CE91D420B184AAF0DEC920
2080 DATA F017C940F0D9C960F0D5290DC9
2090 DATA 08F0CF90418A291FC909F03AB1
2100 DATA D2C8C900B1D288E9809012B1D2
2110 DATA C8C908B1D288E984B006A5D0A6
2120 DATA D1900724CF30A1A900AA85D686
2130 DATA D738B1D2E5D691D420B184B1D2
2140 DATA E5D74CA984B1D291D420B1844C
2150 DATA 3384E6D2D002E6D3E6D4D002E6
2160 DATA D560E002E1020884
|
Dariusz Dziuda
|