<?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=NonstickAtom</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=NonstickAtom"/>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Special:Contributions/NonstickAtom"/>
		<updated>2026-04-05T19:24:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:Memory_Layout</id>
		<title>83Plus:OS:Memory Layout</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:Memory_Layout"/>
				<updated>2020-12-09T18:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Fixed the memory layout to show that $FFFF is a scrap byte.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:OS Information|Memory Layout]]&lt;br /&gt;
== Memory Layout ==&lt;br /&gt;
This table describes how the RAM is organized.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Address&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[83Plus:RAM:8000|appData]] to [[83Plus:RAM:9D95|userMem]]-1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;System RAM: Used by the OS to store various pointers, settings, buffers, etc.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[83Plus:RAM:9D95|userMem]] to ([[83Plus:RAM:9820|tempMem]])-1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;User Memory: This is where all variables are stored.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9820|tempMem]]) to ([[83Plus:RAM:9822|FPBase]])-1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Temp Memory: This is where the OS stores temporary variables.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9822|FPBase]]) to ([[83Plus:RAM:9824|FPS]])-1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Floating Point Stack: A LIFO stack for floating point number (or variable names).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9824|FPS]]) to ([[83Plus:RAM:9828|OPS]])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Free RAM.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9828|OPS]])+1 to ([[83Plus:RAM:9826|OPBase]])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Operator Stack: A LIFO stack used to parse expressions and to store return information when a TI-Basic program is called from another TI-Basic program. TI won't tell anything about this.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9826|OPBase]])+1 to ([[83Plus:RAM:982E|pTemp]])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Variable Allocation Table (VAT) for temporary variables.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:982E|pTemp]])+1 to ([[83Plus:RAM:9830|progPtr]])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Variable Allocation Table (VAT) for programs,appvars,groups and lists with variable length names.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;([[83Plus:RAM:9830|progPtr]])+1 to [[83Plus:RAM:FE66|symTable]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Variable Allocation Table (VAT) for all variables with a fixed name: reals, strings, ans, functions, matrices, etc.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[83Plus:RAM:FE66|symTable]]+1 to $FFFE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Hardware Stack&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
the_mad_joob found that $FFFF is unused by the system. It is an extra scrap byte.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Z80_Instruction_Set</id>
		<title>Z80 Instruction Set</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Z80_Instruction_Set"/>
				<updated>2020-12-09T18:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Legend ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Notation !! Meaning !! Respective opcode bits&lt;br /&gt;
|-&lt;br /&gt;
| A || 16-bit address or immediate || alalalal ahahahah&lt;br /&gt;
|-&lt;br /&gt;
| B || Bit number: 0..7 || bbb = 000..111&lt;br /&gt;
|-&lt;br /&gt;
| C || Condition: nz, z, nc, c, po, pe, p, m || ccc = 000, 001, 010, 011, 100, 101, 110, 111&lt;br /&gt;
|-&lt;br /&gt;
| D || 8-bit signed relative offset || dddddddd&lt;br /&gt;
|-&lt;br /&gt;
| E || 16-bit relative address || dddddddd (E minus address of next instruction)&lt;br /&gt;
|-&lt;br /&gt;
| I || Index register: ix, iy || i = 0, 1&lt;br /&gt;
|-&lt;br /&gt;
| J || Half index register: ixh, ixl, iyh, iyl || (i, b) = (0, 0), (0, 1), (1, 0), (1, 1)&lt;br /&gt;
|-&lt;br /&gt;
| N || 8-bit immediate || nnnnnnnn&lt;br /&gt;
|-&lt;br /&gt;
| P || 16-bit register pair: bc, de, hl, af || pp = 00, 01, 10, 11&lt;br /&gt;
|-&lt;br /&gt;
| Q || 16-bit register: bc, de, hl/ix/iy, sp || qq = 00, 01, 10, 11&lt;br /&gt;
|-&lt;br /&gt;
| R || 8-bit general purpose register: a, b, c, d, e, h, l || rrr (or sss) = 111, 000, 001, 010, 011, 100, 101&lt;br /&gt;
|-&lt;br /&gt;
| S || Restart address: 0x00, 0x08,..., 0x38 || sss = 000, 001,..., 111&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
* - = no change&lt;br /&gt;
* + = change by definition (if noted, by the operation marked with '=&amp;gt; flags', otherwise by the only non-single-bit operation):&lt;br /&gt;
** S = sign, bit 7 of the result byte (accumulator or high byte for 16-bit operations)&lt;br /&gt;
** Z = zero, set if the result is zero (8 or 16-bit value)&lt;br /&gt;
** X = undocumented, bit 5 of the result byte&lt;br /&gt;
** H = half-carry, the carry (theoretical bit 4) of the low nibble of the result byte&lt;br /&gt;
** Y = undocumented, bit 3 of the result byte&lt;br /&gt;
** P = parity (set if the result byte has an even number of bits set) or overflow (set when crossing the boundary of the signed range); always specified&lt;br /&gt;
** N = negative, set if the previous operation was a subtraction; always specified&lt;br /&gt;
** C = carry, the theoretical bit 8 of the result byte&lt;br /&gt;
* 0 = always reset&lt;br /&gt;
* 1 = always set&lt;br /&gt;
* X = change described under Effect&lt;br /&gt;
* P = parity (only for the parity flag)&lt;br /&gt;
* V = overflow (only for the parity flag)&lt;br /&gt;
* A = OR with the respective bit of the accumulator&lt;br /&gt;
* C = set if the counter (bc) is nonzero after decrementing&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* () = indirection&lt;br /&gt;
* (()) = I/O port&lt;br /&gt;
* [] = operator precedence (to avoid confusion with indirection)&lt;br /&gt;
* E.B = the Bth bit of the value of expression E&lt;br /&gt;
* &amp;amp;#42; = any bit value (0 or 1)&lt;br /&gt;
* memptr = an internal 16-bit register connected to 16-bit operations&lt;br /&gt;
* tmp, tmp2 = temporary storage whose value is thrown away after each instruction&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Instruction:''A'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| adc a,R || &amp;lt;tt&amp;gt;10001rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 0 || + || a += R + cf&lt;br /&gt;
|-&lt;br /&gt;
| adc a,J || &amp;lt;tt&amp;gt;11i11101 1000110b&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 0 || + || a += J + cf&lt;br /&gt;
|-&lt;br /&gt;
| adc a,N || &amp;lt;tt&amp;gt;11001110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 0 || + || a += N + cf&lt;br /&gt;
|-&lt;br /&gt;
| adc a,(hl) || &amp;lt;tt&amp;gt;10001110&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 0 || + || a += (hl) + cf&lt;br /&gt;
|-&lt;br /&gt;
| adc a,(I+D) || &amp;lt;tt&amp;gt;11i11101 10001110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || + || + || V || 0 || + || a += (I+D) + cf&lt;br /&gt;
|-&lt;br /&gt;
| adc hl,Q || &amp;lt;tt&amp;gt;11101101 01qq1010&amp;lt;/tt&amp;gt; || 15 || + || + || + || + || + || V || 0 || + || hl += Q + cf&lt;br /&gt;
|-&lt;br /&gt;
| add a,R || &amp;lt;tt&amp;gt;10000rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 0 || + || a += R&lt;br /&gt;
|-&lt;br /&gt;
| add a,J || &amp;lt;tt&amp;gt;11i11101 1000010b&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 0 || + || a += J&lt;br /&gt;
|-&lt;br /&gt;
| add a,N || &amp;lt;tt&amp;gt;11000110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 0 || + || a += N&lt;br /&gt;
|-&lt;br /&gt;
| add a,(hl) || &amp;lt;tt&amp;gt;10000110&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 0 || + || a += (hl)&lt;br /&gt;
|-&lt;br /&gt;
| add a,(I+D) || &amp;lt;tt&amp;gt;11i11101 10000110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || + || + || V || 0 || + || a += (I+D)&lt;br /&gt;
|-&lt;br /&gt;
| add hl,Q || &amp;lt;tt&amp;gt;00qq1001&amp;lt;/tt&amp;gt; || 11 || - || - || + || + || + || - || 0 || + || hl += Q&lt;br /&gt;
|-&lt;br /&gt;
| add I,Q || &amp;lt;tt&amp;gt;11i11101 00qq1001&amp;lt;/tt&amp;gt; || 15 || - || - || + || + || + || - || 0 || + || I += Q&lt;br /&gt;
|-&lt;br /&gt;
| and R || &amp;lt;tt&amp;gt;10100rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || 1 || + || P || 0 || 0 || a := a AND R&lt;br /&gt;
|-&lt;br /&gt;
| and J || &amp;lt;tt&amp;gt;11i11101 1010010b&amp;lt;/tt&amp;gt; || 8 || + || + || + || 1 || + || P || 0 || 0 || a := a AND J&lt;br /&gt;
|-&lt;br /&gt;
| and N || &amp;lt;tt&amp;gt;11100110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || 1 || + || P || 0 || 0 || a := a AND N&lt;br /&gt;
|-&lt;br /&gt;
| and (hl) || &amp;lt;tt&amp;gt;10100110&amp;lt;/tt&amp;gt; || 7 || + || + || + || 1 || + || P || 0 || 0 || a := a AND (hl)&lt;br /&gt;
|-&lt;br /&gt;
| and (I+D) || &amp;lt;tt&amp;gt;11i11101 10100110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || 1 || + || P || 0 || 0 || a := a AND (I+D)&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''B'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| bit B,R || &amp;lt;tt&amp;gt;11001011 01bbbrrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 1 || + || P || 0 || - || tmp := R AND [1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| bit B,(hl) || &amp;lt;tt&amp;gt;11001011 01bbb110&amp;lt;/tt&amp;gt; || 12 || + || + || X || 1 || X || P || 0 || - || tmp := (hl) AND [1 &amp;lt;&amp;lt; B],&amp;lt;br&amp;gt;xf := memptr.13, yf := memptr.11&lt;br /&gt;
|-&lt;br /&gt;
| bit B,(I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 01bbb***&amp;lt;/tt&amp;gt; || 20 || + || + || X || 1 || X || P || 0 || - || tmp := (I+D) AND [1 &amp;lt;&amp;lt; B],&amp;lt;br&amp;gt;xf := [I+D].13, yf := [I+D].11&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''C'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| call A || &amp;lt;tt&amp;gt;11001101 alalalal ahahahah&amp;lt;/tt&amp;gt; || 17 || - || - || - || - || - || - || - || - || sp -= 2, (sp) := pc, pc := A&lt;br /&gt;
|-&lt;br /&gt;
| call C,A || &amp;lt;tt&amp;gt;11ccc100 alalalal ahahahah&amp;lt;/tt&amp;gt; || 17/10 || - || - || - || - || - || - || - || - || if C then sp -= 2, (sp) := pc, pc := A&lt;br /&gt;
|-&lt;br /&gt;
| ccf || &amp;lt;tt&amp;gt;00111111&amp;lt;/tt&amp;gt; || 4 || - || - || A || X || A || - || 0 || X || hf := cf, cf := ~cf&lt;br /&gt;
|-&lt;br /&gt;
| cp R || &amp;lt;tt&amp;gt;10111rrr&amp;lt;/tt&amp;gt; || 4 || + || + || X || + || X || V || 1 || + || tmp := a - R, xf := R.5, yf = R.3&lt;br /&gt;
|-&lt;br /&gt;
| cp J || &amp;lt;tt&amp;gt;11i11101 1011110b&amp;lt;/tt&amp;gt; || 8 || + || + || X || + || X || V || 1 || + || tmp := a - J, xf := J.5, yf = J.3&lt;br /&gt;
|-&lt;br /&gt;
| cp N || &amp;lt;tt&amp;gt;11111110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || X || + || X || V || 1 || + || tmp := a - N, xf := N.5, yf = N.3&lt;br /&gt;
|-&lt;br /&gt;
| cp (hl) || &amp;lt;tt&amp;gt;10111110&amp;lt;/tt&amp;gt; || 7 || + || + || X || + || X || V || 1 || + || tmp := a - (hl), xf := (hl).5, yf = (hl).3&lt;br /&gt;
|-&lt;br /&gt;
| cp (I+D) || &amp;lt;tt&amp;gt;11i11101 10111110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || X || + || X || V || 1 || + || tmp := a - (I+D), xf := (I+D).5, yf = (I+D).3&lt;br /&gt;
|-&lt;br /&gt;
| cpd || &amp;lt;tt&amp;gt;11101101 10101001&amp;lt;/tt&amp;gt; || 16 || + || + || X || + || X || C || 1 || - || tmp := a - (hl) =&amp;gt; flags, bc -= 1, hl -= 1,&amp;lt;br&amp;gt;xf := [tmp - hf].1, yf = [tmp - hf].3&lt;br /&gt;
|-&lt;br /&gt;
| cpdr || &amp;lt;tt&amp;gt;11101101 10111001&amp;lt;/tt&amp;gt; || 21/16 || + || + || X || + || X || C || 1 || - || cpd, if bc &amp;lt;&amp;gt; 0 and nz then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
| cpi || &amp;lt;tt&amp;gt;11101101 10100001&amp;lt;/tt&amp;gt; || 16 || + || + || X || + || X || C || 1 || - || tmp := a - (hl) =&amp;gt; flags, bc -= 1, hl += 1,&amp;lt;br&amp;gt;xf := [tmp - hf].1, yf = [tmp - hf].3&lt;br /&gt;
|-&lt;br /&gt;
| cpir || &amp;lt;tt&amp;gt;11101101 10110001&amp;lt;/tt&amp;gt; || 21/16 || + || + || X || + || X || C || 1 || - || cpi, if bc &amp;lt;&amp;gt; 0 and nz then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
| cpl || &amp;lt;tt&amp;gt;00101111&amp;lt;/tt&amp;gt; || 4 || - || - || + || 1 || + || - || 1 || - || a := ~a&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''D'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| daa || &amp;lt;tt&amp;gt;00100111&amp;lt;/tt&amp;gt; || 4 || + || + || + || X || + || P || - || X || tmp := a,&amp;lt;br&amp;gt;if nf then&amp;lt;br&amp;gt;&amp;amp;nbsp;if hf or [a AND 0x0f &amp;gt; 9] then tmp -= 0x06&amp;lt;br&amp;gt;&amp;amp;nbsp;if cf or [a &amp;gt; 0x99] then tmp -= 0x60&amp;lt;br&amp;gt;else&amp;lt;br&amp;gt;&amp;amp;nbsp;if hf or [a AND 0x0f &amp;gt; 9] then tmp += 0x06&amp;lt;br&amp;gt;&amp;amp;nbsp;if cf or [a &amp;gt; 0x99] then tmp += 0x60&amp;lt;br&amp;gt;endif,&amp;lt;br&amp;gt;tmp =&amp;gt; flags, cf := cf OR [a &amp;gt; 0x99],&amp;lt;br&amp;gt;hf := a.4 XOR tmp.4, a := tmp&lt;br /&gt;
|-&lt;br /&gt;
| dec R || &amp;lt;tt&amp;gt;00rrr101&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 1 || - || R -= 1&lt;br /&gt;
|-&lt;br /&gt;
| dec J || &amp;lt;tt&amp;gt;11i11101 0010b101&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 1 || - || J -= 1&lt;br /&gt;
|-&lt;br /&gt;
| dec (hl) || &amp;lt;tt&amp;gt;00110101&amp;lt;/tt&amp;gt; || 11 || + || + || + || + || + || V || 1 || - || (hl) -= 1&lt;br /&gt;
|-&lt;br /&gt;
| dec (I+D) || &amp;lt;tt&amp;gt;11i11101 00110101 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || + || + || V || 1 || - || (I+D) -= 1&lt;br /&gt;
|-&lt;br /&gt;
| dec Q || &amp;lt;tt&amp;gt;00qq1011&amp;lt;/tt&amp;gt; || 6 || - || - || - || - || - || - || - || - || Q -= 1&lt;br /&gt;
|-&lt;br /&gt;
| dec I || &amp;lt;tt&amp;gt;11i11101 00101011&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || I -= 1&lt;br /&gt;
|-&lt;br /&gt;
| di || &amp;lt;tt&amp;gt;11110011&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || iff1 := 0, iff2 := 0&lt;br /&gt;
|-&lt;br /&gt;
| djnz E || &amp;lt;tt&amp;gt;00010000 dddddddd&amp;lt;/tt&amp;gt; || 13/8 || - || - || - || - || - || - || - || - || b -= 1, if b &amp;lt;&amp;gt; 0 then pc := E&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''E'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| ei || &amp;lt;tt&amp;gt;11111011&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || iff1 := 1, iff2 := 1 after the next instruction&lt;br /&gt;
|-&lt;br /&gt;
| ex (sp),hl || &amp;lt;tt&amp;gt;11100011&amp;lt;/tt&amp;gt; || 19 || - || - || - || - || - || - || - || - || (sp) &amp;lt;=&amp;gt; hl&lt;br /&gt;
|-&lt;br /&gt;
| ex (sp),I || &amp;lt;tt&amp;gt;11i11101 11100011&amp;lt;/tt&amp;gt; || 23 || - || - || - || - || - || - || - || - || (sp) &amp;lt;=&amp;gt; I&lt;br /&gt;
|-&lt;br /&gt;
| ex af,af' || &amp;lt;tt&amp;gt;00001000&amp;lt;/tt&amp;gt; || 4 || X || X || X || X || X || X || X || X || af &amp;lt;=&amp;gt; af'&lt;br /&gt;
|-&lt;br /&gt;
| ex de,hl || &amp;lt;tt&amp;gt;11101011&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || de &amp;lt;=&amp;gt; hl&lt;br /&gt;
|-&lt;br /&gt;
| exx || &amp;lt;tt&amp;gt;11011001&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || bc, de, hl &amp;lt;=&amp;gt; bc', de', hl'&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''H'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| halt || &amp;lt;tt&amp;gt;01110110&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || wait for interrupt&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''I'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| im 0 || &amp;lt;tt&amp;gt;11101101 01*0*110&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || mode 0: execute instruction on bus&lt;br /&gt;
|-&lt;br /&gt;
| im 1 || &amp;lt;tt&amp;gt;11101101 01*10110&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || mode 1: execute rst $38&lt;br /&gt;
|-&lt;br /&gt;
| im 2 || &amp;lt;tt&amp;gt;11101101 01*11110&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || mode 2: call (i * 256 + byte on bus)&lt;br /&gt;
|-&lt;br /&gt;
| in a,(N) || &amp;lt;tt&amp;gt;11011011 nnnnnnnn&amp;lt;/tt&amp;gt; || 11 || - || - || - || - || - || - || - || - || a := ((N))&lt;br /&gt;
|-&lt;br /&gt;
| in R,(c) || &amp;lt;tt&amp;gt;11101101 01rrr000&amp;lt;/tt&amp;gt; || 12 || + || + || + || 0 || + || P || 0 || - || R := ((c))&lt;br /&gt;
|-&lt;br /&gt;
| in f,(c) || &amp;lt;tt&amp;gt;11101101 01110000&amp;lt;/tt&amp;gt; || 12 || + || + || + || 0 || + || P || 0 || - || tmp := ((c))&lt;br /&gt;
|-&lt;br /&gt;
| inc R || &amp;lt;tt&amp;gt;00rrr100&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 0 || - || R += 1&lt;br /&gt;
|-&lt;br /&gt;
| inc J || &amp;lt;tt&amp;gt;11i11101 0010b100&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 0 || - || J += 1&lt;br /&gt;
|-&lt;br /&gt;
| inc (hl) || &amp;lt;tt&amp;gt;00110100&amp;lt;/tt&amp;gt; || 11 || + || + || + || + || + || V || 0 || - || (hl) += 1&lt;br /&gt;
|-&lt;br /&gt;
| inc (I+D) || &amp;lt;tt&amp;gt;11i11101 00110100 dddddddd&amp;lt;/tt&amp;gt; || 23 || + || + || + || + || + || V || 0 || - || (I+D) += 1&lt;br /&gt;
|-&lt;br /&gt;
| inc Q || &amp;lt;tt&amp;gt;00qq0011&amp;lt;/tt&amp;gt; || 6 || - || - || - || - || - || - || - || - || Q += 1&lt;br /&gt;
|-&lt;br /&gt;
| inc I || &amp;lt;tt&amp;gt;11i11101 00100011&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || I += 1&lt;br /&gt;
|-&lt;br /&gt;
| ind || &amp;lt;tt&amp;gt;11101101 10101010&amp;lt;/tt&amp;gt; || 16 || + || + || + || X || + || X || X || X || tmp := ((c)), (hl) := tmp, hl -= 1,&amp;lt;br&amp;gt;b -= 1 =&amp;gt; flags, nf := tmp.7,&amp;lt;br&amp;gt;tmp2 = tmp + [[c - 1] AND 0xff],&amp;lt;br&amp;gt;pf := parity of [[tmp2 AND 0x07] XOR b],&amp;lt;br&amp;gt;hf := cf := tmp2 &amp;gt; 255&lt;br /&gt;
|-&lt;br /&gt;
| indr || &amp;lt;tt&amp;gt;11101101 10111010&amp;lt;/tt&amp;gt; || 21/16 || + || + || + || X || + || X || X || X || ind, if b &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
| ini || &amp;lt;tt&amp;gt;11101101 10100010&amp;lt;/tt&amp;gt; || 16 || + || + || + || X || + || X || X || X || tmp := ((c)), (hl) := tmp, hl += 1,&amp;lt;br&amp;gt;b -= 1 =&amp;gt; flags, nf := tmp.7,&amp;lt;br&amp;gt;tmp2 := tmp + [[c + 1] AND 0xff],&amp;lt;br&amp;gt;pf := parity of [[tmp2 AND 0x07] XOR b],&amp;lt;br&amp;gt;hf := cf := tmp2 &amp;gt; 255&lt;br /&gt;
|-&lt;br /&gt;
| inir || &amp;lt;tt&amp;gt;11101101 10110010&amp;lt;/tt&amp;gt; || 21/16 || + || + || + || X || + || X || X || X || ini, if b &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''J'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| jp A || &amp;lt;tt&amp;gt;11000011 alalalal ahahahah&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || pc := A&lt;br /&gt;
|-&lt;br /&gt;
| jp (hl) || &amp;lt;tt&amp;gt;11101001&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || pc := hl&lt;br /&gt;
|-&lt;br /&gt;
| jp (I) || &amp;lt;tt&amp;gt;11i11101 11101001&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || pc := I&lt;br /&gt;
|-&lt;br /&gt;
| jp C,A || &amp;lt;tt&amp;gt;11ccc010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || if C then pc := A&lt;br /&gt;
|-&lt;br /&gt;
| jr E || &amp;lt;tt&amp;gt;00011000 dddddddd&amp;lt;/tt&amp;gt; || 12 || - || - || - || - || - || - || - || - || pc := E&lt;br /&gt;
|-&lt;br /&gt;
| jr nz,E || &amp;lt;tt&amp;gt;00100000 dddddddd&amp;lt;/tt&amp;gt; || 12/7 || - || - || - || - || - || - || - || - || if nz then pc := E&lt;br /&gt;
|-&lt;br /&gt;
| jr z,E || &amp;lt;tt&amp;gt;00101000 dddddddd&amp;lt;/tt&amp;gt; || 12/7 || - || - || - || - || - || - || - || - || if zf then pc := E&lt;br /&gt;
|-&lt;br /&gt;
| jr nc,E || &amp;lt;tt&amp;gt;00110000 dddddddd&amp;lt;/tt&amp;gt; || 12/7 || - || - || - || - || - || - || - || - || if nc then pc := E&lt;br /&gt;
|-&lt;br /&gt;
| jr c,E || &amp;lt;tt&amp;gt;00111000 dddddddd&amp;lt;/tt&amp;gt; || 12/7 || - || - || - || - || - || - || - || - || if cf then pc := E&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''L'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| ld R1,R2 || &amp;lt;tt&amp;gt;01rrrsss&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || R1 := R2&lt;br /&gt;
|-&lt;br /&gt;
| ld R,J || &amp;lt;tt&amp;gt;11i11101 01rrr10b&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || R := J&lt;br /&gt;
|-&lt;br /&gt;
| ld J,R || &amp;lt;tt&amp;gt;11i11101 0110brrr&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || J := R&lt;br /&gt;
|-&lt;br /&gt;
| ld ixh,ixl || &amp;lt;tt&amp;gt;11011101 01100101&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || ixh := ixl&lt;br /&gt;
|-&lt;br /&gt;
| ld ixl,ixh || &amp;lt;tt&amp;gt;11011101 01101100&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || ixl := ixh&lt;br /&gt;
|-&lt;br /&gt;
| ld iyh,iyl || &amp;lt;tt&amp;gt;11111101 01100101&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || iyh := iyl&lt;br /&gt;
|-&lt;br /&gt;
| ld iyl,iyh || &amp;lt;tt&amp;gt;11111101 01101100&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || iyl := iyh&lt;br /&gt;
|-&lt;br /&gt;
| ld R,N || &amp;lt;tt&amp;gt;00rrr110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || R := N&lt;br /&gt;
|-&lt;br /&gt;
| ld R,(hl) || &amp;lt;tt&amp;gt;01rrr110&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || R := (hl)&lt;br /&gt;
|-&lt;br /&gt;
| ld R,(I+D) || &amp;lt;tt&amp;gt;11i11101 01rrr110 dddddddd&amp;lt;/tt&amp;gt; || 19 || - || - || - || - || - || - || - || - || R := (I+D)&lt;br /&gt;
|-&lt;br /&gt;
| ld (hl),R || &amp;lt;tt&amp;gt;01110rrr&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || (hl) := R&lt;br /&gt;
|-&lt;br /&gt;
| ld (hl),N || &amp;lt;tt&amp;gt;00110110 nnnnnnnn&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || (hl) := N&lt;br /&gt;
|-&lt;br /&gt;
| ld (I+D),R || &amp;lt;tt&amp;gt;11i11101 01110rrr dddddddd&amp;lt;/tt&amp;gt; || 19 || - || - || - || - || - || - || - || - || (I+D) := R&lt;br /&gt;
|-&lt;br /&gt;
| ld (I+D),N || &amp;lt;tt&amp;gt;11i11101 00110110 dddddddd nnnnnnnn&amp;lt;/tt&amp;gt; || 19 || - || - || - || - || - || - || - || - || (I+D) := N&lt;br /&gt;
|-&lt;br /&gt;
| ld a,(bc) || &amp;lt;tt&amp;gt;00001010&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || a := (bc)&lt;br /&gt;
|-&lt;br /&gt;
| ld a,(de) || &amp;lt;tt&amp;gt;00011010&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || a := (de)&lt;br /&gt;
|-&lt;br /&gt;
| ld a,(A) || &amp;lt;tt&amp;gt;00111010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 13 || - || - || - || - || - || - || - || - || a := (A)&lt;br /&gt;
|-&lt;br /&gt;
| ld (bc),a || &amp;lt;tt&amp;gt;00000010&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || (bc) := a&lt;br /&gt;
|-&lt;br /&gt;
| ld (de),a || &amp;lt;tt&amp;gt;00010010&amp;lt;/tt&amp;gt; || 7 || - || - || - || - || - || - || - || - || (de) := a&lt;br /&gt;
|-&lt;br /&gt;
| ld (A),a || &amp;lt;tt&amp;gt;00110010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 13 || - || - || - || - || - || - || - || - || (A) := a&lt;br /&gt;
|-&lt;br /&gt;
| ld i,a || &amp;lt;tt&amp;gt;11101101 01000111&amp;lt;/tt&amp;gt; || 9 || - || - || - || - || - || - || - || - || i := a&lt;br /&gt;
|-&lt;br /&gt;
| ld r,a || &amp;lt;tt&amp;gt;11101101 01001111&amp;lt;/tt&amp;gt; || 9 || - || - || - || - || - || - || - || - || r := a&lt;br /&gt;
|-&lt;br /&gt;
| ld a,i || &amp;lt;tt&amp;gt;11101101 01010111&amp;lt;/tt&amp;gt; || 9 || + || + || + || 0 || + || X || 0 || - || a := i, pf := iff2&lt;br /&gt;
|-&lt;br /&gt;
| ld a,r || &amp;lt;tt&amp;gt;11101101 01011111&amp;lt;/tt&amp;gt; || 9 || + || + || + || 0 || + || X || 0 || - || a := r, pf := iff2&lt;br /&gt;
|-&lt;br /&gt;
| ld Q,A || &amp;lt;tt&amp;gt;00qq0001 alalalal ahahahah&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || Q := A&lt;br /&gt;
|-&lt;br /&gt;
| ld I,A || &amp;lt;tt&amp;gt;11i11101 00100001 alalalal ahahahah&amp;lt;/tt&amp;gt; || 14 || - || - || - || - || - || - || - || - || I := A&lt;br /&gt;
|-&lt;br /&gt;
| ld Q,(A) || &amp;lt;tt&amp;gt;11101101 01qq1011 alalalal ahahahah&amp;lt;/tt&amp;gt; || 20 || - || - || - || - || - || - || - || - || Q := (A) [ld hl,(A) has a faster non-prefixed duplicate, see below.]&lt;br /&gt;
|-&lt;br /&gt;
| ld hl,(A) || &amp;lt;tt&amp;gt;00101010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 16 || - || - || - || - || - || - || - || - || hl := (A)&lt;br /&gt;
|-&lt;br /&gt;
| ld I,(A) || &amp;lt;tt&amp;gt;11i11101 00101010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 20 || - || - || - || - || - || - || - || - || I := (A)&lt;br /&gt;
|-&lt;br /&gt;
| ld (A),Q || &amp;lt;tt&amp;gt;11101101 01qq0011 alalalal ahahahah&amp;lt;/tt&amp;gt; || 20 || - || - || - || - || - || - || - || - || (A) := Q [ld (A),hl has a faster non-prefixed duplicate, see below.]&lt;br /&gt;
|-&lt;br /&gt;
| ld (A),hl || &amp;lt;tt&amp;gt;00100010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 16 || - || - || - || - || - || - || - || - || (A) := hl&lt;br /&gt;
|-&lt;br /&gt;
| ld (A),I || &amp;lt;tt&amp;gt;11i11101 00100010 alalalal ahahahah&amp;lt;/tt&amp;gt; || 20 || - || - || - || - || - || - || - || - || (A) := I&lt;br /&gt;
|-&lt;br /&gt;
| ld sp,hl || &amp;lt;tt&amp;gt;11111001&amp;lt;/tt&amp;gt; || 6 || - || - || - || - || - || - || - || - || sp := hl&lt;br /&gt;
|-&lt;br /&gt;
| ld sp,I || &amp;lt;tt&amp;gt;11i11101 11111001&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || sp := I&lt;br /&gt;
|-&lt;br /&gt;
| ldd || &amp;lt;tt&amp;gt;11101101 10101000&amp;lt;/tt&amp;gt; || 16 || - || - || X || 0 || X || C || 0 || - || tmp := (hl), (de) := tmp, de -= 1, hl -= 1,&amp;lt;br&amp;gt;bc -= 1, xf := [tmp + a].1, yf = [tmp + a].3&lt;br /&gt;
|-&lt;br /&gt;
| lddr || &amp;lt;tt&amp;gt;11101101 10111000&amp;lt;/tt&amp;gt; || 21/16 || - || - || X || 0 || X || C || 0 || - || ldd, if bc &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
| ldi || &amp;lt;tt&amp;gt;11101101 10100000&amp;lt;/tt&amp;gt; || 16 || - || - || X || 0 || X || C || 0 || - || tmp := (hl), (de) := tmp, de += 1, hl += 1,&amp;lt;br&amp;gt;bc -= 1, xf := [tmp + a].1, yf = [tmp + a].3&lt;br /&gt;
|-&lt;br /&gt;
| ldir || &amp;lt;tt&amp;gt;11101101 10110000&amp;lt;/tt&amp;gt; || 21/16 || - || - || X || 0 || X || C || 0 || - || ldi, if bc &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''N'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| neg || &amp;lt;tt&amp;gt;11101101 01***100&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 1 || + || a := 0 - a&lt;br /&gt;
|-&lt;br /&gt;
| nop || &amp;lt;tt&amp;gt;00000000&amp;lt;/tt&amp;gt; || 4 || - || - || - || - || - || - || - || - || nothing&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''O'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| or R || &amp;lt;tt&amp;gt;10110rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || 0 || + || P || 0 || 0 || a := a OR R&lt;br /&gt;
|-&lt;br /&gt;
| or J || &amp;lt;tt&amp;gt;11i11101 1011010b&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || 0 || a := a OR J&lt;br /&gt;
|-&lt;br /&gt;
| or N || &amp;lt;tt&amp;gt;11110110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || 0 || + || P || 0 || 0 || a := a OR N&lt;br /&gt;
|-&lt;br /&gt;
| or (hl) || &amp;lt;tt&amp;gt;10110110&amp;lt;/tt&amp;gt; || 7 || + || + || + || 0 || + || P || 0 || 0 || a := a OR (hl)&lt;br /&gt;
|-&lt;br /&gt;
| or (I+D) || &amp;lt;tt&amp;gt;11i11101 10110110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || 0 || + || P || 0 || 0 || a := a OR (I+D)&lt;br /&gt;
|-&lt;br /&gt;
| out (N),a || &amp;lt;tt&amp;gt;11010011 nnnnnnnn&amp;lt;/tt&amp;gt; || 11 || - || - || - || - || - || - || - || - || ((N)) := a&lt;br /&gt;
|-&lt;br /&gt;
| out (c),R || &amp;lt;tt&amp;gt;11101101 01rrr001&amp;lt;/tt&amp;gt; || 12 || - || - || - || - || - || - || - || - || ((c)) := R&lt;br /&gt;
|-&lt;br /&gt;
| out (c),0 || &amp;lt;tt&amp;gt;11101101 01110001&amp;lt;/tt&amp;gt; || 12 || - || - || - || - || - || - || - || - || ((c)) := ? (seems to vary with CPU)&lt;br /&gt;
|-&lt;br /&gt;
| outd || &amp;lt;tt&amp;gt;11101101 10101011&amp;lt;/tt&amp;gt; || 16 || + || + || + || X || + || X || X || X || tmp := (hl), ((c)) := tmp, hl -= 1,&amp;lt;br&amp;gt;b -= 1 =&amp;gt; flags, nf := tmp.7, tmp2 = tmp + l,&amp;lt;br&amp;gt;pf := parity of [[tmp2 AND 0x07] XOR b],&amp;lt;br&amp;gt;hf := cf := tmp2 &amp;gt; 255&lt;br /&gt;
|-&lt;br /&gt;
| otdr || &amp;lt;tt&amp;gt;11101101 10111011&amp;lt;/tt&amp;gt; || 21/16 || + || + || + || X || + || X || X || X || outd, if b &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
| outi || &amp;lt;tt&amp;gt;11101101 10100011&amp;lt;/tt&amp;gt; || 16 || + || + || + || X || + || X || X || X || tmp := (hl), ((c)) := tmp, hl += 1,&amp;lt;br&amp;gt;b -= 1 =&amp;gt; flags, nf := tmp.7, tmp2 = tmp + l,&amp;lt;br&amp;gt;pf := parity of [[tmp2 AND 0x07] XOR b],&amp;lt;br&amp;gt;hf := cf := tmp2 &amp;gt; 255&lt;br /&gt;
|-&lt;br /&gt;
| otir || &amp;lt;tt&amp;gt;11101101 10110011&amp;lt;/tt&amp;gt; || 21/16 || + || + || + || X || + || X || X || X || outi, if b &amp;lt;&amp;gt; 0 then pc -= 2&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''P'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| pop P || &amp;lt;tt&amp;gt;11pp0001&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || P := (sp), sp += 2&lt;br /&gt;
|-&lt;br /&gt;
| pop I || &amp;lt;tt&amp;gt;11i11101 11100001&amp;lt;/tt&amp;gt; || 14 || - || - || - || - || - || - || - || - || I := (sp), sp += 2&lt;br /&gt;
|-&lt;br /&gt;
| push P || &amp;lt;tt&amp;gt;11pp0101&amp;lt;/tt&amp;gt; || 11 || - || - || - || - || - || - || - || - || sp -= 2, (sp) := P&lt;br /&gt;
|-&lt;br /&gt;
| push I || &amp;lt;tt&amp;gt;11i11101 11100101&amp;lt;/tt&amp;gt; || 15 || - || - || - || - || - || - || - || - || sp -= 2, (sp) := I&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''R'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| res B,R || &amp;lt;tt&amp;gt;11001011 10bbbrrr&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || R := R AND ~[1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| res B,(hl) || &amp;lt;tt&amp;gt;11001011 10bbb110&amp;lt;/tt&amp;gt; || 15 || - || - || - || - || - || - || - || - || (hl) := (hl) AND ~[1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| res B,(I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 10bbb110&amp;lt;/tt&amp;gt; || 23 || - || - || - || - || - || - || - || - || (I+D) := (I+D) AND ~[1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| res B,(I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 10bbbrrr&amp;lt;/tt&amp;gt; || 23 || - || - || - || - || - || - || - || - || (I+D) := R := (I+D) AND ~[1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| ret || &amp;lt;tt&amp;gt;11001001&amp;lt;/tt&amp;gt; || 10 || - || - || - || - || - || - || - || - || pc := (sp), sp += 2&lt;br /&gt;
|-&lt;br /&gt;
| ret C || &amp;lt;tt&amp;gt;11ccc000&amp;lt;/tt&amp;gt; || 11/5 || - || - || - || - || - || - || - || - || if C then pc := (sp), sp += 2&lt;br /&gt;
|-&lt;br /&gt;
| reti || &amp;lt;tt&amp;gt;11101101 01**1101&amp;lt;/tt&amp;gt; || 14 || - || - || - || - || - || - || - || - || pc := (sp), sp += 2, iff1 := iff2&lt;br /&gt;
|-&lt;br /&gt;
| retn || &amp;lt;tt&amp;gt;11101101 01**0101&amp;lt;/tt&amp;gt; || 14 || - || - || - || - || - || - || - || - || pc := (sp), sp += 2, iff1 := iff2&lt;br /&gt;
|-&lt;br /&gt;
| rla || &amp;lt;tt&amp;gt;00010111&amp;lt;/tt&amp;gt; || 4 || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.7, a := [a &amp;lt;&amp;lt; 1] + ocf&lt;br /&gt;
|-&lt;br /&gt;
| rl R || &amp;lt;tt&amp;gt;11001011 00010rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.7, R := [R &amp;lt;&amp;lt; 1] + ocf&lt;br /&gt;
|-&lt;br /&gt;
| rl (hl) || &amp;lt;tt&amp;gt;11001011 00010110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).7, (hl) := [(hl) &amp;lt;&amp;lt; 1] + ocf&lt;br /&gt;
|-&lt;br /&gt;
| rl (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00010110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7,&amp;lt;br&amp;gt;(I+D) := [(I+D) &amp;lt;&amp;lt; 1] + ocf&lt;br /&gt;
|-&lt;br /&gt;
| rl (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00010rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).7,&amp;lt;br&amp;gt;(I+D) := R := [(I+D) &amp;lt;&amp;lt; 1] + ocf&lt;br /&gt;
|-&lt;br /&gt;
| rlca || &amp;lt;tt&amp;gt;00000111&amp;lt;/tt&amp;gt; || 4 || - || - || + || 0 || + || - || 0 || X || cf := a.7, a := [a &amp;lt;&amp;lt; 1] + cf&lt;br /&gt;
|-&lt;br /&gt;
| rlc R || &amp;lt;tt&amp;gt;11001011 00000rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R &amp;lt;&amp;lt; 1] + cf&lt;br /&gt;
|-&lt;br /&gt;
| rlc (hl) || &amp;lt;tt&amp;gt;11001011 00000110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) &amp;lt;&amp;lt; 1] + cf&lt;br /&gt;
|-&lt;br /&gt;
| rlc (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00000110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) &amp;lt;&amp;lt; 1] + cf&lt;br /&gt;
|-&lt;br /&gt;
| rlc (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00000rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) &amp;lt;&amp;lt; 1] + cf&lt;br /&gt;
|-&lt;br /&gt;
| rld || &amp;lt;tt&amp;gt;11101101 01101111&amp;lt;/tt&amp;gt; || 18 || + || + || + || 0 || + || P || 0 || - || tmp := [(hl) &amp;lt;&amp;lt; 4] + [a AND 0x0f], (hl) := tmp,&amp;lt;br&amp;gt;a := [a AND 0xf0] + [tmp &amp;gt;&amp;gt; 8] =&amp;gt; flags&lt;br /&gt;
|-&lt;br /&gt;
| rra || &amp;lt;tt&amp;gt;00011111&amp;lt;/tt&amp;gt; || 4 || - || - || + || 0 || + || - || 0 || X || ocf := cf, cf := a.0, a := [a &amp;gt;&amp;gt; 1] + [ocf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rr R || &amp;lt;tt&amp;gt;11001011 00011rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := R.0, R := [R &amp;gt;&amp;gt; 1] + [ocf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rr (hl) || &amp;lt;tt&amp;gt;11001011 00011110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (hl).0,&amp;lt;br&amp;gt;(hl) := [(hl) &amp;gt;&amp;gt; 1] + [ocf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rr (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00011110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0,&amp;lt;br&amp;gt;(I+D) := [(I+D) &amp;gt;&amp;gt; 1] + [ocf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rr (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00011rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || ocf := cf, cf := (I+D).0,&amp;lt;br&amp;gt;(I+D) := R := [(I+D) &amp;gt;&amp;gt; 1] + [ocf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrca || &amp;lt;tt&amp;gt;00001111&amp;lt;/tt&amp;gt; || 4 || - || - || + || 0 || + || - || 0 || X || cf := a.0, a := [a &amp;gt;&amp;gt; 1] + [cf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrc R || &amp;lt;tt&amp;gt;11001011 00001rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := [R &amp;gt;&amp;gt; 1] + [cf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrc (hl) || &amp;lt;tt&amp;gt;11001011 00001110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := [(hl) &amp;gt;&amp;gt; 1] + [cf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrc (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00001110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := [(I+D) &amp;gt;&amp;gt; 1] + [cf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrc (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00001rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,&amp;lt;br&amp;gt;(I+D) := R := [(I+D) &amp;gt;&amp;gt; 1] + [cf &amp;lt;&amp;lt; 7]&lt;br /&gt;
|-&lt;br /&gt;
| rrd || &amp;lt;tt&amp;gt;11101101 01100111&amp;lt;/tt&amp;gt; || 18 || + || + || + || 0 || + || P || 0 || - || tmp := (hl),&amp;lt;br&amp;gt;(hl) := [tmp &amp;gt;&amp;gt; 4] + [[a AND 0x0f] &amp;lt;&amp;lt; 4],&amp;lt;br&amp;gt;a := [a AND 0xf0] + [tmp AND 0x0f] =&amp;gt; flags&lt;br /&gt;
|-&lt;br /&gt;
| rst S || &amp;lt;tt&amp;gt;11sss111&amp;lt;/tt&amp;gt; || 11 || - || - || - || - || - || - || - || - || sp -= 2, (sp) := pc, pc := S&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''S'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| sbc a,R || &amp;lt;tt&amp;gt;10011rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 1 || + || a -= R + cf&lt;br /&gt;
|-&lt;br /&gt;
| sbc a,J || &amp;lt;tt&amp;gt;11i11101 1001110b&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 1 || + || a -= J + cf&lt;br /&gt;
|-&lt;br /&gt;
| sbc a,N || &amp;lt;tt&amp;gt;11011110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 1 || + || a -= N + cf&lt;br /&gt;
|-&lt;br /&gt;
| sbc a,(hl) || &amp;lt;tt&amp;gt;10011110&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 1 || + || a -= (hl) + cf&lt;br /&gt;
|-&lt;br /&gt;
| sbc a,(I+D) || &amp;lt;tt&amp;gt;11i11101 10011110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || + || + || V || 1 || + || a -= (I+D) + cf&lt;br /&gt;
|-&lt;br /&gt;
| sbc hl,Q || &amp;lt;tt&amp;gt;11101101 01qq0010&amp;lt;/tt&amp;gt; || 15 || + || + || + || + || + || V || 1 || + || hl -= Q + cf&lt;br /&gt;
|-&lt;br /&gt;
| scf || &amp;lt;tt&amp;gt;00110111&amp;lt;/tt&amp;gt; || 4 || - || - || A || 0 || A || - || 0 || 1 || nothing else&lt;br /&gt;
|-&lt;br /&gt;
| set B,R || &amp;lt;tt&amp;gt;11001011 11bbbrrr&amp;lt;/tt&amp;gt; || 8 || - || - || - || - || - || - || - || - || R := R OR [1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| set B,(hl) || &amp;lt;tt&amp;gt;11001011 11bbb110&amp;lt;/tt&amp;gt; || 15 || - || - || - || - || - || - || - || - || (hl) := (hl) OR [1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| set B,(I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 11bbb110&amp;lt;/tt&amp;gt; || 23 || - || - || - || - || - || - || - || - || (I+D) := (I+D) OR [1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| set B,(I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 11bbbrrr&amp;lt;/tt&amp;gt; || 23 || - || - || - || - || - || - || - || - || (I+D) := R := (I+D) OR [1 &amp;lt;&amp;lt; B]&lt;br /&gt;
|-&lt;br /&gt;
| sla R || &amp;lt;tt&amp;gt;11001011 00100rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := R &amp;lt;&amp;lt; 1&lt;br /&gt;
|-&lt;br /&gt;
| sla (hl) || &amp;lt;tt&amp;gt;11001011 00100110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := (hl) &amp;lt;&amp;lt; 1&lt;br /&gt;
|-&lt;br /&gt;
| sla (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00100110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := (I+D) &amp;lt;&amp;lt; 1&lt;br /&gt;
|-&lt;br /&gt;
| sla (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00100rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := (I+D) &amp;lt;&amp;lt; 1&lt;br /&gt;
|-&lt;br /&gt;
| sra R || &amp;lt;tt&amp;gt;11001011 00101rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || cf := R.0, R := R &amp;gt;&amp;gt; 1, R.7 := R.6&lt;br /&gt;
|-&lt;br /&gt;
| sra (hl) || &amp;lt;tt&amp;gt;11001011 00101110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) &amp;gt;&amp;gt; 1, (hl).7 := (hl).6&lt;br /&gt;
|-&lt;br /&gt;
| sra (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00101110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,&amp;lt;br&amp;gt;(I+D) := (I+D) &amp;gt;&amp;gt; 1, (I+D).7 := (I+D).6&lt;br /&gt;
|-&lt;br /&gt;
| sra (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00101rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).0,&amp;lt;br&amp;gt;tmp := (I+D) &amp;gt;&amp;gt; 1, tmp.7 := tmp.6&amp;lt;br&amp;gt;(I+D) := R := tmp&lt;br /&gt;
|-&lt;br /&gt;
| sll R || &amp;lt;tt&amp;gt;11001011 00110rrr&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || X || cf := R.7, R := [R &amp;lt;&amp;lt; 1] + 1&lt;br /&gt;
|-&lt;br /&gt;
| sll (hl) || &amp;lt;tt&amp;gt;11001011 00110110&amp;lt;/tt&amp;gt; || 15 || + || + || + || 0 || + || P || 0 || X || cf := (hl).7, (hl) := [(hl) &amp;lt;&amp;lt; 1] + 1&lt;br /&gt;
|-&lt;br /&gt;
| sll (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00110110&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := [(I+D) &amp;lt;&amp;lt; 1] + 1&lt;br /&gt;
|-&lt;br /&gt;
| sll (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00110rrr&amp;lt;/tt&amp;gt; || 23 || + || + || + || 0 || + || P || 0 || X || cf := (I+D).7, (I+D) := R := [(I+D) &amp;lt;&amp;lt; 1] + 1&lt;br /&gt;
|-&lt;br /&gt;
| srl R || &amp;lt;tt&amp;gt;11001011 00111rrr&amp;lt;/tt&amp;gt; || 8 || 0 || + || + || 0 || + || P || 0 || X || cf := R.0, R := R &amp;gt;&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| srl (hl) || &amp;lt;tt&amp;gt;11001011 00111110&amp;lt;/tt&amp;gt; || 15 || 0 || + || + || 0 || + || P || 0 || X || cf := (hl).0, (hl) := (hl) &amp;gt;&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| srl (I+D) || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00111110&amp;lt;/tt&amp;gt; || 23 || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := (I+D) &amp;gt;&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| srl (I+D)-&amp;gt;R || &amp;lt;tt&amp;gt;11i11101 11001011 dddddddd 00111rrr&amp;lt;/tt&amp;gt; || 23 || 0 || + || + || 0 || + || P || 0 || X || cf := (I+D).0, (I+D) := R := (I+D) &amp;gt;&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| sub R || &amp;lt;tt&amp;gt;10010rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || + || + || V || 1 || + || a -= R&lt;br /&gt;
|-&lt;br /&gt;
| sub J || &amp;lt;tt&amp;gt;11i11101 1001010b&amp;lt;/tt&amp;gt; || 8 || + || + || + || + || + || V || 1 || + || a -= J&lt;br /&gt;
|-&lt;br /&gt;
| sub N || &amp;lt;tt&amp;gt;11010110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 1 || + || a -= N&lt;br /&gt;
|-&lt;br /&gt;
| sub (hl) || &amp;lt;tt&amp;gt;10010110&amp;lt;/tt&amp;gt; || 7 || + || + || + || + || + || V || 1 || + || a -= (hl)&lt;br /&gt;
|-&lt;br /&gt;
| sub (I+D) || &amp;lt;tt&amp;gt;11i11101 10010110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || + || + || V || 1 || + || a -= (I+D)&lt;br /&gt;
|-&lt;br /&gt;
! Instruction:''X'' !! Opcode !! Time !! S !! Z !! X !! H !! Y !! P !! N !! C !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| xor R || &amp;lt;tt&amp;gt;10101rrr&amp;lt;/tt&amp;gt; || 4 || + || + || + || 0 || + || P || 0 || 0 || a := a XOR R&lt;br /&gt;
|-&lt;br /&gt;
| xor J || &amp;lt;tt&amp;gt;11i11101 1010110b&amp;lt;/tt&amp;gt; || 8 || + || + || + || 0 || + || P || 0 || 0 || a := a XOR J&lt;br /&gt;
|-&lt;br /&gt;
| xor N || &amp;lt;tt&amp;gt;11101110 nnnnnnnn&amp;lt;/tt&amp;gt; || 7 || + || + || + || 0 || + || P || 0 || 0 || a := a XOR N&lt;br /&gt;
|-&lt;br /&gt;
| xor (hl) || &amp;lt;tt&amp;gt;10101110&amp;lt;/tt&amp;gt; || 7 || + || + || + || 0 || + || P || 0 || 0 || a := a XOR (hl)&lt;br /&gt;
|-&lt;br /&gt;
| xor (I+D) || &amp;lt;tt&amp;gt;11i11101 10101110 dddddddd&amp;lt;/tt&amp;gt; || 19 || + || + || + || 0 || + || P || 0 || 0 || a := a XOR (I+D)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== English Language Explanations ==&lt;br /&gt;
=== Data Movement ===&lt;br /&gt;
'''EX'''&lt;br /&gt;
Three possible arguments:&lt;br /&gt;
&lt;br /&gt;
''EX DE, HL''&lt;br /&gt;
Swaps H with D and L with E&lt;br /&gt;
&lt;br /&gt;
''EX AF, AF'''&lt;br /&gt;
Swaps AF with its shadow&lt;br /&gt;
&lt;br /&gt;
''EX (SP), HL''&lt;br /&gt;
Swaps (SP) with L and (SP+1) with H.  Index registers are also valid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''EXX'''&lt;br /&gt;
Swap BC, DE and HL with their shadows&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LD'''&lt;br /&gt;
Four main arguments:&lt;br /&gt;
&lt;br /&gt;
''LD reg, #''&lt;br /&gt;
Sets the eight or 16 bit contents of reg to #&lt;br /&gt;
&lt;br /&gt;
''LD reg2, reg1''&lt;br /&gt;
Copies the contents of 8 bit reg1 to reg2&lt;br /&gt;
&lt;br /&gt;
''LD (imm16), reg''&lt;br /&gt;
Copies the value of 8 or 16 bit reg to 16 bit memory address imm16.  Programmers should remember that 16 bit values are stored little-endian.&lt;br /&gt;
&lt;br /&gt;
''LD reg, (imm16)''&lt;br /&gt;
Does the opposite of ''LD (imm16), reg''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LDIR'''&lt;br /&gt;
Copies a byte from (HL) to (DE), increments DE and HL, then decrements BC.  The instruction is repeated if BC is not 0.  Interrupts are allowed to trigger while this instruction is running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PUSH'''&lt;br /&gt;
Used as ''PUSH reg16'' where reg16 is a register pair or index register.  Decrements SP, copies regMSB to (SP), decrements SP again, then copies regLSB to (SP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''POP'''&lt;br /&gt;
Same syntax as PUSH.  Copies (SP) to regLSB, increments SP, copies (SP) to regMSB, then increments SP again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control===&lt;br /&gt;
'''JP'''&lt;br /&gt;
''JP imm16''  Imm16 is copied to PC, causing execution to jump there.  Can also be conditional with Z, NZ, C, NC, PO, PE, P, or M as additional arguments such as ''JP Z, imm16''.  (HL) may be substituted for imm16 to have the current value of HL copied to PC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''JR'''&lt;br /&gt;
''JR imm8''  The signed 8 bit value imm8 is added to PC, allowing a jump within 128 bytes of the instruction.  May also be conditional, but only with Z, NZ, C, and NC arguments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CALL'''&lt;br /&gt;
''CALL imm16''  The current value of PC+3 is PUSHed, then imm16 is loaded into PC.  May be conditional with the same syntax and arguments as JP, although (HL) is not valid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RET'''&lt;br /&gt;
''RET''  The top stack value is POPed into PC.  It may be conditional with the same arguments and syntax as JP.  This is usually used to return from a CALL instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''RST'''&lt;br /&gt;
''RST imm8''  PC+1 is PUSHed and PC is loaded with 00imm8.  This opcode is only 1 byte, so it is an alternative to CALLing routines that are mapped into the beginning of memory.  However, it may only be used for the following values of imm8: 00h, 08h, 18h, 20h, 28h, 30h, and 38h.  Imm8 must also be in -h suffix format.&lt;br /&gt;
&lt;br /&gt;
'''DJNZ'''&lt;br /&gt;
''DJNZ imm8''  B is decremented and if is 0, the rest of the instruction is skipped.  Otherwise, the signed 8 bit value imm8 is added to PC.  This instruction is usually used like a [[For(]] loop in BASIC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NOP'''&lt;br /&gt;
''NOP''  As the name implies, it is &amp;quot;no operation&amp;quot;.  The CPU does nothing for four clock cycles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Care of ==&lt;br /&gt;
* Reference table thanks to [[User:CoBB|CoBB]]&lt;br /&gt;
* English language reference thanks to [[User:Taricorp|Taricorp]]&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:Ports:20</id>
		<title>83Plus:Ports:20</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:Ports:20"/>
				<updated>2020-12-09T18:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Added another cpu speed switch documented by the_mad_joob&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:Ports:By Address|20 - CPU Speed Port]] [[Category:83Plus:Ports:By Name|CPU Speed Port]]&lt;br /&gt;
{{SE-Only Port|00}}&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 20h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' CPU Speed Port&lt;br /&gt;
&lt;br /&gt;
This port controls the calculator's CPU speed. The CPU can be set to run at either 6MHz or 15MHz with this port.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* 00h : The CPU is running at 6MHz.&lt;br /&gt;
* 01h: The CPU is running at 15MHz.&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* 00h : Set the CPU speed to 6MHz.&lt;br /&gt;
* 01h: Set the CPU speed to 15MHz.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
This port is not available on the normal TI-83+. On the normal TI-83+ this port is a shadow of [[83Plus:Ports:00|Port 00h]].&lt;br /&gt;
&lt;br /&gt;
This port can contain values of 2 and 3, but the difference in speed is negligible. Michal_V has indicated that values 2 and 3 were intended for use with 20 MHz and 25 MHz speeds, but this functionality was left out before production began. Using the crystal timers I came to these approximate values.&lt;br /&gt;
{| width=&amp;quot;30%&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; bgcolor=&amp;quot;white&amp;quot;&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | Port Contents&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; | CPU Clock Speed&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | 00&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; | ~6.089 mhz&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | 01&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; | ~14.965 mhz&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | 02&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; | ~14.980 mhz&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;40%&amp;quot; | 03&lt;br /&gt;
| width=&amp;quot;60%&amp;quot; | ~14.990 mhz&lt;br /&gt;
|}&lt;br /&gt;
I suggest still using 1 as the speed setting value since the speed of the other values may change in the future---unlikely as that may be---, which could seriously mess up your screen routines, or even cause opcode fetches to fail if required delay states are not configured. The slightly extra speed observed is due to capacitance of the unused pins. These modes are distinguished by LCD delaying hardware, ports 29-2C.&lt;br /&gt;
&lt;br /&gt;
Newer models (with new TA1 ASICs with fewer pins) don't show any difference between 01~03, suggesting that the extra pins for speeds 02 and 03 don't exist. Furthermore, the speed is closer to 16 MHz than it is to 15 MHz, even slightly above it on 4 out of 5 calculators I've tested.&lt;br /&gt;
&lt;br /&gt;
You can actually re-enable the extra values on production models with the TA3 ASIC if you find the right pins. On the TI-83+SE, there are helpful solder pads on the PCB; on the TI-84+/C/SE, you have to solder directly to the ASIC. You'll need to find a set of six pins, where one is a ground shared by a capacitor and two resistors, the next is connected to a capacitor, the next is connected to a resistor, the next two are not connected (solder to these pins), and the last is connected to another resistor. On the TA3 ASIC, they're pins 66-72, with 70 and 71 being the pins you want to tap (there are 144 pins, the side with #1 will be marked in some special way, and they're numbered counter-clockwise). On the TA1 ASIC, there are no known pins for this. Experiments on the TI-83+SE showed that the ASIC was unstable above about 22-23 MHz. The flash chip is only rated for 20 MHz, which could explain the instability.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; in a, (2)&lt;br /&gt;
 and 80h&lt;br /&gt;
 jp z, NoCPUGoverner&lt;br /&gt;
 rlca ;Move the 1 bit in bit 7 to bit 0 (80h -&amp;gt; 01h)&lt;br /&gt;
 out (20h), a&lt;br /&gt;
NoCPUGoverner:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Michael Vincent documented another method to set the CPU speed (which is probably faster than my example).&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;in a, (2)&lt;br /&gt;
 rla&lt;br /&gt;
 sbc a, a&lt;br /&gt;
 out (20h), a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only side effect of this is that on the TI-83+ Basic this will cause both linkport lines to go high - which shouldn't matter too much if you're not using the linkport at that time, especially since both lines are high normally... the_mad_joob discovered that this method will switch to CPU speed 3, not 1.&lt;br /&gt;
That speed may not be fully supported software-wise, most notably because the default delays provided by ports $29&amp;gt;$2C|$2E|$2F vary from one speed to another.&lt;br /&gt;
&lt;br /&gt;
the_mad_joob documented yet another method which switches to speed 1 instead without using jumps&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;in a,($02)&lt;br /&gt;
 rlca&lt;br /&gt;
 and %00000001&lt;br /&gt;
 out ($20),a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
* '''Michael Vincent:''' Documentation and his faster approach as found [http://michaelv.org/programs/calcs/ports/port20.html here].&lt;br /&gt;
* '''the_mad_joob'''&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:Ports:01</id>
		<title>83Plus:Ports:01</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:Ports:01"/>
				<updated>2020-12-09T18:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: More from the_mad_joob&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:Ports:By_Address|01 - Keyboard]] [[Category:83Plus:Ports:By_Name|Keyboard]] [[Category:83:Ports:By_Address|01 - Keyboard]] [[Category:83:Ports:By_Name|Keyboard]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 01h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' Keyboard Port&lt;br /&gt;
&lt;br /&gt;
This port reads key presses from the keypad. The keypad is divided into a series of groups.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* Bits are set according whether corresponding keys from selected groups are pressed. Groups are selected through writing to the port. A pressed key reads a 0 bit. An unpressed key reads a 1 bit. The port reads FF after a reset (write FF).&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* $FF : Reset the keypad. This unselects all groups and resets the keypad state.&lt;br /&gt;
* Anything else : Any 0 bit adds the corresponding group to the list of monitored groups. When a key in a monitored group is pressed, the corresponding key bit reads 0, otherwise it reads 1 (active-low).&lt;br /&gt;
&lt;br /&gt;
== Key Map ==&lt;br /&gt;
The key map is laid out as follows:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
! Group Bit&lt;br /&gt;
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
! Group Mask&lt;br /&gt;
| FE || FD || FB || F7 || EF || DF || BF || 7F&lt;br /&gt;
|-&lt;br /&gt;
! Key Bit !! (Mask)&lt;br /&gt;
|-&lt;br /&gt;
! 0 !! (FE)&lt;br /&gt;
| DOWN||ENTER|| (-) ||  .  ||  0  ||     ||GRAPH||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 1 !! (FD)&lt;br /&gt;
| LEFT||  +  ||  3  ||  2  ||  1  || STO ||TRACE||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 2 !! (FB)&lt;br /&gt;
|RIGHT||  -  ||  6  ||  5  ||  4  || LN  ||ZOOM ||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 3 !! (F7)&lt;br /&gt;
| UP  ||  *  ||  9  ||  8  ||  7  || LOG ||WIND ||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 4 !! (EF)&lt;br /&gt;
|     ||  /  ||  )  ||  (  ||  ,  || x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || Y=  ||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 5 !! (DF)&lt;br /&gt;
|     ||  ^  || TAN || COS || SIN ||x&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; || 2nd ||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 6 !! (BF)&lt;br /&gt;
|     ||CLEAR||VARS ||PRGM ||APPS ||MATH ||MODE ||     ||&lt;br /&gt;
|-&lt;br /&gt;
! 7 !! (7F)&lt;br /&gt;
|     ||     ||     ||STAT ||X,T,&amp;amp;#952;,''n''||ALPHA|| DEL ||     ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* '''Note:''' Group FB Key FE is NEGATE, not to be confused with SUBTRACT.&lt;br /&gt;
* '''Note:''' Group DF Key FE would be ON, but the ON key is tested through [[83Plus:Ports:04|Port 04]], bit 3.&lt;br /&gt;
* '''Note:''' Group EF Key BF (APPS) is called MATRIX on the TI-83.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
You should disable interrupts or use a custom interrupt before manually reading this port, because TI's interrupt scans the keypad. If you leave TI's interrupt active when manually reading the keypad, sometimes it will fire between when you set and read the port, and you'll read garbage.&lt;br /&gt;
&lt;br /&gt;
All nonexistent keys read 1.&lt;br /&gt;
&lt;br /&gt;
=== Delay ===&lt;br /&gt;
TI's code always resets the keypad before scanning; sometimes, you may get incorrect values if you scan without resetting first.&lt;br /&gt;
&lt;br /&gt;
Traditionally, a delay of a dozen or so clock cycles (6 MHz mode) is used between changing key groups and reading the result. The required delay seems to vary depending on the calculator; some require no delay, others a longer one. The delay is based on real time, not CPU clock cycles; you'll need to make your delay about 3 times longer in 15 MHz mode. However, as in the example, other people seem to find that resetting before every group change negates the need for a delay; some more experimentation is required.&lt;br /&gt;
&lt;br /&gt;
For me (Sorunome) this didn't seem to work: Using the following code didn't always have the correct keygroup selected when scanning (on a TI-84+SE of a friend of mine):  &lt;br /&gt;
&amp;lt;pre&amp;gt;ld a,$ff&lt;br /&gt;
out (1),a&lt;br /&gt;
ld a,%10111110&lt;br /&gt;
out (1),a&lt;br /&gt;
in a,(1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
While the following fixed it:&lt;br /&gt;
&amp;lt;pre&amp;gt;ld a,$ff&lt;br /&gt;
out (1),a&lt;br /&gt;
ld a,%10111110&lt;br /&gt;
out (1),a&lt;br /&gt;
ex (sp),hl&lt;br /&gt;
ex (sp),hl&lt;br /&gt;
in a,(1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this has since been discovered to not be caused by slow hardware, but rather by capacitance in the keypad. When unselecting a group, it takes a while before the charge has dissipated. Resetting the keypad every time after using it will make this discharge happen while you're doing something else, and activating a group happens instantly. The more keys are pressed in the same keygroup, the faster the values are correct. The more keys are pressed in a different keygroup, but on the same bit, the longer you need to wait. A key that's pressed in a different keygroup on a different bit does not seem to influence the time required too much. Some combinations can take more than 50 clock cycles to deactivate, but for single keys being pressed, 8 clock cycles should be enough. However, this may vary from keypad to keypad.&lt;br /&gt;
&lt;br /&gt;
=== Ghosting ===&lt;br /&gt;
Because TI didn't add a diode to each key, you can also detect keys that aren't in a currently selected keygroup, as long as the other keygroup has at least one key in common with a selected keygroup. This means, for example, if F7 is selected, and the keys 2, 3, and 6 are pressed, Then keygroup FB will also be activated because F7 and FB have one key in common (namely FD). This makes it appear as though the 5 key is also pressed. This can also be used to make nonexistent keys appear active. However, as at least three keys have to be pressed for it to be noticeable, you don't have to worry in the most common use cases.&lt;br /&gt;
&lt;br /&gt;
=== Debouncing ===&lt;br /&gt;
While a key is in a state between pressed and released, it will repeatedly turn on and off. Such behavior only occurs for keys that were just released. If you are reading the keypad extremely quickly, it will appear as though the key is being pressed and released a number of times. You need to either wait longer between keypad scans, or you need to implement a proper debouncing algorithm. TI-OS does the first one by scanning the keypad in an interrupt that runs slowly enough for it to not have a noticeable effect.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ld a, 0FFh ;Reset the keypad.&lt;br /&gt;
out (1), a&lt;br /&gt;
ld a, 0FEh ;Select group 0.&lt;br /&gt;
out (1), a&lt;br /&gt;
in a, (1) ;Test for keys.&lt;br /&gt;
and 2 ;Test for Left Arrow key by making A 0 if left was pressed.&lt;br /&gt;
call z, LeftArrowPressed ;If 0 then left was pressed.&lt;br /&gt;
ld a, 0FFh ;Reset the keypad.&lt;br /&gt;
out (1), a&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:Ports:2E</id>
		<title>83Plus:Ports:2E</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:Ports:2E"/>
				<updated>2020-12-09T18:17:22Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: More info from the_mad_joob. Maybe consider making him an account :D.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:Ports:By Address|2E - Memory Access Delay]] [[Category:83Plus:Ports:By Name|Memory Access Delay]]&lt;br /&gt;
{{SE-Only Port|06}}&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 2Eh&lt;br /&gt;
&lt;br /&gt;
'''Function:''' Memory Access Delay&lt;br /&gt;
&lt;br /&gt;
This port will add a 1 cycle delay for certain types of reads for the ram or the flash. This port's effect is enabled by the lcd delay port currently selected by the current CPU speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==To enable by the LCD Ports==&lt;br /&gt;
* Bit 0 of the LCD ports (depending on current CPU speed mode) enable the effects of the flash delay controlled be 2E.&lt;br /&gt;
* Bit 1 of the LCD ports (depending on current CPU speed mode) enable the effects of the ram delay controlled be 2E. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Read and Write Values of port 2E==&lt;br /&gt;
* Bits 0-2 of port 2E affect the flash reads and (attempted) writes.&lt;br /&gt;
** Bit 0 adds a clock for every opcode read from the flash.&lt;br /&gt;
** Bit 1 adds a clock for every non-opcode read from the flash.&lt;br /&gt;
** Bit 2 adds a clock for every (attempted) write to the flash. &lt;br /&gt;
* Bits 4-6 of port 2E affect the ram reads and writes.&lt;br /&gt;
** Bit 4 adds a clock for every opcode read from the ram.&lt;br /&gt;
** Bit 5 adds a clock for every non-opcode read from the ram.&lt;br /&gt;
** Bit 6 adds a clock for every write to the ram. &lt;br /&gt;
* Bits 3 and 7 are not used in port 2E, though they can be toggled. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
With bits 0 &amp;amp; 4, extra clock cycle are doubled if the instruction is prefixed.&lt;br /&gt;
We can safely deduct that the port adds a clock cycle each time the R register is incremented.&lt;br /&gt;
&lt;br /&gt;
Why this port is necessary is unknown, however it is set to 44 on the 83+SE and 45 on the 84+(SE). &lt;br /&gt;
&lt;br /&gt;
This port is not available on the normal TI-83+. On the normal TI-83+ this port is a shadow of [[83Plus:Ports:06|Port 06h]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
* '''Michael Vincent:''' Documentation found [http://michaelv.org/programs/calcs/ports/port2e.html here].&lt;br /&gt;
* '''James Montelongo'''&lt;br /&gt;
* '''Ben Moody'''&lt;br /&gt;
* '''the_mad_joob'''&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:83Plus:Ports:By_Address</id>
		<title>Category:83Plus:Ports:By Address</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:83Plus:Ports:By_Address"/>
				<updated>2020-12-09T18:11:27Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Removed/amended an incorrect statement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:Ports|Ports by Address/Number]]&lt;br /&gt;
See also [[:Category:83Plus:Ports:By Name|list of ports by name]] and [[83Plus:State_of_the_calculator_at_boot|State of the calculator at boot]].&lt;br /&gt;
&lt;br /&gt;
Please read our page on [[Contributing]] before editing these pages!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note on terminology:''' P:nn is shorthand for port nn, e.g. P:04 refers to port 4.&lt;br /&gt;
&lt;br /&gt;
'''A note about 83+BE ports:''' On the 83+BE, many of the ports have been mirrored to the 00h-07h region. If a port is mirrored, when it is being read, take the bitwise-AND with 07h to find the actual port being accessed. Writes to mirror ports are not ignored.&lt;br /&gt;
&lt;br /&gt;
Legitimate 83+BE ports (the rest are mirrored):&lt;br /&gt;
* '''Read values''' - 00h-07h and 10h-13h are original ports&lt;br /&gt;
* '''Write values''' - 00h-07h, 10h-13h, 14h, and 16h are original ports&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' The TI-84+CSE uses the same ASIC as the TI-84+/SE; it just has a different screen and controller. Therefore, these pages also cover the TI-84+CSE.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:Certificate/Headers:Fields:Application_Headers</id>
		<title>83Plus:OS:Certificate/Headers:Fields:Application Headers</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:Certificate/Headers:Fields:Application_Headers"/>
				<updated>2020-12-09T18:06:54Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Updated some info based off of what the_mad_joob said in Omnimaga.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:OS:Certificate/Headers:Fields_By_Number|Application Headers]] [[Category:83Plus:OS:Certificate/Headers:Fields:Application Headers|Application Headers]]&lt;br /&gt;
&lt;br /&gt;
''See also [[83Plus:OS:Certificate/Headers|the page on certificate headers]]; app headers follow the same general format.''&lt;br /&gt;
&lt;br /&gt;
In the past, people liked to treat application headers as structs with fixed positions for everything. This is '''wrong.''' An application header is composed of [[83Plus:OS:Certificate/Headers#Format|variable-length fields]]. A valid application header must: Start with a master field ([[http://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Certificate/Headers:Fields:800]]), end with a final field ([[83Plus:OS:Certificate/Headers:Fields:807|807]]), contain a name field ([[83Plus:OS:Certificate/Headers:Fields:804|804]]), a key ID field ([[83Plus:OS:Certificate/Headers:Fields:801|801]]), a page count ([[83Plus:OS:Certificate/Headers:Fields:808|808]]), and a date stamp field ([[83Plus:OS:Certificate/Headers:Fields:032|032]]+[[83Plus:OS:Certificate/Headers:Fields:090|090]]) followed by a date stamp signature field ([[83Plus:OS:Certificate/Headers:Fields:020|020]]). Aside from the opening field being first, closing field being last, and dates stamp signature following the date stamp, those fields can be in '''any order.''' You may also specify a build ([[83Plus:OS:Certificate/Headers:Fields:803|803]]) and revision ([[83Plus:OS:Certificate/Headers:Fields:802|802]]) and disable the TI splash screen ([[83Plus:OS:Certificate/Headers:Fields:809|809]]). There's also support for some other stuff, but it is all optional.&lt;br /&gt;
&lt;br /&gt;
In theory, it is legal to specify the master field as 800DXX or 800EXXXX if the application is less than 64 K in size. However, rabbitsign won't sign it.&lt;br /&gt;
&lt;br /&gt;
The name field can be less than 8 bytes, so you do not have to pad app names out to 8 bytes. You can also specify an app name greater than 8 bytes, but the calculator will ignore everything past the 8th byte.&lt;br /&gt;
&lt;br /&gt;
The date stamp signature never actually gets checked, so you can put garbage there. But it gets better! You can also just specify the date stamp signature as having zero length. You can also pull a similar stunt with the date stamp itself.&lt;br /&gt;
&lt;br /&gt;
The final field is usually written as 807F00000000. That four byte length field is ignored, so you can just put 8070 instead.&lt;br /&gt;
&lt;br /&gt;
People like to pad the application header until it is 128 bytes in size. That is not necessary. Execution starts after the app header.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;	; Minimal application.  This application is just 31 bytes! And takes up 16 K of archive space!&lt;br /&gt;
	; Master Field&lt;br /&gt;
	.db	80h, 0Fh, 0, 0, 0, 0&lt;br /&gt;
	; Name. Note that the name field reads 80 43 because the name specified here is 3 characters long.&lt;br /&gt;
	.db	80h, 43h, &amp;quot;nop&amp;quot;&lt;br /&gt;
	; Disable TI splash screen.&lt;br /&gt;
	.db	80h, 90h&lt;br /&gt;
	; Pages&lt;br /&gt;
	.db	80h, 81h, 1&lt;br /&gt;
	; Signing Key ID&lt;br /&gt;
	.db	80h, 12h, 1, 4 ; or 15 for the TI-84+CSE&lt;br /&gt;
	; Date stamp.  Apparently, the calculator doesn't mind if you put&lt;br /&gt;
	; nothing in this.&lt;br /&gt;
	.db	03h, 22h, 09h, 00h&lt;br /&gt;
	; Date stamp signature.  Since nothing ever checks this, there's no&lt;br /&gt;
	; reason ever to update it.  Or even have data in it.&lt;br /&gt;
	.db	02h, 00&lt;br /&gt;
	; Final field&lt;br /&gt;
	.db	80h, 70h&lt;br /&gt;
	; No need for padding here. The OS will just start execution here.&lt;br /&gt;
	b_call(_JForceCmdNoChar)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Disassemblers</id>
		<title>Disassemblers</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Disassemblers"/>
				<updated>2020-12-04T18:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Fixed some links and wikified a bit.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
A disassembler is a computer program that translates machine language into assembly language — the inverse operation to that of an assembler. Source: [http://en.wikipedia.org/wiki/Disassembler wikipedia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z80 CPU ==&lt;br /&gt;
&lt;br /&gt;
=== PC Community Disassemblers ===&lt;br /&gt;
* [http://www.ticalc.org/archives/files/fileinfo/162/16219.html Disassembler v1.7]&lt;br /&gt;
* [http://www.ticalc.org/archives/files/fileinfo/349/34903.html Z80Disassembler v1.0]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Oncalc ===&lt;br /&gt;
* [https://www.ticalc.org/archives/files/fileinfo/97/9781.html Calcsys]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Software (paid) ===&lt;br /&gt;
* [http://www.hex-rays.com/idapro IDA Pro]&lt;br /&gt;
&lt;br /&gt;
== 68k ==&lt;br /&gt;
&lt;br /&gt;
=== PC Community Disassemblers ===&lt;br /&gt;
* dasm-tigcc&lt;br /&gt;
* GNU m68k-coff-objdump in GCC4TI (not available in TIGCC)&lt;br /&gt;
&lt;br /&gt;
=== Oncalc ===&lt;br /&gt;
* [http://detachedsolutions.com/cmdpost/ Command Post]&lt;br /&gt;
&lt;br /&gt;
=== Freeware ===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
=== Software (paid) ===&lt;br /&gt;
* [http://www.hex-rays.com/idapro IDA Pro]&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Teams:Void</id>
		<title>Teams:Void</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Teams:Void"/>
				<updated>2020-12-04T18:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Assemblers</id>
		<title>Assemblers</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Assemblers"/>
				<updated>2020-12-04T18:20:13Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PC Software|Assemblers]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{wikify}}&lt;br /&gt;
= z80 Assemblers =&lt;br /&gt;
&lt;br /&gt;
== [https://ticalc.org/archives/files/fileinfo/15/1504.html TASM] ==&lt;br /&gt;
TASM is very outdated but you can find the most recent upload of it can be found on ticalc.org [https://ticalc.org/archives/files/fileinfo/15/1504.html here].&lt;br /&gt;
&lt;br /&gt;
== [https://github.com/alberthdev/spasm-ng SPASM-ng] ==&lt;br /&gt;
SPASM-ng is a z80/ez80 assembler with extra features to support development for TI calculators.&lt;br /&gt;
It uses a terminal syntax and runs on Linux and Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* App Signing&lt;br /&gt;
* Includes&lt;br /&gt;
* Defines&lt;br /&gt;
* Equates&lt;br /&gt;
* If:Then:Else Statements&lt;br /&gt;
* Macros&lt;br /&gt;
* Bitmap Support&lt;br /&gt;
* Fast Compiling&lt;br /&gt;
* TASM syntax support&lt;br /&gt;
&lt;br /&gt;
To find the latest build(or to build it yourself) goto the [https://github.com/alberthdev/spasm-ng Official Github Page].&lt;br /&gt;
&lt;br /&gt;
== [https://clrhome.org/asm/ ClrHome.org] ==&lt;br /&gt;
ClrHome.org offers a completly web based assembler/IDE that can be used inside of your browser. It is located [https://clrhome.org/asm/ here].&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* One Page App Signing&lt;br /&gt;
* Includes&lt;br /&gt;
* Defines&lt;br /&gt;
* Equates&lt;br /&gt;
* If:Then:Else Statements&lt;br /&gt;
* Macros&lt;br /&gt;
&lt;br /&gt;
== Brass ==&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* TASM compatibility (partial?)&lt;br /&gt;
* macros&lt;br /&gt;
&lt;br /&gt;
== [https://github.com/jacobly0/fasmg-z80 fasmg-z80] ==&lt;br /&gt;
A tool that transforms flatassembler into a z80 assembler. Latest build can be found [https://github.com/jacobly0/fasmg-z80 here].&lt;br /&gt;
&lt;br /&gt;
= 68k Assemblers =&lt;br /&gt;
&lt;br /&gt;
== A68k ==&lt;br /&gt;
&lt;br /&gt;
A68k is ancient and originally written for programming the Amiga.  It comes with TIGCC and GCC4TI.  Some in the 68k community continue to use it because they prefer its syntax, though the TIGCC and GCC4TI developers strongly encourage people to move to the GNU Assembler.&lt;br /&gt;
&lt;br /&gt;
== GNU as ==&lt;br /&gt;
&lt;br /&gt;
This assembler ships with GCC4TI and TIGCC.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Calculator_General_FAQ</id>
		<title>Calculator General FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Calculator_General_FAQ"/>
				<updated>2020-12-04T18:05:31Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Added more information and links and made it look pretty&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= The WikiTI Calculator FAQ. =&lt;br /&gt;
&lt;br /&gt;
FAQ stands for Frequently Asked Questions.&lt;br /&gt;
You should start to seek your answer here and in the other FAQs before asking. You have currently active users willing to help on [https://www.cemetech.net Cemetech], [http://www.omnimaga.org/index.php?board=6.0 Omnimaga], and [https://codewalr.us/ CodeWalrus] Forums.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Linking ===&lt;br /&gt;
&lt;br /&gt;
==== How do I connect my calculator to my computer? ====&lt;br /&gt;
First, you need a cable to connect the calculator. This should be delivered standard with the calculator.&lt;br /&gt;
You also need a linking program. There are several programs:&lt;br /&gt;
* [https://education.ti.com/en/products/computer-software/ti-connect-sw TI-Connect] (Only for Mac and Windows, NOT compatible with the CE)&lt;br /&gt;
* [https://education.ti.com/en/products/computer-software/ti-connect-ce-sw TI-Connect CE] (Only for Mac and Windows, Specifically for the CE)&lt;br /&gt;
* [https://lpg.ticalc.org/prj_tilp/ TiLP] (compatible with several types)&lt;br /&gt;
* [https://ticalc.link Ticalc.link] (Only compatible with TI-84 plus)&lt;br /&gt;
&lt;br /&gt;
==== Where do I get programs for my calculator? ====&lt;br /&gt;
For a large collection of programs you can check out [https://ticalc.org ticalc.org] or the Forum links below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Calculator Specific ==&lt;br /&gt;
&lt;br /&gt;
=== TI-83 ===&lt;br /&gt;
&lt;br /&gt;
=== TI-83/84+[SE] ===&lt;br /&gt;
&lt;br /&gt;
==== Can I downgrade my OS? ====&lt;br /&gt;
First let's check the bootcode. Click [mode][alpha][ln].&lt;br /&gt;
&lt;br /&gt;
The bootcode and your base code(The OS version) will be presented. If the bootcode is anywhere below 1.03 you can downgrade by simply sending an older .8xu or a different OS like [https://knightos.org/ KnightOS] to your calculator.&lt;br /&gt;
&lt;br /&gt;
==== What do I do if my bootcode is 1.03 ====&lt;br /&gt;
TI implemented an RSA-SHA256 encryption method to there bootcode that prevents unsigned OS's and downgrades from happening. But TI's attempts were thwarted. There is a handy tool called [https://www.ticalc.org/archives/files/fileinfo/441/44190.html UNSIGNED] that you can send to your calculator. It will patch the boot code after you change the certificate revision and/or click Signed OS's. Once that happens you can send any .8xu file that you want to your calculator.&lt;br /&gt;
&lt;br /&gt;
=== TI-84+/CE ===&lt;br /&gt;
&lt;br /&gt;
==== Why can't I run assembly programs on my TI-84+ CE? ====&lt;br /&gt;
TI has decided that from OS version 5.5.5 on that assembly programs were a security threat and have advertently removed the functionality to run them from the default OS(no other stable OS's currently). A full explanation video by Thelastmillennial can be found [https://youtu.be/dSkN0aMswXs here].&lt;br /&gt;
&lt;br /&gt;
However not all hope is lost. A work around has been made to restore assembly functionality.&lt;br /&gt;
# Send [https://yvantt.github.io/arTIfiCE/ arTIfiCE] to your calculator&lt;br /&gt;
# For easier use of assembly programs: install [https://github.com/mateoconlechuga/cesium/releases/tag/v3.3.1 Cesium]&lt;br /&gt;
# For even more convenience: install [https://github.com/jacobly0/asmhook/releases/tag/v1.0.0 asmhook]&lt;br /&gt;
&lt;br /&gt;
==== Can I downgrade my OS? ====&lt;br /&gt;
''Place Holder''&lt;br /&gt;
&lt;br /&gt;
==== How to reset the calculator? ====&lt;br /&gt;
Sometimes it'll happen that the calculator freezes or that you just need to reset it. For resetting, there are several options.&lt;br /&gt;
To reset your calculator you can:&lt;br /&gt;
* Press the reset button at the back of your calculator (if your calculator is only frozen, press it short, if you really want a RAM reset, hold it down for some seconds.)&lt;br /&gt;
* Press [2nd]-[+]-[7], then you can choose what you want to reset.&lt;br /&gt;
&lt;br /&gt;
==== Why is there stuff on my screen going through my graphs? ====&lt;br /&gt;
Some programs use the graph screen to draw the interface of the program on. Sometimes, this isn't cleared by the program.&amp;lt;br/&amp;gt;&lt;br /&gt;
This can be solved very easy by pressing: [2nd]-[prgm]-[1]-[enter].&lt;br /&gt;
&lt;br /&gt;
== Programming and developing ==&lt;br /&gt;
&lt;br /&gt;
=== What programming languages are supported? ===&lt;br /&gt;
Well that depends on your calculator.&lt;br /&gt;
 &lt;br /&gt;
TI-83(84)+[SE]&lt;br /&gt;
 [http://tutorials.eeems.ca/ASMin28Days/welcome.html z80]&lt;br /&gt;
 [https://github.com/KnightOS/kcc C]&lt;br /&gt;
 [https://www.ticalc.org/archives/files/fileinfo/456/45659.html Axe Parser]&lt;br /&gt;
 [https://github.com/Zeda/Grammer2 Grammer 2]&lt;br /&gt;
 [http://tibasicdev.wikidot.com/home TI-BASIC]&lt;br /&gt;
 [https://www.ticalc.org/archives/files/fileinfo/416/41608.html BBC BASIC]&lt;br /&gt;
&lt;br /&gt;
TI-83(84)+ CE [Premium]&lt;br /&gt;
 [http://ez80.readthedocs.io/en/latest/tutorial/intro.html ez80]&lt;br /&gt;
 [https://github.com/CE-Programming/ C &amp;amp; C++]&lt;br /&gt;
 [https://github.com/PeterTillema/ICE ICE]&lt;br /&gt;
 [http://tibasicdev.wikidot.com/home TI-BASIC]&lt;br /&gt;
 Python (Exclusive to the TI-83 Premium CE Edition Python)&lt;br /&gt;
&lt;br /&gt;
=== Where or how do I make programs for my calculator? ===&lt;br /&gt;
For a bit you will probably be using the TI-BASIC Editor found by pressing [prgm][right] and selecting the program to edit. The different programs on your calc can be made to fit a certain syntax for the different compilers and parsers that you may install on your calculator. The only two languages that you can use on your calculator are TI-BASIC and OPCode assembly until you install an application such as Grammer 2, Axe, or ICE. These languages enable the user to have more control over their calculator while still allowing you to program on calc. Another thing you might consider is BASIC Libs. Many basic libs use tokens to pass arguments to it's own flash library while still executing TI-BASIC. The OPCode assembly is not very recommended. If you insist on programming z80 on calc then I would suggest Mimas 0.4.&lt;br /&gt;
&lt;br /&gt;
If you decide to dabble in some low level programming languages you will want to use a computer. C is a [https://github.com/KnightOS/kcc work in progress] on the TI-84+ but is still used in for KnightOS. C is fully supported on any ez80 calculator and C++ is getting there. You will want to use the toolchain and libraries found [https://github.com/CE-Programming/ here]. For ez80 and z80 all you need is a text editor and an [https://wikiti.brandonw.net/index.php?title=Assemblers assembler]. I recommend SPASM-ng as it supports both the ez80 and the z80 processors. However it's up to you.&lt;br /&gt;
&lt;br /&gt;
Below are some Online IDEs/Assemblers/Emulators&lt;br /&gt;
* [https://www.cemetech.net/sc/ SourceCoder3 (Cemetech)]&lt;br /&gt;
* [https://www.tiplanet.org/pb/ Project Builder (TI-planet)]&lt;br /&gt;
* [https://www.clrHome.org/asm ClrHome.org]&lt;br /&gt;
&lt;br /&gt;
== Other FAQs and Forum Links ==&lt;br /&gt;
* [https://www.omnimaga.org/ Omnimaga]&lt;br /&gt;
* [https://www.cemetech.net/ Cemetech]&lt;br /&gt;
* [https://codewalr.us/ CodeWalrus]&lt;br /&gt;
* [https://tiplanet.org/ TI-Planet(french)]&lt;br /&gt;
* [http://tibasicdev.wikidot.com/ TIBD]&lt;br /&gt;
* [http://tibasicdev.wikidot.com/faq TI-BASIC FAQ]&lt;br /&gt;
* [https://www.ocf.berkeley.edu/~pad/faq/index.html The Ultimate TI Calculator FAQ]&lt;br /&gt;
* [https://www.technicalc.org/tifaq/ TI Graphing Calculator FAQ]&lt;br /&gt;
* [https://www.technicalc.org/tifaq/mltifaq.txt Mattias Lindqvist's Calc-TI FAQ]&lt;br /&gt;
* [https://www.ti-89.org/faq.html The TI-89 FAQ]&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Calculator_General_FAQ</id>
		<title>Calculator General FAQ</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Calculator_General_FAQ"/>
				<updated>2020-12-04T14:33:57Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Clarified some misinformation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The WikiTI Calculator FAQ.&lt;br /&gt;
&lt;br /&gt;
FAQ stands for Frequently Asked Questions.&lt;br /&gt;
You should start to seek your answer here and in the other FAQs before asking. You have currently active users willing to help on [http://www.unitedti.org/forum/index.php?showforum=9 UTI] and [http://www.omnimaga.org/index.php?board=6.0 Omnimaga] Forums.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
=== Linking ===&lt;br /&gt;
&lt;br /&gt;
=====How do I connect my calculator to my computer?=====&lt;br /&gt;
First, you need a cable to connect the calculator. This should be delivered standard with the calculator.&lt;br /&gt;
You also need a linking program. There are several programs:&lt;br /&gt;
* [https://education.ti.com/en/products/computer-software/ti-connect-sw TI-Connect] (Only for Mac and Windows, NOT compatible with the CE)&lt;br /&gt;
* [https://education.ti.com/en/products/computer-software/ti-connect-ce-sw TI-Connect CE] (Only for Mac and Windows, Specifically for the CE)&lt;br /&gt;
* [https://lpg.ticalc.org/prj_tilp/ TiLP] (compatible with several types)&lt;br /&gt;
* [https://ticalc.link Ticalc.link] (Only compatible with TI-84 plus)&lt;br /&gt;
&lt;br /&gt;
=====Where do I get programs for my calculator?=====&lt;br /&gt;
For a large collection of programs you can check out TICalc.org or Cemetech.net.&lt;br /&gt;
*[https://www.ticalc.org/pub/ The Ticalc file archive]&lt;br /&gt;
*[https://www.cemetech.net/downloads/browse/ The Cemetech file archive]&lt;br /&gt;
&lt;br /&gt;
=== Calculator Specific ===&lt;br /&gt;
&lt;br /&gt;
==== TI-83 ====&lt;br /&gt;
&lt;br /&gt;
==== TI-83+ ====&lt;br /&gt;
&lt;br /&gt;
==== TI-84+/SE ====&lt;br /&gt;
&lt;br /&gt;
==== TI-84+/CE ====&lt;br /&gt;
&lt;br /&gt;
===== Why can't I run assembly programs on my TI-84+ CE? =====&lt;br /&gt;
TI has decided that from OS version 5.5.5 on that assembly programs were a security threat and have advertently removed the functionality to run them from the default OS(no other stable OS's currently). A full explanation video by Thelastmillennial can be found [https://youtu.be/dSkN0aMswXs here].&lt;br /&gt;
&lt;br /&gt;
However not all hope is lost. A work around has been made to restore assembly functionality.&lt;br /&gt;
# Send [https://yvantt.github.io/arTIfiCE/ arTIfiCE] to your calculator&lt;br /&gt;
# For easier use of assembly programs: install [https://github.com/mateoconlechuga/cesium/releases/tag/v3.3.1 Cesium]&lt;br /&gt;
# For even more convenience: install [https://github.com/jacobly0/asmhook/releases/tag/v1.0.0 asmhook]&lt;br /&gt;
&lt;br /&gt;
=====How to reset the calculator?=====&lt;br /&gt;
Sometimes it'll happen that the calculator freezes or that you just need to reset it. For resetting, there are several options.&lt;br /&gt;
To reset your calculator you can:&lt;br /&gt;
* Press the reset button at the back of your calculator (if your calculator is only frozen, press it short, if you really want a RAM reset, hold it down for some seconds.)&lt;br /&gt;
* Press [2nd]-[+]-[7], then you can choose what you want to reset.&lt;br /&gt;
&lt;br /&gt;
=====Why is there stuff on my screen going through my graphs?=====&lt;br /&gt;
Some programs use the graph screen to draw the interface of the program on. Sometimes, this isn't cleared by the program.&amp;lt;br/&amp;gt;&lt;br /&gt;
This can be solved very easy by pressing: [2nd]-[prgm]-[1]-[enter].&lt;br /&gt;
&lt;br /&gt;
=== Programming and developing ===&lt;br /&gt;
&lt;br /&gt;
=====What programming languages are supported?=====&lt;br /&gt;
* AXE&lt;br /&gt;
* C&lt;br /&gt;
* C++&lt;br /&gt;
* eZ80 (CE)&lt;br /&gt;
* ICE (CE)&lt;br /&gt;
* Python (Python editions only)&lt;br /&gt;
* TI-BASIC&lt;br /&gt;
* Z80 (Monochrome calculators)&lt;br /&gt;
&lt;br /&gt;
=====Where can I make programs for my calculator?=====&lt;br /&gt;
On the calculator itself, you can make programs in TI-BASIC and Python (For the Python editions).&amp;lt;br&amp;gt;&lt;br /&gt;
Also ICE is possible on calc, but you'll need the [https://www.cemetech.net/downloads/files/1481/x1481 ICE compiler] installed for that.&amp;lt;br&amp;gt;&lt;br /&gt;
Other languages can't be done on your calc, but there are some online program editors that allow you to make those programs:&lt;br /&gt;
* [https://www.cemetech.net/sc/ SourceCoder3 (Cemetech)]&lt;br /&gt;
* [https://www.tiplanet.org/pb/ Project Builder (TI-planet)]&lt;br /&gt;
&lt;br /&gt;
== Other FAQs ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.ocf.berkeley.edu/~pad/faq/index.html The Ultimate TI Calculator FAQ]&lt;br /&gt;
* [https://www.technicalc.org/tifaq/ TI Graphing Calculator FAQ]&lt;br /&gt;
* [https://www.technicalc.org/tifaq/mltifaq.txt Mattias Lindqvist's Calc-TI FAQ]&lt;br /&gt;
* [https://www.ti-89.org/faq.html The TI-89 FAQ]&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Assemblers</id>
		<title>Assemblers</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Assemblers"/>
				<updated>2020-12-03T20:16:36Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Not finished but working on it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PC Software|Assemblers]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
{{wikify}}&lt;br /&gt;
== z80 Assemblers ==&lt;br /&gt;
&lt;br /&gt;
== [https://ticalc.org/archives/files/fileinfo/15/1504.html TASM] ==&lt;br /&gt;
TASM is very outdated but you can find the most recent upload of it can be found on ticalc.org [https://ticalc.org/archives/files/fileinfo/15/1504.html here].&lt;br /&gt;
&lt;br /&gt;
== [https://github.com/alberthdev/spasm-ng SPASM-ng] ==&lt;br /&gt;
SPASM-ng is a z80 assembler with extra features to support development for TI calculators.&lt;br /&gt;
It uses a terminal syntax and runs on Linux and Windows and MacOS.&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* App Signing&lt;br /&gt;
* Includes&lt;br /&gt;
* Defines&lt;br /&gt;
* Equates&lt;br /&gt;
* If:Then:Else Statements&lt;br /&gt;
* Macros&lt;br /&gt;
* Bitmap Support&lt;br /&gt;
* Fast Compiling&lt;br /&gt;
* TASM syntax support&lt;br /&gt;
&lt;br /&gt;
To find the latest build(or to build it yourself) goto the [https://github.com/alberthdev/spasm-ng Official Github Page].&lt;br /&gt;
&lt;br /&gt;
== [https://clrhome.org/asm/ ClrHome.org] ==&lt;br /&gt;
ClrHome.org offers a completly web based assembler/IDE that can be used inside of your browser. It is located [https://clrhome.org/asm/ here].&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* One Page App Signing&lt;br /&gt;
* Includes&lt;br /&gt;
* Defines&lt;br /&gt;
* Equates&lt;br /&gt;
* If:Then:Else Statements&lt;br /&gt;
* Macros&lt;br /&gt;
&lt;br /&gt;
== Brass ==&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* TASM compatibility (partial?)&lt;br /&gt;
* macros&lt;br /&gt;
&lt;br /&gt;
== [https://github.com/jacobly0/fasmg-z80 fasmg-z80] ==&lt;br /&gt;
A tool that transforms flatassembler into a z80 assembler. Latest build can be found [https://github.com/jacobly0/fasmg-z80 here].&lt;br /&gt;
&lt;br /&gt;
== 68k Assemblers ==&lt;br /&gt;
&lt;br /&gt;
=== A68k ===&lt;br /&gt;
&lt;br /&gt;
A68k is ancient and originally written for programming the Amiga.  It comes with TIGCC and GCC4TI.  Some in the 68k community continue to use it because they prefer its syntax, though the TIGCC and GCC4TI developers strongly encourage people to move to the GNU Assembler.&lt;br /&gt;
&lt;br /&gt;
=== GNU as ===&lt;br /&gt;
&lt;br /&gt;
This assembler ships with GCC4TI and TIGCC.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack</id>
		<title>Category:83Plus:OS:Operator Stack</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack"/>
				<updated>2020-12-03T19:39:20Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
'''Official Name:''' OPS&lt;br /&gt;
&lt;br /&gt;
'''Memory Address:''' 9828h&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 bytes&lt;br /&gt;
&lt;br /&gt;
The operator stack is defined between (OPS) and (OPBase).  The OS uses this area for storing information for conditional statements and loops in TI-BASIC.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
Due to extremely poor programming in the OS, it is the cause of the well-known memory leaks which can occur if a programmer uses a Goto statement within a loop or an If:Then statement.  In a nutshell, it moves the OPS and [https://wikiti.brandonw.net/index.php?title=83Plus:RAM:9824 FPS] by nine bytes every time a push to each occurs, which happens when a conditional is entered.  This can cause a slowdown (slowly becomes more to move) and memory leaks (the nine bytes added above).  The FPS are not accounted for, or are 'leaked'.&lt;br /&gt;
&lt;br /&gt;
Very little is currently known about the OPS since TI has not documented it, but research is underway.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack</id>
		<title>Category:83Plus:OS:Operator Stack</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack"/>
				<updated>2020-12-03T19:19:17Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wikify}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
'''Official Name:''' OPS&lt;br /&gt;
&lt;br /&gt;
'''Memory Address:''' 9828h&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 bytes&lt;br /&gt;
&lt;br /&gt;
The operator stack is defined between (OPS) and (OPBase).  The OS uses this area for storing information for conditional statements and loops in TI-BASIC.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
Due to extremely poor programming in the OS, it is the cause of the well-known memory leaks which can occur if a programmer uses a Goto statement within a loop or an If:Then statement.  In a nutshell, it moves the OPS and [https://wikiti.brandonw.net/index.php?title=83Plus:RAM:9824 FPS] by nine bytes every time a push to each occurs, which happens when a conditional is entered.  This can cause a slowdown (slowly becomes more to move) and memory leaks (the nine bytes added above).  The FPS are not accounted for, or are 'leaked'.&lt;br /&gt;
&lt;br /&gt;
Very little is currently known about the OPS since TI has not documented it, but research is underway.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack</id>
		<title>Category:83Plus:OS:Operator Stack</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:83Plus:OS:Operator_Stack"/>
				<updated>2020-12-03T19:17:46Z</updated>
		
		<summary type="html">&lt;p&gt;NonstickAtom: Wikified but I don't want to move it because I'm still new :P Also I don't know if putting two memory locations is allowed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wikify}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
'''Official Name:''' OPBase and OPS&lt;br /&gt;
&lt;br /&gt;
'''Memory Address:''' 9826h - 9828h&lt;br /&gt;
&lt;br /&gt;
'''Length:''' 2 bytes&lt;br /&gt;
&lt;br /&gt;
The operator stack is defined between (OPS) and (OPBase).  The OS uses this area for storing information for conditional statements and loops in TI-BASIC.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
Due to extremely poor programming in the OS, it is the cause of the well-known memory leaks which can occur if a programmer uses a Goto statement within a loop or an If:Then statement.  In a nutshell, it moves the OPS and [https://wikiti.brandonw.net/index.php?title=83Plus:RAM:9824 FPS] by nine bytes every time a push to each occurs, which happens when a conditional is entered.  This can cause a slowdown (slowly becomes more to move) and memory leaks (the nine bytes added above).  The FPS are not accounted for, or are 'leaked'.&lt;br /&gt;
&lt;br /&gt;
Very little is currently known about the OPS since TI has not documented it, but research is underway.&lt;/div&gt;</summary>
		<author><name>NonstickAtom</name></author>	</entry>

	</feed>