Sunteți pe pagina 1din 41

Programarea in Turbo Pascal

Introducere n Turbo Pascal


Limbajul Pascal a fost elaborat n 1972 de ctre Nicklaus Wirth de la Universitatea din Zurich n scopul unei mai bune nvri a programrii. Dei la nceput el a fost cunoscut doar de mediul universitar, apoi el a cunoscut un succes imens.

Structura programelor Pascal


1. Orice program ncepe printr-un cuvnt numit PROGRAM care este urmat de numele propriu-zis al programului, adic de un nume ales de utilizator i de semnul ; (punct i virgul) 2. Orice program conine cel puin odat cuvintele cu un neles special BEGIN i END 3. Orice program se termin prin punct 4. Orice cuvnt al programului poate fi scris cu litere mari sau mici, deoarece nu are importan 5. n versiunea Turbo, prima linie poate lipsi, dei nu se recomand acest lucru, din raiuni de ordine 6. Plasarea cuvintelor pe linie i numrul de spaii dintre ele snt la alegerea programatorului. Se poate scrie tot programul pe o singur linie, ns este bine ca programul s fie scris n aa fel nct s fie uor de neles. Un program scris n Pascal, orict de complex ar fi, are urmtoarea structur : PROGRAM nume ; definiii de constante ; definiii de tipuri ; declaraii de variabile ; declaraii de proceduri i funcii ; BEGIN Instruciuni END Nu este obligatoriu ca ntr-un program s figureze toate acestea, dar dac ele figureaz, trebuie s apar n aceast ordine. Orice program cuprinde dou pri eseniale : descrierea instruciunilor ( a aciunilor) i descrierea datelor care snt prelucrate de instruciuni
1

Un program Turbo Pascal este structurat astfel : a) un antet de program, care conine cuvntul rezervat PROGRAM urmat de numele programului b) o declaraie, introdus n cuvntul rezervat USES, a numelor unit-urilor, care se vor folosi ntr-un program c) o parte obligatorie format dintr-un bloc, urmat de caracterul punct Componentele a) i b) , de mai sus, pot s lipseasc dintr-un program Un UNIT este o colecie de declaraii de constante, tipuri, variabile i subprograme n cod obiect (adic compilate separat), care se utilizeaz n program prin specificarea numelui su n clauza Uses. Folosirea unit-urilor permite scrierea unor programe mari care depesc 64 K. Dimensiunea unui program, ca i ceea a unui unit, nu poate depi 64 K. Numrul unit-urilor utilizate de un program nu este ns limitat i de aceea programul poate atinge dimensiuni care depind de capacitatea memoriei interne. Utilizatorii pot s-i creeze unit-uri proprii dar pot utiliza i cele 8 unit-uri standard oferite de mediul Turbo Pascal : SYSTEM, DOS, GRAPH, CRT, OVERLAY, PRINTER, GRAPH3, TURBO3. Unitul SYSTEM este ncorporat n toate programele Pascal, fr s fie obligatorie declararea lui n USES, deoarece el cuprinde procedurile i funciile cel mai des folosite. Folosirea unit-urilor, nu este posibil n Pascal Standard. Blocul, este elementul de baz al programului i cuprinde o seciune de declaraii, care este opional i o seciune obligatorie de program.

Elementele limbajului
Turbo Pascal folosete urmtorul subset al caracterelor ASCII : litere : a z, A Z cifre : 0 9 cifre hexa : 0 9; A F; a f caractere speciale : + - * / @ # $ % ^ & { } caracterele ASCII 0 32

Cuvintele cheie (rezervate)


Aceste cuvinte pot fi scrise att cu litere majuscule, ct i cu minuscule sau pot fi chiar i amestecate. Cuvintele rezervate snt cuvinte care au un neles special, ele neputnd fi redefinite de utilizator.

And Asm Array Begin Case Const Constructor Destructor Div Do Downto Else

End Exports File For Function Goto If


Implementation

In Inherited Inline Interface

Label Library Mod Nil Not Object Of Or Packed Procedure Program Record

Repeat Set Shl Shr String Then Until Uses Var While With Xor

Directive standard
Spre deosebire de cuvintele rezervate, directivele standard pot fi redefinite de programator, aceasta ns nu este recomandat. Absolute Far Near Virtual Assembler Forward Private Export Index Public External Interrupt Resident

Identificatorii
Snt simboluri care desemneaz variabile, proceduri, funcii, unit-uri, constante, tipuri, programe i cmpuri de articole. Un identificator ncepe cu o liter, care poate fi urmat de orice combinaie de litere, cifre sau caracterul de subliniere (_ , ASCII $5F). Lungimea identificatorilor nu este limitat, dar snt semnificative doar primele 63 de caractere. n cazul programelor ce folosesc unit-uri, pot exista instane cu acelai identificator. Pentru a putea selecta o instan specific, identificatorul ales, trebuie calificat. Calificarea se realizeaz printr-o construcie de forma :

Nume_unit.identificator
Adic numele identificatorului trebuie s fie precedat de numele unit-ului de origine, urmat de un punct. Exemplu : dos.exec O alt categorie special de identificatori snt tipurile predefinite ale limbajului. Aceste snt urmtoarele :
3

Boolean Byte Bytebool Char

Comp Double Extended Integer

Longbool Longint Openstring Pchar

Pointer Real Shortint Single

Text Word Wordbool

O alt categorie special de identificatori o reprezint, directivele name, index, resident (folosite de biblioteci de legare dinamic .DLL), precum i parametrul Self. Att tipurile predefinite, ct i directivele precedente pot fi redefinite, dar aceast redefinire nu este recomandat.

Etichetele
Snt specificate sub form de numere ntegi din domeniul 09999 sau de identificatori. Etichetele snt utilizate la instruciunile de salt necondiionat goto. Dac o instruciune este precedat de o etichet, este permis folosirea ei prin instruciunea goto. O etichet marcheaz numai o linie. Eticheta este separat de instruciunea corespunztoare prin caracterul dou puncte ( :). Toate etichetele utilizate trebuie declarate n seciunea label. Exemplu de etichet :

Label 1234; {} begin {} 1234: y:=sin(x)+1.0; {} goto 1234; {} end.

Constantele, numerele
Constantele, desemneaz valori ntregi sau reale. n mod obinuit se folosete notaia zecimal, dar este permis i folosirea notaiei hexazecimale, n cazul numerelor ntregi. O constant hexazecimal, folosete semnul dolarului ( $) ca prefix. Numerele reale se scriu sub forma :
4

partea_ntreag.partea_zecimal
adic n locul virgulei zecimale, se folosete punctul zecimal. Opional se poate aduga i un exponent, la care litera E sau e este urmat de un exponent cu sau fr semn. Dac exponentul este prezent, numrul este nmulit cu 10 la puterea exponentului. Numerele hexa trebuie s fie cuprinse ntre $00000000 i $FFFFFFFF , iar numerele ntregi trebuie s fie cuprinse ntre 2,147,483,648 i 2,147,483,647.

Operatorii
Limbajul Turbo Pascal 7.0 are nou tipuri de operatori : 1) asignare, 4) relaionali 7) mulime 2) aritmetici, 5) logici 8) asamblare 3) lucru cu bii 6) adresare 9) ir Unii operatori snt binari, solicitnd doi operanzi, restul snt unari, solicitnd un operator.

Precedena (prioritile) operatorilor


n expresii complexe, regulile de preceden (prioritate), clarific ordinea n care se vor executa operaiile. Tabelul urmtor prezint prioritile : Operator Prioritate @ not 1 * / div mod and shl shr 2 + - or xor 3 = <> < > <= >= in 4 Operatorii care au aceiai prioritate snt executai n mod normal de la stnga la dreapta. Expresiile cu paranteze snt evaluate mai nti, independent de operatorii precedeni sau de succesori.

1) Operatorul de asignare
Una din cele mai frecvente operaii n cadrul programelor este asignarea, adic operaia de atribuire a unei valori, unei variabile. Simbolul de asignare este format din caracterul dou puncte (:) urmat de caracterul egal (=). Exemplu : A:=3;

2) Operatorii aritmetici
* Div / Mod + Multiplicare, nmulire mprire ntreag mprire cu rest Modul Adunare Scdere

3) Operatori pentru bii


SHL (shift left) Shr (shift right) And Or Xor Not

4) Operatori relaionali
Operatorii relaionali permit compararea a dou valori i returneaz rezultatul boolean , TRUE sau FALSE. > >= < <= = <> in mai mare mai mare sau egal cu mai mic mai mic sau egal cu egal diferit apartenena

5) Operatorii logici
Limbajul Turbo Pascal are patru operatori logici : and xor or not care snt similari, dar nu identici cu operatorii pentru bii.
6

6) Operatorii de adresare
Limbajul Turbo Pascal folosete doi operatori de adresare : - adresa lui @, care returneaz adresa unei variabile - (^) operatorul de indirectare

7) Operatorii pentru mulimi


+ reuniunea diferena intersecia

8) Operatorii limbaj de asamblare


& () [] HIGH LOW + : OFFSET SEG TYPE PTR * / MOD SHL SHR + NOT AND OR XOR redefinire identificator subexpresie referin memorie ntoarce octetul cel mai semnificativ ntoarce octetul cel mai puin semnificativ plus unar minus unar redefinire segment ntoarce partea offset ntoarce partea segmentului ntoarce tipul, n octei multiplicare diviziune modul shift logic stng shift logic drept adunare binar scdere binar negare intersecie reuniune reuniune exclusiv

9) Operatorul pentru iruri


Singurul operator pentru iruri, este operatorul plus ( +), care permite concatenarea (alipirea) a dou iruri.
7

Separarea instruciunilor
Este realizat prin caracterul punct i virgul ( ;). Acest caracter este destinat separrii i nu terminrii unei instruciuni. Prezena lui nu este obligatorie dup fiecare instruciune iar n faa instruciunii End, poate s i lipseasc, iar n faa cuvntului cheie Else, acest caracter este interzis.

iruri de caractere
Un ir de caractere este o secven de caractere ncadrate ntre dou apostroafe. Dac se dorete ca irul nsui s conin caracterul apostrof, acest caracter trebuie s fie dublat. irul poate s conin zero sau mai multe caractere din setul extin de caractere ASCII. Un ir nu poate fi desprit n mai multe linii. Un ir de caractere, care nu conine nici un caracter, se numete ir vid (nul). Limbajul Turbo Pascal permite introducerea caracterelor n iruri i n felul urmtor : semnul # urmat de un numr natural din domeniul 0255 desemneaz un caracter din setul ASCII extins. ntre # i numrul natural, nu trebuie s existe nici un separator. Dac mai multe caractere astfel scrise, snt pri ale unui ir, atunci nici aici nu snt folosii separatori. Exemple de iruri de caractere :

Turbo #13#10#13 #7#7Atenie#7#7 Youll see Linia 1#13Linia 2

Comentarii
Un comentariu este o secven de caractere inserate n program cu scopul facilitrii nelegerii aciunilor sale. Comentariile snt construcii ignorate de compilator i servesc la precizarea observaiilor programatorului, privitor la o seciune din program. Un comentariu ncepe cu caracterul { sau cu perechea de caractere (* i se ncheie cu caracterul } sau cu perechea *). Un comentariu care conine semnul dolar ($), imediat dup deschiderea sa, reprezint o directiv de compilare. Comentariile pot s conin orice secven de caractere exceptnd pe cele menionate mai sus. Exemple de comentarii : { Acesta este un comentariu }
8

(* Acesta este un program *)

Directive de compilare
Directivele de compilare, snt comentarii cu o sintax special, i pot fi utilizate peste tot unde snt admise comentarii. Directivele de compilare ncep cu caracterele {$ sau (*$, care snt urmate de numele directivei i se termin cu caracterul } sau *). Exist trei categorii de directive : Directivele tip comutator, prin care pot fi activate diferite funcii ale compilatorului. Numele directivei este urmat de caracterul + pentru cuplare sau de caracterul pentru decuplare. Directivele tip parametru, specific anumii parametri care afecteaz modul de compilare. Directivele condiionale, controleaz compilarea condiional a anumitor pri ale textului surs. Directivele de compilare tip comutator Directivele de compilare tip comutator furnizeaz anumite informaii necesare compilatorului. Ele pot fi cuplate sau decuplate. De regul, dup caracterul $, apare o liter i semnul + sau -, de exemplu {$F+}, {$R-}. Ele se refer la anumii comutatori (valori logice). Directivele de compilare pot fi : locale globale Directivele locale pot s apar oriunde n program sau n unit, pentru c ele afecteaz doar o parte a compilrii. Directivele globale trebuie s fie plasate naintea prii de declarare a programului sau a unit-ului care se compileaz, pentru c ele afecteaz ntreaga compilare. Se permite gruparea mai multor directive de compilare, care trebuie separate cu virgul. Exemplu :

{$F+, R+, E-, D-}


Directiv Descriere Aliniere date Evaluare boolean Informaii de depanare
9

{$A+} {$A-} {$B+} {$B-} {$D+}

Valoare implicit Cuplat [X] Decuplat [ ] Cuplat [X]

Efect Global Local Global

{$D-} {$E+} {$E-} {$F+} {$F-} {$G+} {$G-} {$I+} {$I-} {$L+} {$L-} {$N+} {$N-} {$O+} {$O-} {$P+} {$P-} {$Q+} {$Q-} {$R+} {$R-} {$S+} {$S-} {$T+} {$T-} {$V+} {$V-} {$X+} {$X-} {$Y+} {$Y-}

Emulare Model de apel far

Cuplat [X] Decuplat [ ]

Global Local Local Local Local Global Global Global Local Local Local Local Local Global Global

Generare de instruciuni Decuplat [ ] 286 Testare operaii intrare / ieire Informaii locale Cuplat [X]

simboluri Cuplat [X] Decuplat [ ] Decuplat [ ]

Prelucrare numeric Structur de acoperire.

Numai n mod real !


Parametru ir deschis de Decuplat [ ] caractere Testare depire numere Decuplat [ ] ntregi Testare valori domeniu de Decuplat [ ] Cuplat [X]

Testare depire stiv

Operator de adresare @ Decuplat [ ] cu tip Test identitate tip la Cuplat [X] parametru / argument ir Sintaxa extins Informaii tip browser Numai n mod protejat ! Decuplat [ ] Cuplat [X]

Directivele de compilare i echivalenele lor n meniul Option/Compiler


Directiv

{$A+} {$A-}

Grupa Generare de cod Generare de cod

Echivalent [X] Word Align Data [ ] Word Align Data

10

{$B+} {$B-} {$D+} {$D-} {$E+} {$E-} {$F+} {$F-} {$G+} {$G-} {$I+} {$I-} {$L+} {$L-} {$N+} {$N-} {$O+} {$O-} {$P+} {$P-} {$Q+} {$Q-} {$R+} {$R-} {$S+} {$S-} {$T+} {$T-} {$V+} {$V-} {$X+} {$X-} {$Y+} {$Y-}

Sintaxa Sintaxa Depanare Depanare Prelucrare numeric Prelucrare numeric Generare de cod Generare de cod Generare de cod Generare de cod Erori de execuie Erori de execuie Depanare Depanare Prelucrare numeric Prelucrare numeric Generare de cod Generare de cod Sintax Sintax Erori de execuie Erori de execuie Erori de execuie Erori de execuie Erori de execuie Erori de execuie Sintax Sintax Sintax Sintax Sintax Sintax Depanare Depanare

[X] Complete Boolean eval. Boolean Evaluation. Short Circuit Debug Information.On Debug Information.Off Emulation.On Emulation.Off Force Far Calls.On Force Far Calls.Off 286 Code.On 286 Code.Off I/O Checking.On I/O Checking.Off Local Symbols.On Local Symbols.Off 80x87 Code.On 80x87 Code.Off Overlay Code Generation.On (Numai n mod real) Overlay Code Generation.Off (Numai n mod real) Open string parameters. Enabled Open string parameters. Disabled Overflow Checking.On Overflow Checking.Off Range Cecking.On Range Cecking.Off Stack Cecking.On Stack Cecking.Off Typed @ operator.On Typed @ operator.Off Strict Var String Checking Relaxed Var String Checking Extended Syntax.On Extended Syntax.On Symbol reference information. On (numai n mod real) Symbol reference information. Off (numai n mod real)

11

Directive tip parametru Directivele tip parametru specific parametri care afecteaz modul de compilare a programului. Directive parametru Semnificaie $C Atribut Atributul segmentului de cod (sub Windows i n mod protejat) $D Text Descriere (sub Windows i n mod protejat) $I Numefiier Includerea fiierului surs, cu extensia .PAS $G NumeUnit Segmente de grup unit (sub Windows i n mod protejat) $L Numefiier Includerea fiierului obiect, cu extensia .OBJ $M DimensiuneStiv, Dimensiunile de alocare a memoriei : stiv i valori HeapMinim, extreme pentru heap. HeapMaxim $O NumeUnit Numele unit-ului de acoperire, cu extensia .OVR (numai n mod real) $R NumeFiier Fiier de resurse (sub Windows i modul protejat) $S DimSegment Preferin dimensiune segment (sub Windows i n mod protejat) ntre numele directivei i parametrii trebuie plasat cel puin un caracter blanc. Exemplu : {I TYPES.INC} {$O XYZUNIT} Directivele i simbolurile compilrii condiionate Compilarea condiionat se bazeaz pe evaluarea simbolurilor condiionale.

{$DEFINE nume}
Introducerea simbolului nume n lista simbolurilor convenionale. Acest simbol este recunoscut pn nu va fi ters cu o directiv :

{$UNDEF nume}
Existena simbolului poate fi testat cu directiva :

{$IFDEF nume}
Introducerea simbolurilor condiionale poate fi realizat i cu opiunea Conditional Defines (comanda Compiler din meniul Options).

{$UNDEF nume}
tergerea simbolului nume din lista simbolurilor condiionale. Dac simbolul nu este definit, directiva nu are efect.
12

{$IFDEF nume}
Dac simbolul nume exist n lista simbolurilor condiionale, se compileaz textul cuprins ntre aceast directiv i directiva :

{$ELSE}
sau

{$ENDIF}
Dac simbolul nume nu exist, nu se compileaz textul cuprins ntre aceast directiv i

{$ELSE}
sau

{$ENDIF} {$IFNDEF nume}


Lucreaz similar directivei

{$IFDEF nume}
cu deosebirea c se testeaz lipsa simbolului nume n lista simbolurilor condiionale.

{$IFOPT k+}
Dac opiunea k (care poate fi una din literele A, B, D, E, F, G, I, L, O, P, Q, R, S, T, V, X, Y) este cuplat, se compileaz textul ntre aceast directiv i directiva :

{$ELSE}
sau

{$ENDIF}
Dac opiunea k nu este cuplat, nu se compileaz textul cuprins ntre aceast directiv i

{$ELSE}
sau

{$ENDIF}

Declaraii de variabile
nainte de a trece la declararea variabilelor, vom arta mai nti modul de aezare a programului i a diverselor date n memoria operativ. Programul, mpreun cu procedurile i funciile care aparin programului, este depus n segmentul de cod. naintea versiunii 4.0 a compilatorului, lungimea maxim admis a fost de 64Ko. Prin utilizarea unit-urilor i a bibliotecilor dinamice, lungimea maxim a devenit de 640Ko. n afar de segmentul de cod, mai exist segmentele de date, de stiv i segmentul extra. Segmentul de date permite memorarea datelor programului. Aceast memorare este ajutat i de segmentul de stiv, care este zona principal a gestionrii datelor dinamice. Datele programului ncrcate, n funcie de tipul lor, vor fi depuse n segmentele de cod, stiv i date.
13

Variabilele programului principal, dac nu snt specificate ulterior alte atribute, snt memorate n segmentul de date. Aceste variabile snt statice, deoarece locaia lor din memorie n timpul execuiei rmne nemodificat. Din alt punct de vedere aceste variabile snt i globale, deoarece pot fi folosite n ntreaga ntindere a programului. O alt clas de variabile este legat de subprograme. Aceste variabile triesc doar n timpul execuiei subprogramului (procedur sau funcie). Variabilele locale snt alocate la nceputul segmentului de stiv. n segmentul de stiv, alocarea se face n ordine invers, adic de la adrese mai mari la adrese mai mici. n momentul apelrii subprogramului, variabilele locale vor fi alocate, adic stiva va crete. n momentul ieirii din subprogram, spaiul din stiv alocat variabilelor locale, va fi eliberat. n momentul declarrii variabilelor noi, spaiul din memorie eliberat, va fi din nou reutilizabil. Tot n segmentul de stiv, n zona numit heap, snt alocate variabilele dinamice. Declararea variabilelor dinamice difer substanial de declararea celorlalte variabile, deoarece declararea lor se realizeaz n timpul execuiei programului. Dup ce aceste variabile au fost utilizate, spaiul ocupat de ele poate fi eliberat. Cu alte cuvinte ele ocup spaiu atta timp, ct snt efectiv necesare. Alocarea de memorie pentru variabilele dinamice se realizeaz cu procedurile New i GetMem, iar eliberarea de memorie se realizeaz cu subprogramele Dispose, FreeMem, Mark i Release. Geografia memoriei este urmtoarea : Adres superioar memorie DOS FreePtr List pentru descrierea zonelor libere n Heap HeapPtr Zon de memorie liber HeapOrg Heap (crete spre adrese mari) Tamponul overlay (de acoperire) Sseg:Sptr Stiv (Stack crete spre adrese mici) Sseg:0000 Stiv neutilizat
Variabilele globale din programul principal i din unit-uri

OvrHeapEnd OvrHeapOrg

Dseg:0000 Variabilele iniializate (constante tipizate) Segmentul de cod pentru unit-ul SYSTEM Segmentul de cod pentru unit-ul U 1 Segmentul de cod pentru unit-ul U 2 Segmentul de cod pentru unit-ul U n Cseg:0000 Segmentul de cod pentru programul principal (n care apare directiva :

Uses U 1, U 2, , U n;
PrefixSeg ) Program Segment Prefix PSP 256 octei Adres inferioar memorie DOS

Zona desemnat cu semnul

14

Reprezint coninutul fiierului .EXE. O declaraie de variabil asociaz un nume i un tip unei locaii de memorie. Valorile tipului specificat vor fi memorate n locaia respectiv. Fiecare variabil care apare ntr-un program trebuie s fie introdus printr-o declaraie de variabil. Declaraia trebuie s precead orice utilizare a variabilei. Declaraia variabilelor se face n seciunea var astfel : var list de identificatori : tip; {} list de identificatori : tip; unde identificatorii din list snt desprii prin virgul. Tipul asociat unei variabile poate s fie predefinit sau utilizator,caz n care tipul respectiv trebuie s fie definit n seciunea type din cadrul blocului actual sau ntr-un bloc exterior.

Modul Real i modul Protejat


Microprocesoarele 80286, 80386, 80486 i urmtoarele, pot opera n dou moduri diferite : n mod Real (Real mode) i n mod Protejat (DPMI; DOS Protected Mode Interface). Modul Real permite gestiunea spaiului de memorie tradiional, cu o dimensiune de pn la 1Mo. Modul Protejat se poate adresa un spaiu de memorie de dimensiune maxim de 16 Mo. Att la modul real ct i la modul protejat, adresa logic este memorat pe dou cuvinte, fiecare avnd 16 bii, adic n total 32 de bii. Unul dintre cuvinte este denumit adresa de baz (n mod real) sau selector (n mod protejat). Cellalt cuvnt poart numele de deplasament. Din adresa logic se formeaz adresa fizic, ns prin dou metode diferite. Se menioneaz c deplasamentul n ambele cazuri, permite adresarea unei zone de memorie (segment) de 64 Ko, deoarece pe 16 bii se pot reprezenta

216 = 65536 = 64 * 1024 = 64 K octei

Pornirea i descrierea mediului de programare


Pentru a lansa compilatorul de la prompter-ul sistemului de operare, se introduce cuvntul Turbo pentru modul real sau BP pentru modul protejat. Deoarece n modul protejat, putem accesa o memorie de pn la 16 Mo, n tot ceea ce vom face de acum n colo, ne vom referi la modul protejat. Programul BP.EXE se gsete n catalogul C: \ BP \ BIN. Dup pornire, pe ecran apar urmtoarele informaii : File Edit Search Run Compile Debug Tools Options Window Help

15

F1 Help

F2 Save

F3 Open

Alt + F9 Compile

F9 Make

Alt + F10 Local menu

n rndul cel mai de sus, adic n lista meniurilor, snt specificate meniurile din mediu. Pentru a activa aceast linie, este suficient s se apese tasta F10 sau se ine apsat tasta Alt plus prima liter a meniului, care este de culoare roie sau cu mouse-ul.

Meniul File
Meniul FILE permite realizarea unor operaii elementare la nivel de fiier, navigarea pe discuri, ieirea definitiv sau parial din mediul de programare. New iniiaz deschiderea unei zone de lucru. Aceast zon reprezentnd o nou fereastr de editare nu are n coresponden un fiier. Pentru recunoaterea ferestrei, aceasta primete o identificare special format din cuvntul NONAME concatenat de o valoare numeric de exact dou cifre ntre 00 i 99. Identificarea este aleas astfel nct s fie unic pentru ferestrele deschise i fiierele din directorul n care se lucreaz curent. Valoarea numeric este mai mare dect toate cele utilizate pentru identificrile de aceast form. Dup deschidere, fereastra devine activ, iar ferestra activ nainte de iniierea comenzii, dac exist, devine inactiv. Open permite ncrcarea unui fiier salvat anterior cu extensia .PAS . ncrcarea unui fiier se poate face mai rapid prin apsarea tastei F3. Save se aplic la fereastra de editare activ i permite realizarea salvrii coninutului pe o unitate de disc. Atunci cnd exist deja un fiier salvat anterior, la o nou salvare vechiul fiier i modific extensia n .BAK. Salvarea se face mai rapid dac se apas tasta F2. Save as salveaz fiierul din fereastra activ sub un nume specificat, ntr-o unitate i catalog specificat. Save all salveaz toate fiierele prezente n ferestrele de editare deschise i care au fost deja modificate. Change dir se folosete pentru a schimba amplasarea pe disc a zonei de lucru, operaie cunoscut ca schimbare de director. Print se utilizeaz pentru realizarea imprimrii coninutului ferestrei de editare active. Activitatea se poate activa doar de la nivelul meniului. Printer setup se utilizeaz pentru stabilirea unor caracteristici legate de imprimanta conectat la calculator i a modului de realizare a imprimrii. Dos shell se utilizeaz pentru ieirea temporar din mediul de programare, cu trecerea la sistemul de operare. Pentru revenirea n mediu, trebuie dat comanda EXIT la prompterul sistemului de operare. Ieirea temporar se face cu salvarea strii mediului la momentul ieirii, stare care este restaurat la revenirea n mediu. Activitatea se iniiaz doar de la nivelul meniului. Exit (Alt + X) permite ieirea definitiv din mediul de programare i rentoarcerea la sistemul de operare DOS.
16

Meniul Edit
Comenzile meniului Edit permit efectuarea diferitelor operaii legate de fiierul Clipboard i anumite operaii speciale de anulare i de refacere a diferitelor aciuni. Fiierul Clipboard realizeaz legtura ntre diferitele ferestre de editare, care la rndul lui poate fi editat, deplasat, redimensionat sau vizualizat, la fel ca celelalte ferestre de editare. Undo (Alt + BkSp) anuleaz efectul unei aciuni anterioare sau al unui grup de aciuni anterioare. Comanda se refer la un grup de aciuni, dac comutatorul Group Undo din meniul Options / Environment / Editor Options este cuplat. n caz contrar, comanda se refer doar la ultima aciune. Redo permite refacerea aciunilor anulate anterior prin comanda Undo, n forma i ordinea original. Cut (Shift + Del) decupeaz un bloc marcat, din fereastra activ de editare care este adugat n clipboard. Blocul marcat, dispare. Copy (Ctrl + Ins) copiaz un bloc marcat, din fereastra activ de editare care este adugat n clipboard. Blocul marcat rmne intact. Paste (Shift + Ins) insereaz blocul marcat din clipboard, n fereastra activ de editare, ncepnd cu poziia n care se gsete cursorul. Clear (Ctrl + Del) terge un bloc marcat din fereastra activ de editare, fr ca acest bloc s fie depus n clipboard. Show clipboard deschide o nou fereastr de editare cu numele clipboard i arat coninutul fiierului clipboard.

Meniul Search
Meniul conine o serie de operaii necesare deplasrii ntr-o fereastr de editare. Deplasarea se poate realiza necondiionat sau pentru regsirea unei informaii asupra creia se poate realiza i o editare. Meniul permite diferite cutri ale diferitelor texte, precum i nlocuirea lor cu alte texte. Find permite cutarea unui text i deplasarea cursorului la textul respectiv. Se afieaz o fereastr cu urmtoarea form : Text to find Options [ ] Case sensitive [ ] Whole words only [ ] Regular expression Scope ( . ) Global ( ) Selected text

Direction ( . ) Forward ( ) Backward Origin ( . ) From cursor ( ) Entire scope

17

OK

Cancel

Help

n cmpul cu inscripia Text to find se introduce irul de caractere care trebuie cutat. Cmpul este prevzut cu o list, cu istoricul cuvintelor cutate. Pentru demararea operaiei de cutare se apas butonul OK. Textul gsit este marcat i rmne marcat pn la urmtoarea acionare a unei taste. Cursorul este plasat n urma cuvntului gsit. n cazul n care cuvntul nu este localizabil, se emite un mesaj de eroare de forma String not found (irul nu este gsit). [ ] Case sensitive dac este poziionat [X], se face distincie ntre majuscule i minuscule. Implicit, nu se face aceast distincie. [ ] Whole words only dac este poziionat [X], atunci se caut numai cuvintele ntregi, adic irul cutat trebuie s fie ncadrat de caracterul spaiu sau de semne de punctuaie. [ ] Regular expression dac este poziionat [X], atunci n specificarea textului care se caut, pot fi utilizate diferite caractere funcionale cu efect special. Aceste caractere snt urmtoarele :

^ $ . * + [ ] \
Un caracter ^ plasat la nceputul unui ir de caractere nseamn c irul este cutat la nceputul liniei. Un caracter $ plasat la sfritul unui ir de caractere nseamn c irul este cutat la sfritul liniei. Un caracter . semnific faptul c n poziia respectiv este acceptat orice caracter. De exemplu a.b selecteaz axb, ayb, etc. Un caracter * plasat dup un caracter nseamn c acel caracter poate s se repete de un numr arbitrar de ori sau s nu apar niciodat. De exemplu, ab* va selecta abb, ac, etc. Un caracter + plasat dup un caracter, nseamn c acel caracter poate s se repete de un numr arbitrar de ori, dar trebuie s apar cel puin odat. De exemplu ab+ va selecta abc, abbb, dar nu i ac. Caracterele plasate ntre parantezele ptrate [ i ] nseamn acceptarea oricrui caracter specificat n poziia respectiv, dar nu i alt caracter. De exemplu, a[bcd]e va selecta abe, ace, ade. Caracterul ^ plasat n faa unui ir de caractere ncadrat de caracterele [ i ] nseamn negaie : n poziia respectiv este acceptat orice caracter nespecificat n list. De exemplu, [^abc] selecteaz orice caracter, exceptnd caracterele a, b, c. Caracterul din interiorul parantezelor ptrate [ i ] nseamn limitarea domeniului. De exemplu, [ch] selecteaz orice caracter de la c pn la g. Caracterul \ plasat n faa unui caracter funcional comunic faptul c acel caracter este tratat ca i un caracter obinuit. De exemplu, \^ se refer la caracterul ^ i nu la selectarea de la nceputul liniei.
18

Direcia cutrii este specificat de butoanele radio din grupa cu inscripia Direction. Dac este poziionat pe ( . ) Forward cutarea se face ctre sfritul fiierului, iar dac este poziionat pe ( . ) Backward cutarea se face ctre nceputul fiierului. Domeniul n care se efectueaz cutarea este specificat de butoanele radio din grupa cu inscripia Scope. Dac este poziionat pe ( . ) Global, cutarea se face n ntregul fiier, n direcia definit de Direction. Dac este poziionat pe ( . ) Selected text, cutarea este efectuat doar n blocul marcat. Originea cutrii adic punctul de unde ncepe cutare, este specificat cu butoanele radio, din grupa Origin. Dac este poziionat ( . ) From cursor, cutarea se face de la poziia actual a cursorului, n direcia definit de Direction i n domeniul definit de Scope. Dac este poziionat ( . ) Entire scope, cutarea se face n ntregul fiier sau n blocul marcat, indiferent de poziia actual a cursorului. Replace permite cutare i nlocuirea diferitelor texte. Se afieaz o fereastr cu urmtoarea form : Text to find New text Options [ ] Case sensitive [ ] Whole words only [ ] Regular expression [X] Prompt on replace Scope ( . ) Global ( ) Selected text OK Change all

Direction ( . ) Forward ( ) Backward Origin ( . ) From cursor ( ) Entire scope Cancel Help

n cmpul cu inscripia Text to find se introduce textul care se caut iar n cmpul cu inscripia New text se introduce textul cu care acesta se cere a fi nlocuit. La grupa de opiuni, apare un nou comutator, cu numele de Prompt on replace. Dac comutatorul este poziionat cu [X], nainte de a efectua nlocuirea textului cutat cu noul text, se va cere confirmarea efecturii nlocuirii respective de ctre utilizator (Y = Da, N = Nu). Este prezent un buton nou Change all care prin apsare, efectueaz nlocuirea automat a tuturor apariiilor textului vechi cu textul nou. Search again repet ultima comand Find sau Replace, cu pstrarea tuturor opiunilor specificate n ferestrele corespunztoare. Go to line number afieaz o fereastr de dialog de forma :

Enter new line number


19

OK

Cancel

Help

Aceast fereastr are ca efect deplasarea cursorului ntr-o linie specificat a programului. n cmpul cu inscripia Enter new line number se specific numrul liniei surs cutate. Cmpul este prevzut cu o comand pentru a afia istoricul liniilor cutate. Se amintete c n colul din stnga jos al ferestrei de editare, apare numrul de linie i de coloan pentru poziia actual a cursorului. Show last compiler error afieaz din nou codul i textul mesajului de eroare, corespunztor ultimei erori de compilare. Cursorul va fi deplasat n dreptul locaiei erorii. Dac compilarea s-a realizat fr erori sau dac programul surs nu a fost compilat, comanda nu poate lucra. Find error permite localizarea unei erori de execuie. Cnd se execut sub sistemul DOS un fiier executabil, o eroare de execuie apare sub forma :

Runtime error Cod_de_eroare at seg : depl


unde seg i depl reprezint adresa segmentului i a deplasamentului instruciunii care a declanat eroarea. Dup ce se noteaz aceste valori, se ncarc programul surs ntr-o fereastr de editare sau se specific numele programului primar, n comanda Primary file din meniul Compile. n continuare se fixeaz destinaia compilrii pe disc i se apeleaz comanda Find error. Comanda afieaz o ferestr de dialog de forma :

Error address
OK

0000 : 0000

Cancel

Help

n cmpul de introducere cu inscripia Error address se nscrie adresa i deplasamentul erorii respective, de exemplu 00A5 : 000F. Dup ce comanda a fost executat, cursorul va fi deplasat la nceputul instruciunii surs care a cauzat eroare respectiv. Linia Error address este prevzut cu comanda pentru afiarea listei cu istoricul cutrilor. Comanda Find error este activabil numai atunci cnd este poziionat cu [X] comutatorul Integrated Debugging din meniul Options, submeniul Debugger. Find procedure poate fi utilizat numai atunci cnd programul surs a fost deja compilat. Ea servete la cutarea locaiei unde este definit o procedur sau funcie. Comanda afieaz o ferestr de dialog de forma urmtoare :

Procedure name
Program principal

OK

Cancel

Help

n cmpul cu inscripia Procedure name se specific numele subprogramului cutat. Numele astfel cutat va fi cutat n ntregul fiier surs, inclusiv unit-urile i fiierele surs. Cursorul va fi poziionat pe numele subprogramului cutat. Deci comanda nu se refer la execuia codului, ci doar la vizualizarea locaiei de definiie a subprogramului. Comanda Find procedure difer de comanda Find a
20

meniului Search prin faptul c prima localizeaz definiia subprogramului iar cea dea doua, locul n care este apelat subprogramul respectiv. Versiunea n mod protejat a compilatorului, adic programul BP.EXE, permite afiarea ferestrelor de tip browse, adic un studiu amnunit despre toate simbolurile utilizate n fiierul surs. Aceste simboluri pot fi obiecte, unit-uri, variabile, tipuri, constante, etichete globale i locale, subprograme de tip procedur i funcie. Comenzile de tip browse pot fi aplicate numai programelor deja compilate. Informaiile afiate n aceste ferestre conin fie informaii de tip tabel de materii, pentru obiecte, uniti simboluri globale ale programului surs, fie informaii despre un simbol selectat.

Meniul Run
Comenzile meniului Run permit execuia unui program, reiniializarea execuiei, execuia programului pn la poziia actual a cursorului, execuia pas cu pas precum i stabilirea parametrilor din linia de comand. Run (Ctrl + F9) execut un program. Dac este nevoie, snt folosii parametrii din linia de comand, specificai n comanda Parameters din meniul Run. Dac programul surs a fost modificat de la ultima compilare sau dac programul nu a fost n prealabil compilat, se trece automat prima dat la compilare, apoi la execuie. Programul este executat pn la sfritul programului sau pn la un punct de ntrerupere, dac exist un astfel de punct. La terminarea execuiei programului, controlul este redat mediului de programare. Step over (F8) lucreaz similar comenzii Trace into, cu urmtoarea deosebire : dac instruciunea actual este un apel de subprogram, ntregul subprogram este executat ntr-un singur pas i bara de execuie va fi poziionat pe instruciunea care urmeaz dup apelul de subprogram. Trace into (F7) execut instruciunea urmtoare din program, iar la nceputul execuiei va fi executat prima instruciune executabil a programului. Dac instruciunea urmtoare este un apel la un subprogram, atunci execuia va continua cu prima instruciune executabil a subprogramului. Aplicnd repetat aceast comand, se poate efectua execuia pas cu pas, a programului. Se menioneaz c instruciunea care urmeaz s fie executat, este evideniat cu o bar, numit bar de execuie. Comanda poate fi utilizat numai atunci cnd n momentul compilrii a fost cuplat cheia Debug information din meniul Options, comanda Compiler, grupa Debugging, respectiv directiva {$D+}. n caz contrar, se va emite un semnal de eroare, de forma No debug info for program entry point. Run anyway?, adic nu exist informaii de depanare. Go to cursor (F4) ncepe sau continu execuia unui program din poziia curent de execuie, pn la linia n care se gsete cursorul. Dac nu s-a nceput nc depanarea programului, poziia curent de execuie este linia n care se gsete prima instruciune executabil. Comanda poate fi utilizat numai atunci cnd n momentul compilrii a fost cuplat cheia Debug information la fel ca la comanda de mai sus. Altfel, se emite un mesaj de eroare, de forma No code generated for this line. Aceast comand , nu creeaz un punct permanent de ntrerupere.
21

Program reset (Ctrl + F2) reiniializeaz actuala sesiune de


depanare. Se elibereaz memoria alocat programului i se nchide fiecare fiier deschis, dar valorile variabilelor rmn nemodificate., adic nu snt reiniializate. Punctele de ntrerupere nu snt anulate, dar la urmtoarea execuie, programul va fi reluat de la nceput. Parameters afieaz o fereastr de dialog de forma :

Parameter
OK Cancel Help n cmpul cu inscripia Parameter se pot introduce parametrii liniei de comand a programului. Pentru introducere se poate folosi i lista cu istoricul parametrilor introdui anterior. n interiorul programelor, numrul lor poate fi determinat cu funcia ParamCount iar valoarea celui de al N-lea parametru, poate fi determinat cu funcia ParamStr(n). Pentru valoarea N = 0 funcia va returna numele programului. Dac nu exist nici un parametru, atunci funcia ParamCount va returna valoarea 0.

Meniul Compile
Comenzile meniului Compile permit compilarea programelor i a uniturilor.

Compile (Alt + F9) permite compilarea fiierului care se gsete n


fereastra actual de editare. Acest fiier poate fi att un program principal, ct i un unit sau bibliotec de legare dinamic ( .DLL). Textul compilat poate s conin i referiri la fiiere externe de includere (directive de tip $I nume). Make (F9) compileaz fiierul primar specificat, iar n lipsa unui astfel de fiier, se compileaz fiierul din fereastra actual de editare. Comanda determin unit-urile folosite de programul primar. Acele unit-uri care snt prezente numai n format surs, vor fi compilate automat i vor fi generate fiiere de extensie .TPU corespunztoare. De exemplu, dac pentru un unit U1 se gsete fiierul U1.Pas, acest unit este compilat rezultatul este depus n fiierul U1.TPU Dac pentru un unit snt prezente att fiierul cu extensia .PAS ct i fiierul cu extensia .TPU, dar data de creare a fiierului cu extensia .PAS este mai recent dect data de creare a fiierului cu extensia .TPU, adic dac dup generarea fiierului .TPU a mai fost actualizat fiierul surs .PAS, unit-ul respectiv va fi recompilat i astfel va fi regenerat i fiierul .TPU. Build compileaz fiierul primar i toate unit-urile utilizate de acesta. Recompilarea unit-urilor nu este condiionat de data de creare a acestora. Aceat comand este similar cu comanda Make cu deosebirea c compilarea este independent de data de creare. La comanda Make, recompilrile se refer doar la acele unit-uri, care nu mai snt actuale. Target permite selectarea platformei de destinaie, adic aplicaie n mod Real, n mod Protejat sau de tip Windows.

22

Primary file permite specificarea fiierului primar, adic a fiierului care va fi compilat cu comanda Make sau Build, indiferent de coninutul ferestrei
actuale de editare.

Clear primary file terge fiierul primar care a fost actual n momentul
actual.

Information afieaz informaii despre fiierul compilat, adic numrul


liniilor compilate, dimensiunea codului generat, dimensiunea segmentului de date i de stiv, a heap-ului minim i maxim i despre memorie.

Meniul Debug
Comenzile meniului Debug (depanare) permit crearea i tergerea unor puncte de ntrerupere, evaluarea i modificarea valorilor unor expresii numite expresii de urmrire. Breakpoints afieaz o fereastr care permite vizualizarea punctelor de ntrerupere instalate precum i modul lor de utilizare. Breakpoints list PRG3D.PAS PRG3D.PAS OK Edit Line # Condition 25 30 Delete View Clear all Pas 0 0 Help

Aceast fereastr conine o list cu urmtoarele informaii : pentru fiecare punct de ntrerupere apare numele programului surs, numrul liniei surs, condiia care trebuie s fie ndeplinit pentru ca s aibe loc oprirea la punctul respectiv precum i un contor de trecere. Valorile posibile snt n intervalul : {0 215 1 = 32767 } Acest contor precizeaz numrul trecerilor care nc nu declaneaz oprirea programului la instruciunea respectiv. La fiecare trecere este testat un contor interior care a fost iniializat cu valoarea contorului de trecere. Dac valoarea este mai mare dect zero, contorul este decrementat cu unu i programul funcioneaz mai departe. Dac valoarea contorului, este zero, programul se oprete. n coloana care precizeaz condiia, se introduce o condiie, iar cnd aceasta este adevrat, programul se oprete. Fereastra de dialog BreakPoints este prevzut cu cu butoanele standard Ok i Help, dar i cu butoanele de comenzi Edit, Delete, View i Clear All. Edit deschide o nou fereastr de dialog cu titlul Edit Breakpoint ca mai jos. Condition Pass count File name Modify New Cancel
23

Help

Line number Aceast fereastr, permite editarea punctelor de ntrerupere existente. n aceast fereastr se pot modifica : condiia care cauzeaz declanarea ntreruperii, cu list de istoric contorul de trecere, ataat ntreruperii numele fiierului la care se refer ntreruperea numrul liniei surs a ntreruperii Modificrile efectuate snt validate prin butonul de comand Modify. Pentru definirea unui nou punct de ntrerupere, care poate fi n cadrul aceluiai program se apas butonul New. Celelalte comenzi ale ferestrei Breakpoints, snt : Delete care terge punctul actual de ntrerupere, din lista punctelor de ntrerupere. View care caut n textul surs, punctul actual de ntrerupere i poziioneaz cursorul, n dreptul liniei respective. Clear all care terge toate punctele de ntreruperi din list. Call stack (Ctrl + F3) afieaz o fereastr care vizualizeaz o stiv cu istoricul apelurilor subprogramelor. Snt afiate numele subprogramelor i parametrii actuali corespunztori prin utilizarea crora s-a ajuns la poziia actual din program. nchiderea ferestrei se poate face cu mouse-ul sau cu comanda Alt + F3. Register afieaz o fereastr n colul din dreapta sus al ecranului, ce nu poate fi redimensionat dar poate fi mutat, cu numele CPU i care prezint coninutul registrilor microprocesorului. Fereastra se folosete la depanarea secvenelor de program scrise n limbajul de asamblare. Watch afieaz fereastra cu titlul Watches, n interiorul creia snt afiate valorile actuale ale variabilelor i expresiilor supravegheate. Pentru a vedea valoarea unei variabile, dup ce programul este oprit prin terminare sau punct de ntrerupere, se apas tasta Insert i apoi se scrie numele variabilei i se apas Enter. Output activeaz o fereastr care afieaz textul din linia de comand DOS i textul generat de programul care se execut. Pot fi vizualizate doar informaiile n mod text, iar cele n mod grafic nu. Fereastra este utlizat pentru c pot fi urmrite simultan, att programul surs, ct i rezultatele care se afieaz. User screen (Alt + F5) afieaz un ecran ntreg cu toate informaiile trimise de programul actual, indiferent dac informaiile snt n mod text sau n mod grafic. Fereastra este static i nu poate fi redimensionat sau mutat. Evaluate/modify (Ctrl + F4) permite evaluarea i vizualizarea valorii unor variabile i expresii, precum i modificarea valorii unei variabile. n cmpul cu inscripia Expression se poate introduce orice variabil sau expresie, pentru care se dorete evaluarea valorii actuale. n momentul lansrii comenzii, este introdus automat simbolul de la poziia cursorului.

24

Dup ce se introduce expresia n cmpul Expression, se acioneaz butonul de comand Evaluate. n acest moment, valoarea expresiei este afiat n cmpul cu inscripia Result. Valoarea afiat poate fi modificat la o alt valoare. Add watch (Ctrl + F7) permite definirea unei variabile sau expresii a crei valoare este supravegheat permanent. Se afieaz o fereastr ca mai jos.

Watch expression
OK Cancel Help

n cmpul cu inscripia Watch expression se introduce numele variabilei sau expresia care se urmrete. Comanda poat fi utiizat doar atunci cnd n momentul compilrii este cuplat cheia Debug information din meniul Options, comanda Compiler, grupa Debugging sau directiva {$D+}. Add breakpoint permite introducerea punctelor de ntrerupere noi i specificarea condiiilor de oprire. Se menioneaz c un program se poate opri cu comanda Ctrl + Break, care este o ieire obinuit n cazul unui program care are un ciclu infinit.

Meniul Tools
Meniul Tools permite lansarea n execuie a diferitelor programe externe din interiorul mediului de programare 7.0 . Numele programelor care pot fi lansate n execuie au regim identic cu cel al comenzilor unui meniu. Pentru lansarea lor se activeaz comanda respectiv. Messages afieaz o fereastr cu acelai nume, n partea inferioar a ecranului, care permiteafiarea mesajelor acelor programe care transmit mesajele ctre mediul de programare prin intermediul unui filtru, de exemplu utilitarul Grep sau Turbo Assembler. Grep este un utilitar care permite cutarea diferitelor cuvinte n fiierele text. De exemplu, dac se dorete cutarea tuturor liniilor surs care conin cuvntul Write n toate fiierele cu extensia .Pas din catalogul C:\BP\Examples, atunci se activeaz comanda Grep. Apare o fereastr n care se introduce cuvntul cutat i calea catalogului n care se caut, separate de un spaiu.

Enter program arguments


WRITE C:\BP\EXAMPLES\*.PAS
OK Cancel Help

25

OK

Chiar dac nu a fost activat anterior, apare dup apsarea butonului OK apare fereastra Messages, care afieaz o list a tuturor apariiilor cuvntului cutat, mpreun cu numrul de linie din program n care a fost gsit. Go to next (Alt + F8) asigur trecerea la urmtoarea linie a ferestrei de mesaje. Dac aceast linie repereaz o linie dintr-un fiier text, atunci fiierul va fi deschis, dac nu a fost deschis n prealabil i cursorul este poziionat la linia referit a fiierului. Go to previous (Alt + F7) este analoag comenzii precedente, cu deosebirea c se trece la linia precedent a ferestrei de mesaje. n meniul Tools pot fi introduse i alte utilitare sau cele existente pot fi terse. Ele pot fi realizate cu ajutorul comenzii Tools a meniului Options.

Meniul Options
Comenzile meniului Options permit fixarea diferitelor opiuni referitoare la compilator, editor de legturi, depanator, etc. Compiler afieaz o fereastr de dialog n care opt fi precizate opiunile care guverneaz tipul generrii de cod, tipul tratrii erorilor de execuie, tipul opiunilor sintactice, tipul gestionrii numerelor reale, cantitatea informaiilor de depanare precum i definirea simbolurilor condiionate.

Compiler settings for


Code generation [ ] Force far calls [ ] Overlays allowed [X] Word align data Runtime errors [ ] Range checking [X] Stack checking [X] I/O checking [ ] Overflow checking Debugging [X] Debug information [X] Local symbols [X] Symbol information Conditional defines

Real mode target [ ] 286 instructions [ ] Smart callbacks [ ] Windows stack frames Syntax options [X] Strict var-strings [ ] Complete boolean eval [X] Extended syntax [ ] Typed @ operator [ ] Open parameters Numeric procesing [ ] 8087/80287 [X] Emulation

OK

Cancel

Help

26

Cmpul cu titlul Compiler settings apare numai la compilatorul BP.EXE. n acest cmp se poate selecta natura aplicaiei pentru care se fac precizri de opiuni de compilare. Valorile posibile snt : aplicaie n mod Real (Real mode target) aplicaie n mod Protejat (Protected mode target) aplicaie sub Windows (Windows target) aplicaii pentru toate cele trei platforme de destinaie (All target) Grupa Code generation se refer la comutatorii care definesc modul de generare a codului.

[ ] Force far calls


Dac comutatorul nu este poziionat, pentru salvarea adresei de retur din subprograme se folosete modelul de apel apropiat ( near, 2 octei pentru deplasament). Cu comutatorul poziionat se folosete modelul de apel ndeprtat (far, pe 4 octei, 2 octei pentru deplasament i 2 octei pentru adres de segment). Este echivalent cu directiva de compilare {$F+} sau {$F-}.

[ ] Overlays allowed
Dac comutatorul nu este poziionat, nu se va folosi modul de generare tip acoperire, adic un unit nu poate fi acoperit de un alt unit. Este echivalent cu directiva de compilare {$O+} sau {$O-}.

[ ] Word align data


Dac comutatorul este poziionat, se va alege modul de aliniere tip cuvnt, adic toate variabilele de lungime mai mare de un octet snt aliniate la adrese de cuvnt (adrese pare). Dac este necesar, ntre variabile snt inserai octei neutilizai. Acest tip de aliniere majoreaz viteza de acces la variabile, cu preul pierderii de spaiu de memorie. Cu comutatorul poziionat se alege modul de aliniere tip octet, adic variabilele snt memorate la prima adres liber, indiferent de dimensiunea lor. Este echivalent cu directiva de compilare {$A+} sau {$A-}.

[ ] 286 instructions
Dac comutatorul este poziionat, codul generat conine instruciunile procesorului 80286, mrind astfel viteza de execuie. Acest cod ns nu se mai poate executa pe procesoarele 8088 sau 8086. Este echivalent cu directiva de compilare {$G+} sau {$G-}. [ ] Smart callbacks xxx [ ] Windows stack frames xxx

Grupa Runtime errors


tipul tratrii erorilor de execuie.

se refer la comutatori care guverneaz

[ ] Range checking
Dac comutatorul este poziionat, se testeaz, se testeaz apartenena n domeniul permis de tipul de enumerare sau interval a diferitelor variabile, valabilitatea indicilor de tablou i de ir de caractere. n caz de eroare se afieaz
27

un mesaj i programul se oprete. Este echivalent cu directiva de compilare {$R+} sau {$R-}.

[ ] Stack checking
Dac comutatorul este poziionat, la fiecare apel de subprogram se testeaz dac n stiv este loc suficient pentru memorarea variabilelor locale. Dac spaiul este insuficient, programul se oprete. Este echivalent cu directiva de compilare {$S+} sau {$S-}.

[ ] I / O checking
Dac comutatorul este poziionat, la fiecare operaie de intrare / ieire se testeaz dac a aprut o eroare. n caz afirmativ, se afieaz un mesaj de eroare i programul se oprete. Dac comutatorul nu este poziionat, eroarea aprut poate fi tratat n program cu funcia IOResult. Este echivalent cu directiva de compilare {$I+} sau {$I-}.

[ ] Overflow checking
Dac comutatorul este poziionat, se va testa depirea rezultatelor operaiilor +,, * asupra valorilor ntregi, precum i a rezultatelor funciilor Abs, Sqr, Succ i Pred. Rezultatele funciilor Inc i Dec nu snt verificate. Este recomandat activarea simultan cu comutatorul Range checking. Este echivalent cu directiva de compilare {$Q+} sau {$Q-}.

Grupa Syntax options se refer la opiunile sintactice.


[ ] Strict varstrings
Dac comutatorul este poziionat, la transmisia parametrilor variabili de tip ir de caractere, se compar lungimea parametrului formal. Dac lungimile snt diferite, se semnaleaz o eroare de execuie i programul se oprete. Este echivalent cu directiva de compilare {$V+} sau {$V-}.

[ ] Complete boolean eval


Dac comutatorul este poziionat, fiecare termen dintr-o expresie logic este evaluat. Dac comutatorul nu este poziionat, se fac optimizri n codul generat. Este echivalent cu directiva de compilare {$B+} sau {$B-}.

[ ] Extended syntax
Dac comutatorul este poziionat se permite ca funciile s fie apelate ca i cum ar fi proceduri, iar rezultatul returnat de funcie este neglijat. Sintaxa extins ns nu poate fi aplicat pentru funciile unit-ului System. Utilizarea funciilor ca i proceduri are sens, de exemplu cu subprogramele unit-ului Strings sau n context cu funcia Readkey, cnd nu prezint interes codul tastei apsate. Este echivalent cu directiva de compilare {$X+} sau {$X-}.

[ ] Typed @ operator
Dac comutatorul este poziionat, atunci se verific tipul reperului generat de operatorul de adresare @. Dac comutatorul nu este poziionat, atunci tipul operatorului @ va fi un reper fr tip de baz : pointer. Este echivalent cu directiva de compilare {$T+} sau {$T-}.

[ ] Open parameters
28

Dac comutatorul este poziionat, atunci la un parametru formal de tip string poate s lipseasc specificarea exact a lungimii irului de caractere, iar parametrul actual corespunztor poate s fie de tip string de lungime arbitrar (parametru tip deschis).Este echivalent cu directiva de compilare {$P+} sau {$P-}.

Grupa Debugging se refer la cantitatea informaiilor de depanare


pstrate.

[ ] Debug information
Dac comutatorul este poziionat, se genereaz o tabel cu numrul liniilor surs pentru fiecare instruciune din program. n aceast tabel se face coresponden ntre adresa codului generat i numrul liniei surs corespunztor. Astfel mediul permite execuia pas cu pas, pn la locaia cursorului precum i definirea punctelor de ntrerupere. Dac comutatorul nu este poziionat, necesitile de memorie descresc, dar mijloacele de depanare devin inaccesibile. Este echivalent cu directiva de compilare {$D+} sau {$D-}.

[ ] Local symbols
Dac comutatorul este poziionat, se genereaz o tabel cu numele i tipul tuturor variabilelor i constantelor locale dintr-un modul. Astefel mediul va permite evaluarea i modificarea valorilor variabilelor locale, precum i istoricul apelurilor de subprograme. Funciile Linker / Map file i Debugger / Standalone ale meniului Options pot s livreze informaii referitoare la variabilele locale numai pentru acele subprograme care au fost compilate cu comutatorul Local symbols poziionat. Este echivalent cu directiva de compilare {$L+} sau {$L-}.

[ ] Symbol information
Comutatorul poate fi utilizat numai la compilatorul BP.EXE. Dac comutatorul este poziionat, compilatorul introduce n codul generat informaii de tip browse. n acest caz se permite afiarea diferitelor ferestre de tip browse referitoare la obiecte, unit-uri, variabile globale i simboluri. Este echivalent cu directiva de compilare {$Y+} sau {$Y-}. Cnd comutatorul Symbol information este cuplat, att comutatorul {$D+} ct i comutatorul {$L+} trebuie s fie cuplat.

Grupa Numeric procesing


guverneaz tipul gestionrii numerelor reale.

se refer la comutatori care

[ ] 8087 / 80287
Dac comutatorul este poziionat, atunci se permite utilizarea tuturor tipurilor reale (real, single, double, extended, comp) . Dac comutatorul nu este poziionat, atunci se permite doar utilizarea tipului real, celelalte tipuri reale snt interzise. Este echivalent cu directiva de compilare {$N+} sau {$N-}.

[ ] Emulation
Dac comutatorul este poziionat, atunci se utilizeaz o bibliotec care emuleaz coprocesorul matematic 8087, dac acest coprocesor nu este prezent. Fiierul executabil poate fi utilizat de orice echipament, indiferent dac 8087 este sau nu prezent. Este echivalent cu directiva de compilare {$E+} sau {$E-}.
29

Memory sizes deschide o fereastr de dialog n care pot fi precizate


necesitaile de memorie ale unui program. Fereastra are forma de mai jos :

------- Real target ------Stack size 16384 Low heap limit 0 High heap limit 655360 ------- Protected target ------Stack size 16384 ------- Windows target ------Stack size 8192 Local heap size 8192

OK

Cance

Help

Se observ c se poate specifica dimensiunea stivei (Stack size) i specificarea dimensiunii minime (Low heap limit) i maxime (High heap limit) pentru zona heap. Este echivalent cu directiva de compilare {$M+} sau {$M-}. Valorile implicite snt : {$M 16384,0,655360}. Linker afieaz o fereastr care se refer la precizarea informaiilor necesare editorului de legturi integrat. Fereastra are forma :

Map file ( . ) Off ( ) Segments ( ) Public ( ) Detailed


OK

Link buffer ( . ) Memory ( ) Disk

Cance

Help

Butoanele radio din grupa cu titlul Map file se refer la fiierul text de extensie .MAP care este un fiier hart de memorie creat de editorul din mediul de programare. Acest fiier conine informaii necesare depanrii programului i el este depus pe disc, n catalogul specificat de cmpul Object directories din meniul Options comanda Directories. ( . ) Off nu se creeaz fiierul *.MAP

30

( ) Segments fiierul *.MAP va conine doar informaiile


referitoare la segmente : nume, dimensiune, adresa de nceput i de sfrit, clasa. ( ) Public fiierul *.MAP va conine i tabela care conine numrul liniilor surs i numele modulelor, precum i adresa n segmentul de cod a instruciunilor corespunztoare liniilor. La aceste module, la care n momentul compilrii, comutatorul local Local symbols este cuplat {$L+} (meniul Options, comanda Compiler), n fiierul *.MAP se vor depune informaii i despre simbolurile locale. Butoanele radio din grupa cu titlul Link buffer stabilesc locul tamponului editorului de legturi. ( . ) Memory Tamponul este rezervat n memorie ( ) Disk Tamponul este rezervat pe disk.

Debugger deschide o fereastr de dialog n care pot fi precizate


opiunile referitoare la depanator i modul de utilizare a ecranului.

Symbols [X] Integrated debugging / browsing [ ] Standalone debugging Display swapping ( ) None ( . ) Smart ( ) Always
OK Cance Help

[X] Integrated debugging / browsing


Dac este cuplat, n codul generat vor fi incluse informaii, care permit execuia programului n regim de depanare cu ajutorul depanatorului integrat.

[ ] Standalone debugging
Dac este cuplat, n codul generat vor fi incluse informaii, care permit depanarea cu ajutorul utilitarului Turbo Debugger. Butoanele radio din grupa cu titlul Display swapping determin modul de schimbare i utilizare a ecranului. ( ) None Dac un program este executat din mediul integrat, programul va suprascrie ecranul mediului, adic nu are loc o schimbare de ecran. Ecranul mediului poate fi restabilit cu comanda Refresh display a mediului Window. ( . ) Smart n momentul scrierii pe ecran de ctre programul executat, ecranul mediului este schimbat pentru o scurt perioad necesar scrierii pe ecranul utilizatorului, dup care se face revenirea la starea anterioar pornirii programului. ( ) Always Dup fiecare instruciune are loc o schimbare de ecran.

31

OK

Cance

Help

Directories afieaz o fereastr de dialog n care pot fi precizate


diferite directoare care conin anumite fiiere necesare mediului de programare. EXE & TPU directory Include directories Unit directoriess Object directories Resource directories EXE & TPU directory este catalogul care conine fiierele .EXE, .TPU, .MAP. Dac nu se introduce nimic n cmpul aferent, aceste fiiere snt depuse n catalogul fiierului surs. Include directories se refer la directoarele care conin fiierele de includere ale utilizatorului. n programul surs, aceste fiiere snt refereniate cu directiva {$Inume_fiier}. n cazul directoarelor multiple, acestea snt separate cu ;. Unit directories se refer la directoarele care conin fiierele unit-urilor standard sau unit-urilor utilizator. Object directories se refer la directoarele care conin fiierele obiect .OBJ ale utilizatorului adic codul obiect al subprogramelor scrise n limbaj de asamblare cu extensia .ASM. n programul surs, aceste fiiere snt refereniate cu directiva {$Lnume_fiier}.

Browser poate fi utilizat numai n cazul compilatorului BP.EXE. Symbols [X] Labels [X] Constants [X] Types Sub-browsing ( . ) New browser ( ) Replace curent Display [X] Qualified symbols [X] Variables [X] Procedures [ ] Inherited Prefered pane ( . ) Scope ( ) Reference [ ] Sort always
OK Cance Help

Grupa cu titlul Symbols definete natura simbolurilor pentru care se dorete aplicarea serviciilor browse, adic simbolurile care pot apare n ferestrele de tip browse. Exist ase categorii de simboluri utilizabile : etichete (Labels), constante (Constants), tipuri (Types), variabile (Variables), proceduri (Procedures) i simboluri motenite (Inherited). Grupa cu titlul Sub-browsing conine urmtoarele butoane radio :

32

( . ) New browser adic dac din fereastra actual de tip browse se trece la afiarea informaiilor mai amnunite sau se schimb tipul listei, noile informaii snt afiate ntr-o nou fereastr de tip browse. ( . ) Replace curent adic noile informaii vor nlocui informaiile din fereastra actual. Grupa cu titlul Prefered pane conine urmtoarele butoane radio : ( . ) Scope dac pentru o categorie de simboluri este posibil afiarea mai multor tipuri de ferestre browse,atunci tipul implicit de fereastr, care se afieaz prima dat este de tip S (Scope) adic domeniu. ( . ) Reference tipul ferestrei este R adic referin. Grupa cu titlul Display stabilete modul de afiare a informaiilor. Exist urmtorii comutatori : [X] Qualified symbols dac comutatorul este poziionat, se afieaz i originea simbolului. De exemplu, metoda rotate a obiectului TObject1 va fi afiat n lista de tip S (Scope) sub forma calificat Tobject1.rotate, dar dac comutatorul nu este poziionat, se afieaz doar rotate. [ ] Sort always dac comutatorul este poziionat, elementele listei browse snt afiate n ordine alfabetic, iar dac nu este poziionat ele snt afiate n ordinea declaraiilor.

Tools permite introducerea utilitarelor noi n meniul Tools sau


tergerea ori modificarea celor vechi. Meniul poate s conin cel mult zece programe. Utilitarele actuale snt afiate ntr-o list cu inscripaia Program titles ntr-o fereastr de dialog cu urmtoarea form :

Grep Turbo Assembler Turbo Debugger Turbo Profiler

OK Edit New Delete Cance Help

Parametrii utilitarului actual al listei se modific prin acionarea butonului de comand Edit. n urma apelrii se afieaz urmtoarea fereastr : Titles ~G~rep Program path GREP Command line Hot keys ( ) Unassigned ( . ) Shift + F1 ( ) Shift + F2 ( ) Shift + F3 ( ) Shift + F4 ( ) Shift + F5
33

OK

Cance Help

- n + $MEM(64) $NOSWAP

( ( ( ( (

) Shift + F6 ) Shift + F7 ) Shift + F8 ) Shift + F9 ) Shift + F10

Dac se dorete includerea unui utilitar nou n lista de comenzi a meniului Tools atunci se va aciona butonul de comand New, care va afia fereastra de mai sus. Comanda Delete permite tergerea elementului actual din lista de utilitare apelabile. Cmpul Title stabilete sau modific titlul comenzii care este afiat n meniul Tools. Caracterul evideniat al comenzii trebuie ncadrat ntre dou caractere ~ (Tilda). Cmpul Program path definete numele fiierului, care poate fi precedat de unitatea de disc i de cale, n conformitate cu conveniile folosite n sistemul MS-DOS. Cmpul Command line permite stabilirea parametrilor utilizai n linia de comand, dac este cazul. Grupa de butoane radio cu titlul Hot keys permite asocierea fiecrui utilitar la cte o combinaie funcional din domeniul Shift + F2, , Shift + F10 .Dac se alege varianta Unassigned, atunci utilitarului nu I se asociaz nici o combinaie de taste. Environment este o comand care afieaz o list de subcomenzi.

Preferences Editor Mouse Startup Colors


Subcomanda Preferences permite stabilirea diferitelor preferine legate de utilizarea mediului de programare.

Screen size ( . ) 25 lines ( ) 43/50 lines Desktop file options ( ) Desktop only ( . ) Desktop and symbols Auto save [ ] Editor files [ ] Environment [ ] Desktop

Source tracking ( . ) New window ( ) Current window Desktop file ( ) Current directory ( . ) Config file directory Options [ ] Auto track source [X] Close on go to source [ ] Change dir on open
OK Cance Help

34

Butoanele radio din grupa Screen sizes stabilesc dimensiunea ecranului. Se poate alege una din variantele : 25 linii pe ecran sau 43/50 linii pe ecran (43 la EGA i 50 la VGA). Butoanele radio din grupa Source tracking stabilesc modul de deschidere al fiierelor care se editeaz n mediu. Dac se alege varianta New window, atunci fiierul deschis pentru editare este plasat ntr-o fereastr nou de editare. Dac se alege varianta Current window, noul fiier este plasat n fereastra actual de editare. Butoanele radio din grupa Desktop stabilesc directorul n care este salvat fiierul desktop TURBO.DSK sau fiierul BP.DSK. Fiierul *.DSK conine informaii referitoare la zona de lucru a mediului : listele cu istoricul, locaiile punctelor de ntrerupere, starea zonei de lucru. Dac se alege varianta Current directory , atunci fiierul .DSK va fi salvat n directorul curent. Dac se alege varianta Config file directory, atunci fiierul *.DSK va fi salvat n directorul n care este salvat i fiierul de configurare TURBO.TP sau BP.TP. Fiierul de configurare *.TP conine opiunile actuale de compilare i tabela cu comenzile editorului. Butoanele radio din grupa Desktop file snt utilizabile numai la compilatorul BP. Ele permit selectarea urmtoarelor opiuni ale fiierului *.DSK : dac se alege varianta Desktop and symbols, atunci fiierul desktop va conine i informaiile referitoare la simbolurile utilizate n program, iar dac se alege varianta Desktop only, informaiile referitoare la simboluri, nu snt memorate n fiierul desktop. Grupa cu titlul Auto save conine trei comutatori :

[ ] Editor files
Dac este cuplat, fiierele din ferestrele de editare nc nesalvate, snt salvate automat n momentul prsirii definitive sau temporare a mediului, la lansarea n execuie a programului curent sau la declanarea unei aciuni de depanare.

[ ] Environment
Dac este cuplat, n momentele mai sus menionate, opiunile actuale ale mediului, adic opiunile de compilare i tabela cu comenzile editorului, snt salvate automat n fiierul de configurare *.TP.

[ ] Desktop
Dac este cuplat, n momentele menionate la primul comutator, vor fi salvate automat informaiile referitoare la listele cu istoricul, locaiile punctelor de ntrerupere i starea zonei de lucru, n fiierul desktop *.DSK. Comutatorul poate fi cuplat doar atunci, cnd este cuplat i comutatorul Environment. Grupa cu titlul Options conine trei comutatori :

[ ] Auto track source


n stare cuplat regleaz modul de utilizare al comenzii Track source prezent n meniurile locale Browse i Messages. Linia refereniat de elementul actual al ferestrei Browse sau Messages va fi selectat automat, este afiat cu o culoare distinct, deci nu este necesar acionarea barei de spaiu.

[X] Close on go to source


35

n stare cuplat regleaz modul de utilizare al comenzii Goto source prezent n meniurile locale Browse i Messages. Cnd se trece la linia surs a fiierului desemnat de elementul actual al ferestrei Browse sau Messages, fereastra Browse sau Messages va rmne deschis.

[ ] Change dir on open


Dac este cuplat, directorul fiierului deschis cu comanda Open din meniul Open va fi n continuare directorul actual iar dac comutatorul nu este cuplat, atunci nu se va schimba directorul actual. Subcomanda Editor permite parametrizarea editorului ncorporat. Ea afieaz urmtoarea fereastr de dialog :

Editor options [X] Create backup files [X] Insert mode [X] Auto indent mode [ ] Use tab characters [ ] Optimal fill [X] Backspace unindents [ ] Cursor through tabs Tab size 8 Highlight extensions *.PAS; *.INC OK

[X] Group Undo [X] Persistent blocks [ ] Overwrite blocks [X] Syntax highlight [ ] Block insert cursor [X] Find text at cursor

Cance

Help

[X] Create backup files


n stare cuplat, la comanda Save din meniul File, mediul va salva automat fiierul surs original, cu extensia .BAK, iar dac nu este cuplat, fiierul surs original nu este salvat.

[X] Insert mode (Ins, Ctrl + V)


n stare cuplat editorul lucreaz n modul inserare, iar forma cursorului este o liniu, iar dac nu este cuplat, forma cursorului este un dreptunghi.

[X] Autoindent mode (Ctrl + O, I)


n stare cuplat, prin acionarea tastei Enter, cursorul va fi poziionat n coloana primului caracter diferit de spaiu din linia precedent i care nu este o linie numaicu blancuri. Acest lucru contribuie la claritatea programului.

[ ] Use tab characters (Ctrl + O, T)


n stare cuplat editorul insereaz efectiv un caracter Tab (Cod ASCII 9) n momentul n care se tasteaz Tab. n stare decuplat, caracterul Tab este nlocuit cu spaii. Numrul spaiilor inserate este definit de cmpul Tab size.

[ ] Optimal fill (Ctrl + O, F)

36

n stare cuplat editorul va ncerca s foloseasc un numr minim de caractere la nceputul fiecrei linii, cnd Auto indent mode este n stare cuplat.

[X] Backspace unindents (Ctrl + O, U)


n stare cuplat, dac cursorul este pe o linie cu spaii sau pe primul caracter diferit de spaiu dintr-o linie, la acionarea tastei Backspace toat linia se va alinia astfel nct s nceap n aceiai coloan cu cea precedent.

[ ] Cursor through tabs (Ctrl + O, R)


n stare cuplat cursorul se mic uniform cnd se ajunge la un caracter Tab, adic caracterul Tab este ignorat, altfel cursorul se deplaseaz nainte cu un numr de coloane care este specificat n cmpul Tab size

[X] Group Undo


n stare cuplat comanda Undo din meniul Edit va anula ultimele 10 aciuni, ntr-un singur pas. Pot fi grupate urmtoarele aciuni : inserare, tergere i suprascriere de text i aciunile de deplasare a cursorului. Dac este decuplat, comanda Undo va restabili doar o singur aciune.

[X] Persistent blocks


n stare cuplat marcarea (supraluminarea) de bloc va rmne valabil i atunci, cnd se prsete domeniul blocului respectiv. n caz contrar, n momentul prsirii blocului, marcarea blocului se termin.

[ ] Overwrite blocks
n stare cuplat i dac i comutatorul Persistent blocks este activ, blocul marcat poate fi suprascris. n caz contrar, la prima modificare n interiorul blocului, marcarea este anulat.

[X] Syntax highlight


n stare cuplat diferitele construcii ale limbajului Turbo Pascal, snt colorate diferit.

[ ] Block insert cursor


n stare stare decuplat cursorul corespunztor modului de inserare este o liniu, iar al modului de suprascriere este un dreptunghi. n stare cuplat este invers.

[X] Fint text at cursor


n stare cuplat, procesul de cutare este pornit de la poziia actual a cursorului, n caz contrar se pornete de la nceputul fiierului. Cmpul cu inscripia Tab size permite definirea numrului de spaii introduse cnd este acionat tasta Tab. Valorile permise snt nre 2 i 16, iar valoarea implicit este 8. Cmpul cu inscripia Highlight extension permite selectarea acelor extensii de fiiere, pentru care vor fi aplicate serviciile de colorare distinct a diferitelor poriuni din fiierul surs, validate de comutatorul Syntax highlight. Colorrile distincte vor fi aplicate implicit fiierelor cu extensia .PAS; .INC. Subcomanda Mouse afieaz o fereastr de dialog care este destinat gestionrii activitii cu mouse-ul. Ea are forma urmtoare : Ctrl + Right mouse button Mouse double click
37

( ) Nothing ( . ) Topic search ( ) Go to cursor ( ) Breakpoint ( ) Evaluate ( ) Add watch ( ) Browse symbol OK

Fast

Medium

Slow

[ ] Reverse mouse button

Cance

Help

Grupa butoanelor Ctrl + Right mouse button ataeaz o comand la acionarea butonului din dreapta al mouse-ului. Pot fi selectate urmtoarele variante : ( ) Nothing butonul din dreapta este inactiv. ( . ) Topic search comanda Topic search (Ctrl + F1) din meniul Help. ( ) Go to cursor comanda Go to cursor (F4) din meniul Run ( ) Breakpoint comanda Add breakpoint (Ctrl + F8) din meniul Debug. ( ) Evaluate comanda Evaluate/Modify (Ctrl + F4) din meniul Debug ( ) Add watch comanda Add watch (Ctrl + F7) din meniul Debug. ( ) Browse symbol comanda Symbol din meniul Search, numai n mod protejat. Timpul dintre dou apsri consecutive a butonului de mouse, pentru ca aciunea s fie interpretat ca i cum ar fi o apsare dubl, poate fi stabilit n cmpul cu titlul Mouse double click. Viteza crete de la dreapta spre stnga. Comutatorul Reverse mouse buttons se poziioneaz atunci cnd se dorete schimbarea rolului butonului din dreapta cu cel din stnga. Subcomanda Startup afieaz o fereastr de dialog n care pot fi precizai comutatorii care definesc modul de lansare al mediului de programare integrat. [ ] Dual monitor support [ ] Graphics screen save [ ] EGA / VGA palette save [X] CGA Snow checking [ ] LCD color set [X] Load .TPL file [X] Preserve symbols [X] Return to last dir Swap file size Swap file directory 0 K
38

OK

Cance

Help

[ ] Dual monitor support


Acest comutator se cupleaz numai dac computerul utilizeaz dou plci video care pot funciona n paralel. n acest caz, n urma cuplrii opiunii, pe monitorul central se afieaz mediul de programare, iar pe cellalt se afieaz datele de ieire ale programului.

[ ] Graphics screen save


n stare cuplat, n modul de depanare, salveaz ntreaga memorie grafic. Mediul rezerv o memorie tampon de 8Ko, n momoria EMS, dac aceast categorie de memorie este accesibil, la sistemele pe EGA, VGA sau MCGA.

[ ] EGA / VGA palette save


n stare cuplat, n caz de depanare, salveaz sau restabilete paleta EGA / VGA. Dac programul nu modific regitrii de palet, nu este necesar cuplarea acestui comutator.

[X] CGA snow checking


n stare cuplat determin testarea i anularea fenomenului deranjant de ninsoare a plcilor CGA.

[ ] LCD color set


n stare poziionat permite utilizarea mediului de programare i pe ecranele calculatoarelor laptop.

[X] Load .TPL file


n stare cuplat, n momentul ncrcrii mediului, ncarc i fiierul BP.TPL care conine unit-urile standard (System, Crt, Dos, Overlay, Printer, Strings).

[X] Preserve symbols


n stare cuplat reamintete informaiile referitoare la simbolurile utilizate n ferestrele de tip browse. Dac n urma unei compilri s-au gsit erori, nc pot fi folosite informaiile din ultima compilare reuit.

[X] Return to last dir


Comutatorul determin conservarea directorului curent. Dac opiunea este cuplat, la repornirea calculatorului, directorul curent va fi automat cel care a fost folosit n momentul ultimei ieiri din mediul de programare. Swap file size definete dimensiunea zonei de memorie care este rezervat pentru memorarea temporar a fiierului n curs de editare sau a zonei de lucru a editorului. Swap file directory permite specificarea directorului n care este memorat fiierul de manevr al editorului. Numele acestui fiier ncepe cu TP i are extensia $$$. Acest fiier este temporar, iar n momentul ieirii din mediu este ters automat. Subcomanda Colors afieaz o fereastr de dialog care permite modificarea culorii diferitelor componente ale mediului.
39

Group Browser Call stack Compiler Desktop Dialogs Editor Help Menus Messages Output Register Syntax Watches

Item Frame passive Frame active Frame icons Scroll bar page Scroll bar icons Normal text Focused text Unexpanded mode Selected text

Foreground

Background

Text Text

Text Text

Text Text

OK

Cance

Help

Fereastra care se recoloreaz se selecteaz din coloana Group. Componenta de fereastr se alege din coloana Item. Culoarea caracterelor se alege din grupa culorilor Foreground iar culoarea fondului se alege din grupa culorilor Background. Open afieaz o fereastr de dialog prin care se poate preciza numele unui fiier de configurare, salvat anterior cu comanda Save sau Save as. Dup precizarea numelui care de obicei este C:\BP\BIN\BP.TP, fiierul de configurare, n urma apsrii butonuluiOK, este ncrcat. Save salveaz opiunile actuale de compilare i tabela de comand a editorului, n fiierul actual de configurare, care de obicei este C:\BP\BIN\BP.TP. Opiunile referitoare la zona de lucru Desktop liste cu istoricul,starea zonei de lucru, locaiile punctelor de ntrerupere snt memorate n fiierul BP.DSK. Save as afieaz o fereastr de dialog care permite introducerea numelui de configurare *.TP. n acest fiier, prin acionarea butonului de comand OK, vor fi salvate opiunile actuale de compilare i tabela de comand a editorului. Fiierul salvat, poate fi ncrcat ulterior cu comanda Open.

Meniul Window
Comenzile meniului Window permit deschiderea, aranjarea i listarea diferitelor ferestre. Tile aeaz diferitele ferestre deschise, una sub alta, astfel c toate ferestrele snt simultan vizibile. Dac numrul de ferestre deschise simultan este prea mare se emite semnalul de eroare Tile / Cascade area too small to complete reguest. Cascade permite aeazarea ferestrelor deschise sub form de grmad. Prima fereastr ocup ntreaga zon de lucru, celelalte snt micorate, fereastra activ este deasupra grmezii.

40

Close all terge zona de lucru, adic nchide toate ferestrele


deschise la un moment dat. Dac exist ferestre n care fiierul modificat nu a fost salvat, atunci se emit mesaje de avertisment. Refresh display restabilete ecranul mediului. Aceast comand se folosete atunci cnd ecranul mediului este suprascris de un program lansat n execuie. Size / Move(Ctrl + F5) permite redimensionarea i deplasarea ferestrei actuale. Redimensionarea ferestrei se realizeaz prin acionarea simultan a tastelor Shift i una din tastele cu sgei. Cnd se ajunge la dimensiunea dorit, se tasteaz Enter. Deplasarea poate fi realizat cu ajutorul tastelor cu sgei.Dup ce fereastra a ajuns la locul dorit, se tasteaz Enter. Zoom(F5) permite redimensionarea ferestrei active la dimensiunea maxim.Dac fereastra are deja aceast dimensiune, comanda restabilete dimensiunea la cea original, adic comanda funcioneaz ca un comutator. Next(F6) activeaz urmtoarea fereastr din ferestrele deschise la un moment dat. Previous(Shift + F6) activeaz fereastra precedent, din ferestrele deschise la un moment dat. Close(Alt + F3) nchide fereastra actual. Dac fiierul din fereastra actual a suferit modificri i nc nu a fost salvat, atunci mediul emite un mesaj de avertisment. List(Alt + 0(zero)) deschide o fereastr de dialog care listeaz toate ferestrele deschise n momentul respectiv.

Meniul Help
Comenzile meniului Help asigur accesul la diferitele componente ale documentaiei n limba englez, care nsoete mediul de programare.

41