1171
News / Re: TI-Concours 2013 !
« on: February 01, 2013, 01:41:30 pm »
I might be able to find a friend to do the Skype stuff o.o
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. 1171
News / Re: TI-Concours 2013 !« on: February 01, 2013, 01:41:30 pm »
I might be able to find a friend to do the Skype stuff o.o
1172
ASM / Re: ASM Optimized routines« on: February 01, 2013, 01:39:49 pm »
Awesome, I definitely like rectangel codes! I am glad you preserve the coordinates, too. Here are a few optimisations that I see without examining the code too much.
Code: [Select] ld hl,or_xor To save a byte and a clock cycle, this can simply be:Code: [Select] ld (or_xor),a Code: [Select] rra ;a = x coord / 8 To save 7 clock cycles and 0 bytes:Code: [Select] rra ;a = x coord / 8 Code: [Select] pop hl Since B is already 0 at the start of this code, save a byte and 3 t-states:Code: [Select] pop hl And now you can actually modify that whole routine to be a little faster:Code: [Select] ld d,a You get rid of a push af / pop af in the loop which takes 21 t-states and replace it with a ld a,d which is 4 t-states.This is definitely smaller than my routine. In mine, I make a 12-byte pattern to OR or XOR onto the screen o_o One of the tricks I use is to find the first byte non-zero byte of the pattern: Code: [Select] ;D is the x coordinate, here So for example, if D and 7 = 3, you would get %00010000. 'add a,a' turns that to %00100000 and then dec a → %00011111. And if you are worried about ' D and 7 ' = 0, you get %10000000→%00000000→%11111111 which is correct, or if 'D and 7' returns 7, %00000001→%00000010→%00000001. 1173
News / Re: TI-Concours 2013 !« on: February 01, 2013, 07:58:27 am »
o_o I think I will participate, but if I make it to the finals, I won't be able to participate unless I get a Skype thing (I have no camera or mic).
Still, just in case I do get those in time, I should enter o.o EDIT: I entered in TI-BASIC, z80 Assembly, and 68k BASIC. Also, because I plan to change my name in the future and I have started to use the name IRL, I am using that name instead of my legal name. This way if I do well I can put it on a CV ^-^ 1174
Ash: Phoenix / Re: Optimization help [A:P]« on: February 01, 2013, 07:00:52 am »
For the custom decimal drawing routine, this might work:
Code: [Select] :E8458→A Now A points to the first byte of the decimal expansion. I am not sure if Axe has a better way. In assembly, division routines do double duty to return a remainder as well. I think Axe uses the bcall() for division by 10, so you can probably do:Code: [Select] :E8458→A But then you will need a special case for r3=0. I am actually not sure if these methods are faster or smaller.
1175
TI Z80 / Re: On-Calc Tutorials« on: February 01, 2013, 06:43:33 am »
Thanks! In code, I currently have this but I want to change it:
Code: [Select] MainMenu: Anything labeled as a Menu() will open a new menu when it is selected and anything labeled as Item() well set it as the tutorial to use. I think I will make it a simple list that the user can scroll through and I think that I will change the format, too. This way the menu or item name is part of the data and there can be several organisation options. For example, a command that falls under several categories might be like this:Code: [Select] MainMenu: And now each menu is just an LUT of 3-byte elements. 1 byte is for the Menu/Item and 2 bytes for the pointer to the item data.
1176
TI Z80 / Re: Simulated Keypresses« on: January 31, 2013, 10:00:20 pm »
Thanks! I finished up the main functions for the keyhook, now I need to add in a menu for the app to access the tutorials.
Code: (Current Supported Functions) [Select] /=====================\ I think once I add in the menu the process will be much easier. I am glad I added in the ability to use Text() today because it makes it much more interactive ![]() Code: [Select] ex_helloworld:
1177
Other Calculators / Re: TI-83+/84+ OS glitches compilation thread (all OSes)« on: January 31, 2013, 07:56:31 am »Could someone check the list of bugs on the 1st post and post whatever is missing that was discovered in recent years? It would definitively be nice to complete that list, especially with the MP OSes. Please, only OS bugs, not bugs caused by ASM programs and stuff.Okay, I updated it ![]() Also who thinks that most OS 2.43 and 2.55 MP bugs will still be present in OS 4.0 for the Color 84+?The game. 1178
TI Z80 / Re: Simulated Keypresses« on: January 30, 2013, 07:16:46 pm »
Hehe, I already started an idea on TI-Basic Developer about maybe creating an on-calc BASIC tutorial that steps users through the process of creating programs and how to use each command (like CtlgHelp, but much more involved). I have even started an idea for adding annotations so that you can inform the user what is happening at each step. I estimate that it would take one page to cover all of the commands and we could use a second page for the programming tutorials.
EDIT: I started making an app with some simple scripty commands so that non-assembly programmers can contribute code. I plan to add in menus, but for now it automatically installs the Hello World example walkthrough thingy. The code looks like: Code: [Select] ex_helloworld: It is 65 bytes, by the way.
1179
Other / Re: How do you make 2.5 mm to 2.5 mm link cable?« on: January 30, 2013, 05:37:30 pm »
You probably don't even need to file it down. I can use the 2.5mm headphones just fine to listen to music on the calc. I should look into a better method for making a cable, though. I have a 3.5mm to 3.5mm cable with two adapters for 2.5mm→3.5mm, but the connection gets kind of iffy and it needs to be just right for both lines to connect.
1180
TI Z80 / Re: Simulated Keypresses« on: January 30, 2013, 01:55:36 pm »
Yay, I finished something on my lunch break! Now you can do *[num] to execute a key press [num] times in a row. As well, I fixed the issue with modifiying the string while the edit buffer was open, so you can now use this program to create programs and modify them!
EDIT: I have attached an updated version. The new version allows you to set a delay for reading each key press. Now you can actually see what is going on making this program possibly an excellent tool for on-calc tutorials. 1181
TI Z80 / Re: Simulated Keypresses« on: January 30, 2013, 06:43:56 am »
I need to adjust the program a bit because I realised that I made a silly mistake. (Warning: This is complicated ASMy stuff): Since the keyhook automatically deletes the first element from the string once it is read, I ran into a problem when I made a key sequence to create and edit a program or equation. I realised this last night which is why I tested it and it is because the edit buffer is still open. I think that what I will do is if the edit buffer is open, I will just fill the bytes with 00 and treat those as null bytes, then when the edit buffer is closed, I will delete all the appropriate stuff.
Now, stuff I have been thinking of adding:
![]() 1182
TI Z80 / Re: Simulated Keypresses« on: January 29, 2013, 06:18:17 pm »
Thanks, and yes, there is no delay between keypresses. It can even press non-repeating keys multiple times in a row
![]() 1183
EDIT:22 April 2013
This topic is now renamed Tutor App as the project has evolved. An updated version can be found at this post later in the topic. (original post) On TI-BD, there was an idea for simulating keypresses, so I offered my assembly program to simulate a keypress. But then they wanted to simulate a list of keypresses, so I finally started working on that. Currently, whenever the OS looks for keypresses (not while programs are executing), the hook looks for the hacked string 17 (AA11h) and if it contains data, it will read the numbers one at a time, executing the keypresses. The keypresses are not getKey values. If you have used assembly keycodes (where Enter=9, for example), that is the set you will want to use. To simulate pressing [2nd]+[nobbc], add 56, to simulate [ALPHA]+[nobbc], add 112. So for example, [Graph]=49, [PRGM]=31, [MATH]=47. To open the graph screen, then press [2nd][prgm] and then select 1:ClrDraw, use: Code: [Select] "49,87,9 To do that, then select the A:Pen from the draw menu, add an additional 87,159 (159=112+47). Finally, the arrows are 1=down,2=left,3=right,4=up. Combining all this:Code: [Select] "49,87,9,87,159,9,2,2,2,2,1,1,1,1,3,3,3,3,4,4,4,4 That will select ClrDraw, then Pen, then it will draw you a box ![]() Spoiler For List of Key Codes: Spoiler For How To Make Hacked Strings: 1184
Grammer / Re: Grammer 2-The APP« on: January 29, 2013, 06:42:07 am »
°Z is meant to work with RunPart
![]() Also, I think there were 18 bytes when I updated it, but I found extra code to delete ![]() 1185
Grammer / Re: Grammer 2-The APP« on: January 27, 2013, 07:35:24 am »
I worked on Grammer a little bit yesterday and at some points I had precisely 0 bytes of coding space. However, I removed two undocumented experimental routines for sending/receiving bytes over the I/O port and now there are 69 bytes of coding space available!
As to the updates, I may have broken some things because I made a few more complicated modifications. I am pretty sure that I checked everything that could be affected, but I may have missed something.
Code: [Select] oZ ;o is supposed to be the degree token It also happens that this works for the particle commands as well, so now you can draw particles on back buffers without using complicated techniques. |
|