BOOT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:01, 30 kwi 2024
Mono (Dyskusja | wkład)
(źle opisany schemat inicjalizacji i oddania kontroli do programu)
← Previous diff
Wersja z dnia 10:09, 30 kwi 2024
Mono (Dyskusja | wkład)
(ilość bloków boot i loader)
Next diff →
Linia 11: Linia 11:
* 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) * 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)
-Po wczytaniu programu jest on inicjalizowany przez wywołanie procedury ulokowanej od adresu wczytywania plus sześć bajtów. 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.+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 255, 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 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.
{{stub}} {{stub}}
[[Kategoria:Formaty plików]] [[Kategoria:Formaty plików]]

Wersja z dnia 10:09, 30 kwi 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)

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 255, 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 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