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

GeckOS on Commander X16? #89

Open
example-user30 opened this issue Apr 22, 2024 · 2 comments
Open

GeckOS on Commander X16? #89

example-user30 opened this issue Apr 22, 2024 · 2 comments

Comments

@example-user30
Copy link

This is a great project. I am wondering if there has been any thought to port the OS to the Commander X16 which is Commodore like in build and operation?

@fachat
Copy link
Owner

fachat commented Apr 22, 2024

This has been discussed in #66 already, but maybe I should split it out from the discussion about Mega65. So, here are my main comments on the X16:

Ok, I see there is support for the X16 port :-)

I've looked up the X16 memory map. Unfortunately, with its low memory without banking, and fixed ROM in the top 16k this is similar to the pet32k architecture. If you have to put all the GeckOS code into the low 39k there really is not much space left for the application itself.

[And the ROM needs to have a changeable interrupt vector so GeckOS can take over the interrupt, but I assume that is the case]

(For ref I looked it up here https://github.com/X16Community/x16-docs/blob/master/X16%20Reference%20-%2008%20-%20Memory%20Map.md and here https://www.c64-wiki.com/wiki/Commander_X16#Memory_and_Operating_System )

I wonder how much sense it actually makes.

On the other hand, it could be an option to put GeckOS into the X16 ROM. This could be feasible, with say the kernel, and lib in the banked system ROM and support programs in the banked RAM. [Is the X16 ROM in-circuit programmable?]

Nevertheless, zeropage is still shared, and stack needs to be copied to achieve reasonable numbers of tasks/processes to run.

Add. comment: some support programs (e.g. SD-card filesystem, USB) will need more than the 8kB that is available as banked memory. These need to be put in ROM I'd guess, but at least require interrupt routines to map back to kernel etc.

@fachat
Copy link
Owner

fachat commented Apr 22, 2024

So, in summary, the X16 requires a sophisticated banking scheme to move the kernel, lib6502, and support tasks out of the way to maximize the amount of memory available for user tasks.

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

No branches or pull requests

2 participants