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 - Goplat

Pages: [1] 2 3 ... 20
Computer Programming / Re: Some Java questions
« on: May 06, 2013, 10:14:30 pm »
Technically, it's not a primitive type, but I still kinda like to think of it as one... Idk

The big difference between a primitive type like int and an object type like String (or Integer) is that the former simply contains data while the latter contains a reference to an object stored somewhere else in memory. In particular, the == operator used on object types will return whether the two references point to the same object rather than whether they point to identical objects. (This is rather noxious for Integer: Java keeps a cache of low-valued Integer objects so == can appear to work for a while, then stop working once the code starts dealing with numbers greater than 127.)

TI-Nspire / Re: TI-Nspire emulator
« on: January 08, 2013, 07:45:27 pm »
I have a question for Goplat: how difficult would nspire_emu be to port, especially to Android? I might do that if the project is feasible.
Porting to another x86 OS like Linux or Mac OS X would require rewriting the GUI, and replacing some of the funky memory management code (I think I do have an unreleased Linux port of the memory code somewhere, but I never ported the GUI)

Since Android runs on ARM instead of x86, porting to Android would also require rewriting all the x86-specific code (asmcode.s, translate.c, and anywhere where I may have used inline assembly). I don't think the fact that it's an ARM CPU being emulated would help much, unfortunately.

Seeing that it's only for calculators with 32MB of memory it would be a bit unhandy to have two of TI's large OSes on it. But the possibility by itself is cool :)

Might it not be possible to store only one version of the OS plus a patch file?  I assume that after removing all the layers of compression & encryption, the bulk of the OS is actually very similar from one version to the next, so the patch file would be much smaller than the complete OS.  Of course this would make it slower to start up, but maybe not by much.
Different OS versions do contain most of the same code/data but at different addresses, which complicates making a patch to turn one into the other. A simpler solution would be to make a patch to 3.2 that adds Ndless to it. This way you wouldn't have to reboot to switch between running Ndless and Lua programs either.

TI-Nspire / Re: TI-Nspire emulator
« on: December 22, 2012, 02:08:28 pm »
OK, it appears that keeping these features in beta has caused some drama (just so people know: the only real reasons behind the lack of public release are fear that I might have accidentally broken something, combined with a big dose of procrastination), so here's a new release.

  • merged some debugging features from ExtendeD's Ncubate (most notably the "gdb stub" which allows attaching an external debugger) - thanks ldebroux
  • fixed two-operand ADD instruction in thumb mode (should not change flags)
  • implement correct behavior of unaligned memory access and jumps
  • implement CAS+ emulation (just enough to get the OS to boot, so I could test dumpers before sending them to critor... this wasn't really intended as a public feature, but someone on the mailing list wanted to see it and now that word has gotten out I can't really remove it now :p)
  • implemented sending files via XMODEM (mainly for CAS+ prototype OSes (1.0.3xx/4xx) - each one needs a different header so /PO= won't cut it - but works for any model)

News / Re: TI opens TI-84 Plus C Silver Edition page
« on: December 14, 2012, 01:05:36 pm »
My guess: plotSScreen has been expanded to 5610 bytes (so it can store the 265x165 graph screen, albeit in monochrome), while saveSScreen and appBackUpScreen have been removed. This would change the available user memory after a RAM clear from 24317 bytes to 21011.

Math and Science / Re: You think you know this riddle...
« on: November 27, 2012, 11:31:02 pm »
That solution seems rather ambiguous. I prefer "Where would the other bird tell me to go?" (and go the opposite way)

This sum doesn't converge, but the average value of a finite sum sum(sin(x),x,0,i) is approximately 0.91524, and 2+(1/2)*cotan(1/2) = 2.91524386... I think that 2+ doesn't really belong.

Also, solving the infinite series the easy way (multiply and cancel) gives cot(1/2)/2 without the 2+:

sin(x) = (e^ix - e^-ix)/2i
sum(sin(x),x,0,inf) = (... - e^-3i - e^-2i - e^-i + 0 + e^i + e^2i + e^3i + ...)/2i
sum(sin(x),x,0,inf)*e^(-i/2) = (... - e^(-5i/2) - e^(-3i/2) + 0 + e^(i/2) + e^(3i/2) + e^(5i/2) + ...)/2i
sum(sin(x),x,0,inf)*e^(i/2)  = (... - e^(-5i/2) - e^(-3i/2) - e^(-i/2) + 0 + e^(3i/2) + e^(5i/2) + ...)/2i
sum(sin(x),x,0,inf)*(e^(-i/2) - e^(i/2)) = (e^(-i/2) + e^(i/2))/2i
sum(sin(x),x,0,inf)*-2i*sin(1/2) = cos(1/2)/i
sum(sin(x),x,0,inf) = cot(1/2)/2

Computer Programming / Re: The most messed up 3D known to man!
« on: November 01, 2012, 07:57:02 pm »
No, the fishbowl effect is not natural. A straight line in 3D space should always be a straight line in a 2D perspective projection - look at a photograph of a building for example.

Fishbowl is caused by computing the ray vectors the wrong way. Right now you've got rays evenly spaced by angle, like the left side of the diagram below. There are two problems with this. The first, which has already been mentioned, is the since the rays are all the same length, the rays at more extreme angles take longer to get to the wall. The more subtle problem is that the rays don't hit the wall at evenly spaced points; the rays on the left and right sides hit the wall further apart than the rays in the center.

The right way to do raycasting is to imagine the game window as a literal window into your world: you want to make the player see what the in-game camera sees. Monitors are flat, not curved; as such the columns on the player's monitor are spaced a constant linear distance apart, not a constant angle apart, and the rays should be computed accordingly, like the right side of the diagram. (Edit: A simple way to compute each ray is to add the camera direction to a multiple of its perpendicular. Ranging the multiplier from -0.5 to +0.5 will produce a 60-degree field of view.)

This program actually has another problem: distance isn't translated to line height properly. The perceived height should be inversely proportional to the distance, i.e. a constant divided by the number of ray iterations, not subtracted.

Miscellaneous / Re: How cheap is your keyboard?
« on: May 31, 2012, 02:34:27 pm »

Not bad. This keyboard was made by Acer in 1995. It has a nice feature that whenever a triple keypress fails, the num lock/caps lock/scroll lock lights all come on. I've figured out that a triple keypress will fail if and only if it forms a right triangle in the following grid:


The grid is probably related to how the keys are wired electronically. So how the sentence comes out doesn't have much to do with the quality of the keyboard really, just the arbitrary arrangement they chose. If they didn't put the left and right shift keys in the same row, then there would be only two keys incompatible with them.

TI-Nspire / kArmTI - TI-Nspire emulator with skin
« on: May 24, 2012, 09:37:38 pm »
nspire_emu.exe /1=boot1.img.tns /MXC /PO=os_cxcas.tcc
You also need to preload the boot2 (/PB=boot2.img.tns).

Miscellaneous / Re: Rick Roll'D gone? :0
« on: May 23, 2012, 01:52:47 pm »
The video is back up now.

Fake copyright takedown requests are very common on Youtube, since they're all processed automatically with nobody verifying that the claimant is who they say they are or that the video actually contains any material copyrighted by them. And unless the video is well known enough to create a public outcry like in this case, getting them to put the video back up (and rescind the "strike" on your account) takes forever.

And somehow California trusts this company enough to let them run self-driving cars on public roads. It won't be long before we start having trolls putting up fake green lights to make the Google cars run people over at intersections.

News / Re: The TI-Nspire CAS+ dumped at last !
« on: May 04, 2012, 12:09:16 pm »
However, I found multiple occurences of code calling stuff with ip directly in the long format, and not the "normal" format, so I guess that's again de-compilation "mistakes" ?
Not a mistake - the actual TI_PN_fm_xfer function (10342018) is called with an integer representing the IP address as its first argument. The port-10002 shell just does not use exact C syntax in all cases - in this case it wants the IP address in dotted quad notation instead of a plain number.

News / Re: The TI-Nspire CAS+ dumped at last !
« on: May 04, 2012, 12:00:10 pm »
BTW, first arg is supposed to be a long (ip2long), so, became 2130706433.
The function that parses that argument (10339db0) reads a token, compares it to the string "addr", returns some variable if equal (probably the IP address of the other side), and tries to parse the token as an IP address otherwise (using the 10345488 function), dots and all. Don't be misled by the C-ish syntax.

News / Re: The TI-Nspire CAS+ dumped at last !
« on: May 02, 2012, 10:28:35 pm »
TI-nspire computer Link 1.0 is using port 10001 to transfer tns files to and from the CAS+ documents folder.

But we've just discovered a 2nd shell on port 10002, which seems to be able to access the whole filesystem.

And this time, it's working on all CAS+. here is an example with a CAS+ running OS 1.0.529:
Code: [Select]
-> 5067229

But as you can see, the syntax is strange.
Could someone help us figuring the commands list and their syntax?
From what I can tell looking at the EVT2 OS, I think the fm_xfer command (syntax: fm_xfer(IP address, operation, destination filename, source filename, callback frequency, callback enabled, options)) initiates a file transfer (connecting to the IP address on port 10001 and requesting or sending a file). Maybe it could be possible to make it connect to the calc's own link handler with something like

fm_xfer(, pn_fm_fput, "/phx/documents/ndless/phoenix.tns", "/phoenix/install/phoenix.img", 5000, 1, 0)

Or alternatively, maybe it would be possible to run a program on the PC to listen on that port for link commands and have it send the file to that.

The TI-Nspire CAS+ P1-EVT2 has a different boot screen than later Nspire: So it probably has different Boot2 and Diags flashing screens too.
I hope you're making sure there is no diags present before testing the diags reflashing combination, as it immediately erases diags before receiving any data (unlike the boot2 reflashing combination, which doesn't erase until the transfer is completed)

News / Re: Turn your Nspire into a real clock!
« on: April 12, 2012, 10:18:15 pm »
Moreover, nClock uses Ndless startup and hook features to save your clock setting. Meaning that your clock setting does survive a reboot!
How does this work? I take it this is not using the RTC, since boot1/boot2 always reset it as far as I know and Ndless cannot prevent that. 900Cxxxx timers + spare SRAM?

Pages: [1] 2 3 ... 20