.PL 72 .PN 28 .HE Manual de interfata CP/M .fo # -------------------------------------------------------- | | | RUTINA 29 : Citire vector de unitati R/O | | (Get Read/Only Vector) | | | | Intrari : | | registrul C : 1DH | | | | Iesiri : | | registrele H&L : vectorul de unitati R/O| | | -------------------------------------------------------- Efect: rutina intoarce in registrele "H&L" un vector ce indica unitatile de disc care sint desemnate ca R/O in acel moment. Bitul B0 din registrul "L" corespunde unitatii "A", iar bitul B7 din registrul "H" corespunde unitatii "P". O valoare logica "1" indica faptul ca unitatea respectiva este R/O. O unitate de disc devine R/O dupa un apel al rutinei 28 sau in urma schimbarii volumului disc din acea unitate (sistemul CP/M, in acest caz, desemneaza automat unitatea respectiva ca R/O). .cp 34 -------------------------------------------------------- | | | RUTINA 30 : Modificare atribute fisier | | (Set File Attributes) | | | | Intrari : | | registrul C : 1EH | | registrele D&E : adresa FCB | | | | Iesiri : | | registrul A : cod "director" | | | -------------------------------------------------------- Efect: rutina permite modificarea atributelor R/O si SYS ale unui fisier specificat in FCB-ul a carui adresa este data in registrele "D&E". FCB-ul trebuie sa contina un specificator- individual de fisier. Noile atribute ale fisierului se specifica prin: - bitul B7 din octetul 09 din FCB ("1" reprezinta fisier protejat la scriere (R/O)); - bitul B7 din octetul 10 din FCB ("1" reprezinta fisier invizibil (SYS)). Rutina cauta in "director" o intrare care corespunde octetilor 1-11 din FCB; comparatia se face ignorind valorile bitilor B7 din octetii 1-11 din FCB si din "director". Daca o astfel de intrare este gasita rutina modifica intrarea din "director" corespunzatoare. Rutina intoarce in registrul "A" o valoare 0-3 pentru cazul in care operatia s-a desfasurat corect sau o valoare egala cu 255 (0FFH) pentru cazul in care nu fost gasita o astfel de intrare. .cp 21 -------------------------------------------------------- | | | RUTINA 31 : Citire adresa "bloc parametri disc" | | (Get Disk Parms Addr) | | | | Intrari : | | registrul C : 1FH | | | | Iesiri : | | registrele H&L : adresa bloc parametri | | disc | -------------------------------------------------------- Efect: rutina intoarce in registrele "H&L" adresa "blocului de parametri ai discului", bloc care este rezident in BIOS. Aceasta adresa poate fi folosita: - pentru a extrage din zona respectiva informatii privind parametrii discului (informatii necesare pentru a fi afisate sau pentru a se realiza, pe baza lor, calcule); - pentru a modifica, prin program, parametrii discului; de obicei programele de aplicatii nu folosesc rutina 31 in acest scop. .cp 21 -------------------------------------------------------- | | | RUTINA 32 : Citire/modificare numar utilizator | | (Set/Get User Code) | | | | Intrari : | | registrul C : 20H | | registrul E : 0FFH pentru citire | | numar utilizator pentru| | modificare | | | | Iesiri : | | registrul A : numar utilizator daca | | E a fost 0FFH | -------------------------------------------------------- Efect: rutina permite citirea numarului utilizatorului curent (daca (E)=0FFH) si intoarcerea acestui numar in registrul "A" sau modificarea numarului utilizatorului curent, in functie de valoa rea curenta a registrului "E" (modulo 16). Numarul utilizatoru lui curent variaza intre 00H si 0FH. .pa -------------------------------------------------------- | | | RUTINA 33 : Citire directa | | (Read Random) | | | | Intrari : | | registrul C : 21H | | registrele D&E : adresa FCB | | | | Iesiri : | | registrul A : octet de stare | | | -------------------------------------------------------- Efect: rutina este similara rutinei "citire secventiala" (rutina 20) cu exceptia faptului ca nu se citeste din fisier inregistra rea de 128 de octeti cu numarul specific< @ aLx y A@s@$x .nL.L<$