(local {: vm} (require :game.defs)) (fn defcheat [name ...] (local cheatdata (.. name "-data")) (vm.code:append cheatdata [:db 0] [:bytes name] [:db 0]) (vm:word name :lit cheatdata :cheatguard ...)) (vm:word :pcheatnext ; cheatdata -- pchar :dup :bget :inc :+) (vm:word :reset-cheat ; cheatdata -- 0 :swap :bset) (vm:word :cheatguard ; char cheatdata -- [optional rdrop] :dup :pcheatnext :bget :=] [:dup (string.byte "Z") :<=]] [:NTSPISPOPD] [:drop]))