writing a bunch of completely untested 6502 assembly using my own hand-rolled 6502 assembler because I don't have enough of a skeleton to actually run any of it and I don't feel like writing one right now

surely there's no way this will go awry

I rewrote a bunch of my hand-rolled 6502 assembler and verified the output using the built-in Apple II machine code monitor, so step 1 seems to have gone reasonably well

well shit, it looks like the basic building blocks of this 16-bit stack VM are actually more or less working!? This is the result of running [:vm 0xbabe 0xcafe :. :. :quit]

pushing literals onto a stack, popping them off, and printing them, what else does a computer need to do?

The Apple II machine language monitor is kind of a miracle... I can't think of another 8-bit home computer that had an assembler, disassembler, and debugger built-in to ROM. An indispensable tool for this project.

As a kid I just knew it as the cryptic unusable thing that showed up when my pirated games crashed.

The Apple II hires framebuffer memory map is maybe the most ridiculous thing I've ever seen, and I'm saying that as someone who has programmed both planar EGA and the Atari 2600. How did people pull off smooth 4-directional animation with this??

Despite this, I have successfully written a tile-drawing routine! I don't yet have the ability to actually design tiles to draw to the screen, but I can make garbage appear in the place I tell it to appear!

· · Web · 1 · 0 · 0

Ok I celebrated a little early; garbage is still not consistently appearing in the right place. BUT. I just added support to my editor to upload code to actual hardware over the serial port using the built-in monitor in ROM! My broken code is running on hardware!!

gosh I sure love writing a bunch of assembly code without testing any of it and then not having any idea why it's not working

oh cool it's because the assembler I wrote isn't assembling things correctly, neat, writing all of my own tools from scratch was a swell idea with no downsides

bugs: fixed! this is a tilemap made up of 3 different garbage tiles because I still haven't written a graphic editor. I guess that's next!

@SpindleyQ this sounds like a job for a test suite.
and getting that dev loop time down- maybe, so that the one line of code that breaks everything is the one you just wrote

@zensaiyuki I also really need to write a lot more introspection tools - the disassembler built-in to the Apple II is very nice but it doesn't help debug codegen failures with bytecode for the VM I implemented

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!