+TheBF Posted May 26 Share Posted May 26 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. 1 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 26 Share Posted May 26 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 2 1 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted May 26 Share Posted May 26 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'. Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 26 Share Posted May 26 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. 1 Quote Link to comment Share on other sites More sharing options...
+RXB Posted May 26 Share Posted May 26 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. Quote Link to comment Share on other sites More sharing options...
+RXB Posted May 26 Share Posted May 26 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 ,, 1 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 26 Share Posted May 26 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. 1 Quote Link to comment Share on other sites More sharing options...
+RXB Posted Tuesday at 07:17 PM Share Posted Tuesday at 07:17 PM 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. 1 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted Wednesday at 12:08 AM Share Posted Wednesday at 12:08 AM 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! Quote Link to comment Share on other sites More sharing options...
+RXB Posted Wednesday at 05:30 AM Share Posted Wednesday at 05:30 AM 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. 2 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted Thursday at 06:18 PM Share Posted Thursday at 06:18 PM 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. Quote Link to comment Share on other sites More sharing options...
+RXB Posted Thursday at 09:56 PM Share Posted Thursday at 09:56 PM 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. 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.