Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
MicroPython C64 V0.1   [2026]

MicroPython C64 V0.1 Released by :
Repose

Release Date :
27 May 2026

Type :
C64 Tool

User rating:awaiting 8 votes (4 left)   See votestatistics

Credits :
Code .... Repose of Style

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
Feels like the younger brother of DurexForth V5.0.0.0
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
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (9)
· Production Notes
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
Forum
· Discuss this release
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2026
Page generated in: 0.102 sec.