[HN Gopher] Show HN: Smile - executable ASCII art (2011 remastered)
       ___________________________________________________________________
        
       Show HN: Smile - executable ASCII art (2011 remastered)
        
       Author : pickledcods
       Score  : 15 points
       Date   : 2021-02-13 19:07 UTC (3 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | jstrieb wrote:
       | This is cool! It reminds me of a paper I read in 2017 in which
       | the author creates a C89 compiler that compiles to printable
       | ASCII by using similarly limited instructions.
       | 
       | http://tom7.org/abc/
        
         | pickledcods wrote:
         | ASCII executables have been made in the past and use any
         | displayable ASCII character. The difference with those is that
         | this project is exclusively alphanumeric. To my knowledge that
         | is a first.
        
       | pickledcods wrote:
       | Hi HN!
       | 
       | When ASCII art is the executable....
       | 
       | Executables consisting exclusively of alpha-numeric characters.
       | The digits "0123456789" are used for dark, the letters
       | "acemnorsuvwxz" for light.
       | 
       | Removing instructions that are not alpha-numerical, strips
       | functionality down to the minimum:                 - 4.5 of the 7
       | registers available (%bx, %si, %di, %bp, %ah)       - 4 of the
       | ~80 instructions groups available (XOR,IMUL,CMP,Jcc)       -
       | constant values start from 48, (only range 0x30-0x39,0x61-0x79)
       | 
       | By cosmic coincidence, the 2 instructions needed to jailbreak are
       | available. On top of that, self-modifying code and radix13
       | encoding.
       | 
       | This should have been released a decade ago. As compensation, it
       | has been remastered. The reward was making it 30% smaller.
        
       ___________________________________________________________________
       (page generated 2021-02-13 23:00 UTC)