Jump to content
IGNORED

batari Basic Extension for Visual Studio Code


mksmith

Recommended Posts

[NOW WITH LINUX AND MACOS SUPPORT!]

Welcome to the batari Basic Extension for Visual Studio Code which allows users to create games for the Atari 2600 VCS using the batari Basic language. The average person who wants to make an Atari 2600 VCS game no longer has to spend years trying to figure out assembly language thanks to batari Basic!

This extension was created and is maintained by mksmith for the AtariAge community and is free to use. If you have paid for this extension please seek a refund.

Big thanks to everyone who has helped along the way and to the 60+ users who have so far installed the extension!

Atari Dev Studio
My new extension Atari Dev Studio for Homebrew Development is now available for designing homebrew games for the Atari 8-bit systems (Atari 2600 and 7800). Atari Dev Studio is a one-stop-shop for any programmer and includes a number of built-in features to allow you to design, develop and test games for your favourite system. Get started with batari Basic (2600) or 7800basic (7800) using easy to learn BASIC-like languages or go hard-core with assembly using dasm. During development test your creation using the Stella (2600) or A7800 (7800) emulators right from within Atari Dev Studio.

I will continue to do minor updates to this extension for the time being if you wish to continue using this one.

What is batari Basic?
batari Basic created by Fred "batari" Quimby is a BASIC style language used in the creation of Atari 2600 games. batari Basic is compiled to generate a binary file that can by used on actual Atari 2600 VCS hardware via cartridge (such as a Harmony or UNO cart) or by using an Atari 2600 VCS emulator such as Stella.

batari Basic logo created by RevEng (http://atariage.com/forums/topic/282960-batari-basic-logo).

What is Stella?
Stella is a multi-platform Atari 2600 VCS emulator released under the GNU General Public License (GPL). Stella was originally developed for Linux by Bradford W. Mott, and is currently maintained by Stephen Anthony. Since its original release several people have joined the development team to port Stella to other operating systems such as AcornOS, AmigaOS, DOS, FreeBSD, IRIX, Linux, OS/2, MacOS, Unix, and Windows. The development team is working hard to perfect the emulator and we hope you enjoy our effort.

Stella is included as part this extension with many thanks to Stephen Anthony. Stella is a external project and can be downloaded separately here. If you enjoy using Stella place consider donating to ensure it's continued development.

System requirements
This release is compatible with Windows, Linux and macOS.

The latest releases of batari Basic (BB.1.1d.reveng41), dasm (2.20.11 - 20171206) and Stella (6.0 - WIndows and Linux only) are included so you can be up and running straight after installing the extension. As noted you can optionally provide links to your own specific releases of batari Basic, dasm and Stella (or other emulators) via the configuration settings.

Installing the extension
The extension can be installed directly within Visual Studio Code. Complete the following:

  • Install VS Code onto your Windows machine
  • From the menu select View -> Extensions or click the Extensions button on the Activity Bar
  • From the Extensions tab, click on the Search Extensions in Marketplace entry box and type batariBasic. Select the extension from the results list and click the Install button.
  • Make sure you restart VS Code to ensure the extension is properly installed

post-66583-0-60694800-1554972485.jpg
(thanks Gemintronic)

Using batari Basic
So you've installed this extension and want to create a new modern day Atari 2600 masterpiece? Help is available here:

Random Terrain has created a very useful getting started page on how to use batariBasic with information about using the language and some great samples explaining key features:
http://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html

The batari Basic forum at AtariAge is the perfect place to get help and assistance from the community:
http://atariage.com/forums/forum/65-batari-basic

Available features
This extension includes the following features:

  • Syntax highlighting for the batari Basic (.bas) and 6502/7 assembly (.asm, .a, .h) languages
  • Compile batari Basic files (.bas) and dasm assembly files (.dasm)
  • Optionally launch Stella (or other emulators) after compilation to test your program
  • Customised batari Basic snippets containing some useful re-usuable code
  • Provide links to your own specific releases of batari Basic, dasm and Stella rather than use the provided ones

Extension settings
A number of extension configuration options are available via the File > Preferences > Settings > Extensions > batari Basic tab allow you to customise your experience.

Compiling your program
To display the available extension features press CTRL+SHIFT+P to display the command palette. From the command palette prompt type bB or dasm to short-list the available options:

batari Basic

  • bB: Compile batari Basic source code (CTRL+ALT+N)
  • bB: Compile batari Basic source code and run in emulator (CTRL+ALT+M)
  • bB: Stop/kill the batari Basic compiler

Dasm

  • dasm: Compile assembly source code
  • dasm: Compile assembly source code and run in emulator
  • dasm: Stop/kill the assembly compiler

General

  • bB: Open the batari Basic Welcome page (CTRL+ALT+W)
  • bB: Open the batari Basic forum at AtariAge (CTRL+ALT+F)

Snippets
The following batari Basic language snippets are available by entering the snippet prefix and pressing TAB in the code editor:

  • bbntsccolors NTSC or bbpal60colors PAL-60 color tables
  • bbscorevar output variables to the score for testing purposes (left and/or right)

Note: If you are having trouble using the snippets press CTRL+SHIFT+P to display the command palette and choose the Insert Snippet option.

Known Issues
Please send a PM to mksmith

Debugging the extension
During the development phase of the extension i've added some developer output to assist with any issues that may appear. To view this output, open the Developer Tools using either CTRL+SHIFT+I or Help -> Toggle Developer Tools from the menu and in the debugger window, ensure the Console tab is activated (see image below). This information may help identify the area where the extension is failing to process.

Releases
20190418 (Build 0.1.8 )

  • Added Stella 6.0 packages for Linux (Debian, 32-bit and 64-bit). macOS will still (for now) be required to provide a path to Stella.

20190416 (Build 0.1.7)

  • Fixed issue compiling a file which was located in a subfolder of the open workspace (thanks vbauer!)

20190413 (Build 0.1.5, 0.1.6) - Preliminary Linux and macOS support!

  • Fixed issues with chmod permissions for Linux and macOS (hopefully!)
  • Added extension support for Linux (and macOS?) users. Linux users on a 64-bit OS will need to ensure they can execute 32-bit applications
  • Added dasm executables for Linux and macOS users to compile assembly
  • Added message for Linux and macOS user to configure the emulator path when attempting to launch a game
  • [breaking] Updated setting dasm.compilerFolder to dasm.compilerPath so the user can now set the filename (more flexibility)
  • Removed setting emulator.use64BitEmulator as the extension will now determine which release to use based on the architecture detected (Windows only for now)
  • Removed the bbtemplatedpc starting DPC+ game template snippet as we now have templates available from the Welcome page

20190406 (Build 0.1.4)

  • Added new Welcome page (CTRL+ALT+W) to provide quick access to key functionality (in progress)

20190402 (Build 0.1.2, 0.1.3)

  • Fixed issue (hopefully!) where the VS Code Workspace folder was not properly determined (thanks TwentySixHundred!)
  • Fixed issue launching Stella with a space in the compiled game filename
  • Fixed issue validating potential errors from the compiler and is now less strict (thanks Lillapojkenpåön!)
  • Updated the debugger output to include information from stdout and stderr pipes to help identify future potential validating issues

Thanks to TwentySixHundred and Lillapojkenpåön for helping with a couple of compiler/launcher problems.

20190331 (Build 0.1.1)

  • Added debugging information to all processes. To view this output, open the Developer Tools using either CTRL+SHIFT+I or Help -> Toggle Developer Tools from the menu.
  • Added options to Stop/Kill the batari Basic and Dasm compilation process

20190311 (Build 0.1.0) - First public release

post-66583-0-71771400-1552281375_thumb.png

post-66583-0-69470800-1552281390_thumb.png

post-66583-0-79927200-1552281405_thumb.png

post-66583-0-75396600-1554156520_thumb.png

post-66583-0-45709000-1554551913_thumb.png

post-66583-0-30777200-1555117995_thumb.png

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

@Random Terrain - I'll see what I can add within the confines of what is cross-platform - there are some handy tools in there for sure! I want to add something to the activity bar if I can (the bar down the left side) so things are easily available (just need to look at how)

 

@Albert - No I don't intend to as it should be a community tool :-D Yes definitely can look at cross-platform compilation as it should just be the case of verifying the OS and adjusting the paths according (I'm on Windows ATM so setup for that currently).

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

Added some extra stuff in the past day or so including:

  • the ability to open the forums via the command bar
  • snippets (DPC+ kernel template, and the NTSC and PAL60 color tables).
  • cleaned up a couple of existing processes
  • trapped an additional compilation error

There doesn't appear to be a lot of additional stuff that can be added via the Activity Bar ATM. There is some sort of webview you can add to show in a tab (local only) so may need to resort to seeing what can be done there.

 

Did some programming tonight for Tower of Rubble in it and its looking and working nicely. Still reaching for F5 out of habit (VS Code debugger) - you need to go via the command bar (Ctrl+Shift+P) to access features but once there in the list they are very accessible.

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

I'd be happy to test / assist if you can walk me through the setup.

 

VbB is great but as others have noted, it becomes really fidgetty when your code gets above a certain size, i find my self using Notepad++ then copying and pasting, hardly ideal!

 

Either Way, I hope this works out as an alternative, look forward to seeing your progress!

Link to comment
Share on other sites

Definitely interested! Does this also support compiling and running the emulator from the IDE?

 

Those two mentioned features are very important to me. I am constantly hitting compile and test :)

 

If this had syntax highlighting for 7800bas and IntyBASIC it would be a %100 percent buy.

 

@Gemintronic - yes you can compile and run if you choose (or just compile). I haven't every looked at 7800bas or IntyBASIC - would need to check those out at some stage.

  • Like 1
Link to comment
Share on other sites

I'd be happy to test / assist if you can walk me through the setup.

 

VbB is great but as others have noted, it becomes really fidgetty when your code gets above a certain size, i find my self using Notepad++ then copying and pasting, hardly ideal!

 

Either Way, I hope this works out as an alternative, look forward to seeing your progress!

 

Great - will PM you soon with the details - still working through a few things! Are you on Windows??

Link to comment
Share on other sites

 

@Gemintronic - yes you can compile and run if you choose (or just compile). I haven't every looked at 7800bas or IntyBASIC - would need to check those out at some stage.

 

Those two BASIC compilers are actively maintained with no dedicated IDE for an active user base. You could massively expand your audience. Thank you for even thinking about checking them out ^_^

Link to comment
Share on other sites

Nice work! :)

 

You cited limitations with the Visual bB IDE as the imeteus for creating your visual studio extension; how do you plan to handle sprite and playfield GUI's, will you create a colorful integrated GUI for this like Visual bB or use the WYSIWYG ACII art editors already present in bB?

 

I wrapped the PowerShell ISE simiarly as an IDE for Atari Flashback and SuperCharger BASIC and decided to keep it simple and use the similar ASCII art designers already present in the language.

 

imo the most important feature is pressing Play to compile and launch the BASIC program in the emulator with one click, which I think you already have.

 

What other features will you add or change in your IDE compared to visual bB?

 

 

Link to comment
Share on other sites

@Muddyfunster

Great! I need to look at manual distribution as sometimes when I copy it over to the extension folder it doesn't always run first up.

 

@Gemintronic

7800basic and IntyBASIC look to be very similar (I guess how they all work generally) so some sort of extensions would be do-able certainly. All that is required is a syntax definition and a process to call the compiler (and emulator to test) which I have a basic structure for now. Still I would like to get cross-platform compatibility done before starting other ones. One of the difficulties of building IDEs is always the cross platform nature as people enjoy using their own OSes which thankfully VS Code has the basis to provide the very key features.

 

@Mr SQL

VS Code appears to be limited for GUI development currently due to it's cross-platform nature. There is a webview component with which you can access html locally in the tab so that may be able to do something there but have yet to check that out. I'm hoping to maybe one day add a language server to compile as you code for syntax checking and also maybe make the intellisense a little more specific but it's got the main stuff required (apart from cross-platform use which would be high on the list).

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

Added a dasm compiler into the process as they probably can go hand in hand with developing for the 2600. Re-org'd the code to provide a base compiler class I can override.

 

Back to Tower of Rubble to test the extension!

  • Like 3
Link to comment
Share on other sites

If you end up recreating some of the things in VbB, please don't copy the style of the TIA Color Chart where the color strips are vertical (I didn't know what I was doing back then). It should look more like this with color strips that are horizontal:

 

randomterrain.com/atari-2600-memories-tia-color-charts.html#ntsc_color_tool

  • Like 2
Link to comment
Share on other sites

If you end up recreating some of the things in VbB, please don't copy the style of the TIA Color Chart where the color strips are vertical (I didn't know what I was doing back then). It should look more like this with color strips that are horizontal:

 

randomterrain.com/atari-2600-memories-tia-color-charts.html#ntsc_color_tool

No probs @RandomTerrain - would like to add the charts if a I can as that little tool does come in handy! Might be in a webview document tab if I can get that going.

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...

Can't wait! we are in need of an updated IDE for bB. VbB is brilliant but like others have said there is some issues. Also like mentioned above im interested in 7800BASIC support. It would be great to have an IDE that can support both the 2600 and 7800. :thumbsup:

Yeah, I won't even try to make anything for the Atari 7800 until I have an IDE.

  • Like 2
Link to comment
Share on other sites

Once this is complete I'll certainly do a 7800 version as it should be an easy process now to replace the compiler. Ill need to take a closer look in regards to either having one extension or two - certainly all together might be a great way to go.

  • Like 5
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...