Skip to content
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

Utility to visualize the current state of memory mapping #60

Open
dansanderson opened this issue Dec 5, 2022 · 5 comments
Open

Utility to visualize the current state of memory mapping #60

dansanderson opened this issue Dec 5, 2022 · 5 comments
Labels
enhancement New feature or request
Milestone

Comments

@dansanderson
Copy link
Contributor

The MEGA65 memory system has many layers and backwards compatibility features, and it is often confusing to understand the current state of the system. I would love an interactive utility that can visualize the current state of memory mapping. Some things an interactive utility can help explain:

  • BASIC 65 BANK state, including the special ROM and I/O mapping behaviors of BANK 128
  • D030 banking
  • KEY register
  • Locations of relocatable VIC-IV memory regions
  • Other MEGA65 ROM reserved memory regions, e.g. CBDOS and BASIC variable memory in bank 1

If I understand correctly, these are properties that are captured by a freeze state, and so it's appropriate for a freeze utility to offer this as a way to explore a freeze state. Other hardware properties may or may not also be useful (or possible) to represent in such a utility, such as:

  • MAP registers
  • The presence/absence of RAM expansions such as Attic RAM

I know MAP registers are not available in userland, and are visible in Matrix Mode. If a freezer utility can ask the Hyppo for these values, it could help illustrate the effect of MAP values in a way that Matrix Mode cannot.

I'm imagining this as interactive memory map visualizations. I would love to be able to zoom into address ranges and understand the "state" of a given set of addresses interactively. For example, the next time I forget that I can't POKE $8000,$BB in the default BANK 128 mode, I can open the utility and zoom to $8000 and the tool will visually explain to me what's going on and help me understand what I need to change. This will require some thought and iteration to capture common developer questions and use cases.

@lydon42
Copy link
Member

lydon42 commented Mar 11, 2023

sound like something that could be added to the MONITOR

@lydon42 lydon42 added the enhancement New feature or request label Mar 11, 2023
@lydon42 lydon42 added this to the far future milestone Mar 11, 2023
@lydon42
Copy link
Member

lydon42 commented Mar 11, 2023

Possibly a duplicate of #3

@dansanderson
Copy link
Contributor Author

Also related: MEGA65/mega65-core#660

A Freezer utility could do it much better than the Monitor because it has access to the environment state and doesn't run in the environment itself. The Monitor can do a few tricks with hardware assistance (e.g. interrupt-frozen registers), but the other aspects of memory and video state mentioned above are lost before entering the monitor. Nothing in userland can access the MAP register.

@dansanderson
Copy link
Contributor Author

(If you mean the Freezer monitor, then disregard. My comments apply to the MEGA65 Monitor.)

@lydon42
Copy link
Member

lydon42 commented Mar 12, 2023

That's why I linked the other MONITOR issue as an possible duplicate...

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

No branches or pull requests

2 participants