# A = 128 CLEAR A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A CLEAR D REPEAT A TIMES ( CLEAR I INCREASE I REPEAT D TIMES ( CLEAR I ) REPEAT I TIMES ( PRINT X ) REPEAT I TIMES ( CLEAR T CLEAR H # compute parity T and H in one pass over X REPEAT X TIMES ( CLEAR Z INCREASE Z REPEAT T TIMES ( CLEAR Z ) CLEAR T REPEAT Z TIMES ( INCREASE T ) CLEAR Z INCREASE Z REPEAT T TIMES ( CLEAR Z ) REPEAT Z TIMES ( INCREASE H ) ) # O := (X==1) = (H==0 and T==1) CLEAR O CLEAR Z INCREASE Z REPEAT H TIMES ( CLEAR Z ) REPEAT Z TIMES ( INCREASE O ) CLEAR Z INCREASE Z REPEAT T TIMES ( CLEAR Z ) REPEAT Z TIMES ( CLEAR O ) REPEAT O TIMES ( INCREASE D ) ) CLEAR I INCREASE I REPEAT D TIMES ( CLEAR I ) REPEAT I TIMES ( # even: X := H CLEAR Z INCREASE Z REPEAT T TIMES ( CLEAR Z ) REPEAT Z TIMES ( CLEAR X REPEAT H TIMES ( INCREASE X ) ) # odd: X := 3*X + 1 (fix: do NOT compress to (3X+1)/2) REPEAT T TIMES ( CLEAR F INCREASE F REPEAT X TIMES ( REPEAT F TIMES ( CLEAR X ) CLEAR F INCREASE X INCREASE X INCREASE X ) INCREASE X ) ) )