EFD74AFE04C013131AFE712837
3EAA327984D7D878B7C0
EB4E234623C5
7EE61F77
117884
EDB0
AF12
EFF14278C1D8
EBD306
B728050901090009
4E234623
F5E5C5
3E07D306
EFD74AFE04
EB4E234623
7E
FE71F52003237E0D
E61F77
117884EDB0AF12
EFF1423803EFC64F
F1C8
E1E53A7884
EF704E1313
C1E1F1
EF5480
C9
You will probably need to read what that one does either in the CopyProg topic here or on UTI or on TICalc, but it really is a very useful program...EFD74A3DC0
EB462323
C5EF7A41E5
EFEF4A
EF0445
E1C1
10F1
C9
An example for this one would be using 65+{7,4,11,11,14:Asm(prgmDISP. That will display HELLO on the homesreen. The cool part is that if you change the 65 to 97, it will display the lowercase version :DInput a list and it outputs ASCII on the homescreen:Code: [Select]EFD74A3DC0
An example for this one would be using 65+{7,4,11,11,14:Asm(prgmDISP. That will display HELLO on the homesreen. The cool part is that if you change the 65 to 97, it will display the lowercase version :D
EB462323
C5EF7A41E5
EFEF4A
EF0445
E1C1
10F1
C9
EFD74A
217984
11EC86
7EE60F
470448
2D7E07
3005
0C3EB0121C
2C
2CCDD19D052805CDD19D10F4
C5EF524BD7EFC64F
E1E5EF2743
C11313
21EC86
EDB0
C9
3E30ED6F121CC9
Okay, this code returns the iPart( value of a real number as a string. So if you do -334.67:Asm(prgmR2S, Ans will be the string "-334"
I thought iPart( returns the integer part of a number?Okay, this code returns the iPart( value of a real number as a string. So if you do -334.67:Asm(prgmR2S, Ans will be the string "-334"
Um, that's the Int command. The iPart( command returns the imaginary component of a complex number.
I know that this was released on most of the calc sites, but where can I find the most recent PDF?Oh, sorry, I never saw this post... erm, the latest updated version... is included in this post! :D I only added a few codes and programs, but here is version 1.20
Okay, this code returns the iPart( value of a real number as a string. So if you do -334.67:Asm(prgmR2S, Ans will be the string "-334"
Um, that's the Int command. The iPart( command returns the imaginary component of a complex number.
:Lbl 0
:{1,1,2,3
:Lbl 1
:Ans→L₁
:"{1,3,4,7→Str1
:"0,1
:Asm(SMC
I have an idea: how about a program that allows detection of multiple key presses (like the one in BatLib, I think)? I might find that useful in some BASIC programs.Hmm, as a quick reference to that, you can check here (http://www.ticalc.org/archives/files/fileinfo/425/42546.html) for two versions of what you might be looking for. returns all of the keys being pressed in the form of a 7 element list. This is command 10 (pretty much) in BatLib.
That would be handy, and so would an inline editor.What about a find and replece routine where you could search for str1 in a var and replace it with str2? You can do that with copyprog but an opcode would be faster.A code to change token vars (not programs/appvars or other named vars) is actually not too difficult. I will come up with one shortly and edit this post when I have it finished!
EFD74AFE04C0
1313
21B184EB
EDA0EDA0
3EAA327984D7D878B7C0
1313
21AF84EB
EDA0EDA0
3C327A84D7D878B7C0
EB4E234623
117884
EDB0
AF12
EFF142D878B7C0
EB4E234623
3AAF84
EDB1E0
3AB084
BE20F4
3AB284
772B
3AB184
7723EDA1E018E5
The inputs are:"ERAWRZ→Str2
"Goto 0→Str1
"Goto V
Asm(prgmREPLACE
Since tokens like Str1 and Pic1 are two bytes, you can similarly do something like:"ERAWRZ→Str2
"Pic1→Str1
"Pic7
Asm(prgmREPLACE
The variables have to be in RAM in order to edit them, otherwise the code exits.
1→B
ClrHome
Disp " Goto 1"," Goto 2"," Goto 3 ;Put a space before the numbers :P
Repeat A=105
Output(B,1,"}
Repeat A
getKey→A
End
Output(B,1," ;There is a space there
B+(A=34)-(A=25
If Ans=4 or not(Ans
1+2not(Ans
Ans→B
End
"EB1→Str2
"Goto A→Str1
"Goto "+sub("123",B,1
Asm(prgmB
Goto A
Lbl 1
1
Goto Z
Lbl 2
2
Goto Z
Lbl 3
3
Lbl Z
Pause Ans
You can potentially avoid using the Menu( command to jump to labels if you reallllly don't want to use the built in Menu( command :D
:"UHELLO
:Asm(prgmEXEC
Anyway, the opcode is:EFD74AFE04C0
EB4E234623
117884
EDB0
AF12
FDCB08CE
EF9B4A
FDCB088E
C9
Oh, that is rather easy. It won't work for numbers greater than 9999 but it is EFD74AEFEF4AEBplease give it, it would be useful for some things, like checking RAM
If you want a code to convert values up to 65535, that will require a larger opcode :D
(But I do have it >_>)
Storing to Ans is not a problem, just reading from it. If you want to store the Axe "Ans" to the OS Ans, you would need to do EF9247EF5641EFBF4AOh, that is rather easy. It won't work for numbers greater than 9999 but it is EFD74AEFEF4AEBplease give it, it would be useful for some things, like checking RAM
If you want a code to convert values up to 65535, that will require a larger opcode :D
(But I do have it >_>)
(You wrote a code for this that stores to Ans, maybe you can rewrite a part of it too, like the store to Ans part?
Isnt that replacing EFD74A with EF4AEB?)
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.Thanks!What about your game? Boing?
(Maybe you noticed, I am grabbing system things everywhere on this forums... hinthint?)Spoiler For What am I doing:
How do you mean? Do you mean start drawing a picture from the coordinate? I might be able to come up with one...
EFD74AD604C0
676FEB
4E234623EB
C5D5E51A
EFA342F5
EBEF9445
F1E1D109C1
20020B13
0B1378B120E5
EF9247
EF5641
EFBF4A
C9
SCharLengthEFD74AD604C0
676FEB
4E234623EB
C5D5E51A
EFA342F5
EBEF9445
218D8477EFB44C06004F
F1E1D109C1
20020B13
0B1378B1
20DB
EF9247
EF5641
EFBF4A
C9
EDIT: Changed two cases of ED62 to 676F because it saves 7 cycles. Thanks Runer112 :P7DE6073C473E010F10FDCB2CCB1DCB2CCB1DCB2CCB1D01008009
Using the following codes, you can add them to the end of the above code or if you are using a call you use it after the call:BitOn: B677
BitOff: 2FA677
BitChange:AE77
BitTest: A63D3FED6223
If instead you want to perform BitOn, BitOff, and BitChange and return the previous state of the bit, use these:BitOn: 47A63D3FF578B677F1ED6223
BitOff: 47A63D3FF5782FA677F1ED6223
BitChange:47A63D3FF578AE77F1ED6223
So here is a code to turn on a pixel and return HL as 1 if the pixel was already on or 0 if the pixel was off using Axe code (to make it more clear):Asm(7DE6073C473E010F10FDCB2CCB1DCB2CCB1DCB2CCB1D01008009
Asm(47A63D3FF578B677F1ED6223
This is to create the sprite data, because currently the sprite only exists in the graph screen buffers.Oh, I see, now! Cool!
PS: I have a Great Aunt Zeda. She has a road named after her.^-^
<<Ans points to a var>>
Asm(E5
<<Ans is the bit to edit>>
Asm(7DE6073C473E010F10FDCB2CCB1DCB2CCB1DCB2CCB1DC109
Asm(47A63D3FF578B677F1ED6223
I figured I would upload the latest version of the hex code list :) The only updates are the ones mentioned a few posts back :/
I probably should update it here XD If I get around to it, I will update it on TICalc, too :)
Er, not really :/ These are tools for BASIC programmers, not routines for assembly programmers :)
Auto Fractions:
21FA893E0C77C9
optimises to:
3E0CFD770AC9
Alpha Press Lock
21028A3ED0B677C9
optimises to:
3ED1FD7712C9
This might be hard, but how about writing back a string to a label in the program? Something likeAlmost two years ago, but... I do not have the opcode for this one since the programs (http://ourl.ca/17635) 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.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
To store to Ans and make use of numbers greater than 9999, then you would need a code that looks kind of like this:Blegh, such an inefficient code XD Anyways, these 70 bytes can go in Axe, in-line, using Asm(Code: [Select]7EE5E60FCB3FF53C4F060009EB606822B48423F130061AE60FCDB54E1AE6F007070707CDB54E1B0D79B720EAE111090019ED5BB4847BC9
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.
D5E5CD804EED5BB4841922B484E13E0ACD804ED1C9
EB0608210000290730011910F9C9
Anywho, the OS bcall EFEF4A does not convert numbers >9999, but EF9247 can store numbers up to 65535.
EFD74A2178847EE680F5237ED68011000038284704237E07070707E5626B29291929EBE1E60F835F30011405280D3E80A8280847077E38E32318DBF128077B2F5F7A2F5713EB
It 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.EFD74AFE04C0
EB4E234623
C5E5212C00
09E521CC9D
E7EFF1423803EFC64F
E1EF6A4E
1313
21D59D
012A00EDB0
E1C1
EDB0AF12
FDCB33CE
C9
154F46465343525054
2109807C
EF7B4FC9
83
FDCB09A6
EFD348
EF7E4F
212B80
E7EFF142D8
FDCB08CE
EF9B4A
FDCB088E
AF473CC9
This is my first ever use of OFFSCRPT, so I apologise for anything that I broke D:
In binary, when you write 00 to port 0, it sets the two lines to 1 (HIGH maybe?). Basically, what you write gets inverted.
When you write a 0 to one of the lines, you kind of release it, but when you write a 1 (setting the line LOW?), you kind of lock it there.
So when you have two calculators connected, and one sets the lowest bit to LOW, the other calculator cannot pull it HIGH. But when the line is already HIGH, either or both calculators can bring it LOW.
When both calculators bring a line LOW, it remains LOW until all calculators have "released" it back to high.
A TI-OS-related caveat: at the home screen or in a BASIC program, if the lines are not released, the calc will basically be frozen, so before you return control back to TI-OS, make sure to write a 0 to port 0 (this brings both lines to 1).
Now, given the topic, I would assume that you want a hexcode. There are many ways to interact with the port, but the very basics: 3E0xD300, where x is 0, 1, 2, or 3 will write to the port, and DB00 will read from the port.