Compare commits

...

6 Commits

Author SHA1 Message Date
Peter Dell 2863684971 Make "SOURCE_FOLDER the default in preferences
https://github.com/wudsn/wudsn-ide/issues/18
2023-08-30 21:59:23 +02:00
Peter Dell 1febfd4b1f Evaluate RunnerPaths.getDefaultRunnerAbsolutePath 2023-08-30 21:35:04 +02:00
Peter Dell 6472440284 Update documentation for "WUDSN_LANGUAGE". 2023-08-30 20:43:50 +02:00
Peter Dell 33b726f793 Update todos.txt 2023-08-30 20:18:33 +02:00
Peter Dell 8eccd73803 Rename AtariClassic-Regular.pdf 2023-08-30 20:18:20 +02:00
Peter Dell 819e155719 Update ide-features.section.html 2023-08-28 01:59:30 +02:00
9 changed files with 120 additions and 210 deletions

View File

@ -11,6 +11,7 @@
<li><a href="#FAQWUDSNInstallationUpdateSiteRequiredItems">Why do I get "Cannot complete the install because one or more required items could not be found" when updating the plugin from the update site?</a></li>
<li><a href="#FAQEclipseUserGuide">How do I use Eclipse?</a></li>
<li><a href="#FAQWUDSNInstallationPreferencesNotVisible">Why is the "Assembler" section not visible in the preferences?</a></li>
<li><a href="#FAQWUDSNSelectTranslation">How do I select the translation for the menus and messages?</a></li>
</ul>
</li>
<li><a href="#Configuration">Configuration</a>
@ -86,6 +87,10 @@
<h4>Why is the "Assembler" section not visible in the preferences?</h4>
<p>If the WUDSN IDE sections and features are not visible after a successful installation, you probably use an outdated Java version. For example, Java 1.6 has been <a href="http://www.oracle.com/technetwork/java/eol-135779.html" target="_blank" rel="noopener noreferrer">out of maintenance since 2013/02</a>. This seems to be a common problem on Mac OS X, even in Mavericks (10.9), which still uses Java 1.6 by default. Ensure you have at least the Java version mentioned in the installation section for the IDE installed and that Eclipse has started using that version.</p>
</div>
<div id="FAQWUDSNSelectTranslation">
<h4>How do I select the translation for the menus and messages?</h4>
<p>The WUDSN IDE installer installs English and German translations for Eclipse and WUDSN IDE by default. When you start WUDSN IDE, the translation for the primary language of your operating system is used. Use can override this selection by setting the environment variable "WUDSN_LANGUAGE" to "en" "de".</p>
</div>
<h3 id="Configuration">Configuration</h3>
<div id="FAQProblemsView">
<h4>Why do I see wrong messages in the "Problems" view?</h4>
@ -99,7 +104,6 @@
<h4>Why must I put ";@com.wudsn.ide.lng.hardware=..." in the source file?</h4>
<p>The association with the file extension with your compiler's editor (done in the preferences; see before) does not determine which platform you want to create output. Therefore, this additional annotation in the main source file must tell the IDE, which is the target platform. It is used to find the correct compiler and emulator settings, which can differ per platform. Every compiler has a default platform (see the online help in the IDE), but it can also be used on every other platform. Therefore, you must specify the target platform in the main source file if you use a non-default platform.</p>
</div>
<h3 id="Editing">Editing</h3>
<div id="FAQEclipseSpeed">
<h4>Why is editing sometimes slow, or is everything blocked, showing the wait cursor?</h4>
@ -149,7 +153,7 @@
<h3 id="Building">Building</h3>
<div id="FAQPrimaryAssembler">
<h4>Why is MADS the primary assembler?</h4>
<p>When I started with WUDSN IDE, ATASM was the first supported compiler. The reason was simple: 90% of my sources are in ATASM format. ATASM is very comprehensive and fast. Its capabilities to define constants and byte sequences are extensive (".BYTE", ".WORD", ".DBYTE", ".FLOAT", ".SBYTE" for ATASCII, ".CBYTE" for terminated strings, separate offset for all constants). Over time, additional platform compilers have been added, and their support will be completed step by step. When the support for MADS was relatively complete, I found it the most powerful compiler I have ever seen and used. The support for ".PROC/.ENDPROC" has revolutionized how I write assembler code. It allows logical structuring and visibility control without any runtime overhead. At the same time, MADS is compatible with MAC/65 and XASM, and even ATASM sources can be adapted to MADS with a few minor changes described below. Therefore, MADS has been the primary compiler since WUDSN IDE version 1.6.0.</p>
<p>When I started with WUDSN IDE, ATASM was the first supported compiler. The reason was simple: 90% of my sources are in ATASM format. ATASM is very comprehensive and fast. Its capabilities to define constants and byte sequences are extensive (".BYTE", ".WORD", ".DBYTE", ".FLOAT", ".SBYTE" for ATASCII, ".CBYTE" for terminated strings, separate offset for all constants). Over time, additional platform compilers have been added, and their support will be completed step by step. When the support for MADS was relatively complete, I found it the most potent compiler I have ever seen and used. The support for ".PROC/.ENDPROC" has revolutionized how I write assembler code. It allows logical structuring and visibility control without any runtime overhead. At the same time, MADS is compatible with MAC/65 and XASM, and even ATASM sources can be adapted to MADS with a few minor changes described below. Therefore, MADS has been the primary compiler since WUDSN IDE version 1.6.0.</p>
</div>
<div id="FAQPrimaryAssemblerExample">
<h4>Why do I get the error "No ORG defined" when compiling the example from the tutorial?</h4>
@ -214,5 +218,4 @@
<div id="FAQOtherEmulators">
<h4>How can I use other emulators?</h4>
<p>You can "re-use" the existing tabs and specify another emulator's executable. Using "User Defined Application", you can select whatever you want. When using "User Defined Application", no disk image is created or updated. You can use this setting to have your script, which puts the executable file onto a disk image of your choice, using additional tools like "dir2atr.exe" or "AppleCommander," for example.</p>
</div>
</div>

View File

@ -8,13 +8,14 @@
<li><a href="#HexEditor">Hex Editor</a></li>
<li><a href="#GraphicsConversionEditor">Graphics Conversion Editor</a></li>
<li><a href="#PreferencesForEditing">Preferences for Editing</a></li>
<li><a href="#PreferenesForBuidingAndRunning">Preferences for Building and Running</a></li>
<li><a href="#PreferenesForBuildingAndRunning">Preferences for Building and Running</a></li>
<li><a href="#AnnotationsForBuilding">Annotations for Building</a></li>
<li><a href="#PlannedFeatures">Planned Features</a></li>
<li><a href="#KnownBugs">Known Bugs</a></li>
</ul>
<h5 id="IDE">General IDE Enhancements</h5>
<ul>
<li>The environment variable "WUDSN_LANGUAGE" can be set to "en" or "de" to override the default locale of the IDE used for all menu and message texts.</li>
<li>The "Open Folder" context menu is available for all folders and files.</li>
<li>The "Sort" context menu with sub-menu is available for all text files, including <br />
<ul>
@ -181,7 +182,7 @@ This is very helpful to turn parts of a file into source code. The possibility t
<li>Files with a block structure get an outline in the outline view.</li>
<li>Files with a corrupted block structure are detected and displayed as well as possible.<br /><img src="productions/java/ide/features/ide-hex-editor-outline.png" alt="Hex Editor outline view" /> <br /><img src="productions/java/ide/features/ide-hex-editor-atari-com-file.png" alt="Hex Editor with corrupted Atari COM file " /></li>
</ul>
<h5 id="GraphicsConversionEditor">Graphics Conversion Editor</a></h5>
<h5 id="GraphicsConversionEditor">Graphics Conversion Editor</h5>
<p>The Graphics Conversion Editor views and converts many binary and image file formats. It has the following features.</p>
<ul>
<li>Viewer for binary files and 8-bit image files. <br />The most suitable supported converter and the corresponding default parameters are computed based on the file content, size, and extension. <br />The converters for the Atari standard image formats are based on <a href="https://sourceforge.net/projects/recoil" target="_blank" rel="noopener noreferrer">RECOIL fka. FAIL</a> is the excellent First Atari Image Library created by Piotr Fusik and Adrian Matoga. <br />
@ -351,7 +352,7 @@ This is very helpful to turn parts of a file into source code. The possibility t
<li>For non-unique identifiers, the syntax highlighting will try to be the best guess.</li>
<li>Configuration of default case in content assistance.<br /><img src="productions/java/ide/features/ide-assembler-preferences-editor.png" alt="Preferences for compilers" /></li>
</ul>
<h5 id="PreferencesForBuidingAndRunning">Preferences for Building and Running</h5>
<h5 id="PreferenesForBuildingAndRunning">Preferences for Building and Running</h5>
<p>The build process of WUDSN IDE is configurable via language and assembler/compiler-specific preferences. They are available via the entry "Preferences" from the menu "Window" (under Windows and Linux) or the menu "Eclipse" (under macOS)</p>
<ul>
<li>Download links, configurable paths, and default parameters are provided for all assemblers and compilers.</li>
@ -410,7 +411,7 @@ Make sure that you don't remove parameters when you specify your values.<br />If
</ul>
</li>
</ul>
<h5 id="AnnotationsForBuiding">Annotations for Building</h5>
<h5 id="AnnotationsForBuilding">Annotations for Building</h5>
<ul>
<li>For most use cases, the defaults provided for the compilers and in the preferences are sufficient. But suppose you want to develop in parallel in multiple projects for different platforms (e.g., Apple II and Atari 8-bit) or various output formats (".XEX" and ".BIN") with the same assembler/compiler. In that case, changing the preferences every time may become cumbersome. Therefore, WUDSN IDE offers annotations to put into the source code files. These annotations override the defaults and the settings from the preferences.</li>
<li>All language annotations start with the prefix "@com.wudsn.ide.lng." followed by the lower-case name of the annotation, an equals sign, and the unquoted value. Example: "@com.wudsn.ide.lng.hardware=ATARI8BIT"</li>
@ -472,70 +473,70 @@ Make sure that you don't remove parameters when you specify your values.<br />If
<li>The table below shows the current core feature set that depends on the compiler. <br />Features not supported by the compiler itself and hence cannot be supported by the IDE are marked as "n/a". <br />
<table>
<tbody>
<tr style="height: 48px;">
<th style="width: 4.81912%; height: 48px;">Compiler</th>
<th style="width: 9.14503%; height: 48px;">Default Hardware</th>
<th style="width: 14.66%; height: 48px;">Auto-Completion Activation</th>
<th style="width: 12.0473%; height: 48px;">Single-Line Comments</th>
<th style="width: 9.08325%; height: 48px;">Block Comments</th>
<th style="width: 3.83079%; height: 48px;">Strings</th>
<th style="width: 4.75832%; height: 48px;">Opcodes</th>
<th style="width: 5.31619%; height: 48px;">Directives</th>
<th style="width: 11.1208%; height: 48px;">Compile Log Parsing</th>
<th style="width: 8.33815%; height: 48px;">Content Outline</th>
<th style="width: 14.6408%; height: 48px;">Label Definition File Format</th>
<tr>
<th>Compiler</th>
<th>Default Hardware</th>
<th>Auto-Completion Activation</th>
<th>Single-Line Comments</th>
<th>Block Comments</th>
<th>Strings</th>
<th>Opcodes</th>
<th>Directives</th>
<th>Compile Log Parsing</th>
<th>Content Outline</th>
<th>Label Definition File Format</th>
</tr>
<tr style="height: 24px;">
<td style="width: 4.81912%; height: 24px;">ACME</td>
<td style="width: 9.14503%; height: 24px;">C64</td>
<td style="width: 14.66%; height: 24px;">Yes: !</td>
<td style="width: 12.0473%; height: 24px;">Yes: ;|</td>
<td style="width: 9.08325%; height: 24px;">n/a</td>
<td style="width: 3.83079%; height: 24px;">Yes: "</td>
<td style="width: 4.75832%; height: 24px;">Yes</td>
<td style="width: 5.31619%; height: 24px;"><i>Partly</i></td>
<td style="width: 11.1208%; height: 24px;">Yes</td>
<td style="width: 8.33815%; height: 24px;"><i>Partly</i></td>
<td style="width: 14.6408%; height: 24px;">ACME</td>
<tr>
<td>ACME</td>
<td>C64</td>
<td>Yes: !</td>
<td>Yes: ;|</td>
<td>n/a</td>
<td>Yes: "</td>
<td>Yes</td>
<td><i>Partly</i></td>
<td>Yes</td>
<td><i>Partly</i></td>
<td>ACME</td>
</tr>
<tr style="height: 24px;">
<td style="width: 4.81912%; height: 24px;">ATASM</td>
<td style="width: 9.14503%; height: 24px;">Atari 8-bit</td>
<td style="width: 14.66%; height: 24px;">Yes: .</td>
<td style="width: 12.0473%; height: 24px;">Yes: ;</td>
<td style="width: 9.08325%; height: 24px;">n/a</td>
<td style="width: 3.83079%; height: 24px;">Yes: "</td>
<td style="width: 4.75832%; height: 24px;">Yes</td>
<td style="width: 5.31619%; height: 24px;">Yes</td>
<td style="width: 11.1208%; height: 24px;">Yes</td>
<td style="width: 8.33815%; height: 24px;">Yes</td>
<td style="width: 14.6408%; height: 24px;">XASM 3.0.1</td>
<tr>
<td>ATASM</td>
<td>Atari 8-bit</td>
<td>Yes: .</td>
<td>Yes: ;</td>
<td>n/a</td>
<td>Yes: "</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>XASM 3.0.1</td>
</tr>
<tr style="height: 24px;">
<td style="width: 4.81912%; height: 24px;">MADS</td>
<td style="width: 9.14503%; height: 24px;">Atari 8-bit</td>
<td style="width: 14.66%; height: 24px;">Yes: . #</td>
<td style="width: 12.0473%; height: 24px;">Yes: ; * //</td>
<td style="width: 9.08325%; height: 24px;">Yes</td>
<td style="width: 3.83079%; height: 24px;">Yes: ' "</td>
<td style="width: 4.75832%; height: 24px;">Yes</td>
<td style="width: 5.31619%; height: 24px;">Yes</td>
<td style="width: 11.1208%; height: 24px;">Yes</td>
<td style="width: 8.33815%; height: 24px;">Yes</td>
<td style="width: 14.6408%; height: 24px;">MADS</td>
<tr>
<td>MADS</td>
<td>Atari 8-bit</td>
<td>Yes: . #</td>
<td>Yes: ; * //</td>
<td>Yes</td>
<td>Yes: ' "</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>MADS</td>
</tr>
<tr style="height: 24px;">
<td style="width: 4.81912%; height: 24px;">XASM</td>
<td style="width: 9.14503%; height: 24px;">Atari 8-bit</td>
<td style="width: 14.66%; height: 24px;">n/a</td>
<td style="width: 12.0473%; height: 24px;">Yes: ; * |</td>
<td style="width: 9.08325%; height: 24px;">n/a</td>
<td style="width: 3.83079%; height: 24px;">Yes: ' "</td>
<td style="width: 4.75832%; height: 24px;">Yes</td>
<td style="width: 5.31619%; height: 24px;">Yes</td>
<td style="width: 11.1208%; height: 24px;">Yes</td>
<td style="width: 8.33815%; height: 24px;">Yes</td>
<td style="width: 14.6408%; height: 24px;">XASM 3.0.1</td>
<tr>
<td>XASM</td>
<td>Atari 8-bit</td>
<td>n/a</td>
<td>Yes: ; * |</td>
<td>n/a</td>
<td>Yes: ' "</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>XASM 3.0.1</td>
</tr>
</tbody>
</table>
@ -543,128 +544,4 @@ Make sure that you don't remove parameters when you specify your values.<br />If
</li>
</ul>
<h5 id="KnownBugs">Known Bugs</h5>
<p>Open bugs:</p>
<ul>
<li>If you find any, please report them on <a href="https://github.com/peterdell/wudsn-ide/issues" target="_blank" rel="noopener">GitHub</a> or contact me directly</li>
</ul>
<p>Fixed bugs per release:</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li>1.7.2 and newer can be found on <a href="https://github.com/peterdell/wudsn-ide/issues" target="_blank" rel="noopener">GitHub</a>.</li>
<li>1.6.5 <br />
<ul>
<li>Automatic creation of ".DSK" disk images for Apple II works correctly.</li>
<li>The dirty indicator in Graphics Editor is now updated correctly.</li>
</ul>
</li>
<li>1.6.4 <br />
<ul>
<li>The toolbar icons now work correctly with newer Eclipse versions.</li>
<li>Atari 8-bit Graphics 12 Converter works again.</li>
<li>The graphics editor now correctly closes the input stream for image files.</li>
<li>Empty selection and too large numbers no longer lead to exceptions when opening the context menu for "Convert...".</li>
<li>Pressing refresh in the graphics converter now always updates the image pane correctly, not only if the size has changed.</li>
<li>Inline repeats like ":64" in MADS are no longer detected as labels.</li>
<li>Hex Editor now correctly detects erroneous COM files if the segment length exceeds the file length (by one).</li>
<li>Disk images (for Apple II) are now updated if only "Build" instead of "Build and Run" is used.</li>
<li>Apple Commander integration is now part of the installation, as it should have been with 1.6.3.</li>
<li>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 <a href="http://www.textfiles.com/apple/ANATOMY/cmd.brun.bload.txt">bug in Apple DOS</a>.
<pre>10 PRINT "Loading &lt;title&gt;" : PRINT CHR$(4);"BRUN WORLD" : CALL &lt;address&gt;</pre>
</li>
</ul>
</li>
<li>1.6.3 <br />
<ul>
<li>The first character of numbers is now correctly highlighted in "#123".</li>
<li>Source files included via "INCSRC" are now correctly detected for ASM6.</li>
</ul>
</li>
<li>1.6.2 <br />
<ul>
<li>Typing a "." to trigger the automatic content assistance no longer locks up.</li>
<li>The default color for illegal opcodes changed to red as it was intended.</li>
<li>German localization for the graphics editor is finally completed.</li>
<li>The sorting of applications in the preferences now is "Default, A...Z, User Defined" in non-English localizations.</li>
</ul>
</li>
<li>1.6.1 <br />
<ul>
<li>Clicking in the outline always positions the cursor correctly in the source, not only the first time.</li>
<li>All names of content types are now translated correctly in the preferences.</li>
<li>The "Open Folder" command now works for objects that can be adapted to resources or files - for example, project explorer entries for Java classes.</li>
</ul>
</li>
<li>1.6.0 <br />
<ul>
<li>Hyperlink navigation now works for labels containing an underscore.</li>
<li>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.</li>
<li>The HexEditor also detects that the first block of a COM file is incorrect and displays this correctly.</li>
<li>Content assistance now correctly inserts new lines when inserting "#IF", "#WHILE", or ".TEST".</li>
<li>Fonts and color resources are disposed of correctly now.</li>
<li>Resetting to default syntax colors in the preferences works now.</li>
<li>Elements of ".ENUM" definitions are also recognized as equates if they do not start at position 0.</li>
<li>Elements of ".STRUCT" definitions are also recognized as labels if they do not start at position 0.</li>
<li>The cursor is now positioned to the first character of an equate or label if it is not defined starting at position 0.</li>
<li>The cursor is now positioned to the first character of an equate or label if it is not defined starting at position 0.</li>
</ul>
</li>
<li>1.5.0 <br />
<ul>
<li>Syntax highlighting remains active now also after "Save as...".</li>
<li>The cursor is now placed correctly by content assistance.</li>
<li>The key binding for the "Compile" menu is now "Ctrl-0" instead of "Ctrl-Alt-0", so entering "}" is now possible again.</li>
<li>XASM editor now correctly detects the "ORG" directive.</li>
<li>The assembler editor toolbar contribution now also displays the label "Assembler" in the customizing dialog for the perspective.</li>
</ul>
</li>
<li>1.4.4 <br />
<ul>
<li>The ".LOCAL" in ATASM does not start a folding section, while in MADS, it is a folding section from ".LOCAL" to ".ENDL".</li>
<li>"SIN()" and "RND()" in MADS are now recognized correctly, even if there are no spaces before or after the directive.</li>
<li>".EN" and ."END" in MADS are now recognized correctly.</li>
<li>Labels in "ORG" lines are now recognized correctly and rendered as separate tree entries.</li>
<li>Preferences for lower-case/upper-case instructions in content assistance are now evaluated for directives that do not start with letters like ".end".</li>
<li>When opening a file from outside the workspace, the actions to open folders and compile the file do nothing and will not cause exceptions. They will also be disabled once the new Eclipse version is mandatory.</li>
<li>A space now separates the 16 bytes per row in the hex editor.</li>
</ul>
</li>
<li>1.4.3 <br />
<ul>
<li>The output file is not opened anymore in case it has been there before but was not updated by the compiler due to errors.</li>
<li>The editor's scroll bar and cursor are now stable when the latest user input changes the outline.</li>
<li>The hex editor gets the focus correctly when clicking on already-opened files.</li>
</ul>
</li>
<li>1.4.2 <br />
<ul>
<li>The folder containing the output and symbols files is refreshed automatically after compiling to ensure that the Eclipse resource cache is in sync with the file system.</li>
<li>Line end comments are now used as a description for source and binary include nodes in the content outline.</li>
<li>The "Open Folder" context menu entry works again. This fixes a bug introduced in version 1.4.0.</li>
</ul>
</li>
<li>1.4.0 <br />
<ul>
<li>The "Assembler" menu is only visible if an Assembler editor is active. The contained entries and shortcuts are now disabled if no Assembler editor is active.</li>
<li>The output file is not deleted before the compiler is started. Instead, it is only checked for being writeable. This allows for direct compilation into an existing ATR image.</li>
<li>The application name used to open the output file is now included in the info message.</li>
</ul>
</li>
<li>1.3.2 <br />
<ul>
<li>The content outline sometimes only finds the first macro definition.</li>
<li>Folding did not show up in all situations.</li>
<li>Under macOS, the file select dialog can now choose an "*.app" folder because apps like "Atari800MacX.app" are folders. The solution is a workaround to the general Eclipse problem under macOS. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=82155">BUG 82155.</a></li>
</ul>
</li>
<li>Before 1.3.2 <br />
<ul>
<li>The "OK" and "Apply" buttons in the preferences are now always enabled, irrespective of the specified compiler and emulator paths.</li>
<li>The focus is not back in the editor window after compiling.</li>
<li>The syntax highlighting of illegal opcodes fixed now also uses the preferences setting.</li>
<li>The properties for the correct locale are now found on German operating systems.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>You can find all known bugs on <a href="https://github.com/peterdell/wudsn-ide/issues" target="_blank" rel="noopener">GitHub</a>. If you find new bugs, please report them on Github or contact me directly.</p>

View File

@ -24,6 +24,7 @@
</ul>
<h5 id="InstallingWUDSNIDE">Installing WUDSN IDE</h5>
<ul>
<ul>
<li>Start Eclipse</li>
<li>Select the entry "Install New Software..." from the menu "Help".</li>
<li>Enter "https://www.wudsn.com/update/stable" in the "Work with" field and press ENTER.</li>
@ -32,8 +33,14 @@
<li>Read the license agreement, choose "I accept..." and press the " Finish " button.</li>
<li>If you get a security warning that the content is unsigned, confirm the alert by pressing the " OK " button.</li>
<li>When prompted to restart Eclipse now, press the " Yes " button.</li>
<li>As always, with updates, the update may fail for whatever reason, or the installed version has severe issues. For example, the required Java version might not be available on your machine. In this case, uninstall it via the link "What is already installed" in the "Install New Software..." dialog and restart the IDE. Then, you can reinstall the latest version from "https://www.wudsn.com/update/stable" or previously released versions from the locations listed on the <a href="https://www.wudsn.com/index.php/ide/releases">Releases</a> page. <br /><img src="productions/java/ide/installation/ide-installation-steps.gif" alt="IDE installation steps" /></li>
<li>Updates may fail for whatever reason, or the installed version has severe issues. For example, the required Java version might not be available on your machine. In this case, uninstall it via the link "What is already installed" in the "Install New Software..." dialog and restart the IDE. Then, you can reinstall the latest version from "https://www.wudsn.com/update/stable" or previously released versions from the locations listed on the <a href="https://www.wudsn.com/index.php/ide/releases">Releases</a> page. <br /><img src="productions/java/ide/installation/ide-installation-steps.gif" alt="IDE installation steps" /></li>
</ul>
</ul>
<h5 id="InstallingAssemblersAndCompilers">Installing Language Packs</h5>
<ul>
<ul>The Eclipse runtime is, by default, installed with the English language pack. Additional language packs can be downloaded from</ul>
</ul>
<p><a target="_blank&gt;">. The WUDSN IDE plugin contains English and German translations. The WUDSN IDE installer automatically installs the German Language Pack for Eclipse. This way, English and German translations are always complete in an installation.</a></p>
<h5 id="InstallingAssemblersAndCompilers">Installing Assemblers and Compilers like ATASM, MADS, XASM...</h5>
<ul>
<li>Start Eclipse</li>
@ -107,10 +114,10 @@
<li>The default parameters are used if no explicit assembler/compiler parameters are specified.</li>
<li>The default parameters are ignored if explicit assembler/compiler parameters are specified.</li>
<li>The absolute path to the source file replaces the variable "${sourceFilePath}". <br />The absolute path to the output file replaces the variable "${outputFilePath}". <br />For more variables, see the "Preferences for assembling and compiling" section on the "Features" page.</li>
<li>Choose to use the source or temporary folders as the output folder.</li>
<li>Choose the source or temporary folders as the output folder.</li>
<li>Choose the file extension for the output file, for example, ".xex" or ".bin".</li>
<li>Press the button "OK".</li>
<li>All values are reset using the "Restore Defaults" button, except for the paths to the assembler/compilers. <br /><br /><img src="productions/java/ide/features/ide-assembler-preferences-compilers.gif" alt="Configuration of aseembler / compiler executable path" /></li>
<li>All values are reset using the "Restore Defaults" button, except for the paths to the assembler/compilers. <br /><br /><img src="productions/java/ide/features/ide-assembler-preferences-compilers.gif" alt="Configuration of assembler / compiler executable path" /></li>
<li>Using the button "Default" in the "File Associations" preferences, you can set the default editor for a file extension, for example, "MADS" for "*.asm". <br /><img src="productions/java/ide/features/ide-editor-file-associations.gif" alt="IDE file associations" /></li>
</ul>
<h5 id="InstallingEmulators">Installing Altirra, Atari800, and other emulators</h5>
@ -133,7 +140,7 @@
<li>Press the button "OK".</li>
<li>If you also need the Atari ROM files, you can find them in the file <a href="http://www.emulators.com/freefile/pcxf380.zip" target="_blank" rel="noopener noreferrer">PCXF380.ZIP</a>, which is available at <a href="http://www.emulators.com/download.htm" target="_blank" rel="noopener noreferrer">http://www.emulators.com</a>.<img src="productions/java/ide/features/ide-assembler-preferences-compilers.gif" alt="Configuration of emulator executable path" /></li>
</ul>
<h5 id="CreatingExampleProject">Creating and Building the Example project</h5>
<h5 id="CreatingExampleProject">Creating and Building the Example Project</h5>
<ul>
<li>Start Eclipse.</li>
<li>Select the entry "New/Project" from the menu "File".</li>

View File

@ -77,6 +77,7 @@ import com.wudsn.ide.lng.preferences.CompilerRunPreferences;
import com.wudsn.ide.lng.runner.Runner;
import com.wudsn.ide.lng.runner.RunnerDefinition;
import com.wudsn.ide.lng.runner.RunnerId;
import com.wudsn.ide.lng.runner.RunnerPaths.RunnerPath;
import com.wudsn.ide.lng.symbol.CompilerSymbolsView;
/**
@ -605,11 +606,15 @@ final class LanguageEditorCompileCommand {
}
}
}
// Execution type: pre-defined or USER_DEFINED_APPLICATION
// Execution type: predefined or USER_DEFINED_APPLICATION
else {
boolean error = false;
String runnerExecutablePath = compilerRunPreferences.getRunnerExecutablePath(runnerId);
if (StringUtility.isEmpty(runnerExecutablePath)) {
runnerExecutablePath = plugin.getRunnerPaths().getDefaultRunnerAbsolutePath(hardware, runnerId);
}
if (runnerCommandLine.contains(RunnerDefinition.RUNNER_EXECUTABLE_PATH)) {
if (StringUtility.isEmpty(runnerExecutablePath)) {
// ERROR: Path to application executable is not

View File

@ -43,6 +43,7 @@ import com.wudsn.ide.lng.Texts;
import com.wudsn.ide.lng.preferences.LanguageHardwareCompilerDefinitionPreferences;
import com.wudsn.ide.lng.runner.RunnerDefinition;
import com.wudsn.ide.lng.runner.RunnerId;
import com.wudsn.ide.lng.runner.RunnerPaths.RunnerPath;
import com.wudsn.ide.lng.runner.RunnerRegistry;
/**
@ -52,8 +53,7 @@ import com.wudsn.ide.lng.runner.RunnerRegistry;
* @author Peter Dell
*
*/
public final class LanguageEditorCompileCommandDelegate
implements IActionDelegate2, IWorkbenchWindowPulldownDelegate2 {
public final class LanguageEditorCompileCommandDelegate implements IActionDelegate2, IWorkbenchWindowPulldownDelegate2 {
private IWorkbenchWindow window;
private Menu menu;
@ -110,7 +110,8 @@ public final class LanguageEditorCompileCommandDelegate
RunnerRegistry runnerRegistry = languagePlugin.getRunnerRegistry();
Hardware hardware = languageEditor.getHardware();
List<RunnerDefinition> runnerDefinitions = runnerRegistry.getDefinitions(hardware);
LanguageHardwareCompilerDefinitionPreferences languageHardwareCompilerDefinitionPreferences = languageEditor.getLanguageHardwareCompilerPreferences();
LanguageHardwareCompilerDefinitionPreferences languageHardwareCompilerDefinitionPreferences = languageEditor
.getLanguageHardwareCompilerPreferences();
Menu menu = new Menu(parent);
setMenu(menu);
@ -123,8 +124,15 @@ public final class LanguageEditorCompileCommandDelegate
String runnerName = runnerDefinition.getName();
// The system default application does not need an executable path.
if (!runnerId.equals(RunnerId.DEFAULT_APPLICATION)) {
if (StringUtility.isEmpty(languageHardwareCompilerDefinitionPreferences.getRunnerExecutablePath(runnerId))) {
continue;
// Explicit path configured?
if (StringUtility
.isEmpty(languageHardwareCompilerDefinitionPreferences.getRunnerExecutablePath(runnerId))) {
// Executable present in default path?
String executablePath = languagePlugin.getRunnerPaths().getDefaultRunnerAbsolutePath(hardware,
runnerId);
if (StringUtility.isEmpty(executablePath)) {
continue;
}
}
}

View File

@ -166,7 +166,7 @@ public final class LanguagePreferencesInitializer extends AbstractPreferenceInit
setDefault(preferencesKey, compilerDefinition.getDefaultParameters());
preferencesKey = LanguageHardwareCompilerDefinitionPreferencesConstants
.getCompilerOutputFolderModeName(language, hardware, compilerDefinition);
setDefault(preferencesKey, CompilerOutputFolderMode.TEMP_FOLDER);
setDefault(preferencesKey, CompilerOutputFolderMode.SOURCE_FOLDER);
preferencesKey = LanguageHardwareCompilerDefinitionPreferencesConstants
.getCompilerOutputFileExtensionName(language, hardware, compilerDefinition);
setDefault(preferencesKey, HardwareUtility.getDefaultFileExtension(hardware));

View File

@ -83,9 +83,9 @@ public final class RunnerPaths {
public RunnerPaths() {
runnerPaths = new TreeMap<String, RunnerPath>();
// See https://github.com/peterdell/wudsn-ide-tools
add(Hardware.ATARI8BIT, "altirra", Platform.OS_LINUX,Platform.ARCH_X86_64, "Altirra/Altirra.sh");
add(Hardware.ATARI8BIT, "altirra", Platform.OS_LINUX, Platform.ARCH_X86_64, "Altirra/Altirra.sh");
add(Hardware.ATARI8BIT, "altirra", Platform.OS_MACOSX, Platform.ARCH_X86_64, "Altirra/Altirra.sh");
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32,Platform.ARCH_X86, "Altirra/Altirra.exe");
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32, Platform.ARCH_X86, "Altirra/Altirra.exe");
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32, Platform.ARCH_X86_64, "Altirra/Altirra64.exe");
}
@ -114,6 +114,17 @@ public final class RunnerPaths {
return runnerPath;
}
public String getDefaultRunnerAbsolutePath(Hardware hardware, String runnerId) {
RunnerPath runnerPath = getDefaultRunnerPath(hardware, runnerId);
if (runnerPath != null) {
File file = runnerPath.getAbsoluteFile();
if (file != null && file.canExecute()) {
return file.getAbsolutePath();
}
}
return "";
}
public List<RunnerPath> getRunnerPaths() {
return Collections.unmodifiableList(new ArrayList<RunnerPath>(runnerPaths.values()));
}

View File

@ -1,7 +1,3 @@
Maintain The!Cart Studio change list
Use %COMSPEC% in links?
Installer
=========
https://www.battoexeconverter.com/Advanced-Commands/#Hideself
@ -11,6 +7,8 @@ WebSite
FIXED? Productions images max size/width?
FIXED? https://search.google.com/search-console/mobile-usability/drilldown?resource_id=https%3A%2F%2Fwww.wudsn.com%2F&item_key=CAk&hl=en
FIXED? ROM checker HTML: <th style="border-style:solid;border-width:1px;border-collapse:collapse;;white-space:nowrap;">CRC32</th>
Complete: RGBA article, add link to gameer suprise video, http://localhost:8080/administrator/index.php?option=com_content&view=article&layout=edit&id=23
Why is editing sometimes slow, or is everything blocked, showing the wait cursor?
WUDSN Tools
=========
@ -23,6 +21,7 @@ wudsn-ide-tools-main/ASM/DASM/test/m_switch_3.asm: Can't create '\\\\?\\C:\\jac\
WUDSN Runners
=============
https://github.com/wudsn/wudsn-ide/issues/19 - Path
Check for "<mainsourcefile.bat/.sh" and have @com.wudsn.ide.lng.RunnerScript= annotation
All Compiler Variables as Environment variables bevor calling the script with the OS shell.