1: === Initialize Cells === 2: ==== Set the initial state to an RLE compressed stream 3: +>+>+>+>+>+>+>+>+>+<<<<<<<<<[+++++++++++++++++++++++++++++++++++>]++++++++ 4: ++<<<<<<<<<<------------------------------------>------------------------- 5: ----------->------------------------------------>------------------------- 6: ->--->------>------------------------------------>++++++++++++++++++++++++ 7: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>++++++++++++ 8: +++++++++++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++ 9: ++++++++++++++++> 10: 11: === RLE Decompressor === 12: ==== Assumes compressed data is on the buffer starting at the current 13: ==== pointer and moving backwards; Format of the RLE compression is: 14: ==== { 'c'; n; marker==0 } for a run 15: ==== 'c' for a single charectar 16: ==== Remember that it is processed backward; 17: ==== Example: 18: ==== { 0; 0; 0; '\n'; '!'; 30; 0; 'y'; 'e'; 'H' } 19: [<[.<]<[-<.>]<] |