annotate simple16.html @ 39:52d601e13ea4

WIP documentation
author Michael Pavone <pavone@retrodev.com>
date Wed, 06 Apr 2016 12:15:25 -0700
parents
children 413e7b9c0db1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 <!doctype html>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 <html>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 <head>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 <style>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 body {
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 font-family: Helvetica, Arial, sans-serif;
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 }
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 </style>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 </head>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 <body>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 <h1>Simple 16</h1>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 Simple 16 is a toy 16-bit video game console designed with simplicity of implementation in mind. While it is technically a 16-bit system,
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 it's capabilites are in many ways closer to an 8-bit system. Ultimately, the hope is that Simple 16 is simple enough to provide an easy
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 introduction for the novice emudev while still containing all the essential features of an older game console.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 <h2>Table of Contents</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 <ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 <li><a href="#cpu">CPU</a>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 <ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 <li><a href="#cpuover">Overview</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 <li><a href="#cpuregs">Registers</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 <li><a href="#instructions">Instructions</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 <li><a href="#execution">Execution Details</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 <li><a href="#interrupts">Exceptions and Interrupts</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 </ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 </li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 <li><a href="#video">Video</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 <li><a href="#audio">Audio</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 <li><a href="#timer">Timer</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 <li><a href="#controllers">Controllers</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 <li><a href="#serial">Serial Port</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 <li><a href="#cart">Cartridge</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 </ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 <h2 id="cpu">CPU</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 <h3 id="cpuover">Overview</h3>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 The Simple 16 CPU is a 16-bit RISC design. It has a main register file of 16 16-bit registers. Additionally, there are five special
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 purpose registers dedicated to exception processing. It has a flag 16-bit addres space. Instructions are a fixed size and are also 16-bits.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 <h3 id="cpuregs">Registers</h3>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 The first 14 registers in the main file have no fixed function and are named r0 through r13. r14 serves as the program counter and
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 points to the next instruction to be fetched. More information about instruction fetch and execution can be found in
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 <a href="#execution">Execution Details</a>. r15 serves as the status register. The status register contains bits corresponding
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 to the result of the last arithmetic instruction and the interrupt mask. The layout of the status register is given below.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 <table>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 <th>Bit</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 <th>Use</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 <th>Notes</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 <td>15-5</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 <td>Unused</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 <td>Should be set to zero.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 <td>4</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 <td>Negative Flag</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 <td>Indicates the last result was negative.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 <td>3</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 <td>Carry Flag</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 <td>Generally indicates a carry out of bit 15. Last bit shifted out for shift instructions.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 <td>2</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 <td>Zero fFag</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 <td>Indicates the last result was zero.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 <td>1</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 <td>Interrupt 1 enable</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 <td>Interrupt 1 can be taken when this bit is set.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 <td>0</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 <td>Interrupt 0 enable</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 <td>Interrupt 0 can be taken when this bit is set.</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 </table>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 <h3 id="instructions">Instructions</h3>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 <ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 <li><a href="#ldim">ldim IM, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88 <li><a href="#ldimh">ldimh IM, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89 <li><a href="#ld8">ld8 rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 <li><a href="#ld16">ld16 rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 <li><a href="#str8">str8 rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 <li><a href="#str16">str16 rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93 <li><a href="#add">add rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 <li><a href="#adc">add rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 <li><a href="#and">and rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96 <li><a href="#or">or rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 <li><a href="#xor">xor rA, rB, rD</a></li>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 </ul>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 <h4 id="ldim">ldim IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 ldim sign extends an 8-bit immediate value to 16-bits and assigns it to the designated register.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
102 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 <h4 id="ldimh">lidmh IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108 ldimh assigns an 8-bit immediate value to the upper 8-bits of rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113 <h4 id="ld8">ld8 rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 Reads a byte from the address indicated by the sum of rA and rB and loads it into rD
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 <h4 id="ld16">ld16 rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 Reads a word from the address indicated by the sum of rA and rB and loads it into rD
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 <h4 id="str8">str8 rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 Writes the byte stored in rD to the address indicated by the sum of rA and rB.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
130 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
131 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
132 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
133 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
134 <h4 id="str16">str16 rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
135 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
136 Writes the word stored in rD to the address indicated by the sum of rA and rB.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
137 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
138 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
139 <strong>Flags:</strong> No change
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
140 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
141 <h4 id="add">add rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
142 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
143 Adds rA and rB. The result is stored in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
144 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
145 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
146 <strong>Flags:</strong> C = carry out of bit 15, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
147 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
148 <h4 id="adc">adc rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
149 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
150 Adds rA, rB and the carry flag. The result is stored in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
151 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
152 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
153 <strong>Flags:</strong> C = carry out of bit 15, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
154 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
155 <h4 id="and">and rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
156 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
157 Bitwise and of rA and rB is stored in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
158 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
159 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
160 <strong>Flags:</strong> C = unmodified, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
161 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
162 <h4 id="or">or rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
163 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
164 Bitwise or of rA and rB is stored in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
165 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
166 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
167 <strong>Flags:</strong> C = unmodified, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
168 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
169 <h4 id="xor">xor rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
170 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
171 Bitwise exclusive or of rA and rB is stored in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
172 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
173 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
174 <strong>Flags:</strong> C = unmodified, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
175 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
176 <h4 id="lsl">lsl rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
177 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
178 The value in rA is shifted left by rB bits and stored in rD
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
179 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
180 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
181 <strong>Flags:</strong> C = last bit shifted out of rA, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
182 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
183 <h4 id="lsr">lsr rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
184 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
185 The value in rA is shifted right by rB bits and stored in rD
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
186 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
187 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
188 <strong>Flags:</strong> C = last bit shifted out of rA, N = result is negative, Z = result is zero
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
189 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
190 <h4 id="asr">asr rA, rB, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
191 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
192 The value in rA is arithmetically shifted right by rB bits and stored in rD. The most significant bit of rA is copied
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
193 into the newly shifted bits. This allows asr to be used for signed division by powers of 2 as the sign is preserved.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
194 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
195 <h4 id="bcc">bCC</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
196 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
197 bCC performs a relative branch if the condition indicated by CC is true. It has a range of 131 instructions forward or
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
198 124 instructions backwards. CC must be one of the following values
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
199 <table>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
200 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
201 <th>CC</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
202 <th>Mnemonic</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
203 <th>Name</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
204 <th>Description</th>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
205 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
206 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
207 <td>0</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
208 <td>ra</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
209 <td>bRanch Always</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
210 <td>Unconditionall branch</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
211 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
212 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
213 <td>1</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
214 <td>rf</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
215 <td>bRanch False</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
216 <td>Effectively a nop</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
217 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
218 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
219 <td>2</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
220 <td>eq</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
221 <td>EQual</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
222 <td>Branch if zero flag is 1</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
223 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
224 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
225 <td>3</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
226 <td>ne</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
227 <td>Not Equal</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
228 <td>Branch if zero flag is 0</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
229 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
230 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
231 <td>4</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
232 <td>mi</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
233 <td>MInus</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
234 <td>Branch if negative flag is 1</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
235 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
236 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
237 <td>5</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
238 <td>pl</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
239 <td>PLus</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
240 <td>Branch if negative flag is 0</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
241 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
242 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
243 <td>6</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
244 <td>cs</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
245 <td>Carry Set</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
246 <td>Branch if carry flag is 1. Unsigned "less than" when used with cmp</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
247 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
248 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
249 <td>7</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
250 <td>cc</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
251 <td>Carry Clear</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
252 <td>Branch if carry flag is 1. Unsigned "greater or equal" when used with cmp</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
253 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
254 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
255 <td>8</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
256 <td>gr</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
257 <td>Greater</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
258 <td>Branch if carry flag is 0 and the zero flag is zero. Unsigned "greater" when used with cmp</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
259 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
260 <tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
261 <td>9</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
262 <td>le</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
263 <td>Less or Equal</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
264 <td>Branch if carry flag is 1 or the zero flag is 1. Unsigned "lesser or equal" when used with cmp</td>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
265 </tr>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
266 </table>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
267 Use of CC values greater than 9 will result in an invalid instruction exception.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
268 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
269 <h4 id="mov">mov rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
270 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
271 Stores the value of rA in rD. This can be used as a return or jump instruction if rD is PC.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
272 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
273 <h4 id="neg">neg rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
274 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
275 Calculates the 2s complement of rA and stores it in rD. This can be used in combination with add to implement subtraction.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
276 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
277 <h4 id="not">not rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
278 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
279 Calculates the 1s complement of rA and stores it in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
280 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
281 <h4 id="cmp">cmp rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
282 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
283 Subtracts rA from rD and discards the result, but still updates flags.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
284 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
285 <h4 id="call">call rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
286 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
287 Stores the address of the next instruction in rD and sets PC to the value in rA. Used for calling subroutines.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
288 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
289 <h4 id="swap">swap rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
290 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
291 Swaps the values in rA and rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
292 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
293 <h4 id="in">in rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
294 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
295 Reads a word from the IO port indicated by rA and stores it in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
296 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
297 <h4 id="out">out rA, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
298 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
299 Writes the word stored in rD to the IO port indicated by rA.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
300 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
301 <h4 id="ini">ini IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
302 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
303 Reads a word from the IO port indicated by IM and stores it in rD. IM can range from 0 to 15.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
304 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
305 <h4 id="outi">outi</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
306 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
307 Writes the word stored in rD to the IO port indicated by IM. IM can range from 0 to 15.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
308 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
309 <h4 id="addi">addi IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
310 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
311 Adds IM to the value in rD and stores the result in rD. IM range from -8 to -1 or 1 to 8. A value of 0 is used to indicate 8.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
312 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
313 <h4 id="andi">andi IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
314 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
315 Performs a logical and of IM and the value in rD and stores the result in rD. IM can range from -8 to -1 or 1 to 8. A value of 0 is used to indicate 8.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
316 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
317 <h4 id="ori">ori IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
318 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
319 Performs a logical or of IM and the value in rD and stores the result in rD. IM can range from-8 to -1 or 1 to 8. A value of 0 is used to indicate 8.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
320 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
321 <h4 id="lsli">lsli IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
322 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
323 Shifts the value in rD IM bits to the left. IM can range from 1 to 8.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
324 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
325 <h4 id="lsri">lsri IM, rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
326 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
327 Shifts the value in rD IM bits to the right. IM can range from 1 to 8.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
328 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
329 <h4 id="cmpi">cmpi IM, rd</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
330 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
331 Subtracts IM from rD and discards the result, but updates flags. IM can range from -8 to 7.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
332 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
333 <h4 id="reti">reti rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
334 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
335 Sets rD to the value storeed in EUR, SR to the value stored in ESR and PC to the value stored in EPC. This instruction is used for returning from an
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
336 exception or interrupt.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
337 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
338 <h4 id="trap">trap rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
339 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
340 Causes an exception to be taken to the vector indicated by rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
341 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
342 <h4 id="trapi">trapi IM</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
343 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
344 Causes an exception to be taken to the vecotr indicated by IM
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
345 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
346 <h4 id="getepc">getepc rD</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
347 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
348 Stores the value of EPC in rD.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
349 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
350 <h4 id="setepc">setepc</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
351 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
352 Stores the vaule of rD in EPC.
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
353 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
354 <h4 id="getesr">getesr</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
355 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
356 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
357 <h4 id="setesr">setesr</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
358 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
359 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
360 <h4 id="geteur">geteur</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
361 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
362 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
363 <h4 id="seteur">seteur</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
364 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
365 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
366 <h4 id="getenum">getenum</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
367 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
368 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
369 <h4 id="setenum">setenum</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
370 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
371 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
372 <h4 id="getvbr">getvbr</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
373 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
374 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
375 <h4 id="setvbr">setvbr</h4>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
376 <p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
377 </p>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
378 <h2 id="video">Video</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
379 <h2 id="audio">Audio</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
380 <h2 id="timer">Timer</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
381 <h2 id="controllers">Controllers</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
382 <h2 id="serial">Serial Port</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
383 <h2 id="cart">Cartridge</h2>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
384 </body>
52d601e13ea4 WIP documentation
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
385 </html>