+mksmith Posted January 19, 2019 Share Posted January 19, 2019 (edited) [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 StudioMy 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 requirementsThis 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 extensionThe 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 (thanks Gemintronic)Using batari BasicSo 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.htmlThe batari Basic forum at AtariAge is the perfect place to get help and assistance from the community:http://atariage.com/forums/forum/65-batari-basicAvailable featuresThis 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 settingsA number of extension configuration options are available via the File > Preferences > Settings > Extensions > batari Basic tab allow you to customise your experience.Compiling your programTo 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) SnippetsThe 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 IssuesPlease send a PM to mksmithDebugging the extensionDuring 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. Releases20190418 (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 Edited April 21, 2019 by mksmith 14 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 19, 2019 Share Posted January 19, 2019 Can you put in similar tools that VbB has? 1 Quote Link to comment Share on other sites More sharing options...
Albert Posted January 19, 2019 Share Posted January 19, 2019 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 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 19, 2019 Author Share Posted January 19, 2019 (edited) @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 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 January 19, 2019 by mksmith 2 Quote Link to comment Share on other sites More sharing options...
Albert Posted January 19, 2019 Share Posted January 19, 2019 @Albert - No I don't intend to as it should be a community tool 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. 1 Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 19, 2019 Share Posted January 19, 2019 Very cool, especially the cross-platform nature of it. Well done! Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 21, 2019 Author Share Posted January 21, 2019 (edited) 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 January 21, 2019 by mksmith 4 Quote Link to comment Share on other sites More sharing options...
+Muddyfunster Posted January 21, 2019 Share Posted January 21, 2019 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! Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted January 21, 2019 Share Posted January 21, 2019 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. Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 21, 2019 Author Share Posted January 21, 2019 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. 1 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 21, 2019 Author Share Posted January 21, 2019 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?? Quote Link to comment Share on other sites More sharing options...
+Muddyfunster Posted January 21, 2019 Share Posted January 21, 2019 Yes, i'm running with Windows 10. 1 Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted January 21, 2019 Share Posted January 21, 2019 @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 ^_^ Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted January 21, 2019 Share Posted January 21, 2019 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? Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 22, 2019 Author Share Posted January 22, 2019 (edited) @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 January 22, 2019 by mksmith 4 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 22, 2019 Author Share Posted January 22, 2019 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! 3 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 22, 2019 Share Posted January 22, 2019 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 2 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted January 23, 2019 Author Share Posted January 23, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted February 15, 2019 Author Share Posted February 15, 2019 Getting very close to a release. Have a few things to finalise but should be very soon. 4 Quote Link to comment Share on other sites More sharing options...
+TwentySixHundred Posted February 15, 2019 Share Posted February 15, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted February 15, 2019 Share Posted February 15, 2019 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. Yeah, I won't even try to make anything for the Atari 7800 until I have an IDE. 2 Quote Link to comment Share on other sites More sharing options...
EvoMikeUK Posted February 15, 2019 Share Posted February 15, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted February 15, 2019 Share Posted February 15, 2019 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. 4 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted February 16, 2019 Author Share Posted February 16, 2019 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. 5 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted February 16, 2019 Share Posted February 16, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.