Omnimaga
Calculator Community => TI Calculators => TI-BASIC => Topic started by: ACagliano on June 21, 2010, 02:00:58 am
-
This is a BETA release.
This tutorial is almost done. All I have left to do is the optimization, debugging, then the stages of release. Please remember as you read this:
1. My knowledge on the topic is not perfect. Its possible I may have left stuff out (in fact, I'm sure I did). This has been a learning experience for me, as well as an attempt to speak. So, please be nice. This is a beta version.
2. Feel free to edit/remove/add stuff as you feel necessary. Just, please make your changes in a different color than the rest of the text, so I can distinguish them.
Thanks
Please ignore the formatting. It should be pretty readable in .txt.
-
That was Part 1. Here is part 2.
-
cool, I'll check when I have some more time in the middle of the week. Feel free to poke me again if I forget
-
No comments, anyone? I'm very much counting on community feedback to perfect this thing...
-
give me a little time, i'm reading it now.
-
I am starting to read in a minute. So far, though, I noticed something: Your ' characters show up as Õ. For example calculatorÕs. Also plural would be more calculators than calculator's. You might want to fix those in next versions.
Continuing reading as I check the site now
-
Err, this might sound kind of bad, but...
This is very dangerous. There are no errors produced.
Not true. It is not very dangerous if you know what you are doing, and errors *are* produced.
The RAM is relatively unorganized and unprotected.
Not true. It is quite organized.
A fixed part of the calculatorÕs RAM cannot be edited, used or modified.
Yes it can, it's just dangerous.
-TI-84
There is no such thing.
a program designed for use on a TI-83 Plus will not work on a TI-83 or lower
Yes it can.
I don't mean to nitpick, but I'm trying to help you make a good tutorial.
-
Actually, I think the only way to really damage your calc with assembly is if you unlock flash and do a bad manipulation.
Also you might want to specify that the total calc RAM is 32 KB and that the use can only use 24 of it. Right now it seems a bit like you say the entire RAM totals 24 KB.
@SirCmpwn, it depends of the BASIC program. For instance, Illusiat 6 required many changes to run on a 83. Otherwise it didn't sent at all or the code was messed up.
Now on chapter 2
-
Well, there are a few specific tokens to each calc, but most programs can be transferred between any z80 calculator.
-
Yeah it really depends. Illusiat lowercase text/event convos had to be converted to CAPS lock, because they didn't seem to work otherwise. Quite ironic considering the 83 supports lowercases. I guess the ASCII code might be different or something, not sure.
It might also have been because the linking softwares had troubles with the files too. Maybe a direct 83+ to 83 transfer might work.
-
There are many differences between the 83 and 83+, but most basic programs will work on each. :)
-
Ok, got more time to read now. On chapter 3, now.
For planning, I would add a note that if someone is new to the language or never coded a game before, he should start small. Starting too huge without making sure if you can do a project and if it's feasible at all can discourage you.
I would also give some references to memory leaks in the Lbl/Goto part, warning people that misuse of them can cause errors when the program is running for a while (and slow down).
-
I am starting to read in a minute. So far, though, I noticed something: Your ' characters show up as Õ. For example calculatorÕs.
This may be because I started in Word and then converted into .rtf. I'll look into it.
Err, this might sound kind of bad, but...
This is very dangerous. There are no errors produced.
Not true. It is not very dangerous if you know what you are doing, and errors *are* produced.
I'll make that clarification, thanks.
The RAM is relatively unorganized and unprotected.
Not true. It is quite organized.
Do you have any sources that can help me explain its memory structure?
A fixed part of the calculatorÕs RAM cannot be edited, used or modified.
Yes it can, it's just dangerous.
*In TI-Basic, it can't. I'll clarify, though.
-TI-84
There is no such thing.
Ok.
a program designed for use on a TI-83 Plus will not work on a TI-83 or lower
Yes it can.
I'll switch that to: "While some programs written for the TI-83 Plus will run on a TI-83 or lower, there are just as many that experience compatibility issues." How's that?
I don't mean to nitpick, but I'm trying to help you make a good tutorial.
I welcome it. Keep 'em coming.
Actually, I think the only way to really damage your calc with assembly is if you unlock flash and do a bad manipulation.
I'm not going to delve that deep into it.
Also you might want to specify that the total calc RAM is 32 KB and that the use can only use 24 of it. Right now it seems a bit like you say the entire RAM totals 24 KB.
Is there some sort of "map" of the memory I can enclose?
Ok, got more time to read now. On chapter 3, now.
For planning, I would add a note that if someone is new to the language or never coded a game before, he should start small. Starting too huge without making sure if you can do a project and if it's feasible at all can discourage you.
I'll mention that.
I would also give some references to memory leaks in the Lbl/Goto part, warning people that misuse of them can cause errors when the program is running for a while (and slow down).
Can you elaborate a little?
Edit: Also, as a side note, if I have left out any important topics or you want to add something to it, please either post here or email to me at [email protected]. I'm pretty sure I've missed at least one major topic.
-
ASM In 28 days probably have some sort of memory map. Otherwise, WikiTI might have some info. If both doesn't, you could always ask on the forums or on IRC to BrandonW (altough he is not very active lately). Other people with a lot of experience in assembly migth know, too.
As for Lbl/goto, I mean like when you do
Lbl 00
While 1
<code>
If <condition>
Then
<code>
Goto AA
End
End
Lbl AA
<code>
Goto 00
if it goto's to AA enough often, your program will eventually run slower and slower, then you'll get an ERR:MEMORY.
-
Ahh, you mean like the "self replicating code" type of scenario (I use "self-replicating" in the loosest possible manner)?
-
I'm not sure what you mean. The code I posted was actually causing a memory leak. http://tibasicdev.wikidot.com/goto
-
Well, I mean similar to this:
PrgmA
:While 1
:PrgmA
:End
-
That can cause a similar memory leak. It is because the memory is not free'ed up by exiting the loop, because the End instruction is never reached
-
That will produce an error even without the While loop. Since the program calls itself, it goes on forever and you eventually run out of memory.
-
If you have prgmA for example and all there is in the code is prgmA, the memory error even happens within the first second or so x.x
On the TI-81 there was protection against calling programs from themselves. It wouldn't let you do it at all. As for Lbls/Gotos, no mem leak could occur either since While/Repeat/For/Then/Else didn't exist back then :P
-
Ok. I am currently working with a friend on taking all suggestions and finishing the thing. I'm aiming for a Full tutorial, in form Beta Version 2.0 to be released by July 5, 2010, plus or minus a day or two.
-
I've been reading through and i really like the work you've put in so far :) I just wanted to point out that a game doesn't necessarily have to have AI in order to be a game, you can have a game without an opponent.
-
Valid label specifications may be from 1 to 99 and from A to ZZ.
I know this is being nitpicky, but can't you use _theta_?
-
You can also mix numbers and letters, e.g. 3Z, D8. 0 and 00, not to mention 01 to 09, are also valid.
Yeah, it's way too easy to nitpick. Probably a better description is "Valid label specifications are one or two letters, numbers, or both" (and theta is a letter)
-
There are several commands that can be used to create a rock-solid gaming interface. These commands are Input, Prompt, and getKey.
Again, I'm being nitpicky, but it could be more concise. Something like "There are three commands that can be used to create a rock-solid gaming interface: Input, Prompt, and getKey." would be better.
-
Valid label specifications may be from 1 to 99 and from A to ZZ.
I know this is being nitpicky, but can't you use _theta_?
Umm. Good question. Can u. I never got that high, as I started in order.
-
Valid label specifications may be from 1 to 99 and from A to ZZ.
I know this is being nitpicky, but can't you use _theta_?
Umm. Good question. Can u. I never got that high, as I started in order.
You can use theta. :)
-
You can also combine numbers and letters.
-
I am aware that you can. Thank you all. I look forward to providing you with a second beta on schedule.
-
Cool ^^
Will it have more stuff added to it too?
-
I'm already started on the optimizations section.
-
Cool :D
-
Does someone have the time and want to write up a page or so about optimizing games in TI-Basic? You will then be listed as a co-author. I never really optimize, I just code in a pretty "memory-friendly" way from the beginning.
-
I'm not going to make the July 5th deadline for the second beta. But it shouldn't be too late.
-
Aw sorry to hear, also I am afraid I'll have time and motivation to help much :(
-
This reminds me: I really need to read this (and probably print this out). The beta contains everything so far, correct? :)
-
Most major topics, with minor omissions. But, its still missing the final chapters.
-
Once further versions come out I would be happy to go through and edit and all that. At this point that is all I will probably be able to do with the time I have and such, but I will let you know if I can do anything else too. I want to help.
-
By the way, I'm starting to put it online, as promised. I changed some stuff, in particular the section about RAM and archive (because it was simply wrong -- no offense, just that you probably never got around to learning about storage :)).
-
Nice, what is the URL?
-
http://clrhome.co.cc/tutorials/bgd/
And I just did some style changes, so if anything at all looks out of place, please tell me.
-
Looks nice. Make sure to credit ACalgiano, though. :P
-
Yep, listed under his name here (http://clrhome.co.cc/tutorials/).
Should I add a little infobar or something on each tutorial page?
-
I thought maybe at the bottom of each page maybe, for those linking directly to the tutorial itself.