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

Pages: 1 ... 99 100 [101] 102 103 ... 317
1501
Grammer / Re: Grammer Grayscale Ghristmas Game
« on: November 29, 2012, 12:22:53 pm »
Wow, those sprites are great o.o Do you mind if I look for a way to speed up your grayscale, though? (it will be a few days, probably, before I can work on that, though).
1) Is that possible to display text on a specified buffer ?
No, there isn't a way to do that, sorry .__. When I need to draw text on another buffer, I do this:
Code: [Select]
Disp 'pi9872     ;or whatever the buffer is
Text(0,0,"Stuff
Disp 'pi9340     ;Or whatever your main buffer is.
2) Is that possible to archive the data program, and run a subroutine inside while it is archived ?
Unfortunately, no, again :[ However, I will point out that you can convert all the hex (sprites?) directly to data and store all the sprites in an appvar. This will save some memory and slightly speed up sprite display.

1502
TI Z80 / Re: [2012 Apocalypse contest] Cataclysm
« on: November 29, 2012, 06:38:27 am »
That looks really cool! Great job, so far :D

1503
TI Z80 / Re: solidFRAME - a 3D engine for the TI-83+ (SE Recommended)
« on: November 29, 2012, 06:33:22 am »
tr1p1ea: You are awesome XD Also, there is almost an identical "Australian English" comment over on TI|BD that was made years ago, so I got a laugh out of it XD

1504
Introduce Yourself! / Re: Hi I'm New
« on: November 28, 2012, 06:52:44 pm »
Hi Mercolify! I was going to suggest KermM's book for TI-BASIC. We also have a bunch of tutorials in the community on this site and others. TIBasicDeveloper has a huge compilation of info on BASIC, as well, but Omnimaga is the Goto place for Axe coding.
* Xeda112358 likes programming jokes >:D

1505
TI Z80 / Re: LabelLine Edit
« on: November 28, 2012, 01:09:30 pm »
Yay, an update. Boba Foxx from TIBD gave the idea of using a factorial token "!" as a prefix in Str1 to tell the program to read a line. The program is now 334 bytes and is able to read/write to lines of code in the program. Now it is super useful >:D

1506
Axe / Re: Way to optimize Line( drawings?
« on: November 28, 2012, 07:57:08 am »
Warning: I'm not an Axe programmer :P
Basically what you can do is store all of the coordinates in order as data. Brackets are one way to do it, but then you have to convert all your coordinates to hex. Instead, use Data(. For example:
Code: [Select]
Data(1,9,25,9,25,1,25,9,3,4,4,4,...→A
Now you can run a For( loop to draw all your lines. I am not sure if this will work, but I think you will get the idea:
Code: [Select]
Data(1,9,25,9,25,1,25,9,3,4,4,4,...)-1→A
For(53      ;number of lines you have, I think
Line({A++},{A++},{A++},{A++})
End
EDIT: If Jacobly doesn't get around to it, this is the even more optimised version he gave on IRC:
Code: [Select]
Data(1,9,25,9,25,1,25,9,3,4,4,4,...)-2→A
For(53      ;number of lines you have, I think
Line({A+2→A}r,/256,{A+2}r,/256
End

1507
TI Z80 / LabelLine Edit
« on: November 27, 2012, 11:14:59 pm »
I got this idea from Deep Thought, I modified it slightly, but I need some input:
This might be hard, but how about writing back a string to a label in the program? Something like

Code: (TI-BASIC) [Select]
:Lbl 0
:{1,1,2,3
:Lbl 1
:Ans→L₁
:"{1,3,4,7→Str1
:"0,1
:Asm(SMC

True SMC in BASIC is something we have yet to see :D
I modified the syntax to be more easily used by BASIC programmers (I hope), so here is what I have:

prgmLBLLINER is "Label Line Read" and will let you read a line at the offset of a label. Str1 contains the name of the label, followed by a colon (sorry). Ans contains the line number to read. If Ans is zero, this program will instead return how many lines there are until the end of the program. So for example:
Code: [Select]
"MD:→Str1
3
Asm(prgmLBLLINER
Pause Ans
Return
Lbl MD
Bulbasaur
Ivysaur
Venusaur
...
This code will return "Venusaur" in Ans.
prgmLBLLINEW is "Label Line Write" and will let you replace a line after a label. The syntax is the same as before, except the data to replace with follows the colon. If there is nothing after the colon, the line is made empty. For example:
Code: [Select]
"MD:!PEANUTS→Str1
3
Asm(prgmLBLLINEW
Return
Lbl MD
Bulbasaur
Ivysaur
Venusaur
...
That code will change the line reading "Venusaur" to "!PEANUTS" Also, setting Ans to zero as the input will return the number of lines left in the program after the label.

So here is my question... Alone, these programs are 204 and 285 bytes respectively. However, they share almost all the same code, so combined it would be a little over 300 bytes. I was thinking that having a decimal part in Ans (like 3.1) could tell the program to read a line, and no decimal part would tell it to overwrite a line. Does this sound like a good syntax?

EDIT: Also, that quote came from my hex opcodes topic. If you want the hex opcodes for these, be prepared to input a long code XD
EDIT2: See below for an updated version!

1508
TI-BASIC / Re: Zeda's Hex Codes
« on: November 27, 2012, 08:24:37 am »
In a future update, I should include:
Edit Lock/Unlock Programs
EFD74AFE04C03CEB4E234623117884121CEDB0AF12EFF142D8EE0377C9

Put the name of the program in Ans, if it exists, this will toggle the lock status of the program. Maybe I should also make a Hide/Unhide code and a short code to toggle between appvars and programs. These two, however, would require that I check for duplicates, so the code would get even more involved.

EDIT:
This might be hard, but how about writing back a string to a label in the program? Something like

Code: (TI-BASIC) [Select]
:Lbl 0
:{1,1,2,3
:Lbl 1
:Ans?L?
:"{1,3,4,7?Str1
:"0,1
:Asm(SMC

True SMC in BASIC is something we have yet to see :D
Almost two years ago, but... I do not have the opcode for this one since the programs are pretty big, opcode-wise, but I finally made it :D I think it is rather snazzy as well. Also, I am not content with this being the final version :P When I do finalise it, I will put it in the hex opcodes list.

EDIT2: This is more for Axe programmers. I looked back at this post and felt that I should update it. I created a much better routine for Grammer and BatLib that I have adapted for Axe. It is now much faster and it works with relative addresses. Also, it recognises negative numbers:
To store to Ans and make use of numbers greater than 9999, then you would need a code that looks kind of like this:
Code: [Select]
7EE5E60FCB3FF53C4F060009EB606822B48423F130061AE60FCDB54E1AE6F007070707CDB54E1B0D79B720EAE111090019ED5BB4847BC9
D5E5CD804EED5BB4841922B484E13E0ACD804ED1C9
EB0608210000290730011910F9C9
Do not use that because that only works in a very specific context, but that is what the code looks like in BatLib. I am not sure how to translate that to Axe because it uses calls.

Anywho, the OS bcall EFEF4A does not convert numbers >9999, but EF9247 can store numbers up to 65535.
Blegh, such an inefficient code XD Anyways, these 70 bytes can go in Axe, in-line, using Asm(

Code: [Select]
EFD74A2178847EE680F5237ED68011000038284704237E07070707E5626B29291929EBE1E60F835F30011405280D3E80A8280847077E38E32318DBF128077B2F5F7A2F5713EBIt is a bit big, but it works. Plus, it can be easily adapted further to make it easy to read list elements, so if you want to pass a list to your Axe program (for a library, for example), you can.

1509
TI Z80 / Re: CopyProg
« on: November 26, 2012, 06:40:16 pm »
Well, I found a few bugs and I've no clue how they got there since I specifically addressed them in the last update. Anyways, GetName was almost completely broken. It wasn't returning names properly in many cases and it was returning the wrong sizes for archived vars (I know how that bug snuck in... I optimised something and forgot to update something else). Anyways, I decided to fix the command and then update it a bit to make things worthwhile :)

  • GetName now returns a decimal value in theta of precisely .1 if the program is archived.
  • GetName now returns custom list names in a syntax BASIC users are more familiar with
  • CopyProg (the command) now accepts the little L for custom lists in its name syntax.


Unfortunately, the cost of this was 52 bytes of code in all, bringing the total to 759 bytes :[ On the other hand, it makes things much easier/better when using the program for a shell >.>

1510
TI Z80 / Re: [2012 Apocalypse contest] Cataclysm
« on: November 26, 2012, 04:34:00 pm »
Nice text and that isometric map is awesome! I like the door opening so much, too O_O

1511
News / Re: 2012 Apocalypse TI-83+/TI-84+ Programming Contest
« on: November 26, 2012, 11:39:47 am »
I won't have time to be on a team for a while, but I can offer some random help every now and then.

1512
General Calculator Help / Re: Tutorial for TI-89 basic?
« on: November 26, 2012, 08:44:07 am »
Make some picture, then play with cycle :D It has been a while since I did that, so I wonder if it can manage grayscale >.>

1513
General Calculator Help / Re: Tutorial for TI-89 basic?
« on: November 26, 2012, 08:00:19 am »
^Check Tifreakware, they're supposed to be the tutorial king. ;D Also, a pdf of TI's official manual might not be a bad idea if you don't own a hard copy.

This is definitely a must :D

1514
News / Re: TI-84 Plus C: new photos reveal more than 3MB archive space
« on: November 25, 2012, 08:29:06 pm »
That looks pretty gorgeous o.o

1515
General Calculator Help / Re: Tutorial for TI-89 basic?
« on: November 25, 2012, 08:20:09 pm »
I am not sure where a good one can be found, but if you want to experiment in the meantime, try TIBasicDeveloper and remember that there are specific types of "End" like EndIf, EndWhile, EndFor. Further, you can use vars like this: 32→abc. And you need to close parentheses on the 89, but it doesn't matter since the programs get pre-crunched when they are run (basically, it converts the code to a different format, usually cutting down on size. Oh, and lists are read like list1[element] instead of using ()

EDIT: To add to DrDnar's post: And sprites!

Pages: 1 ... 99 100 [101] 102 103 ... 317