Jump to content
IGNORED

Suggestion for bas files to have standard header with bB version


Fort Apocalypse

Recommended Posts

According to @RevEng, each minor release of bB could break existing games written for the previous version of bB, effectively making them major releases.

 

I'd like to suggest that a standard header be added to .bas files that has the bB version, to ensure that those in the future trying to build that file know that it may not compile or work as intended with a different version of bB.

 

For example, maybe everyone could start making the first line of their .bas file look something like:

;bB 1.5

That way, in theory, someone could have multiple versions of bB installed and have a script/program that could automatically use the correct version of bB by looking at the first line of the provided .bas file.

 

RT had similar in an example of a human-readable header in: https://www.randomterrain.com/atari-2600-memories-batari-basic-commands.html#rem

 

Quote

Example:


   rem  ****************************************************************
   rem  *
   rem  *  Name: Space Nuggets
   rem  *  Version: 2016y_03m_21d_0225t
   rem  *
   rem  ****************************************************************
   rem  *
   rem  *  Programmer: Scadoobie Floinkenburger
   rem  *  Language: batari Basic v1.0
   rem  *  System: Atari 2600 VCS
   rem  *
   rem  ****************************************************************

That's nice also. I was just thinking that having a shorter standard header might be less likely to have problems parsing it by some yet to be developed tool?

  • Like 3
Link to comment
Share on other sites

To make it easy to parse:

 -  Always have it on the first line and always start at the very beginning of the line (no leading whitespace).

 -  Make it two tokens separated by a space

    ;#BBVER# bB1.0

 

   ;#BBVER# -- identifies line as containing the BB version number

   bb1.0        -- identifies which version (can be any variant of this - tool will just need a mapping table of versions)

 

Tool runs as follow:

  (1) Open file

  (2) Read first line

  (3) Do string compare of first token to see if you've got ;#BBVER#

  (4)  If so, loop thru array of versions and compare with second token to find version.

  (5)  If not found (either first or second token), report error.

  (6)  If found, do what you want with that information.

  • Like 1
Link to comment
Share on other sites

Fair enough... IF that's an issue THEN the tool will have to parse 3 tokens separated by whitespace instead of two.  And IF bBasic doesn't like the lack of whitespace at the beginning of the line, THEN the tool will have to handle that as well.

 

OR, bBasic can be fixed to better handle token processing... but that's a tall order.

 

Also, the tool will probably want to allow either ';' or 'rem' as the first token.

  • Like 1
Link to comment
Share on other sites

VisualbB does something like this automatically:
 

 rem Generated 7/5/2022 11:54:26 AM by Visual bB Version 1.0.0.568
 rem **********************************
 rem *<filename>                      *
 rem *<description>                   *
 rem *<author>                        *
 rem *<contact info>                  *
 rem *<license>                       *
 rem **********************************

 

Maybe someone could submit a feature request for Atari Dev Studio?

  • Like 1
Link to comment
Share on other sites

If I'm trying to compile old bB code and it doesn't work, I would much rather try to fix it to work with the new version than to keep a bunch of outdated versions around to compile using the original version. Yes, in theory new releases could break compatibility, but in practice, from what I have seen at least, such issues are relatively uncommon, and easily solved when they do show up.

  • Like 6
Link to comment
Share on other sites

  • 2 weeks later...

I think with HDD space being gyrourmous the careful programmer could dump a specific version of bB and their IDE of choice into the project folder itself.  Known features.  Known quirks.  Isolated from other projects and their needs.

 

I had to do this with NES Maker as the interface, tutorials and plug ins are VERY specific to each version.

 

UPDATE:  That is, to say.. both my one bB folder to rule them all and each project getting its own (NES Maker) strategy is OKAY.

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