Hello, I was actually the person who approached Peter about NES development.
I have been learning NES programming lately and I have been using ASM6 for assembly. Notepad++ syntax highlighting just wasn't cutting it for me and I stumbled onto WUDSN while looking for 6502 IDE's. I tried it out and immediately fell in love with all of the cool features but it didn't support any of the common NES assemblers so I sent some emails.
I've since been tweaking one of the existing XML files from inside the .jar file and have made a fairly capable ASM6 xml file. The XML file controls stuff like which directives do what and so on.
Here is the XML file if you are interested. I've just been overwriting (open file as archive with winrar or 7zip or whatever) the eclipse/plugins/com.wudsn.ide.asm.compilers_1.6.1.jar/com/wudsn/ide/asm/compiler/DASM/DasmCompiler.xml file and selecting DASM/2600 as my compiler for now.
This XML isn't perfect for ASM6 but it gets the job done; perhaps a CA65 compatible file is in order?
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<instructionset
completionProposalAutoActivationCharacters="."
singleLineCommentDelimiters=";"
multipleLinesCommentDelimiters=""
stringDelimiterCharacters="'""
blockDefinitionCharacters=""
identifiersCaseSensitive="false"
identifierStartCharacters="?@_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
identifierPartCharacters="_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
identifierSeparatorCharacter=""
labelDefinitionSuffixCharacter=":"
macroUsagePrefixCharacter=""
instructionsCaseSensitive="false"
sourceIncludeDefaultExtension="">
<directive cpu="ALL" name="ALIGN" title="_A_l_i_g_n program counter" type="DIRECTIVE" proposal="ALIGN _"/>
<directive cpu="ALL" name="BASE" title="Set the _B_a_s_e program address" type="DIRECTIVE" proposal="BASE _"/>
<directive cpu="ALL" name="BIN" title="Include _b_i_nary file" type="BINARY_INCLUDE_DIRECTIVE" proposal="BIN "_""/>
<directive cpu="ALL" name="BYTE" title="Declare constant as _b_y_t_e" type="DIRECTIVE" proposal="BYTE _"/>
<directive cpu="ALL" name="DC.B" title="_Declare _constant as _byte" type="DIRECTIVE" proposal="DC.B _"/>
<directive cpu="ALL" name="DC.W" title="_Declare _constant as _word" type="DIRECTIVE" proposal="DC.W _"/>
<directive cpu="ALL" name="DB" title="_Declare constant as _byte" type="DIRECTIVE" proposal="DB _"/>
<directive cpu="ALL" name="DW" title="_Declare constant as _word" type="DIRECTIVE" proposal="DW _"/>
<directive cpu="ALL" name="DL" title="_Declare only _lower byte of a 16-bit word" type="DIRECTIVE" proposal="DL _"/>
<directive cpu="ALL" name="DH" title="_Declare only _higher byte of a 16-bit word" type="DIRECTIVE" proposal="DH _"/>
<directive cpu="ALL" name="DS.B" title="_Declare _space in _bytes" type="DIRECTIVE" proposal="DS.B _"/>
<directive cpu="ALL" name="DSB" title="_Declare _space in _bytes" type="DIRECTIVE" proposal="DSB _"/>
<directive cpu="ALL" name="DS.W" title="_Declare _space in _words" type="DIRECTIVE" proposal="DS.W _"/>
<directive cpu="ALL" name="DSW" title="_Declare _space in _words" type="DIRECTIVE" proposal="DSW _"/>
<directive cpu="ALL" name="ELSE" title="_E_l_s_e" type="DIRECTIVE" proposal="ELSE_"/>
<directive cpu="ALL" name="ELSEIF" title="_E_l_s_e _I_f" type="DIRECTIVE" proposal="ELSEIF _"/>
<directive cpu="ALL" name="ENDIF" title="_E_n_d of _I_F" type="END_FOLDING_BLOCK_DIRECTIVE" proposal="ENDIF_"/>
<directive cpu="ALL" name="ENDM" title="_E_n_d of _macro" type="END_SECTION_DIRECTIVE" proposal="ENDM_"/>
<directive cpu="ALL" name="ENDE" title="_E_n_d _enumeration definition" type="END_SECTION_DIRECTIVE" proposal="ENDE_"/>
<directive cpu="ALL" name="ENUM" title="Define _e_n_u_meration" type="BEGIN_ENUM_DEFINITION_SECTION_DIRECTIVE" proposal="ENUM _\nENDE"/>
<directive cpu="ALL" name="EQU" title="Set _e_q_uate" type="DIRECTIVE" proposal="EQU _"/>
<directive cpu="ALL" name="ERROR" title="End assmbly with _e_r_r_o_r" type="DIRECTIVE" proposal="ERROR _"/>
<directive cpu="ALL" name="FILLVALUE" title="Change the default _f_i_l_l _v_a_l_u_e for PAD and ALIGN" type="DIRECTIVE" proposal="FILLVALUE _"/>
<directive cpu="ALL" name="HEX" title="Declare raw _h_e_x data" type="DIRECTIVE" proposal="HEX _"/>
<directive cpu="ALL" name="IF" title="_I_f" type="BEGIN_FOLDING_BLOCK_DIRECTIVE" proposal="IF _\nENDIF"/>
<directive cpu="ALL" name="IFDEF" title="_I_f _d_e_fined" type="BEGIN_FOLDING_BLOCK_DIRECTIVE" proposal="IFDEF _\nENDIF"/>
<directive cpu="ALL" name="IFNDEF" title="_I_f _not _d_e_fined" type="BEGIN_FOLDING_BLOCK_DIRECTIVE" proposal="IFNDEF _\nENDIF"/>
<directive cpu="ALL" name="INCBIN" title="_I_n_clude _b_i_nary file" type="BINARY_INCLUDE_DIRECTIVE" proposal="INCBIN "_""/>
<directive cpu="ALL" name="INCLUDE" title="_I_n_c_l_u_d_e source file" type="SOURCE_INCLUDE_DIRECTIVE" proposal="INCLUDE "_""/>
<directive cpu="ALL" name="INCSRC" title="_I_n_clude _sou_r_ce file" type="SOURCE_INCLUDE_DIRECTIVE" proposal="INCSRC "_""/>
<directive cpu="ALL" name="MACRO" title="Define _m_a_c_r_o" type="BEGIN_MACRO_DEFINITION_SECTION_DIRECTIVE" proposal="MACRO _\nENDM _"/>
<directive cpu="ALL" name="ORG" title="Set _o_ri_gin if it hasn't been assigned yet, otherwise will function like PAD" type="BEGIN_IMPLEMENTATION_SECTION_DIRECTIVE" proposal="ORG _"/>
<directive cpu="ALL" name="PAD" title="_P_a_d memory from current address to the specified address with FILLVALUE" type="BEGIN_IMPLEMENTATION_SECTION_DIRECTIVE" proposal="PAD _"/>
<directive cpu="ALL" name="REPT" title="Begin _r_e_pea_t block" type="BEGIN_REPEAT_SECTION_DIRECTIVE" proposal="REPT _\nENDR"/>
<directive cpu="ALL" name="ENDR" title="_E_n_d _repeat block" type="END_SECTION_DIRECTIVE" proposal="ENDR_"/>
<directive cpu="ALL" name="WORD" title="Declare constant as _w_o_r_d" type="DIRECTIVE" proposal="WORD _"/>
<illegalopcode cpu="MOS6502_ILLEGAL" name="ANC" title="_A_nd byte with accumulator and set _carry" proposal="ANC _" flags="N,Z,C" addressing="Immediate" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="ANE" title="_A_nd X register with accumulator but _exact operation unknown" proposal="ANE _" addressing="Immediate" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="ARR" title="_And byte with accumulator then _rotate one bit _right in accumulator" proposal="ARR _" flags="N,V,Z,C" addressing="Immediate" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="DCP" title="_De_crement memory by one and com_pare with memory" proposal="DCP _" flags="C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y;(Indirect,X); (Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="ISB" title="_Increase memory by one, then _subtract memory from accumulator (with _borrow)" proposal="ISB _" flags="N,V,Z,C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y;(Indirect,X); (Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="LAS" title="_Load _accumulator, X register and _stack pointer with with memory anded stack pointer" proposal="LAS _" flags="N,Z" addressing="Absolute,Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="LAX" title="_Load _accumulator and _X register with memory" proposal="LAX _" flags="N,Z" addressing="Zero Page; Zero Page,Y; Absolute; Absolute,Y;(Indirect,X);(Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="LXA" title="And byte with accumulator, then _load value into _X register and _accumulator" proposal="LXA _" flags="N,Z" addressing="Immediate" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="RLA" title="_Rotate one bit _left in memory, then and _accumulator with memory" proposal="RLA _" flags="N,Z,C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y;(Indirect,X); (Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="RRA" title="_Rotate one bit _right in memory, then add memory to _accumulator (with carry)" proposal="RRA _" flags="N,V,Z,C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y;(Indirect,X); (Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SAX" title="_Store _accumulator anded with _X register" proposal="SAX _" flags="N,Z" addressing="Zero Page;Zero Page,Y;(Indirect,X);Absolute" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SBX" title="_Subtract _byte from _X register (without borrow) after X register anded with the accumulator and store result in X register" proposal="SBX _" flags="N,Z,C" addressing="Immediate" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SHA" title="_Store (don't know what _H is for) X register anded with _accumulator anded with 7" proposal="SHA _" flags="-" addressing="Absolute,Y ;(Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SHS" title="And X register with accumulator and move to stack pointer. _Store _high byte of the target address of the argument +1 anded with _stack pointer" proposal="SHS _" flags="-" addressing="Absolute,Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SHX" title="_Store _high byte of the target address of the argument +1 anded with _X register" proposal="SHX _" flags="-" addressing="Absolute,Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SHY" title="_Store _high byte of the target address of the argument +1 anded with _Y register" proposal="SHY _" flags="-" addressing="Absolute,x" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SLO" title="_Shift _left one bit in memory, then _or accumulator with memory" proposal="SLO _" flags="N,Z,C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y; (Indirect,X); (Indirect),Y" />
<illegalopcode cpu="MOS6502_ILLEGAL" name="SRE" title="_Shift _right one bit in memory, then _eor accumulator with memory" proposal="SRE _" flags="N,Z,C" addressing="Zero Page; Zero Page,X; Absolute; Absolute,X; Absolute,Y;(Indirect,X);(Indirect),Y" />
</instructionset>
P.S. If you haven't yet tried out WUDSN, do it! It rocks! Just follow along with the installation instructions on the website and you'll be up and running in no time!