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

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:LCD_Controller</id>
		<title>84PCSE:LCD Controller</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:LCD_Controller"/>
				<updated>2014-01-20T09:13:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: /* 50: Window Horizontal Address Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:General Hardware Information|LCD Controller]]&lt;br /&gt;
&lt;br /&gt;
= Quick Specs =&lt;br /&gt;
* ILI9335&lt;br /&gt;
* TFT color LCD&lt;br /&gt;
* Supports 8 and 16-bit interfaces&lt;br /&gt;
* 172,800 bytes internal RAM&lt;br /&gt;
* 76,800 pixels&lt;br /&gt;
* Power-saving 8-color mode&lt;br /&gt;
* 262,144 = 2^18 = 6x6x6 colors&lt;br /&gt;
* Data sheet: http://www.displayfuture.com/Display/datasheet/controller/ILI9335.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
Like the old LCD controller, the new color controller is controlled by ports&lt;br /&gt;
10h and 11h.  The LCD controller wants 16- or 18-bit data, but the Z80 only does&lt;br /&gt;
8-bit I/O, so each read or write takes TWO operations.  The controller expects&lt;br /&gt;
them to be in big-endian order, i.e. to output 1234h, you write 12h first, then&lt;br /&gt;
write 34h to the SAME port.  Writes to port 10h set the current &amp;quot;register&amp;quot;.&lt;br /&gt;
You need to send 16-bits to 10h at a time, even though there are no registers&lt;br /&gt;
above 0FFh; every time you set the current register, send a dummy zero first, or alternatively, send the same byte twice.&lt;br /&gt;
Reading 10h probably returns some kind of status information (more information&lt;br /&gt;
needed).  Reading and writing to 11h reads or writes to or from a register.&lt;br /&gt;
&lt;br /&gt;
Therefore, to send the LCD a command, you first send two bytes to port 10h&lt;br /&gt;
to set the current register.  Then, you send two bytes to write the data.&lt;br /&gt;
Similarly, to read, write the register number to 10h, and then read twice from&lt;br /&gt;
11h.  You should be able to read-modify-write without resending the register&lt;br /&gt;
number.&lt;br /&gt;
&lt;br /&gt;
To send graphics to the LCD, set the column and row address&lt;br /&gt;
registers, and then send the data serially to register #22h.  You do not need to&lt;br /&gt;
write 00 22h to port 10h after every byte.&lt;br /&gt;
&lt;br /&gt;
NOTA BENE: IMPORTANT TERMINOLOGY:&lt;br /&gt;
&lt;br /&gt;
In this document, the word &amp;quot;cursor&amp;quot; refers to the LCD controller's current&lt;br /&gt;
reading or writing location on the screen; that is, the current row and column&lt;br /&gt;
set by registers 20h and 21h.&lt;br /&gt;
&lt;br /&gt;
(For those following along with the data sheet:&lt;br /&gt;
Like before, the X/Y plane is flipped in the data sheet documentation.&lt;br /&gt;
Specifically, the the screen is rotated 90 degrees from the way the manufacturer&lt;br /&gt;
expects, so &amp;quot;horizontal&amp;quot; and &amp;quot;vertical&amp;quot; refer to the OTHER, i.e. horizontal&lt;br /&gt;
means up and down on the screen.  Also, &amp;quot;up&amp;quot; and &amp;quot;down&amp;quot; are switched with &amp;quot;left&amp;quot;&lt;br /&gt;
and &amp;quot;right&amp;quot;.  Also, the auto-increment behavior in hardware is rotated 90&lt;br /&gt;
degrees clockwise from the register 0x03 diagram.  It also suggests that the&lt;br /&gt;
manufacturer expects the screen to be in landscape mode, which is wrong.)&lt;br /&gt;
&lt;br /&gt;
To resolve potential CONFUSION about the meaning of the words &amp;quot;horizontal&amp;quot;,&lt;br /&gt;
&amp;quot;vertical&amp;quot;, &amp;quot;up&amp;quot;, &amp;quot;down&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;right&amp;quot;, &amp;quot;X&amp;quot;, and &amp;quot;Y&amp;quot;, (see above paragraph)&lt;br /&gt;
this document will use the terms &amp;quot;row&amp;quot; and &amp;quot;Y&amp;quot; to refer to the up/down direction&lt;br /&gt;
positioning of the cursor on the actual calculator; similarly, &amp;quot;column&amp;quot; and &amp;quot;X&amp;quot;&lt;br /&gt;
refer to the left/right axis.  Additionally, as is standard for computer&lt;br /&gt;
screens, the X=0 position is at the left side, and X+ is pointing to the right;&lt;br /&gt;
and moreover, Y=0 is at the top, and Y+ points DOWN.&lt;br /&gt;
&lt;br /&gt;
READ THE ABOVE OR YOU WILL HAVE BUGS!&lt;br /&gt;
&lt;br /&gt;
Like the old B&amp;amp;W LCD controller, this one has an internal cursor (the&lt;br /&gt;
data sheet calls it the GRAM address) that determines where data written or read&lt;br /&gt;
goes.  Unlike the old controller, setting the row register will cause the column&lt;br /&gt;
pointer to reset to the last value written, and vice versa.  For example, if you&lt;br /&gt;
set the row to 1, the column to 2, write a pixel so the column is now 3, and&lt;br /&gt;
then set the row to 5, the column will not remain at 3, but revert to 2.  (If&lt;br /&gt;
you then set the column to 10, the row remains at 5, because 5 is the last value&lt;br /&gt;
you wrote.)&lt;br /&gt;
&lt;br /&gt;
So, port 10h:&lt;br /&gt;
* Writing sets the index for the IR register&lt;br /&gt;
* Reading reads an internal status code&lt;br /&gt;
* Write four zeros to sync for multibyte transfers&lt;br /&gt;
Port 11h:&lt;br /&gt;
* Writing sets a control register value or writes to GRAM (auto-buffered to WRD)&lt;br /&gt;
* Reading reads from GRAM through the buffered RDR register (so a dummy&lt;br /&gt;
read (16-bits!) is required before the data are valid, just like&lt;br /&gt;
before)&lt;br /&gt;
&lt;br /&gt;
TI always uses the 16-bit color mode, and they always set BGR color order,&lt;br /&gt;
for no good reason.&lt;br /&gt;
&lt;br /&gt;
If you read the data sheet, the interface mode is the I80 8-bit mode.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
To make life a little less terrible, the LCD controller supports setting a &amp;quot;window&amp;quot; into which the cursor is confined. In this window, if moving to the next pixel---whichever direction that may be---would move the cursor outside the bounds of the window, the cursor will instead move to the start of the next appropriate row or column, as determined by the entry mode, eventually wrapping back to the start of the window. This makes it easier to write sprites and do tiny animations. Windowing is always active, so it's something you must keep track of. Furthermore, you ''must'' set the cursor to inside the window when you change it, or else the screen will go totally wonky and display garbage when you try to write pixels to it.&lt;br /&gt;
&lt;br /&gt;
=== Partial Image Mode ===&lt;br /&gt;
&lt;br /&gt;
This has the potential to be quite useful. In particular, it allows a hacked 160x240 mode in which each pixel is twice as wide as normal. Somebody should probably add more information on this.&lt;br /&gt;
&lt;br /&gt;
=== Panic Mode ===&lt;br /&gt;
&lt;br /&gt;
If you do something the LCD controller finds particularly adverse (like set the cursor to be outside of the window bounds and try to write pixels), the LCD controller will display garbage lines everywhere. It will not operate normally again until you perform the power-off and power-on sequences.&lt;br /&gt;
&lt;br /&gt;
== Power Control ==&lt;br /&gt;
&lt;br /&gt;
The B&amp;amp;W screen can be initialized with just half-a-dozen writes. The color screen is much more complicated. Power-on and power-off both require many writes with minimum wait times.&lt;br /&gt;
&lt;br /&gt;
Be aware! The LCD controller is not connected to the LCD backlight controller. They are separate hardware, and operate independently. The LCD controller can be on without the backlight being on (you can't see anything except if you shine a very, very bright light directly on the screen), and the backlight can be on with LCD controller off. Port 3A controls the LCD backlight (among other things).&lt;br /&gt;
&lt;br /&gt;
=== Power On ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Key: shows the specific values TI gives to fields, check the documentation for&lt;br /&gt;
detail.&lt;br /&gt;
Binary: (- means zero &amp;amp; field is not defined)&lt;br /&gt;
    54321098 76543210&lt;br /&gt;
Port	Value	Purpose&lt;br /&gt;
&lt;br /&gt;
On hard boot:&lt;br /&gt;
&lt;br /&gt;
07	0000	Reset Disp.Ctrl.1: LCD scanning, command processing off&lt;br /&gt;
10	07F1	Reset Pwr.Ctrl.1: Start RC oscillator, set voltages&lt;br /&gt;
    ---0-111 1111--01	&lt;br /&gt;
&lt;br /&gt;
Device soft-power on:&lt;br /&gt;
    54321098 76543210&lt;br /&gt;
&lt;br /&gt;
01	0000	Reset Out.Ctrl.1: Ensure scan directions are not reversed&lt;br /&gt;
02	0200	LCD Driving Control: Sets inversion mode=line inversion and&lt;br /&gt;
    ------10 --------	disables it&lt;br /&gt;
03	1038	Init. Entry Mode: Cursor moves up/down, down, left, disable&lt;br /&gt;
    00-1---- 0-111---	auto-origin set for windows, BGR order, 16-bit color&lt;br /&gt;
08	0202	Set front &amp;amp; back porches: 2 blank lines top &amp;amp; bottom&lt;br /&gt;
    ----0010 ----0010	&lt;br /&gt;
09	0000	Reset Disp.Ctrl.3: Resets scanning stuff and off-screen voltage&lt;br /&gt;
0A	0000	Disp.Ctrl.4: No FMARK&lt;br /&gt;
0C	0000	RGB Disp.: Off&lt;br /&gt;
0D	0000	FMARK position: Off&lt;br /&gt;
60	2700	Driver Output Ctrl. 2&lt;br /&gt;
    ??100111 00000000	&lt;br /&gt;
61	0001	Base Image Display Ctrl: Use color inversion, no vertical&lt;br /&gt;
			scroll, reset voltage in non-display level&lt;br /&gt;
6A	0000	Reset Vertical Scroll Ctrl.&lt;br /&gt;
&lt;br /&gt;
WAIT A WHILE (40 ms is good)&lt;br /&gt;
&lt;br /&gt;
10	1190	Init Pwr.Ctrl.1: Exit standby, fiddle with voltages, enable&lt;br /&gt;
    ---1-001 1001--00	voltage booster&lt;br /&gt;
11	0227	Pwr.Ctrl.2: Configure voltages&lt;br /&gt;
    -----010 -010-111	&lt;br /&gt;
&lt;br /&gt;
WAIT A WHILE&lt;br /&gt;
&lt;br /&gt;
12	008C	Pwr.Ctrl.3: More voltages&lt;br /&gt;
    -------- 1--01100	&lt;br /&gt;
&lt;br /&gt;
WAIT A WHILE&lt;br /&gt;
&lt;br /&gt;
13	1800	Pwr.Ctrl.4: Take a wild guess&lt;br /&gt;
    ---11000 --------	&lt;br /&gt;
29	0030	Pwr.Ctrl.7: I'm not an LCD engineer, don't ask me.&lt;br /&gt;
    -------- --110000	&lt;br /&gt;
2B	000B	Set frame rate to 70&lt;br /&gt;
    -------- ----1011	&lt;br /&gt;
&lt;br /&gt;
WAIT A WHILE&lt;br /&gt;
&lt;br /&gt;
30	0000	Gamma Control 1: I really have idea about these.  Touching them&lt;br /&gt;
			may or may not make things explode.&lt;br /&gt;
31	0305	Gamma Control 2&lt;br /&gt;
32	0002	Gamma Control 3&lt;br /&gt;
35	0301	Gamma Control 4&lt;br /&gt;
36	0004	Gamma Control 5&lt;br /&gt;
37	0507	Gamma Control 6&lt;br /&gt;
38	0204	Gamma Control 7&lt;br /&gt;
39	0707	Gamma Control 8&lt;br /&gt;
3C	0103	Gamma Control 9&lt;br /&gt;
3D	0004	Gamma Control 10&lt;br /&gt;
50	0000	Horiz.Win.Start: 0&lt;br /&gt;
51	00EF	Horiz.Win.End: 239 = 240-1&lt;br /&gt;
52	0000	Vert.Win.Start: 0&lt;br /&gt;
53	013F	Vert.Win.End: 319 = 320-1&lt;br /&gt;
&lt;br /&gt;
WAIT A WHILE&lt;br /&gt;
&lt;br /&gt;
07	0133	Disp.Ctrl.1: LCD scan &amp;amp; light on, ready to enter standby&lt;br /&gt;
    --00---1 --110-11	No partial image&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Power Off ===&lt;br /&gt;
&lt;br /&gt;
Powering down the LCD controller is a lot easier. Just follow this sequence.&lt;br /&gt;
&lt;br /&gt;
* Write 0 to register 7 (lrDispCtrl1)&lt;br /&gt;
* Wait&lt;br /&gt;
* Write 07F0 to 10h (lrPwrCtrl)&lt;br /&gt;
* Wait&lt;br /&gt;
* Write 07F1 to 10h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Register List =&lt;br /&gt;
&lt;br /&gt;
This is a list of all the LCD's registers, what each bit does (if anything),&lt;br /&gt;
and the values the OS expects for normal operation, so you can hopefully return&lt;br /&gt;
the screen to normal after you're done screwing things up.&lt;br /&gt;
&lt;br /&gt;
You should probably not screw with the power and scanning control registers.&lt;br /&gt;
The screen might catch on fire, or cause the screen to fade over time, or just&lt;br /&gt;
stop working.&lt;br /&gt;
Remember, some of said registers directly control the internal voltages used in the controller.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 00: Driver Code ===&lt;br /&gt;
Reads 9335h&lt;br /&gt;
&lt;br /&gt;
=== 01: Driver Output Control 1 ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|Set to reverse row scan direction (i.e. upside-down mode)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|0&lt;br /&gt;
|Set for interlaced output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 02: LCD Driving Control ===&lt;br /&gt;
Default: 0200h&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|EOR: Set with B/C = 1 to set line inversion&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|1&lt;br /&gt;
|B/C: 0 = Frame/Field inversion, 1 = lin inversion&lt;br /&gt;
|}&lt;br /&gt;
Comments: This seems to have no effect?&lt;br /&gt;
&lt;br /&gt;
=== 03: Entry Mode ===&lt;br /&gt;
Default: 1038h&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|1&lt;br /&gt;
|AM: Cursor direction. Set = L/R, reset = U/D. After every pixel, the cursor moves either U/D or L/R. &lt;br /&gt;
If set to L/R (1), after every pixel the cursor moves left&lt;br /&gt;
(bit 5=0) or right (b5=1).  At the end of the row, the cursor&lt;br /&gt;
moves up (b4=0) or down (b4=1).&lt;br /&gt;
&lt;br /&gt;
If AM is set to U/D, after every pixel, the cursor moves up&lt;br /&gt;
(b4=0) or down (b4=1).  At the end of each column, the cursor&lt;br /&gt;
moves left (b5=0) or right (b5=1).&lt;br /&gt;
&lt;br /&gt;
At the end of every row or column, the cursor resets to the&lt;br /&gt;
start of the next line, where ever the current window setting&lt;br /&gt;
puts it.&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|1&lt;br /&gt;
|Vertical increment/decrement: Set = increment&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|1&lt;br /&gt;
|Horizontal increment/decrement: Set = increment&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|0&lt;br /&gt;
|ORG: The controller's wording suggests that if this is set, then the cursor seeks to the corner of the window when the window is set, but this appears to be wrong?&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|1&lt;br /&gt;
|BGR: If this is set, the &amp;quot;red&amp;quot; and &amp;quot;blue&amp;quot; channels are swapped both when writing pixels to GRAM, and when reading pixels from GRAM.  Note that this doesn't affect the appearance of existing pixels.&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|0&lt;br /&gt;
|TRI: If set, 3 writes are required for every pixel (of which 18 bits are used, allowing up to 2&amp;lt;sup&amp;gt;18&amp;lt;/sup&amp;gt; distinct colors to be displayed.)  Note that unlike the BGR bit, TRI only affects output operations, not input operations.&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0&lt;br /&gt;
|DFM: If reset, the 3 writes are packed.&lt;br /&gt;
If set, the 3 writes are unpacked.  (That is, write 1 byte red,&lt;br /&gt;
1 byte green, and finally 1 byte blue, or reverse for BGR.)&lt;br /&gt;
|}&lt;br /&gt;
The display has three color modes:&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;TRI&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;DFM&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Transfer Mode&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|any&lt;br /&gt;
|16-bit color, packed values, MSB first (big endian)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|18-bit color, packed values, R[5:4] low bits of first transfer&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|18-bit color, unpacked values, uses high 6 bits, low two bits&lt;br /&gt;
ignored&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, to draw an orange pixel (R=100%, G=50%, B=0%) in TRI=0/BGR=1 mode, you would write &amp;lt;span style=&amp;quot;color: #f00&amp;quot;&amp;gt;11111&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: #0c0&amp;quot;&amp;gt;011&amp;lt;/span&amp;gt;b, &amp;lt;span style=&amp;quot;color: #0c0&amp;quot;&amp;gt;111&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: #00f&amp;quot;&amp;gt;00000&amp;lt;/span&amp;gt;b.  In TRI=1/DFM=0/BGR=1 mode, you would write 000000&amp;lt;span style=&amp;quot;color: #f00&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;b, &amp;lt;span style=&amp;quot;color: #f00&amp;quot;&amp;gt;1111&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: #0c0&amp;quot;&amp;gt;0111&amp;lt;/span&amp;gt;b, &amp;lt;span style=&amp;quot;color: #0c0&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: #00f&amp;quot;&amp;gt;000000&amp;lt;/span&amp;gt;b.  In TRI=1/DFM=1/BGR=1 mode, you would write &amp;lt;span style=&amp;quot;color: #f00&amp;quot;&amp;gt;111111&amp;lt;/span&amp;gt;00b, &amp;lt;span style=&amp;quot;color: #0c0&amp;quot;&amp;gt;011111&amp;lt;/span&amp;gt;00b, &amp;lt;span style=&amp;quot;color: #00f&amp;quot;&amp;gt;000000&amp;lt;/span&amp;gt;00b.&lt;br /&gt;
&lt;br /&gt;
=== 05: 16-bit Data Format Selection ===&lt;br /&gt;
The ILI9335 documentation is wrong about this register.  It claims that it controls how the least-significant bits of the red and blue channels are determined when TRI=0.  Experiments, however, have shown that the mode described as &amp;quot;EPF=10&amp;quot; is always used, regardless of the value of R05.  In this mode, the most significant bit is copied into the least significant bit - or in other words, the input values are multiplied by 63/31 and rounded to the nearest integer.&lt;br /&gt;
&lt;br /&gt;
(For reference, the documentation claims that mode 00 sets the least significant bits to 0; mode 01 sets the least significant bits to 1; mode 10 does as described above; and mode 11 does something not-completely-explained based on whether the red and blue values are equal.)&lt;br /&gt;
&lt;br /&gt;
If this register has any effect, it's unknown.&lt;br /&gt;
&lt;br /&gt;
=== 07: Display Control 1 ===&lt;br /&gt;
Default: 0133h&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|D0: Turn off scanning??&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|D1: Turn off LCD??&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|CL: Set for 8-colors mode&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|1&lt;br /&gt;
|DTE: Set for normal operation&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|1&lt;br /&gt;
|GON: Set for normal operation&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|1&lt;br /&gt;
|BASEE: Set to keep LCD controller active even in standby/sleep&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|0&lt;br /&gt;
|PTDE0: Set to enable partial image 1&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|0&lt;br /&gt;
|PTDE1: Set to enable partial image 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 08: Display Control 2 ===&lt;br /&gt;
Default: 0202h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3:0&lt;br /&gt;
|2&lt;br /&gt;
|BP: Number of lines to skip after after VSYNC&lt;br /&gt;
|-&lt;br /&gt;
|11:8&lt;br /&gt;
|2&lt;br /&gt;
|FP: Number of lines to skip after finishing LCD scan&lt;br /&gt;
|}&lt;br /&gt;
Neither may be set to 0, 1, or more than 128, and must total&lt;br /&gt;
less than or equal to 256.&lt;br /&gt;
&lt;br /&gt;
=== 09: Display Control 3 ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3:0&lt;br /&gt;
|0&lt;br /&gt;
|ISC: Scan cycle period = ISC*2-1 frames&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|PTG0: Do not set this bit&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|PTG1: Set for interval scan&lt;br /&gt;
|-&lt;br /&gt;
|10:8&lt;br /&gt;
|0&lt;br /&gt;
|PTS: Output voltage when scanning in non-display area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0A: Display Control 4 ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
Probably useless to us&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2:0&lt;br /&gt;
|0&lt;br /&gt;
|FMARK interval, valid values are 0, 1, 3, 5&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|MKARKOE: Enables FMARK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0C: RGB Display Interface Control 1 ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
Probably useless to us&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|1:0&lt;br /&gt;
|0&lt;br /&gt;
|RIM&lt;br /&gt;
|-&lt;br /&gt;
|5:4&lt;br /&gt;
|0&lt;br /&gt;
|DM&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|RM&lt;br /&gt;
|-&lt;br /&gt;
|14:12&lt;br /&gt;
|0&lt;br /&gt;
|ENC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0D: Frame Maker Position ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
Probably useless to us&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8:0&lt;br /&gt;
|0&lt;br /&gt;
|FMP: Sets when the FMARK pulse is output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0F: RGB Display Interface Control 2 ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
Probably useless to us, TI doesn't initalize it&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|DPL&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|EPL&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|HSPL&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|VSPL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 10: Power Control 1 ===&lt;br /&gt;
Default: 1190h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|STB: Set=sleep mode (RC oscillator still active)&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|SLP: Set=standby mode (GRAM preserved)&lt;br /&gt;
In STB or SLP, no commands except exit STB or SLP are accepted&lt;br /&gt;
|-&lt;br /&gt;
|6:4&lt;br /&gt;
|1&lt;br /&gt;
|AP: OP amp adjust&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|1&lt;br /&gt;
|APE: Set to enable power supply startup&lt;br /&gt;
|-&lt;br /&gt;
|10:8&lt;br /&gt;
|1&lt;br /&gt;
|BT: Voltage step-up adjust&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|1&lt;br /&gt;
|SAP: Set=source driver enabled, boot with this=0 then set to 1&lt;br /&gt;
after LCD power supply is active&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 11: Power Control 2 ===&lt;br /&gt;
Default: 0227h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2:0&lt;br /&gt;
|&lt;br /&gt;
|VC&lt;br /&gt;
|-&lt;br /&gt;
|6:4&lt;br /&gt;
|&lt;br /&gt;
|DC0&lt;br /&gt;
|-&lt;br /&gt;
|10:8&lt;br /&gt;
|&lt;br /&gt;
|DC1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 12: Power Control 3 ===&lt;br /&gt;
Default: 008Ch&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3:0&lt;br /&gt;
|&lt;br /&gt;
|VRH&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|PON&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|&lt;br /&gt;
|VCIRE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 13: Power Control 4 ===&lt;br /&gt;
Default: 1800h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|12:8&lt;br /&gt;
|&lt;br /&gt;
|VDV&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 20: Cursor Row ===&lt;br /&gt;
The datasheet calls this the &amp;quot;Horizontal GRAM Address&amp;quot; , but it sets the up/down position of the cursor because the&lt;br /&gt;
display is on its side.&lt;br /&gt;
&lt;br /&gt;
=== 21: Cursor Column ===&lt;br /&gt;
Sets the left/right position of the cursor.&lt;br /&gt;
NOTA BENE: Setting one register will cause the other to revert&lt;br /&gt;
to its previous value; see Overview, above.&lt;br /&gt;
&lt;br /&gt;
=== 22: GRAM ===&lt;br /&gt;
This is the register that you use to actually send and read pixels.&lt;br /&gt;
&lt;br /&gt;
When reading, a dummy read is required before a cursor change&lt;br /&gt;
takes effect; i.e., after writing 20 and 21, do a 16-bit&lt;br /&gt;
dummy read before saving the actual data.&lt;br /&gt;
&lt;br /&gt;
Reading does not appear to update the cursor, so you can do a read-modify-write type operation, which might be useful for masking or implementing gratuitous transparency effects.&lt;br /&gt;
&lt;br /&gt;
=== 29: Power Control 7 ===&lt;br /&gt;
Default: 0030h&lt;br /&gt;
&lt;br /&gt;
You probably shouldn't muck with this field.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5:0&lt;br /&gt;
|&lt;br /&gt;
|VCM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2B: Frame Rate and Color Control ===&lt;br /&gt;
Default: 0000Bh&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3:0&lt;br /&gt;
|0Bh&lt;br /&gt;
|Frame rates, 0-15: 31, 33, 34, 36, 39, 41, 44, 48, 52, 57, 62,&lt;br /&gt;
69, 78, 89, undefined, undefined&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 30-3D: Gamma Control ===&lt;br /&gt;
You probably shouldn't muck with these fields.&lt;br /&gt;
&lt;br /&gt;
Default values:&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Register&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Value&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|0000&lt;br /&gt;
|Gamma Control 1&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|0305&lt;br /&gt;
|Gamma Control 2&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|0002&lt;br /&gt;
|Gamma Control 3&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|0301&lt;br /&gt;
|Gamma Control 4&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|0004&lt;br /&gt;
|Gamma Control 5&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|0507&lt;br /&gt;
|Gamma Control 6&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|0204&lt;br /&gt;
|Gamma Control 7&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|0707&lt;br /&gt;
|Gamma Control 8&lt;br /&gt;
|-&lt;br /&gt;
|3C&lt;br /&gt;
|0103&lt;br /&gt;
|Gamma Control 9&lt;br /&gt;
|-&lt;br /&gt;
|3D&lt;br /&gt;
|0004&lt;br /&gt;
|Gamma Control 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 50: Window Horizontal Address Start ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
Defines leftmost position of window, inclusive. Remember that it's the actually the top of the window on the calculator.&lt;br /&gt;
&lt;br /&gt;
=== 51: Window Horizontal Address End ===&lt;br /&gt;
Default: 00EFh&lt;br /&gt;
&lt;br /&gt;
Exactly what you think.  This is inclusive, like port 50, so if your sprite&lt;br /&gt;
starts on column 0 and is 10 pixels wide, do not add 10 to 0 to get 10.&lt;br /&gt;
The number you want is 9.&lt;br /&gt;
&lt;br /&gt;
=== 52: Window Vertical Address Start ===&lt;br /&gt;
Default: 0000h&lt;br /&gt;
&lt;br /&gt;
=== 53: Window Vertical Address End ===&lt;br /&gt;
Default: 013Fh&lt;br /&gt;
&lt;br /&gt;
=== 60: Gate Scan Control ===&lt;br /&gt;
Default: 2700&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5:0&lt;br /&gt;
|0&lt;br /&gt;
|SCN: Sets the gate line from which the gate driver starts to scan.&lt;br /&gt;
|-&lt;br /&gt;
|13:8&lt;br /&gt;
|27h&lt;br /&gt;
|NL: Sets the number of lines to drive the LCD at an interval of 8 lines. In other words, it tells the LCD controller how big the screen really is.&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|0&lt;br /&gt;
|GS: Gate scan direction. Setting this will cause left/right mirroring.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 61: Base Image Display Control ===&lt;br /&gt;
Default: 0001h&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|REV: Set=enable grayscale inversion&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|VLE: Vertical scroll enable.&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|NDL: Sets the output level in the non-display area&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6A: Vertical Scroll Control ===&lt;br /&gt;
Default: 0000&lt;br /&gt;
&lt;br /&gt;
Partial image display is not affected by this.&lt;br /&gt;
&lt;br /&gt;
{|-&lt;br /&gt;
|&amp;lt;u&amp;gt;Bit&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Default&amp;lt;/u&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&amp;lt;u&amp;gt;Description&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8:0&lt;br /&gt;
|0000&lt;br /&gt;
|Sets the line to start displaying from.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 80: Partial Image 1 Display Position ===&lt;br /&gt;
&lt;br /&gt;
=== 81: Partial Image 1 Start Line ===&lt;br /&gt;
&lt;br /&gt;
=== 82: Partial Image 1 End Line ===&lt;br /&gt;
&lt;br /&gt;
=== 83: Partial Image 2 Display Position ===&lt;br /&gt;
&lt;br /&gt;
=== 84: Partial Image 2 Start Line ===&lt;br /&gt;
&lt;br /&gt;
=== 85: Partial Image 2 End Line ===&lt;br /&gt;
&lt;br /&gt;
=== 90: Panel Interface Control 1 ===&lt;br /&gt;
Default: 0000&lt;br /&gt;
&lt;br /&gt;
=== 92: Panel Interface Control 2 ===&lt;br /&gt;
Default: 0600h&lt;br /&gt;
&lt;br /&gt;
No, I don't know what happened to Panel Interface Control 3.  It's totally missing from the datasheet.&lt;br /&gt;
&lt;br /&gt;
=== 95: Panel Interface Control 4 ===&lt;br /&gt;
Default: 0200&lt;br /&gt;
&lt;br /&gt;
=== 97: Panel Interface Control 5 ===&lt;br /&gt;
Default: 0C00&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:RAM:8567</id>
		<title>83:RAM:8567</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:RAM:8567"/>
				<updated>2013-02-22T12:54:04Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with '8567 - flags flags == Synopsis == '''Official Name:''' flags  '''Memory Address:''' 8567h  '''Length:''' at least 35 by…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83:RAM:By_Address|8567 - flags]] [[Category:83:RAM:By_Name|flags]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official Name:''' flags&lt;br /&gt;
&lt;br /&gt;
'''Memory Address:''' 8567h&lt;br /&gt;
&lt;br /&gt;
'''Length:''' at least 35 bytes&lt;br /&gt;
&lt;br /&gt;
This is the address of the first system flag, and also the value of the IY register. When changed, the program should always return with the IY register set to this value.&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File</id>
		<title>84PCSE:OS:Include File</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File"/>
				<updated>2013-02-22T12:25:51Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:OS_Information]]&lt;br /&gt;
&amp;lt;pre&amp;gt;.nolist&lt;br /&gt;
;===============================================================================&lt;br /&gt;
;====== Include Stuff ==========================================================&lt;br /&gt;
;===============================================================================&lt;br /&gt;
&lt;br /&gt;
;Included for TASM Compatibility&lt;br /&gt;
;-------------------------------&lt;br /&gt;
#define equ .equ&lt;br /&gt;
#define EQU .equ&lt;br /&gt;
#define end .end&lt;br /&gt;
#define END .end&lt;br /&gt;
&lt;br /&gt;
;Banked Call Equates/Macros&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
rBR_CALL		equ 28h&lt;br /&gt;
BRT_JUMP0		equ 50h&lt;br /&gt;
#define bcall(xxxx) rst 28h \ .dw xxxx&lt;br /&gt;
#define b_call(xxxx) rst 28h \ .dw xxxx&lt;br /&gt;
#define bjump(xxxx) call 50h \ .dw xxxx&lt;br /&gt;
&lt;br /&gt;
;Common Restart Routines&lt;br /&gt;
;------------------------------&lt;br /&gt;
rOP1TOOP2		equ 08h&lt;br /&gt;
rFINDSYM		equ 10h&lt;br /&gt;
rPUSHREALO1		equ 18h&lt;br /&gt;
rMOV9TOOP1		equ 20h&lt;br /&gt;
rFPADD			equ 30h&lt;br /&gt;
&lt;br /&gt;
;Error Handler Equates/Macros&lt;br /&gt;
;-------------------------------------------&lt;br /&gt;
APP_PUSH_ERRORH		equ 59h&lt;br /&gt;
APP_POP_ERRORH		equ 5Ch&lt;br /&gt;
#define AppOnErr(xxxx) ld hl,xxxx \ call 59h&lt;br /&gt;
#define AppOffErr call 5Ch&lt;br /&gt;
&lt;br /&gt;
; System routines&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
_cphlde			equ	400Ch&lt;br /&gt;
_PutC			equ	44FBh&lt;br /&gt;
_keyscnlnk		equ	4A05h&lt;br /&gt;
_createVar		equ	4E55h ;A=type&lt;br /&gt;
_EnableCursorHook	equ	4F45h&lt;br /&gt;
_DisableCursorHook	equ	4F4Eh&lt;br /&gt;
_DelVarArc		equ	4FABh&lt;br /&gt;
_getKeyRetOff		equ	4FF0h&lt;br /&gt;
_runIndicOn		equ	4564h&lt;br /&gt;
_runIndicOff		equ	4567h&lt;br /&gt;
_PutS			equ	4501h&lt;br /&gt;
_getKey			equ	495Dh&lt;br /&gt;
_WriteToFlash		equ	50B0h&lt;br /&gt;
_dispHL			equ	44FEh&lt;br /&gt;
_CheckOSValidated	equ	8117h&lt;br /&gt;
_Disp32			equ	51AFh ;NOTE: Now you must pass number of digits to pad with in A (such as 7)&lt;br /&gt;
&lt;br /&gt;
; Memory Equates&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
appData			equ	8000h&lt;br /&gt;
ramCode			equ	8100h&lt;br /&gt;
tempSwapArea		equ	82B3h&lt;br /&gt;
OP1			equ	84AEh&lt;br /&gt;
flags			equ	8B26h&lt;br /&gt;
statVars		equ	8C1Ch&lt;br /&gt;
pagedCount		equ	9E15h&lt;br /&gt;
pagedGetPtr		equ	9E17h&lt;br /&gt;
pagedBuf		equ	9E1Bh&lt;br /&gt;
localLanguage		equ	9E54h&lt;br /&gt;
cursorHookBlockPtr	equ	9E5Dh&lt;br /&gt;
userMem			equ	0A60Bh&lt;br /&gt;
&lt;br /&gt;
; EXTENDED TOKENS&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
; These are new on OSes after 1.15 or whatever&lt;br /&gt;
tExtTok			equ	0EFh&lt;br /&gt;
&lt;br /&gt;
; MathPrint&lt;br /&gt;
tZQuadrant		equ	17h&lt;br /&gt;
tZFracHalf		equ	18h&lt;br /&gt;
tZFracThird		equ	19h&lt;br /&gt;
tZFracFourth		equ	1Ah&lt;br /&gt;
tZFracFifth		equ	1Bh&lt;br /&gt;
tZFracEighth		equ	1Ch&lt;br /&gt;
tZFracTenth		equ	1Dh&lt;br /&gt;
tFracSlash		equ	2Eh&lt;br /&gt;
tFracMixedNum		equ	2Fh&lt;br /&gt;
tSwapImProper		equ	30h&lt;br /&gt;
tSwapFracDec		equ	31h&lt;br /&gt;
tRemainder		equ	32h&lt;br /&gt;
tSummationSigma		equ	33h&lt;br /&gt;
tLogBase		equ	34h&lt;br /&gt;
tRandIntNoRep		equ	35h&lt;br /&gt;
tMathPrint		equ	37h&lt;br /&gt;
tClassic		equ	38h&lt;br /&gt;
tAutoAnswer		equ	3Bh&lt;br /&gt;
tDecAnswer		equ	3Ch&lt;br /&gt;
tFracAnswer		equ	3Dh&lt;br /&gt;
&lt;br /&gt;
; TI-84+CSE&lt;br /&gt;
tBlue			equ	41h&lt;br /&gt;
tRed			equ	42h&lt;br /&gt;
tBlack 			equ	43h&lt;br /&gt;
tMagenta		equ	44h&lt;br /&gt;
tGreen			equ	45h&lt;br /&gt;
tOrange			equ	46h&lt;br /&gt;
tBrown			equ	47h&lt;br /&gt;
tNavy			equ	48h&lt;br /&gt;
tLtBlue			equ	49h&lt;br /&gt;
tYellow			equ	4Ah&lt;br /&gt;
tWhite			equ	4Bh&lt;br /&gt;
tLtGray			equ	4Ch&lt;br /&gt;
tMedGray		equ	4Dh&lt;br /&gt;
tGray			equ	4Eh&lt;br /&gt;
tDarkGray		equ	4Fh&lt;br /&gt;
&lt;br /&gt;
tGraphColor		equ	65h&lt;br /&gt;
tTextColor		equ	67h&lt;br /&gt;
tBackgroundOn		equ	5Bh&lt;br /&gt;
tBackgroundOff		equ	64h&lt;br /&gt;
&lt;br /&gt;
tThin			equ	74h&lt;br /&gt;
;tThick - 0x7E 0x06 (was &amp;quot;Connected&amp;quot;?)&lt;br /&gt;
tAsm84CPrgm		equ	68h&lt;br /&gt;
tAsm84CCmp		equ	69h&lt;br /&gt;
tBorderColor		equ	6Ch&lt;br /&gt;
&lt;br /&gt;
; Flags&lt;br /&gt;
;------------------------------------&lt;br /&gt;
;flags			equ	8B26h&lt;br /&gt;
&lt;br /&gt;
appLwrCaseFlag		equ	24h&lt;br /&gt;
lwrCaseActive		equ	3&lt;br /&gt;
&lt;br /&gt;
;------ Hardware Ports ---------------------------------------------------------&lt;br /&gt;
; p = Port&lt;br /&gt;
; LnkAst = Link Assist, Pg = Page&lt;br /&gt;
; Se = Silver Edition, Be = Basic Edition (anything NOT a TI-83+)&lt;br /&gt;
; Cfg = Configuration, Ctrl = Control, Buf = Buffer, Prot = Protection&lt;br /&gt;
; M = Memory, Int = Interrupt, Id = Identification, Crstl = Crystal&lt;br /&gt;
; Tmr = Timer, Div = Divided by, Rtc = Real Time Clock, Usb = USB&lt;br /&gt;
; Unk = Unknown, Exec = Execution&lt;br /&gt;
;&lt;br /&gt;
; R:n = RAM page n (always indexed from 0; no more saying RAM page 80h)&lt;br /&gt;
; F:nn = Flash page nn&lt;br /&gt;
; P:nn = Port nn&lt;br /&gt;
; LR:nn = LCD Register nn&lt;br /&gt;
pLink			equ	0&lt;br /&gt;
pKey			equ	1&lt;br /&gt;
pStatus			equ	2&lt;br /&gt;
pIntMask		equ	3&lt;br /&gt;
pIntId			equ	4&lt;br /&gt;
pMMapTmrFreq		equ	4&lt;br /&gt;
pMPgC			equ	5&lt;br /&gt;
pLnkAstBeRead		equ	5&lt;br /&gt;
pMPgA			equ	6&lt;br /&gt;
pMPgB			equ	7&lt;br /&gt;
pLnkAstSeEnable		equ	8&lt;br /&gt;
pLnkAstSeStatus		equ	9&lt;br /&gt;
pLnkAstSeInBuf		equ	0Ah&lt;br /&gt;
pLnkAstSeCfg		equ	0Ah&lt;br /&gt;
pLnkAstSeRcvTimeout	equ	0Bh&lt;br /&gt;
pLnkAstSeSndTimeout	equ	0Ch&lt;br /&gt;
pLnkAstSeOutBuf		equ	0Dh&lt;br /&gt;
pMPgAHigh		equ	0Eh&lt;br /&gt;
pMPgBHigh		equ	0Fh&lt;br /&gt;
pLcdCmd			equ	10h&lt;br /&gt;
pLcdData		equ	11h&lt;br /&gt;
pProtCtrl		equ	14h&lt;br /&gt;
pAsicId			equ	15h&lt;br /&gt;
pBeFlashExecCtrl	equ	16h&lt;br /&gt;
pCpuSpeed		equ	20h&lt;br /&gt;
pFlashTypeRamMask	equ	21h&lt;br /&gt;
pFlashType		equ	21h&lt;br /&gt;
pRamMask		equ	21h&lt;br /&gt;
pFlashExecLowerLimit	equ	22h&lt;br /&gt;
pFlashExecUpperLimit	equ	23h&lt;br /&gt;
pFlashExecExecOverride	equ	24h&lt;br /&gt;
pRamExecLowerLimit	equ	25h&lt;br /&gt;
pRamExecUpperLimit	equ	26h&lt;br /&gt;
pBlockMRemapC		equ	27h&lt;br /&gt;
pBlockMRemapB		equ	28h&lt;br /&gt;
pLcdDelay0		equ	29h&lt;br /&gt;
pLcdDelay1		equ	2Ah&lt;br /&gt;
pLcdDelay2		equ	2Bh&lt;br /&gt;
pLcdDelay3		equ	2Ch&lt;br /&gt;
pUnknown2D		equ	2Dh&lt;br /&gt;
pMemDelay		equ	2Eh&lt;br /&gt;
pLcdGenDelay		equ	2Fh&lt;br /&gt;
pCrstlTmr1Freq		equ	30h&lt;br /&gt;
pCrstlTmr1Cfg		equ	31h&lt;br /&gt;
pCrstlTmr1Count		equ	32h&lt;br /&gt;
pCrstlTmr2Freq		equ	33h&lt;br /&gt;
pCrstlTmr2Cfg		equ	34h&lt;br /&gt;
pCrstlTmr2Count		equ	35h&lt;br /&gt;
pCrstlTmr3Freq		equ	36h&lt;br /&gt;
pCrstlTmr3Cfg		equ	37h&lt;br /&gt;
pCrstlTmr3Count		equ	38h&lt;br /&gt;
pUsbUnkOldFlg		equ	39h&lt;br /&gt;
pUsbUnkOldFlg2		equ	3Ah&lt;br /&gt;
pRtcCtrl		equ	40h&lt;br /&gt;
pRtcSet0		equ	41h&lt;br /&gt;
pRtcSet1		equ	42h&lt;br /&gt;
pRtcSet2		equ	43h&lt;br /&gt;
pRtcSet3		equ	44h&lt;br /&gt;
pRtc0			equ	45h ; Reading&lt;br /&gt;
pRtc1			equ	46h&lt;br /&gt;
pRtc2			equ	47h&lt;br /&gt;
pRtc3			equ	48h&lt;br /&gt;
&lt;br /&gt;
; Constants for bitfields&lt;br /&gt;
; St = Status, Batt = Batteries&lt;br /&gt;
; Rcv = Receive, Snd = Send, Err = Error&lt;br /&gt;
; Port 2 (pStatus)&lt;br /&gt;
stBattGood		equ	1&lt;br /&gt;
stLcdReady		equ	2&lt;br /&gt;
stFlashUnlocked		equ	4&lt;br /&gt;
stIsNot83pSe		equ	5&lt;br /&gt;
stIsSeModel		equ	7&lt;br /&gt;
; Port 3 (pIntMask)&lt;br /&gt;
intMaskOnKey		equ	1&lt;br /&gt;
intMaskTmr1		equ	2&lt;br /&gt;
intMaskTmr2		equ	4&lt;br /&gt;
intDisableLowPowerMode	equ	8&lt;br /&gt;
intMaskLinkport		equ	10h&lt;br /&gt;
intMaskNormal		equ	intMaskOnKey+intMaskTmr1+intDisableLowPowerMode&lt;br /&gt;
; Port 4 (pMMapTmrFreq)&lt;br /&gt;
intIdOnKey		equ	1&lt;br /&gt;
intIdTmr1		equ	2&lt;br /&gt;
intIdTmr2		equ	4&lt;br /&gt;
intIdOnKeyDown		equ	8&lt;br /&gt;
intIdLinkport		equ	16&lt;br /&gt;
intIdCrstlTmr1		equ	32&lt;br /&gt;
intIdCrstlTmr2		equ	64&lt;br /&gt;
intIdCrstlTmr3		equ	128&lt;br /&gt;
memMapMode0		equ	0&lt;br /&gt;
memMapMode1		equ	1&lt;br /&gt;
tmrFreq0		equ	0&lt;br /&gt;
tmrFreq1		equ	2&lt;br /&gt;
tmrFreq2		equ	4&lt;br /&gt;
tmrFreq3		equ	6&lt;br /&gt;
battVoltage0		equ	0&lt;br /&gt;
battVoltage1		equ	64&lt;br /&gt;
battVoltage2		equ	128&lt;br /&gt;
battVoltage3		equ	192&lt;br /&gt;
; Port 8 (pLnkAstSeEnable)&lt;br /&gt;
lnkSeIntRcv		equ	1&lt;br /&gt;
lnkSeIntSnd		equ	2&lt;br /&gt;
lnkSeIntErr		equ	4&lt;br /&gt;
lnkSeIntDisable		equ	128&lt;br /&gt;
lnkSeRcving		equ	8&lt;br /&gt;
lnkSeRcvd		equ	16&lt;br /&gt;
lnkSeSndReady		equ	32&lt;br /&gt;
lnkSndErr		equ	64&lt;br /&gt;
lnkSnding		equ	128&lt;br /&gt;
; Port 14h (pProtCtrl)&lt;br /&gt;
protLockFlash		equ	0&lt;br /&gt;
protUnlockFlash		equ	1&lt;br /&gt;
; Port 15h (pAsicId)&lt;br /&gt;
asic83pTA2		equ	33h&lt;br /&gt;
asic84pTA2		equ	44h&lt;br /&gt;
asic84pTA3		equ	45h&lt;br /&gt;
asic84pTA1		equ	55h&lt;br /&gt;
; Port 20h (pCpuSpeed)&lt;br /&gt;
cpu6MHz			equ	0&lt;br /&gt;
cpu15MHz		equ	1&lt;br /&gt;
cpu15MHz2		equ	2&lt;br /&gt;
cpu15MHz3		equ	3&lt;br /&gt;
; Port 21h (pFlashTypeRamMask)&lt;br /&gt;
flashTypeMask		equ	3&lt;br /&gt;
flashType1MB		equ	0&lt;br /&gt;
flashType2MB		equ	1&lt;br /&gt;
flashType4MB		equ	4&lt;br /&gt;
flashTyle8MB		equ	8&lt;br /&gt;
ramExecModeMask		equ	30h&lt;br /&gt;
ramExecMode0		equ	00h&lt;br /&gt;
ramExecMode1		equ	10h&lt;br /&gt;
ramExecMode2		equ	20h&lt;br /&gt;
ramExecMode3		equ	30h&lt;br /&gt;
; Port 24h (pFlashExecExecOverride)&lt;br /&gt;
flashAllowExecAll	equ	1&lt;br /&gt;
flashForbidExecAll	equ	2	; Except boot pages and overrides in bit 0 and port 22&lt;br /&gt;
; Ports 29h-2Ch (pLcdDelay0-3)&lt;br /&gt;
delayFlashEnable	equ	1&lt;br /&gt;
delayRamEnable		equ	2&lt;br /&gt;
delayCycleCountMask	equ	0FCh&lt;br /&gt;
delayCycleCountShift	equ	2&lt;br /&gt;
; Port 2E (pMemDelay)&lt;br /&gt;
delayFlashExec		equ	1&lt;br /&gt;
delayFlashRead		equ	2&lt;br /&gt;
delayFlashWrite		equ	4&lt;br /&gt;
delayRamExec		equ	10h&lt;br /&gt;
delayRamRead		equ	20h&lt;br /&gt;
delayRamWrite		equ	40h&lt;br /&gt;
; Port 2F (pLcdGenDelay)&lt;br /&gt;
cpu1LcdDelay48		equ	0&lt;br /&gt;
cpu1LcdDelay112		equ	1&lt;br /&gt;
cpu1LcdDelay176		equ	2&lt;br /&gt;
cpu1LcdDelay240		equ	3&lt;br /&gt;
cpu2LcdDelay48		equ	0&lt;br /&gt;
cpu2LcdDelay112		equ	4&lt;br /&gt;
cpu2LcdDelay176		equ	8&lt;br /&gt;
cpu2LcdDelay240		equ	12&lt;br /&gt;
cpu2LcdDelay304		equ	16&lt;br /&gt;
cpu2LcdDelay368		equ	20&lt;br /&gt;
cpu2LcdDelay432		equ	24&lt;br /&gt;
cpu2LcdDelay496		equ	28&lt;br /&gt;
cpu3LcdDelay48		equ	0&lt;br /&gt;
cpu3LcdDelay112		equ	32&lt;br /&gt;
cpu3LcdDelay176		equ	64&lt;br /&gt;
cpu3LcdDelay240		equ	96&lt;br /&gt;
cpu3LcdDelay304		equ	128&lt;br /&gt;
cpu3LcdDelay368		equ	160&lt;br /&gt;
cpu3LcdDelay432		equ	192&lt;br /&gt;
cpu3LcdDelay496		equ	224&lt;br /&gt;
; Crystal Timer Equates&lt;br /&gt;
tmrOff			equ	0&lt;br /&gt;
tmr11000Hz		equ	40h&lt;br /&gt;
tmr1000Hz		equ	41h&lt;br /&gt;
tmr100Hz		equ	42h&lt;br /&gt;
tmr10Hz			equ	43h&lt;br /&gt;
tmr32768Hz		equ	44h&lt;br /&gt;
tmr2048Hz		equ	45h&lt;br /&gt;
tmr128Hz		equ	46h&lt;br /&gt;
tmr8Hz			equ	47h&lt;br /&gt;
tmrCpu			equ	80h&lt;br /&gt;
tmrCpuDiv2		equ	81h&lt;br /&gt;
tmrCpuDiv4		equ	82h&lt;br /&gt;
tmrCpuDiv8		equ	84h&lt;br /&gt;
tmrCpuDiv16		equ	88h&lt;br /&gt;
tmrCpuDiv32		equ	90h&lt;br /&gt;
tmrCpuDiv64		equ	0A0h&lt;br /&gt;
tmrNullAck		equ	0&lt;br /&gt;
tmrLoop			equ	1&lt;br /&gt;
tmrInt			equ	2&lt;br /&gt;
tmrLoopAndInt		equ	3&lt;br /&gt;
; Port 40h (pRtcCtrl)&lt;br /&gt;
rtcEnable		equ	1&lt;br /&gt;
rtcSetCommand		equ	2&lt;br /&gt;
&lt;br /&gt;
;------ Other (put me somewhere else better if needed) -------------------------&lt;br /&gt;
appLwrCaseFlag		equ	36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;------ Color LCD Control Registers --------------------------------------------&lt;br /&gt;
; Color LCD-Related Stuff&lt;br /&gt;
; lr = LCD Register, Disp = Display, Win = Window, Img = Image&lt;br /&gt;
; Col = Column, Cur = Cursor, Vert = vertical, Horiz = Horizontal&lt;br /&gt;
; Use these macros with the bitfield definitions below.&lt;br /&gt;
#define lcdHigh(x) x &amp;gt;&amp;gt; 8&lt;br /&gt;
#define lcdLow(x) x &amp;amp; 255&lt;br /&gt;
&lt;br /&gt;
; Registers&lt;br /&gt;
lrSync			equ	0&lt;br /&gt;
lrDriverCode		equ	0&lt;br /&gt;
lrOutCtrl1		equ	1&lt;br /&gt;
lrDriveCtrl		equ	2&lt;br /&gt;
lrEntryMode		equ	3&lt;br /&gt;
lrRow			equ	20h&lt;br /&gt;
lrCol			equ	21h&lt;br /&gt;
lrGram			equ	22h&lt;br /&gt;
lrWinRowStart		equ	50h&lt;br /&gt;
lrWinRowEnd		equ	51h&lt;br /&gt;
lrWinColStart		equ	52h&lt;br /&gt;
lrWinColEnd		equ	53h&lt;br /&gt;
lrBaseImgDispCtrl	equ	61h&lt;br /&gt;
lrHorizScroll		equ	6Ah&lt;br /&gt;
&lt;br /&gt;
; Register 1 (lrOutCtrl1) Bitfields&lt;br /&gt;
lcdReverseCol		equ	0100h&lt;br /&gt;
lcdReverseRow		equ	0400h&lt;br /&gt;
; Register 2 (lrDriveCtrl) Bitfields&lt;br /&gt;
lcdEOR			equ	0100h&lt;br /&gt;
lcdBDivC		equ	0200h&lt;br /&gt;
; Register 3 (lrDispCtrl1) Bitfields&lt;br /&gt;
lcdAM			equ	0008h	; If set, the cursor moves left/right after every write.&lt;br /&gt;
lcdCurMoveHoriz		equ	lcdAM	; Alias&lt;br /&gt;
lcdVertInc		equ	0010h	; If unset, the cursor is instead decremented&lt;br /&gt;
lcdHorizInc		equ	0020h	&lt;br /&gt;
lcdORG			equ	0080h	; If set, when window is changed, cursor is reset to corner&lt;br /&gt;
lcdBGR			equ	1000h&lt;br /&gt;
lcdTRI			equ	4000h	; If set, 18-bit color is accepted&lt;br /&gt;
lcdDFM			equ	8000h	; Unpacked mode: Write R, G, and B separately if TRI is set&lt;br /&gt;
; Register 61 (lrBaseImgDispCtrl) Bitfields&lt;br /&gt;
lcdREV			equ	0001h	; If set, reverse color mode&lt;br /&gt;
lcdVLE			equ	0002h	; If set, lrHorizScroll is enabled&lt;br /&gt;
&lt;br /&gt;
.list&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File</id>
		<title>84PCSE:OS:Include File</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:OS:Include_File"/>
				<updated>2013-02-22T12:24:54Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:OS_Information]]&lt;br /&gt;
&amp;lt;pre&amp;gt;.nolist&lt;br /&gt;
;===============================================================================&lt;br /&gt;
;====== Include Stuff ==========================================================&lt;br /&gt;
;===============================================================================&lt;br /&gt;
&lt;br /&gt;
;Included for TASM Compatibility&lt;br /&gt;
;-------------------------------&lt;br /&gt;
#define equ .equ&lt;br /&gt;
#define EQU .equ&lt;br /&gt;
#define end .end&lt;br /&gt;
#define END .end&lt;br /&gt;
&lt;br /&gt;
;Banked Call Equates/Macros&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
rBR_CALL		equ 28h&lt;br /&gt;
BRT_JUMP0		equ 50h&lt;br /&gt;
#define bcall(xxxx) rst 28h \ .dw xxxx&lt;br /&gt;
#define b_call(xxxx) rst 28h \ .dw xxxx&lt;br /&gt;
#define bjump(xxxx) call 50h \ .dw xxxx&lt;br /&gt;
&lt;br /&gt;
;Common Restart Routines&lt;br /&gt;
;------------------------------&lt;br /&gt;
rOP1TOOP2		equ 08h&lt;br /&gt;
rFINDSYM		equ 10h&lt;br /&gt;
rPUSHREALO1		equ 18h&lt;br /&gt;
rMOV9TOOP1		equ 20h&lt;br /&gt;
rFPADD			equ 30h&lt;br /&gt;
&lt;br /&gt;
;Error Handler Equates/Macros&lt;br /&gt;
;-------------------------------------------&lt;br /&gt;
APP_PUSH_ERRORH		equ 59h&lt;br /&gt;
APP_POP_ERRORH		equ 5Ch&lt;br /&gt;
#define AppOnErr(xxxx) ld hl,xxxx \ call 59h&lt;br /&gt;
#define AppOffErr call 5Ch&lt;br /&gt;
&lt;br /&gt;
; System routines&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
_cphlde			equ	400Ch&lt;br /&gt;
_PutC			equ	44FBh&lt;br /&gt;
_keyscnlnk		equ	4A05h&lt;br /&gt;
_createVar		equ	4E55h ;A=type&lt;br /&gt;
_EnableCursorHook	equ	4F45h&lt;br /&gt;
_DisableCursorHook	equ	4F4Eh&lt;br /&gt;
_DelVarArc		equ	4FABh&lt;br /&gt;
_getKeyRetOff		equ	4FF0h&lt;br /&gt;
_runIndicOn		equ	4564h&lt;br /&gt;
_runIndicOff		equ	4567h&lt;br /&gt;
_PutS			equ	4501h&lt;br /&gt;
_getKey			equ	495Dh&lt;br /&gt;
_WriteToFlash		equ	50B0h&lt;br /&gt;
_dispHL			equ	44FEh&lt;br /&gt;
_CheckOSValidated	equ	8117h&lt;br /&gt;
_Disp32			equ	51AFh ;NOTE: Now you must pass number of digits to pad with in A (such as 7)&lt;br /&gt;
&lt;br /&gt;
; Memory Equates&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
appData			equ	8000h&lt;br /&gt;
ramCode			equ	8100h&lt;br /&gt;
tempSwapArea		equ	82B3h&lt;br /&gt;
OP1			equ	84AEh&lt;br /&gt;
flags			equ	8B26h&lt;br /&gt;
statVars		equ	8C1Ch&lt;br /&gt;
pagedCount		equ	9E15h&lt;br /&gt;
pagedGetPtr		equ	9E17h&lt;br /&gt;
pagedBuf		equ	9E1Bh&lt;br /&gt;
localLanguage		equ	9E54h&lt;br /&gt;
cursorHookBlockPtr	equ	9E5Dh&lt;br /&gt;
userMem			equ	0A60Bh&lt;br /&gt;
&lt;br /&gt;
; EXTENDED TOKENS&lt;br /&gt;
;-----------------------------------------------&lt;br /&gt;
; These are new on OSes after 1.15 or whatever&lt;br /&gt;
tExtTok			equ	0EFh&lt;br /&gt;
&lt;br /&gt;
; MathPrint&lt;br /&gt;
tZQuadrant		equ	17h&lt;br /&gt;
tZFracHalf		equ	18h&lt;br /&gt;
tZFracThird		equ	19h&lt;br /&gt;
tZFracFourth		equ	1Ah&lt;br /&gt;
tZFracFifth		equ	1Bh&lt;br /&gt;
tZFracEighth		equ	1Ch&lt;br /&gt;
tZFracTenth		equ	1Dh&lt;br /&gt;
tFracSlash		equ	2Eh&lt;br /&gt;
tFracMixedNum		equ	2Fh&lt;br /&gt;
tSwapImProper		equ	30h&lt;br /&gt;
tSwapFracDec		equ	31h&lt;br /&gt;
tRemainder		equ	32h&lt;br /&gt;
tSummationSigma		equ	33h&lt;br /&gt;
tLogBase		equ	34h&lt;br /&gt;
tRandIntNoRep		equ	35h&lt;br /&gt;
tMathPrint		equ	37h&lt;br /&gt;
tClassic		equ	38h&lt;br /&gt;
tAutoAnswer		equ	3Bh&lt;br /&gt;
tDecAnswer		equ	3Ch&lt;br /&gt;
tFracAnswer		equ	3Dh&lt;br /&gt;
&lt;br /&gt;
; TI-84+CSE&lt;br /&gt;
tBlue			equ	41h&lt;br /&gt;
tRed			equ	42h&lt;br /&gt;
tBlack 			equ	43h&lt;br /&gt;
tMagenta		equ	44h&lt;br /&gt;
tGreen			equ	45h&lt;br /&gt;
tOrange			equ	46h&lt;br /&gt;
tBrown			equ	47h&lt;br /&gt;
tNavy			equ	48h&lt;br /&gt;
tLtBlue			equ	49h&lt;br /&gt;
tYellow			equ	4Ah&lt;br /&gt;
tWhite			equ	4Bh&lt;br /&gt;
tLtGray			equ	4Ch&lt;br /&gt;
tMedGray		equ	4Dh&lt;br /&gt;
tGray			equ	4Eh&lt;br /&gt;
tDarkGray		equ	4Fh&lt;br /&gt;
&lt;br /&gt;
tGraphColor		equ	65h&lt;br /&gt;
tTextColor		equ	67h&lt;br /&gt;
tBackgroundOn		equ	5Bh&lt;br /&gt;
tBackgroundOff		equ	64h&lt;br /&gt;
&lt;br /&gt;
tThin			equ	74h&lt;br /&gt;
;tThick - 0x7E 0x06 (was &amp;quot;Connected&amp;quot;?)&lt;br /&gt;
tAsm84CPrgm		equ	68h&lt;br /&gt;
tAsm84CCmp		equ	69h&lt;br /&gt;
tBorderColor		equ	6Ch&lt;br /&gt;
&lt;br /&gt;
;------ Flags ------------------&lt;br /&gt;
;falgs			equ	8B26h&lt;br /&gt;
&lt;br /&gt;
appLwrCaseFlag		equ	24h&lt;br /&gt;
lwrCaseActive		equ	3&lt;br /&gt;
&lt;br /&gt;
;------ Hardware Ports ---------------------------------------------------------&lt;br /&gt;
; p = Port&lt;br /&gt;
; LnkAst = Link Assist, Pg = Page&lt;br /&gt;
; Se = Silver Edition, Be = Basic Edition (anything NOT a TI-83+)&lt;br /&gt;
; Cfg = Configuration, Ctrl = Control, Buf = Buffer, Prot = Protection&lt;br /&gt;
; M = Memory, Int = Interrupt, Id = Identification, Crstl = Crystal&lt;br /&gt;
; Tmr = Timer, Div = Divided by, Rtc = Real Time Clock, Usb = USB&lt;br /&gt;
; Unk = Unknown, Exec = Execution&lt;br /&gt;
;&lt;br /&gt;
; R:n = RAM page n (always indexed from 0; no more saying RAM page 80h)&lt;br /&gt;
; F:nn = Flash page nn&lt;br /&gt;
; P:nn = Port nn&lt;br /&gt;
; LR:nn = LCD Register nn&lt;br /&gt;
pLink			equ	0&lt;br /&gt;
pKey			equ	1&lt;br /&gt;
pStatus			equ	2&lt;br /&gt;
pIntMask		equ	3&lt;br /&gt;
pIntId			equ	4&lt;br /&gt;
pMMapTmrFreq		equ	4&lt;br /&gt;
pMPgC			equ	5&lt;br /&gt;
pLnkAstBeRead		equ	5&lt;br /&gt;
pMPgA			equ	6&lt;br /&gt;
pMPgB			equ	7&lt;br /&gt;
pLnkAstSeEnable		equ	8&lt;br /&gt;
pLnkAstSeStatus		equ	9&lt;br /&gt;
pLnkAstSeInBuf		equ	0Ah&lt;br /&gt;
pLnkAstSeCfg		equ	0Ah&lt;br /&gt;
pLnkAstSeRcvTimeout	equ	0Bh&lt;br /&gt;
pLnkAstSeSndTimeout	equ	0Ch&lt;br /&gt;
pLnkAstSeOutBuf		equ	0Dh&lt;br /&gt;
pMPgAHigh		equ	0Eh&lt;br /&gt;
pMPgBHigh		equ	0Fh&lt;br /&gt;
pLcdCmd			equ	10h&lt;br /&gt;
pLcdData		equ	11h&lt;br /&gt;
pProtCtrl		equ	14h&lt;br /&gt;
pAsicId			equ	15h&lt;br /&gt;
pBeFlashExecCtrl	equ	16h&lt;br /&gt;
pCpuSpeed		equ	20h&lt;br /&gt;
pFlashTypeRamMask	equ	21h&lt;br /&gt;
pFlashType		equ	21h&lt;br /&gt;
pRamMask		equ	21h&lt;br /&gt;
pFlashExecLowerLimit	equ	22h&lt;br /&gt;
pFlashExecUpperLimit	equ	23h&lt;br /&gt;
pFlashExecExecOverride	equ	24h&lt;br /&gt;
pRamExecLowerLimit	equ	25h&lt;br /&gt;
pRamExecUpperLimit	equ	26h&lt;br /&gt;
pBlockMRemapC		equ	27h&lt;br /&gt;
pBlockMRemapB		equ	28h&lt;br /&gt;
pLcdDelay0		equ	29h&lt;br /&gt;
pLcdDelay1		equ	2Ah&lt;br /&gt;
pLcdDelay2		equ	2Bh&lt;br /&gt;
pLcdDelay3		equ	2Ch&lt;br /&gt;
pUnknown2D		equ	2Dh&lt;br /&gt;
pMemDelay		equ	2Eh&lt;br /&gt;
pLcdGenDelay		equ	2Fh&lt;br /&gt;
pCrstlTmr1Freq		equ	30h&lt;br /&gt;
pCrstlTmr1Cfg		equ	31h&lt;br /&gt;
pCrstlTmr1Count		equ	32h&lt;br /&gt;
pCrstlTmr2Freq		equ	33h&lt;br /&gt;
pCrstlTmr2Cfg		equ	34h&lt;br /&gt;
pCrstlTmr2Count		equ	35h&lt;br /&gt;
pCrstlTmr3Freq		equ	36h&lt;br /&gt;
pCrstlTmr3Cfg		equ	37h&lt;br /&gt;
pCrstlTmr3Count		equ	38h&lt;br /&gt;
pUsbUnkOldFlg		equ	39h&lt;br /&gt;
pUsbUnkOldFlg2		equ	3Ah&lt;br /&gt;
pRtcCtrl		equ	40h&lt;br /&gt;
pRtcSet0		equ	41h&lt;br /&gt;
pRtcSet1		equ	42h&lt;br /&gt;
pRtcSet2		equ	43h&lt;br /&gt;
pRtcSet3		equ	44h&lt;br /&gt;
pRtc0			equ	45h ; Reading&lt;br /&gt;
pRtc1			equ	46h&lt;br /&gt;
pRtc2			equ	47h&lt;br /&gt;
pRtc3			equ	48h&lt;br /&gt;
&lt;br /&gt;
; Constants for bitfields&lt;br /&gt;
; St = Status, Batt = Batteries&lt;br /&gt;
; Rcv = Receive, Snd = Send, Err = Error&lt;br /&gt;
; Port 2 (pStatus)&lt;br /&gt;
stBattGood		equ	1&lt;br /&gt;
stLcdReady		equ	2&lt;br /&gt;
stFlashUnlocked		equ	4&lt;br /&gt;
stIsNot83pSe		equ	5&lt;br /&gt;
stIsSeModel		equ	7&lt;br /&gt;
; Port 3 (pIntMask)&lt;br /&gt;
intMaskOnKey		equ	1&lt;br /&gt;
intMaskTmr1		equ	2&lt;br /&gt;
intMaskTmr2		equ	4&lt;br /&gt;
intDisableLowPowerMode	equ	8&lt;br /&gt;
intMaskLinkport		equ	10h&lt;br /&gt;
intMaskNormal		equ	intMaskOnKey+intMaskTmr1+intDisableLowPowerMode&lt;br /&gt;
; Port 4 (pMMapTmrFreq)&lt;br /&gt;
intIdOnKey		equ	1&lt;br /&gt;
intIdTmr1		equ	2&lt;br /&gt;
intIdTmr2		equ	4&lt;br /&gt;
intIdOnKeyDown		equ	8&lt;br /&gt;
intIdLinkport		equ	16&lt;br /&gt;
intIdCrstlTmr1		equ	32&lt;br /&gt;
intIdCrstlTmr2		equ	64&lt;br /&gt;
intIdCrstlTmr3		equ	128&lt;br /&gt;
memMapMode0		equ	0&lt;br /&gt;
memMapMode1		equ	1&lt;br /&gt;
tmrFreq0		equ	0&lt;br /&gt;
tmrFreq1		equ	2&lt;br /&gt;
tmrFreq2		equ	4&lt;br /&gt;
tmrFreq3		equ	6&lt;br /&gt;
battVoltage0		equ	0&lt;br /&gt;
battVoltage1		equ	64&lt;br /&gt;
battVoltage2		equ	128&lt;br /&gt;
battVoltage3		equ	192&lt;br /&gt;
; Port 8 (pLnkAstSeEnable)&lt;br /&gt;
lnkSeIntRcv		equ	1&lt;br /&gt;
lnkSeIntSnd		equ	2&lt;br /&gt;
lnkSeIntErr		equ	4&lt;br /&gt;
lnkSeIntDisable		equ	128&lt;br /&gt;
lnkSeRcving		equ	8&lt;br /&gt;
lnkSeRcvd		equ	16&lt;br /&gt;
lnkSeSndReady		equ	32&lt;br /&gt;
lnkSndErr		equ	64&lt;br /&gt;
lnkSnding		equ	128&lt;br /&gt;
; Port 14h (pProtCtrl)&lt;br /&gt;
protLockFlash		equ	0&lt;br /&gt;
protUnlockFlash		equ	1&lt;br /&gt;
; Port 15h (pAsicId)&lt;br /&gt;
asic83pTA2		equ	33h&lt;br /&gt;
asic84pTA2		equ	44h&lt;br /&gt;
asic84pTA3		equ	45h&lt;br /&gt;
asic84pTA1		equ	55h&lt;br /&gt;
; Port 20h (pCpuSpeed)&lt;br /&gt;
cpu6MHz			equ	0&lt;br /&gt;
cpu15MHz		equ	1&lt;br /&gt;
cpu15MHz2		equ	2&lt;br /&gt;
cpu15MHz3		equ	3&lt;br /&gt;
; Port 21h (pFlashTypeRamMask)&lt;br /&gt;
flashTypeMask		equ	3&lt;br /&gt;
flashType1MB		equ	0&lt;br /&gt;
flashType2MB		equ	1&lt;br /&gt;
flashType4MB		equ	4&lt;br /&gt;
flashTyle8MB		equ	8&lt;br /&gt;
ramExecModeMask		equ	30h&lt;br /&gt;
ramExecMode0		equ	00h&lt;br /&gt;
ramExecMode1		equ	10h&lt;br /&gt;
ramExecMode2		equ	20h&lt;br /&gt;
ramExecMode3		equ	30h&lt;br /&gt;
; Port 24h (pFlashExecExecOverride)&lt;br /&gt;
flashAllowExecAll	equ	1&lt;br /&gt;
flashForbidExecAll	equ	2	; Except boot pages and overrides in bit 0 and port 22&lt;br /&gt;
; Ports 29h-2Ch (pLcdDelay0-3)&lt;br /&gt;
delayFlashEnable	equ	1&lt;br /&gt;
delayRamEnable		equ	2&lt;br /&gt;
delayCycleCountMask	equ	0FCh&lt;br /&gt;
delayCycleCountShift	equ	2&lt;br /&gt;
; Port 2E (pMemDelay)&lt;br /&gt;
delayFlashExec		equ	1&lt;br /&gt;
delayFlashRead		equ	2&lt;br /&gt;
delayFlashWrite		equ	4&lt;br /&gt;
delayRamExec		equ	10h&lt;br /&gt;
delayRamRead		equ	20h&lt;br /&gt;
delayRamWrite		equ	40h&lt;br /&gt;
; Port 2F (pLcdGenDelay)&lt;br /&gt;
cpu1LcdDelay48		equ	0&lt;br /&gt;
cpu1LcdDelay112		equ	1&lt;br /&gt;
cpu1LcdDelay176		equ	2&lt;br /&gt;
cpu1LcdDelay240		equ	3&lt;br /&gt;
cpu2LcdDelay48		equ	0&lt;br /&gt;
cpu2LcdDelay112		equ	4&lt;br /&gt;
cpu2LcdDelay176		equ	8&lt;br /&gt;
cpu2LcdDelay240		equ	12&lt;br /&gt;
cpu2LcdDelay304		equ	16&lt;br /&gt;
cpu2LcdDelay368		equ	20&lt;br /&gt;
cpu2LcdDelay432		equ	24&lt;br /&gt;
cpu2LcdDelay496		equ	28&lt;br /&gt;
cpu3LcdDelay48		equ	0&lt;br /&gt;
cpu3LcdDelay112		equ	32&lt;br /&gt;
cpu3LcdDelay176		equ	64&lt;br /&gt;
cpu3LcdDelay240		equ	96&lt;br /&gt;
cpu3LcdDelay304		equ	128&lt;br /&gt;
cpu3LcdDelay368		equ	160&lt;br /&gt;
cpu3LcdDelay432		equ	192&lt;br /&gt;
cpu3LcdDelay496		equ	224&lt;br /&gt;
; Crystal Timer Equates&lt;br /&gt;
tmrOff			equ	0&lt;br /&gt;
tmr11000Hz		equ	40h&lt;br /&gt;
tmr1000Hz		equ	41h&lt;br /&gt;
tmr100Hz		equ	42h&lt;br /&gt;
tmr10Hz			equ	43h&lt;br /&gt;
tmr32768Hz		equ	44h&lt;br /&gt;
tmr2048Hz		equ	45h&lt;br /&gt;
tmr128Hz		equ	46h&lt;br /&gt;
tmr8Hz			equ	47h&lt;br /&gt;
tmrCpu			equ	80h&lt;br /&gt;
tmrCpuDiv2		equ	81h&lt;br /&gt;
tmrCpuDiv4		equ	82h&lt;br /&gt;
tmrCpuDiv8		equ	84h&lt;br /&gt;
tmrCpuDiv16		equ	88h&lt;br /&gt;
tmrCpuDiv32		equ	90h&lt;br /&gt;
tmrCpuDiv64		equ	0A0h&lt;br /&gt;
tmrNullAck		equ	0&lt;br /&gt;
tmrLoop			equ	1&lt;br /&gt;
tmrInt			equ	2&lt;br /&gt;
tmrLoopAndInt		equ	3&lt;br /&gt;
; Port 40h (pRtcCtrl)&lt;br /&gt;
rtcEnable		equ	1&lt;br /&gt;
rtcSetCommand		equ	2&lt;br /&gt;
&lt;br /&gt;
;------ Other (put me somewhere else better if needed) -------------------------&lt;br /&gt;
appLwrCaseFlag		equ	36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;------ Color LCD Control Registers --------------------------------------------&lt;br /&gt;
; Color LCD-Related Stuff&lt;br /&gt;
; lr = LCD Register, Disp = Display, Win = Window, Img = Image&lt;br /&gt;
; Col = Column, Cur = Cursor, Vert = vertical, Horiz = Horizontal&lt;br /&gt;
; Use these macros with the bitfield definitions below.&lt;br /&gt;
#define lcdHigh(x) x &amp;gt;&amp;gt; 8&lt;br /&gt;
#define lcdLow(x) x &amp;amp; 255&lt;br /&gt;
&lt;br /&gt;
; Registers&lt;br /&gt;
lrSync			equ	0&lt;br /&gt;
lrDriverCode		equ	0&lt;br /&gt;
lrOutCtrl1		equ	1&lt;br /&gt;
lrDriveCtrl		equ	2&lt;br /&gt;
lrEntryMode		equ	3&lt;br /&gt;
lrRow			equ	20h&lt;br /&gt;
lrCol			equ	21h&lt;br /&gt;
lrGram			equ	22h&lt;br /&gt;
lrWinRowStart		equ	50h&lt;br /&gt;
lrWinRowEnd		equ	51h&lt;br /&gt;
lrWinColStart		equ	52h&lt;br /&gt;
lrWinColEnd		equ	53h&lt;br /&gt;
lrBaseImgDispCtrl	equ	61h&lt;br /&gt;
lrHorizScroll		equ	6Ah&lt;br /&gt;
&lt;br /&gt;
; Register 1 (lrOutCtrl1) Bitfields&lt;br /&gt;
lcdReverseCol		equ	0100h&lt;br /&gt;
lcdReverseRow		equ	0400h&lt;br /&gt;
; Register 2 (lrDriveCtrl) Bitfields&lt;br /&gt;
lcdEOR			equ	0100h&lt;br /&gt;
lcdBDivC		equ	0200h&lt;br /&gt;
; Register 3 (lrDispCtrl1) Bitfields&lt;br /&gt;
lcdAM			equ	0008h	; If set, the cursor moves left/right after every write.&lt;br /&gt;
lcdCurMoveHoriz		equ	lcdAM	; Alias&lt;br /&gt;
lcdVertInc		equ	0010h	; If unset, the cursor is instead decremented&lt;br /&gt;
lcdHorizInc		equ	0020h	&lt;br /&gt;
lcdORG			equ	0080h	; If set, when window is changed, cursor is reset to corner&lt;br /&gt;
lcdBGR			equ	1000h&lt;br /&gt;
lcdTRI			equ	4000h	; If set, 18-bit color is accepted&lt;br /&gt;
lcdDFM			equ	8000h	; Unpacked mode: Write R, G, and B separately if TRI is set&lt;br /&gt;
; Register 61 (lrBaseImgDispCtrl) Bitfields&lt;br /&gt;
lcdREV			equ	0001h	; If set, reverse color mode&lt;br /&gt;
lcdVLE			equ	0002h	; If set, lrHorizScroll is enabled&lt;br /&gt;
&lt;br /&gt;
.list&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:24</id>
		<title>84PCSE:Flags:24</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:24"/>
				<updated>2013-02-22T12:22:37Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with '24 appLwrCaseFlag == Synopsis == '''Flag Byte:''' 24h  '''Known Names:''' appLwrCaseFlag  == Bit overview =…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags:By Address|24]] [[Category:84PCSE:Flags:By Name|appLwrCaseFlag]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Flag Byte:''' 24h&lt;br /&gt;
&lt;br /&gt;
'''Known Names:''' appLwrCaseFlag&lt;br /&gt;
&lt;br /&gt;
== Bit overview ==&lt;br /&gt;
&lt;br /&gt;
=== Bit 0 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 1 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 2 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 3 ===&lt;br /&gt;
'''Official name:''' lwrCaseActive&lt;br /&gt;
&lt;br /&gt;
Set to enable lowercase, so the user can double-press [Alpha] to type in lowercase mode. Reset to disable lowercase.&lt;br /&gt;
&lt;br /&gt;
=== Bit 4 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 5 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 6 ===&lt;br /&gt;
{{Unknown-flag}}&lt;br /&gt;
&lt;br /&gt;
=== Bit 7 ===&lt;br /&gt;
{{Unknown-flag}}&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Address</id>
		<title>Category:84PCSE:Flags:By Address</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Address"/>
				<updated>2013-02-22T12:14:58Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with 'System Flags By Address/Offset  See also list of flags by name.  Please read our page about Contributing before e…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags|System Flags By Address/Offset]]&lt;br /&gt;
&lt;br /&gt;
See also [[:Category:84PCSE:Flags:By Name|list of flags by name]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address</id>
		<title>84PCSE:Flags:By Address</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address"/>
				<updated>2013-02-22T12:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name</id>
		<title>Category:84PCSE:Flags:By Name</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name"/>
				<updated>2013-02-22T12:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags| System Flags By Name]]&lt;br /&gt;
&lt;br /&gt;
See also [[:Category:84PCSE:Flags:By Address|list of flags by address]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address</id>
		<title>84PCSE:Flags:By Address</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address"/>
				<updated>2013-02-22T12:13:36Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags|System Flags By Address/Offset]]&lt;br /&gt;
&lt;br /&gt;
See also [[:Category:84PCSE:Flags:By Name|list of flags by name]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address</id>
		<title>84PCSE:Flags:By Address</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:Flags:By_Address"/>
				<updated>2013-02-22T12:11:44Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with 'Category:84PCSE:Flags:By Address  See also  list of flags by name.  Please read our page about Contributing before editing these pages !'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags:By Address]]&lt;br /&gt;
&lt;br /&gt;
See also [[84PCSE:Flags:By Name| list of flags by name]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name</id>
		<title>Category:84PCSE:Flags:By Name</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name"/>
				<updated>2013-02-22T12:10:23Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags| System Flags By Name]]&lt;br /&gt;
&lt;br /&gt;
See also [[84PCSE:Flags:By Address|list of flags by address]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name</id>
		<title>Category:84PCSE:Flags:By Name</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Category:84PCSE:Flags:By_Name"/>
				<updated>2013-02-22T12:09:56Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with ' System Flags By Name Category:84PCSE:Flags:By Name  See also list of flags by address.  Please read our page about [[Co…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:Flags| System Flags By Name]] [[Category:84PCSE:Flags:By Name]]&lt;br /&gt;
&lt;br /&gt;
See also [[84PCSE:Flags:By Address|list of flags by address]].&lt;br /&gt;
&lt;br /&gt;
Please read our page about [[Contributing]] before editing these pages !&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501</id>
		<title>84PCSE:BCALLs:4501</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501"/>
				<updated>2013-02-22T12:05:05Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:BCALLs:By Name|putS]] [[Category:84PCSE:BCALLs:By Address|4501 - putS]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official Name:''' putS&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4501h&lt;br /&gt;
&lt;br /&gt;
Displays the null-terminated string pointed to by HL on the homescreen at the coordinates indicated by [[84PCSE:RAM:By Name|currow]] and [[84PCSE:RAM:By Name|curcol]] in large font format.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
* HL : pointer to the start of the string to be displayed&lt;br /&gt;
* ([[84PCSE:RAM:By Name|currow]], [[84PCSE:RAM:By Name|curcol]]) : coordinates of the first character of the string in rows and columns (not pixels)&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* Text printed at (currow,curcol) on the homescreen.&lt;br /&gt;
* HL points to the character after the null terminator.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
* Unknown&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501</id>
		<title>84PCSE:BCALLs:4501</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501"/>
				<updated>2013-02-22T12:04:15Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:BCALLs:By Name|putS]] [[Category:84PCSE:BCALLs:By Address|4501 - putS]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official Name:''' putS&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4501h&lt;br /&gt;
&lt;br /&gt;
Displays the null-terminated string pointed to by HL on the homescreen at the coordinates indicated by [[84PCSE:RAM:By Name|currow]] and [[84PCSE:RAM:By Name|curcol]] in large font format.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
* HL : pointer to the start of the string to be displayed&lt;br /&gt;
* ([[84PCSE:RAM:By Name|currow]], [[84PCSE:RAM:By Name|curcol]]) : Y coordinate in rows (not pixels)&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* Text printed at (currow,curcol) on the homescreen.&lt;br /&gt;
* HL points to the character after the null terminator.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
* Unknown&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501</id>
		<title>84PCSE:BCALLs:4501</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=84PCSE:BCALLs:4501"/>
				<updated>2013-02-22T12:02:56Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with 'putS 4501 - putS == Synopsis == '''Official Name:''' putS  '''BCALL Address:''' 4501h  Displays the null-…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:84PCSE:BCALLs:By Name|putS]] [[Category:84PCSE:BCALLs:By Address|4501 - putS]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official Name:''' putS&lt;br /&gt;
&lt;br /&gt;
'''BCALL Address:''' 4501h&lt;br /&gt;
&lt;br /&gt;
Displays the null-terminated string pointed to by HL on the homescreen at the coordinates indicated by [[Category:84PCSE:RAM:By Name|curcol]] and [[Category:84PCSE:RAM:By Name|currow]] in large font format.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
* HL : pointer to the start of the string to be displayed&lt;br /&gt;
* ([[Category:84PCSE:RAM:By Name|currow]], [[Category:84PCSE:RAM:By Name|curcol]]) : Y coordinate in rows (not pixels)&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
* Text printed at (curcol,currow) on the homescreen.&lt;br /&gt;
* HL points to the character after the null terminator.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
* Unknown&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7</id>
		<title>83Plus:BCALLs:4AD7</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7"/>
				<updated>2012-08-03T22:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|RclAns]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|4AD7 - RclAns]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' RclAns&lt;br /&gt;
&lt;br /&gt;
'''BCALL adress:''' 4AD7&lt;br /&gt;
&lt;br /&gt;
Stores the content of Ans in OP1 (and OP2 in case of a complex number).&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*[[83Plus:RAM:8478|OP1]]: contains the real value of Ans.&lt;br /&gt;
*[[83Plus:RAM:8483|OP2]]: contains the imaginary value of Ans (if there is any).&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
*AF&lt;br /&gt;
*BC&lt;br /&gt;
*DE&lt;br /&gt;
*HL&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; b_call RclAns&lt;br /&gt;
 ld a,5&lt;br /&gt;
 b_call DispOp1a&lt;br /&gt;
 ret &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:47DD</id>
		<title>83Plus:BCALLs:47DD</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:47DD"/>
				<updated>2012-08-03T22:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|DarkLine]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|47DD - DarkLine]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' DarkLine&lt;br /&gt;
&lt;br /&gt;
'''BCALL address:''' 47DD&lt;br /&gt;
&lt;br /&gt;
Draws a line on the main screen.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
*B : first point column&lt;br /&gt;
*C : first point row&lt;br /&gt;
*D : second point column&lt;br /&gt;
*E : second point row&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
A line starting on (B,C) and ending on (D,E) is drawn on the main screen, which means that zoom is not applied. All registers are preserved. (0,0) is the bottom left hand corner and (95,63) the top right hand corner.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; ld bc,$003F&lt;br /&gt;
 ld de,$5F00&lt;br /&gt;
 b_call DarkLine&lt;br /&gt;
 ret&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:47DD</id>
		<title>83Plus:BCALLs:47DD</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:47DD"/>
				<updated>2012-08-03T22:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with '_darkLine 47DD - _darkLine == Synopsis == '''Official name:''' _darkLine  '''BCALL address:''' 47DD  Draw…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|_darkLine]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|47DD - _darkLine]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' _darkLine&lt;br /&gt;
&lt;br /&gt;
'''BCALL address:''' 47DD&lt;br /&gt;
&lt;br /&gt;
Draws a line on the main screen.&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
*B : first point column&lt;br /&gt;
*C : first point row&lt;br /&gt;
*D : second point column&lt;br /&gt;
*E : second point row&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
A line starting on (B,C) and ending on (D,E) is drawn on the main screen, which means that zoom is not applied. All registers are preserved. (0,0) is the bottom left hand corner and (95,63) the top right hand corner.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; ld bc,$003F&lt;br /&gt;
 ld de,$5F00&lt;br /&gt;
 b_call _darkLine&lt;br /&gt;
 ret&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7</id>
		<title>83Plus:BCALLs:4AD7</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7"/>
				<updated>2012-08-03T22:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|rclAns]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Address|4AD7 - rclAns]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' rclAns&lt;br /&gt;
&lt;br /&gt;
'''BCALL adress:''' 4AD7&lt;br /&gt;
&lt;br /&gt;
Stores the content of Ans in OP1 (and OP2 in case of a complex number).&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*[[83Plus:RAM:8478|OP1]]: contains the real value of Ans.&lt;br /&gt;
*[[83Plus:RAM:8483|OP2]]: contains the imaginary value of Ans (if there is any).&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
*AF&lt;br /&gt;
*BC&lt;br /&gt;
*DE&lt;br /&gt;
*HL&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; b_call _rclAns&lt;br /&gt;
 ld a,5&lt;br /&gt;
 b_call _dispOp1a&lt;br /&gt;
 ret &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7</id>
		<title>83Plus:BCALLs:4AD7</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7"/>
				<updated>2012-08-03T22:21:54Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By Name|rclAns]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By Adress|4AD7 - rclAns]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' rclAns&lt;br /&gt;
&lt;br /&gt;
'''BCALL adress:''' 4AD7&lt;br /&gt;
&lt;br /&gt;
Stores the content of Ans in OP1 (and OP2 in case of a complex number).&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*[[83Plus:RAM:8478|OP1]]: contains the real value of Ans.&lt;br /&gt;
*[[83Plus:RAM:8483|OP2]]: contains the imaginary value of Ans (if there is any).&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
*AF&lt;br /&gt;
*BC&lt;br /&gt;
*DE&lt;br /&gt;
*HL&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; b_call _rclAns&lt;br /&gt;
 ld a,5&lt;br /&gt;
 b_call _dispOp1a&lt;br /&gt;
 ret &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7</id>
		<title>83Plus:BCALLs:4AD7</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:BCALLs:4AD7"/>
				<updated>2012-08-03T22:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;Matref: Created page with 'rclAns 4AD7 - rclAns == Synopsis == '''Official name:''' rclAns  '''BCALL adress:''' 4AD7  Stores the cont…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:BCALLs:By name|rclAns]]&lt;br /&gt;
[[Category:83Plus:BCALLs:By adress|4AD7 - rclAns]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Official name:''' rclAns&lt;br /&gt;
&lt;br /&gt;
'''BCALL adress:''' 4AD7&lt;br /&gt;
&lt;br /&gt;
Stores the content of Ans in OP1 (and OP2 in case of a complex number).&lt;br /&gt;
&lt;br /&gt;
=== Inputs ===&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
=== Outputs ===&lt;br /&gt;
*[[83Plus:RAM:8478|OP1]]: contains the real value of Ans.&lt;br /&gt;
*[[83Plus:RAM:8483|OP2]]: contains the imaginary value of Ans (if there is any).&lt;br /&gt;
&lt;br /&gt;
=== Destroys ===&lt;br /&gt;
*AF&lt;br /&gt;
*BC&lt;br /&gt;
*DE&lt;br /&gt;
*HL&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; b_call _rclAns&lt;br /&gt;
 ld a,5&lt;br /&gt;
 b_call _dispOp1a&lt;br /&gt;
 ret &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matref</name></author>	</entry>

	</feed>