XaiJu
beneater
beneater

patreon


Adapting WozMon for the breadboard 6502

Here's a quick-ish followup video on exactly what I changed to get WozMon working on the breadboard 6502. In case you were wondering what I had to change to adapt it for the serial interface, and—the bigger challenge—adapting it for normal ASCII characters.

Hope you enjoy! Up next, it'll probably be getting BASIC running. Or maybe even some non-6502 content.

As always, thanks for your continued support!

-Ben

Adapting WozMon for the breadboard 6502

Comments

I love that vid (and others of Ahoy) so much. It might be possible to make a slightly more limited SID chip(board) or have the cpu drive it directly like the Apple II. You'd basically have a DAC outputting square, sine, and noise waves...now I kinda want to make this...

Rya31

This is never taken off unlisted on Youtube. All okay? Also I cannot wait to see basic run on the breadboard 6502 computer.

Remco van Zuijlen

I wonder if a very basic 8-bit tracker would be possible (should you go for an audio card at some point). Here's a brilliant video about the history of 16 bit trackers that I was mesmerized by: https://www.youtube.com/watch?v=roBkg-iPrbw

Sam Halliday

Sound card would be awesome! I've experimented with the AY3-8910, but It would be great to see how you approach it. Thanks for the videos as usual.

Matt

I second a soundcard! Something with 3 square wave and one noise channel would be enough for lots of fun stuff and could be done with a 555 and some counters and serial to parellel latches. With vga and now serial the Ben Eater breadboard computer is almost feature complete. Though another direction would be either a MIDI port or using something like a VLSI VS1053B.. But I like the idea of a Breadboard synthesizer for my 6502.

NormalLuser

How about a sound card video like George Foote did here…. https://youtu.be/iFAMWvIqvng

Jim Kelly

i wonder if a implement of cc65 will work, and not using libstdc but using assembly to create the system calls and then creating functions that called those assembly calls. i did something similar with the Commander X16 a while back. i used global variables to do the calls because i could not get stack calls to work correctly.

Michael McDonnell

Yeah, I was wondering if that was an optimization.

RTFMDude

It wouldn't surprise me if b7=1 was hardwired just to make WozMon's modes take smaller code. It's used directly for SETMODE. ASCII only used the low 7 bits anyhow, and the Apple 1 only uses 67 codes or so (64 glyphs, CR, BS and ESC). If you want to rewire it, it's pin 15 in the keyboard connector; the schematic notes it should be tied high "for normal operation with supplied software", which is WozMon.

Yann Vernier

I think Forth is a good language for learning compiler and interpreter structure. It's hardly the only way such things could be built, but it has very distinct and straight forward pieces. A few of them are present in WozMon; ECHO is like EMIT, NEXTCHAR is like KEY, $200 is the input buffer, PRHEX resembles . and the hex input is also the default in Forth.

Yann Vernier

Fascinating video! Regarding your next video, I would be interested in seeing sort of compiler or interpreter. I don't know BASIC, but I do know how much of a rabbithole this topic can be! Something else I'd be interested in seeing: Floating point arithmetic!

Adrian Cochrane

One nitpick… around 14:30 when referring to the dot, you mention 01 when I believe you intended 10. Nice video.

bencodestx

It would be very interesting to see setup for compiler for this computer so we could write programs in C for it.

sorek.uk

Technically that wasn’t WozMon’s doing; the extra bit came from the design of the keyboard interface. So, don’t blame Wozniak but (checks notes)… oh, right…

Euro Micelli

I love this side quest, I've learned so much, thank you!

ast_rsk

Great work once again - thanks!

Don Prefontaine

Why do you think Wozmon didn't follow the ASCII standard to begin with? It was published in 1963. I know that character encodings is a huge mess--even with ASCII--due to the unused higher-order byte that everyone in the world just took as an open invitation to invent their own character sets. Do you see, or is there any reasoning mentioned, why Woz would make a custom character set?

RTFMDude

I was hoping you were going to continue with WozMon this month. I left my KIM-1 out to follow along. Awesome video as usual Sir!

Michael Doornbos

I made one more change: in the NEXTCHAR section just before JSR ECHO, I check to see if the key is escape and avoid echoing $1B (since it emits a bad character to PuTTY that disrupts my console). So, replace: STA IN,Y ; Add to text buffer. JSR ECHO ; Display character. With: STA IN,Y ; Add to text buffer. CMP #$1B ; don't echo the $1B BEQ NOTCR JSR ECHO ; Display character. I know this messes with trying to keep the size the same as the original but I didn't have that problem since my IO is mapped to the zero page (1 byte addresses for IO, not 2). There's probably a smarter way to fix this (like swapping the $1B for the "\" and not emitting the extra "\"). My take on this exercise, where I simulate the ACIA using an Arduino Uno, can be found here: https://www.hackster.io/michael-cartwright/6502-console-interface-using-arduino-uno-to-run-wozmon-ee9990

Michael Cartwright


More Creators