Mazes, Patterns, and Textiles Notes
From Maze
Here's a 103 byte C64 demo (done in assembly, of course):
http://www.pouet.net/prod.php?which=52548
And two that are 64 bytes each:
http://www.pouet.net/prod.php?which=30887 http://www.pouet.net/prod.php?which=30008
None of this is as elite as Ian's 46-character implementation of "10 PRINT CHR$(109+RND(1)*2);:GOTO 10" of course.
I moved the algorithm behind 10 PRINT CHR$(109+RND(1)*2); : GOTO 10 from its platform to explore the visual design space with more flexibility.
The quick result is posted here, with source (requires java in browser): http://reas.com/rnd/
10 print chr$(109+rnd(1)*2); : goto 10
little endian
init xor mask CF in mem loc 9 to 16
init seed to A1 (arbitrary) in mem loc 0 to 7
$ \ / / \ + } } } } } + } } + } } + } + } + } + } } } + } + \ / /
init mem loc 17 to 47 (ascii)
\ } +++++++++++++++++++++++++++++++++++++++++++++++ \ / /
int mem loc 18 to 92 (ascii)
\ } ++++++++++++++++++++++++++++++ \
/ ++++++++++++++++++++++++++++++ / \ ++++++++++++++++++++++++++++++++ \
/ {{{{{{{{{{{{{{{{{{ /
8 bit maximmum cycle (hence the CF xor mask) LFSR pseudo random number generator (same one Ian used in assembly)
left shift 0 to 7 (little endian, so shift right) carry bit = mem loc 8 ! / \
/ - { \ / - { \ / - { \ / - { \
\} } } } } } } v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ \
{ { { {
\ } ^ + { / \ } ^ + { / \ } ^ + { / \ } ^ + { /
/ /
/ - { \ / - { \ / - { \ / - { \
\ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ v !/ \
{ { { { \ - /
\ } ^ + { / \ } ^ + { / \ } ^ + { / \ } ^ + { /
xor current rand with CF if carry = 0 / {{{{{{{{ v }}}}}}}} /
\ {{{{{{{{ \
xor bank: xor bits 0 to 7 with bits 9 to 16 modify 0 to 7
bits 0 9 bits 1 10
/+ \ /+ { \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ v }}}}}}}}} ^ !/ {{{{{{{{{ !\ !/ } v }}}}}}}}} ^ !/ {{{{{{{{{{ !\ !/ \
/- / /- { /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ / bits 2 11 bits 3 12
/+ {{ \ /+ {{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }} v }}}}}}}}} ^ !/ {{{{{{{{{{{ !\ !/ }}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{ !\ !/ \
/- {{ / /- {{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ / bits 4 13 bits 5 14
/+ {{{{ \ /+ {{{{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{ !\ !/ }}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{ !\ !/ \
/- {{{{ / /- {{{{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ / bits 6 15 bits 7 16
/+ {{{{{{ \ /+ {{{{{{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \ !
\ }}}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{{ !\ !/ }}}}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{{{ !\ !/ \
/- {{{{{{ / /- {{{{{{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
End of 8 bit LFSR RNG
print ascii 47 if bit 8 is 0 else print ascii 92 / / \ }}}}}}}} v }}}}}}}}} . !/ {{{{{{{{{{{{{{{{{ /
\ }}}}}}}}}} . { /10 print chr$(109+rnd(1)*2); : goto 10
$ \ / / \ + } } } } } + } } + } } + } + } + } + } } } + } + \ / / \ } +++++++++++++++++++++++++++++++++++++++++++++++ \ / / \ } ++++++++++++++++++++++++++++++ \
/ ++++++++++++++++++++++++++++++ / \ ++++++++++++++++++++++++++++++++ \
/ {{{{{{{{{{{{{{{{{{ / ! / \
/ - { \ / - { \ / - { \ / - { \
\} } } } } } } v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ \
{ { { {
\ } ^ + { / \ } ^ + { / \ } ^ + { / \ } ^ + { /
/ /
/ - { \ / - { \ / - { \ / - { \
\ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ { v }^ { !/ !\ !/ v !/ \
{ { { { \ - /
\ } ^ + { / \ } ^ + { / \ } ^ + { / \ } ^ + { /
/ {{{{{{{{ v }}}}}}}} /
\ {{{{{{{{ \
/+ \ /+ { \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ v }}}}}}}}} ^ !/ {{{{{{{{{ !\ !/ } v }}}}}}}}} ^ !/ {{{{{{{{{{ !\ !/ \
/- / /- { /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ /
/+ {{ \ /+ {{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }} v }}}}}}}}} ^ !/ {{{{{{{{{{{ !\ !/ }}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{ !\ !/ \
/- {{ / /- {{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ /
/+ {{{{ \ /+ {{{{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{ !\ !/ }}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{ !\ !/ \
/- {{{{ / /- {{{{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ /
/+ {{{{{{ \ /+ {{{{{{{ \
\{{{{{{{{{ \ \{{{{{{{{{ \ !
\ }}}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{{ !\ !/ }}}}}}} v }}}}}}}}} ^ !/ {{{{{{{{{{{{{{{{ !\ !/ \
/- {{{{{{ / /- {{{{{{{ /
\{{{{{{{{{ \ \{{{{{{{{{ \
\ }}}}}}}}} ^ / \ }}}}}}}}} ^ /
/ / \ }}}}}}}} v }}}}}}}}} . !/ {{{{{{{{{{{{{{{{{ /
\ }}}}}}}}}} . { /\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\//\\///////\\/\\\/\//\///\\\\\\/////\\\/\/\//\\/\/\\////\\///\\/\////\\\\///\\\//\\\\/\\\//\//\\//\\/\\/\\\\//\/\/\\\/\\\\\\\\/\\/\//\\\////\/\/\//////\/\\//\\\/\\//\/////\////\//\\\\\/\/\\\\/\///\/\//\/\\\///\///\//\//\/\///\\//\/\\/\/\/\/\\/\\///\/\\\\\/_______________________________________________
The output of 10 print is a path program, just one that only moves the program counter around, doing no other work.
Right, but as I noted earlier, it's a Path' program where Path' is a
modified version of Path that prepends $ to a program automatically before
processing it and uses PETSCII 109 and 110 instead of / and \.
Except not really, because the output of 10 print is NOT / and \ but PETSCII characters that look similar to those but which are different.
Ian, Path-prime is a nice term. A succinct recap: 10 print outputs
executable Path-prime programs, whose operations are a kind of
performance of the maze-like wandering that we see implicit in 10
print. This is one response to the argument that 10 print does not
informatically specify a maze-like texture, with a demonstration being
that replacing the PETSCII characters with Ps and Qs, causing our
perception of it to suddenly change. Path retorts that it threads
the labyrinth of Ps and Qs all the same.
What I love about Michael's Path version of 10 print is that it closes the loop -- it isn't a quine, or elegant in the way that a one-liner is elegant, but instead it uses a program with characters that are visual metaphors texture as visual
