Why Big Assembly Coding Projects Are Possible
|
Posted on 29 July 1998
The following text was written by Gerard
Imbert: I run a monthly article on the TI-92 and the HP48 on a French
computer magazine named "PC Team". In every issue, I try to find and review the most
interesting or surprising programs for each of these two calculators. I post this now part
as a response to Douglas Ward´s article, The Future of
Assembly Programs, and part as an explanation of why, in my opinion, it is possible to
carry on large programming projects on TI calculators. I must confess that
sometimes finding "good" (interesting, achieved or almost fully functional) assembly
programs for the TI-92 is hard. In the past few months, only Benoit Scherrer's "PCTOOLS 98"
(and IMHO "Sorbo's Quest" too) showed that hard working TI-92 coders are out there. Do not
misunderstand me, I'm not saying everybody else is lazy: I am a PC assembly coder myself,
and have enough knowledge of the Saturn (HP48) and 68000 processors to value the works of
other programmers. Even if I do not know how much Usgard, ZShell and the other shells are
used (as I don't review other calculators), the future of assembly programming on TI
calculators seem uncertain to me (I agree with Douglas' point of view). It is a
fact, there are extremely few "big project" programs released yet or in the works.
We may wonder why, and what reasons interfere with the launching of these "big programming
projects". On the other hand, we can see why it can be done. Knowing the HP48
programming world, I can say that "spontaneous free programming" is possible. It can go
against all logic, but since the HP48 was released, not a single month passes without a new
piece of software getting out. Almost every program existing is freeware, and this even if
the authors do not receive any kind of benefit (except recognition of users with emails
saying "it's cool"). The best of it is that these programs are not just some "pre-release
betas", but quite often they are fully working, optimized, and sometimes even
user-friendly little wonders. So there is a lot of software in the HP48. With the
appropriate programs (I can name them one by one), you can have a word processor, an
agenda, a spreadsheet, and all the PDA "goodies" you can ask for. Everything concentrated
in a "simple" graphical calculator first designed solely for mathematics and physics.
Some of you may wonder what is the point of converting your calculator into a PDA. Well,
for starters, I could say that knowing the price of the TI-92, having a extremely versatile
tool is not just a "silly option". Also, with the power provided on the TI-92, you have the
equivalent of the first 386s! Using the "standard functions" is therefore a pure waste of
power. You may say "Hey, this is ticalc.org, we are not talking about HP", and I
will reply that precisely, that's another motivation for programmers. The 68000 processor
of the TI-92 and TI-89 is superior to the HP48's Saturn, so what can be done since it
outpowers everything already existing in HP's calculator. Even for the Z80 based calcs,
there are still some unexplored possibilities. A good idea would be porting HP48 games and
utilities to TI calculators: this has already begun with Plane Jump (Babal in HP48
version). There is no "design and program architecturing" in that, for you just have to
clone what already exists somewhere else. So you can improve your coding skills and release
new software regularly at the same time. Always using the HP48 example, we can see
that long projects are not impossible. Obviously, it can be considered as a waste of time to
work a long time on a calculator program, but with the Internet and a community of users as
developed as this one, the whole thing remains very interesting. As a matter of fact, there
are even HP48 "coding parties" held in France! OK, I must admit that they seldom attain
more than 30 persons, but that number is not bad after all. Of these 30, there were at
least 15 people working in new programs. And what programs! What I have seen on the works
for a "simple" HP48 could convince anybody of the possibilities of the TI-92. A project is
seldom a waste of time, you can learn lots of things by properly managing your own
programming project, specially by teaming up with other people to improve and speed up your
releases. However the "lone coder" can still attain interesting results. I think
that one of the advantages of "lone coding" is that you are not pressured by nobody to
finish your program, so you can take the time you want (as with any normal activity that
involves long work) and work on it as often or as rarely as you want. Maybe the
best word to remember is "hobby". A hobby is just for fun, but you must spend some time in
it. And the results can be interesting. Haven't there been many computers and famous
programs that have been developed in a garage "for amusement only" at the beginning? All
right, nowadays it is unlikely that a coder will attain fame and glory and money (on any
platform) just by selling something he "just built up". But if you consider that's why it's
not worth it, then why are "other" hobbies worth something then?
|
|
Reply to this item
|
Re: Why Big Assembly Coding Projects Are Possible
|
Matt Johnson
(Web Page)
|
I basically agree with this article. My brother owns a TI-92, and I recall him commenting on the lack of really talented programmers for the TI-92. However, it may not be that they are not talented, it may be lack of time. My brother is half way through his Computer Science degree and extremely busy, thus limiting the time he or anyone else has on building such a powerful program.
Most people who own a TI-92 probably go to college or are working, so they dont have as much time as the teenagers who own the TI-85/86 model calculators. Plus 68000 is a much more complex CPU to learn compared to the Z80, although it is probably easier to get things done.
Another thing is bordom. A large game in assembly language takes an incredible amount of time to add new features. A simple, bug-free yet fun game is all the hobby programmer wants to make. It is fun to make a few games, switch to another platform, make a few more simple games, etc. You get experience and have fun.
|
Reply to this comment
|
29 July 1998, 18:16 GMT
|
|
Re: Why Big Assembly Coding Projects Are Possible
|
Alan Wong / Damnation
|
Well, if I knew asm86 like the back of my hand (which i don't by the way) I would code a big project (and I have a ton that I'd like to do, but I'll get to that later). I believe that the 92 is not the only calc that is not getting a lot of attention. So far, I've seen a lot of games for the 82 (ffx, and lots of new ones in the past several weeks) and the 83. The 85 is now starting to gain some ground (a new rpg). But the 86 is lacking a bit in the big programming part (although Joltima is one big one). But what I am getting to may not be an idea many have come across.
This idea, I belive will give us calc owners with many good games and even let us unexperienced guys have a chance. What I'm talking about is the engine. No, not cars, but game skeletons. If ticalc.org can somehow get a team of super talented programmers (and I know quite a lot of names in that category) to come together and make the basic engines (side scroll, rpg over head, fighting, first person perspectives, myst type, and blah blah blah blah), then all the other people have to do to make a good game is add several elements (art, levels, story/plot, and FUN). This may help extend the amount of games, plus introduce the beginners, instead of dropping them into a pool of code (which I hate... but o'well).
Now that I have pushed forth my idea, maybe someone can pick it up. Now, lets add my idea of games that all the calcs need in there gallery. One, has anyone heard of Castlevania? Wow, good side scroller to pass the time away. Next, let us see a spin off from the Myst type games, those will help speed up the science classes. What about the rpg's? I have one I want to make, but I have no talent whatsoever. This is Pokemon (Pocket Monsters) for gameboy. In this game, we can take advantage to the short distance between people in classes, and the link ports. This game has a person collect an insane number of monsters (near 200), and build their levels one by one. Then the fun comes, battle between calcs for monster superiority. And last but not least, what about a book. What about putting a whole book into the little calculator to read and pass the class time. This is very possible (not with huge books though).
Anyway, this is my opinion (and I hope I spelled everything rite.. hehe) and I would hope that everyone takes this seriously, and spawn big projects on all calcs by forming the skeleton for great games. And for inspiration for new games, just check out the gameboy games, since the calcs and the gameboy are almost the same, or you can come to me...
Alan Wong
--<Damnation>--
|
Reply to this comment
|
30 July 1998, 05:30 GMT
|
|
|
|
|
Engine Bad idea
|
Craig
|
Memory is the main problem behind having an engine. When you have an engine used in multiple games that means its not designed for any one of those games alone. It doesn't do things effieciently, and it takes too many factors into account before doing something because it has to be suited for every type of situation. This all goes back to my reason I don't believe in all of this object oriented stuff, some of it makes sence, but what they're trying to get at is User-Friendly programming. User-friendly is the whole reason I have a PC and not a Mac, although its beginning to not make a difference. You do not just produce a game by producing graphics, dialogue, and FUN. Engines need to be used wisely, and sparingly and definately not used as shared files. This is how I feel about good programmers making engines for all the unexperienced. programmers. Learn the language, ask questions, help, etc.. but don't have someone basically make the game for you.
\--- CW ---/
|
Reply to this comment
|
31 July 1998, 07:16 GMT
|
|
Re: Why Big Assembly Coding Projects Are Possible
|
Chris
(Web Page)
|
I'd also given some thought to etexts on the TI-92. Twas immediately apparent this wasn't practical for the basic TI-92, but the TI-92plus, however... still wouldn't be able to handle many books. Consider: my TI-92plus reports it has a total of 640KB, with 71KB used by the system. Of the remaining 569KB, 51KB is used by a portion of my thesis that I've got on the calculator, 86KB is used by history, programs, functions, expressions, etc, 106KB "normal" RAM is available, and 326KB "archive" RAM is available. So let's call it 483KB free if I didn't have that 51KB of text already in it.
An ASCII version of Burroughs' "A Princess of Mars" is about 363KB. So it could fit in memory. An ASCII version of Verne's "Journey to the Center of the Earth" is about 497KB, which would be pushing it, and wouldn't allow much room for even the calculator's native functions to make their calculations. So it looks like putting a few chapters on at a time is doable.
And putting a few chapters on at a time is the way you'd have to do it, too! Because neither of those would fit solely in my available archive memory or normal memory, and you can't split a file between the two memories. But you're actually bounded by the available normal memory! Because when you open an archived file using the native text editor, the calculator copies (and locks) the file into normal memory first, and then puts it back in archive memory when you're done with it. So the only way to do an etext on the TI-92plus is to break it into chapters, and have only a couple chapters in memory at a time.
As far as being able to program large projects, there is at least one C cross-compiler out there. One of my textbooks deals a lot with the MC680x0. As a part of the purchase price of the book, I got a license for a 68000 cross-compiler for C that runs on a PC. I haven't tried writing code for the calculator using it yet, but one of these weeks I will. The compiler company's web page is http://www.tasking.com/products/68xxx/ if you're interested
cb
|
Reply to this comment
|
30 July 1998, 08:00 GMT
|
|
Re: Article: "Why Big Assembly Coding Projects Are Possible"
|
Stephane Cocquereaumont
(Web Page)
|
Hello !
I have made a complete multitasking OS for the Saturn processor of the HP48, and I want now to make this OS a portable OS for the HP48 and the TI89 and maybe the TI92...
This is a *BIG* project, the aim is to make a standardized programming interface and a sort of virtual assembly language which permit to easily port application like file manager, text editor, graphic editor, and others to the bests calculators...
|
Reply to this comment
|
7 October 1998, 11:03 GMT
|
|
Cross development ?
|
François Compagne
|
Do tools exist to write a TI program on a PC, debugging it on the PC, say with a TI emulator ?
François.
|
Reply to this comment
|
3 December 1998, 16:55 GMT
|
|
Re: Article: "Why Big Assembly Coding Projects Are Possible"
|
Dennis
|
The whole topic of writing programs for the TI-92 is interesting. I don't know that very many people outside of students know about hacking graphing calculators.
The TI-92 isn't a perfect device (in my mind) but it is pretty darn close compared to what else is out there. The Palm Pilot? I don't think so. I have an idea of the perfect portable brick for hacking, telecommunications, and playing games.
It would be great to get some talented programmers with more time on their hands into the TI-92 world. Perhaps more exposure in the "outside" world.
Also, I'm real interested in writing a forth interpreter for the TI-92 - forth is a very small language and would allow people who wouldn't program in assembly another option. Plus there is a great book on it; Starting Forth, by Leo Brodie.
I've probably tried to write about too much in too little space, but I hope some of this makes sense.
Dennis
|
Reply to this comment
|
14 August 1998, 08:35 GMT
|
|
|