Some extASM bugs i encountered ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ by Alain Brobecker (aka baah/Arm's Tech) (abrobecker@yahoo.com or rte de Dardagny; 01630 CHALLEX; FRANCE) This list doesn't claim to be exhaustive (note to the authors of extASM: i never claimed there are many bugs lefts =), but it might be handy to know about them, so here it is. I am not responsible for loss of datas or hairs... etc... I will also mention some differences between both version i dicovered while trying to assemble older sources with the new version. ----[ extASM v0.50b by Eivind Hagen ]------------------------------------------- 1. A local label cannot be the first label defined just after a #rept,#endr or the usage of a macro (maybe extASM doesn't remember previous global label?). So the first label after such structures must be global. 2. It crashes if the last byte in source code isn't carriage return (CR=&a), so remember to check this. I encountered the same problem in asm6502, because i was checking for the end of file only when the end of a line was reached. But asm6502 doesn't crash because i know about the problem and simply add a CR at the end of the file! =) ----[ extASM v1.00 by Terje Slettebų ]------------------------------------------ Bug 1 of v0.50b remains (for compatibility? =), bug 2 has been eradicated. 3. Switching the "Auto Pop PROCESS window" option will make extASM return an "illegal window handle" error and die. ArmOric patched the program to have the correct handle given: at offset &1f6c from the start of the !RunImage file replace "ldrNE r0,[r12,#-104]" with "movNE r0,r4". ----[ Differences ]------------------------------------------------------------- 4. The type of macros' parameters now need to be mentionned. So we must add ":r" after a register, ":i" after an integer constant... etc... 5. I used a variable defined by #set which name was notlast. Fine but when i tried to use it with #if it returned "variable last not known". The expression evaluator understand this as NOT(last), so be carefull. 6. While ".a&b" was a correct label in v0.50b, it isn't in v1.00. Maybe other characters are now unavailable (and maybe others are available). We have better use only a-z,A-Z and 0-9 chars...