EWM Update: Language Card

The beginnings of Apple Language Card support are there for a glorious total of 64KB of (bankswitched) RAM. This means that DOS 3.3 can now load Integer BASIC into the card and you can run Integer BASIC programs from disk. ProDOS 1.0.1 however complains about ‘Unable to execute basic system’. That will require some debugging on the travel weekend with way too many hours at airports. If you are interested in playing around with my emulator, you can find the project at github.

EWM Update: Lo-Res Graphics

I’m slightly surprised that I am still hacking on this side project. Usually life and actual work get in the way or drain the energy to levels where I don’t want to write much code at home. But here we are .. I now have an Apple ][+ with 48 K RAM, disk controller, text and lo-res graphics pretty much implemented. See two screenshots of the COLOR DEMOSOFT app from the DOS 3.

EWM Update: Parsing the original Character ROM

So far I’ve been using the Apple2Forever TrueType Font to render text modes. These look nice but are not really original for an emulator. So I wrote some code to parse the original Apple ][+ Character ROM and turn those characters into SDL compatible bitmaps. The ROM format is very simple, one line of the character bitmap per byte. Seven bytes per character. Later I will add color variation, scanlines and maybe a blurr effect to make it look more like a classic CRT.

EWM Update: Disk Progress

Here is some Disk ][ progress I made. The code that I finished on the weekend frustratingly did not work. It had just one weird bug in it, which truncated ‘raw’ tracks by 16 bytes. I think this threw off the disk firmware because it could not correctly synchronize. One line fix after I correctly diagnosed it this evening. Big inspiration for this code is the Open Source Apple2JS Project project combined with reading Beneath Apple DOS.

EWM Update: BASIC Prompt

Here we go. The font rendering is a bit weird. Not sure what happened there. But it boots, it tries to beep (no speaker emulation though) and then it is mostly usable. What is next? A Disk ][ implementation? If you are interested in playing around with my emulator, you can find the project at github.com/st3fan/ewm. Most of my professional and personal work is Open Source. You can find many projects at github.

EWM Update: It Boots!

Ok that escalated quickly. I have a ‘game loop’ in SDL now and some basic rendering of text page 1. It boots! With a BASIC prompt! And I can type random stuff that results in a ?SYNTAX ERROR so something good must be happening. For some reason it thinks that the forward slash is being typed continuously. Not sure what is happening there. I am probably not understanding correctly how KBD ($C000) and STROBE ($C010) should work.

EWM Update: ][ELPPA

May not seem like much, but here is a little milestone for my emulator. It is booting up as an Apple ][+, printing APPLE ][ (in reverse) and then printing ABCDEF? and OUT OF MEMORY ERROR followed by a ] prompt. I have a lot of work to do, but this is promising. I hope to have a decent SDL-based (OS X, Linux, Windows) version done by the end of the year that can boot a DOS 3.

EWM Update: Apple 1 Progress & Booting the Apple ][+ ROM

Here is some more progress with my 6502 / Apple1 emulator. Lots of fixes and features .. I forgot to implement some instructions, SEC, SED, SEI. Oopsie. Now I can load ROMs from disk, detect invalid instructions. I implemented APIs to register memory (RAM, ROM, IO) regions. There is now basic interrupt support, although the Apple 1 does not use those at all. The screenshot shows the emulator with the KRUSADER ROM loaded.

EWM Update: Hello World

Made some good progress with my 6502 / Apple I emulator. It now runs the WOZ Monitor succesfully. Here is a screenshot of the virtual Apple I booting up, and me entering and running a little Hello World program. (In a terminal window with the Apple2Forever Font). It is not entirely clear what happens after the final RTS of an entered program though. So the emulator simply stops. (Also note the low number of instructions executed.

Emulated Woz Machine

Two years ago in 2014 I put together a half complete barely functioning emulator for the Apple 1. I called this project Emulated Woz Machine, an ode to the brilliant Steve Wozniak. I found some new energy to continue working on this project. To kick it off I wrote a small patch and also started filing issues for things that need to happen to turn this project into something bigger than just a Christmas break hack.