MasterDOS

From Atariki

(Różnice między wersjami)
Jump to: navigation, search

Wersja z dnia 17:45, 7 paź 2008

DOS przeznaczony dla komputerów Atari XL/XE ze stacją dysków Karin Maxi 360 KB. Został napisany w 1995 roku przez Foxa.

MasterDOS obsługuje wyłącznie własny system plików. Kopiowanie plików między systemem plików Atari DOS a MasterDOS odbywa się przez zbootowanie jednego DOSa, wczytanie plików do pamięci rozszerzonej przy pomocy Professional Copy, zbootowanie drugiego DOSa i zapisanie plików przez Professional Copy.

MasterDOS posiada wbudowany procesor poleceń. Obsługuje tylko jedną stację dysków, nie ma wbudowanej obsługi ramdysków, pozwala otworzyć jednocześnie tylko jeden plik, nie obsługuje trybu dopisywania na końcu pliku ani otwarcia pliku jednocześnie do odczytu i zapisu.

Atari BASIC jest zawsze odłączany przy wczytywaniu DOSa, dlatego wciskanie klawisza Option nie jest potrzebne. Kombinacja Option-Reset powoduje zimny start. MEMLO (adres początku pamięci dostępnej dla programów) w wersji 1.5 wynosi $1bde.

Możliwe jest pominięcie kropki po gwiazdce w masce nazwy pliku. Np. "*TXT" jest równoważne "*.TXT", a "**" jest równoważne "*.*".

Spis treści

Niskopoziomowa obsługa Karin Maxi

MasterDOS posiada własne procedury obsługi kontrolera dysku i nie korzysta z procedur wbudowanych w EPROM Karin Maxi. W odróżnieniu od tych procedur:

  • przy rozpoczęciu zapisu wprowadza opóźnienie w celu rozpędzenia się napędu, co zapobiega błędom spowodowanym niewłaściwą prędkością obrotową dyskietki
  • po przesunięciu głowicy przy zapisie wprowadza opóźnienie, zapobiegając błędom spowodowanym niedokładnym ustawieniem głowicy
  • podczas przesuwania głowicy ekran pozostaje włączony
  • nie ma pasków na ekranie oraz szumów w trakcie operacji dyskowych (ekran jest wyłączony, POKEY nie generuje żadnego dźwięku)
  • DMA dla DL jest włączone w trakcie operacji dyskowych, co zapobiega zrywaniu synchronizacji obrazu
  • duszki są włączone w trakcie operacji dyskowych
  • przerwania DLI są włączane po zakończeniu transmisji
  • wciśnięcie klawisza Break kończy operację z błędem, bez prób powtarzania jej

Procedury wbudowane w MasterDOS obejmują:

  • odczyt sektora z dyskietki w formacie: 2 strony po 40 ścieżek po 18 256-bajtowych sektorów na ścieżce
  • zapis sektora w takim formacie
  • niskopoziomowe formatowanie w takim formacie z przeplotem co 2 (identycznie jak procedura w EPROM Karin Maxi, czyli kolejno na ścieżce znajdują się sektory 1,10,2,11,3,12,...), zaznaczające uszkodzone sektory

System plików

Obsługiwane są tylko dyskietki 360 KB. Po sformatowaniu dyskietki z systemem plików MasterDOS jest 1419 wolnych sektorów po pełne 256 bajtów. Struktura systemu plików:

  • sektory 1-3 - boot sectors
  • sektory 4-9 - tabela sektorów
  • sektory 10-21 - katalog
  • sektory 22-1440 - przeznaczone na pliki

Boot sectors

W tych sektorach znajdują się fragmenty DOSa, między innymi odpowiedzialne za jego wczytanie. W odróżnieniu od innych DOSów Atari, w tych sektorach zapisane jest po 256 bajtów (a nie tylko początkowe 128). Algorytm wczytania DOSa jest następujący:

  • wczytywane jest początkowe 128 bajtów sektora 1 i uruchamiany kod w nich zawarty
  • kod ten wczytuje sektory 1-3 (całe, po 256 bajtów)
  • odczytywana jest tabela sektorów oraz odszukiwany plik MSDOS.SYS w katalogu
  • plik MSDOS.SYS jest wczytywany i uruchamiany

Tabela sektorów

Tabela sektorów zawiera informacje o położeniu plików i wolnych sektorów na całej dyskietce. Tabela zajmuje 6 sektorów, czyli 1536 bajtów i jest wczytywana zawsze w całości w obszar pamięci $0800-$0dff. Struktura tabeli:

  • bajty 0-4 zawierają napis "MSDOS" w ASCII
  • bajty 5-21 zawierają 255, odpowiadając sektorom zajętym przez tabelę sektorów i katalog
  • bajty 22-1440 zawierają informacje o poszczególnych sektorach dostępnych dla plików
  • bajty 1441-1535 zawierają 255 lub 254 (w zależności od wersji MasterDOSa), dodatkowo MasterDOS 1.5 pozwala na zapisanie etykiety dysku w bajtach 1441-1478, zakończonej znakiem EOL (155)

Informacja o sektorach dostępnych dla plików jest następująca:

  • bajt o wartości 0 - sektor jest wolny
  • bajt o wartości 1-252 - sektor należy do pliku wpisanego w katalogu na danej pozycji
  • bajt o wartości 253 - sektor uszkodzony

Pliki są zapisywane zawsze w kolejności rosnących sektorów. Usunięcie pliku (w tym związane z nadpisaniem istniejącego pliku) nie wymaga odczytania wszystkich sektorów należących do pliku, w związku z czym jest dużo szybsze, niż w przypadku systemu plików Atari DOS.

Katalog

Każdy wpis w katalogu zajmuje 12 bajtów. Sektor katalogu zawiera 21 takich wpisów, co daje 252 bajty - ostatnie 4 bajty zawierają 255, a w ostatnim sektorze katalogu (sektor 21 na dyskietce) 254. 12 sektorów katalogu pozwala na wpisanie 252 plików (dla porównania standardowy format Atari DOS ma ograniczenie do 64 plików w katalogu). Struktura wpisu:

  • bajty 0-7 - bity 0-6 zawierają podstawową nazwę pliku (kody ASCII), bity 7 kodują 8 najmniej znaczących bitów długości pliku (pierwszy bajt zawiera bit 7, drugi bit 6 itd.)
  • bajty 8-10 - zawierają rozszerzenie nazwy pliku (kody ASCII)
  • bajt 11 - 0 oznacza brak pliku (wpis nieużywany jeśli bajt 0 równy 0 lub plik usunięty w przeciwnym przypadku), 255 oznacza plik w katalogu głównym dysku

Podstawowa nazwa krótsza od 8 znaków i rozszerzenie krótsze od 3 znaków są dopełniane spacjami.

Struktura katalogu przewidywała możliwość używania podkatalogów. Informacje o wszystkich plikach i katalogach byłyby składowane niezmiennie w sektorach 10-21. Podkatalog byłby rozróżniany od pliku przez ustawienie bitu 7 w bajcie 8 wpisu w katalogu. Znając numer wpisu podkatalogu w katalogu (liczba od 1 do 252), można znaleźć odpowiadające mu wpisy (pliki lub podkatalogi) przez sprawdzenie bajtu 11 (wartość od 1 do 252 oznaczałaby wpis należący do określonego podkatalogu). Obsługa podkatalogów nie została jednak nigdy zaimplementowana w MasterDOS.

Procesor poleceń

Procesor poleceń rozpoznaje 20 wbudowanych komend. Parametry są oddzielane spacjami. Załadowanie programu następuje po wpisaniu jego nazwy (domyślnym rozszerzeniem jest COM). Dodatkowo można zmienić bieżące urządzenie przez wpisanie litery jego nazwy, cyfry numeru oraz dwukropka. Wciśnięcie Control+3 powoduje powtórzenie ostatnio wpisanej komendy. Po wczytaniu DOSa uruchamiany jest plik wsadowy AUTOEXEC.BAT, o ile znajduje się na dysku.

Wbudowane komendy:

  • DIR lub / - wyświetla katalog, opcjonalnie można podać maskę nazwy
  • DEL lub ERA - usuwa plik(i)
  • REN - zmienia nazwę pliku
  • TYP - wyświetla plik tekstowy (domyślne rozszerzenie DOC)
  • BAT - uruchamia plik wsadowy (domyślne rozszerzenie BAT)
  • LOA - uruchamia program (domyślne rozszerzenie COM) - polecenie jest opcjonalne, normalnie podaje się tylko nazwę programu
  • SAV - zapisuje fragment pamięci z nagłówkami programu; parametry to: adres początkowy szesnastkowo, adres końcowy szesnastkowo, nazwa pliku
  • GET - wczytuje dowolny plik w podany obszar pamięci; parametry jak wyżej
  • PUT - zapisuje podany obszar pamięci do pliku; parametry jak wyżej
  • FOR - formatuje dysk, opcjonalnie można podać etykietę dysku
  • BOF - wyłącza wbudowany BASIC
  • CAR - włącza wbudowany BASIC i przekazuje mu sterowanie
  • EXT - konfiguruje domyślne rozszerzenia nazw pliku, kolejno: dla zwykłych plików, dla programów (domyślnie COM), dla plików wsadowych (komenda BAT), dla tekstu (komenda TYP); parametry mogą być pominięte, lub podane jako znak minus, wtedy odpowiednie rozszerzenie domyślne nie jest zmieniane. Przykłady użycia:
    • EXT - tylko wyświetla bieżące ustawienia
    • EXT MPT - ustawia domyślne rozszerzenie na MPT
    • EXT - - - TXT - ustawia domyślne rozszerzenie dla komendy TYP na TXT
  • MEM - bez parametru wyświetla adresy systemowe MEMLO, MEMHI i RUNAD; z podanym szesnastkowo adresem wyświetla zawartość pamięci szesnastkowo i jako znaki ATASCII, klawisz Return powoduje wyświetlanie kolejnych wierszy, dowolny inny klawisz kończy polecenie
  • POK - zmienia zawartość pamięci; należy podać adres i co najmniej jeden bajt, który ma być zapisany
  • REM - komentarz (polecenie ignorowane, może się przydać w pliku wsadowym)
  • VOL - zmiana etykiety dysku

Wersje

  • 1.0 - 25 wrzesień 1995
  • 1.1 - 13 październik 1995
  • 1.2 - 29 październik 1995
  • 1.3 - 19 grudzień 1995
  • 1.4 - 19 maj 1996
  • 1.4a - 14 lipiec 1996
  • 1.5 - 29 kwiecień 1997

Zobacz też

Personal tools