Jump to content
IGNORED

WUDSN IDE: The free integrated Atari 8-bit development plugin for Eclipse


Recommended Posts

Hello WUDSN users,

 

here's short hello to tell you what's going on. After some Atari hiatus, I spent 4 days at the Fujiama 2021 at had the possibility to analyze the typical installation and usage issue of WUDSN IDE on Mac OS X. The (not yet finished) result is an installation script, that will enable a "one click" installation on Mac OS. I has already been tested once successfully. The same will later be back-ported to Windows and Linux. This will minimize the download sizes. Also it will be possible to install the IDE in arbitrary folders (instead of the fixed C:\jac\wudsn). This will also help me with testing installations.

 

On the feature side, I  have started the next major refactoring. I had postponed this for many years, but the recent developments of tebe regarding Mad Pascal encouraged me do start now. The first iteration of WUDSN was ATASM and Atari only. The second was multiple assemblers and Atari. The third iteration was multiple assemblers on multiple targets (C64, Atari, NES, ...). And now the fourth will enable support for multiple languages, esp, Mad Pascal. This will ultimately also solve the "Assembler" vs. "Compiler" terminology issue, which always bothered me (being a notric pedant with wording).

 

It's a huge project and changes of breaking things on the way  are high, so I'll see how I can setup a seperate download for those who want to help testing.

 

Downloads.thumb.png.7d6c03b50f63c3b64d58a1ef3d14c21b.png

 

  • Like 6
  • Thanks 8
Link to comment
Share on other sites

All not yet functional, but most of the refactoring is done. Now also the help system supports multiple languages and PASCAL is now a valid target. Next I'lll teach it of use online sites are resource, because the MadPascal docu on the home page is really good and als has a search function. Nowdays being online is the default -  that's different than it was when I started in 11 years (ehm, really?, yes...) ago. Also I have switched to a dark theme now for my own development, because on a large monitor "all the white space" it just too bright. I'll also see how I can make the dark theme work in WUDSN itself.

Help.thumb.png.2c1b8199b1730565eb77d8cabb1c40a1.pngDark.thumb.png.80741761b7b897503ff741530f04231d.png

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

On 9/26/2021 at 10:09 PM, JAC! said:

Also I have switched to a dark theme now for my own development, because on a large monitor "all the white space" it just too bright. I'll also see how I can make the dark theme work in WUDSN itself.

That would be most welcome indeed. I tried lightweight, native dark themes before with WUDSN but because the UI controls are generally not re-coloured under Windows, it looked like Hell, and some of the WUSDN icons have opaque white backgrounds anyway. Things are a little better on macOS and Linux, but one of my main motivations for attempting to develop a fully parsing MADS extension for VSCode was to get WUDSN-like features with a dark UI. :)

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Maybe some Mac experts read this:

 

I've adapted my build process, to always pull the latest MADS sources from github.
But when I try to compile under macOS 11.6 with latests XCode and latest FPC 3.2.0 the command

 

cd MADS

git pull --depth=1 --rebase

 

#echo Creating MADS - $OS Intel 32-bit version

#ppc386 -Mdelphi -v -O3 -XXs -omads.$EXT32 mads.pas

#rm -f mads.o

 

echo Creating MADS - $OS Intel 64-bit version

ppcx64 -Mdelphi -vh -O3 -omads.$EXT64 mads.pas

rm -f mads.o

 

fails with

 

Creating MADS - Mac OS X Intel 64-bit version

Hint: Start of reading config file /etc/fpc.cfg

Hint: End of reading config file /etc/fpc.cfg

Free Pascal Compiler version 3.2.0 [2020/05/31] for x86_64

Copyright (c) 1993-2020 by Florian Klaempfl and others

Target OS: Darwin for x86_64

Compiling mads.pas

mads.pas(1095,5) Note: Local variable "i" is assigned but never used

mads.pas(1174,2) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined

mads.pas(3684,29) Hint: Local variable "par" of a managed type does not seem to be initialized

mads.pas(4633,28) Warning: Local variable "tmp" of a managed type does not seem to be initialized

mads.pas(6222,10) Warning: Local variable "par" of a managed type does not seem to be initialized

mads.pas(8255,49) Warning: Local variable "str" of a managed type does not seem to be initialized

mads.pas(8856,46) Warning: Local variable "all" does not seem to be initialized

mads.pas(9757,26) Hint: Local variable "par" of a managed type does not seem to be initialized

mads.pas(13877,8) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined

mads.pas(14234,6) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined

mads.pas(12732,47) Hint: Local variable "txt" of a managed type does not seem to be initialized

mads.pas(10235,27) Hint: Local variable "par" of a managed type does not seem to be initialized

mads.pas(12732,51) Hint: Local variable "tmp" of a managed type does not seem to be initialized

mads.pas(11683,52) Warning: Local variable "idx" does not seem to be initialized

mads.pas(11683,51) Warning: Local variable "idx" does not seem to be initialized

mads.pas(12732,53) Hint: Local variable "v" does not seem to be initialized

mads.pas(12852,54) Hint: Local variable "r" does not seem to be initialized

mads.pas(13240,29) Hint: Local variable "tmpZM" of a managed type does not seem to be initialized

Assembling (pipe) mads.s

Linking mads.macosx-x86-64

ld: library not found for -lc

An error occurred while linking

Error: Error while linking

Fatal: There were 1 errors compiling module, stopping

Fatal: Compilation aborted

Link to comment
Share on other sites

 

15 hours ago, JAC! said:

 

ld: library not found for -lc

An error occurred while linking

Error: Error while linking

Fatal: There were 1 errors compiling module, stopping

Fatal: Compilation aborted

 

Looks to me like the linker is looking for "libc", as indicated by the switch "-lc".  

 

It is customary for *nix linkers to automatically drop the "lib" prefix when looking for libraries, so the "-l" switch is followed by "c", and prepending the "lib" prefix back gives you "libc".

 

Modern macOS versions do not ship with the command line compiler tools, but you can download and install them if you want.  Check out this URL:

https://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/  

Link to comment
Share on other sites

I have XCode installed, which contains the command line tools. Also from the 

"From Mac OS X 10.9 onward, if Xcode is already installed in Mac OS X then Command Line Tools becomes installed as well"

It is only this specific lib (libc) which is no longer found since the last update...

Link to comment
Share on other sites

18 hours ago, JAC! said:

I have XCode installed, which contains the command line tools. Also from the 

"From Mac OS X 10.9 onward, if Xcode is already installed in Mac OS X then Command Line Tools becomes installed as well"

It is only this specific lib (libc) which is no longer found since the last update...

Try using the environment variable:

LIBRARY_SEARCH_PATHS=/usr/lib

or possibly:

DYLD_LIBRARY_PATH=/usr/lib

 

after first confirming that /usr/lib/libc.dylib exists.

Edited by mellis
Link to comment
Share on other sites

I gotta ask a dumb question. I'm attempting to assemble Ed Fries Anteater. Since the files are saved as .src, I associated that extension with ATASM, which is supposed to mimic MAC/65, the same assembler used for this program but as soon as I select Compile, the first line "05       .OPT NO LIST" says "Illegal argument". This is, of course, not an illegal argument for the MAC/65 but I commented it out just to see what happens. So, compiled it again and it did the same thing for "20 SCREEN =  $1000". The only thing I can assume is it's using the wrong assembler but that file extension is the only way I can tell what assembler it's using.
Any ideas?

Edited by Justin Payne
Link to comment
Share on other sites

39 minutes ago, sanny said:

I'd guess ATASM doesn't like the line numbers.

Well, if MAC/65 likes them, then I'd assume ATASM would but taking them out doesn't change things. Of course, I checked the ATASM manual and...
Source lines have the following format: [line number] [label] [ ] [ comment ]

 

So lined number are acceptable.
I now changed the extension to .m65 and set it to ATASM. Same issue. When I did this it showed it was not assigned to any assembler.

 

Edited by Justin Payne
Link to comment
Share on other sites

Hi, I just downloaded the source, opened the main file via context menu "Open With.../ Other / ATASM Editor", removed the "#D:" for include statements and it assmebled without errors.

 

wudsn.png

  • Thanks 1
Link to comment
Share on other sites

WUDSN IDE Installer

To simplify the installation further and to ensure that I can easily update individual modules (Eclipse, Java, Plugin, Tools, Sample Projects), I have finally created my long-planned WUDSN IDE Installer.

 

Latest version is on https://github.com/peterdell/wudsn-ide-install

 

Create a folder where you want to put the IDE. Make sure the folder path contains no spaces or whitespaces.

On Windows, download wudsn.exe the folder run it: https://github.com/peterdell/wudsn-ide-install/raw/main/wudsn.exe
Versions for macOS and Linux are in the making.

 

The file will create and populate the following subfolders via downloads:

  • Install - the cache folder where all downloads are stored
  • Tools - the IDE and all related command line programs
  • Projects - the platform specific project folders with sample source code
  • Workspace - the workspace where the IDE stores data that is no source code

wudsn-installer.thumb.png.ca2ca414c3b859d72c19cd2867f634f1.png

 

Upon the first start you'll be propted with the (yet generic) Eclipse Welcome screen.
wudsn-installer-welcome.thumb.png.8dbae9146fd0f4289ceb1aeb9985978d.png

In addition you can choose for which platform you want to import the sample projects.
wudsn-installer-projects.thumb.png.f3e8e90a297b57a9e63bdf1782197a72.png
The path to the assemblers/compilers/emulators in the Tools folder must be set once manually.
I plan to improve this in future releases of the IDE.

 

In case of problems check the wudsn.log file in the folder.
You can also run wudsn.exe com from the command line with the parameter --install.
This will display the installer menu with options to reinstall or update the IDE.
wudsn-installer-menu.thumb.png.21de25f296e02112ed71231c56a450cd.png

 

I'm looking forward to your feedback!

 

EDIT: After some hours Microsoft Defender now thinks wudsn.exe is a trojan, sigh. What's next? Buying a en EV certificate for 700 USD/year? For now I've deactivated the scan for the WUDSN folder here.

Edited by JAC!
Download path fixed
  • Like 3
  • Thanks 5
Link to comment
Share on other sites

3 hours ago, JAC! said:

To simplify the installation further and to ensure that I can easily update individual modules (Eclipse, Java, Plugin, Tools, Sample Projects), I have finally created my long-planned WUDSN IDE Installer.

Excellent timing!  I am just setting up a fresh Windows install on a laptop that is dedicated to Emulation and Atari coding.  I'll give this a try.

Link to comment
Share on other sites

On 10/23/2021 at 8:13 AM, Justin Payne said:

Source lines have the following format: [line number] [label] [ ] [ comment ]

I find it doesn't like line numbers either, maybe there's a switch to tell it to ignore them ?

Also the .OPT's from MAC/65 it doesn't like either.

 

I PRINT #P: from MAC/65 which produced a listing without line numbers.

All line labels also need a ':' 

e.g.

LABEL: LDA #1

.

.

.

Macro's are similar

.macro bra ; unconditional branch

clv

bvc %1

.endmacro <<<<<<<<<<< would be .endm in MAC/65

 

 

You need to have a

.proc procname

 

; your code here

 

.endproc

 

so although it says it's MAC/65 compatible, it's only really the code itself, not the directives.

can't use 

LDA #LABEL&255 ; to get low and high byte

LDX #LABEL/256

use

LDA #<LABEL ; although this is also MAC/65 

LDX #>LABEL

 

There are probably more differences, but it's expected as ca65 is much more powerful

 

 

Link to comment
Share on other sites

On 10/27/2021 at 7:42 PM, JAC! said:

WUDSN IDE Installer

...

Versions for macOS and Linux are in the making.

 

...

I'm looking forward to your feedback!

 

That's so great.

I just recently manually installed WUDSN on macOS according to the instructions on your web page and it's working like a charm.

I'll be happy to test your new installer when it's available.

 

For now though I have a small question on the Hex Editor configuration.

When I open (e.g. a .xex) a file in the Hex Editor, the font is so small I can barely read it. I searched for the font/size settings of the Hex Editor in the Eclipse preferences, but couldn't find them.

Could you give me a quick hint where to change the font/size settings for the Hex Editor in Eclipse?

Link to comment
Share on other sites

On 10/13/2021 at 12:04 AM, JAC! said:

Maybe some Mac experts read this:

 

I've adapted my build process, to always pull the latest MADS sources from github.
But when I try to compile under macOS 11.6 with latests XCode and latest FPC 3.2.0 the command

...

fails

...

 

When I just recently installed WUDSN I had to build MADS myself to add it as my choice of assembler in Eclipse.

I installed fpc 3.2.2 [2021/09/12] from homebrew, which is newer than the version you're using.

With this I could build MADS without problems, I just tried it again the same way you did it, just with the newer version of fpc.

Maybe you want to try the newer version too.

 

Here's my output of the build:

 18:43 $ ppcx64 -Mdelphi -vh -O3 -omads.x64 mads.pas
Hint: Start of reading config file /usr/local/etc/fpc.cfg
Hint: End of reading config file /usr/local/etc/fpc.cfg
Free Pascal Compiler version 3.2.2 [2021/09/12] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling mads.pas
mads.pas(1095,5) Note: Local variable "i" is assigned but never used
mads.pas(1174,2) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(3684,29) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(4653,28) Warning: Local variable "tmp" of a managed type does not seem to be initialized
mads.pas(6242,10) Warning: Local variable "par" of a managed type does not seem to be initialized
mads.pas(8275,49) Warning: Local variable "str" of a managed type does not seem to be initialized
mads.pas(8876,46) Warning: Local variable "all" does not seem to be initialized
mads.pas(9657,12) Note: Local variable "ii" not used
mads.pas(9781,26) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(13901,8) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(14258,6) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(12756,47) Hint: Local variable "txt" of a managed type does not seem to be initialized
mads.pas(10259,27) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(12756,51) Hint: Local variable "tmp" of a managed type does not seem to be initialized
mads.pas(11707,52) Warning: Local variable "idx" does not seem to be initialized
mads.pas(11707,51) Warning: Local variable "idx" does not seem to be initialized
mads.pas(12756,53) Hint: Local variable "v" does not seem to be initialized
mads.pas(12876,54) Hint: Local variable "r" does not seem to be initialized
mads.pas(13264,29) Hint: Local variable "tmpZM" of a managed type does not seem to be initialized
Assembling mads
Linking mads.x64
15825 lines compiled, 1.4 sec
6 warning(s) issued
10 hint(s) issued
5 note(s) issued

 

Link to comment
Share on other sites

On 11/2/2021 at 6:26 PM, achtbits said:

For now though I have a small question on the Hex Editor configuration.

When I open (e.g. a .xex) a file in the Hex Editor, the font is so small I can barely read it. I searched for the font/size settings of the Hex Editor in the Eclipse preferences, but couldn't find them.

Could you give me a quick hint where to change the font/size settings for the Hex Editor in Eclipse?

There is no seting. I think here font loading forthe Atari TTF font from the plugin does not actually work for some reason. Can you provide a screen shot and the context of the ".metadata/.log" file.

On 11/2/2021 at 6:51 PM, achtbits said:

When I just recently installed WUDSN I had to build MADS myself to add it as my choice of assembler in Eclipse.

I installed fpc 3.2.2 [2021/09/12] from homebrew, which is newer than the version you're using.

With this I could build MADS without problems, I just tried it again the same way you did it, just with the newer version of fpc.

Maybe you want to try the newer version too.

 

Here's my output of the build:


 18:43 $ ppcx64 -Mdelphi -vh -O3 -omads.x64 mads.pas
Hint: Start of reading config file /usr/local/etc/fpc.cfg
Hint: End of reading config file /usr/local/etc/fpc.cfg
Free Pascal Compiler version 3.2.2 [2021/09/12] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling mads.pas
mads.pas(1095,5) Note: Local variable "i" is assigned but never used
mads.pas(1174,2) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(3684,29) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(4653,28) Warning: Local variable "tmp" of a managed type does not seem to be initialized
mads.pas(6242,10) Warning: Local variable "par" of a managed type does not seem to be initialized
mads.pas(8275,49) Warning: Local variable "str" of a managed type does not seem to be initialized
mads.pas(8876,46) Warning: Local variable "all" does not seem to be initialized
mads.pas(9657,12) Note: Local variable "ii" not used
mads.pas(9781,26) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(13901,8) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(14258,6) Note: Call to subroutine "procedure Move(const source:<Formal type>;var dest:<Formal type>;count:Int64);" marked as inline is not inlined
mads.pas(12756,47) Hint: Local variable "txt" of a managed type does not seem to be initialized
mads.pas(10259,27) Hint: Local variable "par" of a managed type does not seem to be initialized
mads.pas(12756,51) Hint: Local variable "tmp" of a managed type does not seem to be initialized
mads.pas(11707,52) Warning: Local variable "idx" does not seem to be initialized
mads.pas(11707,51) Warning: Local variable "idx" does not seem to be initialized
mads.pas(12756,53) Hint: Local variable "v" does not seem to be initialized
mads.pas(12876,54) Hint: Local variable "r" does not seem to be initialized
mads.pas(13264,29) Hint: Local variable "tmpZM" of a managed type does not seem to be initialized
Assembling mads
Linking mads.x64
15825 lines compiled, 1.4 sec
6 warning(s) issued
10 hint(s) issued
5 note(s) issued

 

I had already figured out that with newer X-Code versions, you have to install the Command Line Tools separately and add the path the lib.
See function compileWithFPC() in https://github.com/peterdell/wudsn-ide-tools/blob/main/make.sh
 

Link to comment
Share on other sites

On 11/2/2021 at 10:07 PM, flashjazzcat said:

Would it be possible to get the outline to alpha sort items case insensitively in a future revision? Identifiers like FSeek (below) appear at odd positions:

 

2081446449_Screenshot2021-11-02210538.png.8a0a04bc29f26298f6cbc2112befc6f0.png

Implemented with https://github.com/peterdell/wudsn-ide/commit/3db927c9f196bcd105dcceb98d3197bf506426d2.
Will be included in the next build. Would you mind creating a feature request on github for this?
I'd like to learn how that works and how an I tag a feature request with the commit.

  • Like 1
Link to comment
Share on other sites

5 hours ago, JAC! said:

There is no seting. I think here font loading forthe Atari TTF font from the plugin does not actually work for some reason. Can you provide a screen shot and the context of the ".metadata/.log" file.

I had already figured out that with newer X-Code versions, you have to install the Command Line Tools separately and add the path the lib.
See function compileWithFPC() in https://github.com/peterdell/wudsn-ide-tools/blob/main/make.sh
 

I've attached a screenshot of the hex editor and actually I think it uses the Atari TTF font, it's just very small and blurry. 

 

Also there's nothing in the .metadata/.log file related to this, here is the context when starting eclipse and displaying the hex editor:
 

!SESSION 2021-11-04 08:22:49.958 -----------------------------------------------
eclipse.buildId=4.21.0.I20210906-0500
java.version=17
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_DE
Framework arguments:  -keyring /Users/hermann/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/hermann/.eclipse_keyring

!ENTRY org.eclipse.oomph.p2.core 2 0 2021-11-04 08:22:52.208
!MESSAGE Failed to register the thread safe credentials providers: 'java.util.Map org.eclipse.core.internal.runtime.AdapterManager.getFactories()'

 

Bildschirmfoto 2021-11-04 um 08.09.59.png

Link to comment
Share on other sites

7 hours ago, JAC! said:

Implemented with https://github.com/peterdell/wudsn-ide/commit/3db927c9f196bcd105dcceb98d3197bf506426d2.
Will be included in the next build. Would you mind creating a feature request on github for this?
I'd like to learn how that works and how an I tag a feature request with the commit.

Absolutely - thanks! I'll do this when I finish other business today.

Link to comment
Share on other sites

I decided to give this a go and have decided to compile an old MAC/65 project I created donkey's years ago.

After a bit of fiddling it compiled ok

 

3 things I can't seem to figure out

 

1. how do you change the default location for the output files (.lst .lab)

I've checked the help, can't see anything there (help seems to concentrate on command line, I'm using the IDE) 

 

2. how do you change the compiler options in the IDE (would probably solve question 1 if I could)

 

3. How can you output a listing of the assembled code (like the output to screen or printer in MAC/65)

 

thanks in advance.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...