From cdfe94135fe8ab1f407bb5e09c3cea93ec300469 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 6 Jul 2022 22:19:46 -0500 Subject: Fix examples --- examples/add2.tf | 441 ++++--------------------------------------------------- 1 file changed, 27 insertions(+), 414 deletions(-) (limited to 'examples/add2.tf') diff --git a/examples/add2.tf b/examples/add2.tf index 3c1529b..bdb0ddf 100644 --- a/examples/add2.tf +++ b/examples/add2.tf @@ -5,7 +5,7 @@ from https://en.wikipedia.org/wiki/Brainfuck#Adding_two_values ALL ABOARD -chug chug +chug chug END OF THE LINE Cell c0 = 2 @@ -13,15 +13,15 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chug chug chug chug chug +chug chug chug chug chug END OF THE LINE Cell c1 = 5 ALL ABOARD -tickets please +tickets please END OF THE LINE Start your loops with your cell pointer on the loop counter (c1 in our case) @@ -29,9 +29,9 @@ ALL ABOARD choo choo END OF THE LINE - + ALL ABOARD -chug +chug END OF THE LINE Add 1 to c0 @@ -39,14 +39,14 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chugga +chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD -your ticket please +your ticket please END OF THE LINE End your loops with the cell pointer on the loop counter @@ -58,26 +58,26 @@ We use a loop to compute 48 = 6 * 8 ALL ABOARD -chug chug chug chug +chug chug chug chug END OF THE LINE - + ALL ABOARD -chug chug chug chug +chug chug chug chug END OF THE LINE c1 = 8 and this will be our loop counter again ALL ABOARD -tickets please +tickets please choo choo END OF THE LINE - + ALL ABOARD -chug chug chug +chug chug chug END OF THE LINE - + ALL ABOARD -chug chug chug +chug chug chug END OF THE LINE Add 6 to c0 @@ -85,416 +85,29 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chugga +chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD -your ticket please +your ticket please choo choo END OF THE LINE - + ALL ABOARD -click +click END OF THE LINE Print out c0 which has the value 55 which translates to "7"! Finally print a newline: ALL ABOARD -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga click - This program prints "Hello World!" and a newline to the screen, its -length is 106 active command characters. [It is not the shortest.] - -This loop is an "initial comment loop", a simple way of adding a comment -to a BF program such that you don't have to worry about any command -characters. Any ".", ",", "+", "-", "<" and ">" characters are simply -ignored, the "[" and "]" characters just have to be balanced. This -loop and the commands it contains are ignored because the current cell -defaults to a value of 0; the 0 value causes this loop to be skipped. - -from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! - - -ALL ABOARD -chug chug chug chug chug chug chug chug -END OF THE LINE - Set Cell #0 to 8 - -ALL ABOARD -tickets please -choo -chug chug chug chug -END OF THE LINE - Add 4 to Cell #1; this will always set Cell #1 to 4 - -ALL ABOARD -tickets please -END OF THE LINE - as the cell will be cleared by the loop - -ALL ABOARD -choo -chug chug -END OF THE LINE - Add 2 to Cell #2 - -ALL ABOARD -choo -chug chug chug -END OF THE LINE - Add 3 to Cell #3 - -ALL ABOARD -choo -chug chug chug -END OF THE LINE - Add 3 to Cell #4 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #5 - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrement the loop counter in Cell #1 - -ALL ABOARD -your ticket please -END OF THE LINE - Loop until Cell #1 is zero; number of iterations is 4 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #2 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #3 - -ALL ABOARD -choo -chugga -END OF THE LINE - Subtract 1 from Cell #4 - -ALL ABOARD -choo -choo -chug -END OF THE LINE - Add 1 to Cell #6 - -ALL ABOARD -tickets please choo choo -your ticket please -END OF THE LINE - Move back to the first zero cell you find; this will - be Cell #1 which was cleared by the previous loop - -ALL ABOARD -choo choo -chugga -END OF THE LINE - Decrement the loop Counter in Cell #0 - -ALL ABOARD -your ticket please -END OF THE LINE - Loop until Cell #0 is zero; number of iterations is 8 - -The result of this is: -Cell no : 0 1 2 3 4 5 6 -Contents: 0 0 72 104 88 32 8 -Pointer : ^ - - -ALL ABOARD -choo -choo -click -END OF THE LINE - Cell #2 has value 72 which is 'H' - -ALL ABOARD -choo -chugga chugga chugga click -END OF THE LINE - Subtract 3 from Cell #3 to get 101 which is 'e' - -ALL ABOARD -chug chug chug chug chug chug chug clickety click chug chug chug click - -END OF THE LINE - Likewise for 'llo' from Cell #3 - -ALL ABOARD -choo -choo -click -END OF THE LINE - Cell #5 is 32 for the space - -ALL ABOARD -choo choo -chugga clickety -END OF THE LINE - Subtract 1 from Cell #4 for 87 to give a 'W' - -ALL ABOARD -choo choo -clickety -END OF THE LINE - Cell #3 was set to 'o' from the end of 'Hello' - -ALL ABOARD -chug chug chug click chugga chugga chugga chugga chugga chugga clickety -chugga chugga chugga chugga chugga chugga chugga chugga click -END OF THE LINE - Cell #3 for 'rl' and 'd' - -ALL ABOARD -choo -choo -chug click -END OF THE LINE - Add 1 to Cell #5 gives us an exclamation point - -ALL ABOARD -choo -chug chug click -END OF THE LINE - And finally a newline from Cell #6 - ROT13 in Brainfuck -from https://en.wikipedia.org/wiki/Brainfuck#ROT13 - - - - -ALL ABOARD -chugga clack chug tickets please -END OF THE LINE - Read first character and start outer character reading loop - -ALL ABOARD -chugga tickets please -END OF THE LINE - Skip forward if character is 0 - -ALL ABOARD -choo -choo -chug chug chug chug tickets please choo -chug chug chug chug chug chug chug chug -choo choo -chugga your ticket please -END OF THE LINE - Set up divisor (32) for division loop -(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) - -ALL ABOARD -choo choo -chug choo choo -chugga tickets please -END OF THE LINE - Set up dividend (x minus 1) and enter division loop - -ALL ABOARD -choo -chug choo -chug choo -chugga tickets please choo -choo -choo -your ticket please -END OF THE LINE - Increase copy and remainder / reduce divisor / Normal case: skip forward - -ALL ABOARD -choo choo -tickets please tickets please choo -chug choo choo -chugga your ticket please choo -choo -chug choo -your ticket please - -END OF THE LINE - Special case: move remainder back to divisor and increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrement dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -your ticket please choo -choo -choo -tickets please chugga your ticket please chug -END OF THE LINE - End skip loop; zero former divisor and reuse space for a flag - -ALL ABOARD -choo -chugga chugga tickets please chugga tickets please choo choo -chugga choo -chug chug chug -tickets please chugga your ticket please your ticket please your ticket please -choo choo -tickets please -END OF THE LINE - Zero that flag unless quotient was 2 or 3; zero quotient; check flag - -ALL ABOARD -chug chug chug chug chug chug chug chug chug chug chug chug choo choo -tickets please - -END OF THE LINE - If flag then set up divisor (13) for second division loop -(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) - -ALL ABOARD -choo -chugga tickets please choo -chug choo -choo -your ticket please -END OF THE LINE - Reduce divisor; Normal case: increase remainder - -ALL ABOARD -choo -tickets please chug tickets please choo choo -chug choo -chugga your ticket please choo -chug -choo -choo -your ticket please -END OF THE LINE - Special case: increase remainder / move it back to divisor / increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrease dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -choo -choo -tickets please choo choo -chug choo -chugga your ticket please -END OF THE LINE - Add remainder back to divisor to get a useful 13 - -ALL ABOARD -choo -tickets please -END OF THE LINE - Skip forward if quotient was 0 - -ALL ABOARD -chugga tickets please -END OF THE LINE - Decrement quotient and skip forward if quotient was 1 - -ALL ABOARD -chugga choo choo -choo choo -tickets please chugga your ticket please choo -choo - -END OF THE LINE - Zero quotient and divisor if quotient was 2 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chugga choo -choo -chugga your ticket please choo -choo - -END OF THE LINE - Zero divisor and subtract 13 from copy if quotient was 1 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chug choo -choo -chugga your ticket please -END OF THE LINE - Zero divisor and add 13 to copy if quotient was 0 - -ALL ABOARD -your ticket please -END OF THE LINE - End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) - -ALL ABOARD -choo choo -tickets please chugga your ticket please -END OF THE LINE - Clear remainder from first division if second division was skipped - -ALL ABOARD -choo choo -click tickets please chugga your ticket please -END OF THE LINE - Output ROT13ed character from copy and clear it - -ALL ABOARD -choo choo -chugga clack chug -END OF THE LINE - Read next character - -ALL ABOARD -your ticket please +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga click END OF THE LINE - End character reading loop -- cgit 1.4.1-21-gabe81