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.


Messages - thepenguin77

Pages: 1 ... 13 14 [15] 16 17 ... 108
211
General Calculator Help / Re: TI 84 plus display mirror inverted
« on: October 14, 2012, 04:33:57 pm »
Because TI is an idiot and they left the LCD auto-increment mode in the wrong setting?
It's a bug on TI's latest MathPrint OS. It happens to me all the time. To fix this witouth data loss, turn off your calc, take out one battery (NOT the backup battery, a regular one!), and reinsert it. When you turn your calc back on, the screen driver was reset. Unfortunately, calculating an other fraction flips the screen again. To fix this, Thepenguin77 once releaced a patch. Contact him for it.

It's not TI's fault, it's actually brandonW's (though he should receive no blame at all for it).

The trouble comes from the universal flash unlock exploit. The one that's been passed around for about 5 years actually had a critical flaw in it that overwrote part of the OS. In the past, this write never made a difference, but in 2.55 it does.

Here (link to post) is an "immunization" for 2.55 that makes the OS overwrite do nothing.

And here (link to file) is the new universal unlock that should be used.

212
Other / Re: How do I use make an accelerometer work with the link port?
« on: October 12, 2012, 11:34:08 pm »
First, a little terminology, the plug that plugs into the link port is composed of 3 parts, the sleeve, the ring, and the tip. The sleeve, (the part closest to the wire) is electronic ground (0V). The other two (the ring and the tip) are both data lines. By default these sit at 3V.

Ok, so when you open up calcsys and look at port (00h), you'll notice that it reads 03. It's reading 3 because both the tip and the ring are at 3 volts (the tip is bit 0 and the ring is bit 1).

Now, a pair of headphones is basically a short circuit from both the tip and ring to the sleeve. In normal operation the tip goes to the left earphone and then to ground and the ring goes to the right earphone and then to ground. But, the main point I'm trying to get across here is that the headphones lower both the tip and the ring to 0V. So now, to see what I'm talking about, you can plug a pair of headphones into your calculator and you'll notice that port (00h) now reads 00 (and your calculator is relatively frozen).

The basic idea here is that when disconnected, both the tip and the ring will gives 1's over port (00h). But when you connect them to ground (the sleeve), they will read 0.


Now that that's out of the way, you can start messing around with your accelerometer. The basic idea here is that when your accelerometer is tilted to the left, it will connect the ring to ground and when it is tilted to the right, it will connect the tip to ground (you can swap left/right ring/tip). The way to do this is up to you, but the simplest way would simply be a marble in a tube that connects the circuit when it reaches either end.

Edit:
   In axe, you can read the value of port (00h) by using the "Port" command (ClrTable).

213
TI Z80 / Re: A new way to use subroutines : why not in an app ?
« on: October 09, 2012, 08:04:38 am »
I agree, excellent work.

Just watch out for commands that place themselves at the start of an app (though I'm not sure these exist).


The next step now is to make an app like this that runs a 24KB program that runs fullrene. 40KB of executable code!!! (As opposed to the library approach)

214
Pokémon Purple / Re: Progress 2012 [PP]
« on: October 08, 2012, 09:27:19 pm »
I think you might win the award for most dedicated to a calculator project. I remember this being an ongoing project over at UTI back in 2008 when I first started. And I thought it was dead back then! But here you are 4 years later, (after my complete trip through high school), still working on it.

I congratulate you.

215
Axe / Re: Library in an appvar?
« on: October 08, 2012, 02:05:12 pm »
thanks you all for your responses. and the penguin77, yes that was what I was thinking about but I couldn't think of a decent explanation atm. what if instead the dll was inside of the app instead of it being an external var, would that be possible? or would I need asm for that as well?

You could totally put it inside an app, but it's not going to be as clean as you like. You app would look like this: (asm)
Code: [Select]
;this is a comment
;jp is jump

startOfApp: ;addresses
jp routineA ;4080h
jp routineB ;4083h
jp routineC ;4086h
jp routineD ;4089h
jp routineE ;408Ch

routineA:

;blah

routineB:

;blah

routineC:

;blah

When your axe program runs in ram, it runs in the $8000-$BFFF region (not exactly, but close enough). You can then swap the library app into the $4000-$7FFF region with a bit of asm. Then, to call your subroutines, you would simply call the addresses of their jumps. I'm not exactly sure what the mechanism is in Axe, but I know you can call absolute addresses.

The real trouble would be making that app. Maybe someone better than me with Axe knows how to put a jump table in like that, but I don't. So totally possible in theory, a bit of trouble in practice.

216
Axe / Re: Library in an appvar?
« on: October 08, 2012, 08:57:07 am »
*Yes, assembly programmers can come up with dozens of ways to get around that. None of them will integrate cleanly with Axe.

That honestly stopped me from writing like 5 different examples he could use. But I agree with DrDnar, you'll have to call external programs.



But the real reason I'm posting is to clarify his question. I'm fairly certain he wants to use an appVar like a .dll. Basically, he wants so be able to use runtime libraries to that he can simply call them at will from his program.

So, to answer that question, no, you can't easily do that, and here's why:
  • Where the appvars are stored, they are not executable
  • The appvar would have to be pulled out of flash and stuck in ram (this is similar to what simply running it does)
  • To be able to call the right routine in the appvar would absolutely require asm (and a lot of code counting)


While a runtime library axiom could in theory be created, you're best just to use libraries that go into the compiler (or just copy/paste the code). Also, you'll notice that in the past, all runtime libraries on the 84+ have been apps (xLib, Mirage, Doors, Celtic3) because apps can execute in place.

217
ASM / Re: Getting around the 8000 limit without using apps
« on: October 08, 2012, 08:45:34 am »
Ah i thought we could add it as an example of how to use _FlashToRAM since currently there isn't any, but thanks for the link, i hadn't seen that before :)

Oh, sure, if that's what you're doing, then have fun with it ;D  To be completely honest, when I read your first post, I thought you were going to make a wiki page on how to bypass the 8811 limit.

So I'm saying yes, do it.

218
Axe / Re: Turn off Calc and Exit Program in Axe?
« on: October 07, 2012, 09:07:36 pm »
This sounds like a job for OFFSCRPT.

OFFSCRPT.8xv (appVar) gets copied to $8001 every time the calculator turns off. This catches both 2ND + ON as well as APD. So instead of going to APD, it can just display your screen saver.

Here's what your OFFSCRPT would look like:
Code: [Select]
.org $8001
bit 4, (iy + 8)
ret z ;this was a purposeful turn off


;do whatever you want, here's an example if you want to run an axe program

ld hl, axeName
rst 20h
bcall(_executePrgm)



;when you are done, you have two options

ret ;this will turn the calculator off

bcall(_jForceCMDNoChar) ;this will turn the calculator on

axeName:
.db protProgObj, "AXEPROG", 0


I realize this isn't exactly an axe answer, but, this is what must be done.

219
ASM / Re: Getting around the 8000 limit without using apps
« on: October 07, 2012, 03:06:23 pm »
Oh, this has nothing to do with flashToRam, that wouldn't be the right place to put it. This is more suited for general OS documentation.

And looky here, the page already exists http://wikiti.brandonw.net/index.php?title=83Plus:OS:Variable_Storage_in_the_User_Archive (though without that code example)

220
TI-BASIC / Re: Critical point numbers
« on: October 07, 2012, 03:01:55 pm »
Ok, so there's no good way to do what you're trying to do.

Firstly, two functions you should know about:
nDeriv(expression, variable, value)
solve(expression, variable, guess)

Now, the way these work, is the first one will take the derivative for you, so nDeriv(x^2,x,2) will give you 4, and nDeriv(x^3,x,y) will behave like 3y^2 (though it will be far slower).

solve( is just the functional way to use solver. expression is what is set equal to zero, so if we want x^2 = 0, we would do solve(x^2,x,1) = 0. The trouble with this is that it will only find one of the zeros, and an example of this is x^2 = 4. If we rearrange that we get x^2 - 4 = 0. So solve(x^2,x,1) = 2 and solve(x^2,x,-1) = -2. But the key is you have to guess correctly for both.

Now, the actual code that does your work is going to look like this: solve(nDeriv(expression,variable,Y), Y, guess). Again, to find the critical point of x^2, you would do solve(nDeriv(x^2,x,y),y,1) and this will spit out 0.


Here's the trouble, that worked great for that equation because it only had one critical point. But if it has two, you need to run it twice with different guesses. I don't know how to detect the number of critical points nor decide where to guess, so that one will be up to you.

The best thing I can say for this would be to quickly graph the derivative and then decide how many critical points you think there are. Something like this might do the trick.

nDeriv(equation,x,x) -> Y1
ZoomFit
2->XRes
Trace
Prompt for number of zeros
Prompt for each guess

For(A,1, number of zeros)
solve(Y1, x, guess[A])
End


Edit:
   Sorry, missed your code example, so my post is a little less relevant, but still works.

221
ASM / Re: Getting around the 8000 limit without using apps
« on: October 07, 2012, 02:37:26 pm »
thepenguin77:
I thought maybe we could add the routine you posted here to the wiki, since there are currently no examples. Would that be ok?

Don't add this one, I'll do it. (There are much better ways)

Wait, I misunderstood what was asked.

Edit:
   Ok, I'll make the wikiti page, what do you want?

222
Other Calculators / Re: Dont you hate it when this happens?
« on: October 06, 2012, 07:22:12 pm »
There's a chance it's not all gone. Try running rebuild.8xp on a fresh ON + CLEAR.

If the garbage collect hung, it may not have finished.

Edit:
   And then, after that, get everything off your calculator (or nothing depending on circumstances) and clear all memory to make sure whatever froze it is gone.

223
General Calculator Help / Re: Can calc. gaming permanently crash my calc?
« on: October 06, 2012, 01:42:13 am »
mario 1.2 is, coincidentally, the only thing i've ever seen to cause it unintentionally, so that must have been what happened.
* shmibs wonders how coding that accidentally worked.

Mario 1.2 is, coincidentally, the only thing i've seen to need ALCDFIX recently.

Here's what happens, Mario uses the old naive fastcopy, this means that on calcs with bad screens, it's going to be garbled unless you use ALCDFIX. Now, what usually happens when you send commands too fast is that the LCD driver just can't keep up and doesn't perform all of them which is what causes the garbling.

That's what usually happens. But on rare occasion, the LCD driver will instead perform the wrong command. This is rare since 31/32 writes to the screen simply data rather than commands, but it happens. So what can happen is that the LCD driver executes the wrong command, and that command happens to be test mode.

224
General Calculator Help / Re: Can calc. gaming permanently crash my calc?
« on: October 04, 2012, 11:44:51 pm »
Agreed. Nothing out there can mess up your calculator.

Here are ways to fix any problems that occur (the numbers assume you've done each previous step):
1. Press ON [Fixes 75% of crashes]
2. Remove battery and then reinsert it [Fixes 98% of crashes]
3. Remove battery and then hold DEL while inserting it [Fixes 99% of crashes]
4. Remove battery and reinsert it. Hold CLEAR while pressing ON and then clear all mem. [Fixes 99.9% of crashes]
5. Remove battery and then hold DEL while inserting it, at this point, attach it to your computer and send a new OS over [Fixes 100% of crashes]


Though, to be fair, if you get to step 4, you should talk to us.

225
here is what I get with Wabbitemu set at 68 Hz and 5 shades with this program ;)

That counts, I'm impressed.

Pages: 1 ... 13 14 [15] 16 17 ... 108