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 - 133794m3r
16
« on: December 20, 2012, 08:45:13 pm »
I heard that Axe uses the last 54bytes of L1 for the A-Z+Theta variables for programs? Is this true? Also how volatile is the L2? It says "low", but, if I'm storing some data in it, it should be safe during the execution of the subroutine right? The whole reason I'm even thinking about using L2 is because of that thing I heard about the last54bytes of L1. I need 768bytes of ram in total for my range encoder(256 for the symbols,512 for the counters), but that's just the "maximum", it could be less than that. But, I don't want to needlessly fill some variables and take up even more ram(already looking at 2-3k at the peak...), so even more ram used seems kinda crazy to me... I'd like to use "safe/free" ram instead of the available ram for the program, as I expect(hope) that people will use the range encoder/decoder for their data compression needs.
17
« on: December 20, 2012, 07:34:23 pm »
I was trying the latest version that you've uploaded on the ti-84plus se, 2.43, and when I go to open the program, it just exits. I don't know why, but yeah. It's not working sadly. I can't wait to use it, since it sounds awesome.
18
« on: December 19, 2012, 04:05:07 pm »
If you look carefully at that line, you use a right parenthesis instead of a right curly brace, hence your problem.
Interestingly enough, I could figure out this exact problem just from looking at the hex error dump. Boy am I glad I added that.
EDIT: Also, Builderboy is absolutely correct about what he mentioned in the post below. Adding the store there will actually introduce issues because of how the increment operator works.
It's also worthy to note that the ++ operation already stores the incremented value back to where it was read from, so the →{C+D}r part is completely unnecessary (and may not even work 100% of the time, since ++ doesn't always return the incremented value)
Going to reply to both of you here. I realized what I had done immediately after going to bed... I was just dicking around in Axe right before sleep trying to get a working range encoder working... seems I've learned a lesson, never post a bug report until I've had a good night of sleep. I realized how bad the thing was after I had stepped away from it. Anyway yeah... sorry about that everyone. I'm the stupid apparently... I'll post the range encoder to the routine thread once it's completed. P.S. Once more, sorry for wasting everyone's time, I should've slept on it/not done something right before bed... Edit: I also seem to need to get used to it being the bastard child of C and BASIC. I'm used to C, and wrote some BASIC, but it seems like I'm intermingling the syntax in areas it shouldn't be. Anyway I'll avoid posting to this thread unless it's something that I've been stuck with for at least 24hrs and looks to be OK. Edit 2: Thanks for the awesome utility, once I get used to it, it should be better for me to write up some quick routines in.
19
« on: December 19, 2012, 03:03:11 am »
OK, so I don't know if this is a bug or needs to be a feature request. But the following code, which _should_ replace 2 bytes(according to my understanding of the axe syntax). But, I have two issues with the program. One is in the post about the string thing. Anyway, I'll be posting example code to do it along with the dump from the error screen for you. First one. :.RC2 :"SILLY STRING"→Str1 :length(Str1)→L :Disp L►Frac :det(L)→S :det(L)→C :0→T :L-1→M :For(A,0,M) :InData({Str1+A},T)→D :If D≠0 :.This line right here is the problem... :.It Also happens at the ^r character, which makes no sense to me. :{C+D}{^r}++→{C+D){^r} :End :Else :{Str1+A}→{S+A} :0→{C}{^r} :End :End :length(S)→L :L-1→M :For(A,0,M) :Disp {S+A}►Frac :Disp i,{C+A}{^r}►Dec :End
It says "invalid token", even though as far as I can tell it should be _completely_ valid in Axe. I've not seen anything saying I can't replace two bytes in ram, as that whole ^r, thing I thought should've fixed it. Anyway below is a screenshot with the data, as I'm way too lazy to make sure I don't accidently type something wrong and it end up being an _entirely_ different thing going on. If you're not able to modify 2 bytes of data at an address in Axe/that shouldn't be allowed to happen anyway in this syntax. I'll go post in the feature request area about it. P.S. I looked over the code again, and it seems like it _should_ be valid. Maybe I'm just being really stupid... Edit 1: I tried moving it down a line, and for _whatever_ reason Axe _hates_ and I mean _hates_ having that all on one line, it seems to work now. Just had to put it on two lines, don't know if that still counts as a bug report or not at the moment.
20
« on: December 18, 2012, 10:50:46 pm »
Crap, SourceCoder didn't post it right... I used it to upload my code. It is the superscript r. I don't know why it didn't post it here... guess it's code isn't right for some reason... That or I don't know how to copy paste right... Woops, seems I figured out what I did... it doesn't have SMF, I accidently clicked "InvisionBB", so that's why... but yeah... woops. It is a superscript. Edit: If anyone can delete this entire thing that'd be great, I'm going to just lock it as I'm the stupid... P.S. Sorry for wasting your time anyonen who read this thing.
21
« on: December 18, 2012, 10:46:44 pm »
Took make it simple, this is the program itself, it is _insanely_ early days, and I was just using a simple string. Just to make sure that I was getting what I got from my c program on my computer. But it is saying "invalid token" at the line I've specified below. I'm trying to modify 2 bytes worth of data at once from the value at the address I specified. I'm going to make this into a subroutine and post it up on the subroutine thread once it's working 100% but it's already not working so well for me.
:.RC2 :"SILLY STRING"→Str1 :length(Str1)→L :Disp L►Frac :det(L)→S :det(L)→C :0→T :L-1→M :For(A,0,M) :InData({Str1+A},T)→D :If D≠0 :{C+D}{^r}++→{C+D){^r} :End :Else :{Str1+A}→{S+A} :0→{C}{^r} :End :End :length(S)→L :L-1→M :For(A,0,M) :Disp {S+A}►Frac :Disp i,{C+A}{^r}►Dec :End Generated by SourceCoder (http://sc.cemetech.net) © 2005-2012 Cemetech (http://www.cemetech.net) Also to say why I'm doing this, instead of just using RLE or puCrunch, I like range coding, and figured it'd be a nice "first usable program" in axe.
Edit: Changed the posted thing to ascii from source coder, to hopefully make it clearer. Apparently I am the stupid today.
|