Known Issues
Resolving
includedirectives:- not evaluated, symbols are resolved across all files
- navigation to a symbol declared multiple times (possibly in multiple files) will show a popup chooser
- all included files must be located inside the project (or added as separate content root)
- conditional assembly directives are not evaluated
- macro block:
- highlight
jsr _LVO\1(a6)as invalid outside of macro - resolve global label inside current first
- highlight
Editor
- Code block handling of nested conditional assembly directives
Lexing/Parsing
The plugin supports only vasm-compatible syntax. Support for other assemblers is not a priority in the nearest future.
Unsupported CPUs
Currently, only 68000/68010 architecture is supported.
Non-supported instructions/registers will yield false positive errors
“Cannot resolve macro ‘$MNEMONIC$ | $REGISTER$’“
Using a non-supported address mode will result in a syntax error or
”<$ADDRESS_MODE$> expected, got $TEXT$”
Directives
Unsupported directives, these will display as a false positive
“Cannot resolve macro ‘$DIRECTIVE$’“
.sdregcargs(Devpac)commcommentcommondb/dw/dl==dc.b|w|ldebugdsourceentry,extrn,global,export==xdefelifequrlfequrfequrlfregiif(Devpac)imageimport==xrefmcf5XXXmodulenref(PhxAss)optcpublicrorgrsevenshowoffset(PhxAss)struct/estructsymdebugweak
MadMac assembler specific (vasm Docs) (a dot may optionally precede all directives):
absassertdphraseglobllongmacundefnlistoffsetphraseqphrase
Directives with known limitations
printt: multiple strings
Labels
- single-digit local label
1$ - allow
@(Devpac) -ldotsoption: allow dots within identifiers-localuoption: allow local labels starting with_instead of.(Devpac)- ending with double-colon
::→ automatically exported (xdef) - allow referencing
global_name\local_namesyntax (PhxAss)
Builtin Symbols
REPTN: only valid insidereptCARG,NARG: only valid insidemacro
Macros
- macro declaration variants:
macro<$macroName$>(not supported by vasm)
- special symbols
\@!\@?\@@\#\?n\.\+\-\<symbolname>\@<symbolname>
- valid label
\1\1\3\2 equ \4\+
- highlight illegal macro parameter names:
\X,\123
Misc
- string literals:
'\'and''''are valid
- add option to allow whitespaces in instruction arguments (Issue)
- support
equr/regreplacement names:jsr _LVO_Something(MY_A7_CUSTOM_NAME)