Start page: ARABART home

Every Byte

All 17 of his program files, one square for every byte. Zoom from the whole archive down to a single instruction he wrote.

HOW TO READ THE MAP

How to read the map

  1. One square, one byte. The 17 files hold 698,959 bytes. Each block is one file, so a bigger block is a bigger program.
  2. Color says what it is. code, text, data, Borland’s library, the header DOS reads first.
  3. Two layers. On disk is each file as it shipped, packed by DIET into 295,919 bytes. In memory is the program after it unpacks itself: what the processor ran.
  4. Zoom and tap. Close up, the bytes show as hex, then as instructions. Tap any part to read what it is and who made it.
EVERY.BYT 17 files

This map draws with WebGL 2, which is switched off in this browser. The map on each program’s page works everywhere.

For engineers: how this map was made

On disk comes from the unpacker at work. Each packed file ran inside a CPU emulator with its own DIET unpacker, and every byte it read was tagged by the instruction that read it. One instruction reads the control bits, one copies a stored byte (a literal), one reads a copy instruction, and the bytes it runs are DIET’s own code.

In memory is the unpacked program. Every file has a map of its parts written from its own bytes: the header, the list of fix-ups, his code, Borland’s library, text, pictures, fonts and tables. At the Code level every instruction is decoded from the bytes, starting at the entry point.

Personal phone numbers and a P.O. box in KVC and SUN are blanked in both layers, including the packed bytes that would rebuild them.