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 MC68000/MC68010 and CPU32 architecture is supported. For select mnemonics, some MC68020+ only variants are 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, PhxAss)commcomment(Devpac, PhxAss)commondb/dw/dl==dc.b|w|ldebug(PhxAss)dsource(PhxAss)entry,extrn,global,export==xdefelifequrlfequfequrfequrlfregiif(Devpac)imageimport==xreflocalmcf5XXXmodule(Devpac, PhxAss)nref(PhxAss)optc(PhxAss)public(PhxAss)rorg(Devpac, PhxAss)showoffset(PhxAss)struct/estructsymdebug(PhxAss)vdebugweak
Directives with known limitations
echo: vasm supports both expressions and strings; the plugin parses only stringsinclude: vasm supports angle-bracket paths (<file.i>); the plugin parses only quoted stringsincdir: vasm supports angle-bracket paths and multiple comma-separated paths; the plugin parses only one quoted stringorg: vasm supportsorg * + exprto reserve bytes; the plugin parses onlyorg expressionprintt: vasm supports multiple comma-separated strings; the plugin parses only one stringrept: vasm supports an optional iterator name as second parameter; the plugin parses only the countxref: vasm supportsxref.lvariant for long references; the plugin does not parse the.lsuffix
Floating-point suffixes
vasm supports floating-point suffixes .s, .d, .x, and .p; the plugin does not parse floating-point suffixes.
This affects data definition and offset directives that accept floating-point values. Code using these suffixes will show syntax errors.
blkdcdcbdsdxforsso
Labels
- single-digit local label
1$ -localuoption: allow local labels starting with_instead of.(Devpac)- ending with double-colon
::automatically exported (xdef) - referencing
global_name\local_namesyntax (PhxAss)
Builtin Symbols
_LK: wrong name, vasm uses__LK(Devpac)__MOVEMREGS: wrong name, vasm uses_MOVEMREGS(BAsm)- ` MOVEMSIZE`: missing, vasm defines it with a leading space (BAsm)
Visibility
REPTN: only valid insidereptorirpCARG,NARG: only valid insidemacro
Macros
- special symbols
\@@\@@!\@@?\@@@@\#\?n\.\+\-\<symbolname>\<$symbolname>
- valid label
\1\1\3\2 equ \4\+
- highlight illegal macro parameter names:
\X,\123
Misc
- string literals:
- vasm disables escape sequences by default; the plugin always handles them
- vasm supports quote doubling (
''''or"""") to include a quote character; the plugin does not
- add an option to allow whitespaces in instruction arguments (Issue)
- support
equr/regreplacement names:jsr _LVO_Something(MY_A7_CUSTOM_NAME)