I'm going to experiment with limiting the language to 26 possible instructions by defining instructions from the first letter alone. I might try coupling words together to form instructions as well. The main goal is to make something usable but still easy to hide in arbitrary text.
So that whole thing about me posting a working example of that PoC steno programming language? Much more difficult than I originally judged. Not difficult to implement, mind you. Rather, it's difficult to write code for the implementation. I'm gonna rework the idea and completely rewrite it, but this time the focus will be on ease of use. Using the first and last letter of a word to define an instruction was a pretty bad idea since it leaves you with 676 possible instructions.
It's really neat seeing how other people have taken the same idea and come up with vastly different approaches. Even my own approach is wildly different from all the ones in that article (which I'll go into detail about in a future post), so I don't feel like I 100% ripped someone else's idea off.
telnet postcard.sfconservancy.org 2333
I've helped my friends at Software Freedom Conservancy with their fundraiser this year, including a cool animated postcard you can see if you telnet into the above address! (Copy and paste that command into a terminal!)
I'm an enthusiastic supporter of Software Freedom Conservancy, and I hope you'll join as a supporter too! https://sfconservancy.org/supporter/
I believe I've found the source where I took the idea of using natural language computationally: https://esoteric.codes/blog/esopo-turing-complete-poetry
I'm pretty sure the specific language that I based my idea on is Correspond.
So I was toying around last night in Ruby with an idea I'm pretty sure that I read or saw implemented somewhere. Basically it's a VM which parses its instructions from written text. It takes the first and last non-punctuation character from each word and uses them as a key to search through a list of functions to perform. I'm like 99.999% sure that I stole this idea from somewhere but I can't remember where.
Anyways, I'll probably hack on that for a couple days and then return to my forth.
I'm planning on just buying a 1541-II sometime soon to replace this one. According to a pretty popular repair doc, the GAL chip is probably bad and although I could replace it easily since the previous owner of my drive socketed all of the ICs, I think I'll put more money towards a new drive for now instead of dropping 20 bucks on something that may not solve my problem. Good thing the IIs are relatively cheap 👀
Finally properly implemented REFILL. The second picture shows the buffer in memory at the end of the video (first character at 0x0800). It only lets the user edit the current line, so characters don't overflow into the next line and deleting characters will never move the cursor behind the first position on the current line.
Now onto parsing 👀
Alright, so thankfully I won't be rolling my own keyboard routine. The reason that the kernal GETIN routine kept returning to the BASIC prompt was because I was corrupting the stack and I guess it was triggering some sort of reset or something? I dunno. All I know is that I can write terrible terrible things on the screen using Forth code which, honestly, is so incredibly beautiful.