Assembly language is very, very simple.
Not many people will agree at first, but if you think about it, it is. You have to tell the processor what you want it to do in very simple steps. In SuperBasic, you can multiply two numbers together easily - you can do it almost as easily in machine code too.
This series of articles is intended to let you in on the basic secrets of programming your QL in its own natural language - machine code or assembly language. (Actually, machine code is what the QL talks, we use assembly language which is 'English' sounding 'words' that get converted to machine code by an assembler - I will tend to use the two terms as one.) To talk directly to the QL, you must learn its language. This series should hopefully teach you how to do just that.
I make no assumptions about how much or how little you may already know - I will start very simple and continue from there. Hopefully you will have an assembler, but if not, I will be presenting each program or code fragment - at least the ones that you can run - as both an assembly language listing and as a hex listing along with a small SuperBasic program to convert the hexadecimal numbers into a machine code file ready for use.
Since that was written, George Gwilt has donated an assembler named GWASL for use in this series. This is an MC68008 assembler and does not handle the newer commands on the more advanced processors. For this, you will need his GWASS assembler.
I was going to base the series on George Gwilt's GWASS assembler, which is free and can be distributed easily. Unfortunately, it won't run on anything less than a 68020 which is no good for those of us who are still running on an original QL - anyone out there got a free assembler for the masses ?
Most assembly language books tend to give little example programs as they go along to try to show the bits of the instruction set that you have just learned about. I will attempt to do likewise, but in addition, we will develop a useful application as we go along as well - the project !