78 Zrozumieć Asembler
rze, też liczymy od zera). Teraz, gdy głowica jest prawidłowo ustawiona, dzięki obrotowemu ruchowi dysku, głowica może przeczytać każdy sektor na tej ścieżce. Dostęp do ścieżki jest swobodny (podobnie jak dostęp do pamięci), ale w danej chwili możemy uzyskać dostęp tylko do jednego sektora - jest to dostęp sekwencyjny.
Ponieważ, jedną z usług, jakie świadczy Ci DOS, jest dostęp do danych, niezależne jak są one rozmieszczone na dysku, nie musisz się przejmować, jak Twoje pliki są zapisane. Niech martwi się o to DOS.
Dane przechowywane w jakiejkolwiek pamięci mogą być przechowywane jedynie w postaci dowolnych liczb binarnych. Pliki, dla których nie istnieją ograniczenia dotyczące zawartości i organizacji pliku, nazywane są plikami binarnymi. W plikach takich mogą znajdować się dowolne liczby binarne (bez względu czy są to dane czy kod binarny) ułożone w dowolny sposób.
Tak jak wszystkie pliki, pliki binarne są zapisane w sektorach na dysku. Przyjmijmy typowy rozmiar sektora - 512 bajtów. Rozmiar ten jest najmniejszym rozmiarem, jaki może zająć Twój plik na dysku. Nawet gdy użyjesz komendy DOS DIR i zobaczysz, że w pliku jest tylko 17 bajtów, to na dysku zajmuje on ich 512. Liczba 17 oznacza, tylko że w pliku znajduje się 17 bajtów danych. Ilość miejsca zajmowanego oznacza ilość pełnych sektorów potrzebnych do zapisania pliku.
Jeśli próbowałeś kiedyś obejrzeć pliki, wykorzystując polecenie TYPE, to w przypadku plików takich jak .EXE czy .COM na ekranie pojawiał się zbiór dziwnych znaczków. Takie pliki nie są przewidziane do odczytywania na ekranie. Są to przede wszystkim programy przewidziane do wykonania przez komputer.
Istnieje osobna grupa plików przewidzianych przede wszystkim do wykorzystania przez człowieka. Pliki takie nazywamy plikami tekstowymi, gdyż zawierają one litery, cyfry i inne znaki tworzące tekst pisany.
W odróżnieniu od plików binarnych, pliki tekstowe mają określoną budowę. Ciągi znaków dzielone są na wiersze. Wiersz w pliku tekstowym określany jest nic przez swoją zawartość, a przez swoje zakończenie. Na końcu każdego wiersza znajduje się zespół dwóch specjalnych znaków, zwanych razem znacznikiem końca linii - End of Linę (EOL). GOL Tworzą dwa znaki kontrolne: znak powrotu karetki (ang. Carriage Return - CR) oraz znak nowego wiersza (ang. Linę Feed - LE). Na ekranie nie widzisz żadnego z tych znaków, widzisz natomiast wynik ich działania. W pliku tekstowym pierwszy wiersz zaczyna się od pierwszego znaku tekstu i kończy na znaczniku EOL. Następny znak po EOL jest pierwszym znakiem drugiego (następnego) wiersza, który znowu kończy się na kolejnym EOL.
Dlaczego koniec wiersza musi być oznaczony dwoma znakami? Dawno temu (i do dzisiaj) istniała straszna mechaniczna maszyna o nazwie dalekopis. W tej maszynie ruchem piszącej głowicy (karetki) sterował jeden mechanizm, natomiast obrotem wałka przesuwającego papier sterował inny. Do każdego z tych mechanizmów trzeba było przekazać odpowiedni sygnał sterujący - odpowiedni znak. Dzisiejsze drukarki komputerowe nie mają nic wspólnego z działaniem tych dalekopisów, ale nie wiem dlaczego do ich sterowania potrzebne są dwa znaki.
Rysunek 3.2 pokazuje, w jaki sposób znaki CR oraz LF przekształcają trudny do zrozumienia ciąg liter w tekst uporządkowany. Zrozumienie struktury pliku tekstowego jest bardzo istotne, ponieważ dyktuje ona sposób działania istotnych narzędzi programowych, o czym będziemy mówić nieco dalej.
Znak CR ma kod 13 w zestawie znaków ASCII umieszczonym w załączniku A. Znak LF ma kod 10. Oba należą do grupy niewidzialnych znaków nazywanych, razem białymi spacjami (odstępami) (ang. wbite space). Inne znaki należące do tej grupy to zwykły znak spacji - odstępu (numer 32), znak tabulacji (numer 9) oraz znak wysuwu strony (numer 12), przy pomocą którego dzielimy tekst na strony
Kolejny znak to znak sygnału dźwiękowego (BEL). Ma on charakter pośredni między znakami tekstowymi a binarnymi. Zarówno w momencie próby wyświetlenia go czy wydruku wywołuje on sygnał dźwiękowy. W dalekopisach BEL uruchamiał dzwonek dalekopisu. Jest on dopuszczalny w plikach tekstowych.