Skip to content

Port MOS to AgonDev clang compiler - #156

Draft
tomm wants to merge 4 commits into
AgonPlatform:v233from
tomm:agondev
Draft

tomm wants to merge 4 commits into
AgonPlatform:v233from
tomm:agondev

Conversation

@tomm

@tomm tomm commented Apr 8, 2025

Copy link
Copy Markdown
Contributor

You need this compiler installed to build: https://github.com/envenomator/agondev/

Then make should compile a bin/mos.bin.

Somewhat tested. Uart0 and sdcard are good, so you can flash back to another MOS just fine.

@stevesims

Copy link
Copy Markdown
Contributor

This is excellent and fascinating work

Moving to use the agondev toolchain to build MOS would carry with it a lot of advantages over ZDS-II. It would allow the use of significantly more modern C, and allow us to consider using C++ for some parts of MOS. This could be extremely useful for several future features being considered.

As discussed on Discord, the reality of this PR is that it is unlikely to get merged, as the main branch of this repository will within the next week or two get the changes from MOS 3 (the v3 branch) merged in. Owing to the amount of changes in MOS 3, once that code has been merged in it will inevitably create a lot of conflicts. Even if all these conflicts were resolved, the new code that the v3 branch adds would need to be updated to be agondev compatible.

Once the v3 branch is merged into main the likely approach to converting the codebase to be agondev compatible would be to take parts of the work in this PR, and use the diffs as a guide to how to convert the rest of the codebase.

To aid in that process, we should probably create a branch from the current main (at the 2.3.3 tag) and change the target of this PR to that new branch

@stevesims stevesims mentioned this pull request Apr 13, 2025
@stevesims
stevesims changed the base branch from main to v233 April 21, 2025 08:17
@stevesims
stevesims marked this pull request as draft April 21, 2025 08:17
@stevesims

Copy link
Copy Markdown
Contributor

As the MOS 3.0 codebase has now been merged into the main branch, this PR ended up with a lot of conflicts... I've changed this PR to be against a v233 branch which is a snapshot of the MOS 2.3.3 codebase just before the MOS 3.0 changes were merged in.

I've also changed this PR to be a draft to guard us against accidentally merging it.

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