BASIC Doesn't Have to Be That Basic
|
Posted on 24 January 1999
The following text was written by Patrick
Wilson: Hello everyone. I've been thinking a lot after submitting my
article, The TI Programming Alliance, and I realized
a few important things. People complain that good assembly programs are few and far between.
This is unfortunately true, however don't leave BASIC out. Unless it's for the TI-83 or
less. Let's face it, BASIC pretty much just sucks. With the exception of rapid development
and almost no risk of crashing, it's slow, cumbersome, inefficient, and resource lacking.
Assembly makes up for this, fixing all of these (most of the time). Now, I may have strayed
a bit, but... I bring these facts up for a reason and I'll get to the point in just a bit.
There is this group of highly talented BASIC programmers that go under the name of "BKSoft".
They make VERY good games for the TI-86. All in BASIC though. Second, an assembly program
under the name of ASAP X Command extends BASIC in a unique way. It adds simple, fast, and
very effective extensions to BASIC such as the ability to display inverted text, draw
sprites, test the existence of variables and much more. Now, I will explain why I've said so
many different things. What if BASIC was extended by so much, that you couldn't tell where
the BASIC ended and the ASM begins? That's right folks! Add assembly power functions to
the built-in BASIC. Just think, it wouldn't be that awfully hard. - Find
out what BASIC programmers want.
Personally, I want the ability to draw sprites, find
out whether or not the Axes or Coordinates or the Grid's are on, and have fast encryption
and decryption. Just think, a math program that didn't mess up your graph screen, a BASIC
RPG with fast moving sprites (Yes, BASSPro for the 86 does do this), and a way to encrypt
saved games with a password so no one can screw up your saved game when you almost beat it!
- Create an API.
OK, big idea coming! OK, you got one program that runs
tiny little applets in the form of a prgm file. The applets would add all the functionality,
while the big one would be run through the BASIC program wishing to use the applets. The
program would search for all applets with a certain header and load them. Finally, the
program could use the commands that were added by the applets. Phew!!! - Keep some
control.
We want functionality, not oversized crap. If this idea is put to use,
please use good judgment.
|
|
Reply to this item
|
Re: Article: "BASIC Doesn''t Have to be That Basic"
|
Dines Justesen
(Web Page)
|
I think that mixing BASIC and ASM would be an exelent way to make good programs for the TI calcs. It would proably not help much in most games, but other kinds of programs would be easier to make.
There seems to be two ways of mixing asm and BASIC, either you have an ASM program which calls BASIC functions of the reverse.
Sometime ago I was working on making it possible to include BASIC commands in ASM. This would be done by calling a special (buildin) function after specifying the tokenized BASIC code. I think that this would have been a great iomprovement to ASM, but I was not able to make the functions work (and I have not had the time to work on it since then).
One way of improving the cababilities of BASIC is to use the method used for TI82 shell to allow to call functions in the ROM. By making small modifications to the shells are started now, BASIC programs would have acces to some part of the system memory and they would be able to run functions in the ROM.
I thinj both of these suggestions could improve the quality of programs (not games), espsecially the first method suggested could make a big difference.
Dines
|
Reply to this comment
|
24 January 1999, 19:01 GMT
|
|
Re: Article: "BASIC Doesn''t Have to be That Basic"
|
Eric Brookins
(Web Page)
|
I totally agree that basic shouldn't be too basic. When I am programming something in BASIC, their are a lot of API type functions that I use to save time and memory. For example, I am about to release a BASIC sprite reader that allows non-ASM writers to use sprites in their programs. I think that if we try to keep Basic programs too simple, then the programs will start sucking really bad.
|
Reply to this comment
|
24 January 1999, 19:12 GMT
|
|
More octane, please
|
Philibob
|
FORGET GAMES. Let's just talk about Basic in general
What I want to see:
-Arrays- God, we need arrays. I hate messing around with strings and matricies for simple data manipulation and storage. Just think of the possibilities!
-White Line Draw- My TI86 manual has a misprint which mentions the ability to draw a white (erase) line. Sadly, there is no such feature. Good idea, let's get it through ASM, thank you.
-Extended characters- The calculator has tons of neat and funky characters that are not available to the average typist without an awkward assembly program's assistance.
-Interchange- How about an easy way to change a variable to a string and vice-versa?
---------------
<Opinion>
Basic is portable, flexible, universal, easy, and does not require any additional software to program. It's just SLOW. Let's work to speed this up a bit and make it easy on everyone.
</Opinion>
(Oh yeah, my TI-86 does solver( 5x* cos(3x)= 0.5, x, 1) in 3.5 seconds. HA!)
-PHiLiB0B
|
Reply to this comment
|
24 January 1999, 19:37 GMT
|
|
|
|
|
Back to leaded gas.
|
Piloter
|
*snip*
-Arrays- God, we need arrays. I hate messing around with strings and matricies for simple data manipulation and storage. Just think of the
possibilities!
*snip*
On an -85: {1,2,3,4,5} ... lists function as arrays.
*snip*
-White Line Draw- My TI86 manual has a misprint which mentions the ability to draw a white (erase) line. Sadly, there is no such feature. Good idea, let's get it through ASM, thank you.
*snip*
On an -85: for(a, xmin, xmax, [.5]* /_\x
ptoff(a, ycoord)[ptchg if you like]
end
Clumsy and inefficient, but it /works/.
*snip*
-Extended characters- The calculator has tons of neat and funky characters that are not available to the average typist without an awkward assembly
program's assistance.
*snip*
Erg, there was a null program I found on here somewhere that let you get at the box character thingy. Maybe a subst([assembly string] command could grab some of the funky ones, too, I haven't tried.
*snip*
-Interchange- How about an easy way to change a variable to a string and vice-versa?
*snip*
On an -85: eq>st() or st>eq() does this, essentially.
Sorry for long post, and I know all this is -85 specific, except for the for func, which works on almost anything.
--Piloter
|
Reply to this comment
|
29 January 1999, 18:52 GMT
|
|
|
|
|
Re: More octane, please
|
ShadowLord13
|
Extended Chars: If you want to get extended chars in a string, you can get them from mario levels (they're stored in strings, and they have lots of chars you can't normally get.), on the 86. I've made a string with all the extended chars in it, including the black box (both of them - there's an 86 one and an 85 one), and the store arrow and the quote. You can email me if you want it, and i'll send it to you.
I also have a program that'll translate numbers and strings back and forth, but it takes a while. I used it in a matrix encryption program I wrote (that also takes a while).
I'd also like to say: I wrote a really addictive game I just call WAR. It's sort of an RPG, but is more of a combat game, with unlimited #s of players, computer intelligences (of variable difficulty levels), up to 30 spells, two different types of weapons, summon creature spells, and more. Like I said, the # of players (both human and computer) are limited only by your calc's memory. The game also uses lists to remember whether it's been installed already, and you can have up to 3 save games in addition to your current one (the save games can be given names, too). (2/->/ dimL instWAR: if instWAR(1)=0:warINST: The program uses sub-programs, to decrease code size. I've also optimized it a bit. Still, it takes up 45K, and with all three save games being used, it takes up a total of about 65K, varying depending on how many players there are.
The point is, even though that game uses 65K, and is in BASIC, it's the most addictive game I've ever played, and the ONLY one i keep on my calculator. (A ti-86, and there's only about 3 ppl in my school with one. I'm thinking of getting a ti-89... 3d graphics and 500K of memory!!!)
Anyhow, I agree that BASIC games would be better with ASM code, I even use small inverse and reverse text programs in WAR, for the title screen.
|
Reply to this comment
|
21 June 1999, 16:25 GMT
|
|
why bother with BASIC?
|
base_16
|
ASM isn't actually all that hard of a language, actually. All it takes is looking at source code, what instructions do, etc. fot about 2 weeks (probably faster for most people), and you have a good idea of how to do ASM. ALthough BASIC is easy to learn, it' slow and bulky, which is great for simple math operations, but not for high quality games. If you want to make games/progs that people care about, learn ASM. If you only gonna make crap for yourself that no one will care about, go for BASIC.
|
Reply to this comment
|
24 January 1999, 19:40 GMT
|
|
1 2 3 4 5 6 7 8 9 10 11
You can change the number of comments per page in Account Preferences.
|