Jump to content
IGNORED

The Missing Link + Extended BASIC


JamesD

Recommended Posts

Just wondering if anyone has looked at or even suggested combining The Missing Link with Extended BASIC on a cart?

 

Did you want to do it with plain old vanilla TI Extended Basic? It's simple enough to do with that.

Just store an image of it in Grom 7 as I did in XB v2.7 with XXB. Add a Call to the end of the Call list to move it into low memory, something like CALL MISLNK.

 

Gazoo

  • Thanks 1
Link to comment
Share on other sites

There is more to TML than just moving it to low memory. It uses an XB loader that resets the line number table to erase the program, selects the MULTI or MONO mode (for 16 colors or 2 colors), does a CALL FILES from assembly, adjusts some pointers so the disk system works, then copies the embedded TML routines to low memory. The preceding routines run from high memory and there is no room to put them into low memory. If you could load TML as an XB program and run it then it should be fine. I think it is more than 8K long, but there is a bunch of stuff in the XB portion that pertains to the Myarc DSDD controller which could be removed. (Unless you have a Myarc DSDD controller!)

 

Forgot to mention that there is no disk access if you are using CF7.

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

There is more to TML than just moving it to low memory. It uses an XB loader that resets the line number table to erase the program, selects the MULTI or MONO mode (for 16 colors or 2 colors), does a CALL FILES from assembly, adjusts some pointers so the disk system works, then copies the embedded TML routines to low memory. The preceding routines run from high memory and there is no room to put them into low memory. If you could load TML as an XB program and run it then it should be fine. I think it is more than 8K long, but there is a bunch of stuff in the XB portion that pertains to the Myarc DSDD controller which could be removed. (Unless you have a Myarc DSDD controller!)

 

Forgot to mention that there is no disk access if you are using CF7.

 

Is not the result after you do all those things that TML is loaded in low memory, with the Extended Basic environment as if there were no program loaded, and the TML assembly LINKs available?

 

That is what would be accomplished by what I described. The contents of low memory after TML was loaded would be saved in Grom 7. Typing CALL MISLNK would run a little GPL code to move the contents of Grom 7 to low memory and return to Extended Basic.

 

Gazoo

Link to comment
Share on other sites

[DELETED attachment=385399:XBTML.zip]

 

Try this in Classic99. I don't know anything about TML, but I added the command CALL TML to TI Extended Basic.

After doing a 'CALL TML', I tried 'CALL LINK("CLEAR")', which I noticed in the link list, and it worked.

 

Is anything not working, or is there something else that needs to be set?

 

Gazoo

 

 

Edited by Gazoo
  • Thanks 1
Link to comment
Share on other sites

I'll bet you have no disk access on a real TI. Also, you probably don't have the ability to use the 2 color mode. Since you seem to be willing to putter with this, I will send you the source code showing what the high memory stuff does. You would probably use something like CALL TML(2,16) to start up TML with 2 disk files and 16 colors. Or CALL TML(3,2) for 3 disk files and the 2 color mode. Going out to eat, so it'll be a while.

  • Thanks 1
Link to comment
Share on other sites

I'll bet you have no disk access on a real TI. Also, you probably don't have the ability to use the 2 color mode. Since you seem to be willing to putter with this, I will send you the source code showing what the high memory stuff does. You would probably use something like CALL TML(2,16) to start up TML with 2 disk files and 16 colors. Or CALL TML(3,2) for 3 disk files and the 2 color mode. Going out to eat, so it'll be a while.

 

Sounds good, Thanks!

 

In the meantime, here's a TI Extended Basic that starts up with TML loaded. :)

 

[DELETED attachment=385464:XBTMLauto.zip]

 

Gazoo

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

I could make a RXB version that used TI BASIC GROMs like the EA Assemblers (GPL and EA) and a EA Editor also.

 

Just put TML there instead. RXB can run TI BASIC programs and is the only XB that can pull this off.

 

Only thing missing is TI BASIC EA Assembly support routines. But how many programs are there for that vs using XB Assembly support?

  • Thanks 1
Link to comment
Share on other sites

I haven't looked at it yet but it would be nice to have the startup menu let you chose between Extended BASIC or Extended BASIC + TML.

Thanks for diving into this so quick!

 

The stuff I posted was just a simple quick and dirty proof of concept that I did with a hex editor to show that it was possible.

The final release will surely be much more elegant, especially with Senior Falcon's help. :)

I've already got a memory map theorized as to how to integrate it into XB v2.7 along with XXB without losing anything. (or overwriting TI Basic as was so rudely suggested).

 

Gazoo

  • Like 2
Link to comment
Share on other sites

 

Maybe in some alternate "RXB is the only Extended Basic that works" universe, but not in this reality.

Hmm name another XB that can run straight TI Basic programs with no modifications at all?

 

(Using character sets 14 and 15 so TI BASIC is not needed. Is there some reason to keep taking shots at me?)

Edited by RXB
Link to comment
Share on other sites

Winfred Winkler's XB3 and I'll have to consult my notes for the others.

You are 100% correct I was wrong I forgot XB 3 could also.

 

GK XB would only do this with a modification that was never published in any magazine.

Well imitation is the best example of flattery.

Many commands I invented are in XB 3 and I will admit I put some commands from other XB versions in RXB. (GK XB is built in.)

RXB 1000 first introduced in 1991 and XB 3 in 1993. A reference mentions XB 3 in May of 1993 Micropendium soon to be released.

I have no idea when XB 2 was released but I think it was around 1992.

Edited by RXB
Link to comment
Share on other sites

XB3 was fully-developed in the 1989-1991 period, without access to RXB (but with access to GKXB, the CorComp Enhancements, the Myarc enhancements, and some BASIC enhancements that originated in Europe (I believe they were from Heiner Martin)). I was a beta-tester for it back then. I was also the one who suggested that Winfried Winkler contact Asgard to release a commercial version of the application. That took a while to arrange (both from an agreements standpoint and from a hardware procurement standpoint), so the date of US release has no bearing on when the application was developed, Rich. It does show that more than one person had similar ideas for the direction that BASIC should be moving back then. Winfried, like you, was one of the dedicated early GPL programmers in the TI community. He started with enhancing the Editor Assembler, moved on to Extended BASIC to correct some bugs and ended up with a completely new product. Later, he went on to modify the console GROMs. The two of you would have had a LOT to talk about! :) :) :)

  • Like 2
Link to comment
Share on other sites

XB3 was fully-developed in the 1989-1991 period, without access to RXB (but with access to GKXB, the CorComp Enhancements, the Myarc enhancements, and some BASIC enhancements that originated in Europe (I believe they were from Heiner Martin)). I was a beta-tester for it back then. I was also the one who suggested that Winfried Winkler contact Asgard to release a commercial version of the application. That took a while to arrange (both from an agreements standpoint and from a hardware procurement standpoint), so the date of US release has no bearing on when the application was developed, Rich. It does show that more than one person had similar ideas for the direction that BASIC should be moving back then. Winfried, like you, was one of the dedicated early GPL programmers in the TI community. He started with enhancing the Editor Assembler, moved on to Extended BASIC to correct some bugs and ended up with a completely new product. Later, he went on to modify the console GROMs. The two of you would have had a LOT to talk about! :) :) :)

Yea we have had come communications back and forth through the years. I am a fan!

Link to comment
Share on other sites

Is there some reason to keep taking shots at me?)

 

Not taking shots, your comment set the threat level to red on the Malarkey Early Warning System. (MEWS)

My cat was the first to notice and notified me.

Any incorrect statement posted on the TI section of Atariage will change the threat level of MEWS from green to red.

Please take care in the future to not engage in any possible incorrect TI99/4a statements and you will be safe.

 

Big Brother

  • Like 1
Link to comment
Share on other sites

It is interesting to note that Winfred's modification of GROM0 created problems of its own. His version "diddled the bytes" in the upper part of VDP that made it impossible to run most of the MG programs like DISkASSEMBLER. I found that out when I installed it in my HSGPL Card.

 

Yeah, MG used a fortuitous 2-byte sequence in the middle of the keyboard table in GROM0 at >176C as a hook to execute a GPL “XML 27” to return to ALC after an explicit call to the GPL DSRLNK.

 

TI did a lot of explicit referencing of console ROM/GROMs to save memory and (probably) to make it harder for outsiders to get into the code. I saw a lot of direct comparisons in KSCAN to bytes/words in serendipitous ROM locations to save a MOV, MOVB or LI here and there.

 

...lee

  • Like 2
Link to comment
Share on other sites


OK, I think everything works correctly.

Please try it out and tell me if anything is amiss.

Also added to TI Extended Basic is the 'hold down a key to

skip loading of DSK1.LOAD' patch. So if you hold down the '2'

key when you press it to select Extended Basic from the TI Menu

screen, it will go directly to the command prompt.


Listed below are the calls added to TI Extended Basic with

'The Missing Link' resident.


CALL TML1T1 16 Colors, TI or CC Controller, 1 Open File

CALL TML1T2 16 Colors, TI or CC Controller, 2 Open Files

CALL TML1T3 16 Colors, TI or CC Controller, 3 Open Files

CALL TML2T1 2 Colors, TI or CC Controller, 1 Open File

CALL TML2T2 2 Colors, TI or CC Controller, 2 Open Files

CALL TML2T3 2 Colors, TI or CC Controller, 3 Open Files

CALL TML1M1 16 Colors, Myarc Controller, 1 Open File

CALL TML1M2 16 Colors, Myarc Controller, 2 Open Files

CALL TML2M1 2 Colors, Myarc Controller, 1 Open File

CALL TML2M2 2 Colors, Myarc Controller, 2 Open Files

CALL TML Default setup, same as CALL TML1T1


Error trapping is enabled, so there's 2 things you can't do.


1. You can't do any CALL TML(xxx) in an XB session after

you've done another one. It won't set up correctly, so

you have to quit XB and restart it if you want to do a

different CALL TML(xxx).


2. You can't do a CALL TML(xxx) in a program, you have to do

it from the command line. This is because the CALL TML(xxx)

command might overwrite the XB program it is used in and

cause a lockup or put you into never-never land.


That guy Senior Falcon is quite the genius in creating

The Missing Link. This was quite a project to get everything

working as it should. Even the magic of Gazoo would not have

worked in this situation had not Senior Falcon shared some

of his super secret magic with The Lowly Gazoo. ;)


[DELETED attachment=386702:XBTML.zip]


Have fun,


Gazoo



P.S. If this works ok and anyone wants a real cart of it, TI Extended Basic can be replaced in the "3 Extended Basics" cart with this version. It won't affect standard TI Extended Basic if you don't use the TML commands, so you don't lose anything, only gain TML. :)

Edited by Gazoo
  • Like 6
Link to comment
Share on other sites

Lowly Gazoo? You've always been "The Great Gazoo" to me!

Being able to call TML from a running program could have it's advantages. Suppose you wanted a LOAD program to load and activate TML, then run an XB program, such as this:

10 CALL TML::RUN "DSK1.PROGRAM" !must be in same line as CALL TML

When it starts, TML erases the XB program, but it should finish the line it is running.

Not sure if CALL TML in the middle of a program would crash or just exit to the command line.

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