[ 0 ] is NOP ( --> n ) [ 1 ] is LDA ( --> n ) [ 2 ] is STA ( --> n ) [ 3 ] is ADD ( --> n ) [ 4 ] is SUB ( --> n ) [ 5 ] is BRZ ( --> n ) [ 6 ] is JMP ( --> n ) [ 7 ] is STP ( --> n ) [ 0 ] is DATA ( --> n ) [ 0 ] is -- ( --> n ) [ stack 0 ] is acc ( --> s ) [ stack 0 ] is ip ( --> s ) [ stack false ] is flag ( --> n ) [ 0 ip replace 0 32 of ] is computer/zero ( --> [ ) [ 255 & swap 5 << | swap ip share poke 1 ip tally ] is , ( [ --> [ ) [ drop ] is nop ( [ n --> [ ) [ dip dup peek acc replace ] is lda ( [ n --> [ ) [ acc share unrot poke ] is sta ( [ n --> [ ) [ dip dup peek acc take + 255 & acc put ] is add ( [ n --> [ ) [ dip dup peek negate acc take + 255 & acc put ] is sub ( [ n --> [ ) [ acc share iff drop done ip replace ] is brz ( [ n --> [ ) [ ip replace ] is jmp ( [ n --> [ ) [ drop true flag replace ] is stp ( [ n --> [ ) [ false flag replace 0 acc replace 0 ip replace [ dup ip share peek 1 ip tally dup 31 & swap 5 >> [ table nop lda sta add sub brz jmp stp ] do flag share until ] drop acc share say "acc = " dup echo dup 128 & iff [ say " or " 127 ~ | echo ] else drop cr ] is execute ( [ --> ) cr say " 2+2: " computer/zero ( 00 ) LDA 03 , ( 01 ) ADD 04 , ( 02 ) STP -- , ( 03 ) DATA 2 , ( 04 ) DATA 2 , execute cr say " 7*8: " computer/zero ( 00 ) LDA 12 , ( 01 ) ADD 10 , ( 02 ) STA 12 , ( 03 ) LDA 11 , ( 04 ) SUB 13 , ( 05 ) STA 11 , ( 06 ) BRZ 08 , ( 07 ) JMP 00 , ( 08 ) LDA 12 , ( 09 ) STP -- , ( 10 ) DATA 8 , ( 11 ) DATA 7 , ( 12 ) DATA 0 , ( 13 ) DATA 1 , execute cr say " Fibonacci: " computer/zero ( 00 ) LDA 14 , ( 01 ) STA 15 , ( 02 ) ADD 13 , ( 03 ) STA 14 , ( 04 ) LDA 15 , ( 05 ) STA 13 , ( 06 ) LDA 16 , ( 07 ) SUB 17 , ( 08 ) BRZ 11 , ( 09 ) STA 16 , ( 10 ) JMP 00 , ( 11 ) LDA 14 , ( 12 ) STP -- , ( 13 ) DATA 1 , ( 14 ) DATA 1 , ( 15 ) DATA 0 , ( 16 ) DATA 8 , ( 17 ) DATA 1 , execute cr say "linked list: " computer/zero ( 00 ) LDA 13 , ( 01 ) ADD 15 , ( 02 ) STA 05 , ( 03 ) ADD 16 , ( 04 ) STA 07 , ( 05 ) NOP -- , ( 06 ) STA 14 , ( 07 ) NOP -- , ( 08 ) BRZ 11 , ( 09 ) STA 15 , ( 10 ) JMP 00 , ( 11 ) LDA 14 , ( 12 ) STP -- , ( 13 ) LDA 00 , ( 14 ) DATA 0 , ( 15 ) DATA 28 , ( 16 ) DATA 1 , ( 17 ) DATA 0 , ( 18 ) DATA 0 , ( 19 ) DATA 0 , ( 20 ) DATA 6 , ( 21 ) DATA 0 , ( 22 ) DATA 2 , ( 23 ) DATA 26 , ( 24 ) DATA 5 , ( 25 ) DATA 20 , ( 26 ) DATA 3 , ( 27 ) DATA 30 , ( 28 ) DATA 1 , ( 29 ) DATA 22 , ( 30 ) DATA 4 , ( 31 ) DATA 24 , execute cr say " prisoner: " computer/zero ( 00 ) NOP -- , ( 01 ) NOP -- , ( 02 ) STP -- , ( 03 ) NOP -- , ( 04 ) LDA 03 , ( 05 ) SUB 29 , ( 06 ) BRZ 18 , ( 07 ) LDA 03 , ( 08 ) STA 29 , ( 09 ) BRZ 14 , ( 10 ) LDA 01 , ( 11 ) ADD 31 , ( 12 ) STA 01 , ( 13 ) JMP 02 , ( 14 ) LDA 00 , ( 15 ) ADD 31 , ( 16 ) STA 00 , ( 17 ) JMP 02 , ( 18 ) LDA 03 , ( 19 ) STA 29 , ( 20 ) LDA 01 , ( 21 ) ADD 30 , ( 22 ) ADD 03 , ( 23 ) STA 01 , ( 24 ) LDA 00 , ( 25 ) ADD 30 , ( 26 ) ADD 03 , ( 27 ) STA 01 , ( 28 ) JMP 02 , ( 29 ) DATA 0 , ( 30 ) DATA 1 , ( 31 ) DATA 3 , execute