BOOT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 17:14, 19 cze 2008
Jellonek (Dyskusja | wkład)
(lekkie przeredagowanie celem usuniecia duplikatu "dodatkowo" w tym samym zdaniu.)
← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(Przebieg procedury uruchomienia programu - linki)
Linia 1: Linia 1:
-Format pliku wykorzystywany w [[Atari 8-bit|małym Atari]] do wczytywania programów wykonywalnych z poziomu systemu operacyjnego [[OS]] bezpośrednio po uruchomieniu komputera, bez potrzeby wczytywania systemu [[DOS]]. Takim "plikiem" jest też na ogół sam DOS. Program typu "BOOT" może być wczytany zarówno z dyskietki jak i kasety. W przypadku chęci uruchomienia programu typu BOOT z dyskietki należy po prostu włączyć komputer, system operacyjny będzie próbował odczytać program właśnie w formacie BOOT ze stacji dysków "D1:", jeżeli chcemy wyłączyć wbudowany interpreter [[BASIC]] należy włączyć komputer z wciśniętym klawiszem OPTION. Natomiast jeżeli chcemy dokonać odczytu programu w formacie BOOT z magnetofonu należy włączyć komputer z wciśniętym klawiszem START. Odłączenie interpretera BASICa odbywa się identycznie jak w przypadku odczytu ze stacji dysków.+Format pliku wykorzystywany w [[Atari 8-bit|małym Atari]] do wczytywania programów wykonywalnych z poziomu [[OS|systemu operacyjnego]] bezpośrednio po uruchomieniu komputera, bez potrzeby uprzedniego wczytywania systemu [[DOS]]. Takim "plikiem" jest na ogół sam DOS.
 +Program typu "BOOT" może być wczytany zarówno z dyskietki jak i kasety. W przypadku uruchamiania programu typu BOOT z dyskietki należy po prostu włączyć komputer, system operacyjny będzie próbował odczytać program właśnie w formacie BOOT ze stacji dysków nr 1. Jeżeli chcemy przy tym wyłączyć wbudowany interpreter [[BASIC]] należy włączyć komputer z wciśniętym klawiszem OPTION. Natomiast jeżeli chcemy dokonać odczytu programu w formacie BOOT z magnetofonu należy włączyć komputer z wciśniętym klawiszem START. Odłączenie interpretera BASIC-a odbywa się identycznie jak w przypadku odczytu ze stacji dysków.
-Na początku znajduje się sześcio-bajtowy nagłówek, składający się kolejno z dwóch pojedynczych bajtów i dwóch dwu-bajtowych słów:+== Opis formatu ==
 +Na początku znajduje się sześciobajtowy nagłówek, składający się kolejno z dwóch pojedynczych bajtów i dwóch dwubajtowych słów:
-* bajt 0 - wartość bez znaczenia dla systemu operacyjnego+* bajt 0 - wartość bez znaczenia dla systemu operacyjnego,
-* bajt 1 - określa liczbę 128-bajtowych sektorów dyskietki lub rekordów z kasety jakie należy wczytać+* bajt 1 - określa liczbę 128-bajtowych sektorów dyskietki lub rekordów z kasety jakie należy wczytać,
-* bajty 2 (młodszy bajt) i 3 (starszy bajt) - adres, pod jaki system operacyjny wczyta całość danych+* bajty 2 (młodszy bajt) i 3 (starszy bajt) - adres, pod jaki system operacyjny wczyta całość danych,
-* bajty 3 (młodszy bajt) i 4 (starszy bajt) - adres ponownego inicjowania programu w przypadku wciśnięcia klawisza RESET (wpisywany przez system do rejestru DOSINI lub CASINI)+* bajty 4 (młodszy bajt) i 5 (starszy bajt) - adres ponownego inicjowania programu w przypadku wciśnięcia klawisza RESET (wpisywany przez system do rejestru DOSINI lub CASINI),
 +* bajt 6 i dalsze - procedura inicjalizacyjna.
 +Cały plik składa się ze 128-bajtowych rekordów (w przypadku programu ładowanego z kasety) lub sektorów (w przypadku gdy program ładowany jest z dyskietki).
-Program uruchamiany jest od adresu wczytywania, plus sześć bajtów.+== Przebieg procedury uruchomienia programu ==
 +Po wczytaniu programu jest on inicjalizowany przez wywołanie procedury ulokowanej od adresu wczytywania plus sześć bajtów. Ponieważ maksymalna liczba rekordów z jakich może się składać program wynosi 256 (0 podane jako ilość rekordów), to jest to dobry punkt do umieszczenia procedury ładującej pozostałe rekordy w przypadku gdy program jest dłuższy. Procedura ta w procesie ładowania programu zostanie wykonana tylko raz.
 +
 +Powrót z ustawionym znacznikiem C powoduje wypisanie błędu BOOT ERROR oraz ponowienie procedury BOOT w przypadku dysku, a jej zakończenie w przypadku magnetofonu (co w dalszej części procedury RESET skutkuje skokiem pod adres w DOSVEC ($000A), gdzie w początkowej fazie ustawiany jest adres [[SELF TEST]]-u).
 +
 +Powrót z ze skasowanym znacznikiem C powoduje kontynuowanie procedury RESET, w tym ustawienie poprawnej wartości zmiennej BOOT? ($0009) i przepisanie adresu uruchomienia programu z czwartego i piątego bajtu nagłówka do wektora DOSINI ($000C), a w przypadku ładowania z kasety dodatkowo w CASINI ($0002), na końcu której następuje oddanie kontroli do programu przez skok pod ten właśnie adres.
 +
 +== Zobacz też ==
 +
 +* [[RESET]]
 +* [[Boot]]
 +* [[Programowanie: Program odporny na RESET]]
{{stub}} {{stub}}
[[Kategoria:Formaty plików]] [[Kategoria:Formaty plików]]

Aktualna wersja

Format pliku wykorzystywany w małym Atari do wczytywania programów wykonywalnych z poziomu systemu operacyjnego bezpośrednio po uruchomieniu komputera, bez potrzeby uprzedniego wczytywania systemu DOS. Takim "plikiem" jest na ogół sam DOS.

Program typu "BOOT" może być wczytany zarówno z dyskietki jak i kasety. W przypadku uruchamiania programu typu BOOT z dyskietki należy po prostu włączyć komputer, system operacyjny będzie próbował odczytać program właśnie w formacie BOOT ze stacji dysków nr 1. Jeżeli chcemy przy tym wyłączyć wbudowany interpreter BASIC należy włączyć komputer z wciśniętym klawiszem OPTION. Natomiast jeżeli chcemy dokonać odczytu programu w formacie BOOT z magnetofonu należy włączyć komputer z wciśniętym klawiszem START. Odłączenie interpretera BASIC-a odbywa się identycznie jak w przypadku odczytu ze stacji dysków.

Opis formatu

Na początku znajduje się sześciobajtowy nagłówek, składający się kolejno z dwóch pojedynczych bajtów i dwóch dwubajtowych słów:

  • bajt 0 - wartość bez znaczenia dla systemu operacyjnego,
  • bajt 1 - określa liczbę 128-bajtowych sektorów dyskietki lub rekordów z kasety jakie należy wczytać,
  • bajty 2 (młodszy bajt) i 3 (starszy bajt) - adres, pod jaki system operacyjny wczyta całość danych,
  • bajty 4 (młodszy bajt) i 5 (starszy bajt) - adres ponownego inicjowania programu w przypadku wciśnięcia klawisza RESET (wpisywany przez system do rejestru DOSINI lub CASINI),
  • bajt 6 i dalsze - procedura inicjalizacyjna.

Cały plik składa się ze 128-bajtowych rekordów (w przypadku programu ładowanego z kasety) lub sektorów (w przypadku gdy program ładowany jest z dyskietki).

Przebieg procedury uruchomienia programu

Po wczytaniu programu jest on inicjalizowany przez wywołanie procedury ulokowanej od adresu wczytywania plus sześć bajtów. Ponieważ maksymalna liczba rekordów z jakich może się składać program wynosi 256 (0 podane jako ilość rekordów), to jest to dobry punkt do umieszczenia procedury ładującej pozostałe rekordy w przypadku gdy program jest dłuższy. Procedura ta w procesie ładowania programu zostanie wykonana tylko raz.

Powrót z ustawionym znacznikiem C powoduje wypisanie błędu BOOT ERROR oraz ponowienie procedury BOOT w przypadku dysku, a jej zakończenie w przypadku magnetofonu (co w dalszej części procedury RESET skutkuje skokiem pod adres w DOSVEC ($000A), gdzie w początkowej fazie ustawiany jest adres SELF TEST-u).

Powrót z ze skasowanym znacznikiem C powoduje kontynuowanie procedury RESET, w tym ustawienie poprawnej wartości zmiennej BOOT? ($0009) i przepisanie adresu uruchomienia programu z czwartego i piątego bajtu nagłówka do wektora DOSINI ($000C), a w przypadku ładowania z kasety dodatkowo w CASINI ($0002), na końcu której następuje oddanie kontroli do programu przez skok pod ten właśnie adres.

Zobacz też


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools