COM

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 17:28, 11 gru 2020
Mono (Dyskusja | wkład)
(rozszerzenie COS+NCOPY)
← Previous diff
Wersja z dnia 17:49, 11 gru 2020
Mono (Dyskusja | wkład)
(COS + NCOPY - link do Name Copy)
Next diff →
Linia 34: Linia 34:
=== COS + NCOPY === === COS + NCOPY ===
-[[COS]] w trakcie ładowania programu z taśmy pozwala na wyświetlenie jego nazwy nadanej podczas kopiowania przy pomocy programu [[NCOPY]]. Blok nazwy jest zwykłym blokiem binarnym ładowanym w obszar $1C0-$1CE:+[[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]], * $00-$07: nazwa pliku w kodach [[ATASCII]],

Wersja z dnia 17:49, 11 gru 2020

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

[schowaj]

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