Jump to content

Photo

RXB - Rich Extended Basic


679 replies to this topic

#676 RXB OFFLINE  

RXB

    River Patroller

  • 2,463 posts
  • Location:Vancouver, Washington, USA

Posted Sat Apr 15, 2017 10:11 AM

 

Am I correct in assuming this will all be transparent to the program and that ANY pre-existing TI Extended BASIC program will work in it?

Yea unless you have something goofy like VPEEK for a string or symbol or VDP Stack, those will all be in RAM on the SAMS.

There is no logical reason to use VDP for Strings and symbols or stack when we can use the SAMS RAM which is much faster and more of it.

Also I will remove all the VDP pointers and temporary buffers for XB, except for of course Device Buffers at top of VDP RAM.

So yea all XB and BASIC programs will work in SAMS RXB just fine, well except they will run faster.

VDP is much slower than RAM by anyones standards.

 

Now any Assembly Language CALL LINK program will be a little faster to as the normal LINK used VDP to store variables and strings.

Thus if you have a Assembly Language program that needs the old access to VDP you can not use SAMS RXB as the locations have changed from VDP to RAM.

 

I can think of a few Lower 8K Assembly programs that did this like XBDETECTIVE for example that read string variables from VDP which will not work as SAMS RXB have them in SAMS RAM.

 

I do not think people understand how many times per subprogram Extended Basic used VDP and how it really slows down XB.


Edited by RXB, Sat Apr 15, 2017 10:14 AM.


#677 TheBF OFFLINE  

TheBF

    Star Raider

  • 96 posts

Posted Mon Apr 24, 2017 7:53 PM

Yea unless you have something goofy like VPEEK for a string or symbol or VDP Stack, those will all be in RAM on the SAMS.

There is no logical reason to use VDP for Strings and symbols or stack when we can use the SAMS RAM which is much faster and more of it.

Also I will remove all the VDP pointers and temporary buffers for XB, except for of course Device Buffers at top of VDP RAM.

So yea all XB and BASIC programs will work in SAMS RXB just fine, well except they will run faster.

VDP is much slower than RAM by anyones standards.

 

Now any Assembly Language CALL LINK program will be a little faster to as the normal LINK used VDP to store variables and strings.

Thus if you have a Assembly Language program that needs the old access to VDP you can not use SAMS RXB as the locations have changed from VDP to RAM.

 

I can think of a few Lower 8K Assembly programs that did this like XBDETECTIVE for example that read string variables from VDP which will not work as SAMS RXB have them in SAMS RAM.

 

I do not think people understand how many times per subprogram Extended Basic used VDP and how it really slows down XB.

 

I know very little about GPL Rich.  How hard is it to call assembler routines and return to GPL?

 

​BF



#678 RXB OFFLINE  

RXB

    River Patroller

  • 2,463 posts
  • Location:Vancouver, Washington, USA

Posted Tue Apr 25, 2017 4:26 AM

 

I know very little about GPL Rich.  How hard is it to call assembler routines and return to GPL?

 

​BF

GPL has a routine built in call XML that only takes 2 bytes, one byte is the XML command in GPL the other byte is a one byte preset branch table in the TI OS.

 

If you look at the source of RXB hit has more XML subroutines then normals XB does.

 

The problem with Assembly is it is a MEMORY HOG and has to be in RAM, this presents a real issue as the TI does no have ANY CONSOLE RAM.

 

Look at the XB2 module, it is totally useless in a Console with no memory expansion.



#679 lucien2 OFFLINE  

lucien2

    Moonsweeper

  • 282 posts
  • Location:Switzerland

Posted Tue Apr 25, 2017 8:35 AM

In the assembly side, you have to put an address table at a fixed address (see table below, from GPL manual).
 
Like this
>6010 Sub1 address
>6012 Sub2 address
etc.
 
Sub1:
do something
LWPI >83E0
RT
 
Then in GPL, to call Sub2:
XML >71 (7 = table at >6010, 1 = 2nd routine)
 
Here's the table
2 = >2000
7 = >6010
8 = >6030
9 = >7000
F = >8300

  • RXB likes this

#680 RXB OFFLINE  

RXB

    River Patroller

  • 2,463 posts
  • Location:Vancouver, Washington, USA

Posted Tue Apr 25, 2017 5:31 PM

 

In the assembly side, you have to put an address table at a fixed address (see table below, from GPL manual).
 
Like this
>6010 Sub1 address
>6012 Sub2 address
etc.
 
Sub1:
do something
LWPI >83E0
RT
 
Then in GPL, to call Sub2:
XML >71 (7 = table at >6010, 1 = 2nd routine)
 
Here's the table
2 = >2000
7 = >6010
8 = >6030
9 = >7000
F = >8300

 

Yep exactly how GPL in XB uses the ROMs for the XB Cartridge.

Also how XB called routines in Lower 8K too.

 

In RXB I use XML >F0 for my GPL routine CALL EXECUTE(ADDRESS)

 

It puts the ADDRESS in FAC and executes a BLWP @>8300 and FAC has the Workspace.

Much faster then CALL LINK as it does no checking of values or does it mess with the VDP STACK like CALL LINK does.


Edited by RXB, Tue Apr 25, 2017 5:32 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users