COM

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 14:35, 11 lis 2005
Jellonek (Dyskusja | wkład)
(Wstęp)
← Previous diff
Wersja z dnia 13:31, 29 gru 2005
Piotrv (Dyskusja | wkład)
(Wstęp - dopisane "na czuja" - mogę się mylić)
Next diff →
Linia 1: Linia 1:
== Wstęp == == Wstęp ==
-Pliki binarne ośmiobitowego Atari 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.+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.
== Nagłówek == == Nagłówek ==

Wersja z dnia 13:31, 29 gru 2005

Spis treści

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.

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