Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Deep Toaster

Pages: 1 ... 15 16 [17] 18
TI Z80 / Simul v1.2
« on: August 05, 2010, 11:19:20 pm »
After 42 days away from my calculator, I found that the super-optimized (read totally uncommented) program that six weeks ago was supposed to be my Axe contest entry now makes almost no sense to me whatsoever. And so as I attempt to figure out what I was trying to do, here's a quick project announcement:

First of all, it's called Fourplay. This is only a working name, and it'll definitely change ;D

BASICally, it's Pong. It's also Falldown, Keepin, and Avoid (very original, as you can see already ;)). It starts with a very basic version of one of those games (just like thousands of other programs out there). Then it cycles through them randomly at random intervals, and if you lose one, you lose (still like hundreds of others).

Then it gets interesting. After a while, you start playing two games at once, then four (on split screens). Meanwhile, the speed gets faster. It gets really interesting when you start having to use both thumbs and forefingers to play :D

I don't have a link cable, so the only thing I can show you is the back-buffer ;)

Humour and Jokes / The best xkcd ever (NOT a rickroll)!
« on: August 01, 2010, 08:23:05 am »

Other Calculators / Weird Wabbit wariables
« on: July 28, 2010, 10:00:25 am »
I've been using WabbitEmu a lot recently, and I noticed that under Variables, there's are two programs called ! and #, respectively. They don't show up in the program list or in Mem Mgmt/Del..., but when I created a program to list the programs, they showed up, so they apparently do exist.

Anyone know what they are? Are they on every (real) calculator, or is it just something on the emulator ???

Site Feedback and Questions / Something weird going on...
« on: July 25, 2010, 10:49:44 am »
Two weird things I've been noticing about this topic recently. First, the new posts aren't appearing (I use email notifications with text included, and it seems there are at least one or two pages of posts that I can't find anywhere :(), and when I tried adding a reply, it went just as always, but the post didn't show up either in the topic or in the New Posts list (or in OmnomIRC). It doesn't seem to be locked, though.

Also, someone seems to be enjoying rating down posts recently, especially in that topic :-\

TI-BASIC / Nspire lists
« on: July 05, 2010, 11:25:02 pm »
I just started coding Nspire BASIC, and it's been pretty easy since there are many areas where it's similar to TI-83 Plus BASIC. What I couldn't figure out, though, was how to access the elements of a list. I tried the 83+ syntax of parvar(3) where parvar is the list, but it only multiplies the list by three.

I've finished the program I was working on by using a combination of sum( and mid, as in sum(mid(parvar,3,1)), which, as you can probably tell, is really unoptimized, since it's basically taking the sum of a 1-element subset of the list, but it's the only way I've found to get what I want. It doesn't really matter, though, since the Nspire's speed more than accounts for the horrible improvisation, but I'm still wondering: Is there a way to access the list element directly? There aren't many guides on Nspire BASIC out there, and none of them explain lists very well.

So I've decided that I have to try running Ubuntu off of a flash drive (I'm getting tired of having Vista all the time :P). But before I do that, I have to make sure of something, and seeing that many people here use Linux (especially after seeing the Post Your Desktop thread), I decided to ask about it here: If I were to boot Linux from my thumb drive, would it affect my computer's drives in any way (in other words, the next time I turn on the computer, can it boot Windows normally with no change to it)? (Sorry if this seems like an obvious question, but I have no idea with computers :-[)

Okay, so I understand now that compiled ASM programs start with token $BB6D, which is generally copied to address $9D95 for execution (of the program ;)). But what if .org is followed by some other number, like $8000? How does the calculator know where to copy the program?

EDIT: In other words, where does the assembler store the .org number? I tried different .org's in the OTBP assembler, but they all seem to do the same thing.

Axe / Braces
« on: June 26, 2010, 12:41:43 am »
I don't really understand Axe's indirection function yet. {L1} and {L1+12} compile to the same amount of memory, so I'm guessing the compiler substitutes the actual value of L1 or L1+12, but that's all I can figure out. Can anyone answer these questions for me?

1. Can I use a variable inside the braces (e.g. {L1+Z*4+12})?
2. If the answer to #1 is YES, would it be more optimized to do {Z*4+L1+12} instead?
3. Can I use braces within braces (e.g. {L1+{L1+12}+24})?
4. If the answer to #3 is YES, do the nested braces act as parentheses (i.e., it's read as {L1+({L1+12})+24})?


EDIT: Just realized that I should have titled this topic "Braces".

Miscellaneous / Forums (in)activity
« on: June 14, 2010, 07:52:54 pm »
I just noticed a drop in posting activity today. For those of you in high school, is everyone taking finals, or are we already gone on vacation?

Humour and Jokes / [Idea] Necropost Day
« on: June 07, 2010, 07:49:39 pm »
From now on, the _____ of _____ of every year shall be known as Necropost Day. On this day, members are encouraged to post in topics at least one (1) year dormant if possible. If this is not possible, any topic deemed dead by popular consent may be substituted.

Good idea? ;D

General Calculator Help / Just curious...
« on: June 06, 2010, 07:06:59 pm »
I don't really need to know this, since I've given up ASM anyway, but I never understood a certain concept, and it's still haunting me every day. :( So a calculator copies a program, whether it's assembly or BASIC, to $9D95 to call it, right? So what happens when there's a subroutine? How does it run that?

Just curious.

Introduce Yourself! / 42
« on: June 04, 2010, 07:01:53 pm »
Hello, world. I am DEEP THOUGHT. I got my graphing calculator (a TI-83 Plus named Graphite :)) three years ago, but even by then, I had already been programming in TI-BASIC for several months (on my teachers' calculators). I actually joined Omnimaga on May 19th of last year, but I didn't make a single post until a whole year later, which is also about the time I registered on Cemetech and UnitedTI and started my (calculator-related, of course) blog. TI-BASIC was my first programming language, as it probably is for many of the members of this forum, and it taught me the basics of programming. Later, I tried (and failed) to learn TI-ASM, but I've given that up after discovering Axe Parser.

Axe / Storage help?
« on: June 03, 2010, 07:36:06 pm »
I am really new at Axe, and I can't figure out how variable storage works. I have the following code:

Code: [Select]
:!If A

When compiling, Axe gives my an ERR: BAD SYMBOL.

Sorry if this is something obvious, but what did I do wrong?

TI-BASIC / Group memory check
« on: May 31, 2010, 03:40:00 pm »
Not necessarily a BASIC programming routine; just a helpful tip.

Sometimes, when I'm working on an on-calculator project which I occasionally "save" by storing the variables to a group, I need to check whether I already saved the current version. For example, I might be working on project "A", but want to switch to project "B", but don't know whether the group containing project "A" is the newest version or the old version from a few days ago. Instead of deleting and regrouping the files, which might be a complete waste of flash memory if the group was the newest version anyway, I found that, assuming the update changed the amount of RAM a variable takes up, the amount of memory a group takes up is equal to the sum of all its constituent (I like this word :)) variables, plus the length of the name of the group, plus 9. For example, if project "A" is comprised (I like this word also :)) of a program of 2624 bytes, a list of 12 bytes, and a string of 208 bytes, and if group *A takes up 2734 bytes, I'd know that I didn't save the updated variables (since 2624+12+208+1+9≠2734).

TI Z80 / Calcalca
« on: May 28, 2010, 06:36:25 pm »
I'm pretty sure this hasn't really been done before, at least in TI-BASIC, but if something similar exists, please notify me.

Last year, I was absolutely amazed by the simplicity and ingenuity of Google Calculator, especially where you can type in any expression using any units (and an optional unit to convert to), and I decided that that was something someone needed to code for TI calculators. Thus I went on a coding rage, and actually got much of it done within a month, to the point where you could type in something like 7 M * IN INTO CM CM and it would display 1778. Unfortunately, I couldn't figure out division, parentheses, or exponents, so I set it aside and continued with other projects. One day, I really needed to clear some ARC space, so I deleted the group where I had saved it (I called it CALCALCA). I finally started regretting this decision, and will start coding it again, but I really need help with the issues I mentioned above.

This is what I've decided for the program so far:
1. It will use a blank input (Input "",Str1) to input a continuous expression.
2. The resultant string will searched through first for illegal characters.
3. The string is checked a second time, this time for the characters " INTO " (which specifies that the following units say what unit the user wants)
4. First, "(" is added to the beginning, and ")" to the end, just for padding (i.e., "("+Str1+")"→Str1)
5. The string is then evaluated, one character at a time.
    a. Whenever it hits a space, it tests to see whether * follows it.
        i. If there is one, the space is deleted by using sub('s for the two sides of the string.
        ii. If there is not, the space is replaced with )(, which assumes the space meant implied multiplication.

    b. Whenever it hits a letter, a subloop gets the entire combination of letters, which is saved to another string for checking.
        i. The second string is checked against a database of all the units to be supported (see note below).
        ii. If there is a match, that entire section of the main string is replaced with the numerical value of the unit, surrounded by "(" and ")", and the unit's base units are added to a list (see second note below). matrix.
    c. Whenever it hits a number, ".", "*", or "E", it it added directly.
    d. Whenever it hits a "(", the matrix is widened by one, and base units added from then on are added to the new column.
    e. Whenever it hits a ")", it stored the rightmost column into L1 and checks the following character.
        i. If it is a "-1", L1 is inverted.
        ii. If it is a "2", L1 is doubled.
        iii. If it is a "^", another subloop is used to get the entire number following it, and L1 is multiplied accordingly.
        iv. L1 is integrated into the next-rightmost column of the matrix.

6. When this is all done, the program will evaluate the string (with an exp() and (theoretically) appends the final unit.

The database consists of a huge (literally, huge, and might even be larger than the program itself) string containing each supported unit in the format:
Code: [Select]
"   2            Pa           -1    01    00    -2             1.00000000           ..."
    ^            ^            |                  |                  ^                ^
    |            |            +------------------+                  |                |
    |            |                     |                            |                |
Length of     Unit name.    These four numbers are the       How many of the      Continue
unit name.                  base units for the unit, in      unit fit into        onto next
                            the order {length, mass,         the base unit.       unit.
                            current, time}. For example,     Since pascals are
                                Pa=N/(m^2)                   the base for
                                =(kg*m/(s^2))/(m^2)          pressure, this
                                =kg/(s^2)/m                  would be a one
                            so is mass (the positive         (the zeroes are
                            one) divided by time squared     because it needs
                            (the negative two) divided by    to have exactly
                            length (the negative one).       ten characters).

Anyone willing to help me with this program? I currently have several programs in development simulataneously, and I can't finish this myself.
By the way, if anyone can't read the above code, I attached it as a .txt:

Pages: 1 ... 15 16 [17] 18