<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wikiti.brandonw.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wikiti.brandonw.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Premchai21</id>
		<title>WikiTI - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wikiti.brandonw.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Premchai21"/>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Special:Contributions/Premchai21"/>
		<updated>2026-04-05T20:44:55Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=User_talk:Brandonw</id>
		<title>User talk:Brandonw</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=User_talk:Brandonw"/>
				<updated>2006-09-10T20:05:26Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: Long strings of minor edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Long strings of minor edits==&lt;br /&gt;
&lt;br /&gt;
Hello.  I notice you made a very long string of minor edits to [[83Plus:Software:msd8x]]; perhaps you could use the preview function more next time to avoid cluttering the recent-changes page?  Thanks.  --[[User:Premchai21|Premchai21]] 13:05, 10 September 2006 (PDT)&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems</id>
		<title>Programming under Unix-like operating systems</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems"/>
				<updated>2006-08-06T06:04:56Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: minor clarification of formats /* GNU as */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are the different tools at your disposal:&lt;br /&gt;
&lt;br /&gt;
==Emulators==&lt;br /&gt;
* TilEm [http://lpg.ticalc.org/prj_tilem/]&lt;br /&gt;
* VTI (with Wine)&lt;br /&gt;
&lt;br /&gt;
==Syntax highlighting==&lt;br /&gt;
Several editors have native or extensional support for editing Z80 assembly code with syntax highlighting:&lt;br /&gt;
* Kwrite and Kate can be made to syntax-highlight Z80 assembly with [http://guillaume.h.ifrance.com/ti83/z80assembler.xml the appropriate definition file].  The file can be placed in /usr/share/apps/katepart/syntax to install it.&lt;br /&gt;
* SciTE and Emacs both have native modes for assembly code.  For Emacs, one must make sure to turn on Font Lock mode as well.&lt;br /&gt;
* The [http://www.revsoft.org/phpBB2/viewforum.php?f=25 Z80 Assembly IDE] has simple syntax highlighting built-in.&lt;br /&gt;
* Users of Vim and WLA DX can use [http://sigma.unitedti.org/files/misc/z80.vim.bz2 this syntax file].&lt;br /&gt;
&lt;br /&gt;
== Assembling ==&lt;br /&gt;
&lt;br /&gt;
=== SPASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Spencer Putt&lt;br /&gt;
&lt;br /&gt;
'''Home Page''': [http://www.revsoft.org/phpBB2/viewforum.php?f=21 http://www.revsoft.org/phpBB2/viewforum.php?f=21]&lt;br /&gt;
&lt;br /&gt;
SPASM is a portable Z80 assembler released under the GPL.  Its distinguishing features are extremely fast assembly and powerful macro support.  The output is only available in binary form, however with the use of [http://www.revsoft.org/phpBB2/viewforum.php?f=23 Wabbitsign], written by James Montelongo and Spencer Putt, it can easily be converted to any desired program type.&lt;br /&gt;
&lt;br /&gt;
 assembler foo.asm foo.bin&lt;br /&gt;
 wabbit foo.bin foo.8xp&lt;br /&gt;
&lt;br /&gt;
=== tpasm ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Todd Squires&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.sqrt.com/ http://www.sqrt.com/]&lt;br /&gt;
&lt;br /&gt;
tpasm is a Free (GPL) assembler which supports the Z80 as well as the 6805, 6809, 68HC11, 6502, Sunplus, 8051, PIC, and AVR.  It uses syntax very similar to ZMASM.&lt;br /&gt;
&lt;br /&gt;
tpasm 1.2 does not support binary file output, but you can use ''objcopy'' (from the GNU binutils package) to convert its Intel Hex output into binary; e.g.&lt;br /&gt;
&lt;br /&gt;
 tpasm foo.asm -o intel foo.hex -l foo.lst&lt;br /&gt;
 objcopy -I ihex foo.hex -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
=== ASxxxx ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Alan R. Baldwin&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://shop-pdp.kent.edu/ashtml/asxxxx.htm http://shop-pdp.kent.edu/ashtml/asxxxx.htm]&lt;br /&gt;
&lt;br /&gt;
ASxxxx is a freeware assembler which supports the Z80 along with a large variety of other processors.  It more closely resembles a modern PC assembler than a typical Z80 assembler, as it assembles each file into a relocatable object format which can then be linked with other files to produce the complete program.  The linking is done by a separate program called ASlink (included with the package.)&lt;br /&gt;
&lt;br /&gt;
To assemble and link a simple program you might do something like&lt;br /&gt;
&lt;br /&gt;
 asz80 -plogff foo.asm&lt;br /&gt;
 aslink -u -b _CODE=0x9D95 -i foo.ihx foo.rel&lt;br /&gt;
 objcopy -I ihex foo.ihx -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
Note that the syntax is rather different from that of most Z80 assemblers.  The important differences are&lt;br /&gt;
* Immediate values are marked with #.&lt;br /&gt;
* Indexed memory access is written as N(ix) rather than (ix+N).&lt;br /&gt;
* Constants are written differently: 0xAA, 0hAA, or $$AA for hexadecimal; 0o252, 0q252, or $&amp;amp;252 for octal; 0b10101010 or $%10101010 for binary.&lt;br /&gt;
&lt;br /&gt;
For example,&lt;br /&gt;
 ld hl,#str_hello&lt;br /&gt;
 add a,3(ix)&lt;br /&gt;
 xor #0x0f&lt;br /&gt;
&lt;br /&gt;
There is also a modified version of ASxxxx distributed with the [http://sdcc.sf.net/ Small Device C Compiler].  This version is, if anything, more confusing to use due to the poorly-documented changes made by the SDCC team.&lt;br /&gt;
&lt;br /&gt;
=== TASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Thomas N. Anderson&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://home.comcast.net/~tasm/ http://home.comcast.net/~tasm/]&lt;br /&gt;
&lt;br /&gt;
TASM is a shareware assembler which also supports a variety of processors.&lt;br /&gt;
&lt;br /&gt;
There are several ways that you can use tasm under Linux:&lt;br /&gt;
* The TASM 3.1 for Linux shareware release is still in the wild.  To use this you will need to enable &amp;quot;a.out&amp;quot; support in your kernel (it may be available as the module ''binfmt_aout''.)  You will also need to obtain the ancient Linux libc version 4 (''not'' glibc) which can be found [http://ftp.linux.org.uk/pub/linux/libc/ here].&lt;br /&gt;
* You can use TASM 3.2 for Windows with [http://www.winehq.com Wine].&lt;br /&gt;
* You can pay the $40 and compile it yourself on the platform of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Brass ===&lt;br /&gt;
'''Author''': benryves&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://benryves.com/bin/brass/ http://benryves.com/bin/brass/]&lt;br /&gt;
&lt;br /&gt;
Brass runs under Linux thanks to Mono.&lt;br /&gt;
&lt;br /&gt;
=== WLA DX ===&lt;br /&gt;
'''Author''': Ville Helin&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://users.tkk.fi/~vhelin/wla.html http://users.tkk.fi/~vhelin/wla.html]&lt;br /&gt;
&lt;br /&gt;
WLA DX is another open-source (GNU GPL) cross-assembler with a primary focus on targeting video game consoles. It is a high-powered assembler with a wide variety of features such as, e.g. separate compilation, POSIX-like file I/O, and code sectioning. However it is cumbersome when assembling small projects, and semantics are unorthodox compared to other assemblers. (~ is the XOR operator, macro arguments are passed by value, etc.) Furthermore, development appears to have ceased since January 2006.&lt;br /&gt;
&lt;br /&gt;
WLA DX has had an influence in the development of Brass.&lt;br /&gt;
&lt;br /&gt;
=== Pasmo ===&lt;br /&gt;
'''Author''': Juli&amp;amp;aacute;n Albo&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.arrakis.es/~ninsesabe/pasmo/ http://www.arrakis.es/~ninsesabe/pasmo/]&lt;br /&gt;
&lt;br /&gt;
Pasmo is another standalone Z80 cross-assembler with basic macro support, but without the ability to generate&lt;br /&gt;
relocatable object files.  It is licensed under the GNU GPL, and exists as the package &amp;lt;tt&amp;gt;pasmo&amp;lt;/tt&amp;gt; in the Debian pool.&lt;br /&gt;
&lt;br /&gt;
=== z80asm ===&lt;br /&gt;
'''Author''': Bas Wijnen&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://savannah.nongnu.org/projects/z80asm/ http://savannah.nongnu.org/projects/z80asm/]&lt;br /&gt;
&lt;br /&gt;
z80asm is a standalone Z80 cross-assembler similar in nature to Pasmo, in that it has macro support but cannot generate relocatable object files.  It too is licensed under the GNU GPL (version 2 or later), and exists as the package &amp;lt;tt&amp;gt;z80asm&amp;lt;/tt&amp;gt; in the Debian pool.&lt;br /&gt;
&lt;br /&gt;
=== GNU as ===&lt;br /&gt;
'''Author''': the GNU binutils team&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.gnu.org/software/binutils/ http://www.gnu.org/software/binutils/]&lt;br /&gt;
&lt;br /&gt;
Starting from version 2.17, the GNU assembler, part of the binutils package, is capable of cross-assembling Z80 code when configured for it at compile-time, such as with &amp;lt;tt&amp;gt;--target=z80-unknown-coff&amp;lt;/tt&amp;gt;.  binutils includes a powerful assembler and linker both, along with various utilities for handling object files, such as objcopy and objdump; for Z80, COFF is used for relocatable objects, with raw binary and Intel hex formats also supported.  While this is probably one of the more powerful tools in the list for Z80 development, it also requires more work to start with, as the traditional way to get a cross-assembling binutils is to compile it oneself.  Being a GNU package, binutils is naturally licensed under the GNU GPL (version 2 or later).  Prepackaged binary versions of binutils are very common, but usually do not have cross-assembling capability.&lt;br /&gt;
&lt;br /&gt;
==Sending programs to the calc==&lt;br /&gt;
* TILP&lt;br /&gt;
* titranz : commandline tool, only works for TI-83/TI-83+&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems</id>
		<title>Programming under Unix-like operating systems</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems"/>
				<updated>2006-08-06T06:03:01Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: Add Pasmo, z80asm, and binutils /* Assembling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are the different tools at your disposal:&lt;br /&gt;
&lt;br /&gt;
==Emulators==&lt;br /&gt;
* TilEm [http://lpg.ticalc.org/prj_tilem/]&lt;br /&gt;
* VTI (with Wine)&lt;br /&gt;
&lt;br /&gt;
==Syntax highlighting==&lt;br /&gt;
Several editors have native or extensional support for editing Z80 assembly code with syntax highlighting:&lt;br /&gt;
* Kwrite and Kate can be made to syntax-highlight Z80 assembly with [http://guillaume.h.ifrance.com/ti83/z80assembler.xml the appropriate definition file].  The file can be placed in /usr/share/apps/katepart/syntax to install it.&lt;br /&gt;
* SciTE and Emacs both have native modes for assembly code.  For Emacs, one must make sure to turn on Font Lock mode as well.&lt;br /&gt;
* The [http://www.revsoft.org/phpBB2/viewforum.php?f=25 Z80 Assembly IDE] has simple syntax highlighting built-in.&lt;br /&gt;
* Users of Vim and WLA DX can use [http://sigma.unitedti.org/files/misc/z80.vim.bz2 this syntax file].&lt;br /&gt;
&lt;br /&gt;
== Assembling ==&lt;br /&gt;
&lt;br /&gt;
=== SPASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Spencer Putt&lt;br /&gt;
&lt;br /&gt;
'''Home Page''': [http://www.revsoft.org/phpBB2/viewforum.php?f=21 http://www.revsoft.org/phpBB2/viewforum.php?f=21]&lt;br /&gt;
&lt;br /&gt;
SPASM is a portable Z80 assembler released under the GPL.  Its distinguishing features are extremely fast assembly and powerful macro support.  The output is only available in binary form, however with the use of [http://www.revsoft.org/phpBB2/viewforum.php?f=23 Wabbitsign], written by James Montelongo and Spencer Putt, it can easily be converted to any desired program type.&lt;br /&gt;
&lt;br /&gt;
 assembler foo.asm foo.bin&lt;br /&gt;
 wabbit foo.bin foo.8xp&lt;br /&gt;
&lt;br /&gt;
=== tpasm ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Todd Squires&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.sqrt.com/ http://www.sqrt.com/]&lt;br /&gt;
&lt;br /&gt;
tpasm is a Free (GPL) assembler which supports the Z80 as well as the 6805, 6809, 68HC11, 6502, Sunplus, 8051, PIC, and AVR.  It uses syntax very similar to ZMASM.&lt;br /&gt;
&lt;br /&gt;
tpasm 1.2 does not support binary file output, but you can use ''objcopy'' (from the GNU binutils package) to convert its Intel Hex output into binary; e.g.&lt;br /&gt;
&lt;br /&gt;
 tpasm foo.asm -o intel foo.hex -l foo.lst&lt;br /&gt;
 objcopy -I ihex foo.hex -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
=== ASxxxx ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Alan R. Baldwin&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://shop-pdp.kent.edu/ashtml/asxxxx.htm http://shop-pdp.kent.edu/ashtml/asxxxx.htm]&lt;br /&gt;
&lt;br /&gt;
ASxxxx is a freeware assembler which supports the Z80 along with a large variety of other processors.  It more closely resembles a modern PC assembler than a typical Z80 assembler, as it assembles each file into a relocatable object format which can then be linked with other files to produce the complete program.  The linking is done by a separate program called ASlink (included with the package.)&lt;br /&gt;
&lt;br /&gt;
To assemble and link a simple program you might do something like&lt;br /&gt;
&lt;br /&gt;
 asz80 -plogff foo.asm&lt;br /&gt;
 aslink -u -b _CODE=0x9D95 -i foo.ihx foo.rel&lt;br /&gt;
 objcopy -I ihex foo.ihx -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
Note that the syntax is rather different from that of most Z80 assemblers.  The important differences are&lt;br /&gt;
* Immediate values are marked with #.&lt;br /&gt;
* Indexed memory access is written as N(ix) rather than (ix+N).&lt;br /&gt;
* Constants are written differently: 0xAA, 0hAA, or $$AA for hexadecimal; 0o252, 0q252, or $&amp;amp;252 for octal; 0b10101010 or $%10101010 for binary.&lt;br /&gt;
&lt;br /&gt;
For example,&lt;br /&gt;
 ld hl,#str_hello&lt;br /&gt;
 add a,3(ix)&lt;br /&gt;
 xor #0x0f&lt;br /&gt;
&lt;br /&gt;
There is also a modified version of ASxxxx distributed with the [http://sdcc.sf.net/ Small Device C Compiler].  This version is, if anything, more confusing to use due to the poorly-documented changes made by the SDCC team.&lt;br /&gt;
&lt;br /&gt;
=== TASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Thomas N. Anderson&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://home.comcast.net/~tasm/ http://home.comcast.net/~tasm/]&lt;br /&gt;
&lt;br /&gt;
TASM is a shareware assembler which also supports a variety of processors.&lt;br /&gt;
&lt;br /&gt;
There are several ways that you can use tasm under Linux:&lt;br /&gt;
* The TASM 3.1 for Linux shareware release is still in the wild.  To use this you will need to enable &amp;quot;a.out&amp;quot; support in your kernel (it may be available as the module ''binfmt_aout''.)  You will also need to obtain the ancient Linux libc version 4 (''not'' glibc) which can be found [http://ftp.linux.org.uk/pub/linux/libc/ here].&lt;br /&gt;
* You can use TASM 3.2 for Windows with [http://www.winehq.com Wine].&lt;br /&gt;
* You can pay the $40 and compile it yourself on the platform of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Brass ===&lt;br /&gt;
'''Author''': benryves&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://benryves.com/bin/brass/ http://benryves.com/bin/brass/]&lt;br /&gt;
&lt;br /&gt;
Brass runs under Linux thanks to Mono.&lt;br /&gt;
&lt;br /&gt;
=== WLA DX ===&lt;br /&gt;
'''Author''': Ville Helin&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://users.tkk.fi/~vhelin/wla.html http://users.tkk.fi/~vhelin/wla.html]&lt;br /&gt;
&lt;br /&gt;
WLA DX is another open-source (GNU GPL) cross-assembler with a primary focus on targeting video game consoles. It is a high-powered assembler with a wide variety of features such as, e.g. separate compilation, POSIX-like file I/O, and code sectioning. However it is cumbersome when assembling small projects, and semantics are unorthodox compared to other assemblers. (~ is the XOR operator, macro arguments are passed by value, etc.) Furthermore, development appears to have ceased since January 2006.&lt;br /&gt;
&lt;br /&gt;
WLA DX has had an influence in the development of Brass.&lt;br /&gt;
&lt;br /&gt;
=== Pasmo ===&lt;br /&gt;
'''Author''': Juli&amp;amp;aacute;n Albo&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.arrakis.es/~ninsesabe/pasmo/ http://www.arrakis.es/~ninsesabe/pasmo/]&lt;br /&gt;
&lt;br /&gt;
Pasmo is another standalone Z80 cross-assembler with basic macro support, but without the ability to generate&lt;br /&gt;
relocatable object files.  It is licensed under the GNU GPL, and exists as the package &amp;lt;tt&amp;gt;pasmo&amp;lt;/tt&amp;gt; in the Debian pool.&lt;br /&gt;
&lt;br /&gt;
=== z80asm ===&lt;br /&gt;
'''Author''': Bas Wijnen&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://savannah.nongnu.org/projects/z80asm/ http://savannah.nongnu.org/projects/z80asm/]&lt;br /&gt;
&lt;br /&gt;
z80asm is a standalone Z80 cross-assembler similar in nature to Pasmo, in that it has macro support but cannot generate relocatable object files.  It too is licensed under the GNU GPL (version 2 or later), and exists as the package &amp;lt;tt&amp;gt;z80asm&amp;lt;/tt&amp;gt; in the Debian pool.&lt;br /&gt;
&lt;br /&gt;
=== GNU as ===&lt;br /&gt;
'''Author''': the GNU binutils team&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.gnu.org/software/binutils/ http://www.gnu.org/software/binutils/]&lt;br /&gt;
&lt;br /&gt;
Starting from version 2.17, the GNU assembler, part of the binutils package, is capable of cross-assembling Z80 code when configured for it at compile-time, such as with &amp;lt;tt&amp;gt;--target=z80-unknown-coff&amp;lt;/tt&amp;gt;.  binutils includes a powerful assembler and linker both, along with various utilities for handling object files, such as objcopy and objdump.  While this is probably one of the more powerful tools in the list for Z80 development, it also requires more work to start with, as the traditional way to get a cross-assembling binutils is to compile it oneself.  Being a GNU package, binutils is naturally licensed under the GNU GPL (version 2 or later).  Prepackaged binary versions of binutils are very common, but usually do not have cross-assembling capability.&lt;br /&gt;
&lt;br /&gt;
==Sending programs to the calc==&lt;br /&gt;
* TILP&lt;br /&gt;
* titranz : commandline tool, only works for TI-83/TI-83+&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems</id>
		<title>Programming under Unix-like operating systems</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Programming_under_Unix-like_operating_systems"/>
				<updated>2006-08-06T05:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: revamp section a bit /* Syntax coloring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are the different tools at your disposal:&lt;br /&gt;
&lt;br /&gt;
==Emulators==&lt;br /&gt;
* TilEm [http://lpg.ticalc.org/prj_tilem/]&lt;br /&gt;
* VTI (with Wine)&lt;br /&gt;
&lt;br /&gt;
==Syntax highlighting==&lt;br /&gt;
Several editors have native or extensional support for editing Z80 assembly code with syntax highlighting:&lt;br /&gt;
* Kwrite and Kate can be made to syntax-highlight Z80 assembly with [http://guillaume.h.ifrance.com/ti83/z80assembler.xml the appropriate definition file].  The file can be placed in /usr/share/apps/katepart/syntax to install it.&lt;br /&gt;
* SciTE and Emacs both have native modes for assembly code.  For Emacs, one must make sure to turn on Font Lock mode as well.&lt;br /&gt;
* The [http://www.revsoft.org/phpBB2/viewforum.php?f=25 Z80 Assembly IDE] has simple syntax highlighting built-in.&lt;br /&gt;
* Users of Vim and WLA DX can use [http://sigma.unitedti.org/files/misc/z80.vim.bz2 this syntax file].&lt;br /&gt;
&lt;br /&gt;
== Assembling ==&lt;br /&gt;
&lt;br /&gt;
=== SPASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Spencer Putt&lt;br /&gt;
&lt;br /&gt;
'''Home Page''': [http://www.revsoft.org/phpBB2/viewforum.php?f=21 http://www.revsoft.org/phpBB2/viewforum.php?f=21]&lt;br /&gt;
&lt;br /&gt;
SPASM is a portable Z80 assembler released under the GPL.  Its distinguishing features are extremely fast assembly and powerful macro support.  The output is only available in binary form, however with the use of [http://www.revsoft.org/phpBB2/viewforum.php?f=23 Wabbitsign], written by James Montelongo and Spencer Putt, it can easily be converted to any desired program type.&lt;br /&gt;
&lt;br /&gt;
 assembler foo.asm foo.bin&lt;br /&gt;
 wabbit foo.bin foo.8xp&lt;br /&gt;
&lt;br /&gt;
=== tpasm ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Todd Squires&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://www.sqrt.com/ http://www.sqrt.com/]&lt;br /&gt;
&lt;br /&gt;
tpasm is a Free (GPL) assembler which supports the Z80 as well as the 6805, 6809, 68HC11, 6502, Sunplus, 8051, PIC, and AVR.  It uses syntax very similar to ZMASM.&lt;br /&gt;
&lt;br /&gt;
tpasm 1.2 does not support binary file output, but you can use ''objcopy'' (from the GNU binutils package) to convert its Intel Hex output into binary; e.g.&lt;br /&gt;
&lt;br /&gt;
 tpasm foo.asm -o intel foo.hex -l foo.lst&lt;br /&gt;
 objcopy -I ihex foo.hex -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
=== ASxxxx ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Alan R. Baldwin&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://shop-pdp.kent.edu/ashtml/asxxxx.htm http://shop-pdp.kent.edu/ashtml/asxxxx.htm]&lt;br /&gt;
&lt;br /&gt;
ASxxxx is a freeware assembler which supports the Z80 along with a large variety of other processors.  It more closely resembles a modern PC assembler than a typical Z80 assembler, as it assembles each file into a relocatable object format which can then be linked with other files to produce the complete program.  The linking is done by a separate program called ASlink (included with the package.)&lt;br /&gt;
&lt;br /&gt;
To assemble and link a simple program you might do something like&lt;br /&gt;
&lt;br /&gt;
 asz80 -plogff foo.asm&lt;br /&gt;
 aslink -u -b _CODE=0x9D95 -i foo.ihx foo.rel&lt;br /&gt;
 objcopy -I ihex foo.ihx -O binary foo.bin&lt;br /&gt;
&lt;br /&gt;
Note that the syntax is rather different from that of most Z80 assemblers.  The important differences are&lt;br /&gt;
* Immediate values are marked with #.&lt;br /&gt;
* Indexed memory access is written as N(ix) rather than (ix+N).&lt;br /&gt;
* Constants are written differently: 0xAA, 0hAA, or $$AA for hexadecimal; 0o252, 0q252, or $&amp;amp;252 for octal; 0b10101010 or $%10101010 for binary.&lt;br /&gt;
&lt;br /&gt;
For example,&lt;br /&gt;
 ld hl,#str_hello&lt;br /&gt;
 add a,3(ix)&lt;br /&gt;
 xor #0x0f&lt;br /&gt;
&lt;br /&gt;
There is also a modified version of ASxxxx distributed with the [http://sdcc.sf.net/ Small Device C Compiler].  This version is, if anything, more confusing to use due to the poorly-documented changes made by the SDCC team.&lt;br /&gt;
&lt;br /&gt;
=== TASM ===&lt;br /&gt;
&lt;br /&gt;
'''Author''': Thomas N. Anderson&lt;br /&gt;
&lt;br /&gt;
'''Home page''': [http://home.comcast.net/~tasm/ http://home.comcast.net/~tasm/]&lt;br /&gt;
&lt;br /&gt;
TASM is a shareware assembler which also supports a variety of processors.&lt;br /&gt;
&lt;br /&gt;
There are several ways that you can use tasm under Linux:&lt;br /&gt;
* The TASM 3.1 for Linux shareware release is still in the wild.  To use this you will need to enable &amp;quot;a.out&amp;quot; support in your kernel (it may be available as the module ''binfmt_aout''.)  You will also need to obtain the ancient Linux libc version 4 (''not'' glibc) which can be found [http://ftp.linux.org.uk/pub/linux/libc/ here].&lt;br /&gt;
* You can use TASM 3.2 for Windows with [http://www.winehq.com Wine].&lt;br /&gt;
* You can pay the $40 and compile it yourself on the platform of your choice.&lt;br /&gt;
&lt;br /&gt;
=== Brass ===&lt;br /&gt;
'''Author''': benryves&lt;br /&gt;
&lt;br /&gt;
'''Home page''' [http://benryves.com/bin/brass/ http://benryves.com/bin/brass/]&lt;br /&gt;
&lt;br /&gt;
Brass runs under Linux thanks to Mono.&lt;br /&gt;
&lt;br /&gt;
=== WLA DX ===&lt;br /&gt;
'''Author''': Ville Helin&lt;br /&gt;
&lt;br /&gt;
'''Home page''' [http://users.tkk.fi/~vhelin/wla.html http://users.tkk.fi/~vhelin/wla.html]&lt;br /&gt;
&lt;br /&gt;
WLA DX is another open-source (GNU GPL) cross-assembler with a primary focus on targeting video game consoles. It is a high-powered assembler with a wide variety of features such as, e.g. separate compilation, POSIX-like file I/O, and code sectioning. However it is cumbersome when assembling small projects, and semantics are unorthodox compared to other assemblers. (~ is the XOR operator, macro arguments are passed by value, etc.) Furthermore, development appears to have ceased since January 2006.&lt;br /&gt;
&lt;br /&gt;
WLA DX has had an influence in the development of Brass.&lt;br /&gt;
&lt;br /&gt;
==Sending programs to the calc==&lt;br /&gt;
* TILP&lt;br /&gt;
* titranz : commandline tool, only works for TI-83/TI-83+&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:Basic:Tricks</id>
		<title>83Plus:Basic:Tricks</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:Basic:Tricks"/>
				<updated>2006-04-16T20:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: various copy editing; could probably use a style overhaul&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikify}}&lt;br /&gt;
[[Category:83Plus:Basic|Tricks]]&lt;br /&gt;
&lt;br /&gt;
There is a whole list of tricks that one can implement, once one is comfortable programming in TI-Basic which allow for a whole onslaught of capabilities, such as using less memory or making the program run faster.  There used to be a site called Kevtiva Inc. which had the largest list of TI-BASIC hacks I (Saibot84) have ever seen, including how to force a RAM reset (without the use of asm programs) but I've forgotten most of the meanest hacks. Here are some of the many tricks: (Please use common sense in deciding whether a &amp;quot;-&amp;quot; is a minus or a negative sign. When the use is un-common-sense-ical or possibly confusing, it will be specified.)&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Memory==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
===Memory Management===&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Number values:In order to be able to save memory on the calculator, it helps to have a bit of an understanding as to how the calc manages the memory, especially in regards to numbers. Because TIOS is designed for school, and so is oriented for precision, it saves all real number values as 14-digits and an exponent of 10. In other words, it saves the number &amp;amp;pi; as 3.1415926535898 &amp;amp;times; 10&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;, but in memory, it is something more similar (not exact) to &amp;lt;code&amp;gt;0 31415926535898&amp;lt;/code&amp;gt; where the 0 tells TIOS what the exponent of 10 is that need to be applied to the 31415926535898.  However, this also applies to smaller values, such that a 13 is saved as &amp;lt;code&amp;gt;1 13000000000000&amp;lt;/code&amp;gt;.  For small, rational, terminating values, it can be seen that a good deal of memory is being wasted.  I've created the following formula which, when saved to Y0 (or any other Y function, works with numbers in the same way that the sub( function works with strings:&lt;br /&gt;
 int(fPart(X/10^(int(2-A+log(X))))*10^(F))&lt;br /&gt;
:translated as a sub( statement, it would be the equivalent of sub(X,A,F) regardless of the position of the decimal point in X.  If you don't understand what the formula is doing, it's dividing X by 10&amp;lt;sup&amp;gt;value&amp;lt;/sup&amp;gt; so that the digit we're looking for (identified in A) is &amp;quot;moved&amp;quot; to be the first digit to the right of the decimal point, then ignores anything to the left or the decimal piont, then multiplies the value left over by 10&amp;lt;sup&amp;gt;F&amp;lt;/sup&amp;gt; and ignores anything to the right of the decimal point, thus providing the sub(X,A,F).&lt;br /&gt;
;use more than 27 vars:If you need to use more than the 27 vars TIOS gives you with A-Z, other than using lists, matrices, strings, or Ans, you can go look in the [VARS] menu under Window.  Of these, being that the calculator is usually in function mode, you can use any of the window vars under T/theta (which are for parametric mode) and/or under U/V/W (which are for polar).  It is recommended that you prefer those under U/V/W because this mode is usually never used, whereas parametric has been used on more than one occasion by programs, such as for drawing X in terms of Y. You can also go into the Finance menu under [APPS] and go to Vars, but IIRC, some are read-only vars, so you will need to experiment to see if a var is accessible or not, but it is certain, that at least the '''N''' can be used problemlessly in your programs. You can also use the ''n'', which is found by going to the catalog and pressing &amp;quot;N&amp;quot; as a variable, as well as the sequential functions u,v, and w.&lt;br /&gt;
;Debugging:One of the easiest ways to help you debug your program is through the use of the Pause command.  You can use the Pause command to display the value of a var, or just to track the progress of your program.  During any of the Pause commands, you can press [ON] to break the program and choose Goto so that the calc will automatically bring you to the point in your program where it was Pause-ing when you interrupted it with the [ON] key. Some common bugs include using the Y var or the X var while drawing to the screen (TIOS tends to change the value of Y and/or X when doing certain things on the graph screen, so avoid using Y or X when working on the graph screen.&lt;br /&gt;
&lt;br /&gt;
===Memory Saving===&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Never write out closing ''')''' parentheses at the end of a line:You save '''1''' byte. The reason for this is that TIOS closes all still-open parentheses when it encounters $3F, which is the new-line character that is input when you press enter in the Program Editor, or when it encounters the store arrow.&lt;br /&gt;
;Never write out closing '''&amp;quot;''' quotes at the end of a line: You save '''1''' byte. The reason for this is that TIOS closes any still-open quotes when it encounters $3F, which is the new-line character that is input when you press enter in the Program Editor, or when it encounters the store arrow.&lt;br /&gt;
;Never use a Pause right after a Disp, unless the Pause has text:This is because both Disp and Pause can display text to the homescreen. Disp writes the text to the screen and then continues forward, but Pause waits for the [ENTER] key to be pressed.  When Pause is used with text, such as in&lt;br /&gt;
 :Pause &amp;quot;TEXT&amp;quot;&lt;br /&gt;
:then it writes the text to the homescreen first, and then waits for the user to press [ENTER].&lt;br /&gt;
;CAPITALIZE:For the most part, yes, it is nice to see that not EVERY character is in UPPERCASE on the calculator, but if you're looking to save space, don't use lower case letters.  Each lowercase letter takes up twice as much space as the uppercase ones.&lt;br /&gt;
;Read-Only Lists and Matrices:If you have a list or matrix that will be read-only, it behooves you to save it to a string or Y function (Y1-Y0). Instead of doing&lt;br /&gt;
 :{1,2,3,4,5,6,7,8,9â†’L1&lt;br /&gt;
 :L1(5 (to retrieve the 5th element of the list)&lt;br /&gt;
:try doing&lt;br /&gt;
 :&amp;quot;{1,2,3,4,5,6,7,8,9â†’Str1&lt;br /&gt;
 :expr(Str1&lt;br /&gt;
 :Ans(5&lt;br /&gt;
:or&lt;br /&gt;
 :&amp;quot;{1,2,3,4,5,6,7,8,9â†’Y1&lt;br /&gt;
 :Y1:Ans(5&lt;br /&gt;
:The benefit is that you are now no longer wasting the space, as explained in the [[83Plus:Basic:Tricks#Memory_Management|Number Values]].  When choosing between storing your list to a string and storing it to a function, keep in mind that string values are somewhat editable, while functions are completely read-only.  If you needed to edit something in the function, you'd have to convert it to a string first before editing, and then overwrite the original function.  It is therefore recommended that you save your lists to strings.&lt;br /&gt;
;No NewLine Required:The following commands do not require that you neither begin a new line, nor use a colon before the next command: Archive, Unarchive, DelVar. Example:&lt;br /&gt;
 Archive XArchive YArchive ZUnarchive ZUnarchive TDelVar ADelVar BFor(X,0,1&lt;br /&gt;
:this doesn't work with Lists, or labels, and presumably neither with the prgm token.&lt;br /&gt;
&lt;br /&gt;
==Speed Boosters==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Use For( loops:In light of research I once read online, as well as through personal research and experimentation, it is fairly simple to see that For( loops are the fastest of the looping options.  To prove this, try running the following program on your calc, and see which one is the fastest:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Program:LOOPTEST&lt;br /&gt;
:Disp &amp;quot;FOR&lt;br /&gt;
:For(X,1,10000&lt;br /&gt;
:End&lt;br /&gt;
:Pause &amp;quot;FOR IS DONE&lt;br /&gt;
:1â†’X&lt;br /&gt;
:Disp &amp;quot;WHILE&lt;br /&gt;
:While X&amp;lt;10001&lt;br /&gt;
:X+1â†’X&lt;br /&gt;
:End&lt;br /&gt;
:Pause &amp;quot;WHILE IS DONE&lt;br /&gt;
:0â†’X&lt;br /&gt;
:Disp &amp;quot;GOTO&lt;br /&gt;
:Lbl XX&lt;br /&gt;
:X+1â†’X&lt;br /&gt;
:If X&amp;lt;10001&lt;br /&gt;
:Goto XX&lt;br /&gt;
Pause &amp;quot;GOTO DONE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:You will notice, especially if using a stopwatch, that the For( loop, IIRC, should even run a FEW SECONDS faster than the While loop, and/or the Goto loop. Therefore, see if you can't change your loops to use For( instead.  In the case of the While, change&lt;br /&gt;
 :While X&amp;lt;Y&lt;br /&gt;
:to&lt;br /&gt;
 :X-1â†’X&lt;br /&gt;
 :For(X,X,Y&lt;br /&gt;
 :X-1â†’X&lt;br /&gt;
:You most likely will be losing a few more bytes in memory, but it's very much worth it for the speed... and you've already saved much speed by doing the tricks above ;-)&lt;br /&gt;
;Get Returns on your IfThens, Fors, etc.:Each time you do an If-Then statement or a For( statement (among others), when the calc is &amp;quot;waiting&amp;quot; for an End statement, these conditions are taking up memory, which, after a while, slow down your BASIC programs. However, the benefit is that this is only the case, as long as your program is running... as soon as the calculator returns to the homescreen, these used memory is cleared again and you are ready to go at it again. The benefit of this is that when the calculator encounters a Return statement in a BASIC program, it &amp;quot;cancels&amp;quot; any conditions for its waiting for an End.&lt;br /&gt;
;Avoid storing to vars in a loop:Brandon Green writes in his BASIC Guru Online that his experiments have led to the conclusion that storing variables is a prime cause of slowdowns in TI-BASIC programs.  Therefore, try to restructure your code so as to avoid using the â†’ as much as possible.&lt;br /&gt;
&lt;br /&gt;
==Graphical Touches==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Use Text(-1,X,Y,value or text:I learned this from Kevtiva Inc.  Normally, you do something like this:&lt;br /&gt;
 :Text(15,10,&amp;quot;MY TEXT&lt;br /&gt;
:following this, the text &amp;quot;MY TEXT&amp;quot; will be written on the 15th row, in the 10th column, in the small font... however, try adding a &amp;quot;-1&amp;quot; (without the quotation marks) as the first argument...&lt;br /&gt;
 :Text(-1,15,10,&amp;quot;MY TEXT&lt;br /&gt;
:This time, the text &amp;quot;MY TEXT&amp;quot; will be written on the 15th row in the 10th column, in the LARGE font&lt;br /&gt;
;Write blank spaces to the graph screen when needing to erase stuff:as long as what you are trying to erase is at least 6 pixels high, it is srongly recommeded that you use the Text( command to write blank spaces to the screen instead of creating a Line(A,B,C,D,0 loop.  This is because to write a line, white or black, the calculator needs to do a lot of math to convert the X and Y coordinates into pixel coordinates, while writing text to the screen is almost at the same speed as it would take to draw a sprite to the screen in any asm program (since for the calc, text chars are just sprites) and so writing (blank) text to clear the screen is much faster.&lt;br /&gt;
;Try drawing graphics to the screen using text instead of lines: With access to the lowercase letters, as well as the Catalog menu, it is possible to draw graphics to the screen using text. For example, to draw a heart for a Zelda game would be much faster if you do something like the following:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;:&amp;quot;vQ6Qv  &amp;quot;&lt;br /&gt;
:For(X,1,7&lt;br /&gt;
:Text(10,9+X,sub(Ans,X,1&lt;br /&gt;
:End&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:Another typical example is that of &amp;quot;drawing&amp;quot; a status bar to the screen using something such as:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;(P is the percent to be shaded in)&lt;br /&gt;
(L is the length of the bar in pixels)&lt;br /&gt;
(H is the horizontal position)&lt;br /&gt;
(V is the vertical position, using the top-left corner of the screen as point 0,0)&lt;br /&gt;
:Text(V,H,&amp;quot;(&lt;br /&gt;
:For(X,0,PL/100&lt;br /&gt;
:Text(V,H+X+1,&amp;quot;8&lt;br /&gt;
:End&lt;br /&gt;
:For(X,1,(100-P)L/100&lt;br /&gt;
:Text(V,H+PL/100+X,&amp;quot;)&lt;br /&gt;
:End&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:Using this technique, small graphics such as these can be drawn much faster than if we tried to draw them using lines and/or pixels and/or points.&lt;br /&gt;
;Simplify your Life:Save a GDB at the beginning of your program. &amp;quot;Graph Databases (GDBs) are useful storage centers of graph informaiton. This means that it saves not only the Zoom settings, but also Axes on/off, coord on/off, and the Y= equations. Using these can reduce the size of your program.&amp;quot; (quoted from http://web.archive.org/web/20021020121625/www.kevtiva.com/calc/gdb.htm) Turn off the axes with AxesOff, turn off functions with FuncOff, and set the Window to Xmin=0, Xmax=94, Xscl=8, Ymin=-62, Ymax=0, Yscl=8.  When your program is exiting, have it reset the previous GDB so that you don't mess up the gamer's graph settings.  &amp;lt;!--You might have to turn the axes back on. but at 5:22 in the morning, I don't remember anymore... --&amp;gt;While debugging your graphics, moving your cursor on the graph screen will now tell you both the pixel coordinates, as well as the point coordinates since you have synchronized them. http://www.meebo.com//skin/default/img/emoticons/big_smile.gif&lt;br /&gt;
;Get rid of the &amp;quot;Done&amp;quot;:use the following right before your program exits to avoid having the calc display the &amp;quot;Done&amp;quot; text on the homescreen&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;:ClrHome&lt;br /&gt;
:Output(1,1,&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Get rid of the RunIndic:On the homescreen, do &amp;lt;code&amp;gt;Output(1,16,&amp;quot;_&amp;lt;/code&amp;gt; in the loop that is displaying the run indicator. On the graph screen, do &amp;lt;code&amp;gt;Text(-1,0,90,&amp;quot;_&amp;lt;/code&amp;gt; in the loop that is displaying the run indicator. (_ in this context refers to the space character.)&lt;br /&gt;
&lt;br /&gt;
==Cool Hacks==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Have &amp;quot; and the store arrow in a string:(IIRC, brought to you by Kevtiva Inc.) Type a &amp;quot; and the store arrow at the homescreen and press enter. An error message will appear; choose to Quit.  Press [Y=] and go to Y1. Press [2nd] [ENTER] to paste the previous homescreen entry into Y1. Press [2nd] [MODE] to {ESC}. At the homescreen, type Equ&amp;gt;Str(Y1,Str1 (or whatever Str you want to store it to and press [ENTER]. You now have the &amp;quot; quote and the store arrow in your string. http://www.meebo.com//skin/default/img/emoticons/wink.gif&lt;br /&gt;
;If condition&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;End:This will need a bigger explanation, but in short, you can have a conditional End statement that helps your loops run faster by only executing the End statement if needed. The reason this works is because you didn't use a Then statement: an If followed by a single non-Then statement is interpreted as an If with no Else clause and the single statement as the equivalent of the Then clause, even if the statement is End.  You can therefore also insert comments into your code (which is not recommended for BASIC unless you're still debugging it) by doing If 0:Whatever. For instance:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;(untested...)(lines are numbered)&lt;br /&gt;
01:For(X,0,1&lt;br /&gt;
02:getKeyâ†’K&lt;br /&gt;
03:Kâ†’X&lt;br /&gt;
04:If not(Ans&lt;br /&gt;
05:End&lt;br /&gt;
06:0â†’X&lt;br /&gt;
07:&amp;quot;-&lt;br /&gt;
08:If K=25&lt;br /&gt;
09:&amp;quot;LEFT&lt;br /&gt;
10:If K=26&lt;br /&gt;
11:&amp;quot;UP&lt;br /&gt;
12:If K=27&lt;br /&gt;
13:&amp;quot;RIGHT&lt;br /&gt;
14:If K=34&lt;br /&gt;
15:&amp;quot;DOWN&lt;br /&gt;
16:If K=45&lt;br /&gt;
17:&amp;quot;CLEAR&lt;br /&gt;
18:If Ans=&amp;quot;-&lt;br /&gt;
19:End&lt;br /&gt;
20:Disp Ans&lt;br /&gt;
21:If K=45&lt;br /&gt;
22:1â†’X&lt;br /&gt;
23:End&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:Explanation: Lines 1-2 are normal. Line 3 resets X if there was no key, which will loop back to the For( statement, or allow the routine to continue if there WAS a key. The answer from the getKey is in Ans, so if no key was pressed, Line 5 will be executed, which loops back to Line 1 without wasting any more time. http://www.meebo.com//skin/default/img/emoticons/smile.gif ... If a key was pressed, X is reset, which will cause the routine to loop back to the For( statement the next time it encounters an End statement. If the condition in Line 4 is not met, it automatically skips to Line 6. The string &amp;quot;-&amp;quot; is stored in Ans. We then go into a series of checks looking for any of the arrow keys, and changing Ans to reflect that. Line 8 is executed, and if the condition is not met, it skips to Line 10; if that condition is not met, it skips to Line 12; if that condition is not met, it skips to Line 14; if that condition is not met, it skips to Line 16; if that condition is not met, it skips to Line 18.  Then, it checks the Ans var.  If the Ans var is still unchanged, then none of the keys we are looking for have been found, so we End, which we've already said will loop back to the For( statement, essentially beginning the getKey loop once more. If Ans is different, then one of our keys was found, so we Disp the value in Ans (which is a String). We then check to see if it was the [CLEAR] key., and if it was, we set X so that the next End statement that is encountered will essentially close the loop and the routine will continue beyond this part of the code. We then End, which checks the value of X.  If X is 0, it loops back to the For( statement, recommencing the whole loop, but if X is 1, it &amp;quot;closes&amp;quot; the loop, forgets about it completely, and moves on with its life. Thus can you build in looping conditions into your programs without having to use Lbl or Goto statements. http://www.meebo.com//skin/default/img/emoticons/cool.gif&lt;br /&gt;
;Ans your answers:the Ans var is, IMHO, the most useful yet most unsafe var on the whole calculator because it can be so many different variable types (real, complex, list, matrix, string)... One way to reduce the number of varables you're using in your program is to carefully structure your program so that it stores as much information into the Ans var as possible. One way to do this is to setup Ans to be a list, say {3,1,4,2,5}. Doing Ans(4) is not going to multiply each value in the list by four, but rather going to give you the 4th value in the list:2. This happens because the OS will treat the Ans variable exactly the same as if it were L1 or any other list variable. I've already demonstrated that the Ans var can be used to keep track of whether one of the keys we were looking for was found or not, but there are other things you can do with the Ans var (as long as you're careful not to change the value in Ans unintentionally).  For instance, doing {Ans(2),Ans(4),Ans(1),Ans(3),Ans(5) will change Ans to be the list {1,2,3,4,5}... Note that the Ans var is changed AFTER the whole command has been executed.  There will probably be more esamples of using Ans in a program at a later date.&lt;br /&gt;
;Autodetect Degree or Radian Mode:Robert Maresh states that this is one thing he learned from  James Matthew's Asmguru.hlp&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;:If 0&amp;lt;cos(9)&lt;br /&gt;
:Then&lt;br /&gt;
:Disp &amp;quot;Degree Mode&lt;br /&gt;
:Else&lt;br /&gt;
:Disp &amp;quot;Radian Mode&lt;br /&gt;
:End&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Autodetect if the Calculator is an 82 or 83/+:Robert Maresh states that &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;abs -1+1 would return 2 on a TI-82&lt;br /&gt;
abs(-1+1 would return 0 on a TI-83 (this is because the abs is followed by a parenthese)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and that one can therefore use the following to display whether the calc is an 82 or 83&lt;br /&gt;
 Text(0,0,&amp;quot;YOU HAVE A TI-&amp;quot;,83-.5(abs -1+1&lt;br /&gt;
&lt;br /&gt;
==ExecAsm==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
This section is organized such that first comes the &amp;quot;name&amp;quot; of the routine, then the sequence of hexadecimal codes, and then (usually) comes the asm instructions that were used to get the sequence of hexadecimal codes, in case anyone wishes to attempt to edit anything in the routine. In order to use these, you can enter these as a string argument in Omnicalc's ExecAsm( function, or you can create a new program, put AsmPrgm (found in the Catalog) as the first instruction, type the hexadecimal code sequence, and then (VERY IMPORTANT) add C9 to the end of the hex code sequence. If you do this, you will have to do Asm(prgmYOURPRGM in order to run your program, replacing YOURPRGM with whatever you named the program in which you entered this sequence. You should also note that any routine ending with &amp;quot;BCALL _StoAns&amp;quot; will be saving something to the Ans variable.&lt;br /&gt;
::FloppusMaximus wrote: Looks like the ExecAsm function *always* returns 1?! Probably the best thing to do in this case is change the StoAns to a StoX (EFBF4A â†’ EFD14A) and read the result from X rather than Ans.If you really wanted to use Ans, you could also just reset the numOP1 flag yourself (FDCB0786).&lt;br /&gt;
:::The code to reset the numOP1 flag should be put at the end of the sequence when using Omnicalc, if you still wish to use Ans. These changes can be ignored if putting the hexcode sequences in a separate program.&lt;br /&gt;
::'''Warning'''&lt;br /&gt;
:::You should ensure that you type in these hexcode sequences as ACCURATELY as possible as the alteration of a SINGLE character CAN and most likely WILL cause the calculator to CRASH. Use these at your own risk.&lt;br /&gt;
===Screen===&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Increase the Contrast:2147847EC604FE28D077C6D8CD0B00D310&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ld hl,contrast ; 21478477C6D8CD0B00D310&lt;br /&gt;
ld a,(hl)      ; 7E&lt;br /&gt;
add a,4        ; C604 (or whatever)&lt;br /&gt;
cp 28h         ; FE28&lt;br /&gt;
ret nc         ; D0&lt;br /&gt;
ld (hl),a      ; 77&lt;br /&gt;
add a,D8h      ; C6D8&lt;br /&gt;
call 0bh       ; CD0B00&lt;br /&gt;
out (10h),a    ; D310&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Decrease the Contrast:2147847ED604D877C6D8CD0B00D310&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ld hl,contrast ; 214784&lt;br /&gt;
ld a,(hl)      ; 7E&lt;br /&gt;
sub 4          ; D604 (or whatever)&lt;br /&gt;
ret c          ; D8&lt;br /&gt;
ld (hl),a      ; 77&lt;br /&gt;
add a,D8h      ; C6D8&lt;br /&gt;
call 0bh       ; CD0B00&lt;br /&gt;
out (10h),a    ; D310&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Shift screen right (no LCD update):2140930E40060CB7CB1E2310FB0D20F5&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; 21 40 93 -  	ld hl,gbuf&lt;br /&gt;
 0E 40 -  -  	ld c,64&lt;br /&gt;
 -  -  -  -  loop:&lt;br /&gt;
 06 0C -  -  	ld b,12&lt;br /&gt;
 B7 -  -  -  	or a&lt;br /&gt;
 -  -  -  -  smalloop:&lt;br /&gt;
 CB 1E -  -  	rr (hl)&lt;br /&gt;
 23 -  -  -  	inc hl&lt;br /&gt;
 10 FB -  -  	djnz smalloop&lt;br /&gt;
 0D -  -  -  	dec c&lt;br /&gt;
 20 F5 -  -  	jr nz,loop&lt;br /&gt;
-Jim e&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Shift screen left (no LCD update):213F960E40060CB7CB162B10FB0D20F5&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; 21 3F 96 -  	ld hl,gbuf+767&lt;br /&gt;
 0E 40 -  -  	ld c,64&lt;br /&gt;
 -  -  -  -  loop2:&lt;br /&gt;
 06 0C -  -  	ld b,12&lt;br /&gt;
 B7 -  -  -  	or a&lt;br /&gt;
 -  -  -  -  smalloop2:&lt;br /&gt;
 CB 16 -  -  	rl (hl)&lt;br /&gt;
 2B -  -  -  	dec hl&lt;br /&gt;
 10 FB -  -  	djnz smalloop2&lt;br /&gt;
 0D -  -  -  	dec c&lt;br /&gt;
 20 F5 -  -  	jr nz,loop2&lt;br /&gt;
 -Jim e&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Shift screen up one line (no LCD update):214C9311409301F402EDB0EB010C00EF304C&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ld hl,plotSScreen+12  ; 214C93&lt;br /&gt;
ld de,plotSScreen     ; 114093&lt;br /&gt;
ld bc,756             ; 01F402&lt;br /&gt;
ldir                  ; EDB0&lt;br /&gt;
ex de,hl              ; EB&lt;br /&gt;
ld bc,12              ; 010C00&lt;br /&gt;
BCALL _MemClear       ; EF304C&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Shift screen down one line (no LCD update):213396113F9601F402EDB823010C00EF304C&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ld hl,plotSScreen+767-12  ; 213396&lt;br /&gt;
ld de,plotSScreen+767     ; 113F96&lt;br /&gt;
ld bc,756                 ; 01F402&lt;br /&gt;
lddr                      ; EDB8&lt;br /&gt;
inc hl                    ; 23&lt;br /&gt;
ld bc,12                  ; 010C00&lt;br /&gt;
BCALL _MemClear           ; EF304C&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Set temporary contrast to X (0 &amp;lt;=X &amp;lt;= 63):EFE04AEFEF4AC6C0CD0B00D310&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BCALL _RclX    ; EFE04A&lt;br /&gt;
BCALL _ConvOP1 ; EFEF4A&lt;br /&gt;
add a,C0h      ; C6C0&lt;br /&gt;
call 0bh       ; CD0B00&lt;br /&gt;
out (10h),a    ; D310&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Black graph (no LCD update):2140930100033EFFEF334C&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; ld hl,plotsscreen ;214093&lt;br /&gt;
 ld bc,768         ;010003&lt;br /&gt;
 ld a,$FF          ;3EFF&lt;br /&gt;
 bcall(_memset)    ;EF334C&lt;br /&gt;
 -RobbieMc&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Invert graph (no LCD update):2140930100037E2F77230B78B120F7&lt;br /&gt;
:To update the LCD, add EF6A48 at the end (before adding C9 if in a prgm)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; ld hl,plotsscreen ;214093&lt;br /&gt;
 ld bc,768         ;010003&lt;br /&gt;
 ld a,(hl)         ;7E&lt;br /&gt;
 cpl               ;2F&lt;br /&gt;
 ld (hl),a         ;77&lt;br /&gt;
 inc hl            ;23&lt;br /&gt;
 dec bc            ;0B&lt;br /&gt;
 ld a,b            ;78&lt;br /&gt;
 or c              ;B1&lt;br /&gt;
 jr nz,$-7         ;20F7&lt;br /&gt;
 -RobbieMc&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Enabling Fast Circles:FDCB3CE6&lt;br /&gt;
 set useFastCirc, (iy+plotFlag3) FD CB 3C E6&lt;br /&gt;
 -Michael Cimino&lt;br /&gt;
&lt;br /&gt;
===Other===&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Enable Alpha Lock:FDCB12E6FDCB12F6&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;set shiftAlpha,(iy+shiftFlags) ; FDCB12E6&lt;br /&gt;
set shiftALock,(iy+shiftFlags) ; FDCB12F6&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Get Amount of Free Ram:EFE542EF9247EF5641EFBF4A&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BCALL _MemChk     ; EFE542&lt;br /&gt;
BCALL _SetXXXXOP2 ; EF9247&lt;br /&gt;
BCALL _OP2ToOP1   ; EF5641&lt;br /&gt;
BCALL _StoAns     ; EFBF4A&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Battery state (0 = good, 1 = bad):EFBF41EFB3502803EF9B41EFBF4A&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  BCALL _OP1Set0      ; EFBF41&lt;br /&gt;
  BCALL _Chk_Batt_Low ; EFB350&lt;br /&gt;
  jr z,good           ; 2803&lt;br /&gt;
  BCALL _OP1Set1      ; EF9B41&lt;br /&gt;
good:&lt;br /&gt;
  BCALL _StoAns       ; EFBF4A&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Amount of Free ROM â†’ X&lt;br /&gt;
:This routines is still being discussed in the Detached Solutions forum.  The final version will be posted here as soon as all parties have come to an agreement.&lt;br /&gt;
&amp;lt;!--EF1450219F8356235E2346234EC5EBEF9247EF5641210080EF9247EF8440EF6640E1EF9247F7EFBF4A&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BCALL 5014h        ; EF1450&lt;br /&gt;
ld hl,839Fh        ; 219F83&lt;br /&gt;
ld d,(hl)          ; 56&lt;br /&gt;
inc hl             ; 23&lt;br /&gt;
ld e,(hl)          ; 5E&lt;br /&gt;
inc hl             ; 23&lt;br /&gt;
ld b,(hl)          ; 46&lt;br /&gt;
inc hl             ; 23&lt;br /&gt;
ld c,(hl)          ; 4E&lt;br /&gt;
push bc            ; C5&lt;br /&gt;
ex de,hl           ; EB&lt;br /&gt;
BCALL _SetXXXXOP2  ; EF9247&lt;br /&gt;
BCALL _OP2ToOP1    ; EF5641&lt;br /&gt;
ld hl,32768        ; 210080&lt;br /&gt;
BCALL _SetXXXXOP2  ; EF9247&lt;br /&gt;
BCALL _FPMult      ; EF8440&lt;br /&gt;
BCALL _Times2      ; EF6640&lt;br /&gt;
pop hl             ; E1&lt;br /&gt;
BCALL _SetXXXXOP2  ; EF9247&lt;br /&gt;
rst 30h            ; F7&lt;br /&gt;
BCALL _StoAns      ; EFBF4A&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:EF1450ED4B9F83ED437884ED4BA183ED437A84219584DB02CB7F20012B36002B0607&lt;br /&gt;
:111000E5C5EFB180C1E13A8684C630772B10EDEF3E41EFD14A&lt;br /&gt;
:Note: This should be one LONG sequence. The line-break is inserted for readability only.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; bcall(_arcchk)    ;EF1450&lt;br /&gt;
 ld bc,($839F)     ;ED4B9F83&lt;br /&gt;
 ld (op1),bc       ;ED437884&lt;br /&gt;
 ld bc,($83A1)     ;ED4BA183&lt;br /&gt;
 ld (op1+2),bc     ;ED437A84&lt;br /&gt;
 ld hl,op3+7       ;219584&lt;br /&gt;
 in a,(2)          ;DB02&lt;br /&gt;
 bit 7,a           ;CB7F&lt;br /&gt;
 jr nz,$+3         ;2001&lt;br /&gt;
 dec hl            ;2B&lt;br /&gt;
 ld (hl),0         ;3600&lt;br /&gt;
 dec hl            ;2B&lt;br /&gt;
 ld b,7            ;0607&lt;br /&gt;
loop:&lt;br /&gt;
 ld de,10          ;111000&lt;br /&gt;
 push hl           ;E5&lt;br /&gt;
 push bc           ;C5&lt;br /&gt;
 bcall(_div32by16) ;EFB180&lt;br /&gt;
 pop bc            ;C1&lt;br /&gt;
 pop hl            ;E1&lt;br /&gt;
 ld a,(op2+3)      ;3A8684&lt;br /&gt;
 add a,$30         ;C630&lt;br /&gt;
 ld (hl),a         ;77&lt;br /&gt;
 dec hl            ;2B&lt;br /&gt;
 djnz loop         ;10ED&lt;br /&gt;
 bcall(_op3toop1)  ;EF3E41&lt;br /&gt;
 bcall(_stox)      ;EFD14A&lt;br /&gt;
 -RobbieMc&amp;lt;/nowiki&amp;gt;--&amp;gt;&lt;br /&gt;
;OS Version:EF6F4CF578EF8C47EF6742EF6742F1EF8F47F7EFBF4A&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BCALL _GetBaseVer ; EF6F4C&lt;br /&gt;
push af           ; F5&lt;br /&gt;
ld a,b            ; 78&lt;br /&gt;
BCALL _SetXXOP1   ; EF8C47&lt;br /&gt;
BCALL _DecO1Exp   ; EF6742&lt;br /&gt;
BCALL _DecO1Exp   ; EF6742&lt;br /&gt;
pop af            ; F1&lt;br /&gt;
BCALL _SetXXOP2   ; EF8F47&lt;br /&gt;
rst 30h           ; F7&lt;br /&gt;
BCALL _StoAns     ; EFBF4A&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
;Hardware Version:EFBA80EF8C47EFBF4A&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;BCALL _GetHWVer  ; EFBA80&lt;br /&gt;
BCALL _SetXXOP1  ; EF8C47&lt;br /&gt;
BCALL _StoAns    ; EFBF4A&lt;br /&gt;
-FloppusMaximus&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
;Have conditions built into your formulas:This will probably need a better explanation, but I have found it useful to build certain conditions into my formulas, instead of having to write all those If statements... for instance, for piece-wise graphing, you can do Y=(X^2)(X&amp;gt;0)+(2X)(X&amp;lt;1), which is the same as If X&amp;gt;0:Y=X^2:If X&amp;lt;1:Y=2X ...right now, I can't really say what you'll be saving by doing this (memory/speed/etc) because I don't remember, but I can assure you this come quite in handy because you can then have one formula solve a variety of different problems, without the hassle of dealing with a lot of If-Then statements.  For example, if you were to save that formula as Y1, then you'd only need to do Y1(number) to have it do the whole sequence of conditionals. I consider this one of the more complicated tricks to implement (because one can easily get confused as to how to build it as well as to what conditions one is looking for) but I have found it to be extremely useful.  For example, let us say you write a text editor program in BASIC that allows the user to edit Str1, as displayed on the homescreen using Output(1,1,Str1.  However, you run into a problem when Str1 is longer than the 96 chars that fit on the homescreen, so you can, using the sub( and length( functions, you could have one line of code something like&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;:length(Str1&lt;br /&gt;
:Output(1,1,sub(Str1,1(Ans&amp;lt;96)+16frac(Ans/16)(Ans&amp;gt;95)+(16int(Ans/16)-80)(Ans&amp;gt;95),Ans+80-16int(Ans/16&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:should make the Output scroll up one line whenever the screen has been filled (untested, please verify).  What this line is saying is: give me from Str1, starting at the first byte if Str1 is smaller than 96 charachters, otherwise, calculate the beginning to be one &amp;quot;row&amp;quot; less than the total, and give me all the rest of the chars till the end.  If you could not follow that, don't worry, as that is what I meant when I said this is one of the harder tricks. If you did follow with what I was trying to do, Kudos to you!  Keep in mind that the conditions within the () can hold any of the condition-elements of If statements, i.e. and, not, or, =, â‰ , &amp;gt;, &amp;lt;, â‰¥, â‰¤.  BTW, this BASIC trick  does '''NOT''' work on the 89. I tried, but there I could not get the 89 to convert a binary operation into a numerical value, the way the z80s do. (I could be wrong about this working on all z80s... I've tested it on an 82 and an 83+)&lt;br /&gt;
;See program in MirageOS&lt;br /&gt;
If you want to see your program in a shell, like MirageOS, you must type the following code in the first line of the program:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;::&amp;quot;Description&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
That will show the program name with the description you typed.&lt;br /&gt;
&lt;br /&gt;
==Special Thanks==&amp;lt;!-- â†’â‰ â‰¤â‰¥ --&amp;gt;&lt;br /&gt;
Special thanks to:&lt;br /&gt;
&lt;br /&gt;
'''Kevtiva Inc.''' http://web.archive.org/web/20021010114152/www.kevtiva.com/calc/index.html Â© 2000 Kevtiva Interactive&lt;br /&gt;
&lt;br /&gt;
'''BASIC Guru Online''' http://bgo.netfirms.com/ Copyright Â© 2000-2006 BASIC Guru Online. All Rights Reserved.&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Talk:83Plus:BCALLs:505C</id>
		<title>Talk:83Plus:BCALLs:505C</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Talk:83Plus:BCALLs:505C"/>
				<updated>2006-03-28T03:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comments ==&lt;br /&gt;
&lt;br /&gt;
To whoever put the comments in the source code for the article, in the future please put such comments on the talk page, otherwise no one will notice them.  Tanks.  --[[User:Dan Englender|Dan Englender]] 13:42, 27 March 2006 (PST)&lt;br /&gt;
:Acknowledged.  Sorry.  Actually, I was considering creating a talk page, but then managed to forget about it... --[[User:Premchai21|Premchai21]] 19:16, 27 March 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Comments from main article ==&lt;br /&gt;
&lt;br /&gt;
I've moved the questions that were in the main article to the talk page instead:&lt;br /&gt;
&lt;br /&gt;
''The block for the Catalog 1 Hook must be set up correctly''&lt;br /&gt;
* What on earth does this mean?&lt;br /&gt;
''HL points to the start of the hook.''&lt;br /&gt;
* The start of the hook block, or what?&lt;br /&gt;
''F is 6A if the hook was not run.''&lt;br /&gt;
* And if it was run?&lt;br /&gt;
: I think &amp;quot;block&amp;quot; is referring to the memory block where the hook's address and page is stored.  I'm not sure for the other two, but the answer will probably be to remove both of them because they're not intended outputs.  I'll try to clean up this set of articles some time in the near future. --[[User:Dan Englender|Dan Englender]] 13:50, 27 March 2006 (PST)&lt;br /&gt;
:: I was more thinking of what &amp;quot;set up correctly&amp;quot; means.  For instance, if the hook is not active, does the address still have to be reasonable?  I would assume not, but I don't know what the original author intended there.  --[[User:Premchai21|Premchai21]] 19:16, 27 March 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Talk:83Plus:OS:TIOS_Alternatives</id>
		<title>Talk:83Plus:OS:TIOS Alternatives</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Talk:83Plus:OS:TIOS_Alternatives"/>
				<updated>2006-03-28T03:12:28Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nostalgy ==&lt;br /&gt;
Well, I was on the team for that, and as far as I knew it died. I've not touched my parts of the code for about two years now. I'd be willing to take it back up if it's going to go anywhere, but... I just haven't touched it in so long I'd probably want to start over, especially since I've learned some things since I started working on it. [[User:AndyJ|Andy Janata]] 10:31, 27 March 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Vera = exokernel? ==&lt;br /&gt;
&lt;br /&gt;
In regards to Vera: ''this architecture is very similar to that of an exokernel operating system''.  Having briefly read up on Vera, it doesn't seem to me to be an exokernel.  Even in its current form the operating system seems to do more than securely export hardware resources.  However, I'm not intimately familiar with the project, so I'm leaving some time for someone to correct me before I change the text.  --[[User:Dan Englender|Dan Englender]] 12:25, 27 March 2006 (PST)&lt;br /&gt;
:Vera seems to have died in her cradle... Anyway, the idea is to provide a filesystem (possibly integrated with memory management), a plugin system that would enable user code to extend the assembly interface, user program execution (naturally) and maybe a common link protocol and a customisable ISR at $0038. Everything above that, including the UI and maths capabilities is not an integral part of the system. [[User:CoBB|CoBB]] 13:09, 27 March 2006 (PST)&lt;br /&gt;
::Yeah, but providing a file system and memory management is beyond exokernel.  Plus it doesn't seem to grant access to and revoke hardware resources.  I would say it's more microkernelish than exokernelish, although probably provides more OS support than even a microkernel.  --[[User:Dan Englender|Dan Englender]] 13:29, 27 March 2006 (PST)&lt;br /&gt;
:I based my text there on the comment left on the Vera wiki [http://brazucs.unitedti.org/vera/wiki/index.php/Talk:Core_Design_Principle discussion page] about their supposed &amp;quot;Core Design Principle&amp;quot;.  I'm not sure the traditional OS categories work very well for TI-83+ calculators in the first place.  I have no particular attachment to that categorization, at any rate, so remove or alter it if you think it's inaccurate.  --[[User:Premchai21|Premchai21]] 19:12, 27 March 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives</id>
		<title>83Plus:OS:TIOS Alternatives</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives"/>
				<updated>2006-03-27T09:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: fix factual error, d'oh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:OS_Information|TIOS Alternatives]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The TIOS is the official, standard operating system for the&lt;br /&gt;
TI-83+ series of calculators (including the TI-83+ and TI-84+ and the respective Silver&lt;br /&gt;
Editions of each).  The vast majority of programs for such calculators run on top of the&lt;br /&gt;
TIOS, or on top of some subsidiary program that runs from the TIOS, and thereby implicitly&lt;br /&gt;
depend on its functionality.  However, some people have researched writing alternative&lt;br /&gt;
operating system code and sending it to the calculator to replace the TIOS.&lt;br /&gt;
Several such alternative operating systems are available on the Web, though most of them are&lt;br /&gt;
not yet at a production stage of development.&lt;br /&gt;
&lt;br /&gt;
== List of alternative operating systems ==&lt;br /&gt;
&lt;br /&gt;
*[http://michaelv.org/programs/calcs/ceptic.php CEPTIC], by Michael Vincent: a Control and Execute Program for TI Calculators.  The current version of CEPTIC only runs on the TI-83+ SE, but can be modified to run on the TI-83+.  Assembly source is available, but actually using the OS in its present state is considered non-practical, and the project has been discontinued for various reasons.&lt;br /&gt;
*[http://pongos.sourceforge.net/ PongOS], by FloppusMaximus: a simple, proof-of-concept system whose namesake feature is an embedded Pong game.  Some other system utilities, mostly inspired by Dan Englender's Calcsys, are also available in PongOS, including a hex editor, memory mover (with flash capability), flash sector eraser, and port monitor.  Link support is not provided.&lt;br /&gt;
*[http://brazucs.unitedti.org/vera/ Vera], by UnitedTI: dubbed the &amp;quot;true calc lover's OS&amp;quot; on the website.  Vera is intended to consist of a very basic kernel which can be easily extended to include desired features.  Nicknamed the Core Design Principle by the developers, this architecture is very similar to that of an [http://en.wikipedia.org/wiki/Exokernel exokernel] operating system.  Vera is still in the planning stage as of 2006-03-27.&lt;br /&gt;
*[http://www.ticalc.org/archives/files/fileinfo/349/34973.html CSX], by Sean McLaughlin: a command-line-based operating system with a screen layout similar to that of the TI-89 calculators.  CSX provides a simple filesystem, send and receive of files over a link cable, hex editing of memory, and running of Z80 machine code programs.&lt;br /&gt;
*Nostalgy, by XDG Kat-Productions: an unofficial project by certain members of [http://katpro.xiondigital.net/ XDG Kat-Productions].  No working demo is available, but development is reportedly still underway, albeit very slowly.&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Talk:Disclaimer</id>
		<title>Talk:Disclaimer</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Talk:Disclaimer"/>
				<updated>2006-03-27T08:42:24Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Typographical errors ==&lt;br /&gt;
&lt;br /&gt;
Since I can't edit the Disclaimer page to fix the errors myself, I'll note here that in paragraph 1, &amp;quot;guarentee&amp;quot; should be &amp;quot;guarantee&amp;quot;, and &amp;quot;infringmenets&amp;quot; should be &amp;quot;infringements&amp;quot;.  [[User:Premchai21|Premchai21]] 00:42, 27 March 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives</id>
		<title>83Plus:OS:TIOS Alternatives</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives"/>
				<updated>2006-03-27T08:16:16Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: put the list into its own section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:OS_Information|TIOS Alternatives]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The TIOS, also known as AMS, is the official, standard operating system for the&lt;br /&gt;
TI-83+ series of calculators (including the TI-83+ and TI-84+ and the respective Silver&lt;br /&gt;
Editions of each).  The vast majority of programs for such calculators run on top of the&lt;br /&gt;
TIOS, or on top of some subsidiary program that runs from the TIOS, and thereby implicitly&lt;br /&gt;
depend on its functionality.  However, some people have researched writing alternative&lt;br /&gt;
operating system code and sending it to the calculator to replace the TIOS.&lt;br /&gt;
Several such alternative operating systems are available on the Web, though most of them are&lt;br /&gt;
not yet at a production stage of development.&lt;br /&gt;
&lt;br /&gt;
== List of alternative operating systems ==&lt;br /&gt;
&lt;br /&gt;
*[http://michaelv.org/programs/calcs/ceptic.php CEPTIC], by Michael Vincent: a Control and Execute Program for TI Calculators.  The current version of CEPTIC only runs on the TI-83+ SE, but can be modified to run on the TI-83+.  Assembly source is available, but actually using the OS in its present state is considered non-practical, and the project has been discontinued for various reasons.&lt;br /&gt;
*[http://pongos.sourceforge.net/ PongOS], by FloppusMaximus: a simple, proof-of-concept system whose namesake feature is an embedded Pong game.  Some other system utilities, mostly inspired by Dan Englender's Calcsys, are also available in PongOS, including a hex editor, memory mover (with flash capability), flash sector eraser, and port monitor.  Link support is not provided.&lt;br /&gt;
*[http://brazucs.unitedti.org/vera/ Vera], by UnitedTI: dubbed the &amp;quot;true calc lover's OS&amp;quot; on the website.  Vera is intended to consist of a very basic kernel which can be easily extended to include desired features.  Nicknamed the Core Design Principle by the developers, this architecture is very similar to that of an [http://en.wikipedia.org/wiki/Exokernel exokernel] operating system.  Vera is still in the planning stage as of 2006-03-27.&lt;br /&gt;
*[http://www.ticalc.org/archives/files/fileinfo/349/34973.html CSX], by Sean McLaughlin: a command-line-based operating system with a screen layout similar to that of the TI-89 calculators.  CSX provides a simple filesystem, send and receive of files over a link cable, hex editing of memory, and running of Z80 machine code programs.&lt;br /&gt;
*Nostalgy, by XDG Kat-Productions: an unofficial project by certain members of [http://katpro.xiondigital.net/ XDG Kat-Productions].  No working demo is available, but development is reportedly still underway, albeit very slowly.&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives</id>
		<title>83Plus:OS:TIOS Alternatives</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:TIOS_Alternatives"/>
				<updated>2006-03-27T08:15:02Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: radical rewrite; similar content, new text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:OS_Information|TIOS Alternatives]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The TIOS, also known as AMS, is the official, standard operating system for the&lt;br /&gt;
TI-83+ series of calculators (including the TI-83+ and TI-84+ and the respective Silver&lt;br /&gt;
Editions of each).  The vast majority of programs for such calculators run on top of the&lt;br /&gt;
TIOS, or on top of some subsidiary program that runs from the TIOS, and thereby implicitly&lt;br /&gt;
depend on its functionality.  However, some people have researched writing alternative&lt;br /&gt;
operating system code and sending it to the calculator to replace the TIOS.&lt;br /&gt;
Several such alternative operating systems are available on the Web, though most of them are&lt;br /&gt;
not yet at a production stage of development.  These systems include:&lt;br /&gt;
&lt;br /&gt;
*[http://michaelv.org/programs/calcs/ceptic.php CEPTIC], by Michael Vincent: a Control and Execute Program for TI Calculators.  The current version of CEPTIC only runs on the TI-83+ SE, but can be modified to run on the TI-83+.  Assembly source is available, but actually using the OS in its present state is considered non-practical, and the project has been discontinued for various reasons.&lt;br /&gt;
*[http://pongos.sourceforge.net/ PongOS], by FloppusMaximus: a simple, proof-of-concept system whose namesake feature is an embedded Pong game.  Some other system utilities, mostly inspired by Dan Englender's Calcsys, are also available in PongOS, including a hex editor, memory mover (with flash capability), flash sector eraser, and port monitor.  Link support is not provided.&lt;br /&gt;
*[http://brazucs.unitedti.org/vera/ Vera], by UnitedTI: dubbed the &amp;quot;true calc lover's OS&amp;quot; on the website.  Vera is intended to consist of a very basic kernel which can be easily extended to include desired features.  Nicknamed the Core Design Principle by the developers, this architecture is very similar to that of an [http://en.wikipedia.org/wiki/Exokernel exokernel] operating system.  Vera is still in the planning stage as of 2006-03-27.&lt;br /&gt;
*[http://www.ticalc.org/archives/files/fileinfo/349/34973.html CSX], by Sean McLaughlin: a command-line-based operating system with a screen layout similar to that of the TI-89 calculators.  CSX provides a simple filesystem, send and receive of files over a link cable, hex editing of memory, and running of Z80 machine code programs.&lt;br /&gt;
*Nostalgy, by XDG Kat-Productions: an unofficial project by certain members of [http://katpro.xiondigital.net/ XDG Kat-Productions].  No working demo is available, but development is reportedly still underway, albeit very slowly.&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF0</id>
		<title>83Plus:BCALLs:4FF0</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF0"/>
				<updated>2006-03-27T07:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: wikify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RunGraphingHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunGraphingHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|4FF0 - RunGraphingHook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunGraphingHook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4FF0&lt;br /&gt;
&lt;br /&gt;
Checks the first byte of the block for the [[83Plus:Hooks:9B94|Graph Hook]].&lt;br /&gt;
If the byte is 83, the hook is run.  Otherwise, the active flag for the hook&lt;br /&gt;
is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Graph Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- Meaning what? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*HL points to the start of the hook.  &amp;lt;!-- The start of the block? --&amp;gt;&lt;br /&gt;
*F is 6A if the hook was not run.  &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino (probably)&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF9</id>
		<title>83Plus:BCALLs:4FF9</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF9"/>
				<updated>2006-03-27T07:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: add Destroys section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RunTracerHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunTracerHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|4FF9 - RunTracerHook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunTracerHook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4FF9&lt;br /&gt;
&lt;br /&gt;
Checks the first byte of the block for the [[83Plus:Hooks:9BA8|Trace Hook]].&lt;br /&gt;
If the byte is 83, the hook is run.  Otherwise, the active flag for the hook&lt;br /&gt;
is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Trace Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- What does this mean? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*HL points to the start of the hook.  &amp;lt;!-- The hook block? --&amp;gt;&lt;br /&gt;
*F is 6A if the hook was not run.  &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF9</id>
		<title>83Plus:BCALLs:4FF9</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4FF9"/>
				<updated>2006-03-27T07:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: wikify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RunTracerHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunTracerHook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|4FF9 - RunTracerHook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunTracerHook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4FF9&lt;br /&gt;
&lt;br /&gt;
Checks the first byte of the block for the [[83Plus:Hooks:9BA8|Trace Hook]].&lt;br /&gt;
If the byte is 83, the hook is run.  Otherwise, the active flag for the hook&lt;br /&gt;
is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Trace Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- What does this mean? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*HL points to the start of the hook.  &amp;lt;!-- The hook block? --&amp;gt;&lt;br /&gt;
*F is 6A if the hook was not run.  &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C</id>
		<title>83Plus:BCALLs:505C</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C"/>
				<updated>2006-03-27T07:25:17Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: fix wording, double sigh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|505C - RunCatalog1Hook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunCatalog1Hook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 505C&lt;br /&gt;
&lt;br /&gt;
Checks the first byte of the block for the [[83Plus:Hooks:9BB4|Catalog 1 Hook]].&lt;br /&gt;
If the byte is 83, the hook is run; otherwise, the active flag for the hook is&lt;br /&gt;
set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Catalog 1 Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- What on earth does this mean? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* HL points to the start of the hook. &amp;lt;!-- The start of the hook block, or what? --&amp;gt;&lt;br /&gt;
* F is 6A if the hook was not run. &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C</id>
		<title>83Plus:BCALLs:505C</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C"/>
				<updated>2006-03-27T07:23:32Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: remove wikify template, sigh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|505C - RunCatalog1Hook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunCatalog1Hook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 505C&lt;br /&gt;
&lt;br /&gt;
Checks the first byte at the block for the [[83Plus:Hooks:9BB4|Catalog 1 Hook]].&lt;br /&gt;
If the byte is 83, the hook is run; otherwise, the active flag for the hook is&lt;br /&gt;
set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Catalog 1 Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- What on earth does this mean? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* HL points to the start of the hook. &amp;lt;!-- The start of the hook block, or what? --&amp;gt;&lt;br /&gt;
* F is 6A if the hook was not run. &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C</id>
		<title>83Plus:BCALLs:505C</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:505C"/>
				<updated>2006-03-27T07:23:04Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: wikify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wikify}}&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|RunCatalog1Hook]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|505C - RunCatalog1Hook]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' RunCatalog1Hook&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 505C&lt;br /&gt;
&lt;br /&gt;
Checks the first byte at the block for the [[83Plus:Hooks:9BB4|Catalog 1 Hook]].&lt;br /&gt;
If the byte is 83, the hook is run; otherwise, the active flag for the hook is&lt;br /&gt;
set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
The block for the Catalog 1 Hook must be set up correctly.&lt;br /&gt;
&amp;lt;!-- What on earth does this mean? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* HL points to the start of the hook. &amp;lt;!-- The start of the hook block, or what? --&amp;gt;&lt;br /&gt;
* F is 6A if the hook was not run. &amp;lt;!-- And if it was run? --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1</id>
		<title>83Plus:BCALLs:50D1</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1"/>
				<updated>2006-03-27T07:18:51Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: fix for more conservative accuracy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|50D1 - ResSilentLink]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' ResSilentLink&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 50D1&lt;br /&gt;
&lt;br /&gt;
Disables the [[83Plus:Hooks:9BD0|Silent Link Hook]] by resetting its enable flag.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
The [[83Plus:Flags:36#Bit_7|active flag]] for the Silent Link Hook is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL is known to be present in AMS 1.13, and is undocumented.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1</id>
		<title>83Plus:BCALLs:50D1</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1"/>
				<updated>2006-03-27T07:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: re-add OS version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|50D1 - ResSilentLink]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' ResSilentLink&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 50D1&lt;br /&gt;
&lt;br /&gt;
Disables the [[83Plus:Hooks:9BD0|Silent Link Hook]] by resetting its enable flag.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
The [[83Plus:Flags:36#Bit_7|active flag]] for the Silent Link Hook is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This BCALL first appeared in AMS 1.13.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1</id>
		<title>83Plus:BCALLs:50D1</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:50D1"/>
				<updated>2006-03-27T07:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;Premchai21: wikify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Name:Hook|ResSilentLink]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|50D1 - ResSilentLink]]&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Unofficial Name:''' ResSilentLink&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 50D1&lt;br /&gt;
&lt;br /&gt;
Disables the [[83Plus:Hooks:9BD0|Silent Link Hook]] by resetting its enable flag.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
The [[83Plus:Flags:36#Bit_7|active flag]] for the Silent Link Hook is set to zero.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
*Michael Cimino&lt;/div&gt;</summary>
		<author><name>Premchai21</name></author>	</entry>

	</feed>