<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://learn.cemetech.net/index.php?action=history&amp;feed=atom&amp;title=TI-BASIC%3ADiyasmlib</id>
	<title>TI-BASIC:Diyasmlib - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://learn.cemetech.net/index.php?action=history&amp;feed=atom&amp;title=TI-BASIC%3ADiyasmlib"/>
	<link rel="alternate" type="text/html" href="http://learn.cemetech.net/index.php?title=TI-BASIC:Diyasmlib&amp;action=history"/>
	<updated>2026-05-15T17:51:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://learn.cemetech.net/index.php?title=TI-BASIC:Diyasmlib&amp;diff=1352&amp;oldid=prev</id>
		<title>Maintenance script: Automated @@ correction</title>
		<link rel="alternate" type="text/html" href="http://learn.cemetech.net/index.php?title=TI-BASIC:Diyasmlib&amp;diff=1352&amp;oldid=prev"/>
		<updated>2016-02-24T22:10:44Z</updated>

		<summary type="html">&lt;p&gt;Automated @@ correction&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:10, 24 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l101&quot;&gt;Line 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;&amp;lt;last code&amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;&amp;lt;last code&amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;@@ &lt;/del&gt;&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;@@&lt;/del&gt;means you need to count how many bytes are in the routine following. Every two hex digits makes one byte. Every full line in the TI-BASIC editor is 8 bytes since it is 16 chars wide.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;nowiki&amp;gt; &lt;/ins&gt;&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/nowiki&amp;gt;&lt;/ins&gt;means you need to count how many bytes are in the routine following. Every two hex digits makes one byte. Every full line in the TI-BASIC editor is 8 bytes since it is 16 chars wide.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So for example, 3E02D310C9 is 5 bytes. Be careful, this value must be in hexadecimal!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So for example, 3E02D310C9 is 5 bytes. Be careful, this value must be in hexadecimal!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>http://learn.cemetech.net/index.php?title=TI-BASIC:Diyasmlib&amp;diff=774&amp;oldid=prev</id>
		<title>Maintenance script: Initial automated import</title>
		<link rel="alternate" type="text/html" href="http://learn.cemetech.net/index.php?title=TI-BASIC:Diyasmlib&amp;diff=774&amp;oldid=prev"/>
		<updated>2016-02-24T18:17:55Z</updated>

		<summary type="html">&lt;p&gt;Initial automated import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;TI-Basic Developer has a slew of [[TI-BASIC:Hexcodes|assembly hexcodes]] and the list is growing. Though these are often touted as dangerous if used improperly, there are perfectly acceptable ways of combining and creating your own codes &amp;#039;&amp;#039;even if you don&amp;#039;t know assembly&amp;#039;&amp;#039;. This page is focused on how to create your own assembly libraries using the hexcodes on this site.&lt;br /&gt;
&lt;br /&gt;
= Step 1: Select your routines =&lt;br /&gt;
First, figure out which commands you want to include. Some of the commands will &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; work with this method:&lt;br /&gt;
* Sprite&lt;br /&gt;
* Fast Keys&lt;br /&gt;
* Repeat Keys&lt;br /&gt;
These will not work only because they use some constant addresses for routines (basically, it expects a routine to be in a specific place in RAM, so you would need to recalculate the addresses which requires some assembly knowledge).&lt;br /&gt;
= Step 2: Organise. =&lt;br /&gt;
Arrange the commands you selected in some order. We will be accessing them using a number in Ans starting at zero.&lt;br /&gt;
&lt;br /&gt;
= Step 3: Choose a template =&lt;br /&gt;
These are four basic templates that you can use for your library to start. There are more complicated ones mentioned later for the adventurous.&lt;br /&gt;
* If any of your routines require an input in Ans as a number (and none require Ans to be a string):&lt;br /&gt;
&lt;br /&gt;
 1817              ;skips the first chunk of code&lt;br /&gt;
 ED5BAF84&lt;br /&gt;
 7AB3C8&lt;br /&gt;
 1BED53AF84&lt;br /&gt;
 2AB184E7&lt;br /&gt;
 22B184&lt;br /&gt;
 EFEF4AC9&lt;br /&gt;
 &lt;br /&gt;
 EFD74A3DC0&lt;br /&gt;
 EB4E234623&lt;br /&gt;
 ED43AF84&lt;br /&gt;
 22B184&lt;br /&gt;
 CD979D&lt;br /&gt;
&lt;br /&gt;
* If any of the routines require Ans as a string (and none require Ans to be a number), we will need to use Str1 instead:&lt;br /&gt;
&lt;br /&gt;
 1810&lt;br /&gt;
 EFC541&lt;br /&gt;
 21AA00&lt;br /&gt;
 227984&lt;br /&gt;
 D7&lt;br /&gt;
 EB4E234623C9&lt;br /&gt;
 EFD74A&lt;br /&gt;
 EFEF4A&lt;br /&gt;
&lt;br /&gt;
* If any routines require Ans as a number and any routines require Ans as a string:&lt;br /&gt;
&lt;br /&gt;
 1827              ;skips the first chunk of code&lt;br /&gt;
 ED5BAF84&lt;br /&gt;
 7AB3C8&lt;br /&gt;
 1BED53AF84&lt;br /&gt;
 2AB184E7&lt;br /&gt;
 22B184&lt;br /&gt;
 EFEF4AC9&lt;br /&gt;
 EFC541&lt;br /&gt;
 21AA00&lt;br /&gt;
 227984&lt;br /&gt;
 D7&lt;br /&gt;
 EB4E234623C9&lt;br /&gt;
 &lt;br /&gt;
 EFD74A3DC0&lt;br /&gt;
 EB4E234623&lt;br /&gt;
 ED43AF84&lt;br /&gt;
 22B184&lt;br /&gt;
 CD979D&lt;br /&gt;
&lt;br /&gt;
* If Ans is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; an input for any of your routines:&lt;br /&gt;
&lt;br /&gt;
 EFD74AEFEF4A&lt;br /&gt;
&lt;br /&gt;
= Step 4: Replace code. =&lt;br /&gt;
The library needs input in Ans, so naturally there will be a conflict if any of your routines need input in Ans. In this event, if any inputs need to be numbers, we will have to use a two-element list to pass the second argument. This requires you to alter certain parts of code.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case 1:&amp;#039;&amp;#039;&amp;#039; Ans is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; an input for any routines.&lt;br /&gt;
* No replacing is needed! Go to Step 5.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case 2:&amp;#039;&amp;#039;&amp;#039; Ans is a number for some inputs and is never a string&lt;br /&gt;
* Replace all instances of EFD74AEFEF4A with CD979D (This replaces Ans is a number input)&lt;br /&gt;
* Replace all instances of EFDA4AEFEF4A with CD979D (This replaces Y is an input)&lt;br /&gt;
* Replace all instances of EFE04AEFEF4A with CD979D (This replaces X as an input)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case 3:&amp;#039;&amp;#039;&amp;#039; Ans is a &amp;#039;&amp;#039;&amp;#039;string&amp;#039;&amp;#039;&amp;#039; for some inputs and is never a number&lt;br /&gt;
* Replace all instances of EFD74AFE04C0EB4E234623 with CD979D&lt;br /&gt;
* Replace all instances of EFD74AD604C0EB4E234623 with CD979D, if bugs occur, use CD979DAF.&lt;br /&gt;
Both of these codes do almost precisely the same thing.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Case 4:&amp;#039;&amp;#039;&amp;#039; Ans is a number in some commands, and could be a string for some commands:&lt;br /&gt;
* Replace all instances of EFD74AEFEF4A with CD979D&lt;br /&gt;
* Replace all instances of EFDA4AEFEF4A with CD979D&lt;br /&gt;
* Replace all instances of EFE04AEFEF4A with CD979D&lt;br /&gt;
* Replace all instances of EFD74AFE04C0EB4E234623 with CDAE9D&lt;br /&gt;
* Replace all instances of EFD74AD604C0EB4E234623 with CDAE9D&lt;br /&gt;
&lt;br /&gt;
= Step 5: Add your commands. =&lt;br /&gt;
Now that we have the template for the library setup, we can add in the actual commands. To do this, some byte counting will need to be done.&lt;br /&gt;
&lt;br /&gt;
 4704&lt;br /&gt;
 10**&lt;br /&gt;
 &amp;lt;&amp;lt;code0&amp;gt;&amp;gt;&lt;br /&gt;
 10**&lt;br /&gt;
 &amp;lt;&amp;lt;code1&amp;gt;&amp;gt;&lt;br /&gt;
 10**&lt;br /&gt;
 &amp;lt;&amp;lt;code2&amp;gt;&amp;gt;&lt;br /&gt;
 10**&lt;br /&gt;
 &amp;lt;&amp;lt;code3&amp;gt;&amp;gt;&lt;br /&gt;
 10**&lt;br /&gt;
 &amp;lt;&amp;lt;code4&amp;gt;&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 05C0&lt;br /&gt;
 &amp;lt;&amp;lt;last code&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The@@ &amp;#039;&amp;#039;&amp;#039; @@means you need to count how many bytes are in the routine following. Every two hex digits makes one byte. Every full line in the TI-BASIC editor is 8 bytes since it is 16 chars wide.&lt;br /&gt;
So for example, 3E02D310C9 is 5 bytes. Be careful, this value must be in hexadecimal!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now for my own example. I will use &lt;br /&gt;
ScreenOn : 3E03D310C9&lt;br /&gt;
ScreenOff : 3E02D310C9&lt;br /&gt;
ScreenToggle : DB10CB6F3E0220013CD310C9&lt;br /&gt;
QuickKey : 3A3F84EF8C47EFBF4AC9&lt;br /&gt;
LowerCase On : FDCB24DEC9&lt;br /&gt;
Lowercase Off : FDCB249EC9&lt;br /&gt;
Indicator Off : EF7045C9&lt;br /&gt;
Set Contrast : EFD74AEFEF4AC6D8D8D3107B324784C9&lt;br /&gt;
&lt;br /&gt;
Since Set Contrast uses Ans as an input and none of the other routines need Ans as a string, I will use the first starting code:&lt;br /&gt;
&lt;br /&gt;
 1817              ;skips the first chunk of code&lt;br /&gt;
 ED5BAF84&lt;br /&gt;
 7AB3C8&lt;br /&gt;
 1BED53AF84&lt;br /&gt;
 2AB184E7&lt;br /&gt;
 22B184&lt;br /&gt;
 EFEF4AC9&lt;br /&gt;
 &lt;br /&gt;
 EFD74A3DC0&lt;br /&gt;
 EB4E234623&lt;br /&gt;
 ED43AF84&lt;br /&gt;
 22B184&lt;br /&gt;
 CD979D&lt;br /&gt;
&lt;br /&gt;
I will need to modify the code for Set Contrast:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EFD74AEFEF4A&amp;#039;&amp;#039;&amp;#039;C6D8D8D3107B324784C9 turns into:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CD979D&amp;#039;&amp;#039;&amp;#039;C6D8D8D3107B324784C9&lt;br /&gt;
And now I need to add this:&lt;br /&gt;
&lt;br /&gt;
 4704&lt;br /&gt;
 1005&lt;br /&gt;
 3E03D310C9&lt;br /&gt;
 1005&lt;br /&gt;
 3E02D310C9&lt;br /&gt;
 100C        ;0C is hexadecimal for 12&lt;br /&gt;
 DB10CB6F3E0220013CD310C9&lt;br /&gt;
 100A        ;0A is hexadecimal for 10&lt;br /&gt;
 3A3F84EF8C47EFBF4AC9&lt;br /&gt;
 1005&lt;br /&gt;
 FDCB24DEC9&lt;br /&gt;
 1005&lt;br /&gt;
 FDCB249EC9&lt;br /&gt;
 1004&lt;br /&gt;
 EF7045C9&lt;br /&gt;
 05C0&lt;br /&gt;
 CD979DC6D8D8D3107B324784C9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So now here is how to use your program:&lt;br /&gt;
* If your program has any commands that use Ans as a string input, the string must be in Str1 instead&lt;br /&gt;
* If your program has any commands that use Ans as a number input (or X or Y), the inputs are now passed as list elements.&lt;br /&gt;
* If Ans is not needed as a number input by any of the routines, you will simply pass a number to your program&lt;br /&gt;
&lt;br /&gt;
So for example, my program takes a list input. The first element is the command number (I have 8 commands, so use 0 to 7) and the second argument is for any additional inputs the routine may need.&lt;br /&gt;
So SetContrast would be {7,&amp;lt;&amp;lt;contrast&amp;gt;&amp;gt;:Asm(prgmLIB&lt;br /&gt;
If you omit an argument, the program will read it as 0. So {7} passed to my program will set the contrast to zero. &lt;br /&gt;
&lt;br /&gt;
So now you have your own, personalised assembly library! Compress it using [[TI-BASIC:Asmcomp|AsmComp(]]and it is ready for release with your games.&lt;br /&gt;
&lt;br /&gt;
= Alternate Templates =&lt;br /&gt;
If Ans is never a string input for your commands, you can use this code as an alternative. It is bigger, but it has a few perks. Instead of using a one element list, you can simply use the number. For example, {3:Asm(prgmLIB will be read the same as 3:Asm(prgmLIB. Omitted arguments are read as zero, but you can also make your library execute several commands. For example, if 3 and 4 are both separate commands and command 4 has an input, then {3,4,&amp;lt;&amp;lt;arg&amp;gt;&amp;gt;:Asm(prgmLIB will execute the two commands.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:** If a command outputs a value in Ans, make sure it is the last command in the sequence. (otherwise it overwrites the input list!)&lt;br /&gt;
&lt;br /&gt;
 1818&lt;br /&gt;
 ED5BAF847AB3C8&lt;br /&gt;
 1BED53AF842AB184&lt;br /&gt;
 E722B184EFEF4A37C9&lt;br /&gt;
 EF524BD7EB&lt;br /&gt;
 B720050101001806&lt;br /&gt;
 3DC04E234623&lt;br /&gt;
 ED43AF8422B184&lt;br /&gt;
 CDCE9D18FBCD979D3802E1C9[[Category:TI-BASIC]]&lt;br /&gt;
[[Category:TIBD]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>