Varian 620 Instruction Set Mnemonic Order -------------- ADD 12Mxxx Add memory to A register ADDE 00612M addr Add extended ADDI 006120 imm Add immediate ANA 15Mxxx AND memory and A register ANAE 00615M adr AND extended ANAI 006150 imm AND immediate AOFA 005511 Add overflow to A register AOFB 005522 Add overflow to B register AOFX 005544 Add overflow to X register ASLA 004200+n Arithmetic shift left A register ASLB 004000+n Arithmetic shift left B register ASRA 004300+n Arithmetic shift right A register ASRB 004100+n Arithmetic shift right B register BT 0064xx * Bit test CIA 1025xx Clear and input to A register CIAB 1027xx Clear and input to A and B registers CIB 1026xx Clear and input to B register COMPL 005xxx Complement source to destination registers CPA 005211 Complement A register CPB 005222 Complement B register CPX 005244 Complement X register DAR 005311 Decrement A register DBR 005322 Decrement B register DECR 005xxx Decrement source to destination registers DIV 17Mxxx Divide DIVE 00617M adr Divide Extended DIVI 006170 imm Divide Immediate DXR 005344 Decrement X register ERA 13Mxxx Exclusive Or memory and A register ERAE 00613M adr Exclusive Or extended ERAI 006130 imm Exclusive Or immediate EXC 100xxx External Control HLT 000000 Halt IAR 005111 Increment A register IBR 005122 Increment B register IJMP 0067xx * Indexed Jump IME 1020xx Input to memory INA 1021xx Input to A register INAB 1023xx Input to A and B register INB 1022xx Input to B register INCR 005xxx Increment source to destination registers INR 04Mxxx Increment memory and replace INRE 00604M adr Increment memory and replace extended INRI 006040 imm Increment memory and replace immediate IXR 005144 Increment X register JAN 001004 Jump if A register negative JANM 002004 * Jump and mark if A register negative JANZ 001016 * Jump if A register non zero JANZM 002016 * Jump and mark if A register non zero JAP 001002 Jump if A register positive JAPM 002002 * Jump and mark if A register positive JAZ 001010 Jump if A register zero JAZM 002010 * Jump and mark if A register zero JBNZ 001026 * Jump if B register non zero JBNZM 002026 * Jump and mark if B register non zero JBZ 001020 Jump if B register zero JBZM 002020 * Jump and mark if B register zero JIF 001xxx Jump if conditions met JIFM 002xxx Jump and mark if conditions met JMP 001000 Jump unconditionally JMPM 002000 Jump and mark unconditionally JOF 001001 Jump if overflow indicator set JOFN 001007 * Jump if overflow indicator not set JOFM 002001 Jump and mark if overflow indicator set JOFNM 002007 * Jump and mark if overflow indicator not set JSR 006505 * Jump unconditionally and set return in X register JSR 006506 * Jump unconditionally and set return in B register JS1M 002100 Jump and mark if sense switch 1 set JS2M 002200 Jump and mark if sense switch 2 set JS3M 002400 Jump and mark if sense switch 3 set JS1N 001106 * Jump if sense switch 1 not set JS2N 001206 * Jump if sense switch 2 not set JS3N 001406 * Jump if sense switch 3 not set JS1NM 002106 * Jump and mark if sense switch 1 not set JS2NM 002206 * Jump and mark if sense switch 2 not set JS3NM 002406 * Jump and mark if sense switch 3 not set JSS1 001100 Jump if sense switch 1 set JSS2 001200 Jump if sense switch 2 set JSS3 001400 Jump if sense switch 3 set JXNZ 001046 * Jump if X register not zero JXNZM 002046 * Jump and mark if X register not zero JXZ 001040 Jump if X register zero JXZM 002040 Jump and mark if X register zero LASL 0044xx Long arithmetic shift left LASR 0045xx Long arithmetic shift right LDA 01Mxxx Load A register LDAE 00601M adr Load A register extended LDAI 006010 imm Load A register immediate LDB 02Mxxx Load B register LDBE 00602M adr Load B register extended LDBI 006020 imm Load B register immediate LDX 03Mxxx Load X register LDXE 00603M adr Load X register extended LDXI 006030 imm Load X register immediate LLRL 004440+n Long logical rotation left LLSR 004540+n Long logical rotation right LRLA 004240+n Logical rotation left A register LRLB 004040+n Logical rotation left B register LSRA 004340+n Logical shift right A register LSRB 004140+n Logical shift right B register MERG 005xxx Merge source and destination registers MUL 16Mxxx Multiply MULE 00616M adr Multiply extended MULI 006160 imm Multiply immediate NOP 005000 No operation OAB 1033xx Output inclusive or of A and B registers OAR 1031xx Output from A register OBR 1032xx Output from B register OME 1030xx Output from memory ORA 11Mxxx Inclusive or memory and A register ORAE 00611M adr Inclusive or extended ORAI 006110 imm Inclusive or immediate ROF 007400 Reset overflow indicator SEN 1010xx Program sense SOF 007401 Set overflow indicator SOFA 005711 Subtract overflow from A register SOFB 005722 Subtract overflow from B register SOFX 005744 Subtract overflow from X register SRE 0066xx * Skip if register equal STA 05Mxxx Store A register STAE 00605M adr Store A register extended STAI 006050 imm Store A register immediate STB 06Mxxx Store B register STBE 00606M adr Store B register extended STBI 006060 imm Store B register immediate STX 07Mxxx Store X register STXE 00607M adr Store X register extended STXI 006070 imm Store X register immediate SUB 14Mxxx Subtract memory from A register SUBE 00614M adr Subtract extended SUBI 006140 imm Subtract immediate TAB 005012 Transfer A register to B register TAX 005014 Transfer A register to X register TBA 005021 Transfer B register to A register TBX 005024 Transfer B register to X register TSA 007402 * Transfer switches to A register TXA 005041 Transfer X register to A register TXB 005042 Transfer X register to B register TZA 005001 Transfer zero to A register TZB 005002 Transfer zero to B register TZX 005004 Transfer zero to X register XAN 003004 Execute if A register negative XANZ 003016 * Execute if A register non zero XAP 003002 Execute if A register positive XAZ 003010 Execute if A register zero XBNZ 003026 * Execute if B register non zero XBZ 003020 Execute if B register zero XEC 003000 Execute unconditionally XIF 003xxx Execute if conditions met XOF 003001 Execute if overflow indicator set XOFN 003007 * Execute if overflow indicator not set XS1 003100 Execute if sense switch 1 set XS2 003200 Execute if sense switch 2 set XS3 003400 Execute if sense switch 3 set XS1N 003106 * Execute if sense switch 1 not set XS2N 003206 * Execute if sense switch 2 not set XS3N 003406 * Execute if sense switch 3 not set XXNZ 003046 * Execute if X register non zero XXZ 003040 Execute if X register zero ZERO 005xxx Zero (clear) registers Notes: * = 620/f-100 and V70 only Extended addressing and Mul/Div was on an option card on most 620 systems Opcode Order ------------ HLT 000000 Halt JIF 001xxx Jump if conditions met JMP 001000 Jump unconditionally JOF 001001 Jump if overflow indicator set JAP 001002 Jump if A register positive JAN 001004 Jump if A register negative JOFN 001007 * Jump if overflow indicator not set JAZ 001010 Jump if A register zero JANZ 001016 * Jump if A register non zero JBZ 001020 Jump if B register zero JBNZ 001026 * Jump if B register non zero JXZ 001040 Jump if X register zero JXNZ 001046 * Jump if X register not zero JSS1 001100 Jump if sense switch 1 set JS1N 001106 * Jump if sense switch 1 not set JSS2 001200 Jump if sense switch 2 set JS2N 001206 * Jump if sense switch 2 not set JSS3 001400 Jump if sense switch 3 set JS3N 001406 * Jump if sense switch 3 not set JIFM 002xxx Jump and mark if conditions met JMPM 002000 Jump and mark unconditionally JOFM 002001 Jump and mark if overflow indicator set JAPM 002002 * Jump and mark if A register positive JANM 002004 * Jump and mark if A register negative JOFNM 002007 * Jump and mark if overflow indicator not set JAZM 002010 * Jump and mark if A register zero JANZM 002016 * Jump and mark if A register non zero JBZM 002020 * Jump and mark if B register zero JBNZM 002026 * Jump and mark if B register non zero JXZM 002040 Jump and mark if X register zero JXNZM 002046 * Jump and mark if X register not zero JS1M 002100 Jump and mark if sense switch 1 set JS1NM 002106 * Jump and mark if sense switch 1 not set JS2M 002200 Jump and mark if sense switch 2 set JS2NM 002206 * Jump and mark if sense switch 2 not set JS3M 002400 Jump and mark if sense switch 3 set JS3NM 002406 * Jump and mark if sense switch 3 not set XIF 003xxx Execute if conditions met XEC 003000 Execute unconditionally XOF 003001 Execute if overflow indicator set XAP 003002 Execute if A register positive XAN 003004 Execute if A register negative XOFN 003007 * Execute if overflow indicator not set XAZ 003010 Execute if A register zero XANZ 003016 * Execute if A register non zero XBZ 003020 Execute if B register zero XBNZ 003026 * Execute if B register non zero XXZ 003040 Execute if X register zero XXNZ 003046 * Execute if X register non zero XS1 003100 Execute if sense switch 1 set XS1N 003106 * Execute if sense switch 1 not set XS2 003200 Execute if sense switch 2 set XS2N 003206 * Execute if sense switch 2 not set XS3 003400 Execute if sense switch 3 set XS3N 003406 * Execute if sense switch 3 not set ASLB 004000+n Arithmetic shift left B register LRLB 004040+n Logical rotation left B register ASRB 004100+n Arithmetic shift right B register LSRB 004140+n Logical shift right B register ASLA 004200+n Arithmetic shift left A register LRLA 004240+n Logical rotation left A register ASRA 004300+n Arithmetic shift right A register LSRA 004340+n Logical shift right A register LASL 004400+n Long arithmetic shift left LLRL 004440+n Long logical rotation left LASR 004500+n Long arithmetic shift right LLSR 004540+n Long logical rotation right COMPL 005xxx Complement source to destination registers DECR 005xxx Decrement source to destination registers INCR 005xxx Increment source to destination registers MERG 005xxx Merge source and destination registers ZERO 005xxx Zero (clear) registers NOP 005000 No operation TZA 005001 Transfer zero to A register TZB 005002 Transfer zero to B register TZX 005004 Transfer zero to X register TAB 005012 Transfer A register to B register TAX 005014 Transfer A register to X register TBA 005021 Transfer B register to A register TBX 005024 Transfer B register to X register TXA 005041 Transfer X register to A register TXB 005042 Transfer X register to B register IAR 005111 Increment A register IBR 005122 Increment B register IXR 005144 Increment X register CPA 005211 Complement A register CPB 005222 Complement B register CPX 005244 Complement X register DAR 005311 Decrement A register DBR 005322 Decrement B register DXR 005344 Decrement X register AOFA 005511 Add overflow to A register AOFB 005522 Add overflow to B register AOFX 005544 Add overflow to X register SOFA 005711 Subtract overflow from A register SOFB 005722 Subtract overflow from B register SOFX 005744 Subtract overflow from X register LDAI 006010 imm Load A register immediate LDAE 00601M adr Load A register extended LDBI 006020 imm Load B register immediate LDBE 00602M adr Load B register extended LDXI 006030 imm Load X register immediate LDXE 00603M adr Load X register extended INRI 006040 imm Increment memory and replace immediate INRE 00604M adr Increment memory and replace extended STAI 006050 imm Store A register immediate STAE 00605M adr Store A register extended STBI 006060 imm Store B register immediate STBE 00606M adr Store B register extended STXI 006070 imm Store X register immediate STXE 00607M adr Store X register extended ORAI 006110 imm Inclusive or immediate ORAE 00611M adr Inclusive or extended ADDI 006120 imm Add immediate ADDE 00612M addr Add extended ERAI 006130 imm Exclusive Or immediate ERAE 00613M adr Exclusive Or extended SUBI 006140 imm Subtract immediate SUBE 00614M adr Subtract extended ANAI 006150 imm AND immediate ANAE 00615M adr AND extended MULI 006160 imm Multiply immediate MULE 00616M adr Multiply extended DIVI 006170 imm Divide Immediate DIVE 00617M adr Divide Extended BT 0064xx * Bit test JSR 006505 * Jump unconditionally and set return in X register JSR 006506 * Jump unconditionally and set return in B register SRE 0066xx * Skip if register equal IJMP 0067xx * Indexed Jump ROF 007400 Reset overflow indicator SOF 007401 Set overflow indicator TSA 007402 * Transfer switches to A register LDA 01Mxxx Load A register LDB 02Mxxx Load B register LDX 03Mxxx Load X register INR 04Mxxx Increment memory and replace STA 05Mxxx Store A register STB 06Mxxx Store B register STX 07Mxxx Store X register EXC 100xxx External Control SEN 1010xx Program sense IME 1020xx Input to memory INA 1021xx Input to A register INB 1022xx Input to B register INAB 1023xx Input to A and B register CIA 1025xx Clear and input to A register CIB 1026xx Clear and input to B register CIAB 1027xx Clear and input to A and B registers OME 1030xx Output from memory OAR 1031xx Output from A register OBR 1032xx Output from B register OAB 1033xx Output inclusive or of A and B registers ORA 11Mxxx Inclusive or memory and A register ADD 12Mxxx Add memory to A register ERA 13Mxxx Exclusive Or memory and A register SUB 14Mxxx Subtract memory from A register ANA 15Mxxx AND memory and A register MUL 16Mxxx Multiply DIV 17Mxxx Divide Address Coding for Single-Word Instructions ------------------------------------------- M Field (Octal) Addressing Mode Operation 0-3 Direct Two least significant bits of M field are combined with A field to form effective adr (0 - 3777) 4 Relative A field is added to contents of P register plus one to form effective address ( 0 - 777 ) 5 Indexed with X reg A field is added to contents of X register to form effective address 6 Indexed with B reg A field is added to contents of B register to form effective address 7 Indirect A field specifies location in which address of operand is stored Address Coding for Extended Addressing Instructions --------------------------------------------------- 0-3 Immediate Second word of instruction contains the operand 4 Relative Second word of instruction is added to contents of P register to form effective address 5 Indexed with X reg Second word of instruction is added to contents of X register to form effective address 6 Indexed with B reg Second word of instruction is added to contents of B register to form effective address 7 Indirect If the most significant bit of the second word is 1, the remaining bits identify the location of the operand address. Standard Device Addresses ------------------------- Class Code Addresses Option or Peripheral 00-07 01-07 Teletype 010-017 010-013 Magnetic Tape 014 Fixed head rotating memory 015 Moving-head rotating memory 016 Moving-head rotating memory 020-027 020,021 First BIC 022,023 Second BIC 024,025 Third BIC 026,027 Fourth BIC 030-037 030 Card Reader 031 Card Punch 032 Digital Plotter 033 Electrostatic Plotter 034 Second Paper Tape System 035,036 Line Printer 037 First Paper Tape System 040-047 040-043 PIM 044 All PIM enable/disable 045 MP 047 RTC 050-057 050-053 Special Applications and Digital to Analog Converter 054-057 Analog to Digital Subsystem 056-057 Oscilloscope Controller 060-067 060-067 Digital I/O controller or Buffered I/O controller 070-077 070-073 Data Communications System 074-077 Relay I/O controller or Special Applications