BOOT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 19:26, 1 maj 2024
Mono (Dyskusja | wkład)
(Przebieg procedury uruchomienia programu - 256 rekordów)
← Previous diff
Wersja z dnia 19:35, 1 maj 2024
Mono (Dyskusja | wkład)
(Przebieg procedury uruchomienia programu - dlaczego nieudany boot ląduje w self teście)
Next diff →
Linia 15: Linia 15:
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. 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.
-Powrót z ustawionym znacznikiem C powoduje wypisanie błędu BOOT ERROR oraz ponowienie procedury BOOT w przypadku dysku, a wejście do SELF TEST-u w przypadku magnetofonu.+Powrót z ustawionym znacznikiem C powoduje wypisanie błędu BOOT ERROR oraz ponowienie procedury BOOT w przypadku dysku, a wyjście z procedury BOOT w przypadku magnetofonu (co skutkuje skokiem do procedury wskazywanej przez DOSVEC ($000A) w którym to jeszcze przed rozpoczęciem procedury BOOT ustawiany jest adres [[SELF TEST]]-u).
Powrót z procedury inicjalizacyjnej 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 CASINI ($0002) lub DOSINI ($000C), na końcu której następuje oddanie kontroli do programu przez skok pod ten właśnie adres. Powrót z procedury inicjalizacyjnej 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 CASINI ($0002) lub DOSINI ($000C), na końcu której następuje oddanie kontroli do programu przez skok pod ten właśnie adres.

Wersja z dnia 19:35, 1 maj 2024

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)

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.

Powrót z ustawionym znacznikiem C powoduje wypisanie błędu BOOT ERROR oraz ponowienie procedury BOOT w przypadku dysku, a wyjście z procedury BOOT w przypadku magnetofonu (co skutkuje skokiem do procedury wskazywanej przez DOSVEC ($000A) w którym to jeszcze przed rozpoczęciem procedury BOOT ustawiany jest adres SELF TEST-u).

Powrót z procedury inicjalizacyjnej 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 CASINI ($0002) lub DOSINI ($000C), na końcu której następuje oddanie kontroli do programu przez skok pod ten właśnie adres.


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

Personal tools