221.
------------------------------------------------------------------------------
14. PODSTAWY DOS-A.
Rozdzialy od 15 do 18 skupiaja sie nad dostarczanymi przez DOS
mozliwosciami wspomagania programow. Ostatni z serii, rozdzial 18 stanowi
krotkie zestawienie technicznych skladnikow kazdej z jednostek uslugowych. W
biezacym rozdziale wprowadzone zostanie kilka glownych pojec, z ktorymi
programisci spotykaja sie w czasie pracy pod DOS-em.
Terminu obsluga przez DOS lub uslugi DOS-u uzywamy w celu okreslenia
pelnego zestawu operacji dostarczanych przez DOS naszym programom. Pojecia
takie nie wystepuja w podrecznikach DOS-u. W terminologii DOS-u, tak okreslone
uslugi dziela sie na dwie kategorie: przerwania DOS-u i wolania funkcyjne
DOS-u. Na ile mi wiadomo taki podzial nie jest oparty na jakichkolwiek
decyzjach projektowych, a wynika raczej z checi osiagniecia maksymalnej
zgodnosci z poprzednikiem DOS-u - systemem operacyjnym CP/M.
Przerwania DOS-u przywolywane sa instrukcja INT przez pojedyncze kody
przerwan. Z drugiej strony, wolania funkcyjne przywolywane sa w ten sam
sposob, jako uslugi ROM-BIOS-u, przez "oslonowe" przerwanie (ang. umbrella
interrupt) nr 33 (hex. 21). Pojedyncze funkcje, podobnie jak w przypadku
obslugi przez ROM-BIOS, sa wybierane przez rejestr AH.
Biorac pod uwage jednoczesnie programowanie i projektowanie, mechanizm
wolania funkcyjnego jest bardziej efektywny niz grupa pojedynczych przerwan.
Glowna jego zaleta jest mozliwosc dodania nieograniczonej liczby nowych uslug,
jako ze kazda z nich jest wolana przez pojedyncze przerwanie. Wszystkie uslugi
wprowadzone wraz z wersja DOS-2 stanowia uzupelnienie wolan funkcyjnych a nie
przerwan. Wiekszosc uslug, wprowadzonych wraz z wersja DOS-3 stanowi takze
wolania funkcyjne mimo iz istnieje dla nich nowe przerwanie.
14.1. Zalety i wady korzystania z uslug DOS-a.
Pytanie, czy nalezy korzystac z uslug DOS-u, czy nie, pojawia sie w sposob
naturalny podczas projektowania, jak rowniez w czasie ekspolatacji
wyrafinowanych programow. Moja generalna rada pojawiajaca sie na stronach tej
ksiazki, jest trzymanie sie zasady korzystania z uslug na mozliwie na
najwyzszym poziomie, ktore moga zrealizowac potrzeby. Oznacza to, ze nalezy w
pierwszej kolejnosci korzystac z uslug wbudowanych w jezyk programowania,
uciekajac sie w razie koniecznosci do bezposredniego uzycia uslug DOS-u czy
ROM-BIOS-u, a tylko w szczegolnych okolicznosciach do bezposredniego
programowania sprzetu.
Z praktycznego punktu widzenia program moze byc albo w calosci napisany z
uzyciem programow pomocniczych, albo prawie wszystko zwiazane ze wspolpraca
WE-WY musi byc wykonane poza jezykiem programowania, na nizszym poziomie.
Jesli zachodzi koniecznosc korzystania z programowania na nizszym poziomie,
uwazam, ze z wyjatkiem byc moze niewielu przypadkow, uslugi DOS-u sa najlepiej
dopasowane do operacji dyskowych. Podczas wspolpracy z klawiatura lub z innymi
urzadzeniami WE-WY, przydatne beda, w zaleznosci od potrzeb, zarowno procedury
DOS-u jak i ROM-BIOS-u. Lecz w przypadku oprogramowania monitora (ang.
video-display programming), tworzonego na niskim poziomie, sytuacja staje sie
bardziej zlozona. Uzyskanie zadawalajacego wyjscia na ekran prawie zawsze
sprawia wrazenie koniecznosci przywolania uslug ROM-BIOS-u i bezposredniego
oprogramowania sprzetu, nawet wtedy gdy korzystniejsze jest pozostanie w
ramach DOS-u. Wyjasnione to zostanie w dalszej czesci.
222. PRZEWODNIK PROGRAMISTY KOMPUTEROW OSOBISTYCH IBM PC
------------------------------------------------------------------------------
14.1.1. DOS: Ogromne mozliwosci uslug dyskowych.
Z przegladu pelnego zakresu narzedzi i uslug, dostarczonych nam przez
jezyki programowania, DOS, ROM-BIOS oraz sprzet komputerowy, wynika w sposob
oczywisty, ze najbogatsze skupisko uslug zwiazanych z dyskiem znajduje sie na
poziomie DOS-u. Nie wymaga to komentarza, poniewaz DOS, jako dyskowy system
operacyjny jest z zalozenia najmocniejszy w zakresie wspierania operacji
dyskowych.
Zgodnie z tym co omowione jest w rozdzialach 16 i 17, wiekszosc uslug,
ktorymi DOS bedzie nam sluzyl, jest bezposrednio zwiazane z obsluga zbiorow
dyskowych. Nawet niektore z uslug nominalnie sterowanych przez programy takie
jak ladowanie, czy wykonanie innego programu (funkcja 75 (hex. 4B)), zawieraja
operacje na zbiorach dyskowych. Z takiego punktu widzenia, DOS nie jest na
tyle dyskowym systemem operacyjnym, co raczej systemem uslug dyskowych
przeznaczonych dla uzycia ich przez nasze programy. Podczas eksploatacji
programow na komputerze rodziny IBM PC, dobrze jest traktowac DOS wlasnie w
takim ujeciu, uwazajac DOS jako pozostawione do naszej dyspozycji
nieograniczone zrodlo operacji dyskowych.
14.1.2. DOS i video: Trudnosci wzajemnego dopasowania.
Konwencja programowania PC dla wyrafinowanych programow stalo sie
wykonywanie wyjsc ekranowych na niskim poziomie. Czesto wszystkie wyjscia
monitorowe sa tworzone na bardzo niskim poziomie, z wyjsciem umiejscowionym
bezposrednio w obszarze pamieci ekranu. Inne operacje takie jak ruch kursora
zwykle wykonywane sa na nastepnym, wyzszym poziomie przez uslugi ROM-BIOS-u.
Poczatkowo bylo to nieodzowne poniewaz DOS nie dostarczal odpowiednich
uslug monitorowych (ang. video services). Poczynajac od wersji 2.00 jest
mozliwe wykonanie wiekszosci potrzebnych prac dotyczacych ekranu, przez uslugi
DOS-u wspomagane przez program ANSI, znany jako ANSI.SYS (patrz Dodatek A,
zawierajacy wiecej szczegolow na ten temat). Program ten uzywa zestawu
rozkazow, ktore po translacji moga wykonac prawie wszystko co tylko jest w
stanie wykonac ekran. Niemniej jednak uslugi programu ANSI moga byc w pewnym
sensie niewygodne w dzialaniu, poniewaz nie tylko wymagaja realizacji
programow pod wersja DOS-2, lecz takze by DOS byl rozszerzony poprzez
dolaczenie programu ANSI. Z mojego doswiadczenia wynika, ze wielu
poczatkujacych uzytkownikow jest calkowicie zaskoczonych koniecznoscia
dolaczenia programu dyskowego ANSI, a to stanowi silny argument przeciw
uzywaniu procedur stanowiacych uslugi DOS-u, a wymagajacych takiego programu.
Biorac pod uwage tylko ten czynnik z latwoscia dojdzie sie do wniosku, ze
nalezy calkowicie unikac stosowania uslug DOS-u w zakresie video, ale niestety
nie jest to az tak oczywiste. W wielu ostatnio pojawiajacych sie, bardzo
wyrafinowanych srodowiskach systemow operacyjnych, a w szczegolnosci w
systemach z mozliwoscia podzialu ekranu na okna, oczekuje sie by programy
realizowane pod ich kontrola uzywaly oficjalnie dostepnych uslug systemu
operacyjnego, a nie wspolpracowaly bezposrednio ze sprzetem. Biorac pod uwage
tego typu srodowiska istnieje mocna argumentacja za tym, by uzywac wprost
uslug DOS-u wszedzie tam gdzie jest to mozliwe.
Przy probie okreslenia sposobu najlepszego postepowania, bardzo wiele
zalezy od przewidywanego czasu eksploatacji programow i rodzaju maszyn, na
ktorych maja byc realizowane. W przypadku programow gier dzialajacych na PC,
dla ktorych szacunkowy czas eksploatacji wynosi kilka miesiecy (tak jest
PODSTAWY DOS-A. 223.
------------------------------------------------------------------------------
zwykle dla gier), nie ma powodu przejmowac sie tymi sprawami. Sytuacja jest
calkowicie odmienna w przypadku ogolnych zastosowan w zarzadzaniu
przedsiebiorstwami, oraz innych zastosowan profesjonalnych, ktore moga byc
uzywane przez wiele lat i w wielu roznych srodowiskach. Nalezy dokonac wyboru
najbardziej odpowiedniego w stosunku do potrzeb.
14.2. Roznice miedzy kolejnymi wersjami DOS-a.
Wersja 3.10 jest szostym oficjalnym wydaniem DOS-u. W kolejnych w wydaniach
dokonywane byly zarowno ulepszenia, jak i eliminowanie bledow.
*----------*--------------*-----------------------------------------------*
| Wersja | Data | Zmiany w sprzecie |
*----------*--------------*-----------------------------------------------*
| 1.00 | 04.VIII.1981 | Oryginalny model PC (jednostronny naped) |
| 1.10 | 07.V.1982 | Dwustronny naped dyskietkowy |
| 2.00 | 08.III.1983 | Model XT (naped dysku twardego) |
| 2.10 | 20.X.1983 | Modele PCjr i przenosne PC (napedy o zmniej- |
| | | szonej grubosci) |
| 3.00 | 14.VIII.1984 | Model AT (napedy dyskietek o duzej pojemnosci |
| 3.10 | 07.III.1985 | Przetwarzanie sieci (naped dysku dostosowany |
| | | do przetwarzania sieci) |
*----------*--------------------------------------------------------------*
Tabela 14-1. Szesc wydan DOS-u i zwiazane z nimi zmiany sprzetu.
Za kazdym razem motorem tych zmian byly problemy zwiazane ze sprzetem, a
zmiany w sprzecie zwykle wywolywane byly zmianami w napedach dyskowych.
We wszystkich wersjach z wyjatkiem 2.10 i 3.10, zmiany w DOS-ie pociagaly
za soba znaczace zmiany we wspomaganiu dyskowym (zawierajacym nowe formaty
pamieci dyskowej). Glowna zmiana, ktora doprowadzila do powstania wersji 2.10
byla wzglednie niewielka ale zwiazana z dyskiem: Czas ustawienia glowicy
sterujacej dyskietki zostal dostosowany do mozliwosci uwzglednienia roznic w
wykonaniu napedow o zmniejszonej grubosci uzytych w PCjr i przenosnych PC.
Wersja 2.10 rozni sie od poprzedniej rowniez tym, ze nie zawiera niektorych
bledow, ktore zostaly wykryte w wersji 2.00. W wersji 3.10 wlaczone zostaly
funkcje sieciowe zaprojektowane dla wersji 3.00, lecz nie przygotowane na
czas, tzn wtedy gdy wersja ta byla realizowana. Ponizej znajduje sie krotkie
proste zestawienie glownych roznic miedzy wersjami:
1. Wersja 1.00 wspomagala jednostronny, osmiosektorowy format dyskietki.
Wszystkie podstawowe uslugi DOS-u byly zawarte w tym wydaniu.
2. Wersja 1.10 dodala wspomaganie dla dwustronnych dyskietek. Mozliwosci
uslugowe DOS-u pozostaly bez zmian.
3. Wersja 2.00 dodala wspomaganie dla dziewieciosektorowych dyskietek
(zarowno jedno- jak i dwustronnych), oraz dla stalego twardego dysku.
W tej wersji mozliwosci uslugowe DOS-u w znacznym stopniu zostaly
zwiekszone (patrz rozdzial 17). Wprowadzone zostalo rowniez
wspomaganie kasetowe (ang. cartridge support), chociaz nie bylo ono
stosowane az do momentu wprowadzenia modelu PCjr.
4. Wersja 2.10 nie zostala wyposazona ani w nowe formaty dyskowe, ani
nowe mozliwosci uslugowe DOS-u, jakkolwiek dokonano synchronizacji
operacji dyskowych tak by mogly skorzystac z nich komputery PCjr i
przenosne PC.
5. Wersja 3.00 wprowadzila dodatkowe formaty dla dyskietek o wielkiej
224. PRZEWODNIK PROGRAMISTY KOMPUTEROW OSOBISTYCH IBM PC
------------------------------------------------------------------------------
pojemnosci oraz dla dysku twardego. Przygotowano rowniez podstawy dla
dysku z mozliwosciami przetwarzania sieciowego.
6. Wersja 3.10 wprowadzila dodatkowo dyski do przetwarzania sieciowego,
posiadajace mozliwosci dzielonego przez wielu uzytkownikow dostepu do
zbiorow.
U W A G A :
Kazda nastepna wersja DOS-u jest kompatybilna z wersjami poprzednimi,
z wyjatkiem kilku bardzo drobnych szczegolow, ktorych wystepowanie
zawsze wydaje sie byc nieuniknione.
Wraz z kazdym kolejnym wydaniem DOS-u pojawia sie pytanie wsrod tworcow
oprogramowania, ktorej wersji DOS-u uzywac, poniewaz uzycie wiekszych formatow
dyskietkowych i rozszerzonych mozliwosci uslugowych DOS-u uniemozliwia uzycie
wczesniejszych wersji DOS-u. Byla to klopotliwa sytuacja, ktora w przeszlosci
doprowadzala tworcow oprogramowania do podejmowania trudnych decyzji. Wersje
DOS-2 stanowia zwykly wybor na jakis czas. Sprzedaz wszystkich modeli PC
ciagle wzrasta, a w zwiazku z tym liczba uzytkownikow wersji DOS-1 coraz
bardziej maleje w stosunku do ogolnej populacji PC. Powoduje to stosunkowo
bezbolesne przestawienie sie naszych programow na wersje DOS-2, oraz uzyskanie
pelni korzysci z rozszerzonrgo zestawu uslug tych wersji DOS-u. Mimo
pojawienia sie wersji DOS-3, wybor DOS-2 wydaje sie byc na razie najlepszy,
lecz nikt nie potrafi powiedziec na jak dlugo.
14.3. Rozwazania na temat formatu dyskowego.
Obok podjecia decyzji zwiazanych z okresleniem z ktorych uslug DOS-u winny
korzystac nasze programy, oraz pod ktora wersja DOS-u programy te beda
realizowane, nalezy rozwazyc ktorych z formatow dyskietek powinno dostarczyc
sie programom. Konwencja przyjeta dla programow PC jest zaopatrzenie w
dyskietki jednostronne, formatowane osmiosektorowo, poniewaz format ten jest
jakby najnizszym wspolnym mianownikiem dla wszystkich formatow i wszystkich
wersji DOS-u i moze byc uzyty przez dowolna z wersji. Mimo iz uniwersalny
charakter jednostronnego, osmiosektorowego formatu jest uzyteczny, to stanowi
to jego jedyna pozytywna ceche. Z jednej strony, napedy jednostronne sa
obecnie prawie calkowicie w zaniku na PC-tach, a dwustronnie formatowane od
dawna wchodza na ich miejsce. Z drugiej strony dowolny program wymagajacy
DOS-2 moze uzyc dziewieciosektorowego formatu, ktorego w rzeczywistosci uzywa
sam DOS w wersjach 2.00 i 2.10. Aby usatysfakcjonowac ostatnich posiadaczy
DOS-1 chcialoby sie uzyc formatu dwustronnego, osmiosektorowego, ale z drugiej
strony istnieje mozliwosc uzycia bez poczucia jakiejkolwiek winy czy zalu
formatu dziewieciosektorowego.
Program moze w prosty sposob stwierdzic pod ktora wersja DOS-u jest
realizowany uzywajac wolania funkcyjnego 48 (hex. 30). O ile nie jestesmy
pewni jacy beda uzytkownicy programu, nalezy wlaczyc te zabezpieczenia do tego
programu i zawsze przeprowadzac kontrole by upewnic sie, ze wlasciwa wersja
DOS-u jest zainstalowana (patrz rozdzial 17 w celu uzyskania dalszych
szczegolow na ten temat).
PODSTAWY DOS-A. 225.
------------------------------------------------------------------------------
14.4. Komentarze.
Zazwyczaj brak jest fachowych informacji dotyczacych DOS-u. Wydaje sie, ze
jest wiele szczegolow, ktore firmy IBM i Microsoft ukrywaja przed swiatem.
Niestety niewiele mozemy zrobic w zwiazku z brakiem tych informacji, z
wyjatkiem byc moze proby przejscia dalej nad tym co odkrylismy, wskazujac
napotkane luki wszedzie tam gdzie tylko wystepuja. Sprobujemy zrobic to w
nastepnych rozdzialach.
U W A G A :
Oficjalnym zrodlem informacji dotyczacych mozliwosci uslugowych DOS-u
jest podrecznik "DOS Technical Reference", ktory zostal opracowany w
zwiazku z wprowadzeniem wersji 2.10. Dla wczesniejszych wersji DOS-u
odpowiednie informacje znajduja sie w glownym podreczniku DOS-u.
Wyszukiwarka
Podobne podstrony:
N14 GomulkaN14więcej podobnych podstron