@nosty: Samo Atari po uruchomieniu przeprowadza procedurę boot, a więc ładuje n pierwszych sektorów z pierwszego dysku pod wskazany w nagłówku boot (1 sektor dysku) adres, po czym przeprowadza inicjalizację oraz uruchomienie wczytanego programu. Niestety format boot nie jest równoważny formatowi xex (plikowi binarnemu), bo pliki binarne są obsługiwane przez DOSa a nie przez OS.
Jeśli bootujesz xexa z SIO2SD, wtedy SIO2SD tworzy w locie "dyskietkę" z bootloaderem i dołącza Twojego xex, którego tenże bootloader potrafi załadować i uruchomić tak, jak DOS.
Ponieważ bootloader działa takich zasadach jak każdy inny program w systemie, to może używać jakichś komórek na stronie zerowej. No i stąd lepiej je zainicjalizować w programie, niż za pomocą struktur pliku binarnego. Osobiście nie lubię też wpisywania wartości do rejestrów IO lub zmiennych systemowych za pomocą bloków pliku binarnego.
Edit: Doprecyzowania artka z Atariki wymaga tylko to, że po załadowaniu wszystkich bloków programu procedura boot skacze pod adres ładowania danych+6 gdzie powinna znaleźć się procedura inicjalizacji zakończona rts'em. Procedura ta wykonuje się tylko raz i to podczas boota więc nie powinna być punktem wejścia do Twojego programu (zazwyczaj znajduje się tu sekwencja CLC; RTS, lub też, ponieważ procedura bootująca może załadować tylko 256 sektorów, program doładowujący dodatkową część programu poprzez SIO). Słowo spod adresu ładowania +4 przepisywane jest do DOSINI lub CASINI (zależnie od rodzaju boota) po czym procedura RESET (której boot jest częścią) biegnie sobie dalej. Na samym końcu wykonywany jest skok do DOSINI/CASINI (zależnie od BOOT?) i to jest faktyczny punkt wejścia do programu.