Jump to content
IGNORED

Compiling TML XB programs


ruthven

Recommended Posts

I've recently been playing around with XB256, mostly cause I wanted to see for myself how fast certain BASIC operations could be speed up...  well now I'm hooked! :)  

 

Up till this point I've mostly been using The Missing Link because I want access to the bitmap graphic loading.  I've been working on a TML project that could really benefit from this kind of speed increase...  Now I'm assuming it is possible to compile TML programs as I read about it somewhere in the XB Game Developer's Package thread.  I think even the TMLDEMO file itself was compiled with a nice speed increase.  But I am having trouble compiling any TML programs myself (including the TMLDEMO).  Is there a special compiler for TML?

 

I am using the latest version XB256 package as well as TML 2.0.  In TML I save my program with a -M at the end of the filename followed by ,MERGE.  Then I run the Isabella loader and go to the compiler from the menu and give it the file I saved in TML.  It seems to compile fine (no errors) but when I go to assemble it I get several errors (a bunch of "undefined symbols").  Making a loader at this point just makes a file that crashes when I attempt to load it.

 

Honestly I'm confused by all this--I would think that the compiler wouldn't handle TML programs as TML has subroutines that XB256 does not (the bitmap mode for instance).  Also the XB256 compiler manual states that it only works with XB256 routines (says nothing about TML)--but again, I definitely saw something about TMLDEMO being compiled on a thread over here.  I am running everything on Classic99 right now; I have Isabella and TML each in their own folders (not as .DSK images but as individual files).  I tried copying all the TML files into the Isabella folder so that when it came to compiling/assembling, I thought maybe it might find those subroutines it needed.  But still no luck.  

 

Just as a simple test I made the most simple program in TML:

10 CALL LINK("PRINT",1,1,"THIS IS A TEST")

20 GOTO 20

I saved this as TEST-M,MERGE and I tried feeding TEST-M into the XB256 compiler.  For this simple program I was able to get through every step with no error messages.  But the compiled program does not display "THIS IS A TEST"--it just crashes.  So considering the simplicity of that I'm guessing I'm just doing something wrong...?  Is there a special compiler for TML programs or is there maybe a particular way you have to prepare them before compiling?

Link to comment
Share on other sites

I've recently been playing around with XB256, mostly cause I wanted to see for myself how fast certain BASIC operations could be speed up...  well now I'm hooked! [emoji4]  
 
Up till this point I've mostly been using The Missing Link because I want access to the bitmap graphic loading.  I've been working on a TML project that could really benefit from this kind of speed increase...  Now I'm assuming it is possible to compile TML programs as I read about it somewhere in the XB Game Developer's Package thread.  I think even the TMLDEMO file itself was compiled with a nice speed increase.  But I am having trouble compiling any TML programs myself (including the TMLDEMO).  Is there a special compiler for TML?
 
I am using the latest version XB256 package as well as TML 2.0.  In TML I save my program with a -M at the end of the filename followed by ,MERGE.  Then I run the Isabella loader and go to the compiler from the menu and give it the file I saved in TML.  It seems to compile fine (no errors) but when I go to assemble it I get several errors (a bunch of "undefined symbols").  Making a loader at this point just makes a file that crashes when I attempt to load it.
 
Honestly I'm confused by all this--I would think that the compiler wouldn't handle TML programs as TML has subroutines that XB256 does not (the bitmap mode for instance).  Also the XB256 compiler manual states that it only works with XB256 routines (says nothing about TML)--but again, I definitely saw something about TMLDEMO being compiled on a thread over here.  I am running everything on Classic99 right now; I have Isabella and TML each in their own folders (not as .DSK images but as individual files).  I tried copying all the TML files into the Isabella folder so that when it came to compiling/assembling, I thought maybe it might find those subroutines it needed.  But still no luck.  
 
Just as a simple test I made the most simple program in TML:
10 CALL LINK("PRINT",1,1,"THIS IS A TEST")
20 GOTO 20
I saved this as TEST-M,MERGE and I tried feeding TEST-M into the XB256 compiler.  For this simple program I was able to get through every step with no error messages.  But the compiled program does not display "THIS IS A TEST"--it just crashes.  So considering the simplicity of that I'm guessing I'm just doing something wrong...?  Is there a special compiler for TML programs or is there maybe a particular way you have to prepare them before compiling?
https://atariage.com/forums/topic/300071-extended-basic-gem/

This is where to find the update

Sent from my Pixel 6 Pro using Tapatalk

Link to comment
Share on other sites

When compiling a program using preexisting assembly subroutines, it is important to follow the direction in the document XB Compiler.pdf, included in the XB Game Developer's Package, precisely.  

 

See the section titled COMBINING ASSEMBLY ROUTINES WITH COMPILED XB CODE and follow these directions exactly as provided.  The entire process is laid out there. 

 

In the case of The Missing Link specifically, note that the first steps in this process are unnecessary, as a file, TMLC, has already been prepared and included in recent versions of the XB Game Developer's Package, and you can use this file as provided. 

 

Subsequent steps will however be required.  Note, in particular, the use of UC2LC on your Extended BASIC program, as a necessary step (presuming you haven't already written your program in a manner respectful of the case distinction which is required here). 

 

That's my advice, based on my experience mucking about with the business of combining assembly support routines with compiled XB, so far. 

 

I definitely had to go back and RTFM myself, after my first attempts, to really get the process down. 

 

  • Like 2
Link to comment
Share on other sites

Thanks for your quick responses!  Yeah I had been meaning to check out the GEM package and the only reason I hadn't up to this point was that I'd thought it was only available as a cartridge image.  I was sticking to things I could find as .DSK images mostly as I have a CF7 and that is how I get things to the real machine.  I don't yet have a FinalGROM99 and up to this point didn't really need one as the CF7 has taken me pretty far.  But my thoughts are beginning to change considering awesome software like this, not to mention other things...  I mean I haven't even looked into RXB yet(!) :)

 

But aside from all that, I'm using Classic99 a lot more lately for developing so I've downloaded the latest GEM package (and really I should download RXB right now too); after all, anything I compile I can always send to my real machine and that's mostly what I care about.

 

Thank you Pixelpedant for those specific tips.  I need to look through the documentation that came with the latest GEM package cause I can't seem to find that section in my copy of the XB compiler.PDF that came with Isabella (I was just skimming though so maybe I missed it).  Kudos to you BTW for the YouTube videos!  They've given me inspiration recently! :) 

  • Like 1
Link to comment
Share on other sites

46 minutes ago, ruthven said:

Thank you Pixelpedant for those specific tips.  I need to look through the documentation that came with the latest GEM package cause I can't seem to find that section in my copy of the XB compiler.PDF that came with Isabella (I was just skimming though so maybe I missed it).  Kudos to you BTW for the YouTube videos!  They've given me inspiration recently! :) 

Note that Extended BASIC GEM and the XB Game Developer's Package are not the same thing. 

 

It is the latter you want, for documentation and files supporting compiling of Extended BASIC programs using assembly support routines.  The latest version of which is JUWEL. 

 

  • Like 2
Link to comment
Share on other sites

11 hours ago, ruthven said:

But aside from all that, I'm using Classic99 a lot more lately for developing so I've downloaded the latest GEM package (and really I should download RXB right now too)

RXB is built into Classic99.  See under menu item "Cartridge" then "Apps"

  • Like 1
Link to comment
Share on other sites

2 hours ago, chue said:

RXB is built into Classic99.  See under menu item "Cartridge" then "Apps"

Sorry RXB 2022 is still being finished, doing DEMO testing now and program checking, so release date is coming.

Link to comment
Share on other sites

There is a minor bug in the compiler that crept in recently. I moved the code for CALL LINK to RUNTIME9. However, I must have forgotten to put in the tag so the compiler knows to load that part of the code. This has been fixed and will be released soon. I am working on some bugs in the DISPLAY AT and hopefully they will be done soon.

Until then you can manually add RUNTIME9 to the .TXT file the compiler produces and it should work fine

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