Jump to content
IGNORED

Official Home for batari Basic


RevEng

Recommended Posts

5 hours ago, Random Terrain said:

 

Except not backwards (horizontal) and more like this, vertical:

 

https://www.randomterrain.com/atari-2600-memories-tia-color-charts.html

color_charts.png.eb28467eb979eb3e399c5a03fb6286fe.png

 

Will take a look with the next update to the editor (i've raised in issue in Github).  Please feel free to raise any further suggestions in the Atari Dev Studio announcement post so we can keep Mike's post for bB ?

  • Thanks 1
Link to comment
Share on other sites

  • 5 weeks later...
On 1/19/2020 at 2:39 PM, RevEng said:

The batari Basic programming language now has a new home at github.

This is good news! I've submitted a Pull Request with several changes that come from a cleanup I did a while ago and posted on GitHub.

 

The PR I submitted contains many of those changes. It modifies the code to use consistent indentation and adds some extra functions and macros that make the code more concise and the formatting of the 6502 Assembler output fully consistent. Rather than just paste my updated code over the current code I applied the changes manually so they are up to date with any changes since "version 1.0" of bAtariBASIC. I'll follow up periodically with more fixups, and I will also produce a C++ version as part of the refactoring effort.

 

I've also started writing VSCode extensions (i.e., "Auto Build Marlin") and it would be interesting to write a Javascript version of the compiler that could be integrated into Atari Dev Studio. Just the part that produces the Assembler output so you can quickly verify that it's what you expect. And then the extension could do other tricks like highlight lines that it can't figure out how to compile, and so on.

 

From my bAtariBASIC page on GitHub:

 

image.thumb.png.0e756e75294438d120b3bce3f39d1a3b.png

Edited by thinkyhead
  • Like 3
Link to comment
Share on other sites

Incidentally, what is your preferred indentation? For C/C++ I've tended to favor 2 spaces instead of tabs since it doesn't fly off the right, GitHub displays it correctly, and editor settings don't matter.

However, for the PR I went with the most traditional: 4-column wide Tabs since that seemed to fit the existing code best (although it had a mixture of tabs and spaces).

Link to comment
Share on other sites

We're not allowed to discuss religion here. ;)

 

My preference is tabs, but I'm adaptable to spaces. The code has had a few different hands in it over the years, and some of it copied and pasted, which will often convert the tabs to spaces. I usually try to fix that up, but I've probably missed a few times.

Link to comment
Share on other sites

I'm trying to update batari Basic on my Mac (not using Atari Dev Studio, just a text editor and the Terminal). When I try to compile with the new version, I get the same error EvoMike was getting (### ERROR: couldn't find bB binaries for Darwin(x86_64). Exiting.) There are Darwin files in the directory for my old version of bB, but they aren't there in the new one. Is there a step I missed to create those?

Link to comment
Share on other sites

Assuming you're using the latest release, have you run the accompanying "install_ux.sh" script?

 

If you downloaded the darwin specific packages (or any specific OS packages) the binaries are just named "2600basic", "optimize", etc., without the OS specific extensions. The 2600basic.sh script uses these binaries first, before it resorts to searching for ones with OS specific naming.

Link to comment
Share on other sites

  • 2 years later...

@RevEng  Out of curiosity, do you remember how much ROM is left on the bB DPC+ ARM side in main.c?

 

Might be nice to have the ARM handle common math calculations. For instance, in theory pfread makes a lot of sense as is; in usage, not so much.  Devs are often polling a VCS object's coordinates and the ARM can handle ((foo-16)>>2) much faster.

 

If space allows, maybe I can add little something. With additional functionality dropped into main.c, should be able to drop new commands into commands.c.

 

Anyhow, just got to thinking when I saw another post about the playfield.

Edited by orange808
Link to comment
Share on other sites

2 minutes ago, orange808 said:

@RevEng  Out of curiosity, do you remember how much ROM is left on the bB DPC+ ARM side in main.c?

It's pretty badly stuffed. For the last few DPC+ additions I did, I needed to squeeze a bunch of the existing code over and over to get it to fit.

 

  • Thanks 1
Link to comment
Share on other sites

Heads up that I've put out v1.6 of bB github releases page. Here are the main updates...

  • number of def's increased to 500 (overflow detection in place)
  • number of constants increased to 80000, overflow detection added
  • allow variable as argument to stack command. (thx kdgarris!)
  • add QT multiplexer support to standard, multisprite and DPC+ kernels. (thx kdgarris!)
  • DPC+ priming reads (thx Lillapojkenpåön!)
  • multiply by 154 hang fix
  • preparser bug fix - symbols ending with _[bB statement]

Enjoy!

 

[NOTE: some anti-virus software hates open-source compiler produced binaries. If you download a package and can't get it working, check your quarantine list]

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, RevEng said:

 

  • preparser bug fix - symbols ending with _[bB statement]

 

I updated the bB page with this:

 

Quote

It also helps to capitalize the first letter of each word in case one of them turns out to be a valid bB statement name. For example, to avoid problems you'd use something like _Reptilian_Spider_Data instead of _reptilian_spider_data.

 

But I guess I can remove that now.

Link to comment
Share on other sites

39 minutes ago, Random Terrain said:

I updated the bB page with this:

 

But I guess I can remove that now.

Ah, sorry to make you do that extra work - my fault for saying earlier that I wasn't working on it. I saw that we had a number of fixes queued up since the last release, and figured I might as well push through the ennui and put out a release.

 

Correct - there shouldn't be a need to avoid variables or labels ending in _data or any other statement, with the latest release.

  • Like 3
Link to comment
Share on other sites

Heads up that I've put out v1.7 of bB github releases page. Just one update...

  • DPC+ priming read bug fix

N.B. - Some anti-virus software hates open-source compiler produced binaries. If you download a package and can't get it working, check your quarantine list.

N.B. - Compilation of source code from older versions of bB isn't guaranteed with each new bB release.

  • Like 4
Link to comment
Share on other sites

  • 3 weeks later...

I've updated all my PRs over on the GitHub repo. They fix up various things, mostly cosmetic, and provide smaller and easier-to-validate changes instead of trying to post my entire cleanup effort at once.

 

The source code can be simplified and reduced in size a lot, so that is my focus on the first pass. For the second pass, it seems worthwhile to refactor the code into C++ with STL, as STL can simplify a lot of things, such as working with strings and data structures. I understand there are some other bAtari-BASIC implementations floating around out there, at least one built in (or converted to) Javascript. And maybe the Rust gurus out there will want to take a stab at it someday….

 

The coolest part about having a Javascript implementation will be to see the bAtari-BASIC source code in one edit field, and the resulting ASM code showing up in real-time in the other field. Combined with a 6502 compiler and a web-based Stella… It will be a much more immediate and fun way to work with this language. And, more nerds playing with this platform might generate some interest in making new and better kernels.

 

As always, I hope my contributions are useful to someone, and I'll continue to submit improvements as time allows. Cheers!

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...
4 hours ago, Random Terrain said:

Can somebody remind me what version of bB we are supposed to be using?

 

I finally have a table I can use across my bed and can get back to work on bB games. Whatever version of bB I'm using now has moved my DPC+ colors down by 1 row.

 

Figured it out. Version 1.5 looks like this the way it's supposed to:

 

64_rooms_colors_good.thumb.png.53bf3e64f944eaac63a80e07ff0f0aa9.png

 

 

Version 1.7 looks like this with a line of colors moved down, so you see blue and brown where it isn't supposed to be:

 

64_rooms_colors_bad.thumb.png.38422873a02abd53cb4b2600ddb67c19.png

 

Link to comment
Share on other sites

On 8/7/2022 at 5:24 PM, Random Terrain said:

Can somebody remind me what version of bB we are supposed to be using?

 

I finally have a table I can use across my bed and can get back to work on bB games. Whatever version of bB I'm using now has moved my DPC+ colors down by 1 row.

I believe this is due to this fix getting incorporated into the release. If you used two identical lines to work around the previous issue, then your lines would be off by one after upgrading. Presumably you should be able to remove the extra line and everything should line up again.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

20 minutes ago, Karl G said:

I believe this is due to this fix getting incorporated into the release. If you used two identical lines to work around the previous issue, then your lines would be off by one after upgrading. Presumably you should be able to remove the extra line and everything should line up again.

 

Thanks. I'll retry 1.7 and mess around with the program and see if it fixes the problem.

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