Interesting article here on America’s continued rejection of the metric system. I didn’t know it was pushed by the French Revolution, but I’m not surprised. The same people are still pushing it today. One of my earliest school memories is of watching a filmstrip about the metric system. It had a scene where a driver got a speeding ticket because he saw a sign that said 95 kilometers per hour and assumed it meant 95 miles per hour.
Continuing on with the sha256 hash calculator, we create some of the intermediate functions that use the boolean and bit-shifting routines we wrote in the last session.
No coding in this one, just introducing a new project: a game in the spirit of Stardew Valley. I say “in the spirit of” because it would be impossible to duplicate the game on an 8-bit system, even if copyright weren’t an issue. But I think it’ll be a good challenge to see how much of it can be done, with expectations scaled back drastically in terms of graphics and sound.
This always seems to me like the time of year when you’re just trying to get through. The sun is getting higher in the sky and the days are longer, so it feels like you should be outside doing things. But it’s 26 degrees. That’s not brutal or anything, but it means the ground is still frozen. Too soon to start working the soil, or digging up plants to move, or anything like that.
Started programming on the sha256 program. So far, the easy parts have been fairly easy, creating routines to do boolean operations and bit-shifts on 32-bit values. I think it’ll get tougher as we start putting those pieces together to form the various formulas, but it should keep coming together piece by piece. I realized as I was watching it to check the recording quality that I could simplify the first couple routines a lot and lose the INX/DEX stuff, so that’ll be first on the agenda for next time.
Now that the Worm program is finished, I’m starting two new projects to work on in parallel. The other one will be a game, once I work out some details. This one should be easier. It’s a 6502 implementation of a SHA-256 hash calculator. I thought it’d be interesting to see how well an 8-bit system could handle calculations that were designed for 32-bit (or more) processors, and how difficult it would be to implement.
Memory management (banking) in the C128 is unlike the C64 or other 8-bit Commodores, since it uses the MMU to switch blocks of ROM and RAM in and out of service. This can seem kind of complicated at first, but it’s essential to taking full advantage of the resources that the C128 provides, so I thought I’d do a whiteboard tutorial on how banking works and how to do it in assembly.
The Worm game is finished! It works pretty much how the BSD version does, which was the goal. It could be prettied up further than that with multiple colors and sounds or other new features, so if anyone wants to fork the source from the repository and do that, or use it in any other way, feel free. I’m ready to move on to something else, probably a more complex game with bitmap graphics, sprites, and sound.
[Setting: A Hollywood conference room.] Suit #1: “Gentlemen, we have a problem. Our new movie is setting up to be a disaster. Test audiences hate it. They’re saying it makes no sense and that the lead actress has two modes, boring and bitchface. The editors say there isn’t enough good there to salvage. We’ve been promoting it hard, and now word is leaking out that it’s bad. How can we save our asses?
So I learned Python the other day. Actually, that’s a joke. You can’t learn a programming language in a day. But if you already know several others, you can learn the basics: the syntax, looping constructs, how variables work, things like that. Enough to write simple scripts while checking the documentation for specifics on particular functions. Python has become ubiquitous enough that I figured I need to be familiar with it, if not expert, so I plowed through a tutorial.