Blueberry
Member |
I tried out this new ASM-One to see if it was worth switching back from AsmPro. I like the idea of using a program which is actively being developed (which was why I switched to AsmPro some 7 or 8 years ago...).
I only found one real showstopper, and that one is rather subtle. It concerns the special \@ marker which is used inside a macro to identify the particular macro invocation. This marker is replaced by a different, unique name on each macro invocation, so that macros can contain, e.g. unique labels.
In AsmPro, the value substituted for \@ is indeed unique for each macro invocation. However, in ASM-One, it is only unique for each source position of the macro invocation. That means that if the same file is included multiple times and that file contains a macro invocation containing \@, it will be given the same name each time. This breaks virtually all of my sources. It also means that including a file is not always the same as inserting its contents at the include position, which it should be.
Another bug which breaks some of my sources but which should be easy to fix, is that an rs.b inside a BSS section gives the error "Illegal Operator in BSS Area". Other sizes - rs.w and rs.l - work fine.
Then there are a couple of bugs that I fixed in AsmPro which are still present in ASM-One. The fixes should be easy to port over:
- The < operator is unsigned less or equal instead of signed less than.
- rept 0 repeats once, rather than zero times.
- The ^ operator on floats with a nonpositive exponent hangs.
- Bitfield instructions with wrapped bitfield (such as d0{22:14}) give an error. These are legal.
Among the additional features missing from ASM-One compared to AsmPro, I miss the most:
- Selectable editor font
- Syntax highlighting
- Ability to enter the debugger without assembling the source. In AsmPro, when "show source" is unticked, the AD command does not assemble. This could be viewed as a bug, but it is actually extremely useful, for instance for single-stepping loaded object files. I use this "feature" a lot.
One difference I really liked, however: In ASM-One, the registers are displayed as text below the code, instead of in their own window. This means that integer and FPU registers are shown at the same time. I have been really irritated by having to switch back and forth all the time while debugging.
I have not yet started on the things missing from AsmPro that are still missing from ASM-One. Some other time... :)
|