Home     Exhibits     Wanted     Articles     Advertising   +Links  

Tech Notes: Compucorp HTL Chipset Microcode Instruction Set


Op. Code Mnemonic Operation
00000001 STOP Halt Program Execution
00000010 XCEA Exchange E and A Registers
00000011 XCMA Exchange M and A Registers
00000100 CHSN Toggle Sign of Mantissa Portion E Register
00000101 CHSX Toggle Exponent Sign of E Register
00000110 STXA Copy Exponent Portion of A Register into Exponent Store
00000111 RCXA Recall Exponent Store into Exponent Portion of A Register
00001000 ADDN Add Mantissa Portion of E to Mantissa Portion of A
00001001 SUBN Subtract Mantissa Portion of E from Mantissa Portion of A
00001010 ADDX Add Exponent Portion of E to Exponent Portion of A
00001011 SUBX Subtract Exponent Portion of E from Exponent Portion of A
00001100 INXA Increment Exponent Portion of A Register
00001101 INXE Increment Exponent Portion of E Register
00001110 DCXA Decrement Exponent Portion of A Register
00001111 DCXE Decrement Exponent Portion of E Register
00010000 SHRA Shift Mantissa Portion of A Register Right One Digit
00010001 SHLA Shift Mantissa Portion of A Register Left One Digit
00010010 SHRE Shift Mantissa Portion of E Register Right One Digit
00010011 CLRE Clear E Register
00010100CLRAClear A Register
00010101CALLClear Both E and A Registers
00010110ADRPIf Index #1<>0, Add E to A; Decrement Index #1
00010111SBRPIf A >= E, Subtract E from A; Decrement Index #1
00011000SFAEIf A > E, Set Flag #1
00011001SFEAIf E > A, Set Flag #1
00011010SFNEIf A <> E, Set Flag #1
00011011SFRAIf Memory Register #0 > A, Set Flag #1
00011100SFNZIf A <> 0, Set Flag #1
00011101SFAMIf A <= 0, Set Flag #1
00011110SFEMIf E <= 0, Set Flag #1
00011111SFE0If E = 0, Set Flag #1
00100000STR1Transfer Content of E into Memory Register #1
00100001STR2Transfer Content of E into Memory Register #2
00100010STR3Transfer Content of E into Memory Register #3
00100011STR4Transfer Content of E into Memory Register #4
00100100STR5Transfer Content of E into Memory Register #5
00100101STR6Transfer Content of E into Memory Register #6
00100110STR7Transfer Content of E into Memory Register #7
00100111STR8Transfer Content of E into Memory Register #8
00101000STRWTransfer Content of E into Register W
00101001STRZTransfer Content of E into Register X
00101010STRYTransfer Content of E into Register Y
00101011STRZTransfer Content of E into Register Z
00101100XFEMTransfer Content of E into Register M
00101101XFEATransfer Content of E into Register A
00101110----Undefined
00101111STR0Transfer Content of E Into Memory Register #0
00110000RCR1Transfer Content of Memory Register #1 into E
00110001RCR2Transfer Content of Memory Register #2 into E
00110010RCR3Transfer Content of Memory Register #3 into E
00110011RCR4Transfer Content of Memory Register #4 into E
00110100RCR5Transfer Content of Memory Register #5 into E
00110101RCR6Transfer Content of Memory Register #6 into E
00110110RCR7Transfer Content of Memory Register #7 into E
00110111RCR8Transfer Content of Memory Register #8 into E
00111000RCRWTransfer Content of Register W into E
00111001RCRXTransfer Content of Register X into E
00111010RCRYTransfer Content of Register Y into E
00111011RCRZTransfer Content of Register Z into E
00111100XFMETransfer Content of Register M into E
00111100XFAETransfer Content of Register A into E
00111110----Undefined
00111111RCR0Transfer Content of Memory Register #0 into E
01000000LIX0Set Index #1 to 0; Store P in P Store; Branch to 01,00
01000001LIX1Set Index #1 to 1; Store P in P Store; Branch to 01,00
01000010LIX2Set Index #1 to 2; Store P in P Store; Branch to 01,00
01000011LIX3Set Index #1 to 3; Store P in P Store; Branch to 01,00
01000100LIX4Set Index #1 to 4; Store P in P Store; Branch to 01,00
01000101LIX5Set Index #1 to 5; Store P in P Store; Branch to 01,00
01000110LIX6Set Index #1 to 6; Store P in P Store; Branch to 01,00
01000111LIX7Set Index #1 to 7; Store P in P Store; Branch to 01,00
01001000LIX8Set Index #1 to 8; Store P in P Store; Branch to 01,00
01001001LIX9Set Index #1 to 9; Store P in P Store; Branch to 01,00
01001010RST1Clear Index #1
01001011INI1Increment Index #1
01001100DCI1Decrement Index #1
01001101LDIXLoad Index #1 from Index #2 Location of M
01001110XFIMTransfer Index #1 to Index #2 Location of M
01001111XFIETransfer Index #1 to Index #2 Location of E
01010000SFS1Set Flag #1 if Switch #1 Closed
01010001SFS2Set Flag #1 if Switch #2 Closed
01010010SFS3Set Flag #1 if Switch #3 Closed
01010011SFS4Set Flag #1 if Switch #4 Closed
01010100SFS5Set Flag #1 if Switch #5 Closed
01010101SFS6Set Flag #1 if Switch #6 Closed
01010110SFS7Set Flag #1 if Switch #7 Closed
01010111SFS8Set Flag #1 if Switch #8 Closed
01011000SERRSet Error Flip Flop
01011001SOFLSet Overflow Flip Flop
01011010RFLFReset Flag #F
01011011SK10If Flag #1 = 0, Skip
01011100SKLDIf Index 2 <> Least Significant Digit Position, Skip
01011101SKX0If Exponent Portion of A = 0, Skip
01011110SKXPIf Exponent Portion of A >= 0, Skip
01011111SKP0If D0 Position of A <> 0, Skip
01100000SKF1If Flag #1 Set; Skip, Reset Flag #1
01100001SKF2If Flag #2 Set; Skip, Reset Flag #2
01100010SKF3If Flag #3 Set; Skip, Reset Flag #3
01100011SKF4If Flag #4 Set; Skip, Reset Flag #4
01100100SKF5If Flag #5 Set; Skip, Reset Flag #5
01100101SKF6If Flag #6 Set; Skip, Reset Flag #6
01100110SKF7If Flag #7 Set; Skip, Reset Flag #7
01100111SKF8If Flag #8 Set; Skip, Reset Flag #8
01101000SKFAIf Flag #A Set; Skip, Reset Flag #A
01101001SKFBIf Flag #B Set; Skip, Reset Flag #B
01101010SKFCIf Flag #C Set; Skip, Reset Flag #C
01101011SKFDIf Flag #D Set; Skip, Reset Flag #D
01101100SKFEIf Flag #E Set; Skip, Reset Flag #E
01101101SKFFIf Flag #F Set; Skip, Reset Flag #F
01101110CHPGChange Page on Next Branch Instruction
01101111RCLPRecall P from P Store
01110000SFLFSet Flag #F
01110001SFL2Set Flag #2
01110010SFL3Set Flag #3
01110011SFL4Set Flag #4
01110100SFL5Set Flag #5
01110101SFL6Set Flag #6
01110110SFL7Set Flag #7
01110111SFL8Set Flag #8
01111000RFL4Reset Flag #4
01111001RFL6Reset Flag #6
01111010RFL8Reset Flag #8
01111011RSFLReset All Flags
01111100LDOPLoad Decimal Point Selector Switch into Index #1
01111101RSI2Set Index #2 to D1 Position
01111110PRI2Set Index #2 to "Exponent 10's" Position
01111111INI2Increment Index #2
10xxxxxxJUMPJump
11xxxxxxJSUBStore P+1 in P Store; Branch