Jump to content

Photo

Visual Studio Code Extension for batari Basic

batari Basic Compiler Syntax Highlighting

33 replies to this topic

#1 mksmith OFFLINE  

mksmith

    Star Raider

  • 71 posts
  • Location:Melbourne, Australia

Posted Sat Jan 19, 2019 6:46 AM

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](http://atariage.com/.../66583-mksmith/) for the AtariAge community and is free to use. If you have paid for this extension please seek a refund.

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/...tari-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 seperately here (https://stella-emu.github.io). If you enjoy using Stella place consider donating to ensure it's continued development (https://stella-emu.github.io/donations.html).

System requirements
This release is compatible with Windows (macOS and Linux are planned).

The latest releases of batari Basic (currently BB.1.1d.reveng41), Dasm (currently 2.20.11 - 20140304) and Stella (currently 6.0) 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
  • 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.

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.randomter...c-commands.html

The batariBasic forum at AtariAge is the perfect place to get help and assistance from the community:
http://atariage.com/...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)
  • Compile dasm assembly files (.dasm)
  • Optionally launch Stella (or other emulators) after compilation to test your program (either 32-bit or 64-bit)
  • Customised batari Basic snippets containing some useful re-usuable code
  • Provide links to your own specific releases of batari Basic 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: Open the batari Basic forum at AtariAge (CTRL+ALT+F)

Dasm

  • dasm: Compile assembly source code
  • dasm: Compile assembly source code and run in emulator

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

  • bbtemplatedpc starting DPC+ game template
  • 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
Currently not configured or tested for macOS or Linux usage. Please send a PM to [mksmith](http://atariage.com/.../66583-mksmith/)
 
Releases
20190311 (Build 0.1.0) - First public release

Attached Thumbnails

  • editor-dark-commandpallete.png
  • editor-dark-assembly.png
  • editor-dark-settings.png

Edited by mksmith, Mon Mar 11, 2019 2:52 AM.


#2 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,956 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sat Jan 19, 2019 9:39 AM

Can you put in similar tools that VbB has?

#3 Albert ONLINE  

Albert

    Quadrunner

  • 35,252 posts

Posted Sat Jan 19, 2019 10:35 AM

That's awesome, great job on that!  And Visual Studio Code is cross-platform, so it can be used in Windows, macOS and Linux.  Microsoft did a nice job with this editor.  Are you going to charge for your extension? 

 

 ..Al



#4 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Sat Jan 19, 2019 2:51 PM

@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, Sat Jan 19, 2019 2:53 PM.


#5 Albert ONLINE  

Albert

    Quadrunner

  • 35,252 posts

Posted Sat Jan 19, 2019 3:10 PM

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

 

Excellent.  :)



#6 RevEng OFFLINE  

RevEng

    Bit Player

  • 5,173 posts
  • Location:bottom of the stack

Posted Sat Jan 19, 2019 4:07 PM

Very cool, especially the cross-platform nature of it. Well done!

#7 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Mon Jan 21, 2019 6:53 AM

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, Mon Jan 21, 2019 6:57 AM.


#8 Muddyfunster OFFLINE  

Muddyfunster

    Moonsweeper

  • 300 posts

Posted Mon Jan 21, 2019 7:06 AM

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!



#9 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,314 posts

Posted Mon Jan 21, 2019 7:31 AM

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.



#10 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Mon Jan 21, 2019 7:39 AM

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.



#11 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Mon Jan 21, 2019 7:41 AM

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



#12 Muddyfunster OFFLINE  

Muddyfunster

    Moonsweeper

  • 300 posts

Posted Mon Jan 21, 2019 8:16 AM

Yes, i'm running with Windows 10.



#13 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,314 posts

Posted Mon Jan 21, 2019 8:19 AM

 

@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 ^_^



#14 Mr SQL OFFLINE  

Mr SQL

    River Patroller

  • 2,094 posts

Posted Mon Jan 21, 2019 12:05 PM

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?

 

 



#15 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Mon Jan 21, 2019 7:05 PM

@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, Mon Jan 21, 2019 7:08 PM.


#16 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Tue Jan 22, 2019 7:55 AM

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!



#17 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,956 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Tue Jan 22, 2019 12:22 PM

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



#18 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Tue Jan 22, 2019 10:28 PM

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.

#19 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Fri Feb 15, 2019 12:24 AM

Getting very close to a release. Have a few things to finalise but should be very soon.

#20 Tony The 2600 OFFLINE  

Tony The 2600

    Moonsweeper

  • 435 posts
  • 1.19 MHz
  • Location:Adelaide, Australia

Posted Fri Feb 15, 2019 1:38 AM

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:



#21 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,956 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Fri Feb 15, 2019 2:26 AM

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.

#22 EvoMikeUK OFFLINE  

EvoMikeUK

    Star Raider

  • 85 posts

Posted Fri Feb 15, 2019 5:12 AM

This is a really exciting project. I am a full time software developer that uses Visual Studio all day. This would be a great move for the community.



#23 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 28,956 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Fri Feb 15, 2019 5:21 AM

I couldn't make anything without an IDE, so it's been nice having VbB, but one thing that always irritated me about VbB is that it randomly forgets undo/redo. Thank God I use Save As a lot.



#24 mksmith OFFLINE  

mksmith

    Star Raider

  • Topic Starter
  • 71 posts
  • Location:Melbourne, Australia

Posted Sat Feb 16, 2019 1:04 AM

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.

#25 KevKelley OFFLINE  

KevKelley

    Chopper Commander

  • 196 posts
  • Lots of hobbies, little time, loads of fun.
  • Location:Orlando

Posted Sat Feb 16, 2019 6:02 AM

I am unfamiliar with Visual Studio. I will definitely have to check this out. I really like vbB and I don't think I would ever have been able to make anything even resembling a game without it.





Also tagged with one or more of these keywords: batari Basic, Compiler, Syntax Highlighting

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users