Jump to content
mksmith

Atari Dev Studio for Homebrew Development [Release]

Which language do you develop with using Atari Dev Studio?  

48 members have voted

  1. 1. Which language do you develop with using Atari Dev Studio?

    • batari Basic
      25
    • 7800basic
      14
    • dasm (assembly)
      17


Recommended Posts

Don't get me wrong, I like it (Visual Studio Code)... just wish it did more out of the box.  (project management -> allow me to select what files are in a project, and which is the main file for assembling/building/compiling/etc...)

 

Ultimately, I don't know much about Visual Studio Code as I only downloaded it to be able to try out the Atari Dev Studio extension.  I've been poking around trying to learn more, but right now, it is still easier for me to leave a command prompt open to run my build with.  I've only put in my request for supporting build scripts directly in Atari Dev Studio after seeing how quickly @Andrew Davie's request for make support was implemented.

 

Outside of those issues, I have no complaints.  :)

 

@mksmith

This is a nice little extension.  I look forward to future development of it.    

Share this post


Link to post
Share on other sites
2 hours ago, splendidnut said:

I've only put in my request for supporting build scripts directly in Atari Dev Studio after seeing how quickly @Andrew Davie's request for make support was implemented.

 

Ah, but I'm special!

 

  • Haha 1

Share this post


Link to post
Share on other sites
3 hours ago, splendidnut said:

 

For executing script files, I'd think it'd be better just to have a setting/preference instead of the app auto-magically scanning for a "build" script.  This would give the user complete control over.  Visual Studio Code appears to track settings separately by user, workspace and directory.  With directory given the highest priority.

 

Though it is a shame that there is no project support in Visual Studio Code... that really makes me question the purpose of it, as that makes it just another multi-file text editor with syntax highlighting, something we already have plenty of.  We need more "project-management" based editors!  Maybe it's just me... asking too much of the software I use :)

 

Anyways, thanks for looking into the matter.

 

2 hours ago, splendidnut said:

Don't get me wrong, I like it (Visual Studio Code)... just wish it did more out of the box.  (project management -> allow me to select what files are in a project, and which is the main file for assembling/building/compiling/etc...)

 

Ultimately, I don't know much about Visual Studio Code as I only downloaded it to be able to try out the Atari Dev Studio extension.  I've been poking around trying to learn more, but right now, it is still easier for me to leave a command prompt open to run my build with.  I've only put in my request for supporting build scripts directly in Atari Dev Studio after seeing how quickly @Andrew Davie's request for make support was implemented.

 

Outside of those issues, I have no complaints.  :)

 

@mksmith

This is a nice little extension.  I look forward to future development of it.    

 

Hey @splendidnut - I have also struggled a bit with VS Code not having a project management system after having used Visual Studio since 2003 and VBA before that.  If you look at opening a folder as your project then it sort of makes sense.  VS Code has it's own configuration files for compiling, building, packaging etc but starting out with bB (where you can't have separate code files) it just sort of fitted into the natural process of VS Code and I wanted to make it easy to setup and get to work.

 

I will add compilation of .bat (Windows) and .sh (Linux and macOS) to the Makefile process shortly - as yes it will be straight-forward.  The only caveat ATM is that you will need to make your own Stella calls as Andrew is making with this Makefile (too hard to identify).  As for the project process I will look to add down the track a project file where you can configure your setup and it will happen automatically.  They will again need to reside in the root workplace folder, but using the open folder process will set that up for you.

 

 

Share this post


Link to post
Share on other sites
5 minutes ago, Andrew Davie said:

 

Ah, but I'm special!

 

Well you are a fellow Aussie so... 😅

Share this post


Link to post
Share on other sites

A new release (v0.4.3) is now available with the following changes:

  • Added ability to compile Batch (.bat) or Shell Script (.sh) files (splendidnut) using the 'Make' process (change dasm compiler option to 'Make'). This option will automatically scan the root workspace folder for a 'makefile.bat' or 'makefile.sh' to use without having to open it first (make sure your base source code file is open and active as per the current compilation process). Note: you can also open the script file and compile from that if required.
  • Renamed the 'Make' terminal window to 'Atari Dev Studio'

@splendidnut Hey mate - can you test the new release for me and see how it works? Just make sure you change the setting for the dasm compiler to 'Make' and create your script file. As noted you can compile directly from the script or place it in your root workspace folder - seems to work ok for me on Windows.  Just remember you will now be responsible to configure your environment and launch things like Stella.

 

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, Lillapojkenpåön said:

So I use "custom" if I have a regular makefile?

No - select 'Make'. Custom is for using your own version of dasm outside of Atari Dev Studio (you can provide a path to it). The feature probably makes more sense for bB or 7800basic but I thought I should add it.

Share this post


Link to post
Share on other sites
10 hours ago, mksmith said:

A new release (v0.4.3) is now available with the following changes:

  • Added ability to compile Batch (.bat) or Shell Script (.sh) files (splendidnut) using the 'Make' process (change dasm compiler option to 'Make'). This option will automatically scan the root workspace folder for a 'makefile.bat' or 'makefile.sh' to use without having to open it first (make sure your base source code file is open and active as per the current compilation process). Note: you can also open the script file and compile from that if required.
  • Renamed the 'Make' terminal window to 'Atari Dev Studio'

@splendidnut Hey mate - can you test the new release for me and see how it works? Just make sure you change the setting for the dasm compiler to 'Make' and create your script file. As noted you can compile directly from the script or place it in your root workspace folder - seems to work ok for me on Windows.  Just remember you will now be responsible to configure your environment and launch things like Stella.

 

I thought a developer was always responsible for configuring their environment?  :)

 

 Yup, that worked, thanks!  I'm a bit surprised you went with "makefile" instead of "build" as you specified earlier.  But I take it this was just a test run of the feature and it will be developed further?

 

And I'm guessing that until you implement some sort of project file system, it's a no-go on having Stella automatically launch when using the "launch" button.  Which is OK, since Stella is generally just an ALT-tab away.

  • Like 1

Share this post


Link to post
Share on other sites
Just now, splendidnut said:

I thought a developer was always responsible for configuring their environment?  :)

 

 Yup, that worked, thanks!  I'm a bit surprised you went with "makefile" instead of "build" as you specified earlier.  But I take it this was just a test run of the feature and it will be developed further?

 

And I'm guessing that until you implement some sort of project file system, it's a no-go on having Stella automatically launch when using the "launch" button.  Which is OK, since Stella is generally just an ALT-tab away.

In my use-case, I launch stella if the build was successful, in the makefile itself.

It's pretty straightforward!

 

 

 

 

Share this post


Link to post
Share on other sites
1 hour ago, Andrew Davie said:

In my use-case, I launch stella if the build was successful, in the makefile itself.

It's pretty straightforward!

Indeed it is... but that doesn't fix the issues of "Compile" and "Compile and Run" buttons (and the keyboard shortcuts) doing the same thing.  It's these simple things that are the difference between good and great. :)

Share this post


Link to post
Share on other sites
2 minutes ago, splendidnut said:

Indeed it is... but that doesn't fix the issues of "Compile" and "Compile and Run" buttons (and the keyboard shortcuts) doing the same thing.  It's these simple things that are the difference between good and great. :)

Fair enough. I just hit my keycombo for "build" and it's basically build/run all the time.
If you wanted to standardise things, then how about standardising on a makefile, with two targets...

1) a "build/run" which is actually just "make" - and that will do a build/run
2) a "build only" which is something like "make build" in the call, and that will do only the build.

For people who are using batch files for each, then the make calls the batch files.

Something like (just hacking this up...)

all:
# build and run
# put commands here to assemble, and run stella
# or call a batchfile to do it... e.g...
    buildandrun.bat

build:
#build only
    build.bat
    
    

In other words, the IDE always calls make (for our usage).

But it calls either "make" or "make build"

And the makefile does the appropriate stuff.

"appropriate stuff" can be calling dasm and stella, or calling batch files as required.

Just throwing this up for discussion...

Share this post


Link to post
Share on other sites
5 hours ago, mksmith said:

No - select 'Make'. Custom is for using your own version of dasm outside of Atari Dev Studio (you can provide a path to it). The feature probably makes more sense for bB or 7800basic but I thought I should add it.

I tried "make" for compiling one of the cdfj examples and it didn't work

 

make : The term 'make' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the 
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ make
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (make:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

but custom and default works, so they all look for a makefile?

Share this post


Link to post
Share on other sites
22 minutes ago, Lillapojkenpåön said:

I tried "make" for compiling one of the cdfj examples and it didn't work

 

make : The term 'make' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the 
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ make
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (make:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

but custom and default works, so they all look for a makefile?

If you can't type 'make' on the command line, and have it work, then it's not going to work in the IDE either.

Do you have any form of 'make' installed?  
Also, do those examples have a "makefile" with them? Also a requirement.

Sorry if this is obvious to you, but first ... start with the obvious questions :)

Share this post


Link to post
Share on other sites
2 hours ago, Andrew Davie said:

Just throwing this up for discussion...

I've always used "make" for building, and "make run" for running emulation without build on the present binary... sometimes the consequence for running an incomplete/zero binary is a crash or assault on the ears, depending on the emulator. Often enough I don't want to run the rom, but rather look at the listing or do some other analysis. That said, I use a hell of a lot of make arguments for different things (make run, make clean, make backup, make dist, ...) so the granular approach to actions makes more sense in my workflow.

 

It's a very minor point, but suppressing running emulation with an extra make parameter for "compile", and allowing the emulator to run for "compile and run" seems a bit backward. To me, "make" for "compile", and "make ; make run" for "compile and run" makes more sense. It's slightly more atomic, which more naturally fits adding other more granular controls from ADS, like having a "debug" menu item calling "make debug", which could run stella or mame in debug mode via your makefile.

 

Share this post


Link to post
Share on other sites
2 minutes ago, RevEng said:

I've always used "make" for building, and "make run" for running emulation without build on the present binary... sometimes the consequence for running an incomplete/zero binary is a crash or assault on the ears, depending on the emulator. Often enough I don't want to run the rom, but rather look at the listing or do some other analysis. That said, I use a hell of a lot of make arguments for different things (make run, make clean, make backup, make dist, ...) so the granular approach to actions makes more sense in my workflow.

 

It's a very minor point, but suppressing running emulation with an extra make parameter for "compile", and allowing the emulator to run for "compile and run" seems a bit backward. To me, "make" for "compile", and "make ; make run" for "compile and run" makes more sense. It also leaves the door open to other more granular control from ADS, like having "debug" calling "make debug", which could run stella or mame in debug mode in your makefile.

 

 

Perhaps you have treated my suggestion too literally.

I was just trying to say have build variants in the makefile, and the IDE calling those for compile/compile-run.

I don't particularly care if compile is "make" and compile/run is "make run" or other variants thereof.

Edited by Andrew Davie

Share this post


Link to post
Share on other sites
1 hour ago, Andrew Davie said:

If you can't type 'make' on the command line, and have it work, then it's not going to work in the IDE either.

Do you have any form of 'make' installed?  
Also, do those examples have a "makefile" with them? Also a requirement.

Sorry if this is obvious to you, but first ... start with the obvious questions :)

Oh, I usually use mingw32 for make

yup, they have a makefile

Edited by Lillapojkenpåön

Share this post


Link to post
Share on other sites

I downloaded make from here

http://gnuwin32.sourceforge.net/packages/make.htm

 

and added it to PATH variable

I called it "make" and tried a couple different variations

C:\Program Files (x86)\GnuWin32\bin
C:/Program Files (x86)/GnuWin32/bin/

C:\Program Files (x86)\GnuWin32\bin\

C:/Program Files (x86)/GnuWin32/bin

 

but that didn't work.

I also found a make in \msys\1.0\bin

and added that to PATH but it still doesn't work

 

Last time I tried to add dasm to PATH I also never got it to work

Share this post


Link to post
Share on other sites

I think it sets up a limited environment to include only system paths, and what is bundled with the extension. I think "make" for Windows would either have to be bundled with the extension, or maybe it would be found if the binary were put in the Windows directory (which probably isn't the best solution).  

 

Edit: maybe try adding it manually to wherever the extension installs the compiler / assembler binaries on Windows? 

Share this post


Link to post
Share on other sites
9 hours ago, splendidnut said:

I thought a developer was always responsible for configuring their environment?  :)

 

 Yup, that worked, thanks!  I'm a bit surprised you went with "makefile" instead of "build" as you specified earlier.  But I take it this was just a test run of the feature and it will be developed further?

 

And I'm guessing that until you implement some sort of project file system, it's a no-go on having Stella automatically launch when using the "launch" button.  Which is OK, since Stella is generally just an ALT-tab away.

I did think about changing the names but went with consistency of names first up.  As long as you add .bat or .sh then it will identify the difference.  As you say can be changed later on once it's bedded down.

 

Yep that will have to wait for the project system as I need to know what filenames are and they could be called anything.  The project file would identify that sort of thing for me so i can process it correctly.

  • Like 1

Share this post


Link to post
Share on other sites

A new release (v0.4.4) is now available with the following changes:

  • Updated Stella to 6.1 (Windows, Linux, macOS)
  • Like 1

Share this post


Link to post
Share on other sites
33 minutes ago, mksmith said:

A new release (v0.4.4) is now available with the following changes:

  • Updated Stella to 6.1 (Windows, Linux, macOS)

Having issues..

 

1464547730_ScreenShot2020-03-23at4_35_37pm.thumb.png.133b75c4e016907f37bab454d10d593f.png

Share this post


Link to post
Share on other sites

Ah great 😁 was going to suggest something like that! I ran everything on macOS and Linux beforehand to make sure it was ok 👍

 

Share this post


Link to post
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.

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...