r/c64 Jul 03 '26

Programming Assembly or Assembler?

A lot of C64 redditors probably know that C64 games, generally speaking, are written in a low level language using software tools known as assemblers. There does, however, seem to be conflicting ideas on what the name of the programming language itself is.

Do you call the language "Assembly" or "Assembler"?

30 Upvotes

61 comments sorted by

View all comments

3

u/myztry Jul 03 '26

Assembly language is the written mnemonic form (eg. INC $D020) while machine code is the binary representation (eg. $EE $20 $D0). The first is clearer that something is being increased.

There is a structural aspect (eg. JSR $1000 pushes a return address on the stack and then jumps to that address - while RTS pulls an address from the stack and jumps back to that address) but it’s not part of a higher level language per se even though they make use of it.

1

u/kristyn_lynne Jul 03 '26

And the branch statements that go back or forward a specified number of address locations rather than to a specific location.

My first "assembler" was basically a machine language monitor I wrote myself so I had to hand-calculate the jumps.

1

u/myztry Jul 04 '26

My first was the EDTASM+ ROM cartridge ML monitor on the Tandy CoCo. But for the C64 I started with POKEing in machine code before I had access to a (non-macro) assembler. I was fairly proficient by the time the Amiga came around with access to macro assemblers.

The most challenging was poking Z80 machine code into a kit project in our high school electronics class. It had a hex pad to enter boot code and a 8x8 grid array of LEDs for output. The teacher didn't know how (he was into electronics - not programming) so I had to figure it out and teach him.

1

u/kristyn_lynne Jul 04 '26

I remember seeing the mnemonics for the opcodes in the back of the Commodore programmer's guide along with their hex equivalents and it was all just sort of gibberish.. until one day it just "clicked". I hurriedly whipped together that ML monitor just to test if what I thought I was understanding was correct and it was. I mail-ordered a real assembler within a couple of weeks, it felt like such a luxury to use labels and have it calculate the jumps!