Jump to content
IGNORED

Writing an Extended BASIC game too big for memory


Cheung

Recommended Posts

4 hours ago, senior_falcon said:

I just had a great idea. I don't know why I never thought of this before. When you are developing a program, you could write it completely in XB. XB makes it easy to test it, see where it needs work, make changes, test again, add another screen, test again, and so on. All in XB which has the ability to quickly make changes and test them immediately.

Once it is finished, only then would you put in the compiler disk, and load the program you just wrote and tested in XB. Then press Enter about a dozen times and voila! you have the same program that runs 30x faster.

Just a thought...

 

 

Very cool I admire your XB256 and it being compiled but you still have to keep 2 versions one original and one compiled.

Whereas I prefer one and only one, that is so much more easy to track and very BASIC (get it?)

Link to comment
Share on other sites

4 hours ago, OLD CS1 said:

Perspective.  A good number of useful and decent games have been writing in both.  Maybe lacking certain bells and whistles, but I would not call them not decent.

 

There is no reason that compiling BASIC would be any worse or better than compiling other languages.

Well not like Texas Instruments did not have access to Compilers, but then the Console would pretty funny trying to compile off Cassette huh?

Link to comment
Share on other sites

3 minutes ago, RXB said:

Well not like Texas Instruments did not have access to Compilers, but then the Console would pretty funny trying to compile off Cassette huh?

Would be amusing, at least.

  • Haha 1
Link to comment
Share on other sites

2 hours ago, senior_falcon said:

Rasmus wrote: "You can use CALL LOAD to switch the bank, but you would need assembly support to be able to execute arbitrary machine code. Maybe XB256 has something you can use? I think there is something called CALL LINK("X")?"

 

Normally >2000 (8192) has >205A, the address of CALL LINK's assembly lookup routine. When you do CALL LINK, it fetches that address, branches to it and normally will go through the DEF table looking for a match.

You can CALL LOAD a different address to 8192, and CALL LINK("X") will branch to that address. I use "X", but the name is not important; however, you cannot use just CALL LINK.  XB doesn't like that and issues an error.

Yea I fixed that in RXB as always thought it stupid in XB using a CALL LOAD checks for 32K first, just WHY?

You do a CALL INIT just to use CALL LOAD but both crash with errors.

Link to comment
Share on other sites

10 hours ago, RXB said:

DUDE do you know why XB is not compiled by Texas Instruments in first place?

It is a BEGINNERS LANGAGE not ASSEMBLY and you just indicated XB should be a COMPILED LANGUAGE the opposite of the definition: 

 

BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use.

BASIC - Wikipedia

 

If I wanted XB to be a ADVANCED LANGUAGE I instead would work with C like everyone else on planet!

How come you are not USING C like rest or world?

 

See ease of use is not assigned to any low level language like Assembly or C or FORTH or Lisp or Python.

 

P.S You can not change things in these low level languages fast and easy like XB, and you need MULITIPLE COPIES to do so

i.e. Source, Object (Compiled output file), Listing and a folder to put it all into.

XB just needs the program itself and 2 seconds to make changes and save it again, HENCE EASE OF USE!

 

Hey, what's your problem? Is really so frustrating for you the fact that people prefer to use the XB compiler from @senior_falcon instead of your version of BASIC?
BOY, relax and breathe! This is just an hobby, there are greatest problems in the World!

 

How many programs were developed last year using RXB? Zero? Why? Maybe because it simply does not fit the needs of coders... Is it clear what was the initial request in this thread? Is it clear for you that the trend is to compile the XB code and convert to a SSS to run on finalGROM? You can decide the roadmap for your RXB enhancements, but we are equally free to not use RXB if we think it's not enough interesting for our needs! You can spam each thread of this forum advertising RXB, but nothing will change this fact!

 

Texas Instruments has not created XB to be compiled? So? Do you want to add also this to the list of the various mistakes in the design of the TI99?

 

Dear "schoolmaster", your lessons on programming languages are not needed and not requested. I know C, Objective-C, C#, etc. that I used to create various commercial apps and games for different platforms (e.g. xbox, etc). On the TI99 I'm free to use whatever language I prefer. Maybe I'm too lazy to setup a GCC environment to code or simply I like to use the XB compiler, because is fun, fast and nice to use. This is my own business and I do not need to provide any justification to you.

 

As usual, you've not added any additional value to the discussion in this thread, it was just another annoying attempt to promote RXB!

 

 

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, tmop69 said:

 

Hey, what's your problem? Is really so frustrating for you the fact that people prefer to use the XB compiler from @senior_falcon instead of your version of BASIC?
BOY, relax and breathe! This is just an hobby, there are greatest problems in the World!

 

How many programs were developed last year using RXB? Zero? Why? Maybe because it simply does not fit the needs of coders... Is it clear what was the initial request in this thread? Is it clear for you that the trend is to compile the XB code and convert to a SSS to run on finalGROM? You can decide the roadmap for your RXB enhancements, but we are equally free to not use RXB if we think it's not enough interesting for our needs! You can spam each thread of this forum advertising RXB, but nothing will change this fact!

 

Texas Instruments has not created XB to be compiled? So? Do you want to add also this to the list of the various mistakes in the design of the TI99?

 

Dear "schoolmaster", your lessons on programming languages are not needed and not requested. I know C, Objective-C, C#, etc. that I used to create various commercial apps and games for different platforms (e.g. xbox, etc). On the TI99 I'm free to use whatever language I prefer. Maybe I'm too lazy to setup a GCC environment to code or simply I like to use the XB compiler, because is fun, fast and nice to use. This is my own business and I do not need to provide any justification to you.

 

As usual, you've not added any additional value to the discussion in this thread, it was just another annoying attempt to promote RXB!

 

 

 

If you want to compile XB fine, go for it.

RXB has been getting updates for 30 years as my project.

Do what you want,  but do not BS me as to XB and what it is or how it works.

And you are very annoying as my RXB will still run in a Console alone, try that with a Compiled program as without 32K it will not even run!

Just like the XB in original form being backwards compatible is my goal, you do what you want, but do not BS me about what I have been doing for over 30 years.

Now that does annoy me I have not put down XB256 as it is a great product but it is not in anyway usable from a console, it has to have 32K to even work.

Show me a Cassette and XB256 working from just a Console, go for it!

Link to comment
Share on other sites

29 minutes ago, RXB said:

If you want to compile XB fine, go for it.

RXB has been getting updates for 30 years as my project.

Do what you want,  but do not BS me as to XB and what it is or how it works.

And you are very annoying as my RXB will still run in a Console alone, try that with a Compiled program as without 32K it will not even run!

Just like the XB in original form being backwards compatible is my goal, you do what you want, but do not BS me about what I have been doing for over 30 years.

Now that does annoy me I have not put down XB256 as it is a great product but it is not in anyway usable from a console, it has to have 32K to even work.

Show me a Cassette and XB256 working from just a Console, go for it!

 

We are in 2022 and probably most of those who are still using the TI99 have a 32K and other pheriperals or are using an emulator or the MiSTer. So your point is really weak IMO. Good for you that you had fun with RXB in the last 30 years. Is your main goal the backward compatibility with basic console? Good! So now the question is why are you BS this thread that is related to other and not to RXB? This is the real point and the irritating thing. If we want to talk about RXB, we know that there is a specific thread, you do not need to advertise it everywhere!

 

 

  • Like 2
Link to comment
Share on other sites

Excuse me for writing a thought of my own. My English also is not perfect and I hope to be able to best express what I really want to explain. 

It always saddens me to see unnecessary discussions among us 99ers.


And, excuse me if I allow myself, from my point of view, I consider them a bit useless even in this case because you are all sacred monsters full of knowledge both regarding the TI99 and the coding field in general, and there shouldn't be any kind of competition between us if not, instead, only for the purpose of collaboration to bring more and more beautiful things for our beloved computer.

 

I don't feel like talking about wrong or right, and to me RXB posts don't bother at all, even if sometimes they can seem to be forced but I don't mind knowing the possibility that RXB language can give. Then maybe it doesn't fit the solution really wanted however I like to know his point of view.

 

The bad thing is when we become arrogant and disrespect each other.

I'm always sorry for this because in a such nice community like this, it takes away the serenity and it doesn't help the brotherly and collaborative spirit that I would like to see always among us 99ers :)

 

That said, I'm going back to my den.

 

TIsandLove.thumb.png.49f471fca55ce638b41d046eff933204.png

TIs and Love ❤️

 

Edited by ti99iuc
  • Like 9
  • Thanks 2
Link to comment
Share on other sites

29 minutes ago, ti99iuc said:

Excuse me for writing a thought of my own. My English also is not perfect and I hope to be able to best express what I really want to explain. 

It always saddens me to see unnecessary discussions among us 99ers.


And, excuse me if I allow myself, from my point of view, I consider them a bit useless even in this case because you are all sacred monsters full of knowledge both regarding the TI99 and the coding field in general, and there shouldn't be any kind of competition between us if not, instead, only for the purpose of collaboration to bring more and more beautiful things for our beloved computer.

 

I don't feel like talking about wrong or right, and to me RXB posts don't bother at all, even if sometimes they can seem to be forced but I don't mind knowing the possibility that RXB language can give. Then maybe it doesn't fit the solution really wanted however I like to know his point of view.

 

The bad thing is when we become arrogant and disrespect each other.

I'm always sorry for this because in a such nice community like this, it takes away the serenity and it doesn't help the brotherly and collaborative spirit that I would like to see always among us 99ers :)

 

That said, I'm going back to my den.

 

TIsandLove.thumb.png.49f471fca55ce638b41d046eff933204.png

TIs and Love ❤️

 

Yeah, I feel the same way... Even if I see something irritating, I just ignore.. because maybe, just maybe something I can still learn in the mix.

Edited by GDMike
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, tmop69 said:

 

We are in 2022 and probably most of those who are still using the TI99 have a 32K and other pheriperals or are using an emulator or the MiSTer. So your point is really weak IMO. Good for you that you had fun with RXB in the last 30 years. Is your main goal the backward compatibility with basic console? Good! So now the question is why are you BS this thread that is related to other and not to RXB? This is the real point and the irritating thing. If we want to talk about RXB, we know that there is a specific thread, you do not need to advertise it everywhere!

 

 

 

I lurk more than post.  I've seen that he's peed on lots of threads.  He's been doing it for years.  He's been asked to stop.  It's started a few flame wars.  He's been been made fun of over it.  He does not care that a topic is for a topic for a reason.  Is it rude? Yes.  Is he obnoxious?  Yes.  Does he care?  I don't think so.  Will I ever use RXB?  Hell no, and for these very reasons.  Good luck @tmop69

  • Like 2
  • Thanks 1
  • Sad 1
Link to comment
Share on other sites

Getting back to the OP's question:

When a compiled program ends when running in EA5, it goes to this loop that scans for the "quit" key. (Previously it would just quit immediately, but there were times when that seemed too abrupt.)

The code below is at line 435 in RUNTIME1.

XBRTN2	LIMI 2
	JMP XBRTN2
*	BLWP @>0000		no place to go to if in EA5, so quit

That can be modified so it will go to a loader that bank switches cartridge rom and copies the next program to ram. You want to be sure not to overwrite the loader while it is running. Assuming the compiled program does not use low memory for assembly support or because you used the "put runtime in low memory" option, then you could put the loader there and have it just copy 3 banks to high memory.

Once transferred to ram, >FFE6 contains the address to start the program.

table.jpg.630eaf88004505aca8e714af1209a3d8.jpg

Of course, you still have to make the cartridge containing multiple programs, but I will leave that to Rasmus or someone else who knows what they are doing.

 

  • Like 5
  • Thanks 3
Link to comment
Share on other sites

6 hours ago, tmop69 said:

 

We are in 2022 and probably most of those who are still using the TI99 have a 32K and other pheriperals or are using an emulator or the MiSTer. So your point is really weak IMO. Good for you that you had fun with RXB in the last 30 years. Is your main goal the backward compatibility with basic console? Good! So now the question is why are you BS this thread that is related to other and not to RXB? This is the real point and the irritating thing. If we want to talk about RXB, we know that there is a specific thread, you do not need to advertise it everywhere!

 

 

I was pretty much first to support AMS now SAMS in the entire TI Community.

Want to use more then 32K well RXB has had that answer since before 2001 in version 2000, that was 22 years ago.

So buddy I was WAY AHEAD OF THE CURVE and way ahead of your views by over 20 years.

You are late to the party on this one, and I am still backwards compatible too.

Thus for Tech in TI world I had to wait for everyone else to catch up with me.

Just because you do not know crap about RXB or what you can do with it, you tell me what threads I can post in?

 

LOOK AT THE TITLE OF THE THREAD AND TELL ME I AM WRONG HERE?

Link to comment
Share on other sites

4 hours ago, senior_falcon said:

Getting back to the OP's question:

When a compiled program ends when running in EA5, it goes to this loop that scans for the "quit" key. (Previously it would just quit immediately, but there were times when that seemed too abrupt.)

The code below is at line 435 in RUNTIME1.


XBRTN2	LIMI 2
	JMP XBRTN2
*	BLWP @>0000		no place to go to if in EA5, so quit

That can be modified so it will go to a loader that bank switches cartridge rom and copies the next program to ram. You want to be sure not to overwrite the loader while it is running. Assuming the compiled program does not use low memory for assembly support or because you used the "put runtime in low memory" option, then you could put the loader there and have it just copy 3 banks to high memory.

Once transferred to ram, >FFE6 contains the address to start the program.

table.jpg.630eaf88004505aca8e714af1209a3d8.jpg

Of course, you still have to make the cartridge containing multiple programs, but I will leave that to Rasmus or someone else who knows what they are doing.

 

Just a nod here, I really like your product as an option for everyone.

Your approach was needed for those using things like TIPI or other new products.

 

My view is on history when they display a TI99/4A in a museum they only need the Console and RXB to show it was not slow at all.

Always look to the future down the road... (I do not know who said this.)

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

It is testament to our TI family that we have a world-wide appeal with personalities which vary as much as the languages, countries, and localities we encompass.  We have our squabbles, and they are good fun, and there comes a time to settle and break bread to return the original intention to the thread.

 

The debate has presented some good points, in particular the limitations of TI BASIC and Extended BASIC (which have been beaten into the ground over the years,) to the various evolutions of Extended BASIC and extended capabilities and utility.  While not directly related or answering the OP, it does have its merits though the personal one-on-one could be quashed at this point and we can have a burger and a beer together, speaking in more general terms.

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

6 hours ago, senior_falcon said:

Of course, you still have to make the cartridge containing multiple programs, but I will leave that to Rasmus or someone else who knows what they are doing.

A completely different approach would be to separate program and data much more, which would require loading (level-) data or graphics from disk. Do you see any chance to support random access to files in a compiled program in the future?

  • Like 2
Link to comment
Share on other sites

7 hours ago, RXB said:

I was pretty much first to support AMS now SAMS in the entire TI Community.

Want to use more then 32K well RXB has had that answer since before 2001 in version 2000, that was 22 years ago.

So buddy I was WAY AHEAD OF THE CURVE and way ahead of your views by over 20 years.

You are late to the party on this one, and I am still backwards compatible too.

Thus for Tech in TI world I had to wait for everyone else to catch up with me.

Just because you do not know crap about RXB or what you can do with it, you tell me what threads I can post in?

 

LOOK AT THE TITLE OF THE THREAD AND TELL ME I AM WRONG HERE?

The title of the thread is: Writing an Extended BASIC game too big for memory." So from that one might think that RXB or XB 2.9 G.E.M. could be an appropriate tool for this, and I will admit to being excited and ready to post some instructions about chaining programs using XB 2.9 G.E.M.

But then in the original post we read:

"So this seems to work fine when the programs are all on a specific disk. But how would this work for a cartridge? What would need to be changed to get this working for cartridge if this is even possible? For disk, it's just a matter of calling: RUN "DSK1.LEVEL1"  or whatever is the next program in the sequence."

Well now, the plot thickens - what does this mean? It sure sounds like he somehow wants to make a cartridge out of the multi segment program.

Posts #2 to #8 try to clarify this and speculate on ways to achieve the desired results.

In post #9, Cheung (the OP) writes: "The intent is to compile the program." So this precludes RXB which cannot be compiled.

Over 2 hours later, in post #11 you respond with your first (of many) advertisements for RXB, offering a solution that cannot work.

 

So yes, you are wrong here!

The takeaway from this is simple: First read carefully. Then think about what you just read, and reread it if necessary. After that, if it still seems appropriate, only then is it time to post.

 

 

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

4 hours ago, SteveB said:

A completely different approach would be to separate program and data much more, which would require loading (level-) data or graphics from disk. Do you see any chance to support random access to files in a compiled program in the future?

Nope

However, at this point the compiler supports assembly subroutines. You can imagine assembly subs such as these, fleshed out with enough parameters to get the desired result:

CALL LINK("OPEN1","DSK1.FILE")

CALL LINK("INPUT1",A$)

CALL LINK("CLOSE1")

Not as convenient as having it built in, but it should work.

  • Like 2
Link to comment
Share on other sites

19 hours ago, RXB said:

LOOK AT THE TITLE OF THE THREAD AND TELL ME I AM WRONG HERE?

I have commented on this before, that you promote your RBX... where it is not right nor needed. People in the thread comment on you jumping in with RXB and there is pointed out that this has been going on for a long time. And in the end, senior_falcon points out SPECIFICALLY why RXB is not asked for, or work in this case. But you promote RXB... anyway! What will it take for you to be a little humble?

But as tmop69 is saying, "How many programs were developed last year using RXB? Zero?" The big question is... "WHY do you think there is so little interest in your program? I think most people will agree that you have made a great programming lango. So... if it is so great, WHY are people not interacting with it?

Don't you see that you're shooting yourself in the foot? I understand that RXB is a great software to use to program in. Not that there would be THAT much to learn, but... My main reason for NOT wanting to learn RXB - YOU!

I know Basic and EX. Basic, I prefer to use them as I know them. The old TI manual for Basic and Ex. Basic is so much easier to use and figure out stuff when I am stuck. So my advice would be to make a manual in the same "spirit" and ease of use. Use A LOT of time on that and only that. Be humble and figure out what people need and want. Use the time you would use to spam, make a manual, make games, make videos and be just a little humble and respectful to the community. The saddest thing would be if you keep making RXB and no one is using it!

Then spam your tread with RXB and how good it is! Then you might get people to start to use RXB. And... MORE important... you can have made the best programming lango for the TI. But... Spamming and getting into people's faces, makes people NOT want to use "the greatest program ever made". YOU yourself are the biggest hindrance for me investing time in RXB. The more you put out RXB here and EVERYWHERE else, I get as much de-motivating from trying it out. I don't care if RXB is back forward or upside-down compatible. I want to have fun and make my program. So, do not put YOUR stuff on me. If I ASK, sure then it is OK. And I will be sure to ask inside your RXB tread! Promise you that! You might be right ALL the time and at the same time, you're so so wrong!

I am programming in Basic and EX. Basic and I have the same issue as the tread is about... to make a program that is too big and dos not fit inside the limited memory. BUT... Then AGAIN I have to read about RXB! I am now again 2*more NOT wanting to have ANYTHING to do with RXB!

I want to learn how to make a program that is way too big, and how to make it work. ONE of the big issues for me is the limitation of memory. If I get a great solution to make a "huge" program and STILL get it to run on the TI, I would make some of the games I have in mind. At least try it! (HINT!!! Here you have a possibility, take that need and make it fit inside RXB... then I might have to get over that I don't like your spamming ways!)

The saddest thing about this is that this makes people pissed and the HOLE community suffers from it.

PLEASE, Rich Gilbertson, be a little humble and listen to what people say. Keep updating and making RXB great and post in your thread about it. I go there and look at your YT vids. It makes me so sad that a big part of this thread is now about you and RXB! But do read and if you can help, then do so. But more important... keep improving upon RXB compared to what people NEED! You could make one RXB that is JUST how you want it and then a ver. that could be compiled and that is using all the modern tools. To do what is ASKED for in this tread.

So... I am reading and hoping for solutions to this "too big program" issue!

I am hoping the Gurus will point to something, or make software to fix this issue.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

2 hours ago, oddemann said:

But as tmop69 is saying, "How many programs were developed last year using RXB? Zero?" The big question is... "WHY do you think there is so little interest in your program? I think most people will agree that you have made a great programming lango. So... if it is so great, WHY are people not interacting with it?

As an evolution to Extended BASIC, I would say the lack of a physical distribution of RXB is a barrier to entry. Though now mitigated by the existence of the FinalGROM, you are not just going to find an RXB cartridge floating around on eBay.

 

We can take this discussion to another thread altogether.

Link to comment
Share on other sites

2 hours ago, oddemann said:

So... I am reading and hoping for solutions to this "too big program" issue!
I am hoping the Gurus will point to something, or make software to fix this issue.

What do you have in mind? Do you want to run an Extended Basic program larger than 24K? A series of compiled programs combined in a cartridge like the OP wanted? Or something else entirely?

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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