Prof.nadzw.dr hab.inż. Władysław Brzozowski Cz*stochowa-Gliwice, 15.02.1999 r.
Politechnika Częstochowska
Instytut Elektroenergetyki
Wykłady z przedmiotu:
TECHNIKA PROGRAMOWANIA
studia magisterskie, kierunek Elektrotechnika,
specjalno** Informatyka w Elektroenergetyce, sem.VI
Wyk*ad 3. Zarz*dzanie mikrokomputerem. Funkcje DOS. J*zyk Turbo-Pascal. Elementy systemu i j*zyka. Struktura program*w w systemie Turbo Pascal.
3.1. Zarz*dzanie mikrokomputerem.
Mikrokomputer zarz*dzany jest specjalnymi programami. Pierwszym programem, kt*ry przejmuje zarz*dzanie komputerem w momencie jego startu, jest program BIOS. Rezyduje on na p*ycie g**wnej w pami*ci typu ROM.
Program BIOS testuje komputer, wczytuje z twardego dysku odpowiednie programy systemu operacyjnego, a nast*pnie przekazuje zarz*dzanie komputerem do tego systemu.
Aktualnie istnieje wiele system*w operacyjnych. Mog* one pracowa* lub wsp**pracowa* w r**nych kombinacjach, jak poni*ej.
R**ne warianty system*w operacyjnych
| - system DOS jako jedyny system operacyjny mikrokomputera
| - wsp**istnienie 2 niezale*nych system*w operacyjnych, np. | DOS i QNX. Ka*dy z system*w wykorzystuje przydzielon* | mu cz*** twardego dysku, bez mo*liwo*ci dost*pu do | cz**ci nale**cej do drugiego systemu. W momencie startu | komputera inicjuje si* system QNX, jednak*e u*ytkownik | ma mo*liwo**, w tym momencie, ze specjalnego menu, | wyboru DOS jako systemu kt*ry przejmie zarz*dzanie | komputerem
| - wsp**praca systemu DOS i *rodowiska WINDOWS (do wersji | 3.11). Komputerem mo*e zarz*dza* albo wy**cznie system | DOS, albo *rodowisko WINDOWS, ale za po*rednictwem | systemu DOS. Oba systemy korzystaj* z ca*o*ci twardego | dysku
| - *rodowisko WINDOWS (w wersji WINDOWS NT, WIN- | DOWS 95 lub WINDOWS 98) jako jedyny system opera- | cyjny mikrokomputera. *rodowisko WINDOWS mo*e | emulowa* funkcje systemu DOS, jednak system DOS | fizycznie w komputerze nie istnieje
| - wsp**istnienie systemu DOS oraz *rodowiska WINDOWS w jednej wybranej, lub r*wnocze*nie w 2 wersjach (np. WINDOWS NT oraz WINDOWS 95 lub 98) w kompute- rze. Ka*dy z system*w mo*e wykorzystywa* ca*o** twar- dego dysku. W momencie startu komputera inicjuje si* *rodowisko WINDOWS w wybranej wersjach (np. WIN- DOWS NT), jednak*e u*ytkownik ma mo*liwo**, w tym momencie, ze specjalnego menu, wyboru DOS, lub innej wersji *rodowiska WINDOWS jako systemu, kt*ry przej- mie zarz*dzanie komputerem
3.2. System operacyjny DOS
W momencie, gdy zarz*dzanie komputerem przejmuje system DOS, zostaj* wczytane do pami*ci operacyjnej jego 4 podstawowe programy:
io.sys
msdos.sys
command.com
dblspace.sys
Programy te przejmuj* kontrol* nad komputerem, i w perwszym rz*dzie odczytuj* 2 pliki:
plik konfiguracyjny config.sys
plik wsadowy autoexec.bat,
realizuj*c rozkazy zawarte w tych plikach. Zwykle nast*puje przy tym wczytanie do pami*ci operacyjnej r**nych sterownik*w (program*w steruj*cych tzw. driver'*w). Rozkazy pliku config.sys konfiguruj* komputer. Mo*liwe, i bardzo celowe, jest wprowadzenie do tego pliku specjalnego menu wielorakiej konfiguracji, kt*re umo*liwia potem u*ytkownikowi na wyb*r r**nych rozwi*za* konfiguracji komputera.
U*ytkownik mo*e wydawa* systemowi DOS rozkazy. Dziel* si* one na wewn*trzne (internal - obs*ugiwane przez program command.com) oraz zewn*trzne (external - obs*ugiwane przez niezale*ne ma*e programy o takiej samej nazwie jak rozkaz; nale*y podawa* *cie*k* dost*pu do tych program*w).
Funkcje systemu DOS, podstawowe i zaawansowane, przedstawiaj* si* jak poni*ej:
Funkcje systemu DOS
| - konfigurowanie komputera, w tym wieloraka konfiguracja jw.
| - organizacja twardego dysku (programem fdisk). Dzielenie | twardego dysku na partycje: systemow* (MS DOS partition) i | rozszerzon* (extended DOS partition). Wyr**nianie, w partycji | rozszerzonej, partycji logicznych (logical drive).
| - kompresja plik*w - powi*kszanie pozornego rozmiaru twardego | dysku i dyskietek (program dblspace.com)
| - zarz*dzanie pami*ci* rozszerzon* komputera XMS (Extended | Memory Specification) i EMS (Expanded Memory Specifi- | cation)
| - ustalanie parametr*w narodowo*ciowych komputera (w tym | strony kodowe np. ameryka*ska 437 i Latin II 852)
| - zarz*dzanie katalogami (folderami) i plikami: tworzenie, kaso- | wanie, kopiowanie, przenoszenie, nadawanie atrybut*w plikom
| - u*atwienia wydawania rozkaz*w poprzez programy nak*adkowe | (shell)
| - archiwizowanie plik*w (backup'ing)
| - kontrola antywirusowa sta*a lub dora*na
| - usprawnianie obs*ugi twardego dysku (defragmentacja, program | smartdrive)
| - tworzenie RAM-dysku (program ramdrive.sys)
Je*li komputer jest zarz*dzany przez *rodowisko WINDOWS, tak*e i ono realizuje powy*sze funkcje (ale innymi, w*asnymi programami i opcjami). Jest te* zawsze mo*liwo** emulacji rozkaz*w DOS poprzez tzw. lini* rozkazow* (wiersz polece*).
3.3. J*zyk Turbo Pascal
J*zyk Pascal zosta* opracowany przez Niklausa Wirtha w 1971 r. pocz*tkowo dla du*ych komputer*w. Dla mikrokomputer*w klasy IBM PC opracowano w 1983 r. odmian* j*zyka o nazwie Turbo Pascal. W*a*ciwie nie jest to ju* j*zyk, lecz system programowania, m*wimy tzw. zintegrowany interaktywny system programowania. Decyduje o tym w**czenie, do tego systemu, wewn*trznego edytora tekstowego oraz debuggera. Klasyczne j*zyki, np. Fortran, posiada*y jedynie kompilator, nast*pnie program **cz*cy czyli tzw. linker oraz biblioteki procedur standardowych. Aby m*c napisa* program *r*d*owy w takim j*zyku klasycznym trzeba by*o skorzysta* z obcego edytora tekstowego. Takim, do niedawna jeszcze popularnym edytorem, stosowanym w tym celu, by* np. Sidekick.
J*zyk Turbo-Pascal zostanie przeze mnie przedstawiony w najnowszej wersji jak* jest Borland Pascal with Objects 7.0. Wersja ta obok edytora, kompilatora, debuggera - czyli podstawowych element*w systemu posiada jeszcze: tzw. profiler - program analizuj*cy i wspomagaj*cy proces optymalizacji program*w aplikacyjnych (zamiast program aplikacyjny b*dziemy m*wili dalej kr*tko aplikacja), wewn*trzny assembler, browser - program przegl*daj*cy nast*pnie generator tzw. zasob*w o nazwie Resource Workshop. Zasobami nazywamy: ikony (icons), rozwijalne menu aplikacji (menus), mapy bitowe (bitmaps), wzorce kursora, formy dokument*w *r*d*owych (dialog boxes) itp. Wreszcie w sk*ad systemu wchodz* dwie biblioteki gotowych, standardowych funkcji i procedur, czyli tzw. metod programowania obiektowego, o nazwach Turbo Vision oraz Object Windows.
System programowania Borland Delphi korzysta z j*zyka Borland Pascal, **cz*c pewne elementy systemu Visual Basic.
Podstawow* kategori* j*zyka Borland Pascal with Objects 7.0 jest platforma programowania (platform). Wyr**niamy trzy platformy programowania:
tryb rzeczywisty DOS (DOS real-mode);
tryb chroniony DOS (DOS protected mode);
*rodowisko Windows (MS Windows environment).
Tryb rzeczywisty DOS wi**e si* z wykorzystaniem jedynie podstawowej pami*ci operacyjnej mikrokomputera tj. 640 kB. Tryb chroniony DOS wi**e si* z wykorzystaniem ca*ej pamieci operacyjnej, a wi*c podstawowej i rozszerzonej. *rodowisko Windows wi**e si* r*wnie* z wykorzystaniem ca*ej pami*ci operacyjnej, a ponadto z wieloprogramowo*ci* i mo*liwo*ci* przenoszenia obiekt*w pomi*dzy programami.
Poj*cie platformy programowania odnosi si* niezale*nie do:
samego procesu pisania i uruchamiania programu aplikacyjnego (IDE platform - Integrated Development Environment platform);
warunk*w wykonywania programu aplikacyjnego (target platform).
Przyk*adowo: system Borland Pascal mo*e by* uruchomiony w *rodowisku Windows (IDE platform), ale mo*e pos*u*y* napisaniu w nim i skompilowaniu programu aplikacyjnego, kt*ry b*dzie dzia*a* tylko w trybie rzeczywistym DOS (target platform).
W efekcie wyr**nia si* 3 r**ne wersje systemu, czyli 3 IDE, obs*ugiwane odpowiednio przez 3 r**ne podstawowe programy systemu:
Program TURBO.EXE, ktory dzia*a w trybie rzeczywistym DOS i tworzy aplikacje te* tylko dla trybu rzeczywistego DOS;
Program BP.EXE, kt*ry dzia*a w trybie chronionym DOS i mo*e s*u*y* tworzeniu aplikacji dzia*aj*cych albo w trybie rzeczywistym DOS, chronionym albo w *rodowisku Windows;
Program BPW.EXE, kt*ry dzia*a w *rodowisku Windows i, podobnie jak BP.EXE, mo*e s*u*y* tworzeniu aplikacji dzia*aj*cych albo w trybie rzeczywistym DOS, chronionym albo w *rodowisku Windows. Uzupe*nieniem powy*szych trzech program*w, s* dodatkowo dwa r**ne programy zewn*trznych kompilatorow j*zyka:
Program TPC.EXE, kt*ry dzia*a w trybie rzeczywistym DOS i tworzy aplikacje te* tylko dla trybu rzeczywistego DOS;
Program BPC.EXE, kt*ry dzia*a w trybie chronionym DOS i mo*e s*u*y* tworzeniu aplikacji dzia*aj*cych albo w trybie rzeczywistym DOS, chronionym albo w *rodowisku Windows.
Nale*y podkre*li*, *e te dwa ostatnie programy nie stanowi* IDE, to znaczy obejmuj* jedynie kompilator i linker, bez edytora i debuggera. B*dziemy je stosowa* przy uruchamianiu szczeg*lnie du*ych program*w, nie mieszcz*cych si* obok ca*ego IDE w pami*ci operacyjnej. Nale*y te* wyja*ni*, *e ka*dy z powy*szych 5 program*w mo*e by* wywo*any w *rodowisku Windows, ale jedynie BPW.EXE ma cechy pe*nego programu Windows-owego, tj. np. mo*na do niego przenosi* za po*rednictwem schowka (Clipboard) obiekty z innych program*w. Schemat wsp**pracy platform i program*w Borland Pascal jest pokazany na rysunku 3.1.
Rys. 3.1. Platformy programowania w Borland Pascal.
Programy TURBO.EXE, BP.EXE i BPW.EXE s* do siebie bardzo podobne, je*li chodzi o posta* zewn*trzn* na ekranie. Jednak*e dwa ostatnie maj* dodatkow* opcj* menu. Mianowicie, w opcji g**wnej Compile jest dodatkowa podopcja Target z mo*liwo*ci* wyboru:
Real mode application;
Protected mode application;
Windows application.
Aplikacje skompilowane z opcja "protected mode application", jak wynika z definicji tej platformy programowania, wykorzystuj* pe*ny zakres pamieci operacyjnej; w przypadku gdy komputer posiada du** pami** rozszerzon* aplikacje takie mog* by* odpowiednio du*e. W aplikacjach takich, jednak*e, nie stosuje sie trybu nak*adkowego typu takiego jaki realizuje modul Overlay. To samo dotyczy rownie* opcji "windows application".
Wszystkie trzy opcje praktycznie nie r**ni* si* co do podstawowych element*w j*zyka, natomiast r**nia si* co do nazw modu**w standardowych oraz zakresu procedur standardowych zwi*zanych z pami*cia operacyjn*. W dalszej cz**ci wyk*adu zajmiemy si* g**wnie aplikacjami dla trybu rzeczywistego DOS. Po opanowaniu tego trybu *atwo przej** do pozostalych dwu tryb*w. Podstawowe elementy j*zyka dla wszystkich trzech tryb*w s* zreszt* niemal identyczne.
3.4. Elementy systemu i j*zyka Borland Pascal
Elementami systemu, kt*re programista musi opanowa*, opr*cz element*w j*zyka, s*: parametry wywo*ania i konfiguracji systemu, operacje na modu*ach, operacje na oknach, rozwijalne menu, hot keys (klucze szybkiego wyboru), help systemowy, dyrektywy kompilatora (wewn*trznego, zewn*trznego), katalogi b**d*w (kompilacji - compiler errors i wykonania - run time errors), rozkazy edytora.
Elementami j*zyka s*: modu*y (standardowe, programisty), symbole, s*owa kluczowe, dyrektywy j*zyka, identyfikatory, litera*y (numeryczne, logiczne, *a*cuchowe), komentarze, etykiety, sta*e (predefiniowane, programisty), zmienne, typy zmiennych (standardowe, programisty), wyra*enia (arytmetyczne, logiczne, *a*cuchowe), operatory (arytmetyczne, logiczne, *a*cuchowe), instrukcje, pliki dyskowe (zdefiniowane, niezdefiniowane, tekstowe), procedury (standardowe, programisty), funkcje (standardowe, programisty) oraz parametry procedur i funkcji (formalne, aktualne).
3.5. Struktura program*w w Borland Pascal
Du*e, profesjonalne programy w Borland Pascal s* zawsze wielomodu*owe (dotyczy* to b*dzie p**niej i Delphi). Program taki zawiera zawsze jeden modu* programowy (g**wny) oraz jeden, kilka lub wiele modu**w programisty (pomocniczych).
Podzia* programu na wiele ma*ych modu**w, a nast*pnie zastosowanie trybu nak*adkowego (w DOS Real Mode) powoduje, *e program nawet bardzo du*y zajmuje niewiele miejsca w pami*ci operacyjnej
Korzystnie jest, aby jeden z modu**w programisty zawiera* wszystkie dane (tj. definicje typ*w i deklaracje zmiennych) programu, gdy* maj* one w*wczas zasi*g globalny (s* wa*ne w ca*ym programie). Dane natomiast, zadeklarowane w module programowym, maj* zasi*g ograniczony tylko do tego modu*u.
Modu* programowy ma poni*sz* struktur*.
Modu* programowy
| - nag**wek programu (program ....)
| - blok programu
| - opis danych | | - deklaracje modu**w (uses ....)
| | - deklaracje etykiet (label ....)
| | - definicje nazw litera**w i zmiennych inicjowanych | | (const ....)
| | - definicje typ*w zmiennych (type ....)
| | - deklaracje zmiennych (var ....)
| | - deklaracje funkcji i procedur (procedure.... forward, | | function ..... forward)
| | - definicje funkcji i procedur (procedure.... function ....)
| - cz*** wykonawcza programu (begin .... end.)
Modu* programisty ma poni*sz* struktur*.
Modu* programisty
| - nag**wek modu*u (unit ....)
| - cz*** opisowa modu*u (parametry dost*pne na zewn*trz modu*u)
| | - interface
| | - deklaracje modu**w (uses ....)
| | - definicje nazw litera**w i zmiennych inicjowanych | | (const ....)
| | - definicje typ*w zmiennych (type ....)
| | - deklaracje zmiennych (var ....)
| | - deklaracje funkcji i procedur (procedure .... function ....)
| - cz*** implementacyjna modu*u
| | - implementation
| | - deklaracje modu**w (uses ....)
| | - definicje typ*w zmiennych wewn*trznych (type ....)
| | - deklaracje zmiennych wewn*trznych (var ....)
| | - deklaracje funkcji i procedur wewn*trznych (procedure.... | | forward, function ..... forward)
| | - definicje funkcji i procedur wewn*trznych i zewn*trznych | | (procedure.... function ....)
| - cz*** inicjuj*ca modu*u (opcjonalna)
| - instrukcja inicjuj*ca modu*
| - end.
Koniec wyk*adu 3
Plik W3TEPR99.DOC
Edytor WORD 6.0 PL