Atariware Wiki: Extensión XEX

https://www.atariware.cl/wiki     Versión: 25/09/2021 12:50
Archivo binario ejecutable de Atari de 8bits, consta de uno o más segmentos cuyo formato es el siguiente :

N° Bytes Descripción
00-01Indica que es un archivo de carga binario contiene los bytes $FF $FF. Obligatorio para el primer segmento, opcional para cualquier otro segmento
02-03Dirección de inicio. El segmento se cargará en esta dirección
04-05Dirección final. El último byte a cargar para este segmento
06-xxLos datos reales del segmento a cargar (Dirección final – Dirección inicial + 1 byte)

INITAD
Después de cargar cada segmento, si contiene las ubicaciones $02E2 y $02E3 se comprueba para ver si se llenó. Si es así, se llama a esa ubicación como subrutina antes de procesar cualquier otro segmento.

RUNAD
Después de cargar todos los segmentos, se verifican las ubicaciones $02E0 y $02E1 ya que estas contiene la dirección de memoria donde inicia el programa a ejecutar.
Si ninguna de estas direcciones de memoria está cargada, depende del cargador o DOS si el control se transfiere a los datos cargados, generalmente la dirección de inicio del primer o último segmento.

Los ejecutables Atari pueden tener prácticamente cualquier extensión, pero XEX, EXE o COM son las más comunes.

Ejemplo :
Usando la utilidad xex-filter del amigo Víctor Parada :
xex-filter.pl Kaboom.xex
Analyzing "Kaboom.xex"...
  -: 65535       [$FFFF]         BINHEAD
  1: 40960-45055 [$A000-$AFFF]   (4096) CARTA <- CODE/DATA
  2: 49146-49151 [$BFFA-$BFFF]   (6) <- CODE/DATA
  3: 38400-38451 [$9600-$9633]   (52) <- CODE/DATA
  4: 736-737     [$02E0-$02E1]   (2) RUNAD -> 38400 [$9600]