Jump to content
IGNORED

BXB (routine to use charsets 15-16 in XB) help


InfernalKeith

Recommended Posts

Resurrecting another project from ages ago, I unearthed this old routine called BXB that was presented by Jim Peterson in his Tips From the Tigercub column (#40). It promises to allow you to access charsets 15 and 16 in Extended BASIC, effectively allowing us to run many BASIC programs in XB with 32K and bypass their memory issues with disk installed.

 

I found the routine, entered it, ran the BXBDATA program to create the "untypeable" line, and now I'm getting a syntax error in 30001. Is this just above Classic99's pay grade? I'm about to CF7 it back over to real iron and try it there, to see if it does anything different, but I thought y'all might have some insight.

 

EDIT: same syntax error on real iron. will try to double check my data entry in the morning, but 30001 is correct.

 

post-21499-0-01631600-1556599567.jpg

Edited by InfernalKeith
Link to comment
Share on other sites

XB256 is a version of Extended Basic.

LOL no it is a Assembly support routine just like Missing Link, but compiles own code just like The Missing Link just more useful.

 

It is NOT XB it is Assembly Support for XB. Super XB, XB 2.7. Myarc XB or RXB are Extended Basic.

 

This is like saying the Turbo on your car is the car. It is a support enhancer of the car. NOT THE CAR!

 

Question can you write XB 256 without any XB Cart?

 

Is every single XB command converted to XB256 so say MERGE "DSK2.TEST" or CALL INIT in XB256?

Edited by RXB
Link to comment
Share on other sites

Ok Rich, I didn't know trying to help was frowned upon around here.

Helping is good, just by honest about products please.

 

The routine he posted will not work from XB 256 as it loads over XB256 area of memory.

I could be wrong but where would you load the LINK name using XB256?

 

Also RXB has CALL EXECUTE that can be loaded anywhere with no Link name needed just CALL EXECUTE(address)

and uses 18 bytes of Scratchpad for the program access and you can use FAC as Register location.

Edited by RXB
Link to comment
Share on other sites

Where to start...

As Maria sang in Sound of Music: "Let's start at the very beginning. A very good place to start.."


Post #1: Infernal Keith - He reported problems he had getting BXB to run properly. BXB allows you to run TI BASIC programs in the XB environment and it wasn't working for him.


Post #2: Infernal Keith - Game runs with charsets 15 and 16 in RXB...Would still like to figure out if this BXB routine can be made to work for stock XB. From this I gather that he wants to run the BASIC program with TI XB and not RXB.


Post #3: RXB - You can use Characters set 15 and still use character set 16 for a sprite in same RXB programs. This is true but has absolutely nothing to do with Keith's question.


Post #4: LASooner - XB256 also lets you use the full character set range. This is true, plus it lets you use character sets 17-32, plus another 112 characters for sprites.


Post #5: RXB - So does Pascal, Forth and Assembly what is your point as we are talking XB?

If you took a few moments to reflect on this you would see the point. You might be talking about XB, but Keith was talking about BXB, which consists of assembly support routines that allow you to use character sets 15 and 16 in XB. XB256 consists of assembly support routines that allow you to use character sets 15 and 16 in XB. So they are two different ways of doing what the O.P. wanted to do. For what Keith wants to do I would guess that BXB is a better choice.


Post #6: LASooner - XB256 is a version of Extended Basic. LASooner misspoke here. I'm sure what he meant to say is that, unlike Pascal, Forth and Assembly, programs that use XB256 are written and tested in Extended BASIC.


Post #7: RXB - LOL no it is a Assembly support routine just like Missing Link, but compiles own code just like The Missing Link just more useful. It is NOT XB it is Assembly Support for XB....

Pretty harsh on LASooner, epecially from someone who can't get past the first sentence without making your own mistake. "but compiles own code" What are you trying to say here? It sure isn't obvious to me...


Post #9: RXB - Helping is good, just by honest about products please.

The routine he posted will not work from XB 256 as it loads over XB256 area a memory. I could be wrong but where would you load the LINK name?


Sometimes I think you are being deliberately obtuse. Of course you wouldn't use the routine in post #1 with XB256. What would be the point? I think LASooner was saying that you could adapt XB256 to do exactly the same thing and then jettison the original routine, but BXB seems pretty compact to me and looks like the better choice for this particular application.


Edited by senior_falcon
  • Like 5
Link to comment
Share on other sites

Is every single XB command converted to XB256 so say MERGE "DSK2.TEST" or CALL INIT in XB256?

I didn't see this edit until You sneaked this edit in after my last post. Can you please translate this into intelligible English for me? Maybe I'm a little hard of thinking, but that makes absolutely no sense to me.

Edited by senior_falcon
Link to comment
Share on other sites

I got a ton of ideas from Jim Peterson BXB routines and made RXB versions.

 

The original post:

"I found the routine, entered it, ran the BXBDATA program to create the "untypeable" line, and now I'm getting a syntax error in 30001. Is this just above Classic99's pay grade?"

 

Why I said where is link name being put in XB256 this is a valid statement. And I am not being harsh just stating a fact is suddenly harsh? It was not derogatory just a fact.

 

 

Also XB256 is a great product but it is NOT XB it is a Assembly support for XB. Not the same thing, this again is not harsh just a fact.

Link to comment
Share on other sites

You sneaked this edit in after my last post. Can you please translate this into intelligible English for me? Maybe I'm a little hard of thinking, but that makes absolutely no sense to me.

And how did I SNEAK any post in as I did not see any post from you before this?

 

We both typed something and you did not see my change, that is not SNEAKING something in as I never saw your post till today.

 

Time stamp on my post was 6:28 and your post was 6:34 so I did not SNEAK anything in....

Edited by RXB
Link to comment
Share on other sites

We unearth a lot of grit to get to the pearl around here, but I think Adam found it. Will report back. My ultimate goal is to make a few walkthrough videos of some of the rarer UK cassette games that people may have heard of, or have emulator access to, but have not seen in action or played. Hopefully will have that, and some new stuff of my own, to show off shortly.

  • Like 5
Link to comment
Share on other sites

:?: That was the whole idea behind emoticons, no? Maybe try using them to better express yourself :P? Just saying :D!

I just bought a Iphone 6+ but honestly not many people to text and I never got how text is better than talking live.

 

It is like looking at a painting vs going out to look at same thing???

Edited by RXB
Link to comment
Share on other sites

Success! I had to edit a line with too many characters in a CALL CHAR but once I did that it worked just fine.

 

Side note: is there any benefit to adding more than 16 characters to a CALL CHAR? Like, for data storage or something? I assume BASIC just ignores all variables after the first 16, but BXB kicked back a "string truncated" error message.

 

post-21499-0-32737100-1556996139.jpg

  • Like 3
Link to comment
Share on other sites

Success! I had to edit a line with too many characters in a CALL CHAR but once I did that it worked just fine.

 

Side note: is there any benefit to adding more than 16 characters to a CALL CHAR? Like, for data storage or something? I assume BASIC just ignores all variables after the first 16, but BXB kicked back a "string truncated" error message.

 

You can define the patterns of up to 4 contiguous character codes with the pattern string as long as the last character code is not higher than 143. XB truncates the string to 64 characters. I suspect that defining the patterns for contiguous character codes this way is a bit faster than defining them one at a time.

 

I do not know whether BXB interferes with XB’s CALL CHAR(), but I would think not.

 

...lee

  • Like 2
Link to comment
Share on other sites

Lee, I had no idea that was a thing! I'll have to manually add a CALL CHAR in the modified Adventuremania game, to make up for the long string. BXB did kick it out as an error the first time around. Being in XB and not console BASIC, the extra memory won't be an issue.

 

Amazing the quirks you learn about the language all these years in.

Link to comment
Share on other sites

A couple of points:

 

Lee said: "I do not know whether BXB interferes with XB’s CALL CHAR(), but I would think not." BXB has a user defined subprogram for CALL CHAR. Interestingly enough, user subprograms take priority over the built in XB subprograms and so it is the BXB CALL CHAR and CALL COLOR that are executed. This surprises me, as I would have supposed that the built in subs would take priority.

 

With BXB you should be able to safely set the colors for all 256 characters. (32 character sets) You cannot define the characters from 160 to 255 and from 0 to 29 without side effects. But if you set the foreground and background colors the same you can have 8x8 blocks in all 15 possible colors. You can use HCHAR or VCHAR to place them on the screen. One change must be made to BXB. In 3005 is the expression 15+A. Change this to 15+A+32*(A>16) and that should do the trick. You can use Classic 99 debugger to look at VDP ram from >0800 to >081F to see if this works. Changing the colors of character set 17 should modify VDP at >0800.

 

If you just want to run a TI BASIC program in XB then BXB or RXB will do the trick. If you are reworking the program and want to embellish it with additional graphics, XB256 offers much more graphics versatility than XB.

 

(edit) you can see a video of this trick in the RXB thread. Page 28, post 690.

Edited by senior_falcon
  • Like 2
Link to comment
Share on other sites

RXB 2019 will have CALL VDPSTACK(address) so you can move it out of way for graphics changes with things like TML or other packages.

Also is CALL PRAM(address) that changes the top RAM address in 32K thus expanding the Assembly space you can use without interference of XB operations.

Of course this does cause a problem with some VDP address used for temp variables or VDP ROLLOUT area used for some VDP access or storage.

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