BASIC?! Don’t you need Machine Code?   2 comments

A C64 Assembly Language program

A C64 Assembly Language program


BASIC?! Don’t you need Machine Code?


Of course, most games on the Commodore 64, as well as on other computers, needed to be programmed in Assembly Language or Machine Code in order to run at a reasonable speed, as well as not being limited to whether or not there was a specific command to do something that a games programmer or an applications programmer could dream up.


Unfortunately, people couldn’t just dive into Assembler/Machine Code programming without learning to program in some other language first of all. At the time the Commodore 64 came out, BASIC was being used as a vital language to teach people about computers, before they could move on to some other language. Not everyone agreed with people learning BASIC as their first computer language, though. It was descended from an earlier language called FORTRAN, and there were some who preferred LOGO (mainly used to produce geometric graphics patterns very easily by a “Turtle” robot or on screen arrowhead), as well as FORTH (easy to extend with new commands), or COMAL (incorporating more advanced or “structured” features from other languages, similar to BBC BASIC, or Sinclair QL SuperBASIC).


In the early days of the Apple II computer, most applications, and possibly most games as well, were programmed in a version of BASIC which Apple supplied with the computer. Originally, this was “Integer BASIC”, followed up by “Floating Point BASIC”, both by Apple, then “Applesoft BASIC” by Microsoft. Apple nearly had to discontinue the Apple II computer at one stage, because there was a risk that they couldn’t get a new licence from Microsoft to carry on supplying Applesoft BASIC with the computer. In that case, most or at least a large percentage of Apple II applications wouldn’t have been able to run on the computer, because they were written in Applesoft BASIC!


Commodore had been using the 6502 CPU (Central Processing Unit) or processor for short, on all their computers, ever since bringing out their first PET computer in 1977, so there was no real reason or incentive to change this processor for the Commodore 64. Actually, they decided to use the 6510 processor, which was compatible with 6502 Assembly Language/Machine Code. Fortunately for Commodore, there were already a number of games programmers who had learnt 6502 Assembly Language or Machine Code on earlier computers, such as the Atari range of computers (the first models were released in 1979 with 6502 processors clocked to run faster than the C64’s 6510), the Apple II (1977), the Acorn Atom (1981), or even the earlier Atari 2600 games console (using the cut down 6507), which needed some extra equipment or a development package to make it possible to program, similar to games consoles today. With this wealth of talent to draw on, Commodore probably thought to themselves that using an antique version of BASIC didn’t matter, they could just release a 6502 compatible colour computer to existing software houses and programmers, then let them port existing software onto it, as well as include it in a “family”of 6502/6510 computers they developed software for. I certainly can’t imagine anyone getting a Commodore 64 as their first computer, then learning to program it in Assembly Language! Surely the way to learn would be a good grounding in BASIC, followed by incorporating some Machine Code routines into your programs before taking things further.


Posted August 9, 2012 by C64hater in Uncategorized

2 responses to “BASIC?! Don’t you need Machine Code?

Subscribe to comments with RSS.

  1. I can’t find a copyright notice nor contact details, so I took the liberty of using on If you’d rather I not, please tell me and I’ll remove it.

  2. It’s fine for you to use that pic on your blog! I’ve also commented on the post you used it to illustrate and I hope you approve my comment. Basically, no one should try and program a Commodore 64!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: