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 ... 101 102 [103] 104 105 ... 108
1531
Other Calculators / Re: 16-Level Grayscale
« on: July 07, 2010, 12:45:57 am »
Would you look at that, he's got one of the mysterious K's.

Anyways, before we say the boot code was changed, i think we should compare it with another 84+BE because I'm not sure I've ever actually done it on a BE. 5 SE's but I'm not sure about a BE.

1532
ASM / Re: Create Groups
« on: July 06, 2010, 09:02:19 pm »
Well during the making of this screenshot, (which took a long time), I found some more errors because I had never actually tried embedding the program in a basic program. But it finally works.

1533
ASM / Re: Create Groups
« on: July 06, 2010, 07:43:39 pm »
Btw just one thing: make sure those routines are safe and that you don't do bad mistakes while using them, since it involves writing to Flash. Accidentally overwriting the OS certificate == bad
No, no, no. I would never write to flash from a basic program lol. That's just scary. I make a group variable in ram and then archive it.

Group2:
Input: Str3 = group name, must be 8 characters, use spaces if it's not 8, Ex: "GROUP___"
         Str4 = programs to group, each name is 8 characters with a + or - prefixing it to show it's type
                + = unprotected/unlocked program
                - = protected/locked program
                Ex: "+A_______+BASIC___-PHOENIX_-GROUP2__"
Then just run group2, or it's hex equivalent, and your group from string 3 will be made with the programs in string 4.

Unsquish:
This program is so you don't have to type in all 500 numbers by hand.
Input: Str1 = program name, must be 8 characters with + or - prefix, Ex: "-GROUP2__"
Output: A program will be made with the same name as the original, except the first letter will be an 'A'.

Then run it and AROUP2 will be made which you can recall the numbers from.


Both of these programs auto overwrite. The group one makes a program and a group but deletes the program, so don't name your group the same as your program. Ex: Your game is call GAME, you go to make a group called GAME, your game just got deleted in the process.

By doing the auto overwrite, I basically eliminated any chance of you accidentally clearing ram, (which would suck.) Also, if either of them error, you won't really know aside from they won't have completed their task.

Edit:
    I am stupid, during my final optimize I made a little error. Fixed now though. Also, I just tested, if you don't have enough memory, thankfully you just get an error memory.

1534
ASM / Re: Create Groups
« on: July 06, 2010, 06:36:32 pm »
Ok, new idea, maybe I can make a group variable in ram and then archive it. That would be much simpler, I just have to figure out how groups work. It is also so anti-TI to have a group in ram.

While it defeats the purpose of having groups (you'd just be duplicating the RAM variables in RAM), you absolutely could have done this using _archiveVar. That's a subroutine of _Arc_Unarc, the latter which has all the checks to make sure you don't try archiving a group or something.


I did use _archiveVar. The only problem was that wiki ti didn't have the inputs right, you have to call _chkFindSym right before you use it.

And ram groups are pretty funny. Since the os expects them to be in archive they get pretty glitchy and tend to clear ram when you ungroup them.

1535
ASM / Re: Create Groups
« on: July 06, 2010, 05:47:30 pm »
Well here it all is. The unsquisher takes the program name in string 1, using the same syntax for programs as the grouper, and converts it into hex code in a program of the same name just with A as its first letter.

"GROUPER2->Str1
Asm(prgmUNSQUISHER

then later
Rcl prgmAROUPER2

1536
ASM / Re: Create Groups
« on: July 06, 2010, 05:13:31 pm »
Sorry for the double post, but I finished the program. This one works way better, but is a lot less cool. Since I believe you are putting this within a celtic program, I will make you an unsquisher so that you send the program to calc, unsquish, and then recall it into your program since i doubt you want to type 400 numbers (200 bytes).

Anyways, the official format for groups is:
2 bytes: size
{
7 bytes: prog vat entry
1-8 bytes: prog name
2 bytes: prog size
0-65k: prog data
}
Repeat the bottom part for each entry.

Then when it's all done, archive it with bcall(_archiveVar).

1537
ASM / Re: Create Groups
« on: July 06, 2010, 03:57:27 pm »
That's ok, I already figured out the format. It just looks like you put the vat entry in front of the program data. Very simple to do.

1538
Other Calculators / Re: 16-Level Grayscale
« on: July 06, 2010, 03:54:30 pm »
rrrrrrr. Found the problem. Ti changed the boot code without updating the number. This version only works on os 2.43. I'll have to update zStart with another flash unlocking routine.

1539
Miscellaneous / Re: Silly things you did as a noob
« on: July 06, 2010, 03:12:45 pm »
One of my first programs was to get revenge on some kid. I wanted to make his calculator never turn off so that his batteries would last a few days. I went through the flash debugger and searched for every single 76h (halt). Then I made a program to replace them all with zeros. Here is the source:

Code: [Select]
     LD     A,00
     LD     ($02A3),A
     LD     ($08E9),A
     LD     ($0AA8),A
     LD     ($3E81),A
     LD     ($3F8F),A
     LD     ($3F53),A
     LD     ($3E68),A
     LD     ($3683),A
     LD     ($362F),A
     LD     ($3629),A
     LD     ($3623),A
     LD     ($361D),A
     LD     ($3533),A
     LD     ($3527),A
     LD     ($347F),A
     LD     ($32F9),A
     LD     ($32F3),A
     LD     ($312B),A
     LD     ($2F51),A
     LD     ($2F14),A
     LD     ($2EBA),A
     LD     ($2E79),A
     LD     ($2E5B),A
     LD     ($2E55),A
     LD     ($2E4F),A
     LD     ($2736),A
     RET
Needless to say, it didn't really work right. Not only did he not have an 83+, or os 1.16. But I don't think you can change the OS that easily.

1540
ASM / Re: Create Groups
« on: July 06, 2010, 02:26:11 pm »
Ok, new idea, maybe I can make a group variable in ram and then archive it. That would be much simpler, I just have to figure out how groups work. It is also so anti-TI to have a group in ram.

1541
ASM / Re: Create Groups
« on: July 06, 2010, 01:50:13 pm »
lol, this is the most hacked up thing I've ever seen.

It will be complete as soon as some one figures out how to normalize from a hook.

Edit:
    + is unprotected - is protected. Turns out that o and p are actually 2 byte tokens

1542
ASM / Re: Create Groups
« on: July 06, 2010, 12:28:58 pm »
Here's how the syntax is coming out.

String 3 is the group name.
String 4 is the programs's names.

The program names are 9 characters long where, first byte is o = unprotected or p = protected, then the name followed by spaces to make it 8 bytes.

So for example ztris and ztetris would be, pZTRIS___pZTETRIS__

1543
ASM / Re: Create Groups
« on: July 06, 2010, 12:00:13 pm »
Ya, it looks like it has to press 3, right, enter, then return.

The last time I tried to normalize from a hook, I called an os specific call, made a temp program, executed it and called my program. Hopefully there is an easier way.

1544
ASM / Re: Create Groups
« on: July 06, 2010, 11:47:11 am »
The name of the group variable.

Does anyone know how to make the calculator normal again when returning from a hook? Like resume operation of a basic program?

1545
ASM / Re: Create Groups
« on: July 06, 2010, 11:26:08 am »
The grouping would be fully automated, but it would not be hidden. Unless you turn the screen off, the user will see the group menu appear, then watch the calculator working on grouping, and then saying complete.

I'll start making it, if what I just said is fine, then you'll be able to group.

One last thing, will this be a program, or will this be an in-line code section.

Edit:
     What string are you putting the name in?

Pages: 1 ... 101 102 [103] 104 105 ... 108