After 13 months of development, the new version is ready and released. It contains so many improvements and fixes that the most challenging part will be rolling them all out in a structured way. That is why I'll group the features, fix them together per topic this time, and mention the same thing multiple times when required. Currently, I am not even sure if a single release news video will be enough to cover everything without driving me crazy and without demanding too much from the audience. And, of course, they will be bugs. But I think the best way to find them is to roll the version out to you. The new features are not yet described on the tab "Features" on WUDSN IDE, and there are no screenshots yet, but they will follow.

Installation

  • Because of the massive restructuring in the source and the packaging, please make sure you uninstall any previous version of WUDSN IDE first and remove all plugins named "com.wudsn...." in the "eclipse/plugins" folder of your installation.
  • Due to the restructuring in the preferences, you should note down your settings because some might be gone afterward.
  • Then, you can install it as usual via the update site http://www.wudsn.com/update.
  • Please note that the JDK 1.6.x or above as runtime is now mandatory.

Atari 2600

  • Asymmetrical Playfield converter added to the graphics editor.

Atari 7800

  • Atari 7800 was added as a supported platform, with EMU7800 as the emulator.

Atari 8-bit

  • Atari 800 Emulator added to preferences including the not-so-simple required Linux command line "xterm -e atari800 -keypad -run ${outputFilePath}"
  • The default command line for Altirra now includes the new "/singleinstance" option, so the emulator must not be stopped manually before pressing "Compile & Run". New default command line is "${runnerExecutablePath} /singleinstance ${outputFilePath}"

Editor

  • Directives, opcodes, and identifiers can now also be case-sensitive. This enables proper syntax highlighting and content assistance for KickAss.
  • New outline type and separate icons for binary include files and binary output files (".SAV" in MADS, ".TO" in ACME)
  • New preferences setting to choose the handling of errors and warnings. By default, the cursor is positioned to the first error or warning. Now, you may also choose to place the cursor only on the first error and ignore warning messages for positioning. This is helpful when cleaning up large projects with many warnings, such as unused labels in decompiled executables.
  • Syntax highlighting now correctly recognizes identifiers, labels, and numbers and whether they are parts of other identifiers.
  • Hyperlink navigation for compound labels "foo.bar" is now resolved to "foo" or "for.bar", depending on the part of the identifier the cursor is pointing at
    Hyperlink navigation for compound labels

Compilers

  • All compilers can now be used on all platforms. The layout of the preferences has been adapted accordingly. You specify the path the compiler executable once and can customize its parameters then for every platform.
  • Every compiler has a default platform, e.g., "ATARI8BIT" for MADS and "C64" for KickAsss.
  • New source property "@com.wudsn.ide.asm.hardware=" can be used to specify the platform in a source file comment when compiling for a non-default platform, e.g., "@com.wudsn.ide.asm.hardware=C64" when compiler for C64 with MADS. Please note that you must close and re-open the file to take effect.

Compiling

  • A new preferences option, "Wait for the end of application", was added to wait for every application to complete and record its output in the console window. This is useful in case you don't simply start an emulator but a complex script.
  • Am improved console output, including the date & time of compilation and the full command line for the compiler and application.
  • Duplicate error messages caused by multi-pass compiling are now filtered out in the "Problems" view.

Emulators

  • The emulator is not started now if the binary output of the compiler has zero length. DASM creates such files in case of fatal errors.
  • Java-based compilers like KickAss are now supported. The selection of the compiler executable now allows ".jar" files and starts them as "java -jar <file.jar>".

Include File Handling

  • The new source property "@com.wudsn.ide.asm.mainsourcefile=" can specify which main/parent source file comment shall be used when compiling a source include file.
  • Error messages are now correctly attached to the include files, provided the files reside in the same or a sub-directory. Currently applies to ATASM, DASM, and MADS. The other compilers will follow, of course.

Source Level Breakpoints & Debugging

  • The "dream team" WUDSN IDE - MADS - Altirra is proud to present the first source-level debugging for 6502 environments.
  • New preferences variable "${outputFilePathWithoutExtension}" added as short form of "${outputFolderPath}/${outputFileNameWithoutExtension}".
  • DASM support completed. Default compiler options for DASM are now "${sourceFilePath} -o${outputFilePath} -f3 -v5 -l${outputFilePathWithoutExtension}.lst" and the ".lst" file is parsed for all types of errors.
  • MADS default compiler options "${sourceFilePath} -o:${outputFilePath} -p -t:${outputFilePathWithoutExtension}.lab -l:${outputFilePathWithoutExtension}.lst".
    Source level breakpoints

KickAss

  • Constants, including their descriptions (that was a hell of a job...) added.
  • Case-sensitive instructions are now supported.
  • Case-sensitive identifiers are now supported.
  • The selection of the executable compiler now allows ".jar" files and starts them as "java -jar <file.jar>".
  • Label definitions can have a ":" suffix.
  • Hyperlink navigation works for source includes via ".import", binary includes via "LoadBinary/LoadSID/LoadPicture", binary file output via "createFile".
  • Source folding for blocks work.
  • Notes:
    • Only labels can start a column 0. Mark a block and press TAB/SHIFT-TAB to indent all code, vars, and functions as required.
    • Named blocks and macro definitions are not yet handled correctly, especially when nested.
    • Some built-in functions like "sin()" are not yet highlighted.

HexEditor

  • HexEditor detects and supports C64 PRG files now.
  • Clicking on a block in the HexEditor outline now selects the corresponding block in the editor for easy copying.

Online Help

  • The new section "Assemblers" in the built-in help with links to the compiler help file or directory and a complete list of instructions grouped by their type.
  • Video tutorial 7 added to overview.
    Instructions per compiler in the online help

Fixes

  • Clicking in the outline always positions the cursor correctly in the source, not only the first time.
  • All names of content types are now translated correctly in the preferences.
  • The "Open Folder" command now works for objects that are no resources or files but can be adapted to one of these types—for example, project explorer entries for Java classes.