COM

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 13:31, 29 gru 2005
Piotrv (Dyskusja | wkład)
(Wstęp - dopisane "na czuja" - mogę się mylić)
← Previous diff
Wersja z dnia 15:30, 29 gru 2005
KMK (Dyskusja | wkład)

Next diff →
Linia 1: Linia 1:
== Wstęp == == Wstęp ==
-Pliki [[COM]] to pliki binarne, zwykle będące programami wykonywalnymi, przeznaczone do wczytania pod kontrolą ośmiobitowego systemu [[DOS]] dla Atari. Pliki te mają postać blokową, tzn. składają się z jednego, bądź więcej bloków, przy czym pierwszy z nich musi zaczynać się sygnaturą w postaci słowa $FFFF. Pozostałe bloki mogą zawierać tą sygnaturę, ale nie jest to warunek konieczny.+Plik [[COM]] to plik binarny, zwykle zawierający program wykonywalny dla ośmiobitowego Atari i przeznaczony do wczytania pod kontrolą [[DOS]] (lub [[inicjalizer|inicjalizera]]). Plik taki ma strukturę blokową, tzn. składa się z jednego, bądź więcej bloków, czy też segmentów, przy czym pierwszy z nich musi zaczynać się sygnaturą w postaci słowa $FFFF. Pozostałe bloki mogą zawierać tą sygnaturę, ale nie jest to warunek konieczny - wszystkie natomiast muszą zawierać nagłówek.
== Nagłówek == == Nagłówek ==

Wersja z dnia 15:30, 29 gru 2005

Spis treści

Wstęp

Plik COM to plik binarny, zwykle zawierający program wykonywalny dla ośmiobitowego Atari i przeznaczony do wczytania pod kontrolą DOS (lub inicjalizera). Plik taki ma strukturę blokową, tzn. składa się z jednego, bądź więcej bloków, czy też segmentów, przy czym pierwszy z nich musi zaczynać się sygnaturą w postaci słowa $FFFF. Pozostałe bloki mogą zawierać tą sygnaturę, ale nie jest to warunek konieczny - wszystkie natomiast muszą zawierać nagłówek.

Nagłówek

Każdy blok posiada nagłówek w postaci dwóch bądź trzech słów:

  1. sygnatura $FFFF (niezbędna przy pierwszym bloku, opcjonalna przy pozostałych),
  2. adres początku danych,
  3. adres końca.

Dane

Dane znajdują się bezpośrednio za nagłówkiem i wczytywane są w obszar pamięci wyznaczony przez adresy z nagłówka. Wyznaczają one również objętość ładowanych danych.

Obszary specjalne

W trakcie ładowania pliku binarnego słowa spod dwóch adresów w pamięci mają szczególne znaczenie:

  • INITAD $02E2 - jeśli zostało zmienione poprzez ostatnio wczytywany blok, traktowane jest jako adres procedury do wykonania bezpośrednio po wczytaniu tego bloku (powrót przez RTS),
  • RUNAD $02E0 - jeśli zostało zmienione przez którykolwiek z wczytywanych bloków, traktowane jest jako adres startowy od którego wykonywany zostanie program, po załadowaniu wszystkich bloków.


Jeśli słowo pod adresem $02E0 nie zostanie zmienione przez żaden z ładowanych bloków (bądź przez procedurę wykonywaną w wypadku stwierdzenia zmiany słowa $02E2), to nie ma ustalonego adresu, od którego należy wystartować załadowany plik binarny. Niektóre DOSy - jak DOS XL i SpartaDOS - w takim wypadku, uruchamiają program od początku pierwszego bloku.


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

Personal tools