ticalc.org
Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Community :: Articles :: Why Big Assembly Coding Projects Are Possible
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

Re: Re: Why Big Assembly Coding Projects Are Possible
Jonathan Roush

ok, you do have some good ideas, but I am only commenting on the engines idea, so don't get me wrong. First, if everyone used the same engines, all we would have are a lot of games that are clones of each other with a little diffrent art and story. But that would speed up coding for a lot of people, the real benifet would be to help less experinced programers (like me) to learn to code. but we already have something like that, have you looked at the sorce code sections of the archives??

Reply to this comment    31 July 1998, 02:00 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: Re: Why Big Assembly Coding Projects Are Possible
Daniel Plaisted
(Web Page)

Well, I don't know how thrilled I would be to read a book on the calculator, but it could be done. NOONE would want to use the built in editor, because of the horrendously slow scrolling, but something like Xetal would work just fine. And it wouldn't have to be an ascii version, you could compress it with hufflib, which with text I assume deflates it around 50%.

Reply to this comment    30 July 1998, 16:09 GMT


Re: Re: Why Big Assembly Coding Projects Are Possible
Chris
(Web Page)

I suppose I should also clarify that the book is Alan Clements, "Microprocessor Systems Design: 68000 Hardware, Software, and Interfacing" 3d ed. Boston: PWS Publishing Company, 1997. I mention this because I bet the book is cheaper than trying to buy a cross-compiler direct from the company. Be sure to get the third edition; the first & second don't have the CD-ROM.
cb

Reply to this comment    31 July 1998, 03:57 GMT


Re: cross-compiler for C++ to M68K
simon adkins

No need to buy a book if you have the GNU gcc or g++ compiler. The gcc compiler can be toggled to write machine code to quite a few of the Motorola 68K series chips. Check out the man page for gcc.

Reply to this comment    11 August 1998, 02:02 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


Re: Re: Article: Why Big Assembly Coding Projects Are Possible
beckers999  Account Info

I've tried to make a Windos-like BASIC program (with many functions) but it's impossible to run it unless your RAM is empty. I think the best way to make a very big ASM program is to convert it to an application.

Reply to this comment    17 December 2005, 17:29 GMT

  Copyright © 1996-2010, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer