# ABCDE FGHIJ KLMNO PQRST big-endian bits # UVWXYZ for other stuff # U carry bit # V if else # Convert to binary REPEAT X TIMES ( INCREASE V REPEAT A TIMES ( CLEAR A INCREASE U CLEAR V ) REPEAT V TIMES ( INCREASE A CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT B TIMES ( CLEAR B CLEAR V ) REPEAT V TIMES ( INCREASE B CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT C TIMES ( CLEAR C CLEAR V ) REPEAT V TIMES ( INCREASE C CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT D TIMES ( CLEAR D CLEAR V ) REPEAT V TIMES ( INCREASE D CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT E TIMES ( CLEAR E CLEAR V ) REPEAT V TIMES ( INCREASE E CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT F TIMES ( CLEAR F CLEAR V ) REPEAT V TIMES ( INCREASE F CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT G TIMES ( CLEAR G CLEAR V ) REPEAT V TIMES ( INCREASE G CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT H TIMES ( CLEAR H CLEAR V ) REPEAT V TIMES ( INCREASE H CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT I TIMES ( CLEAR I CLEAR V ) REPEAT V TIMES ( INCREASE I CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT J TIMES ( CLEAR J CLEAR V ) REPEAT V TIMES ( INCREASE J CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT K TIMES ( CLEAR K CLEAR V ) REPEAT V TIMES ( INCREASE K CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT L TIMES ( CLEAR L CLEAR V ) REPEAT V TIMES ( INCREASE L CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT M TIMES ( CLEAR M CLEAR V ) REPEAT V TIMES ( INCREASE M CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT N TIMES ( CLEAR N CLEAR V ) REPEAT V TIMES ( INCREASE N CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT O TIMES ( CLEAR O CLEAR V ) REPEAT V TIMES ( INCREASE O CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT P TIMES ( CLEAR P CLEAR V ) REPEAT V TIMES ( INCREASE P CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT Q TIMES ( CLEAR Q CLEAR V ) REPEAT V TIMES ( INCREASE Q CLEAR U CLEAR V ) REPEAT U TIMES ( INCREASE V REPEAT R TIMES ( CLEAR R CLEAR V ) REPEAT V TIMES ( INCREASE R CLEAR U CLEAR V ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) CLEAR U ) PRINT X CLEAR X INCREASE X INCREASE U INCREASE U INCREASE U INCREASE U INCREASE U REPEAT U TIMES ( INCREASE U INCREASE U INCREASE U INCREASE U ) REPEAT U TIMES ( INCREASE U INCREASE U INCREASE U INCREASE U INCREASE U INCREASE U ) INCREASE U INCREASE U INCREASE U REPEAT U TIMES ( # loop REPEAT X TIMES ( # break CLEAR U # If all but A are 0, break INCREASE U REPEAT B TIMES ( CLEAR U ) REPEAT C TIMES ( CLEAR U ) REPEAT D TIMES ( CLEAR U ) REPEAT E TIMES ( CLEAR U ) REPEAT F TIMES ( CLEAR U ) REPEAT G TIMES ( CLEAR U ) REPEAT H TIMES ( CLEAR U ) REPEAT I TIMES ( CLEAR U ) REPEAT J TIMES ( CLEAR U ) REPEAT K TIMES ( CLEAR U ) REPEAT L TIMES ( CLEAR U ) REPEAT M TIMES ( CLEAR U ) REPEAT N TIMES ( CLEAR U ) REPEAT O TIMES ( CLEAR U ) REPEAT P TIMES ( CLEAR U ) REPEAT Q TIMES ( CLEAR U ) REPEAT R TIMES ( CLEAR U ) REPEAT U TIMES ( CLEAR X ) CLEAR U REPEAT X TIMES ( # stop right away # If A, 3n+1 # Y previous bit # Else shl INCREASE V REPEAT A TIMES ( CLEAR V CLEAR A INCREASE Y INCREASE U REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT B TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT B TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT B TIMES ( INCREASE U ) CLEAR B REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT B TIMES ( CLEAR B INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE B CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT C TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT C TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT C TIMES ( INCREASE U ) CLEAR C REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT C TIMES ( CLEAR C INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE C CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT D TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT D TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT D TIMES ( INCREASE U ) CLEAR D REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT D TIMES ( CLEAR D INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE D CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT E TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT E TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT E TIMES ( INCREASE U ) CLEAR E REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT E TIMES ( CLEAR E INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE E CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT F TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT F TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT F TIMES ( INCREASE U ) CLEAR F REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT F TIMES ( CLEAR F INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE F CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT G TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT G TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT G TIMES ( INCREASE U ) CLEAR G REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT G TIMES ( CLEAR G INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE G CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT H TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT H TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT H TIMES ( INCREASE U ) CLEAR H REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT H TIMES ( CLEAR H INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE H CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT I TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT I TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT I TIMES ( INCREASE U ) CLEAR I REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT I TIMES ( CLEAR I INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE I CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT J TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT J TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT J TIMES ( INCREASE U ) CLEAR J REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT J TIMES ( CLEAR J INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE J CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT K TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT K TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT K TIMES ( INCREASE U ) CLEAR K REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT K TIMES ( CLEAR K INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE K CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT L TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT L TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT L TIMES ( INCREASE U ) CLEAR L REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT L TIMES ( CLEAR L INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE L CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT M TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT M TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT M TIMES ( INCREASE U ) CLEAR M REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT M TIMES ( CLEAR M INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE M CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT N TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT N TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT N TIMES ( INCREASE U ) CLEAR N REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT N TIMES ( CLEAR N INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE N CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT O TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT O TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT O TIMES ( INCREASE U ) CLEAR O REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT O TIMES ( CLEAR O INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE O CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT P TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT P TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT P TIMES ( INCREASE U ) CLEAR P REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT P TIMES ( CLEAR P INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE P CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT Q TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT Q TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT Q TIMES ( INCREASE U ) CLEAR Q REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT Q TIMES ( CLEAR Q INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE Q CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) REPEAT U TIMES ( INCREASE W ) REPEAT Y TIMES ( INCREASE W ) REPEAT R TIMES ( INCREASE W ) REPEAT W TIMES ( CLEAR W INCREASE W ) REPEAT Y TIMES ( INCREASE U ) CLEAR Y # Save current for future use REPEAT R TIMES ( INCREASE Y ) # | REPEAT W TIMES ( CLEAR W REPEAT R TIMES ( INCREASE U ) CLEAR R REPEAT U TIMES ( # Count carry + previous + current INCREASE V REPEAT R TIMES ( CLEAR R INCREASE Z # Carry CLEAR V ) REPEAT V TIMES ( INCREASE R CLEAR V ) ) CLEAR U REPEAT Z TIMES ( INCREASE U ) CLEAR Z ) CLEAR Y ) REPEAT V TIMES ( CLEAR V CLEAR A REPEAT B TIMES ( INCREASE A ) CLEAR B REPEAT C TIMES ( INCREASE B ) CLEAR C REPEAT D TIMES ( INCREASE C ) CLEAR D REPEAT E TIMES ( INCREASE D ) CLEAR E REPEAT F TIMES ( INCREASE E ) CLEAR F REPEAT G TIMES ( INCREASE F ) CLEAR G REPEAT H TIMES ( INCREASE G ) CLEAR H REPEAT I TIMES ( INCREASE H ) CLEAR I REPEAT J TIMES ( INCREASE I ) CLEAR J REPEAT K TIMES ( INCREASE J ) CLEAR K REPEAT L TIMES ( INCREASE K ) CLEAR L REPEAT M TIMES ( INCREASE L ) CLEAR M REPEAT N TIMES ( INCREASE M ) CLEAR N REPEAT O TIMES ( INCREASE N ) CLEAR O REPEAT P TIMES ( INCREASE O ) CLEAR P REPEAT Q TIMES ( INCREASE P ) CLEAR Q REPEAT R TIMES ( INCREASE Q ) CLEAR R ) # Convert back to decimal REPEAT R TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT Q TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT P TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT O TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT N TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT M TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT L TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT K TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT J TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT I TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT H TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT G TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT F TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT E TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT D TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT C TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT B TIMES ( INCREASE W ) REPEAT W TIMES ( INCREASE W ) REPEAT A TIMES ( INCREASE W ) PRINT W CLEAR W ) ) )