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

Feature Request: ESP32 code access to eZ80 connections, e.g. SDCard #101

Open
snakebyte69 opened this issue Sep 29, 2023 · 7 comments
Open
Labels
enhancement New feature or request

Comments

@snakebyte69
Copy link

Can a simple routine be added to MOS that would allow FabGL, ESP32Tiny apps access to the SDCard and any other hardware that requires the eZ80.

The existing ESP32 apps work for the most part but are limited because MOS has no ability to process requests.

@breakintoprogram breakintoprogram added the enhancement New feature or request label Oct 18, 2023
@breakintoprogram
Copy link
Owner

Yes it is possible, though the performance may not be brilliant:

  • MOS will have to send a packet requesting the GPIO from the ESP32
  • VDP will then have to read the data and send the results back to MOS
  • MOS will then need to process that packet

@snakebyte69
Copy link
Author

Performance would not be critical at first just getting it working would be a proof of concept and would mean all the FabGL and ESP32Tiny apps would work.
e.g. there is existing MAME code that could load ROMs from the SDCard.
Games will bring a LOT more people to the platform.

Also in this mode MOS would only be running commands from the ESP32.

@stevesims
Copy link
Contributor

so let me preface my comment by saying that I do understand the desire for this...

the idea of adding features to agon-vdp in order to support running FabGL or ESP32Tiny apps presumes the ability to run those apps within the current VDP software platform. agon-vdp simply is not architected to allow that to be possible.

FabGL and ESP32Tiny apps are written to run on the metal. they are inherently something other than agon-vdp, and not really things that can be made to run "inside" agon-vdp

as I see it, this is therefore not a feature that belongs as part of the Agon software platform. software written for the Agon software platform inherently does not need this feature, and cannot make any use of it.

having said all of that, we already support a way on agon-vdp to allow alternate software to run on the ESP32. using the new "updater API" one can upload different firmware to the ESP32 and switch to that, which can allow the user to run FabGL or ESP32Tiny apps.

we therefore already provide everything that is needed within the Agon platform for this feature request.

it should be noted that at this point you are no longer running agon-vdp, and no longer have a machine running the complete Agon software platform.

what is actually needed in order to facilitate running FabGL or ESP32Tiny programs on Agon hardware is two components, neither of which really have a place as part of the Agon software platform.

the first feature is software running on the eZ80 to accept requests from the ESP32 for SD Card IO operations, and to send back responses. this can be built on top of existing MOS APIs, so there is no Agon platform work for us to do here to facilitate this.

the second feature is library shims to add in to the source code of FabGL and/or ESP32Tiny apps to replace their SD card access with serial messages thru to the aforementioned software running on the eZ80. as these are not applications that run on the Agon platform itself, this work is outside the scope of the agon-vdp project.

@snakebyte69
Copy link
Author

snakebyte69 commented Nov 17, 2023

This feature request should have been posted under MOS, not agon-vdp.

"the idea of adding features to agon-vdp in order to support running FabGL or ESP32Tiny apps presumes the ability to run those apps within the current VDP software platform. agon-vdp simply is not architected to allow that to be possible."

Agon-VDP is not involved at all and not needed, this is a FabGL only proposal with MOS facilitating the access to the SDCard.
All of the FabGL apps already run on the Agon Light except for the parts that need the SDCard.
e.g. Space Invaders, Altair 8800, CP/M 3.
RunCPM is a good example of an app that runs but crashes when it needs to access the SDCard.
MOS will need to be modified and potentially FabGL.

"as I see it, this is therefore not a feature that belongs as part of the Agon software platform. software written for the Agon software platform inherently does not need this feature, and cannot make any use of it."

The Agon can be whatever anyone wants it to be where the code is written for it, it's not any one person's version of the paradigm.
e.g. A PC can run, DOS, Windows, Linux, etc

@oldpatientsea
Copy link

oldpatientsea commented Nov 17, 2023

[Edit: removed my own comment as not helpful]

@stevesims
Copy link
Contributor

Agon-VDP is not involved at all and not needed, this is a FabGL only proposal with MOS facilitating the access to the SDCard. All of the FabGL apps already run on the Agon Light except for the parts that need the SDCard. e.g. Space Invaders, Altair 8800, CP/M 3. RunCPM is a good example of an app that runs but crashes when it needs to access the SDCard. MOS will need to be modified and potentially FabGL.

as I said in my previous comment, MOS already provides the facilities needed. a program running on top of MOS is all that is required for this feature. no changes to MOS are necessary.

@snakebyte69
Copy link
Author

"MOS already provides the facilities needed. a program running on top of MOS is all that is required for this feature. no changes to MOS are necessary."

Very useful information!
If I understood it I would write it myself.

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
Status: No status
Development

No branches or pull requests

4 participants