Beginners Gaming Guide in Machine Language
Note: This book represents a smaller condensed version of the book “The Machine Language Book of the Commodore 64”. I found this much more effective to revise rather than starting from scratch as “machine language” is a complicated subject.
Finally understand that this is a “work in progress” and this page will be updated over time. Eventually it will include the Simple Game I am working on through my Facebook channel, that is seen below. You will control a sprite that can move through several different screens.
Probably some of the best advice I can give to any absolute beginner wanting to learn assembly language and write their first demo or game is that its going to take some time to master this. You will not learn this in one day or a month. However, if you stick with basic concepts, you will get better over time. My ultimate goal is to break it down to a “excuse me” third grade level so you can better digest the flow of learning it.
Also it is recommended to have at least some general knowledge of Basic and how the computer memory works to really grasp the essentials of writing good code.
To start off just know that the Commodore 64 and other VIC computers have no knowledge of Basic programming at all. Everything secretly exists in the strange world of “machine language” to your system. All it really understands is binary (0’s and 1’s).
However, the developers of the earliest Commodore (PET) computers wanted to make a computer friendly to use, so they created specifically an “operating system” that your computer uses to understand simple instructions as is common in Basic.
If you are a beginner to Basic programming stick with the first few chapters, otherwise feel free to skip past these. My goal is to write an eBook that makes speaks directly with your level of expertise (as a beginner or intermediate Assembly language Developer).
Basic has the ability to convert the machine language insturctions it receives into commands and statements that help you build a “computer program”. Basic utilizes an “interpreter” that actually does a serarch through a command table for any of the commands one would use to create a Basic program with. There are also several other rules used to help build a token list that is used to create the environment that allows for such programming, but to keep the tutorial simple, I wont go into heavy detail on that.
To be honest though you can’t really write a good demo or game in Commodore Basic. You would have better success doing this on an Atari computer since their interpreter communicates more effectively with machine language, and they have a video chip that is effective with graphics programming.
So most users transition from Basic to Assembly language (Machine Language) since it can run instructions must faster than a Basic program since Basic is using a machine language interpreter that is delayed when the computer has to search through a command table, perform taks, among many other things just to get a Basic program working properly.
Basic is the best foundation on which to begin your journey into assembly language programming.
Granted that learning assembly language will require learning a whole new set of instructions, but in time you will see hopefully the crossover from Basic to assembly language.
Going forward, I will replace “assembly language” to “machine language” to cater to old time users since that is how the computer really understands instructions and information in general.