|
| |
|
MicroPython C64 V0.1 [2026] |
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
User Comment Submitted by Repose on 31 May 2026
curly braces {}
On the C64, the same values are reached by typing shift+ and shift-. The + is above the P. It's a graphic +, while shift- is a vertical line.
In mixed case charset, try c=+ and c=-.
I'm adding an alias to something that looks better like c+q and c=w, which look like sideways "T".
Though, I still can't assign a dict on vice, I have to play with it. All the translations going on are tedious.
But good news, new version soon which is much expanded and all bugs reported are fixed. | User Comment Submitted by Monte Carlos on 30 May 2026
| OK, i got it. You have to enter space after the >>> before the numeric expression. Otherwise the numeric expression is considered a line number. You see that when you enter LIST. Confusing ... | User Comment Submitted by Monte Carlos on 30 May 2026
I recognized some more issues:
E.g. when I entered 1+2\n, no output was shown. However, when I entered x=10\n and the x\n, I got the output 10.
Afterwards I recognized that control characters in strings are interpreted during assignment and not during printing.
a="foo!{cr_left} " assigned "foo" to a and the len was 3.
When I tried to output a list [1,5,7] using a for loop: for ll in l: print ll\n printed only 7, the last item but not all as expected.
Btw. How can I enter curly braces in the repl? | User Comment Submitted by Repose on 28 May 2026
@Hermit
That's exactly the direction I'm heading! I'm adding features specifically to make an interactive on-disk course, the same way I learned it. I've made sys.call(addr) and memory[addr] yesterday. These aren't standard or portable, but easy. | User Comment Submitted by Hermit on 28 May 2026
Congrats for the 1st bytecode-based implementation on C64! Good to see someone else taking the C64 development tooling seriously.
At this state MicroPythonC64 would be very useful to teach programming on the C64 in a contemporary manner. Until now I advised/teached BASIC to beginners, but now MicroPython64 brings in the new more advanced Python features. If you add memory/graphics handling in the future as planned, it will be an even more useful teaching/learning tool.
And the compiler will be a good non-assembly development tool.
Especially with this nice MicroPython MicroCourse in the readme.
I'm curious how speed-wise it would compare to BASIC interpreter/compiler and if source-code can be stored in a tokenized manner to save disk-space.
The README shows references to the lexer/parser/etc assembly sources. Is the source-code available to see your assembly-based approach to these tasks? (I couldn't spot a link to a source-code in the readme or here at CSDb release-page yet.) | User Comment Submitted by Frantic on 28 May 2026 User Comment Submitted by Repose on 27 May 2026
@wil
Thanks for the bug report! Will fix that next release
@ Monte Carlos
Let's think about this from a different perspective: if the statement is supported on the c64, then it's supported in byte code. Real Python won't make opcodes that don't work if you use supported statements.
I think this is the first Python interpreter for the c64! I know of an unfinished compiler project. I saw that one and said I could do better... well here we are (of course, it's not better... yet :)
I'm interested in giving it memory read/write so we can unlock graphics, sound and joystick, import for libraries and text input, and file i/o. That should be all we need for any program. | User Comment Submitted by Monte Carlos on 27 May 2026
A nice prove of concept which has already got into a useful but still very unripe state.
E.g. how should I tell the host compiler to not generate unsupported opcodes?
Silently ignoring them probably results in hard to track bugs when the bytecode is interpreted on the target. | User Comment Submitted by wil on 27 May 2026
Nice work! I successfully entered and ran a program:
20 print ("hello")
30 print ("world")
But then I entered 10 print ("let's begin") with the intention to put it as the first line, but it was appended as last line instead, ignoring line numbers.
When I tried deleting a line, I entered 10, but that just appended another line with number 10. How do I insert and delete specific lines? |
|
|
|
 | Search CSDb |
 | Navigate |  |
|
 | Detailed Info |  |
|
 | Fun Stuff |  |
· Goofs · Hidden Parts · Trivia
|
|
 | Forum |  |
|
 | Support CSDb |  |
|
 |  |
|