Jump to content
IGNORED

RXB - Rich Extended Basic


Bones-69
 Share

Recommended Posts

I am curious why the extra field is needed Rich.

Could it not be just three arguments repeated ?

 

CALL PEEK(8192,A,B,8198,C,D)

 

Maybe it would take more tokens to determine if there is more than one address than just adding a symbol to tell the interpreter there is a 2nd one.

 

  • Like 1
Link to comment
Share on other sites

40 minutes ago, TheBF said:

I am curious why the extra field is needed Rich.

Could it not be just three arguments repeated ?

CALL PEEK(8192,A,B,8198,C,D)

Maybe it would take more tokens to determine if there is more than one address than just adding a symbol to tell the interpreter there is a 2nd one.

 

The problem is that the address can be a variable, in which case it would be impossible for the interpreter to decide whether it was a new address or one of the string of variables to receive data bytes.

 

...lee

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

3 hours ago, RXB said:

So RXB 2023A has 

CALL PEEK(8192,A,B,&,8198,C,D)

One less token used and when reading it makes a little more logical sense to read.

How does this affect backward compatibility?   I was wondering if it is an option to check for two successive commas to create the same effect without causing 'trouble'.

Link to comment
Share on other sites

28 minutes ago, InsaneMultitasker said:

How does this affect backward compatibility?   I was wondering if it is an option to check for two successive commas to create the same effect without causing 'trouble'.

Neither MM nor E/A like that syntax.  I figure if @RXB wants to be backward compatible with TI BASIC programs which use the MM or E/A syntax of CALL PEEK, the double-quote is the best, even if wasteful, way to go.

  • Like 1
Link to comment
Share on other sites

15 hours ago, InsaneMultitasker said:

How does this affect backward compatibility?   I was wondering if it is an option to check for two successive commas to create the same effect without causing 'trouble'.

Well try using "" in XB 110 and you will see it does not work.

So using & in 110 will not work either.

Using comma comma is viable way to go and would be even better.

I guess I could do that instead of the & instead.

 

Thanks that is a great idea and I should implement it instead as it is even faster and better.

Link to comment
Share on other sites

15 hours ago, OLD CS1 said:

Neither MM nor E/A like that syntax.  I figure if @RXB wants to be backward compatible with TI BASIC programs which use the MM or E/A syntax of CALL PEEK, the double-quote is the best, even if wasteful, way to go.

Well EA and MM are not compatible with XB as many of the Equates are not the same and routine address are not the same or work the same.

So there never was any backward compatibility as can you find a EA or MM program using CALL PEEK that works the same?

But I could provide the option.

Anyway, I think InsaneMultitasker suggestion of comma comma is the very best idea to go with and I will include both "" and ,,

  • Like 1
Link to comment
Share on other sites

2 hours ago, RXB said:

So there never was any backward compatibility as can you find a EA or MM program using CALL PEEK that works the same?

NOTTOMH.  My only thought was your work to maintain backward compatibility with both TI BASIC and TI Extended BASIC.  The option is awesome: it gives the compatibility to MM and E/A programs in TI BASIC (excluding the LOADing of assembler programs due to the EQU differences,) and at the same time a new flavor which will be uniquely RXB.

  • Thanks 1
Link to comment
Share on other sites

On 5/26/2023 at 12:43 PM, OLD CS1 said:

NOTTOMH.  My only thought was your work to maintain backward compatibility with both TI BASIC and TI Extended BASIC.  The option is awesome: it gives the compatibility to MM and E/A programs in TI BASIC (excluding the LOADing of assembler programs due to the EQU differences,) and at the same time a new flavor which will be uniquely RXB.

Yea just finished RXB 2023A and now you can use CALL PEEK(8192,A,B,"",8198,C,D) just like MM or EA

But I added the InsaneMulititasker suggestion of CALL PEEK(8192,A,B,,8198,C,D) also to RXB.

 

Now RXB has CALL POKE but it does not work like XB CALL LOAD as the number section does not work same as CALL LOAD does.

I will take another look at it to see if it is feasible.

  • Like 1
Link to comment
Share on other sites

4 hours ago, RXB said:

But I added the InsaneMulititasker suggestion of CALL PEEK(8192,A,B,,8198,C,D) also to RXB.

If this works as an alternative to "", I would be interested in knowing where you made the change(s) to see if they could also be applied to Advanced BASIC. If for no other reason than to see if it can be done though how soon I would try to implement it is another story altogether! ;) 

 

Link to comment
Share on other sites

On 5/31/2023 at 12:30 AM, RXB said:

I just added a small section of GPL code to check for "" or , and skip using XML PGMCHR in ROM to skip the "" or extra , and restart the call peek as normal.

 

Nice. Thanks.  Advanced BASIC is all assembly so it is a little different parsing routine.  I found the code and what it does is it checks each entry.  If it finds a string, the length is tested.  If the string length is zero, the string is considered a separator and the next item is parsed. (It seems that a string variable might work as a separator here).  The routine for load/peek/poke has step to convert strings to integers, which suggests that CALL LOAD(8192,"A") would be valid for a single byte value.   I've never tried this.

Link to comment
Share on other sites

3 hours ago, InsaneMultitasker said:

Nice. Thanks.  Advanced BASIC is all assembly so it is a little different parsing routine.  I found the code and what it does is it checks each entry.  If it finds a string, the length is tested.  If the string length is zero, the string is considered a separator and the next item is parsed. (It seems that a string variable might work as a separator here).  The routine for load/peek/poke has step to convert strings to integers, which suggests that CALL LOAD(8192,"A") would be valid for a single byte value.   I've never tried this.

I opted for CALL HEX that converts HEX strings to integers or Integers to HEX strings.

CALL HEX(8192,A$) ! A$="2000"

CALL HEX("2000",A) ! A=8192

But you can do a full list of them too: CALL HEX(8192,A$,8198,B$,A$,A,B$,B) thus A$ is also converted to A=8192 and B=8198

 

Looking for HEX or Decimal in all commands was to slow to implement.

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...