The program converts from a human readable representation of binary code to the real thing. It ignores comments (both old and new style) and whitespace, in order to make it easier for a person to keep track of what information is being represented. Actual data can be represented as either numbers or as quoted strings. For example, ----------- 27 35 56 /* #8, to fill the screen with E's */ 27 "#8" /* the same thing */ // All the comments and whitespace get ignored. For hexadecimal, use $xxxx$, for binary use _xxxx_. For example, ----------- $1B$ "[7m" // [7m, to switch to inverse characters $1b5b376d$ // same thing _00011011010110110011011101101101_ // same thing More examples for illustrating details: --------------------------------------- _00011011 01011011 00110111 01101101_ // spaces allowed anywhere -1 255 $FF$ _11111111_ // all the same thing -300 // can't fit into 8 bits; uses 16 -70000 // can't fit into 16 bits; uses 32 // So how do we represent a 32 bit -1? $FFFFFFFF$ // or alternatively, -1 -1 -1 -1 "\"escape\" characters:\tallowed\n\0" // "escape" characters: allowed $3FF$ // same as $03FF$ _110101_ // same as 00110101 (N.B. leftover bits gravitate to left) // So what else is there to say? // // 1) no numeric escapes in string (other than \0) // 2) everything that doesn't fit into this passes through, but // don't rely on that. // The end // same as "Theend"