-
Notifications
You must be signed in to change notification settings - Fork 26
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
More info about c64 #54
Comments
Unfortunately the Commodore 64 code is barely a work-in-progress at the moment. It does build a minimal binary, but that is about it. More of a source code restructuring to support other 6502 platforms than a complete implementation for anything but the Apple II. There are certainly a large number of TODOs for the C64, I just need to get to them someday. Thanks for your interest - it's always good to have motivation. |
From motivation point of view ... Commodore platform of course, having
So it would be interesting to see how PLASMA would fare compared to assembler. But compared to BASIC there is obvious advantage. It would be interesting to see how the old PEEK/POKE style BASIC programs would shine with a benefit of symbolic access to the "API". |
From practical steps, I would envision these stages for C64:
Is that a fair view of the stages? Anything major missed? |
Quick update:
Doing |
Some C64 tools such as the Blitz! compiler would insert a little BASIC stub (and load at the BASIC starting address of 2049) that did the SYS for those that didn't want to go the extra step of the |
I was trying to figure out how to put this into the build: just a sequence of bytes as a header, but never got around to it. However, the bigger issue to work through is the memory map and to decide what goes where. It's quite chopped up. Maximizing RAM and having the ability to call ROM code without swapping out important parts of the VM or potentially data buffers to transfer data into needs to be discussed. I just don't have the background on the C64 to make off-the-cuff decisions that won't require much refactoring later ;-) |
It looks like C64 BASIC is expected to be loaded at $0801 (first two bytes of .PRG).
The assembly code could start at $1000 (4096), but since BASIC needs to load at $0801, it would lead to extra ~2k of space in the .PRG file - which could be used for binary data or other code, |
As a proof of concept, the following was added near the top of
The resulting build runs in emulator and C64 Mini. |
Very nice! You can send me a pull request or I can add it myself. The mini64 is very nice - I may have to pick one up. |
Along the same line of thought ... it would be interesting to see how PLASMA would fare as one of the "built-in" languages of the new Commander X16 8-bit computer. The system shares a lot of similarities with the C64 and the Vic-20. But it will have access to better video and newer peripherals. They are targeting BASIC and ASM as the main languages but it might be fun to see PLASMA take advantage of the speed and the updated video and sound capabilities. |
I've been watching the CX16 progress. I'm not too motivated to jump in just yet. I'm not a fan of how they cut up the memory map and couldn't just commit to the 65816, nor am I particularly impressed with the choice of video subsystem. However, it could be a target without too much effort. The biggest hurdle will be to refactor the current modules into 8K chunks to fit into the bank switched memory. This is also something the Beeb wants, as its extended memory is accessed 8K at a time as well. |
There is a disk image for Commodore 64 under
It contains plasma.prg file. I am trying to load it using c64 Mini, which should load regular Commodore 64 games and programs. But no luck yet.
Questions:
References:
The text was updated successfully, but these errors were encountered: