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 - DrDnar
Pages: 1 ... 28 29 [30] 31 32 ... 38
436
« on: June 15, 2011, 12:28:23 am »
No, that's only a small fragment of the program. It would crash the moment I ran the program. That code doesn't get run until you select an item to process.
What I meant is that doing something like {Y1+{Y1+9}+10}r doesn't work. Seriously, create a program whose contents is
:.SOMENAME :{Y1+{Y1+9}+10}r . Don't bother saving the result. It should read a random word and do nothing, right? It crashes.
437
« on: June 15, 2011, 12:03:35 am »
I tried to do a Copy( with a {Y1+offset} in the length argument. Axe compiled it, but the program instantly crashed, regardless of where the statement was. In general, Axe doesn't like nesting {} and doesn't always give an error.
Edit: Hmm, now I can't duplicate the Copy( crashing.
Here's the fragment of code I was writing when I came across the problem. It works fine now, by the way. It does some pretty evil things. Points to anybody who can identify what it's doing. Y1 is supplied as an argument.
Data(24,7,8,8,8,5,5,8,8,0,0,0,2,4,7,0,0,0,0,0,0,0,5,0,1)->Str2 . . . If (Y1+1)r>Asm(EFE542) Disp Str4 Goto UDE End 0->{$8478} Fill($8478,0) {Y1+3}->A A->{$8478} !If {A+Str2) and 4 If {A+Str2} and 8 Goto UDT End Disp "Not supported.",i Goto UDE End Copy(Y1+10,$8479,{Y1+9}) If Asm(EFF14221000038012C) Disp Str3 Goto UDE End {Y1+9}->C {Y1+C+10}r->A {Y1+3}->B C+10->D If {B+Str2} and 2 A*8+A->A $31->{C+$8478} End If B=13 A*2->A End $15->{$8478} AAsm(EF6A4EED53E28922E089) {Y1+3}->{V} Copy(Y1+D,W,A+2) If {B+Str2} and 2 0->{V-C-6} End
438
« on: June 14, 2011, 11:47:10 pm »
I thought it was the OS and not the boot code that could remove Asm()?
Correct. The new model runs the stock 2.55 just fine.
439
« on: June 14, 2011, 11:29:01 pm »
I going to laugh if it's something ridiculously easy to bypass, like a CRC32. I'm also not going to believe a word of this until I see and analyze a dump.
Edit: Have you tried force loading a certificate from an older model and then reinstalling the OS? Or erasing the certificate?
440
« on: June 14, 2011, 11:24:09 pm »
Can we get a dump of this supposed code?
441
« on: June 14, 2011, 06:44:50 pm »
I'm having trouble imaging exactly what they could wish to update. They can't change the OS keys without dividing their OS updates. The only thing I would want changed is to have the USB code for the boot sector on the 32 K sector, not a 64 K sector.
442
« on: June 13, 2011, 04:35:48 pm »
It's not that much shorter if you add in an OS version check. I doubt the getHardwareVersion call exists on pre-1.13.
443
« on: June 12, 2011, 02:48:17 am »
They could be used for using the crystal timers or clock, or doing something ridiculous like powering USB devices or protecting data with an MD5 hash or writing an undeleter in Axe.
444
« on: June 12, 2011, 02:27:32 am »
I do not know if this has been posted before, so here are two different snippets to get the current hardware version. The first checks the hardware ports, and returns 0 for the TI-83+, 1 for the TI-84+SE, 2 for the TI-83+SE, and 3 for the TI-84+SE. So, doing AND 1 returns true for a TI-84+ or TI-84+SE. Asm(210000 DB02 47 E680 280D 2C DB21 E603 2806 2C CB68 2801 2C)->V . V=HW version. 23 bytes This second one uses the rarely-used GetSysInfo bcall. It probably returns 0 for the TI-83+, 1 for the TI-83+SE, 2 for the TI-84+, and 3 for the TI-84+SE, but I cannot verify that. Asm(EF6F4C 2E00 78 FE0D 380A 217884 EFDD50 3A7A84 6F 2600)->V . V=HW revision. 22 bytes And while I'm at it, here's how to read and write to any port. $ = the small capital E used for hex notation in Axe. This first one takes the port to write to in the high byte, and the value to write in the low byte. variable Asm(4C 45 ED41) . Write the value (variable And $FF) to port (variable/256) $1060Asm(4C45ED14) will vertically rotate the screen by half. ($10 is the LCD command port, and $60 is a command that rotates the screen. It's useful for instant scrolling.) This reads from the specified port. variable1 Asm(4D ED68 2600)->variable2 . Read from port variable1 and store to variable2 6Asm(4DED682600)->P will probably make P a number less than 8 if the program is running from the OS, and greater than or equal to 8 if the program is running from a shell. (The code for running nostub programs happens to be on page 7 on 2.43. That can change, of course.) This writes a value to one particular port. value Asm(7D D3nn) . Writes value to port nn. $60Asm(7DD310) will vertically rotate the screen by half. This reads a value from one particular port. Asm(DBnn 6F 2600)->variable . Write the value in port nn to variable. Asm(DB06F62600)->P will probably make P a number less than 8 if the program is running from the OS, and greater than or equal to 8 if the program is running from a shell. You can also inline these. For example, If randAsm(4DED682600)>42 some code End will execute some code if the value in a random port is greater than 42. May cause a hang on TI-84+s if it reads from the wrong USB port :p.
445
« on: June 12, 2011, 01:34:00 am »
Three suggestions: First, there should be a way to get a pointer to a label, allowing you to make jump tables and callbacks. Second, I am bumping the idea of a general-purpose b_call command mentioned a while back. Third, I am also bumping having an official way to exit a program at any time. Edit: Moved some previous contents to routines thread.
446
« on: June 08, 2011, 12:42:48 am »
IIRC, whether or not 16-bit software is supported depends on whether you have the 64-bit or 32-bit version; the 64-bit versions of Windows drop 16-bit support. (The release date of 1999 strongly suggests that RollerCoaster Tycoon is a 32-bit program.) However, as people have previously noted, virtualization and emulation are probably the best ways to support legacy software. If your parents have a copy of Windows 98 lying around, you can install that in a virtual machine for almost guaranteed compatibility.
447
« on: May 16, 2011, 07:03:17 pm »
Here's an example of an actual long exposure for comparison. I took this a few years ago during a dark, cold winter night. It was below freezing out. I set the camera up on a tripod, put it in bulb mode, hit the shutter, and then went inside to warm up. I came back a few minutes later and ended the exposure. This is from a Canon 20D, 365 seconds, f/10, ISO-200. The exposure was a complete random guess.
448
« on: May 16, 2011, 06:50:54 pm »
I think this might be similar to what modern digital cameras do.
Wrong. DSLRs simply leave the sensor active for the duration of the exposure. (Each photon deposits a small amount of charge into the photosite. As the exposure progresses, the charge builds up. At the end, an ADC reads out the charge level.) The main difference between a digital long exposure and film long exposure is film suffers from problems like reciprocity failure and color shifts, whereas digital sensors suffer from noise issues, even at low ISOs. If I had just summed rather than averaged, all the pictures would turn out white.
That's probably because your camera is trying very hard not to make each frame pure black, so it's pumping up the ISO. With manual control, you could fix that.
449
« on: May 16, 2011, 06:30:05 pm »
That's pretty cool, inasmuch as it behaves nothing like a real long exposure. A real long exposure is the result of the sum of each pixel's luminance, not the average. You'd have to add in some code to clip pixels with a luminance below a certain level to deal with noise and compression artifacts. You also need a really dark room. You may also need to manually configure the ISO, f-stop, and shutter speed, or else the automatic exposure program might throw everything off.
450
« on: May 11, 2011, 07:58:34 pm »
You'd have to ask BrandonW about how to specify fast mode in the application header. I think it's an undocumented thing.
Pages: 1 ... 28 29 [30] 31 32 ... 38
|