Jump to content
IGNORED

Atari Dev Studio (VS Code) for Developers [Annoucement]


mksmith

Recommended Posts

Hi everyone,

As some of you may know I've been working on a extension for batari Basic in Visual Studio Code (VS Code) a cross-platform IDE developed by Microsoft (further information available here) to code and test homebrew games. After starting this I also had some urgings from a few people to also include 7800basic. Now that I've got the bB extension working fully cross-platform (Windows, Linux, macOS) I thought i'd make a start on a new extension to cover off all the homebrew languages available to the Atari 8-bit consoles starting with dasm, bB and 7800basic.

 

Some of the features will include:

  • Syntax highlighting and basic intellisense
  • Compilation of each language and optional launching of Stella (thanks StephenA!) for the 2600 and A7800 for 7800basic.
  • Configurable settings so you can provide your own dasm, bB, 7800basic, Stella and A7800 compiler variants

The idea will be to get the basics in providing a one-stop-shop for users of any platform the ability to start creating their homebrew games in their lanuage of choice. Additional features such as color charts, sprite editors etc will hopefully added in the future to extend the fuctionality bearing in mind VS Code is great for cross-platform use but brings a reasonably low-level of extensibility - the only real way to extend is via HTML within a document window.

 

This extension will always be freely available to all developers via the VS Code Marketplace and the source in Github. In my time here the AtariAge community has always been very helpful and supportative and I want to give something back in return.

post-66583-0-06679600-1555391593_thumb.png

post-66583-0-66340100-1555468963_thumb.png

Edited by mksmith
  • Like 10
Link to comment
Share on other sites

Spent some more time today completing out the features. I've just about managed to add everything back in from the batari Basic extension but in a manner which is much more extensible.
post-66583-0-69120500-1555495925_thumb.png

Compilers

the following language compilers are currently available:

  • batari Basic (using Stella for emulation)
  • 7800basic (using A7800 for emulation)
  • dasm (defaults to Stella but can be optionally changed in the settings to A7800 - this may require further work around the 7800 header)

Emulators

The following emulators are currently available:

  • Stella
  • A7800

Language Selection
When you load a file the initial laguage will be chosen based on the file extension. For example:

  • batari Basic (.bas, .bb)
  • 7800basic (.bas, .78b)
  • dasm (.dasm, .asm, .a, .h)

In the instance of .bas files this will default to batari Basic.

 

To change a language you can click on the status bar Language selector (see above) and a list will be shown allowing you to choose another language. Optionally in the settings you will be able to either let the extension choose based on the active language or set a specific language to always compile against:

post-66583-0-54857000-1555496365.png

I wasn't previous sure how this might work but now that I've had a play around I think this will be the most optimal and easiest way to do what you want. Some people may work exclusively with a particular language so you can force this as required.

 

Status Bar

Apart from using the Command Palette to select compilation, I've also added some buttons to the Status Bar (see above) allowing you to:

  • Display the extension version (might be useful at times)
  • Open the Welcome page
  • Compile source code
  • Compile source code and run

 

Hopefully might be able to get this into the VS Code marketplace over the weekend or early next week depending on my workload.

Edited by mksmith
  • Like 2
Link to comment
Share on other sites

You should do tower of rubble in 7800 basic! I would love to collaborate on it, seems alot more fun sending stuff back and forth then being all alone on a project.

Haha! I've certainly been thinking about it as you could get it a lot closer to the PC release visually most likely. We've got the base code there ready to go really (with obviously some changes required) - feel free to make a start if you want! Give me a few weeks to have a play around in 7800basic and I'll get back to you. Collaboration across GitHub would be a fun experience - I remember a long time ago joining into one on the Blitz Basic forum but back then there were no online repository to share code into. Would be very easy today!

 

I'm getting Atari Dev Studio ready for release (very) shortly. Looking forward to having a real play.

Link to comment
Share on other sites

This is awesome! :)

 

Since you are planning to include all of the new Atari programming languages, SuperCharger BASIC and Atari Flashback BASIC compilers are ready as Powershell scripts you can easily connect to VS code, and PowerShell is supported on Linux (I used 3.0 for broadest compatibility).

I see a lot of potential in your IDE with regard to the educational initiatives Microsoft has been pursing for Programming languages and IDE's:

1. A return to immediate ease of use for learning without turning the language and IDE into Logo.

This is equivalent to Nolan Bushnell's mantra of easy to learn but difficult to master.

2. Gammification because it makes learning fun which equals learning better and faster with better retention.

Microsoft Small BASIC is one example of trying to make VS Code easier to learn and understand, but it falls short of the initial Dartmouth concept where you could type in a few lines of BASIC from a science text book and produce graphs, do equations, learn math and physics.

 

And the student could start even more simply typing just a single PRINT statement, and were motivated to learn by gamification as short (sometimes not so short) game listings abounded in Books and magazines.

 

SuperCharger BASIC and Flashback BASIC have a more modern mode like bB that supports ASCII GUI designers in the code, but they also support the initial Dartmout concepts in the initiative - there are a few examples of 10 line BASIC games on the official site http://RelationalFramework.com

 

The single statement programs in the manual perhaps best illustrate the initiative (GUI designers and directives are handled transparently by the compiler as ASCII art like the bB compiler but are optional).

 

I'm also working on a compiler for the A-8 that is cross compatible with the SuperCharger and Flashback BASIC compilers for the 2600, and there are many new A-8 compilers that support the initial Dartmout concepts, take a look at some of the 10 line BASIC games entered in this years 10 liner contest on the A-8 forum for examples of these BASIC's.

 

IDE specifics for the initiative -

 

Tiny BASIC (all BASIC is Tiny Fortran) implementations tend to fit the initiatives very well and many of these BASIC's including bB are. The statement markup is excellent and also dynamic indentation for the logic which I think your IDE also does.

 

Surfacing Errors in the IDE -

 

Error output in Tiny BASIC is limited to three; syntax error, what? and out of memory. Since the languages are compile time but VS Studio can offer JIT compilation it should be possible to hook a transparent behind the scenes call to the compilers (without the emu launch) every line or few lines and surface one of these errors immediately as they are encountered. bitd Atari BASIC took this too far and threw annoying JIT errors before you had the rest of the code written so the front end would have to handle waiting for next after for, etc and there would still be phantom errors like that self resolving (calling a label before you write it, etc), still think it would be useful in an output window.

 

Want to discuss this topic and ideas on this thread, but anyone involved in the development can also PM me to discuss these initiatives in more detail; lots of fun stuff! :)

 

Link to comment
Share on other sites

@Mr SQL,

 

Certainly happy to include anything related to Atari 2600, 5200 or 7800 homebrew development. Once I get the current languages bedded in over the next week or so I'll PM you about adding these in.

  • Like 1
Link to comment
Share on other sites

Are you planning to add atari 8bit computer stuff as well? I'm a noob I'm unsure if 5200 stuff counts for that or not? I have an old atari basic book but it's for 8bit computers and I figure that might be an easy thing to follow with and I'm curious if I can use this...or if I should grab an 8bit emulator with a basic rom...I should also add that eventually I'd like to write stuff for 7800. not sure if that matters at all.

Edited by rocketmonkey101
Link to comment
Share on other sites

Are you planning to add atari 8bit computer stuff as well? I'm a noob I'm unsure if 5200 stuff counts for that or not? I have an old atari basic book but it's for 8bit computers and I figure that might be an easy thing to follow with and I'm curious if I can use this...or if I should grab an 8bit emulator with a basic rom...I should also add that eventually I'd like to write stuff for 7800. not sure if that matters at all.

 

If there is a language and compiler for the 5200 that can be integrated in more than happy to do so!

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