Features

The latest version contains the following features:
General IDE enhancements   » top
  • "Open Folder" context menu available for all folders and files
  • "Sort" context menu with sub-menu available for all text files including
    • Case sensitive, case insensitive and numeric sorting
    • Sorting with and without removal of duplicates
    • Reverse ordering
    Open folder action in context menu Sort action in text editor context menu
  • The online help contains the entry "WUDSN IDE Guide" which contains multiple sections.
    • WUDSN IDE - mainly the documentation from the web site
      • Video links to the tutorial and release news
      • Features
      • Installation
      • FQA
      • Link
    • Assemblers - the information on the supported assemblers and their properties
      • General - links, syntax and support features
      • Instructions - all supported instruction including their descriptions grouped by type
      • Manual - direct access to the PDF, HTML or text manual file or files which are part of the compiler installation
    • Hardware - the information on the supported hardwares and the corresponding emulators and links
      • Reference documentation - Hardware specific PDF, HTML or text files with CPU and customer chips reference sheets and programming guides

    Integrated Help
Fully integrated assembler editor   » top
  • The Eclipse platform contains editors like for example the generic text editor. Editors can support one or more content types identified by file extensions. One editor can be the default for a specific file extension. WUDSN IDE provides an assembler editor and a corresponding content type for every compiler. Every assembler editor has a default compiler associated which in turn defines via the preferences which application is used to run the output file.
    IDE editors, content types and file associations
  • New content types and file associations for Atari 2600 compilers
    • DASM Source File (*.asm)
  • New content types and file associations for Atari 8-bit compilers
    • ATASM Source File (*.asm)
    • MADS Source File (*.asm, default)
    • XASM Source File (*.asx, default)
  • New content types and file associations for C64 compilers
    • ACME Source File (*.a, default)
  • New content types and file associations for NES compilers
    • ASM6 Source File (*.asm)
  • The default editor for an extension can be configured in section "File Associations" of the preferences with the button "Default"
    IDE file associations
  • Syntax highlighting colors and styles for comments, directives, all types of identifiers, legal opcodes, illegal opcodes, pseudo opcodes and strings
  • Single line comments for the current line selection can be toggled using "CTRL-7" or the editor context menu entry "Toggle Comment"
  • Configurable support for 16-bit opcodes of 65816
  • Built-in support for ATASM compiler , MADS compiler , XASM compiler , ACME compiler
  • Build in support for running compiler output files with the operating system default application without configuration effort
  • Build in support for Altirra emulator , Atari800Win emulator , Atari800MacX emulator , Atari++ emulator
  • Adding support for new compilers and application is possible via Eclipse extension points
    IDE compiler extensions
  • Compile or compile and run with a single key stroke or via menu
  • Toolbar button for "Compile and Run" which adapts to the hardware of the currently opened editor, for example it will show a C64 icon when using the "ACME (C64)" editor
  • The toolbar button for "Compile and Run" offers a pulldown menu which allows to run the output file with any of the applications configured in the preferences. This way you can run the output file easily with different emulators without changing the preferences. That can be very helpful if one emulator show a different behaviour than another or in case you have specified a build script as user defined application in the preferences
    Run with... for Atari 2600 Run with... for Atari 8-bit Run with... for C64
  • Open source and output folder directly from menu
  • Open compiler help directly from menu if the documentation is available in the default folder structure of the compiler executable
    IDE assembler menu
  • Complete list of compiler error and warning messages in the problems view
  • Direct navigation to the source location of the via double click on the problem message
  • Problem markers in the scroll area including tooltip with problem message
    IDE example source
  • German localization for all Eclipse plugin texts. The original compiler messages are not translated but some are mapped automatically
    • ATASM ".bank" warnings are mapped to info messages
  • Console view with original compiler output opens automatically in the background after compiling which useful in cases where the plugin is not yet complete. The "Compiler Console" is automatically brought to front when the compiler starts. This prevents the compiler output from being hidden behind other consoles in the console view
    IDE compiler console view
Content outline and source folding   » top
  • Activated via the standard menu "Window/Show View/Outline"
  • Automated asynchronous parsing while typing
  • Automated recursive parsing of source includes and merge with current outline
  • Positioning in the content outline remains stable while typing unless structure changes appear
  • Folding is active automatically when outline is visible
  • Folding for if/else/endif blocks
  • Outline and folding for definition section and implementation sections
  • Outline for equate definitions (including defining expression), label definitions and variable definitions
  • Outline and folding for enum and struct definitions
  • Outline and folding for macros definitions
  • Outline and folding for repeat sections
  • Outline and folding for procedure definitions
  • Outline and folding for local sections
  • Outline for source includes and binary includes
  • Type specific outline icons
  • Nested folding with tooltip for folded sections
  • Line end comment is used as short description
  • Toolbar with button to toggle the sorting order of the sections and labels. The state of the button is persisted automatically along with the respective source file. For files which do not have a setting yet, the setting from the currently opened file will be used
    IDE content outline
    IDE content folding
Content assist and code completion   » top
  • Content assist by pressing CTRL-Space for directives, legal opcode, illegal opcodes and pseudo opcodes
  • The content assist also recognizes if there is already and instruction in the current line and suggests the available identifiers instead if this is the case. This is the first version and it supports global identifiers in the current source file and source file included from there. Scoped identifiers of the form "a.b" are not yet supported
  • Completion proposal auto activation without pressing CTRL-Space after typing compiler dependent characters, for example "." in ATASM, "." or "#" in MADS and "!" in ACME
  • Type specific icon and mnemonic highlighting
  • Progressive filtering as you type
  • Automatic detection of lower case / upper case based on current input
  • Default case configurable in preferences
  • Illegal opcodes can be hidden via preferences
  • 16-bit opcodes of 65816 can hidden via preferences
    IDE content assist
  • Multi-line content completion and explicit cursor positioning, for example ".MA" becomes ".MACRO <cursor is here> <newline> .ENDM"
    Muli-line content completion and cursor positioning
  • Hyperlink navigation via CTRL-click to source includes and binary includes
  • Support for relative and absolute file paths
  • Source file are always opened with the same assembler editor, irrespective of the extension
  • The ".asm" extension for "ICL" source includes is appended automatically in MADS, if it is missing
  • The ".asx" extension for "ICL" source includes is appended automatically in XASM, if it is missing
  • Choice for binary includes to open the file with
    • the build in hex editor
    • the build in graphics editor
    • the default Eclipse editor (e.g. a text editor)
    • system editor (e.g. an emulator or a paint program)
  • Hyperlink navigation via CTRL-click to labels, equates, local definitions, macro definitions and procedure definitions. In case there is only one target, direct navigation takes place. In case there is more than one possible target, the type and line number of the target are displayed in a hyperlink popup. All included source files are also taken into account like in the content outline. In case there are targets from different files, the file name is also displayed as differentiator in the hyperlink popup.

    IDE navigation to source file
    IDE navigation to binary file
    IDE navigation to labels, equates, local definitions, macro definitions and procedure definitions
Hex Editor   » top
  • Read-only hex editor to inspect arbitrary files
  • Available via context menu including multi-file-selection to open several files at once
    Open With Hex Editor
  • The "Open With Hex Editor" menu entry closes an existing editor in case the file is already opened and thereby forces the file to be opened with the hex editor. In addition the hex editor is set as the default editor this one file. As a consequence double clicking the file in the package explorer will open it automatically with the hex editor, no matter which type of file is actually is. This saves you from always using the context menu, just because the file has no known file type. You can change the default editor again by just using the "Open With" context menu entry
  • Available via hyperlink navigation for binary includes
  • Context menu to copy parts of the file into the clipboard in different formats:
    • hex values (".byte $01,$02,...")
    • decimal values (".byte 1,2,...")
    • ASCII string
    This is very helpful to turn parts of a file into source code. The possibility to copy/paste into the binary file itself in order to modify is prepared but not working yet and will be completed later.
    Hex Editor context menu
  • Support for binary files, Atari COM files and Atari Disk Images
    Hex Editor file mode selection
  • The possible file modes for a binary file are computed automatically and used as default when opening the file
  • Unsupported file modes are detected and cannot be used
  • Files with a block structure get an outline in the outline view
  • Files with a corrupted block structure are detected and displayed as good as possible
    Hex Editor outline view
    Hex Editor with corrupted Atari COM file
Graphics Editor   »
  • Viewer for binary files and 8-bit image files.
    The most suitable supported converter and the corresponding default parameters are computed based on the file content, size and extension.
    The converters for the Atari standard image formats are based on FAIL , the excellent First Atari Image Library created by Piotr Fusik and Adrian Matoga.
    Platform File Extension File Format
    Atari 8-bit AP3 80x192, 256 colors, interlaced
    Atari 8-bit APC Any Point, Any Color, 80x96, 256 colors, interlaced
    Atari 8-bit CHR 8x8 charset, mono or multicolor
    Atari 8-bit CCI Champions' Interlace, 160x192, compressed
    Atari 8-bit CIN Champions' Interlace, 160x192
    Atari 8-bit CHG Gephard Hires Graphics, up to 320x200, mono
    Atari 8-bit CPR Trzmiel, 320x192, mono, compressed
    Atari 8-bit FNT Standard 8x8 font, mono
    Atari 8-bit GR8 Standard 320x192, mono
    Atari 8-bit GR9 Standard 80x192, grayscale
    Atari 8-bit HIP Hard Interlace Picture, 160x200, grayscale
    Atari 8-bit HR Hires 256x239, 3 colors, interlaced
    Atari 8-bit HR2 Hires 320x200, 5 colors, interlaced
    Atari 8-bit ILC APAC 80x192, 256 colors interlaced
    Atari 8-bit INP Interlace Picture 160x200, 7 colors, interlaced
    Atari 8-bit INT INT95a, up to 160x239, 16 colors, interlaced
    Atari 8-bit MCP McPainter, 160x200, 16 colors, interlaced
    Atari 8-bit MIC Micropainter 160x192, 4 colors
    Atari 8-bit PIC Koala MicroIllustrator, 160x192, 4 colors, compressed
    Atari 8-bit PLM Plama 256, 80x96, 256 colors
    Atari 8-bit RIP Rocky Interlace Picture, up to 160x239
    Atari 8-bit SXS 16x16 font, mono
    Atari 8-bit TIP Taquart Interlace Picture, up to 160x119
    C64 64C Charset, mono or multi color
    C64 SPR Sprite, mono or multi color
  • Viewer for GIF/JPG/BMP/PNG images
  • Available via context menu including multi-file-selection to open several files at once
    Open With Graphics Editor
  • The "Open With Graphics Editor" menu entry closes an existing editor in case the file is already opened and thereby forces the file to be opened with the graphics editor. In addition the graphics editor is set as the default editor this one file. As a consequence double clicking the file in the package explorer will open it automatically with the graphics editor, no matter which type of file is actually is. This saves you from always using the context menu, just because the file has no known file type. You can change the default editor again by just using the "Open With" context menu entry
  • Available via hyperlink navigation for binary includes
  • Conversion from binary files or 8-bit images files to GIF/JPG/BMP/PNG images
    • Up to different 3 source files depending on the converter
    • Configurable start offset for every source file, useful for extracting character sets
    • Configurable palette via the Image Palette view
    • Configurable number of rows and columns
    • Configurable spacing width for and spacing color to separate tiles and unused areas
    • Separate aspect ratio for display and saving the image file
    Conversion from binary files or 8-bit images files to GIF/JPG/BMP/PNG images
  • Conversion from GIF/JPG/BMP/PNG images to binary files or 8-bit images using JavaScript.
    • Separate aspect ratio for loading and displaying the image file
    • Default scripts are included. They can adjusted and saved along with the other parameters

    Conversion from GIF/JPG/BMP/PNG images to binary files or 8-bit images files
  • The image palette view associated with the graphics editor displays the palette entries and the color histogram. It supports filtering of unused colors, sorting by index and color frequencies, pre-settings and editing the palette when displaying 8-bit images
    Image palette view
  • Conversion files with extension ".cnv" are used to save the conversion direction and all conversion parameters
  • Support for relative file paths. If the file path is in the same folder as the ".cnv" file, it it automatically converted to a relative file path when the file name is defaulted or picked from the file browser dialog. This allows to move the ".cnv" file and the referenced source files around together without breaking the saved paths
Preferences for editing   » top
  • Available via entry "Preferences" from the menu "Window" (in Windows and Linux) or the menu "Eclipse" (in Mac OS X)
  • Configuration of syntax highlighting colors and styles for comments, directives, all types of identifiers, legal opcodes, illegal opcodes, numbers, pseudo opcodes and strings
  • For non unique identifiers, the syntax highlighting will try to be a best guess
  • Configuration of default case in content assist
    Preferences for compilers
Preferences for compiling   » top
  • Available via entry "Preferences" from the menu "Window" (in Windows and Linux) or the menu "Eclipse" (in Mac OS X)
  • Separate compiler preferences page for every type of hardware, i.e. Atari 8-bit and C64; Apple 2 support is in development by Nick Westgate
  • Preferences can be maintained for all compilers in parallel
  • Upon opening the compiler preferences, the tab for the compiler of the active editor is activated automatically
  • Configuration of illegal opcodes and 65816 opcodes support in syntax highlighting and content assist
    The configuration is offered only if the compiler supports the respective feature
  • Download links, configurable paths and default parameters for all compilers
  • The default file extension filter is set to "*.exe" on Windows and "*.*" on all other operating systems
  • The button "Apply Defaults" does explicitly not reset the paths to the executables
  • Configuration of parameters per compiler including predefined defaults to run out-of-the-box
    Possible variables are:
    • {$sourceFolderPath} The absolute path to the source folder
    • {$sourceFilePath} The absolute path to the source file
    • {$outputFolderPath} The absolute path to the output folder
    • {$outputFilePath} The absolute path to the output file
    • {$outputFileName} The name of the output file including its extension, for example "TestFile123.asm"
    • {$outputFileNameWithoutExtension} The name of the output file without extension, for example "TestFile123"
    • {$outputFileNameShortWithoutExtension} The name of the output file without extension shortened to 8 alphanumeric characters, for example "TESTFILE"
    Make sure that you don't remove parameters when you specify your own values
    If not, either creating the label definition file or parsing the compiler log may fail
    • ATASM requires the "-s" parameter to be present"
    • MADS requires the "-p" parameter to be present
    • ACME requires the "!to" directive in the source to be commented out to ensure the output file name from the command line is used
  • Preferences can be maintained for all possible applications of all compilers in parallel
    • Possibility to use the "Operating Sytem Default Application" of the platform to open the output file
      For Windows and Mac OS X choosing the "Operating Sytem Default Application" means that for ".xex" file the emulator will be started automatically without any further configuration
    • Possibility to use one of the pre-defined applications and optionally change the command line
    • Possibility to use a user defined application to open the output file
    • Possible variables are:
      • {$runnerExecutablePath} The absolute path to the executable of the application
      • {$sourceFolderPath} The absolute path to the source folder
      • {$sourceFilePath} The absolute path to the source file
      • {$outputFolderPath} The absolute path to the output folder
      • {$outputFilePath} The absolute path to the output file
      • {$outputFileName} The name of the output file including its extension, for example "TestFile123.asm"
      • {$outputFileNameWithoutExtension} The name of the output file without extension, for example "TestFile123"
      • {$outputFileNameShortWithoutExtension} The name of the output file without extension shortened to 8 alphanumeric characters, for example "TESTFILE"
  • Download links, configurable paths and default command lines for Atari++, Atari800Win, Atari800MacX emulators per compiler
  • The default file extension filter is set to "*.exe" on Windows and "*.*" on all other operating systems
    Preferences for compilers
Annotations for compiling   » top
  • For most use-cases, the defaults provided for the compilers and in the preferences are sufficient. But if you want have develop in parallel in multiple projects, for different platforms (Apple II and Atari 8-bit) or in different output formats (".XEX" and ".BIN") with the same compiler it may become cumbersome to change the preferences every time. Therefore WUDSN IDE offers annotations which you can put into the source code files. These annotations override the defaults and the preferences.
  • All annotations start with the prefix "@com.wudsn.ide.asm." followed by the lower case name of the annotation, an equals sign and the unquoted value. Example: "@com.wudsn.ide.asm.hardware=ATARI8BIT"
  • All annotations can be placed in comment lines at the begin of a source file. Some of the annotations are only relevant for the main source file, some are only relevant in include source files, some are relevant for all source files.
  • @com.wudsn.ide.asm.hardware
    • Defines the target hardware for which the preferences shall be evaluated, in particular which emulator is used to run the output file.
    • Allowed values are "APPLE2", "ATARI2600", "ATARI7800", "ATARI8BIT", "C64", "NES".
    • This annotation is relevant for all source files.
    • This annotation is only evaluated when a file is opened. So if you add this annotation or change its value, you have to close and re-open the file once.
    • Example: @com.wudsn.ide.asm.hardware=ATARI8BIT
  • @com.wudsn.ide.asm.mainsourcefile
    • Defines the main source file to which the current include source file belongs. When the "Compile" action is executed, the main source file is compiler instead of the current file.
    • Allowed values are file paths relative to the folder of the current include source file and absolute file paths.
    • This annotation is only relevant for include source files.
    • Example: @com.wudsn.ide.asm.mainsourcefile=ExampleMain.asm
  • @com.wudsn.ide.asm.outputfoldermode (planned for 1.7.0)
    • Overrides the "Output Folder Mode" from the preferences.
    • Allowed values are "SOURCE_FOLDER", "TEMP_FOLDER", "FIXED_FOLDER".
    • This annotation is only relevant for the main source file.
    • Example: @com.wudsn.ide.asm.outputfoldermode=SOURCE_FOLDER
  • @com.wudsn.ide.asm.outputfolder (planned for 1.7.0)
    • Overrides the "Output Folder" from the preferences and the "@com.wudsn.ide.asm.outputfoldermode" annotation.
    • Allowed values are file paths relative to the folder of the main source file and absolute file paths.
    • This annotation is only relevant for the main source file.
    • Example: @com.wudsn.ide.asm.outputfolder=..\out
  • @com.wudsn.ide.asm.outputfileextension (planned for 1.7.0)
    • Overrides the "Output File Extension" from the preferences.
    • Allowed values have to start with a period.
    • This annotation is only relevant for the main source file.
    • Example: @com.wudsn.ide.asm.outputfileextension=.bin
  • @com.wudsn.ide.asm.outputfile (planned for 1.7.0)
    • Overrides the "Output Folder", "Output File Extension" from the preferences and the automatic computation of the out file name based on the main source file name.
    • Allowed values are file paths relative to the folder of the main source file and absolute file paths.
    • This annotation is only relevant for the main source file.
    • Example: @com.wudsn.ide.asm.outputfile=..\out\output.bin
Known bugs   » top
Open bugs:
  • If you find any, please contact me
Fixed bugs:
  • 1.6.5
    • Automatic creation of ".DSK" disk images for Apple II now works correctly
    • Dirty indicator in Graphics Editor is now updated correctly
  • 1.6.4
    • The toolbar icons now work correctly with newer Eclipse versions
    • Atari 8-bit Graphics 12 Converter works again
    • Graphics editor now properly closes input stream for image files
    • Empty selection and too large numbers no longer lead to exceptions when opening the context menu for "Convert..."
    • Pressing refresh in the graphics converter now always updates the image pane correctly and not only if the size has changed
    • Inline repeats like ":64" in MADS are no longer detected as labels
    • Hex Editor now correctly detects erroneous COM files in case the segment length exceeds the file length (by one)
    • Disk images (for Apple II) are now updated also if only "Compile" instead of "Compile and Run" is used
    • Apple Commander integration is now part of the installation, as it should have been with 1.6.3
    • The HELLO program generated for the auto-start disk images of Apple II now displays a title and uses "BLOAD/CALL" instead of "BRUN" because of this bug in Apple DOS
      10 PRINT "Loading <title>" : PRINT CHR$(4);"BRUN WORLD" : CALL <address>
  • 1.6.3
    • First character of numbers is now correctly highlighted in #123
    • Source file includes via "INCSRC" are now correctly detected for ASM6
  • 1.6.2
    • Typing a "." to trigger the automatic content assist no longer locks-up
    • Default color for illegal opcodes changed to red as it was intended
    • German localization for the graphics editor is finally completed
    • Sorting of application in the preferences now is "Default, A...Z, User Defined" also in non English localizations
  • 1.6.1
    • 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
    • "Open Folder" command now also works for objects which are no resource or file themselves but can be adapted to one of these types. For example project explorer entries for Java classes
  • 1.6.0
    • Hyperlink navigation now also works for labels which contain an underscore
    • The key binding for the "Compile" menu is now "Shift-Ctrl-9" because it turned out that "Ctrl-0" is not available in all cases
    • The HexEditor is now also detecting the situation that the first block of a COM file is incorrect and display this correctly
    • Content assist has now correct new lines when inserting #IF, #WHILE and .TEST
    • Fonts and colors resources are disposed correctly now
    • Resetting to default syntax colors in the preferences works now
    • Elements of .ENUM are recognized as equates now also if they do not start of position 0
    • Elements of .STRUCT are recognized as labels now also if they do not start of position 0
    • Cursor is now positioned to the first character of an equate or label also if it is not defined starting at position 0
    • Cursor is now positioned to the first character of an equate or label also if it is not defined starting at position 0
  • 1.5.0
    • Syntax highlighting remains active now also after "Save as..."
    • Cursor is now placed correctly by content assist
    • The key binding for the "Compile" menu is now "Ctrl-0" instead of "Ctrl-Alt-0", so entering "}" is now possible again
    • XASM editor now correctly detects the "ORG" directive
    • The assembler editor toolbar contribution now also displays the label "Assembler" in the customizing dialog for the perspective
  • 1.4.4
    • The directive ".LOCAL" in ATASM is a normal directive now and does not start a folding section while in MADS it is really is a folding section from ".LOCAL" to ".ENDL"
    • "SIN()" and "RND()" in MADS are now recognized correctly even if there are no spaces before or after the directive
    • ".EN" and ."END" in MADS are now recognized correctly
    • Labels in "ORG" lines are now recognized correctly and rendered as separate tree entries
    • Preferences for lower/upper case instructions in content assist are now also evaluated if the for directives which do not start with letters like ".end"
    • When opening a file which is located outside of the workspace, the action to open folders and to compile the file are now not doing anything and will not cause exceptions. They will also be disabled once the new Eclipse version is mandatory
    • The 16 bytes per row in the hex editor are now separated by a space
  • 1.4.3
    • The output file is not opened anymore in case it has been there before but was not updated by the compiler due to compiler errors
    • The scroll bar and cursor in the editor are now stable also in the cases when the outline is changed by the latest user input
    • The hex editor now gets the focus correctly also when clicking on already opened files
  • 1.4.2
    • The folder which contains the output file and the symbols file is refreshed automatically after compiling to ensure that the Eclipse resource cache is in sync with the file system
    • Line end comments are now used as description for source and binary includes in the content outline
    • The "Open Folder" context menu entry works again, bug was introduced in version 1.4.0
  • 1.4.0
    • The "Assembler" menu is visible now only if an Assembler editor is active. The contained entries and their short cuts are now disabled if no Assembler editor is active
    • The output file is not deleted anymore before the compiler is started, instead it is only checked for being writeable. This allows for direct compilation into an existing ATR image
    • The name of the application used to open the output file is now included in the info message
  • 1.3.2
    • The content outline sometimes only found the first macro definition
    • Folding did not show up in all situations
    • Under Mac OS X, the file select dialog can now choose an "*.app" application like "Atari800MacX.app" since this is folder. The solution is a workaround to the a general Eclipse problem under MacOS X, see BUG 82155
  • Before 1.3.2
    • The "OK" and "Apply" buttons in the preferences are now always enabled, irrespective of the specified compiler and emulator paths
    • The focus is not back in editor window after compiling
    • The syntax highlighting of illegal opcodes fixed, now also uses the preferences setting
    • On German operating systems, the properties for the correct locale are now found
Planned features   » top
  • See the table below for the current feature set for the features which depend on the compiler.
    Features which are not supported by the compiler itself and hence cannot be supported by the IDE are marked as "n/a".
    Compiler Default Hardware Auto Completion Activation Single-Line Comments Block Comments Strings Opcodes Directives Compile Log Parsing Include Log Parsing Content Outline Label Definition File Format
    ACME C64 Yes: ! Yes: ;| n/a Yes: " Yes Partly Yes TBD Partly ACME
    ATASM Atari 8-bit Yes: . Yes: ; n/a Yes: " Yes Yes Yes TBD Yes XASM 3.0.1
    MADS Atari 8-bit Yes: . # Yes: ; * // Yes Yes: ' " Yes Yes Yes TBD Yes MADS
    XASM Atari 8-bit n/a Yes: ; * | n/a Yes: ' " Yes Yes Planned TBD Yes XASM 3.0.1