+mksmith Posted April 16, 2019 Share Posted April 16, 2019 (edited) 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. Edited April 19, 2019 by mksmith 10 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 17, 2019 Author Share Posted April 17, 2019 (edited) 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. 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 SelectionWhen 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: 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 April 17, 2019 by mksmith 2 Quote Link to comment Share on other sites More sharing options...
4ever2600 Posted April 17, 2019 Share Posted April 17, 2019 Awesome! 1 Quote Link to comment Share on other sites More sharing options...
eizner23 Posted April 18, 2019 Share Posted April 18, 2019 nice work! as a C# programmer this may help me get into homebrews someday soon. 1 Quote Link to comment Share on other sites More sharing options...
Lillapojkenpåön Posted April 19, 2019 Share Posted April 19, 2019 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. 2 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 19, 2019 Author Share Posted April 19, 2019 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. Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted April 19, 2019 Share Posted April 19, 2019 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! Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 19, 2019 Author Share Posted April 19, 2019 @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. 1 Quote Link to comment Share on other sites More sharing options...
rocketmonkey101 Posted April 25, 2019 Share Posted April 25, 2019 (edited) 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 April 25, 2019 by rocketmonkey101 Quote Link to comment Share on other sites More sharing options...
+mksmith Posted April 25, 2019 Author Share Posted April 25, 2019 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! 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.