Someone also uses notepad as a debug console [1]. There is even a Rust crate for that [2].<p>[1] <a href="https://www.reddit.com/r/programming/comments/gnazif/ray_tracing_in_notepadexe_at_30_fps/fr8uy2l/" rel="nofollow">https://www.reddit.com/r/programming/comments/gnazif/ray_tra...</a> (I've first seen this from Steve Klabnik's tweet <a href="https://twitter.com/steveklabnik/status/1263190719721766918" rel="nofollow">https://twitter.com/steveklabnik/status/1263190719721766918</a>)<p>[2] <a href="https://crates.io/crates/notepad_logger" rel="nofollow">https://crates.io/crates/notepad_logger</a>
Could have probably gotten the keyboard input with <a href="https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate" rel="nofollow">https://docs.microsoft.com/en-us/windows/win32/api/winuser/n...</a> instead of the hooks.
Excellent write-up.<p>I think the first place I encountered this sort of thing in notepad was
<a href="http://thesiteformerlyknownas.zachtronicsindustries.com/notepad-weekend/" rel="nofollow">http://thesiteformerlyknownas.zachtronicsindustries.com/note...</a>
It seems a lot of people have the same idea of implementing Snake where it has no business being<p><a href="https://twitter.com/neilsardesai/status/1379185826920300545?s=21" rel="nofollow">https://twitter.com/neilsardesai/status/1379185826920300545?...</a>
<a href="https://github.com/emacs-mirror/emacs/blob/master/lisp/play/snake.el" rel="nofollow">https://github.com/emacs-mirror/emacs/blob/master/lisp/play/...</a><p>1997 is actually later than I would've thought.