Jump to content

Extended BASIC G.E.M.


Recommended Posts

I have a similar question. Will the compiler work with T80XB?


I‘m still working on my Mega Menu program. For this I‘m using XB and compile it with the XB compiler and the option for large programs, so most of the lower RAM is used by the compiler library I think.



Link to comment
Share on other sites

No. The compiler will work with XB256 but at present it is not compatible with The Missing Link, T40XB or T80XB. In the future I hope to be able to make it compatible with not just these, but most assembly support programs. I hope to have XB 2.8 G.E.M. finished in a week or so and then will take a long vacation from this stuff. Maybe in the winter I will look into combining assembly with the compiler.

  • Like 7
Link to comment
Share on other sites

senior_falcon - I have been out of the TI dev space for a while.

But I have been watching XB G.E.M. refinement and have been a little bit inspired.

I have 2 or 3 projects started that I feel are worth spending the time to finish.

I figure when 2.8 is ready, I should be as well.


The future support of Missing Link etc. sounds amazing also!


I just want to Thank you for your efforts!  The Compiler and Classic99 have changed everything for me in the TI world!  So a quick Thank you to Tursi as well!


  • Like 4
Link to comment
Share on other sites

As noted in an earlier post, XB 2.8 G.E.M. lets you customize XB so it looks the way you want. CALL LOAD(-2,COLOR,FONT) does the trick. If you add 128 to the font number it tells GEM to invert the DSK1.LOAD routine. Normally when you hold a key down it suppresses DSK1.LOAD.  If you add 128, you have to hold a key down for a few seconds to make DSK1.LOAD happen.

Also, if you set the second bit by adding 64, GEM should return to Force Command. I'm not positive this will work because I get no feedback from those who care about this feature, but in any case I see nothing else that can be done, and if it doesn't work at least nothing else will be broken.

Edited by senior_falcon
Link to comment
Share on other sites

7 hours ago, senior_falcon said:

Working on the docs now. 

Let me restate my earlier question in a different form:

Does anyone use hardware along with XB that utilizes  the "Load interrupt" hook at >FFFC?

Speak now or forever hold your peace.

They can always use a classic XB :) The idea of new software being compatible with 100% of all things written on top of a different program is an irrational expectation, even if you've come extremely close! 


People don't print all that often anymore... the types of programs I recall were screen dump tools.


It is my intention to eventually have an Load Interrupt triggered menu, but I don't actually use XB... so I'm holding my peace.

  • Like 2
Link to comment
Share on other sites

Great to hear.  I have been digging into some old work.  Wow, Amazingly bad flow.  LOL

When I feel creative, I just start and go.  No planning...  Ah, let me add that!  Gosub xx.  oh yeah, need this to... And soon, I nice plate of spaghetti ;)


Time to break it apart and make a game loop.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

XB28GEM.zipAt long, long, last XB 2.8 G.E.M. is ready to be released.  There are some instructions for setting it up in the README file. Once you have it up and running, try this:

CALL LOAD(-2,78,145)    This will set the colors to dark blue on gray, and use font 18, with XB autoload inverted. That is, if your finger is off the key autoload will not happen. You have to hold a key down to RUN "DSK1.LOAD"

You can quit or bye and the colors will still be there when you select any of the XB choices from 2 to 8.

Also, take a look at CALL HELP 

I imagine there will be some rough edges that need to be polished.






(edit) I predicted some rough edges. The first is that the file XB27GEM_8.BIN should be renamed XB28GEM_8.BIN

I have uploaded XB28GEM with this change.

(edit 9/3) revised version of XB28GEM with two bug fixes and revised README and XB28GEM files. CALL VERSION(X) now returns 2.820200903


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

I had a CALL DELAY(value) similar to XB 2.4 CALL WAIT(value)

But you could do CALL DELAY(value,value) and the second value would be the number of times for first value repeated.

Sort of like a FOR  NEXT loop inside of a FOR NEXT loop.


I removed it as it interfered with Assembly access, I do not know what the one in XB 2.7 is used for?


Link to comment
Share on other sites

I have tried several times this afternoon to get G.E.M. to load and work in Classic99. Following the instructions in the README text file, I created a folder named "CARTS" in the Classic99 folder and saved both binaries into it. I then inserted the test in the README file immediately after my [Usercart0] in the .ini file.

G.E.M. appeared as a "User Cart" and could be normally selected upon boot up of Classic99. So far, so good. However, the only menu options that would load were those associated with TML. Everything else either produced a blank screen or, in the case of Extended Basic 2.8, produced a screen full of "artifacts" When I got the screen full of artifacts with XB 2.8, I got the following message in the debugger - "Illegal opcode (0008) at >0012, Bank 0000". I am now at a standstill as far as loading it into Classic99. Maybe Tursi can be of some assistance - I have sent him a series of PMs. Any suggestions would be appreciated.  

Link to comment
Share on other sites

As always, "read the debug log". The filename in the archive does not match the filename in the README file, and Classic99 tells you this:

Loading file (D:\classic99\mods\XB28GEM\XB28GEM\XB28GEM_G.BIN) from disk: Type G, Bank 0, Address 0x6000, Length 0xA000
Failed to load 'D:\classic99\mods\XB28GEM\XB28GEM\XB28GEM_8.BIN', error 2

Error 2 is "file not found", and if you look in the archive, you'll see it's not XB28GEM_8.BIN, but XB27GEM_8.BIN.


This would break drag and drop, too, since the two files has different names.


Rename the file and it will work. ;)


Link to comment
Share on other sites

I was about to come here to mention the mismatch of the filenames of these two files. I also noticed that the XB27GEM_8.BIN file has an older date & time stamp (by 18 hours & 20 minutes) than the G file does. Can senior_falcon verify that this is the correct one to be using, or was it an earlier version that was still being used with 2.7?



Link to comment
Share on other sites

My constructive comments / questions on the documentation:


  •  Page 4 states
More information on using RUN, RUNL1 and SAVEIV can be found in the section starting on page 26

Since the manual is only 12 pages, this actually starts on page 11.


  • Regarding the new CALL RUN / RUNL1, it states that these are used to run XB256 programs. Is it safe to say this will also work to T40XB/T80XB/XB 2.8 programs too? Based on the discussion on pages 11 & 12, that would appear to be the case, but as Benny Hill once said - NEVER ASSUME! I am guessing that the XB256 naming may be left over from earlier versions of the documentation.


  • On page 8, to be consistent with the documentation changes to CALL VPEEK & CALL VPOKE, this line:

would be clearer if it was



  • On page 11, this is confusing:
XB 2.8 G.E.M. has a subprogram that will to force XB to save a program of any length in IV254 format.
In the immediate mode, with your program loaded, simply type:CALL LINK(“SAVEIV”,”DSKn.PROGNAME”)

I'm guessing that it is indeed CALL SAVEIV, unless the CALL LINK also works.


  • Also on page 11, just a typo where line 10 should be A$ instead of D$:


THANK YOU SO MUCH for designing these incredible tools that make programming the TI so much easier and fun!

Link to comment
Share on other sites

Thank you for finding those. CALL SAVEIV was copied from the XB256 docs where it is CALL LINK("SAVEIV"). That is also the reason for the page errors.

I'm sorry about the errata - I was getting pretty sick of all the documentation. There is not 1, not 2, not 3, but seven manuals that all needed to be edited and amended for this.


CALL RUN and RUNL1     Is it safe to say this will also work to T40XB/T80XB/XB 2.8 programs too?"

I think that is correct, but will check to be sure. I also think those will work with The Missing Link, but probably only in the 2 color mode.



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

First of all I would like to thank @senior_falcon for all your hard work.  This is truly incredible. I was able to get this up and running on Classic99 without issue.  Has anyone loaded onto their FinalGROM?  I tried, but all I get when I choose a option is a blank screen.  The original GEM from post #1 works fine on my FG, I simply cannot get 2.8 to work on my FinalGROM.  Any ideas?   

  • Like 2
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.

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.

  • Recently Browsing   0 members

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