.. L ! ! ! ! ! ! ! ! ! ! ! R .pl 72 .he Functionare CP/M .fo # .pn 4 .uj 1 2. FUNCTIONARE CP/M 2.1. Proceduri de exploatare pentru utilizarea CP/M Utilizatorul lucreaza cu sistemul CP/M in primul rind prin inter mediul componentei CCP, care preia comenzile introduse de la consola si le interpreteaza. In general, componenta CCP adre seaza la un moment dat o singura unitate de discuri din cele care sint operationale (on-line) curent (sistemul CP/M standard recunoaste maximum 16 unitati de discuri). Unitatile de discuri se identifica in CP/M prin literele A, B, C,...P. Un disc este "instalat" daca CCP il adreseaza in momentul respectiv. Pentru a indica clar in fiecare moment care este discul instalat, CCP comunica utilizatorului (prin afisare la consola) numele discu lui urmat de simbolul ">", indicind in acest mod faptul ca CCP asteapta o noua comanda. Initializarea sistemului CP/M se realizeaza astfel: - se introduce in unitatea 0 ("A") un disc CP/M - se actioneaza comutatorul LOAD de la panoul frontal In urma acestor comenzi va apare la consola mesajul: xxk CP/M vers m.m xx - este dimensiunea memoriei interne (in Kocteti) pe care o gestioneaza sistemul CP/M curent m.m - este numarul de versiune Sistemele CP/M pot fi usor reconfigurate pentru orice dimensiune de memorie de care dispune microcalculatorul gazda (vezi comanda tranzitorie MOVCPM). Initializarea CP/M-ului are ca efect incarcarea de pe disc in memorie a componentelor CCP, BDOS, BIOS. Dupa mesajul de inceput, sistemul CP/M instaleaza automat discul "A", afiseaza mesajul "A>" si asteapta o noua comanda. Orice schimbare de disc intr-o unitate trebuie urmata de o opera tie denumita "reincarcarea" CP/M-ului, care se realizeaza prin comanda CTRL/C. .cp 8 "Reincarcarea" CP/M-ului se poate face numai dupa ce sistemul a fost cel putin o data initializat. Aceasta operatie consta in "reincarcarea" de pe disc in memorie a componentelor CCP si BDOS. Operatia de "reincarcare" se realizeaza si prin: - executia instructiunilor RST 0 sau JMP 0; - o intrerupere pe nivelul 0. .cp 11 In timpul lucrului cu sistemul CP/M, utilizatorul poate sa rea signeze discul instalat (care era initial discul "A") printr-o comanda de tipul: nume-dispozitiv:(CR) unde: nume-dispozitiv - una din literele A - P si reprezinta numele noului disc care va fi instalat. .cp 8 Astfel, secventa de comenzi prezentata in continuare poate fi utilizata dupa ce sistemul CP/M a fost initializat de pe discul "A": .uj 0 53k CP/M vers 2.2 A>DIR listeaza numele tuturor fisierelor de pe discul "A" A: PROG ASM : PROG PRN : PROG LIB : DUMP ASM A: PRO ASM : TEST ASM A>B: reasignarea discului "B" ca disc instalat B>DIR *.ASM listarea numelor tuturor fisierelor cu extensie "ASM" de pe discul "B". B: PROG ASM : DUMP ASM : PRO ASM : TEST ASM B>A: reasignarea discului "A" ca disc instalat A> .uj 1 .cp 8 2.2 Comenzi CP/M Sub CP/M, un program direct executabil se numeste "comanda". Exista doua tipuri de comenzi CP/M: - comenzi rezidente - comenzi tranzitorii .cp 4 Comenzile rezidente reprezinta programe ce sint incluse in compo nenta CCP, in timp ce comenzile tranzitori reprezinta programe ce se incarca de pe disc (sub controlul CCP) in zona TPA si apoi se lanseaza in executie. .cp 15 Comenzile rezidente sint: USER - precizarea numarului utilizatorului curent ERA - sterge fisiererele specificate DIR - afiseaza la consola numele tuturor fisierelor din "director" REN - redenumeste un fisier dat TYPE - afiseaza la consola continutul unui fisier sursa ASCII SAVE - salveaza continutul memoriei intr-un fisier Comenzile tranzitorii pot fi: - programe utilitare din sistemul CP/M; - programe traducatoare; - programe pentru editare de texte; - programe pentru editare de legaturi; - programe-utilizator de aplicatii. Orice comanda se introduce de la consola, existind o serie de facilitati pentru editarea de linii (vezi sectiunea 2.4 "caractere de editare"). 2.3 Identificarea fisierelor Un specificator de fisier identifica un fisier sau un grup de fisiere de pe un disc CP/M. Un specificator poate fi individual sau multiplu. Un specificator-individual identifica un singur fisier, in timp ce un specificator-multiplu poate fi satisfacut de mai multe fisiere diferite. .cp 5 Un specificator de fisier are forma generala: [dispozitiv:]nume-fisier[.extensie] unde: .cp 5 dispozitiv - numele unitatii de discuri (literele A-P) pe care se gaseste fisierul (implicit acest nume este numele discului instalat). .cp 5 nume-fisier - numele fisierului alcatuit din maximum 8 caractere alfanumerice si speciale, cu exceptia urmatoarelor caractere: < > . , ; : = ? * [ ] ^ spatiu. .cp 6 extensie - identifica de obicei tipul fisierului si poate fi alca tuit din maximum 3 caractere alfanumerice si speciale, cu exceptia caracterelor interzise pentru specificarea numelui-fisierului. .cp 5 Desi extensia unui fisier este optionala, exista o serie de extensii standard folosite de programele tranzitorii ale CP/M; de exemplu extensia "ASM" este folosita pentru identificarea unui fisier sursa in limbaj de asamblare, iar extensia "COM" indica un program absolut direct executabil. Un specificator-multiplu are o forma similara unui specificator- individual, cu exceptia faptului ca pot fi folosite, pentru nume- fisier si extensie, caracterele "?" si "*". Caracterul "?" inlocuieste practic, in pozitia respectiva, orice caracter dintr-un specificator de fisier. Astfel, specifica torul-multiplu: X?Z.C?M este satisfacut de urmatoarele specificatoare-individuale de fisier: XYZ.COM si X3Z.COM Caracterul "*" inlocuieste oricite si orice caractere din numele- fisierului si/sau extensie. Astfel, specificatorul-multiplu: *.* identifica toate fisierele cu orice nume-fisier si orice extensie de pe discul instalat si este echivalent cu: ????????.??? in timp ce pppppppp.* si *.sss sint echivalente cu: pppppppp.??? si ????????.sss In continuare se prezinta citeva exemple de specificatori de fisiere: .cp 4 - specificatori-individuali de fisiere .uj 0 B:X XYZ B:GAMA GAMA.ASM X.Y A:XYZ.COM GAMA.1 A:P2.BAK .uj 1 .cp 4 - specificatori-multipli de fisiere .uj 0 B:X.A?M B:*.ASM *.PRN B:R??A.* .uj 1 .. L ! ! ! ! ! ! ! ! R .cp 5 NOTA Daca intr-un specificator de fisier se folo sesc literele minuscule ale alfabetului, acestea sint automat transformate in majus cule de catre componenta CCP. .. L ! ! ! ! ! ! ! ! ! ! ! R .cp 8 2.4 Caractere de editare CCP contine o serie de functii de editare de linii care sint activate prin urmatoarele caractere (denumite "caractere de edi tare linii"). RUBOUT - sterge din "buffer"-ul de intrare si reda in ecou ultimul caracter introdus de la consola. CTRL/U - sterge integral linia introdusa de la consola. CTRL/X - identic cu CTRL/U. CTRL/R - tipareste la consola pe linia imediat urmatoare conti nutul curent al "buffer"-ului de intrare. Prin acest caracter se poate vizualiza continutul curent al unei linii in care s-au efectuat corectii prin RUBOUT (DEL). CTRL/E - indica sfirsitul fizic al unei linii; cursorul se pozitioneaza pe inceputul liniei dar linia nu se tran smite decit atunci cind se tasteaza (CR). CTRL/Z - indica sfirsitul unui fisier introdus de la consola (se utilizeaza in comenzile PIP si ED). CTRL/H - sterge din "buffer"-ul de intrare si de pe ecranul terminalului ultimul caracter introdus. CTRL/J - este echivalent unui caracter (LF) si reprezinta sfir situl unei linii. CTRL/M - este echivalent unui caracter (CR) si reprezinta sfir situl unei linii. CTRL/P - permite ca tot ceea ce se introduce din acel moment de la consola, pina la un nou CTRL/P sa fie transmis si la perifericul tip LST: curent (vezi comanda STAT). CTRL/S - opreste temporar un proces de afisare de informatii la consola. Procesul de afisare se reia atunci cind se introduce orice caracter de la consola (se recomanda introducerea unui alt caracter CTRL/S). Caracterul CTRL/S se foloseste pentru a putea urmarii o succesiune de imagini-ecran care se deruleaza foarte rapid pe consola. .cp 2 Caracterele CTRL/x se introduc prin apasarea simultana pe tasta CTRL si pe tasta x. .cp 3 Liniile de comanda preluate de CCP pot contine pina la 128 de caractere; ele nu sint interpretate de catre componenta CCP decit dupa ce s-a actionat tasta (CR).