2701
TI Z80 / Re: asmdream is waking up...
« on: December 28, 2011, 07:03:20 pm »
Awesome o.o You have managed to inspire me to work a little more, too, I am really liking the look of this. The advanced functionality is awesome!
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. 2701
TI Z80 / Re: asmdream is waking up...« on: December 28, 2011, 07:03:20 pm »
Awesome o.o You have managed to inspire me to work a little more, too, I am really liking the look of this. The advanced functionality is awesome!
2702
Grammer / Re: Grammer 2-The APP« on: December 24, 2011, 04:40:52 pm »
I am not finished updating, but it has been a while since the last update so here goes. Since the last version, I have added:
length(<<varname>> length('DataStart,Size,LineNumber[,linebyte inString(Offset,SearchStart,SearchString conj(Duration,'Value conj(Duration,DataLoc,DataSize conj('Time,'Freq Uses the Axe sound routine. conj('Time,DataLoc,Size Uses the Axe sound routine but it reads data directly to save time (intead of converting numbers on the fly). Size is the size of the data in words, not bytes. Some stuff that I haven't mentioned in previous posts: >Frac is used to factor and test for primality. Its outputs are the smallest factor in Ɵ' and the result of Ans divided by that in Ans. So for example, if the output Ɵ' is 1, that means the number is prime. If you did this: Code: [Select] 221>Frac Ans would be 17 and Ɵ' would be 13.I have also added support for running assembly programs with Grammer. So if you want to run an assembly program from the homescreen without Asm( in front of it, you can. Plus, if you do it that way, you can run it from Archive, too. On top of that, I decided to detect ION, MirageOS, and DoorsCS programs. If you try to run those, you will get a custom error message. The real use, though, is that Assembly programmers can now build assembly programs using a special Grammer header and they can use the calls from Grammer. Unfortunately, while there are over 100 available calls, I have only had time to document about half of them. So I hope y'all enjoy the new stuff, I hope you make new proggies, and I will see if I can get any useful assembly programs going. I won't have internet for a little while, so I may not be able to respond immediately, but feel free to ask questions. I feel like I missed something other than the gravity engine buried somewhere in the program... 2703
The Axe Parser Project / Re: Assembly Programmers - Help Axe Optimize!« on: December 24, 2011, 03:58:42 pm »
I finally have an optimisation that might work or be useful >.> Runer112 apparently mentioned optimising the p_FreqOut routine by replacing:
Code: [Select] dec hl with this:Code: [Select] cpd However, the issue was that the frequency would be thrown off as it cut out 8*HL cycles. However, when I was stealing the code for my own evil intentions, I saw this optimisation and thought of that issue and here is my solution:Code: [Select] The way the code is reordered, now, it should only cut out 8*HL/BC cycles which is much less than 8*HL. I think Runer said that it might be up to 1% faster for higher notes and negligible for lower notes.EDIT: Okay, found a problem: It is actually 2 cycles slower in the inside loop, now, so that will just slow the routine by 2*hl, too 2705
TI Z80 / Re: asmdream is waking up...« on: December 24, 2011, 01:25:25 pm »
Good luck with the house keeping
![]() 2706
TI Z80 / Re: asmdream is waking up...« on: December 21, 2011, 10:09:13 am »
Haha, cool! Did it require loading a keycode to 843F or 8445h?
2707
TI Z80 / Re: asmdream is waking up...« on: December 19, 2011, 06:23:38 pm »
Ah, you are looking for EOLs and whatnot? CPIR is definitely faster. To seek the end of a line all you would need to do is ld a,3Fh \ cpir. I am currently rewriting my search routine for a speed boost and to shed some size, too. You can similarly look for the starting byte of your search string and then check the bytes following. (That is what my rewrite looks like, anyway)
Also, I now want to see if it would be easier to load pages into port 7... I just load the code into RAM (like TempSwapArea) if it needs to swap out the flashpage in port 6 and then swap back. 2708
TI Z80 / Re: asmdream is waking up...« on: December 14, 2011, 09:06:37 pm »
Ooh, wanna optimised routine? I made this one to be very fast and you don't need to worry about checking where you are at.
Code: [Select] IncHLMem1 : Pretty much, it will increment hl and once it hits 8000h it will increment the flash page. it will destroy a when it goes to the next flash page, but otherwise it remains intact. If you are reading RAM, A is never destroyed as it will never hit 8000h. Alternatively, if you want to make sure A is never destroyed:Code: [Select] IncHLMem1 :
2709
TI Z80 / Re: asmdream is waking up...« on: December 14, 2011, 08:20:31 pm »
Hmm, I heard that as long as the var is less than a whole flashpage in size, it will not cross boundaries
(The OS won't let it) 2710
TI Z80 / Re: asmdream is waking up...« on: December 14, 2011, 08:06:54 pm »
That looks really cool
![]() 2711
Humour and Jokes / Re: Funny #omnimaga quotes (NSFW)« on: December 14, 2011, 02:21:33 pm »Quote :D Get it? 2712
TI-BASIC / Re: 100 TI-BASIC Optimizing Tips« on: December 14, 2011, 12:57:22 pm »4. If X=1:0→X:If X=0:1→X (I see this a lot) to abs(X-1→XAlso known as not(X→X ![]() 2713
Grammer / Re: Grammer 2-The APP« on: December 14, 2011, 08:42:06 am »
I am not sure if I mentioned this, but I have also added the length( command by request (it was a nice idea). It can do two things:
length(<<varname>> will return the size of a variable (archived or RAM) and it returns the pointer to the data in theta prime length('DataStart,Size,LineNumber[,linebyte This will let you read lines in a program for example. So if A was the pointer to the program and you wanted to read line 7: Code: [Select] length('A,0,7 The default linebyte is 63 (the byte the OS uses for BASIC programs for a newline). The optional argument lets you read data that has a different byte separating them. For example, if you have a space between words and you want to read each word, then you can use 41 as the line byte.Also, in the above code, I use 0 as the size because that is translated to 65536. If you were to use the size of the program, the search would be limited to the program. 2714
TI Z80 / Re: asmdream is waking up...« on: December 13, 2011, 07:30:00 pm »
Ah, so that shouldn't be bad at all
![]() 2715
TI Z80 / Re: asmdream is waking up...« on: December 13, 2011, 07:25:18 pm »![]() |
|