Read the readme, consider myself a mostly-not-total-idiot. Would buy author a beer to add a whole two sentences to illuminate what wozman is. If it's just that niche and I'm ignorant feel free to ignore me.
Ben Eater has a number of very informative videos on Wozmon on YouTube - what it is, how it works and and getting it to work on a home built 6502 machine, literally stepping through the assembly:
I find it a little weird that these comments always come up on hackernews… if you type "wozmon" in your URL bar and hit enter to search, pretty much _all_ the results are pertinent and helpful.
To add to your suggestion for the README: if this is indeed an "instruction by instruction rewrite" then it would also be helpful to include a canonical link to the original 6502 source. (Found a version here: https://gist.github.com/nobuh/1161983)
It's the boot ROM that came with the Apple I. It was pretty big for the time given that in those days, computers didn't come with flash, so you had to bootstrap programs with dip switches and the like. The Apple I came with wozmon on ROM, which provided a (VERY) minimal prompt to edit/view memory and run programs from it.
To support running code you'll need to call mprotect(2) on the buffer to make it executable.
If you hit Ctrl-d on this code it will burn through that loop constantly with no input. You need to check fgets()'s return code, it will be NULL on error or eof.
I remember vapor locking on figuring out addresses in hand assembled 6809 machine code in middle school. It was amazing what Woz pulled off with this. I wish I knew that the apple ii plusses in the computer lab probably had something like wozmon on them.
> Physical and virtual hardware support with full virtualization, using x86 hardware virtualization whenever available (it is on most modern x86-64 CPU's). In principle BareMetal should run on any x86-64 hardware platform, even on a physical x86-64 computer, given appropriate drivers. Officially, we develop on QEMU and VirtualBox, which means that you can run BareMetal on both Linux, Microsoft Windows, and Apple macOS.
There's no indication of specific real-world testing, though.
k8svet|2 years ago
helsinkiandrew|2 years ago
Running Apple 1 software on a breadboard computer (Wozmon) https://www.youtube.com/watch?v=HlLCtjJzHVI
How Wozniak’s code for the Apple 1 works: https://www.youtube.com/watch?v=SpG8rgI7Hec
Adapting WozMon for the breadboard 6502 https://www.youtube.com/watch?v=7M8LvMtdcgY
zellyn|2 years ago
I find it a little weird that these comments always come up on hackernews… if you type "wozmon" in your URL bar and hit enter to search, pretty much _all_ the results are pertinent and helpful.
RossBencina|2 years ago
> A complete instruction by instruction rewrite of Steve Wozniak's system monitor from 1976 for the Apple-1
I found a nice intro to Wozmon here: https://www.sbprojects.net/projects/apple1/wozmon.php
To add to your suggestion for the README: if this is indeed an "instruction by instruction rewrite" then it would also be helpful to include a canonical link to the original 6502 source. (Found a version here: https://gist.github.com/nobuh/1161983)
[1] https://github.com/IanSeyler/wozmon_x86-64/blob/main/src/woz...
reanimus|2 years ago
ianseyler|2 years ago
benj111|2 years ago
Self explanatory really!
rendaw|2 years ago
FWIW I have no idea what Wozmon is, just a sentence or two at the top for people not familiar with the original.
selcuka|2 years ago
Initial commit: 5 days ago
gabrielsroka|2 years ago
https://github.com/gabrielsroka/gabrielsroka.github.io/tree/...
asveikau|2 years ago
If you hit Ctrl-d on this code it will burn through that loop constantly with no input. You need to check fgets()'s return code, it will be NULL on error or eof.
ianseyler|2 years ago
atcalan|2 years ago
bArray|2 years ago
When it mentions a bare metal kernel, I thought about the BareMetal OS by ReturnInfinity: https://github.com/ReturnInfinity/BareMetal-OS
ianseyler|2 years ago
vbitz|2 years ago
danbruc|2 years ago
Does it also run without the virtual machine?
creatonez|2 years ago
> Key features
> [...]
> Physical and virtual hardware support with full virtualization, using x86 hardware virtualization whenever available (it is on most modern x86-64 CPU's). In principle BareMetal should run on any x86-64 hardware platform, even on a physical x86-64 computer, given appropriate drivers. Officially, we develop on QEMU and VirtualBox, which means that you can run BareMetal on both Linux, Microsoft Windows, and Apple macOS.
There's no indication of specific real-world testing, though.
hsnewman|2 years ago
DeathArrow|2 years ago
082349872349872|2 years ago
creatonez|2 years ago
justarobert|2 years ago