Difference between revisions of "Jump"

From Intellivision Wiki
Jump to: navigation, search
m
Line 31: Line 31:
 
<tr><td>[[JE]]</td><td>11</td><td>01</td></tr>
 
<tr><td>[[JE]]</td><td>11</td><td>01</td></tr>
 
<tr><td>[[JD]]</td><td>11</td><td>10</td></tr>
 
<tr><td>[[JD]]</td><td>11</td><td>10</td></tr>
<tr><td>Invalid Opcodes</td><td>00,01,10,11</td><td>11</td></tr>
+
<tr><td>unknown opcodes</td><td>00,01,10,11</td><td>11</td></tr>
 
</table><br/>
 
</table><br/>
  

Revision as of 20:27, 11 January 2005

Jump is a three-decle opcode that is represented as one of several different possible mnemonics, depending on the flags indicated in the second decle of the opcode. The opcode breaks down as follows.

   Format - Decle #1     Format - Decle #2     Format - Decle #3
   0000:0000:0000:0100  0000:00rr:aaaa:aaff  0000:00aa:aaaa:aaaa
where:
rr indicates the register into which to store the return address such that: rr == 00 indicates to store return address in register R4 rr == 01 indicates register R5 rr == 10 indicates register R6 rr == 11 indicates that the CP1610 should not store the return address, signaling a Jump without return
ff indicates how to affect the Interrupt (I) flag in the CP1610 such that: ff == 00 indicates not to affect the Interrupt flag ff == 01 indicates to set the Interrupt flag ff == 10 indicates to clear the Interrupt flag ff == 11 unknown opcode (behavior unknown!!)
aaaaaaaaaaaaaaaa indicates the address to where the CP1610 should Jump

This opcode is often represented as many different mnemonics, to make life a little easier for the programmer. The mnemonic used to represent this opcode depends on the combination of the rr and ff parameters mentioned above, according to the following charts.

Mnemonics From Parameters

Mnemonicrrff
JSR00,01,1000
JSRE00,01,1001
JSRD00,01,1010
J1100
JE1101
JD1110
unknown opcodes00,01,10,1111

Parameters From Mnemonics

rr == 00rr == 01rr == 10rr == 11
ff == 00JSR R4, $aaaaJSR R5, $aaaaJSR R6, $aaaaJ $aaaa
ff == 01JSRE R4, $aaaaJSRE R5, $aaaaJSRE R6, $aaaaJE $aaaa
ff == 10JSRD R4, $aaaaJSRD R5, $aaaaJSRD R6, $aaaaJD $aaaa
ff == 11unknown opcodes