Skip to content

Wozmon Works + Disassembler + Breakpoints #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Feb 24, 2025

Conversation

lythd
Copy link
Contributor

@lythd lythd commented Feb 13, 2025

Wozmon works!

  • the main focus of this was to get Wozmon working, and now it does! Make sure in options that realistic keyboard and \r for line endings is set and it should work

Disassembler

  • previews the next 32 instructions disassembled back into assembly (unfortunately because of how instructions are variable length its not trivial to disassemble backwards or at arbitrary points, but its still useful to see the next few instructions!)
  • this helped a lot debugging wozmon as I could find my place, so I assume it will be a valuable debugging tool in general
  • due to space constraints I made it only appear if there is room, a standard 1920x1080 screen is enough room to render it, just did this to avoid overlap on smaller resolutions

Breakpoints

  • another feature I added to help me debug wozmon, you can click on the previewed instructions and it will toggle a breakpoint at that address, the cpu clock will stop whenever it reaches an address with a breakpoint allowing you to inspect code easier

General Code Changes

  • added an option in settings to use \r instead of \n, since wozmon uses that for its linefeeds from its serial monitor
  • fixed a few bugs, including notably SBC which prevented wozmon from working (had to do with casting to a negative value byte to a short it carries the bits when we didnt want that)
  • changed address mode and opcodes to be enums, just risky having strings and I believe there were a couple instances of the wrong names used in strings so that might have caused buggy behavior

Potential Future Ideas

  • I did want to work on implementing the rest of the 65c02 extended set so I want to do that eventually
  • Expanding the disassembler/breakpoints, only 32 instructions and not being able to see backwards makes it a bit annoying to use, but not sure exactly how to do that as of yet

image

lythd and others added 12 commits February 13, 2025 00:57
…the wrong string were used and this prevents that in future

- added extra 65c02 address modes in preparation of adding more 65c02 instructions
- carriage return toggle in options since wozmon expects \r not \n
…gging, it hides if there isnt enough space in the window to display it
(it does require in options keyboardMode: realisticKeyboard and lineEnding: \r)
this'll be version 2.11
@DylanSpeiser DylanSpeiser merged commit a24142c into DylanSpeiser:master Feb 24, 2025
@DylanSpeiser
Copy link
Owner

Great work on this! Thanks so much for contributing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants