I recently wrote a small 16-bit Forth for 8086 PCs running DOS. I built the basic one-liner loop words that can trivially be built with just "branch if zero" and "goto": begin, while, repeat, until, again. But I held off on implementing do / loop at first. It didn't seem like too much of a hardship. In a previous Forth I'd built, I'd implemented do / loop using the return stack, but it was... ugly. The code to implement it was ugly, the code it generated was ugly (and large!), and I didn't fi...| blog dot information dash superhighway dot net
I fairly frequently see people who are taking an interest in Forth struggle with the idea of programming without local variables. I struggled with it when I started writing Forth! I feel like there's an unspoken assumption for people coming to Forth from other languages, and if I were to speak it aloud, it would sound something like "temporary data should go on the stack". Because... functions should be re-entrant by default! They should clean up after themselves! Global variables are bad and...| blog dot information dash superhighway dot net
I wrote this analysis of Return to Monkey Island's ending on October 4th, a couple of weeks after finishing it, in a kind of manic fugue state, writing well past the time I should have been in bed. After I'd written it, I decided it probably needed an editing pass before I posted it, but life immediately got in the way and I never looked at it again. Today I picked it up and read through it and decided not a word needed to be changed. So, without further ado, here it is. HERE BE SPOILERS. You...| blog dot information dash superhighway dot net
On Feb 9, I made the following comment on my Mastodon: still can't believe the shithead behind Pupkin managed to get his webcomic turned into a movie with Jennifer Lopez Nobody responded to this in any way, because, quite frankly, nobody who wasn't an absolute fanatical follower of webcomics discourse 20 years ago has any idea what the fuck this means. Hell, I barely understand my feelings about this. But to do them justice, we are going to have to unpack 25 years of webcomics history. The pr...| blog dot information dash superhighway dot net
or, discovering and recovering a lost programming language over the course of a weekend I go down rabbit holes. One of the great pleasures of this dumb future we live in is that you can dig through the milk crates of our culture forever, following whatever interests you, and there is no bottom. My latest rabbit hole looked something like this: I have been spending a few minutes each day seeking out backgrounds for use on Google Meet calls at work that match my t-shirts. I was wearing a t-shir...| blog dot information dash superhighway dot net
Honeylisp is a programming environment for the Apple II which attempts to leverage the absurd computational horsepower of a modern laptop to make programming a 1mhz 8-bit processor more magical. Step 1: Write a 6502 assembler The Honeylisp assembler is written in Fennel, which is a Lisp dialect that compiles to Lua. My goal in writing it was that the input to the assembler would be simple lists, making Fennel into a super-powerful macro assembler basically for free. 6502 assembly is treated a...| blog dot information dash superhighway dot net
So I should probably have a blog post that I can point to about this whole retrocomputing project that I've been up to the past year and a half. I wrote a game on an MS-DOS 286 PC, using only tools I built myself or tools that were available during the era where they were still selling 286 PCs. It's called Neut Tower and you can play it on your MS-DOS PC, in DOSBox, or in your browser. As part of this project, I implemented a Forth system, and built most of my game and its tools using it. My ...| blog dot information dash superhighway dot net
Forth is perhaps the tiniest possible useful interactive programming language. It is tiny along a number of dimensions: The amount of c...| blog dot information dash superhighway dot net
I've been seriously writing Forth, with my homebrew Forth dialect, for about a year now, off and on, and I've noticed something interesti...| blog dot information dash superhighway dot net