By Robert M (adapted by Duane Alan Hahn, a.k.a. Random Terrain)
As an Amazon Associate I earn from qualifying purchases.
Page Table of Contents
Original Lesson
This course assumes no prior knowledge of computer programming. While the examples given in the course are targeted at the 650X family of processors, the ideas presented will apply to assembly language programming and often programming in general.
Please feel free to posts comments or questions into the Lesson threads. If you wish to ask a private question don't hesitate to send me a PM.
The assembler we will be using for this course is DASM. We won't need the assembler for the first several sessions, I will provide links for downloading and installing DASM. DASM is available for DOS, Windows (in a DOS window), Amiga, and Macintosh (OS-9 or OS-X). So the development tools will be available on many platforms.
The Most Important Thing You Need to Know about Computers
Imagine you have a black box with a single light bulb sticking out of it. Sometimes the light is on, sometimes it is off. Please answer these questions:
Until you can answer these questions, programming computers will never quite make sense. Everything else we do in this course will be built on this radical idea. Please take a moment to consider these questions. There are no wrong answers, its just a mental exercise to broaden your mind.
The key points that you need to take away from this exercise are:
So how does this relate back to the questions I asked above?
By common convention. the values 1 and 0 are used to represent the states of bits. One usually means on, yes, or true. Zero usually means off, no, or false. Notice that I said "by convention" and "usually". You could just as well use "A" and "B" or "Zip" and "Zap", but this makes it hard to talk with others about bits, so we will use 1 and 0 in this class.
This is the great secret of all computers and computer programming in general. When you program in assembly language, you have complete control/responsibility
to provide the meaning of the values of the bits that make up your program. If you want a bit to mean "The Dragon is awake" when it is 1 and "The dragon is asleep" when it is zero, that is fine. Just understand that the meaning you give to the bit is completely your own invention and when the user pulls out cartridge with your program and puts another one in, that program will apply a completely different meaning to the EXACT SAME BIT.
Other Assembly Language Tutorials
Be sure to check out the other assembly language tutorials and the general programming pages on this web site.
Amazon: Atari 2600 Programming (#ad)
Amazon: 6502 Assembly Language Programming (#ad)
Atari 2600 Programming for Newbies (#ad)
|
|
|
Lesson 1: Bits!
Disclaimer
View this page and any external web sites at your own risk. I am not responsible for any possible spiritual, emotional, physical, financial or any other damage to you, your friends, family, ancestors, or descendants in the past, present, or future, living or dead, in this dimension or any other.
Use any example programs at your own risk. I am not responsible if they blow up your computer or melt your Atari 2600. Use assembly language at your own risk. I am not responsible if assembly language makes you cry or gives you brain damage.