---------------------------------------------------------------- | | | | | Signetics | | | | 22222 666 5555555 000 | | 2 2 6 5 0 0 | | 2 6 5 0 0 0 | | 222 666666 555555 0 0 0 | | 2 6 6 5 0 0 0 | | 2 6 6 5 0 0 | | 2222222 66666 555555 000 | | | | 2650 MICROPROCESSOR Instruction Set Summary | | | | | | | | | | | | _________ _________ | | _| \__/ |_ | | --> SENSE |_|1 40|_| FLAG --> | | _| |_ | | <-- A12 |_|2 39|_| Vcc | | _| |_ | | <-- A11 |_|3 38|_| CLOCK <-- | | _| |_ _____ | | <-- A10 |_|4 37|_| PAUSE <-- | | _| |_ _____ | | <-- A9 |_|5 36|_| OPACK <-- | | _| |_ ____ | | <-- A8 |_|6 35|_| RUN/WAIT --> | | _| |_ | | <-- A7 |_|7 34|_| INTACK --> | | _| |_ | | <-- A6 |_|8 33|_| D0 <--> | | _| |_ | | <-- A5 |_|9 32|_| D1 <--> | | _| |_ | | <-- A4 |_|10 2650A 31|_| D2 <--> | | _| |_ | | <-- A3 |_|11 30|_| D3 <--> | | _| |_ | | <-- A2 |_|12 29|_| D4 <--> | | _| |_ | | <-- A1 |_|13 28|_| D5 <--> | | _| |_ | | <-- A0 |_|14 27|_| D6 <--> | | _____ _| |_ | | --> ADREN |_|15 26|_| D7 <--> | | _| |_ ______ | | --> RESET |_|16 25|_| DBUSEN <-- | | ______ _| |_ | | --> INTREQ |_|17 24|_| OPREQ --> | | _ _| |_ _ | | <-- A14-D/C |_|18 23|_| R/W --> | | __ _| |_ | | <-- A13-E/NE |_|19 22|_| WRP --> | | __ _| |_ | | <-- M/IO |_|20 21|_| GND | | |______________________| | | | | | | | | | | | | | |Written by Jonathan Bowen | | Programming Research Group | | Oxford University Computing Laboratory | | 8-11 Keble Road | | Oxford OX1 3QD | | England | | | | Tel +44-865-273840 | | | |Created March 1982 | |Updated April 1985 | |Issue 1.1 Copyright (C) J.P.Bowen 1985| ---------------------------------------------------------------- ---------------------------------------------------------------- |Mnemonic|Op|cIOC|~|Description |Notes | |--------+--+----+-+------------------------------+------------| |ADDA,r a|8C|****|4|Add Absolute |r=r+a | |ADDI,r i|84|****|2|Add Immediate |r=r+i | |ADDR,r l|88|****|3|Add Relative |r=r+l | |ADDZ,r |80|****|2|Add to register Zero |R0=R0+r | |ANDA,r a|4C|*---|4|Logical AND Absolute |r=r&a | |ANDI,r i|44|*---|2|Logical AND Immediate |r=r&i | |ANDR,r l|48|*---|3|Logical AND Relative |r=r&l | |ANDZ,r |40|*---|2|Logical AND register Zero |R0=R0&r | |BCFA,d b|9C|----|3|Branch on Cond. False Absolute|If d#c, PC=b| |BCFR,d l|98|----|3|Branch on Cond. False Relative|If d#c, PC=l| |BCTA,d b|1C|----|3|Branch on Cond. True Absolute |If d=c, PC=b| |BCTR,d l|18|----|3|Branch on Cond. True Relative |If d=c, PC=l| |BDRA,r b|FC|----|3|Branch on Dec. Reg. Absolute |r=r-1,if r#0| |BDRR,r l|F8|----|3|Branch on Dec. Reg. Relative |r=r-1,if r#0| |BIRA,r b|DC|----|3|Branch on Inc. Reg. Absolute |r=r+1,if r#0| |BIRR,r l|D8|----|3|Branch on Inc. Reg. Relative |r=r+1,if r#0| |BRNA,r b|5C|----|3|Branch on Reg. Non-zero Abs. |If r#0, PC=b| |BRNR,r l|58|----|3|Branch on Reg. Non-zero Rel. |If r#0, PC=l| |BSFA,d b|BC|----|3|Branch to Sub. on False Abs. |If d#c,calla| |BSFR,d l|B8|----|3|Branch to Sub. on False Rel. |If d#c,callr| |BSNA,r b|7C|----|3|Branch to Sub. on Non-zero Abs|If d#c,calla| |BSNR,r l|78|----|3|Branch to Sub. on Non-zero Rel|If d#c,callr| |BSTA,d b|3C|----|3|Branch to Sub. on True Abs. |If d=c,calla| |BSTR,d l|38|----|3|Branch to Sub. on True Rel. |If d=c,callr| |BSXA b|BF|----|3|Branch to Sub. Extended Addr. |calla | |BXA b|9F|----|3|Branch to Extended Address |PC=b | |COMA,r a|EC|*---|4|Compare Absolute |r-a | |COMI,r i|E4|*---|2|Compare Immediate |r-i | |COMR,r l|E8|*---|3|Compare Relative |r-l | |COMZ,r |E0|*---|2|Compare with register Zero |R0-r | |CPSL i|75|----|3|Clear Program Status Lower |If i=1,PSL=0| |CPSU i|74|----|3|Clear Program Status Upper |PSU=PSU&(~i)| |DAR,r |94|----|3|Decimal Adjust Register |r=BCD format| |EORA,r a|2C|*---|4|Logical Exclusive OR Absolute |r=rxa | |EORI,r i|24|*---|2|Logical Exclusive OR Immediate|r=rxi | |EORR,r l|28|*---|3|Logical Exclusive OR Relative |r=rxl | |EORZ,r |20|*---|2|Logical Exclusive OR reg Zero |R0=R0xr | |HALT |40|----|2|Halt |Wait state | |IORA,r a|6C|*---|4|Logical Inclusive OR Absolute |r=rva | |IORI,r i|64|*---|2|Logical Inclusive OR Immediate|r=rvi | |IORR,r l|68|*---|3|Logical Inclusive OR Relative |r=rvl | |IORZ,r |60|*---|2|Logical Inclusive OR reg Zero |R0=R0vr | |LODA,r a|0C|*---|4|Load Absolute |r=a | |LODI,r i|04|*---|2|Load Immediate |r=i | |LODR,r l|08|*---|3|Load Relative |r=l | |LODZ,r |00|*---|2|Load register Zero |R0=r | |LPSL |93|----|2|Load Program Status Lower |PSL=R0 | |LPSU |92|----|2|Load Program Status Upper |PSU=R0 | |NOP |C0|----|2|No Operation | | |PPSL i|77|----|3|Preset Program Status Lower |If i=1,PSL=1| |PPSU i|76|----|3|Preset Program Status Upper |If i=1,PSU=1| |REDC,r |30|*---|2|Read Control |r=statusNE | |REDD,r |70|*---|2|Read Data |r=dataNE | |REDE,r p|54|*---|3|Read Extended |r=p | |RETC,d |14|----|3|Return on Condition |If d=c,ret | |RETE,d |34|----|3|Return cond, Enable interrupts|ret,II=0 | |RRL,r |D0|----|2|Rotate Register Left |r=->{rr} | |RRR,r |50|----|2|Rotate Register Right |r={rr}<- | |SPSL |13|----|2|Store Program Status Lower |R0=PSL | |SPSU |12|----|2|Store Program Status Upper |R0=PSU | |STRA,r a|CC|----|4|Store Absolute |a=r | |STRR,r l|C8|----|3|Store Relative |l=r | |STRZ,r |C0|----|2|Store register Zero |r=R0 | |SUBA,r a|AC|****|4|Subtract Absolute |r=r-a | |SUBI,r i|A4|****|2|Subtract Immediate |r=r-i | |SUBR,r l|A8|****|3|Subtract Relative |r=r-l | |SUBZ,r |A0|****|2|Subtract from register Zero |R0=R0-r | |TMI,r i|F4|*---|3|Test under Mask Immediate |r&i | |TPSL,r i|B5|*---|3|Test Program Status Lower |i-PSL | |TPSU,r i|B4|*---|3|Test Program Status Upper |i-PSU | |WRTC,r |B0|----|2|Write Control |statusNE=r | |WRTD,r |F0|----|2|Write Data |dataNE=r | |WRTE,r p|D4|----|3|Write Extended |p=r | |ZBRR l|9B|----|3|Zero page Branch |PC=l | |ZBSR l|BB|----|3|Zero page Branch to Subroutine|callr | | |XX| |X|8-bit opcode, machine cycles |Hexadecimal | ---------------------------------------------------------------- ---------------------------------------------------------------- |Mnemonic |cIOC|Description | |-----------+----+---------------------------------------------| | |- |Unaffected | | |* |Affected | | |0 |Reset | | |1 |Set | | |? |Unknown | |-----------+----+---------------------------------------------| | S | |Sense (PSU bit 7) | | F | |Flag (PSU bit 6) | | II | |Interrupt Inhibit (PSU bit 5) | | SP2 | |Stack Pointer two (PSU bit 2) | | SP1 | |Stack Pointer one (PSU bit 1) | | SP0 | |Stack Pointer zero (PSU bit 0) | |-----------+----+---------------------------------------------| | CC1 |c |Condition Code one (PSL bit 7) | | CC0 |c |Condition Code zero (PSL bit 6) | | IDC | I |Inter-Digit Carry status (PSL bit 5) | | RS | |Register bank Select (R1-R3, PSL bit 4) | | WC | |With/without Carry (PSL bit 3) | | OVF | O |Overflow status (PSL bit 2) | | COM | |Logical/arithmetic Compare (PSL bit 1) | | C | C|Carry/borrow status (PSL bit 0) | |----------------+---------------------------------------------| | a |16-bit extended address | | b |16-bit absolute address | | c |2-bit condition codes CC1 and CC0 | | calla |[SP]+=PC+3,PC=b | | callr |[SP]+=PC+2,PC=l | | d |2-bit immediate data unit | | dataNE |Non-extended data port | | i |8-bit immediate data unit | | l |8-bit relative address | | p |8-bit I/O port number | | r |Register Rn (n=0-3) | | ret |If r#0, PC=[SP]- | | statusNE |Non-extended status port | |----------------+---------------------------------------------| | PC |Program Counter | | PSL |Program Status Lower (8-bit) | | PSU |Program Status Upper (8-bit) | | R0 |Register zero - accumulator | | Rn |Register (n=0-3) | | SP |Stack pointer | |----------------+---------------------------------------------| | + |Arithmetic addition | | - |Arithmetic subtraction | | * |Arithmetic multiplication | | / |Arithmetic division | | & |Logical AND | | ~ |Logical NOT | | v |Logical inclusive OR | | x |Logical exclusive OR | | = |Equal or assignment | | # |Not equal | | <- |Rotate left | | -> |Rotate right | | [ ] |Indirect addressing | | [ ]+ |Indirect addressing, auto-increment | | -[ ] |Auto-decrement, indirect addressing | | { } |Combination of operands | | {rr} |If WC=1 then {C,r} else {r} | | --> |Input pin | | <-- |Output pin | | <--> |Input/output pin | |--------------------------------------------------------------| | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------------------------------------