: current-cheatchar ( p -- c ) dup @ swap cell + @ + b@ ; : cheat create 0 , latest wordname , , does> ( c p -- ) >r r@ current-cheatchar = if 1 r@ +! r@ current-cheatchar 0 = if 0 r@ ! r@ 2 cells + @ execute then else 0 r@ ! then rdrop ; :noname :| disk :| s" I don't wanna cheat" ' noop yield s" Jump to level 1" :| hide-footer 1 queue-level |; yield s" Jump to level 2" :| hide-footer 2 queue-level |; yield s" Jump to level 3" :| hide-footer 3 queue-level |; yield s" Jump to level 4" :| hide-footer 4 queue-level |; yield s" Jump to level 5" :| hide-footer 5 queue-level |; yield s" Jump to level 6" :| hide-footer 6 queue-level |; yield done |; choose |; sched ; cheat NTCHEAT array letterkeys 30 b, 48 b, 46 b, 32 b, 18 b, 33 b, 34 b, 35 b, 23 b, 36 b, 37 b, 38 b, 50 b, 49 b, 24 b, 25 b, 16 b, 19 b, 31 b, 20 b, 22 b, 47 b, 17 b, 45 b, 21 b, 44 b, : letter-typed 0 0 26 for letterkeys i + b@ key-released if drop i 65 + then next ; :noname letter-typed dup if NTCHEAT else drop then ; ' cheat-tick redefine