COM

From Atariki

Revision as of 17:49, 11 gru 2020; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

COM to format pliku zawierającego pliki wykonywalne dla ośmiobitowego Atari. Pliki o tym formacie występują też z rozszerzeniami EXE (głównie na Atari), oraz XEX (głównie do użycia w emulatorach). W wyniku niepełnej standaryzacji zamiennie stosuje się rozszerzenia .COM i .EXE, choć pierwotnie zakładano rozszerzenie .COM (command) dla plików rozszerzeń przeznaczonych dla procesora komend DOS-u oraz .EXE jako plików wykonywalnych (executable) czyli właściwych (użytkowych) programów.

Rozszerzenie .XEX zostało pierwszy raz użyte w emulatorze Atari800Win PLus w celu odróżnienia plików wykonywalnych Atari od plików wykonywalnych Windows. Pomysłodawcą .XEX jest Eru, a można je rozwinąć jako "XE eXecutable".

Spis treści

Format standardowy

Plik COM to standardowy plik binarny DOSu.

Standardowy format nie przewiduje automatycznej relokacji kodu, nagłówek dosłownie wskazuje adresy, pod które należy wczytać dane zawarte w bloku (segmencie). Relokowalne binaria ma tylko SpartaDOS X.

Formaty niestandardowe

XL OS

XL OS zawiera własny loader i relokator binariów nazwanych umownie ACX.

SpartaDOS X

SpartaDOS X definiuje, jak wspomniano powyżej, format relokowalnych binariów. Są w nim zapisane załączone do DOS-u procedury systemowe i większość programów narzędziowych. Opcję tworzenia takich binariów mają m.in.: Fast Assembler, HCASM oraz MADS. Segmenty tych binariów mają - w zależności od funkcji - następujące sygnatury:

  • .word $FFFA ($FA,$FF) - blok nierelokowalny, ładowany pod wskazany w nagłówku adres (identycznie jak w przypadku bloku o sygnaturze $FFFF); na ogół zawiera nierezydentny (instalacyjny) segment jakiegoś sterownika.
  • .word $FFFE ($FE,$FF) - blok relokowalny, ładowany nad MEMLO lub do dodatkowej pamięci, w zależności od zawartości nagłówka (blok może takźe rezerwować pusty obszar pamięci).
  • .word $FFFD ($FD,$FF) - blok określający położenie adresów w programie, używany przy relokacji.
  • .word $FFFB ($FB,$FF) - blok określający położenie odwołań do symboli zewnętrznych.
  • .word $FFFC ($FC,$FF) - blok definicji symbolu.

OSS

Firmowy program zawierający rozszerzenia dla BASIC XE istnieje w postaci pliku z rozszerzeniem "OSS". Jest to zwykły plik binarny Atari DOS-u, w którym sygnatura została zmieniona na wartość .word $DDFF ($FF,$DD).

AlfAssembler

AlfAssembler definiuje format binarny funkcjonalnie identyczny ze standardowym, ale rozszerzony na całą przestrzeń adresową 65C816. Nagłówek ma osiem bajtów: po sygnaturze $FBFB nastepuje 24-bitowy adres poczatku bloku, a po nim 24-bitowy adres końca bloku.

COS + NCOPY

COS w trakcie ładowania programu z taśmy pozwala na wyświetlenie jego nazwy nadanej podczas kopiowania przy pomocy programu Name Copy. Blok nazwy jest zwykłym blokiem binarnym ładowanym w obszar $1C0-$1CE:

  • $00-$07: nazwa pliku w kodach ATASCII,
  • $08-$0A: rozszerzenie pliku w kodach ATASCII,
  • $0B: spacja ($20)
  • $0C-$0E: długość pliku wyrażona w 128-bajtowych blokach również zapisana kodami ATASCII.

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

Personal tools