Jump to content
IGNORED

Turbo Basic XL hacks or improvements


peteym5

Recommended Posts

At this point I never suggested putting Turbo Basic to run directly from a cartridge. I know there is one that just loads Turbo Basic or Compiler into RAM and disables the cartridge. One alternative is relocate everything to $A000 to $BFFF and use a bank switching cartridge like AtariMax or Williams that only map 8K of Atari Memory from $A000 to $BFFF, the entire bank is swapped out with a write to the $D5xx area. This would also allow it to work with SpartaDos because it will not be loading anything under the OS ROM area. Anyone doing this will need to figure out a whole new bank switching scheme also. Also I am not sure if TurboBasic is using any self-modifying code that needs to run from RAM, if it does, putting it onto a EPROM would certainly be out.

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

  • 1 month later...

Well guys, the author of TB is found, he lives in my old hometown. Everything is underway to establish a first contact. But(!) we would like to do this the same way, as we have done with ACTION!. So one wrong move and we are kicked out.

 

Therefore, just be cool for while. Hope, that by the end of this year it may be done.

  • Like 6
Link to comment
Share on other sites

Well guys, the author of TB is found, he lives in my old hometown. Everything is underway to establish a first contact. But(!) we would like to do this the same way, as we have done with ACTION!. So one wrong move and we are kicked out.

 

Therefore, just be cool for while. Hope, that by the end of this year it may be done.

That's awesome! Wonderful news.

:)

Link to comment
Share on other sites

We haven't got it so far...

 

Meanwhile, there is the MAC/65 source code and of course the BASIC XE source code.

 

Cool would be, to implement in TB the EXTEND function from XE (for up to 4 MB programs...), the editor from Action! and the floating point routines from:

 

https://atariwiki.org/wiki/Wiki.jsp?page=Hypra-Soft-Basic

 

All this on open source and Atari is save for coming decades... :) :) :)

  • Like 3
Link to comment
Share on other sites

the floating point routines from:

 

https://atariwiki.org/wiki/Wiki.jsp?page=Hypra-Soft-Basic

 

It is not quite that simple. Floating point is unfortunately spread over several parts, the math ROM and the Basic ROM.

The Math ROM contains elementary algebraic operations, +,-,*,/ but also some transcendental functions like log and exp. For all that, a floating point package with improved precision exists in Os++ (the atari++ replacement Os).

 

However, math on Atari also consists of a set of functions in Atari Basic. That is, sin(), cos(), sqrt() and the power function. For some strange reason, they are in the BASIC rom.

 

Needless to say, the Atari implementations are pretty crappy, the mathematical approximations are naive and the choice of the floating point model is equally naive.

Link to comment
Share on other sites

I don't do so.

 

If you see the Atari as a game machine, then it is o. k..

 

But the Atari can do a lot more. I have proved this many times. I am interested in the serious stuff. With Hypra-Soft-Basic this is proved one more(!) time.

 

@thorfdbg:

"

Floating point is unfortunately spread over several parts, the math ROM and the Basic ROM.

"

Sure, but buggy, because they were under pressure to finished, they were limited to 8 KB-ROMs and other reasons. If you would have given Bill Wilkinson the needed time, a kind of Hypra-Soft-Basic concerning calculations would have been finished further. The more precision, the more time the 6502 needs. Facing games, that is not good. Please take into account, that the Atari Basic is in real 10 KB in size. The 2 KB FP routines from the OS have to be added.

 

Carol Shaw (author of the Atari Calculator) had to completely rewrite the FP routines.

 

Just imagine the Atari had made a breakthrough in business, the world now (especially IBM) would look different.

 

"

Needless to say, the Atari implementations are pretty crappy, the mathematical approximations are naive and the choice of the floating point model is equally naive.

"

Completely reject this, Bill Wilkinson is not naive, he is a hero. Saying this from today with all the knowledge is easy, but go back to the 70's and redo this!

 

Maybe, we should look to Steve Wozniak FPs for the Apple II. If you title him the same, then I have work to you. If you are that smart, why don't bring to Action! bug list #3 to zero? Can you deliver the next day or week?

Link to comment
Share on other sites

"

Needless to say, the Atari implementations are pretty crappy, the mathematical approximations are naive and the choice of the floating point model is equally naive.

"

Completely reject this, Bill Wilkinson is not naive, ...

 

Nobody said that. But he was motivated to deliver quick - with the bonus - normally this has an impact to quality...

Link to comment
Share on other sites

Can you deliver the next day or week?

 

This reasoning I have heard many times before, possibly even used myself, but it is not really good - I can not play teutonic trash metal myself at all, but it does not mean I cannot dislike it or compare to other implementations of music :)

 

Anyway, I do respect your opinion on serious stuff on our 8-bitter. I have tried this in my time and it was fun.

Link to comment
Share on other sites

@F#READY

 

In your country the ESA location could have use it. I myself had a need for this in school! My colleagues from the the super sonic department can only start, if they can calculate up to 50 digits...

 

Of course, it is not the question: 'Who needs an iPhone', but there are people, who are interested in this, maybe muss less, then the gamers, but enough. Just ask yourself, why Calculators with kept back for years and never delivered to Europe officially! There are reasons for... -> Fuji?

 

@pirx

 

Sure, even the serious stuff is fun, that is why I do it. Just saying, that when you have all(!) the facts, even the historic ones, you may have a different mind on this. Of course, you are totally free in your likes and dislikes. I just mean, if you judge, you should be in complete knowledge. Maybe this not always possible, but you can try. A good thing is to hear all the podcasts from Kevin:

Link to comment
Share on other sites

An important improvement would be a command that draws all the requested sprites at the same moment.

Now it's impossible to overlap sprites without machine language routines.

 

In Turbo-Basic you can use "PAUSE 0" to wait for a blank and then modify positions etc.

Alternatively you could wait for VCOUNT to issue modifications during v-blank...

  • Like 2
Link to comment
Share on other sites

 

In Turbo-Basic you can use "PAUSE 0" to wait for a blank and then modify positions etc.

Alternatively you could wait for VCOUNT to issue modifications during v-blank...

I don't think it's so simple.

Could you please make an example (when you have time) of two overlapped players that move in the same moment?

Link to comment
Share on other sites

@Philsan - you know what - my little 10 liner "Flappy" used exactly this technique (pause 0) and overlapping was OK. What was not OK was vertical position of second set of sprites - the main character used all 4 sprites.

So pause 0 really works good for horizontal alignment.

  • Like 1
Link to comment
Share on other sites

Could you please make an example (when you have time) of two overlapped players that move in the same moment?

 

Like pirx, Fandal and I used this technique for 10-liners "Broad's Revenge". Remove the "PAUSE 0" there and inspect the tearing...

 

Edit: Even the players don't move horizontally...

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

@pirx

 

Sure, even the serious stuff is fun, that is why I do it. Just saying, that when you have all(!) the facts, even the historic ones, you may have a different mind on this. Of course, you are totally free in your likes and dislikes. I just mean, if you judge, you should be in complete knowledge. Maybe this not always possible, but you can try. A good thing is to hear all the podcasts ...

I am still not getting this - I mean if something is suboptimal, the knowledge of genuine effort, cost and dedication is not changing my notion of sub-optimality.

 

A good example may be Roman aqueducts - a true engineering and construction marvel that was meticulously erected where thousands times cheaper solution like a water tower could be employed. What a dramatic waste of time, money and effort.

So, aqueducts were pretty and hard to build, worked as intended, provided great value for all users and still I think I have the right to criticise their optimality.

Link to comment
Share on other sites

I think "naive" was really the wrong description of the Atari8 floating point package. I'm sure its programmers (whoever they were, remember the FP is in the OS ROMS, not BASIC) were anything but naive. It was not of high quality or performance though to be sure. Then we have Atari 8K BASIC. Yes Bill W. (and others) worked on that, and they aren't naive or poorly skilled either. They did make a BASIC though, that relied ENTIRELY on the slow, rather crusty OS FP package. This happened most likely due to time and space constraints. If I recall, BASIC-XL (or perhaps just BASIC-XE) has improved floating point support. Really the best thing though, would have been to support INTs and other non float type numbers. That way for 90%+ of the programming that doesn't need floats, it doesn't suffer from a slow and poorly float package.

Link to comment
Share on other sites

@Philsan - you know what - my little 10 liner "Flappy" used exactly this technique (pause 0) and overlapping was OK. What was not OK was vertical position of second set of sprites - the main character used all 4 sprites.

So pause 0 really works good for horizontal alignment.

 

 

 

Like pirx, Fandal and I used this technique for 10-liners "Broad's Revenge". Remove the "PAUSE 0" there and inspect the tearing...

 

Edit: Even the players don't move horizontally...

Very interesting examples, but unfortunately the code isn't easy to understand, at least for me.

Maybe you can write the code in more than 10 lines, so I can understand.

I only need an example of two overlapped sprites that move horizontally and vertically.

 

What I am trying to say is that A8 miss an easy Basic to write games (with Atari VCS batariBasic you can move 10 multicolor sprites easily!).

I think new Altirra Basic and its PMG commands (from OSS Basic XL) are very good but it's impossible two move two sprites in sync.

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