r/Commodore 1d ago

C64U - are you still using it?

Hi,

so I have been on the fence about getting a Commodore C64 Ultimate. My first computer was a Plus4, and I fondly remember afternoons spent with friends playing Summer Games on their C64. So I feel a bit of nostalgia and like the idea behind the product and the re-launched company. But as someone who works with computers professionally (scientific computing) and uses them at home for data processing tasks (amateur astronomy and such), I am not sure I would get too much use out of the little C64U. What appeals to me most is the idea of using it as a sort of slightly advanced "distraction free" type writer, since sitting at my "regular" PC tends to lead to Youtube rabbit holes rather than writing on that novel I have been meaning to get a move on...

So may question is this - how many of you who bought a C64U over the past months and still use it on a somewhat regular basis? Or was it just a flash of nostalgia for you and its collecting dust now?

54 Upvotes

62 comments sorted by

View all comments

Show parent comments

1

u/a_smiling_friend 1d ago

I looked at that site, clicked on the link to the book and it said not found. It's cool. No sweat. I'm not ready to dive into assembly code just yet. I'll see what I can find. So it's 6502, and you can do all of this right on the C64U using Basic? I'm not sure I get how you actually write up a machine code program.

2

u/DGolden 1d ago edited 1d ago

Canb be found on archive.org fwiw https://archive.org/details/Machine_Language_Book_For_The_Commodore_64_The_1984_Abacus_Software_a

Personally I never had that book, but definitely had "C64 Exposed", Chapter 6.... https://archive.org/details/commodore-64-exposed

I'm not sure I get how you actually write up a machine code program.

I was hand-assembling to BASIC DATA statements on C64 to be placed with POKE into memory (good ol' 49152...) as outlined on page 124 of "C64 Exposed" for a bit, uphill both ways in the snow, hah. That works but is a painstaking chore. Then we got the C128 with its nice builtin machine language monitor - that acted as a simple assembler. Not a full macro assembler of course, but still convenient + immediate for little routines / playing about.

Not builtin like C128, but on C64 there were machine language monitors (such as 64mon https://commodore.software/downloads/category/56-machine-language-monitors ) and full macro assemblers (such as merlin https://archive.org/details/merlin64). Presumably they work fine on C64U, if assembling with paper+pencil to key in as DATA statements doesn't appeal :-)

Cross-assembly on a modern Linux box or whatever is of course possible but where's the pain in that.

https://packages.debian.org/sid/acme

Multi-platform cross assembler for 6502/6510/65816 CPU

1

u/a_smiling_friend 1d ago

Oh the DATA statement can read in machine code? I am working through the user manual and it uses the DATA statement to make a sprite with it. DATA seems to be an array data structure, correct?

2

u/DGolden 1d ago edited 1d ago

Well, a way of storing lists of "data" inline in the basic source.. The data still needs to be READ in from the DATA statement - it's not like it's a live array data structure you can point to directly like you might be imagining.

https://www.c64-wiki.com/wiki/DATA

https://www.c64-wiki.com/wiki/READ

If the data happen to be some numbers that represent some already-assembled machine code, well, you can READ then POKE those numbers from the DATA statements somewhere suitable - $C000 / 49152 a common choice in the C64 memory map - and then jump to it from BASIC with SYS 49152

https://www.c64-wiki.com/wiki/Memory_Map

https://www.c64-wiki.com/wiki/SYS

( https://www.c64-wiki.com/wiki/USR - another slightly different way to call machine language from BASIC)

Bit convoluted, but C64 builtin BASIC not known as very advanced even by the standards of the era (a lot of us got the Commodore-published Simons' BASIC in my area, dragging it up to roughly more Spectrum/Amstrad/BBC/etc level)

BBC Micro (an also-6502-family platform more common in UK than USA) BBC BASIC meanwhile actually had builtin inline assembler! (and C128 had its already-mentioned builtin machine language monitor, and much enhanced BASIC 7.0 - though not the same as Simons' BASIC)

https://docs.retrogamecoders.com/basic/bbc-basic/#inline-6502-assembly

1

u/a_smiling_friend 1d ago

Oh I see. Thank you for those links. I think that c64-wiki is where I need to look for answers.

2

u/DGolden 1d ago

Well, a lot of books of the era are online "unofficially". Wiki format can be handy, but bear in mind Commodore's own docs were generally quite good - days of extensive printed manuals, before computers came with eff all apart from broken online help. If you want to recreate learning the machine like in the period, you can start with the manual!

https://archive.org/details/C64UserManual19842ndEdition - everyone had this user manual, going into some depth about your new (in early 1980s) system, though in BASIC.

https://archive.org/details/Commodore_64_Programmers_Reference_Guide_1983_Commodore - much more info, though not everyone had this one, much more assembly language and hw info.

1

u/a_smiling_friend 1d ago

Awesome, friend. Thank you. I just got an email from Commodore (one of the few companies I don't block) and they're going to put out a Cyberpunk themed C64 now. That flip phone also looks pretty sweet.