Jump to content
IGNORED

The State of Batari BASIC


kisrael

Recommended Posts

Hi there! I'm Kirk-  I was a fairly early adopter of Batari BASIC

(in fact I made the very first "semi-official homepage" for it https://alienbill.com/2600/basic/home.html )

 

It's both great to see there's still action - especially Atari Dev Studio - very professional. (I know a lot of people love VisualBB but I never quite caught its vibe, the way it manages assets...) It's great that it's cross platform as well. 

 

I sometimes wonder if there would be a way to make the documentation less overwhelming. RT's page is great but taking it in is like trying to drink a whole bathtub

 

Is there a cross platform way of using the titlescreen kernels? 

 

  • Like 2
Link to comment
Share on other sites

In 2018, I got permission from an author to make an online batari Basic tutorial based on two of his books. I'm not a teacher or a writer, so I had a hard time getting started. I've been working on it again recently (off and on for about a month). It could take me 7,000 years to finish it, so I don't know if I should spend my time on other things that I can actually finish or keep working on the online book that I may never finish.

Link to comment
Share on other sites

28 minutes ago, Random Terrain said:

In 2018, I got permission from an author to make an online batari Basic tutorial based on two of his books. I'm not a teacher or a writer, so I had a hard time getting started. I've been working on it again recently (off and on for about a month). It could take me 7,000 years to finish it, so I don't know if I should spend my time on other things that I can actually finish or keep working on the online book that I may never finish.

I had always wondered about books for bB. I can picture your website in book form with little code examples like the old programming books back in the day.

  • Like 1
Link to comment
Share on other sites

 @Random Terrain - I think what I'd love to see you do is something with more... hierarchy? I guess? Your Basic Commands list functions best as a reference, like if you already have some idea of what's in bB, it's THE place to go. I'd be interested to how you would teach a beginner gently: starting with simple explanations, some easy to understand programs, and then letting it branch.
(That's all why every couple years, when I've fogotten 70% of what I used to know in bB but have the urge to start again, I probably always make some noise about "oh, I'm going to make my own guide/reference", like I did back with https://atariage.com/2600/programming/2600_101/ )

Of course I should take a good look at the awsomeness of 

 both what AM wrote and what they link to.

  • Like 1
Link to comment
Share on other sites

Hey Kirk, welcome back. :D Glad to see you're enjoying Atari Dev Studio. I agree that it's a wonderful cross-platform addition to the tools, especially since vbb has languished.

10 hours ago, kisrael said:

Is there a cross platform way of using the titlescreen kernels? 

Sadly, only sort-of. When I first released the titlescreen kernels, I had planned to write some cli png->asm converters, but the Jeff jumped in with vbb updates so it fell off my priority list.

 

The vbb titlescreen editor is actually a stand-alone executable (Img2Code.exe) and it runs fairly well in wine, if that's an option for you.

 

 

 

 

Link to comment
Share on other sites

1 hour ago, RevEng said:

Hey Kirk, welcome back. :D Glad to see you're enjoying Atari Dev Studio. I agree that it's a wonderful cross-platform addition to the tools, especially since vbb has languished.

Sadly, only sort-of. When I first released the titlescreen kernels, I had planned to write some cli png->asm converters, but the Jeff jumped in with vbb updates so it fell off my priority list.

Yeah, VBB was never my cuppa... I really like things that keep information as like, text. (Besides the migration to Mac)

I have an old windows laptop I might be able to use. But I guess mostly I want to learn about the output... like I would love to make a webbased tool, and let either pngs or "ASCII art" be the input. (Basically text to asm, and then a second adapter for png to text)

Are there descriptions of the output of the conversion tool anywhere? looks like it's alitte complicated in terms of how the final byte order needs to be...
 

Link to comment
Share on other sites

There aren't really any descriptions, but if you download the titlescreen kernel itself, and look at the assembly code for each kernel type it's pretty well documented.

 

The format of the data is always in separate byte-width strips of the image, to efficiently feed the 6 sprite copies used in the bitmaps. There's a bit of conditional alignment prior to each strip of data, to avoid page-crossing timing problems.

Link to comment
Share on other sites

I had a preliminary script that used ImageMagick to convert a BMP to PBM format (an ASCII format), and from there used text manipulation tools to get it into the proper format. It was lost in my hard drive crash, and was admittedly a bit kludgy anyway. Aty some point I'd like to start over maybe using a C utility and libpng. I'd happily use a web interface, though, and I wouldn't mind using ASCII art for input instead.

  • Like 1
Link to comment
Share on other sites

On 6/6/2020 at 12:34 AM, kisrael said:

Hi there! I'm Kirk-  I was a fairly early adopter of Batari BASIC

(in fact I made the very first "semi-official homepage" for it https://alienbill.com/2600/basic/home.html )

 

It's both great to see there's still action - especially Atari Dev Studio - very professional. (I know a lot of people love VisualBB but I never quite caught its vibe, the way it manages assets...) It's great that it's cross platform as well. 

 

I sometimes wonder if there would be a way to make the documentation less overwhelming. RT's page is great but taking it in is like trying to drink a whole bathtub

 

Is there a cross platform way of using the titlescreen kernels? 

 

 

Great site Kirk! I used your site and the example programs when I was learning bB :) 

 

Enjoyed visiting it again and that it is frozen in time at 2005 - very cool!

 

I reread the faq and saw that bB 1.0 was simpler initially with just a single kernel with an x,y addressable playfield, two sprites  and a score. I think as bB has expanded with multiple kernel options and versions there is more complexity for the new user to learn:

 

Concept sweep - 

 

The biggest difficulties learning BASIC using an IDE like Visual Batari BASIC and Atari Dev Studio is their complexity, IDE's add their own templates for the new user. I design streamlined IDE's and there is a Microsoft initiative on simplified design for education both with the BASIC language and the IDE experiences for the user.  

 

The learning curve for me with classic bB 1.0 without using an IDE was the template of non-basic like structures around the users BASIC program. The sample programs made this pretty easy to understand and see where the BASIC code was located. 

 

The IDE insulates you to some degree from these but you still have to learn how to use the different template parts in visual form as well as writing the BASIC code -

BASIC users never encountered any of that when using the simple science textbook examples in the 80's with BASIC type-in's that could be easily used and understood for being just a few lines of BASIC.

 

Perhaps the best way to teach VBB and Atari Dev Studio would be to follow the design of the Visual Studio IDE and Visual BASIC Documentation set as used to teach BASIC, or maybe Small BASIC which is a subset of the IDE and functionality to reduce concept sweep, but we are finding this is still far more complex than classic BASIC was for students to learn.

 

Classic BASIC Programming on the Atari:

 

I built an old-school classic BASIC mode into SuperCharger BASIC specifically so simple type-in examples like in the science texts could be used to teach BASIC, but I do like the ASCII art so there is the option to draw the virtualworld and sprites in ASCII.

 

Check out the simple BASIC examples in the text manual here 

 

It would be cool to see SuperCharger BASIC added to the Atari Dev Studio with both modes supported! :)

 

Currently it repurposes the PowerShell ISE built into Windows as a simple BASIC IDE like 2600IDE where you still have ASCII art inline with the BASIC code and just a Play button to launch Stella.  

 

  • Like 1
Link to comment
Share on other sites

Yeah. I think the trick is to explaining things. Some tutorials do a good job of starting small and building up, other teaching resources are the firehose.

I've always been a programmer as a job, I grew up with BASICs (and playing lots of Atari games) and then in 2003 I learned assembly + stella's quirks to do JoustPong... so I always have to distrust my ability to remember what other people don't know about the scene. (And even with all that background, I get swamped by the firehoses :-D)

  • Like 1
Link to comment
Share on other sites

Just remember that my adapted version of the bB page is similar to a dictionary or an encyclopedia. You basically just go there to look stuff up or to copy and paste code. It's not a tutorial. To help make things a little easier to find, the page has a table of contents, an expanded index, frequently used page links, a keywords/constants/registers list, a quick reference list, and so on.

 

We need somebody who is good at teaching and writing and has knowledge of batari Basic and assembly language to create tutorials that can take a new user from the hand-holding grade school stage all the way up to the equivalent of high school and beyond. Hopefully that person won't burn out part of the way through.

Link to comment
Share on other sites

6 hours ago, Random Terrain said:

Just remember that my adapted version of the bB page is similar to a dictionary or an encyclopedia. You basically just go there to look stuff up or to copy and paste code. It's not a tutorial. To help make things a little easier to find, the page has a table of contents, an expanded index, frequently used page links, a keywords/constants/registers list, a quick reference list, and so on.

 

We need somebody who is good at teaching and writing and has knowledge of batari Basic and assembly language to create tutorials that can take a new user from the hand-holding grade school stage all the way up to the equivalent of high school and beyond. Hopefully that person won't burn out part of the way through.

Whenever I I had gone to your site, it was one of two ways.

 

The first is that I was just reading or re-reading a section for the heck of it.

 

The second would be I was thinking or trying to program something and I would look to see what could work.  I want different playfield elements?  Colors?  I would look up each section to see if they may have the answer.  

Link to comment
Share on other sites

22 hours ago, Random Terrain said:

Just remember that my adapted version of the bB page is similar to a dictionary or an encyclopedia. You basically just go there to look stuff up or to copy and paste code. It's not a tutorial. To help make things a little easier to find, the page has a table of contents, an expanded index, frequently used page links, a keywords/constants/registers list, a quick reference list, and so on.

 

We need somebody who is good at teaching and writing and has knowledge of batari Basic and assembly language to create tutorials that can take a new user from the hand-holding grade school stage all the way up to the equivalent of high school and beyond. Hopefully that person won't burn out part of the way through.

AfterBASIC.thumb.JPG.d36316a390b36106150165b99634ce3d.JPG

 

The analogies to a fire-hose and being overwhelmed by a bathtub are the "After BASIC" effect multiplied in layers - 

A language designed "after BASIC", even another BASIC, tend to have things added to make it better.

 

The ASCII art in Batari BASIC are a familiar example, these are useful and turn even a text-editor like notepad into an IDE because they are in-line graphics designers. But these are "After BASIC" enhancements to the language that new users must learn, in this case very fun to learn being ASCII art.

 

As more authors work on the language releasing new versions, more things are added to make it better, but increase complexity.

 

A good question for the programmers enhancing a language to ask is "was that construct I added really needed as an intrinsic?" 

If it could have been done a few lines of BASIC, carefully weigh adding it against the bathtub effect.

 

The BASIC book you are adapting to the web has no application for this enhancement or any other enhancements added as intrinsics which is very challenging because the book had none of this to contend with, and they become overwhelming to new users learning BASIC programming. Afer BASIC's also overwhelm the instructor because of the concept sweep teaching so many things, the initiative for Small BASIC and simpler paradigms came about due to concept sweep in the professional Visual BASIC product for the same reasons - 

 

Consider that just like Visual BASIC Programmers who started with Version 1.0, you've kept up with many of the enhancements as they were added one at a time. Coming back after a few years Kirk now sees a group of these enhancements all at once and experiences the bathtub effect, and he is an experienced professional Programmer who is familiar with bB and it's initial "After BASIC" enhancements.

 

So the new user is going to be far more overwhelmed by comparison; it may be better to teach bB 1.0 to keep teaching managable, either that or someone could add an "old-school" mode to bB to make it even easier to teach than the original.

 

Link to comment
Share on other sites

Mr SQL had an interesting point about the addition of features etc. It's funny, you see the same phenomenon in other bits of of geek culture. Like online MMOBAs - after a while a core bunch of people learn so many most effective practices that it's tough for a beginner to get traction. Or sometimes fandoms get so deep into the expanded universe lore, that casual fans can't follow conversations.

for bB, I think the issue is adding some level of hierarchy -- stuff you need to know to start with, stuff you might add in later, stuff you can ignore except in special cases -  so the bB 1.0 is still available and highlighted, and other paths are signposted, but not always put along side  the 1.0 content, except for the indexes and complete dictionaries. (RT's reference emphasizes being complete over being focused)

HA - looking even more closely, I had forgotten that the "Quick Reference" was based on work I did. And that's a good example of the kind of hierarchy thinking - everything is group by topic (alphabetical order is only useful if you know what you're looking for already!... and if you know what you're looking for already you might as well do ctrl-F ;-) )

  • Like 1
Link to comment
Share on other sites

19 hours ago, kisrael said:

HA - looking even more closely, I had forgotten that the "Quick Reference" was based on work I did. And that's a good example of the kind of hierarchy thinking - everything is group by topic (alphabetical order is only useful if you know what you're looking for already!... and if you know what you're looking for already you might as well do ctrl-F ;-) )

 

You also asked for the keywords/constants/registers list to be added to the page around the same time.

 

About Ctrl+f, it's usually faster for me to use the frequently used page links or the expanded index, especially since I can't remember the exact name of many things. If what I'm looking for isn't in the frequently used section, I can usually find what I'm looking for by using the index. I've basically turned the index into a reverse dictionary over the years. When I can't remember the official name for something, I can usually get to it from another angle by using the index since I stuffed the index with alternative ways to get to the information.

  • Like 1
Link to comment
Share on other sites

RT's Basic Commands page is definitely the place to go for those who know what they're doing. I still find it incredibly useful for cross referencing or looking up something i have forgotten. As RT mentioned i too use ctrl+f to navigate my way around otherwise it can take awhile to find exactly what you're looking for.

 

As for those dipping their feet in the waters the first time, the only suggestion i have is maybe a beginners section?/ Something that gives them a starting point with the very basics like tinkernuts demo. However that would be more work for RT to maintain.

 

Time i run off and save an offline page of Basic Commands before RT makes changes :)

Link to comment
Share on other sites

Yeah, I don't think any effort will ever amount to what RT has built. 

Sometimes it's a little jarring to have information like "what is a CPU?" so close to "what is overscan?"... those seem like very different audiences that would be asking that question :-D 

I'm actually going to read through the page from top to bottom, just to find the stuff I might have missed - the known unknowns. Also dig up the best example I can for DPC+ and coping with banks. I think this "go round" has one more game in me and I want to get it out, and while I think "classic 4K" game is a really interesting place to try and push the boundaries of, I owe it to myself to try something not so confined.

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, kisrael said:

Yeah, I don't think any effort will ever amount to what RT has built. 

Sometimes it's a little jarring to have information like "what is a CPU?" so close to "what is overscan?"... those seem like very different audiences that would be asking that question :-D 

I'm actually going to read through the page from top to bottom, just to find the stuff I might have missed - the known unknowns. Also dig up the best example I can for DPC+ and coping with banks. I think this "go round" has one more game in me and I want to get it out, and while I think "classic 4K" game is a really interesting place to try and push the boundaries of, I owe it to myself to try something not so confined.

 

Great observation about the different audiences, beginners learn about the CPU, ROM and RAM while overscan is a more advanced low level concept.

 

Batari BASIC insulates the programmer very well from a deep understanding of overscan via the draw screen command to resolve screen rolling.

 

RT's site is an awesome reference for both Assembly programmers and BASIC programmers and I like the hierarchies, but I'm an advanced programmer like you so our experiences are not going to be what the beginner percieves. It is very challenging for advanced programmers to teach a paradigm they are immersed in to beginners.

 

DPC+ is a great choice but I think you could do a lot with Batari BASIC 1.0 exploring some of the newer enhancements released before DPC+ 

 

With an 8K Sara game you can still use bB 1.0 with this format and you've got twice the code space and a 32x32 x,y addressable much larger multicolored playfield to work with than the 11 row playfield without the SuperChip.

 

For an advanced programmer who has done a lot with 4K, you've got a lot of room to do more with this format.

 

There are also other expansive formats like the large 64K ROM Sara bB 1.0 games, several are really impressive like Robot Zed!

 

The advantage is that more players can play the games, they have more compatibility with the Uno cart and the Flashback Portable and the online Emulator Javatari.

 

DPC+ games limit the potential audience to only include Harmony and Stella emulation.

 

On 6/6/2020 at 7:09 AM, KevKelley said:

I had always wondered about books for bB. I can picture your website in book form with little code examples like the old programming books back in the day.

Here are a few of the little code examples I enjoyed bitd and one I just found in a 1979 Computer World Magazine, I couldn't stop reading that from cover to cover once I started :) It had the full article from the programmer looking for an After BASIC language and of course classic small code examples like the game.

 

rainbowmagazine-1985-08.jpg.cbd0fc4327ddfdf24fdad8e1b04e6a55.jpg

The magazine examples of one and 10 liner BASIC programs in Rainbow Magazine were really awesome to learn from. Here are a few that draw graphics and manipulate strings, plenty of science examples too but those are similar to the text books. The magazines had the bigest advantage learning BASIC imo because the type-in's were fun  games you could play! It was always motivating to understand how they worked, but daunting when the listings were large :)

 

RainbowMagazine_RainbowInOneLineOfBASIC.thumb.JPG.6833f7b8c5ff070e6a31b56769519785.JPG

 

Halleys_Comet_and_solar_system_BASIC_one_liner.thumb.JPG.1cff058cea53184bba0008c9adfa0824.JPG

 

PersonalComputerWorld1979AirAttack.thumb.JPG.c32e5c9e8c46fe01629f6794dbb5dc0c.JPG

 

  • Like 1
Link to comment
Share on other sites

@Random Terrain what's the best way of making small suggestions? I just realize either Basic Questions or FAQ might want to answer

 

"What is the TIA?"
The Television Interface Adaptor (TIA) is the custom computer chip that is the heart of the Atari 2600 game console, generating the screen display, sound effects, and reading input controllers. Often in batari Basic you read or set TIA register variables directly.

(Maybe someone else could suggest better wording)

  • Like 1
Link to comment
Share on other sites

9 hours ago, kisrael said:

@Random Terrain what's the best way of making small suggestions? I just realize either Basic Questions or FAQ might want to answer

 

"What is the TIA?"
The Television Interface Adaptor (TIA) is the custom computer chip that is the heart of the Atari 2600 game console, generating the screen display, sound effects, and reading input controllers. Often in batari Basic you read or set TIA register variables directly.

(Maybe someone else could suggest better wording)

 

I don't know if it's the best, but sending PMs with suggestions is one way to do it. We could create a suggestion thread, but it would probably get lost over time. I'd personally rather have a thread so more brains can work on the best wording for each suggestion.

 

The FAQ is older and used to be over on the right side before I had to change things so the page was compatible with smartphones. The Basic Questions section is newer. It might be smarter to combine the two sections and put them on a separate bB FAQ page. I could make a new thread and ask people if they would like that stuff moved to a new page.

 

Here is my first try at adapting your TIA entry:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#bq_what_is_the_tia

 

See if that's OK or if it needs more work.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 6/10/2020 at 5:19 AM, Random Terrain said:

 

I don't know if it's the best, but sending PMs with suggestions is one way to do it. We could create a suggestion thread, but it would probably get lost over time. I'd personally rather have a thread so more brains can work on the best wording for each suggestion.

 

The FAQ is older and used to be over on the right side before I had to change things so the page was compatible with smartphones. The Basic Questions section is newer. It might be smarter to combine the two sections and put them on a separate bB FAQ page. I could make a new thread and ask people if they would like that stuff moved to a new page.

 

Here is my first try at adapting your TIA entry:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#bq_what_is_the_tia

 

See if that's OK or if it needs more work.

 

On 6/10/2020 at 11:14 AM, kisrael said:

that's great, you developed my thought very well. 

MicroCourses.thumb.JPG.30ebec12cf213cbe321d2000694d5567.JPG

 

Great discussion and concepts being developed on this thread! :)   

 

RT here is an inspiring ad to help with ideas showing six progressive Micro courses from Personal Computer World Magazine that could help to form an online teaching curriculum, here's my perspective on how you could apply this roadmap Today:

 

Course 1 introduction to microcomputers focused on the Atari Video Computer System starts with the concepts and hardware - excellent place to discuss an overview of ROM, RAM, the CPU and the TIA with links to your existing FAQ's for the details! The available BASIC packages should all have a FAQ entry too - including the Atari 2600 BASIC Programming cartridge and SuperCharger BASIC in addition to Batari BASIC 1.0 and DPC+ Batari BASIC. 

 

Course 2 Fundamentals of Programming in BASIC:

 

Atari 2600 BASIC Programming is awesome for applying simple examples like in that BASIC book and text books from the 80's -

SuperCharger BASIC is too and it is closer to bB but Atari 2600 BASIC has a built in IDE that was ahead of it's time and phenomenal for teaching fundamental concepts of IDE's including a Trace that shows you your program flow right as it is executing which is pretty cool! Here are some great examples:

 

 

Course 3 Improve your BASIC:

 

Dig in with Batari BASIC 1.0 and learn how to use notepad as an IDE where you draw the playfield and sprites using ASCII art!

 

Course 4 WordStar Wordprocessing - learning how to use an IDE Today

 

Is a modern IDE like PageMaker? Yes of course it is! This is where you become a WordStar Wiz and begin the long journey to master the daunting intracacies of the modern IDE. 

Batari BASIC 1.0 running in the Atari2600IDE and SuperCharger BASIC are both simple introductory IDE's that let you click a Play button to launch the game but you still draw ASCII art inline with the code just like you did using notepad as an even simpler IDE in lesson 3.

 

Course 5 DataStar Information Management - DPC+ Batari BASIC and the multi-faceted Visual IDE's

 

Visual IDE's like Visual Batari BASIC and the new Visual Atari Dev Studio are multifacted and have visual tools and components for drawing, coloring and marking up graphics and for designing the musical score using multiple engine or sequencer plugin options. 

 

There is generally no longer a "single file" but a series of files and folders managed by the IDE automation that are marshalled behind the scenes when you click the Play button like you did in the simple IDE's. These complex processes assemble and create the game ROM from many more steps like a mousetrap - indeed as IDE's get more complex the process can be compared to building a better mousetrap:  

IDEWorks.gif.0f8f13dcb09a74e8869d6c52ebcac965.gif

Similarly DPC+ has many more complex processes to extend Batari BASIC and these must also be mastered by the user.

 

MicroPro Software Tools - Covers development tools for the advanced VCS programmer such as the Sokoban and BoulderDash frameworks which must be programmed in advanced Assembly as well as tools like TIA Tracker and voice digitizers, etc.

 

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