( usage: uxncli rot.rom [ k ] ) ;on-arg ;on-stdin #17 DEI ?{ SWP2 } POP2 #10 DEO2 BRK @on-arg ( -> ) #17 DEI #02 NEQk ?{ POP2 !/one-digit } INC EQUk ?usage ( argend ) ,/offset LDR ;try-rot/offset STA ;on-stdin #10 DEO2 BRK @on-arg/one-digit ( -> ) #d012 DEI ADD DUP ( subtract "0 ) #09 GTH ?usage [ LIT2 &offset 00 0a ] MUL ADD ,/offset STR BRK @usage ( -- ) ;/str &puts LDAk #18 DEO INC2 LDAk ?/puts #800f DEO BRK @usage/str "usage: 20 "uxncli 20 "rot.rom 20 "[ 20 "k 20 "] 20 " ) #12 DEI LIT "A try-rot LIT "a try-rot #18 DEO BRK @try-rot ( c n -- c ) SUBk #1a ( c n c-n 1a ) LTHk ?{ POP2 POP JMP2r } [ LIT &offset 0d ] ROT ADD SWP ( c n rot 1a ) DIVk MUL SUB ( mod ) ADD #18 DEO POP2 BRK