I recommend you set these preference options:
Enabling "Label :" means that a label must be defined by putting a : behind it. This will prevent lines like
CLsize = CLend - CLstart
being interpreted as a label definition. Also, declaring a value like that will now be recognized as an error. You cannot have spaces in declarations, so the correct line should be
CLsize = CLend-CLstart
where CLend and CLstart are labels.
Setting "UCase = LCase" will put an end to case sensitive behaviour with labels and declarations. Maybe I will turn this back off later on, but for now it is preventing me from having too many errors while compiling :)
"; Comment" forces you to use a ; before adding a comment. This is again to get rid of possible weird behaviour due to user errors (read: typos).
Labels and Even
When you need to align declarations to an even word in memory, like when declaring copper lists, you use the keyword even. Do NOT put this keyword after the label declaring your data as in this example:
This will NOT work. Do it like this:
This may be old news to you, but I spent 45 minutes trying to solve this little issue, as the assembler does not report an error. :) This copper list will not work though.
Top tip: a quick way to assemble and enter the debugger in one go is to use the command 'ad'
With the monitor you can look at the Amiga's memory. The monitor is started with the command 'h <label>'. A handy thing to do is to use 'h.w <label>' and then the monitor displays the memory in words, instead of bytes. As program code is always comprised of words, this makes it easier to 'read' the monitor output:
If you can call that easy. I hope I will not have to use it to debug stuff...
The disassembler allows you to look at the compiled program in a more friendly way. Use 'd <label> to check out the program:
One handy assemble option is optimize. You can use the command 'ao' and the assembler will look at your branches. If they fit into a byte (meaning the branch is less than 128 memory locations, it will change your branch to a .b variant, so bne will become bne.b and so on. This will save two bytes and two cycles, per branch. Yay!
OK, that's it for now. I am currently following the Scoopex tutorials on YouTube. They are a great resource, and after reading some 680000 books they are a great introduction to Amiga hardware programming. Fascinating. Highly recommended! See you next time!