Tajemnice ATARI

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



  • Powrót na start | Powrót do spisu treści | Powrót na stronę główną

    Pixel 2001