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

Pages: 1 ... 28 29 [30] 31 32 ... 38
436
The Axe Parser Project / Re: Bug Reports
« 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
Code: [Select]
:.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
The Axe Parser Project / Re: Bug Reports
« 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.
Code: [Select]
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
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
News / Re: New TI-84 Pocket Info, 2.71 MP Returns :(
« 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
News / Re: New TI-84 Pocket Info, 2.71 MP Returns :(
« on: June 14, 2011, 11:24:09 pm »
Can we get a dump of this supposed code?

441
Other Calculators / Re: TI-84 Pocket
« 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
Axe / Re: Routines
« 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
The Axe Parser Project / Re: Features Wishlist
« 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
Axe / Re: Routines
« 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.
Code: [Select]
Asm(210000 DB02 47 E680 280D 2C DB21 E603 2806 2C CB68 2801 2C)->V   . V=HW version. 23 bytes
Spoiler For Assembly Code:
Code: [Select]
ld hl, 0
in a, (2)
ld b, a
and 80h
jr z, done
inc l
in a, (21h)
and 3
jr z, done
inc l
bit 5, b
jr z, done
inc l
done: ; nothing more here!

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.
Code: [Select]
Asm(EF6F4C 2E00 78 FE0D 380A 217884 EFDD50 3A7A84 6F 2600)->V   . V=HW revision. 22 bytes
Spoiler For Assembly Code:
Code: [Select]
BCALL getBaseVer ; You can probably get away with not checking the OS version, as most units in use these days will have 1.13+
ld l, 0
ld a, b
cp 0Dh
jr c, done
ld hl, OP1
BCALL GetSysInfo
ld a, (OP1+2)
ld l, a
done:
ld h, 0 ; done!


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.
Code: [Select]
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.
Code: [Select]
variable1 Asm(4D ED68 2600)->variable2   . Read from port variable1 and store to variable26Asm(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.
Code: [Select]
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.
Code: [Select]
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,
Code: [Select]
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
The Axe Parser Project / Re: Features Wishlist
« 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
Computer Usage and Setup Help / Re: Operating systems questions
« 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
Computer Projects and Ideas / Re: Long Exposure Pictures from Video
« 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
Computer Projects and Ideas / Re: Long Exposure Pictures from Video
« 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
Computer Projects and Ideas / Re: Long Exposure Pictures from Video
« 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
General Calculator Help / Re: Mirage OS and Default 6Mhz Speed
« 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