XEXAMINE(1)

NAME
xexamine - Show information on Atari 8-bit executables (XEX)

SYNOPSIS

xexamine [ [-h] | [ [-v] [-d] [-s segment] xexfile ... ]

DESCRIPTION

xexamine reads Atari 8-bit executables (.xex files) and prints the following information on each segment in each file:

Segment number within the file (in decimal, first segment is #1).

Offset in bytes from the start of the file (in decimal).

Start and end addresses (in hex by default).

Length in bytes (in decimal).

CRC32 checksum of the segment's data (in hex).

Segment type: If the segment is a run address (loads at RUNAD) or an init address (loads at INITAD), the type is "Run" or "Init", with the actual run or init address, in hex by default.

Otherwise, the percentage of the segment that contains valid 6502 object code is printed. This is an estimate based on static analysis and some heuristics, and as such, isn't 100% accurate.

OPTIONS

-d  Show addresses in decimal.

-s segment-number
    Only show information on one segment. Segments are numbered starting at one.

-h  Print a short help message and exit.

-v  Verbose operation.

NOTES

Currently, xexamine only works with .xex files. If you have a cartridge image as a .car file, you can use xex2cart to make a .xex from it (if it's a non-bankswitched cart, anyway). If you have a raw chunk of object code, you can use blob2xex to make a .xex file from it.

The code-detection could be smarter, and probably will be pretty soon. Static analysis will never be 100% perfect, but the heuristics could be improved (e.g. by using something like Markov chain or Bayesian analysis).

The CRC32 sum is handy for comparing different releases of the same program. Example would be a game that was cracked more than once by different cracking groups, and each crack has a different title screen. Often, the 2nd or some further segment contains the actual code/data, and is identical.

EXIT STATUS

Exit status is zero if all xexfiles are valid Atari .xex files, non-zero otherwise.

When processing multiple files, xexamine exits if there's an error reading one of the files; any files after that on the command line are not processed.

COPYRIGHT

WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

AUTHOR

B.  Watson <urchlay@slackware.uk>; Urchlay on irc.libera.chat ##atari.

SEE ALSO

a8cat(1), a8eol(1), a8xd(1), atr2xfd(1), atrsize(1), axe(1), bas2aplus(1), blob2c(1), blob2xex(1), cart2xex(1), cxrefbas(1), dasm2atasm(1), diffbas(1), dumpbas(1), f2toxex(1), fenders(1), listbas(1), listamsb(1), protbas(1), renumbas(1), rom2cart(1), unmac65(1), unprotbas(1), vxrefbas(1), whichbas(1), xex1to2(1), xexamine(1), xexcat(1), xexsplit(1), xfd2atr(1), xex(5), atascii(7), fauxtari(7).

Any good Atari 8-bit book: De Re Atari, The Atari BASIC Reference Manual, the OS Users' Guide, Mapping the Atari, etc.