Trailing-Edge
-
PDP-10 Archives
-
BB-BL69A-SB_1984
-
ub.mcr
There are no other files named ub.mcr in the archive.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page TOC-1
; Table of Contents
; 1 UB.MIC[10,5351] 18:39 20-Apr-83
; 21 EDHIS.MIC[10,5351] 22:44 29-Nov-83
; 41 REVISION HISTORY
; 995 DEFINE.MIC[10,5351] 23:19 23-Nov-83
; 996 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 1156 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1359 MICROCODE LISTING TEMPLATE
; 1410 KL10 INSTRUCTION OPCODE MAP
; 1466 CONTROL RAM DEFINITIONS -- J, AD
; 1522 CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 1593 CONTROL RAM DEFINITIONS -- 10-BIT LOGIC
; 1626 CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME
; 1660 CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 1689 CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS
; 1781 CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 1833 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2151 DISPATCH RAM DEFINITIONS
; 2197 MACRO.MIC[10,5351] 21:14 28-Nov-83
; 2198 CRAM Macros--Miscellaneous and A
; 2248 CRAM Macros--AR
; 2471 CRAM Macros--AR Miscellaneous, ARL, and ARR
; 2540 CRAM Macros--ARX
; 2633 CRAM Macros--B, C, D
; 2739 CRAM Macros--E, F
; 2839 CRAM Macros--G, H, I, J, L
; 2950 CRAM Macros--M, N, O, P
; 3058 CRAM Macros--R
; 3115 CRAM Macros--S
; 3359 CRAM Macros--T, U, V, W, X
; 3468 DRAM Macros
; 3552 BASIC.MIC[10,5351] 19:05 28-Nov-83
; 3553 THE INSTRUCTION LOOP
; 3647 NEXT INSTRUCTION DISPATCH
; 3773 EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 3839 WAIT FOR (E)
; 3907 TERMINATION
; 3957 MOVE GROUP, EXCH, BLT
; 4000 XMOVEI, XHLLI, MOVEM, EXCH, BLT
; 4031 HALFWORD GROUP
; 4178 DMOVE, DMOVN, DMOVEM, DMOVNM
; 4218 BOOLEAN GROUP
; 4375 SKPJMP.MIC[10,5351] 21:45 19-Sep-83
; 4376 TEST GROUP
; 4485 COMPARE -- CAI, CAM
; 4511 ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 4560 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 4616 AC DECODE JUMPS -- JRST, JFCL
; 4756 HALT LOOP
; 4785 MAP, XCT
; 4814 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 4912 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 4962 UUO'S
; 5195 JSYS, ADJSP
; 5237 XCT, PXCT, SXCT
; 5311 SHIFT.MIC[10,5351] 16:00 16-Mar-78
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page TOC-2
; Table of Contents
; 5312 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 5367 ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 5401 ARITHMETIC SHIFTS -- ASH, ASHC
; 5450 ARITH.MIC[10,5351] 19:59 21-Jun-83
; 5451 ADD, SUB
; 5476 MUL, IMUL
; 5527 MULTIPLY SUBROUTINE
; 5581 DIV, IDIV
; 5640 INTEGER DIVIDE SUBROUTINE
; 5680 BASIC DIVIDE LOOP
; 5729 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 5854 FP.MIC[10,5351] 19:08 8-Oct-81
; 5855 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 5933 SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 5962 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 6090 UFA, DFN, FSC, IBP
; 6159 FIX, FIXR, FLTR, EXTEND
; 6229 SINGLE PRECISION FLOATING NORMALIZATION
; 6370 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6521 DOUBLE PRECISION NORMALIZATION
; 6588 BYTE.MIC[10,5351] 15:09 9-Aug-83
; 6589 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 6716 INCREMENT BYTE POINTER SUBROUTINE
; 6840 BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB
; 6891 LOAD BYTE SUBROUTINE
; 6914 DEPOSIT BYTE SUBROUTINE
; 6945 IBP, ADJBP
; 7212 EXTEXP.MIC[10,5351] 22:20 31-Aug-82
; 7213 GFLT DOUBLE PRECISION ARITHMETIC
; 7331 GFLT MULTIPLY
; 7376 GFLT DIVIDE
; 7418 GFLT NORMALIZATION
; 7561 GFLT TO INTEGER CONVERSION
; 7686 GFLT DATA CONVERSION INSTRUCTIONS
; 7909 IO.MIC[10,5351] 14:31 29-Nov-83
; 7910 I/O INSTRUCTIONS
; 8008 EXTERNAL DEVICE I/O INSTRUCTIONS
; 8102 INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 8141 INTERNAL DEVICE FUNCTIONS -- PI
; 8196 TRACKS SUPPORT
; 8453 INTERNAL DEVICE FUNCTIONS -- PAG
; 8577 INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 8682 PRIORITY INTERRUPT PROCESSING
; 8858 KL-MODE PAGE REFILL LOGIC
; 9238 KI-MODE PAGE FAIL HANDLING
; 9388 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 9461 EIS.MIC[10,5351] 18:59 19-May-83
; 9462 EXTENDED INSTRUCTION SET DECODING
; 9621 ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND
; 9676 EIS -- STRING MOVE
; 9799 EIS -- STRING COMPARE
; 9876 EIS -- DECIMAL TO BINARY CONVERSION
; 9943 EIS -- BINARY TO DECIMAL CONVERSION
; 10101 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10306 EIS -- EDIT FUNCTION
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page TOC-3
; Table of Contents
; 10565 BLT.MIC[10,5351] 17:35 6-Jul-83
; 10566 XBLT
; 10616 BLT
; 10704 EXTENDED ADDRESSING CODE FOR PXCT OF BLT
; Cross Reference Index
; DCODE Location / Line Number Index
; UCODE Location / Line Number Index
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; UB.MIC[10,5351] 18:39 20-Apr-83 UB.MIC[10,5351] 18:39 20-Apr-83
; 1 ;PARAMETER CHANGES FOR KL10 TOPS-10 MICROCODE
; 2 ;MODEL B MACHINE EXTENDED ADDRESSING with KL style paging
; 3
; 4 .SET/SNORM.OPT=1
; 5 .SET/XADDR=1
; 6 .SET/EPT540=1
; 7 .SET/LONG.PC=1
; 8 .SET/MODEL.B=1
; 9 .SET/KLPAGE=1
; 10 .SET/FPLONG=0
; 11 .SET/BLT.PXCT=1
; 12 .SET/SMP=1 ;SMP- DOES RPW FOR DPB, IDPB INSTEAD OF READ, WRITE
; 13 .SET/EXTEXP=1
; 14 .SET/MULTI=1 ;DOES NOT CACHE PAGE TABLE DATA
; 15 .SET/NOCST=1 ;DOES NOT DO AGE UPDATES, ETC. WITH CST = 0
; 16 .SET/OWGBP=0 ;No ONE WORD GLOBAL BYTE POINTERS
; 17 .SET/IPA20=0 ;No IPA20-L
; 18 .SET/GFTCNV=0 ;DO NOT DO GFLOAT CONVERSION INSTRUCTIONS [273]
; 19 ;SAVES 75 WORDS. MONITOR WILL TAKE CARE OF THEM.
; 20 .set/cst.write=0 ;No common file system on TOPS-10
; 21
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 UB.MIC[10,5351] 18:39 20-Apr-83
; 22 .TITLE "KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION"
; 23 .VERSION/MAJOR=1/MINOR=0/EDIT=336/WHO=0
; 24 .NOBIN
; 25
; 26 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; 27 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; 28 ; EQUIPMENT CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO
; 29 ; RESPONSIBITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
; 30 ; THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE
; 31 ; PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND
; 32 ; CAN BE COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY
; 33 ; FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING
; 34 ; BY DIGITAL.
; 35 ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
; 36 ; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED
; 37 ; BY DIGITAL.
; 38 ; COPYRIGHT (C) 1975,1976,1977,1978,1979,1980,1981,1982,1983,1984 DIGITAL EQUIPMENT CORPORATION
; 39
; 40
; 41 .TOC "REVISION HISTORY"
; 42
; 43 ; The following collection of people have contributed to the
; 44 ; production and maintenance of this code. In reverse chronological
; 45 ; order:
; 46 ;
; 47 ; QQSV (Dick Wagman) -- beginning with edit 301
; 48 ; Sean Keenan
; 49 ; Don Dossa
; 50 ; Mike Newman
; 51 ; Jud Leonard
; 52 ;
; 53 ;REV WHY
; 54 ;
; 55 ;336 Back off 330 for a bit, since TOPS-10 7.02 must be tested and
; 56 ; OWGs in section 0 fail for string instructions (they get converted
; 57 ; to TWGs, which are illegal in section 0). For now, we will maintain
; 58 ; both sources.
; 59 ;335 Force memory to be released for SMP case of DPB if P > 36 causes no
; 60 ; actual data to be stored. Make an OWG reference to an address >
; 61 ; 37,,777777 cause a page fail (GBYTE was stripping the excess bits).
; 62 ;334 Fix conflict generated in CLRPT by 333 by creating new subroutine
; 63 ; ARSWAP which is just AR_AR SWAP. Make several other routines call it,
; 64 ; thus saving a few words.
; 65 ;333 Add new conditional BIG.PT. Under it, add code to implement the "Keep
; 66 ; me" bit for paging as bit 5 of the page table, and to move it to page
; 67 ; map bit 23 during page refill. Also make DATAO PAG not clear Kept
; 68 ; pages if bit 3 of the word is off.
; 69 ;332 Redefine all bank 7 ACs as R0,...,R17, and all bank 6 ACs as P0,...,
; 70 ; P17. Change all other alias definitions to refer to these. This
; 71 ; gives us a uniform cross reference for all scratch register references.
; 72 ; Put all macro definitions into alphabetical order, making it easier
; 73 ; to look up a macro definition. Split the edit history into its own
; 74 ; file. There are no functional changes from 331.
; 75 ;331 Allow XSFM anywhere. Clean up the code a bit in the process. There
; 76 ; still remain a number of references to XSFM or XPCW distinctions,
; 77 ; and these could almost certainly be cleaned up further.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-1
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 78 ;330 Allow one word global byte pointers in section zero. This includes
; 79 ; changes in BYTE, EIS, and FP. Change GBYTE and CNV2WD to return 2;
; 80 ; eliminate GTST as obsolete. Also shuffle the calls to these routines
; 81 ; to conform to the new calling conventions, and put the OWG test at
; 82 ; the beginning of IBP, ILDB, IDBP, LDB, DPB, and ADJBP.
; 83 ;327 Add PAGCNT conditional. Under it, include control to count entry
; 84 ; into PFH code and DATAO PAG with bit 2 set.
; 85 ;326 Change VMA restoration in INC2WD and CNV2WD (see edits 320 and 307)
; 86 ; to use RSTR VMA_MQ in order to keep the global/local sense of the
; 87 ; reference. This was causing ILDBs of OWGs in shadow memory to
; 88 ; save the incremented byte pointer in the ACs instead of memory.
; 89 ;325 Add VMA/LOAD to local indexed EA computation for EXTEND E1 to make
; 90 ; it read the section number from VMA instead of PCS (!) if the index
; 91 ; is section local.
; 92 ;324 Force the XADDR conditional to use RPW type references for DPB and
; 93 ; IDPB if the SMP conditional is on, even if one word globals are not
; 94 ; active.
; 95 ;323 Add missing constraint near NOT.WR, accidentally broken by 322.
; 96 ;322 Generate the A(cessible) bit in a page fail word caused by a read
; 97 ; violation if the page is otherwise accessible and if no CST is present.
; 98 ; This could be fixed for the CST present case as well, but has been
; 99 ; deferred since we are tight on space and no one seems to need it
; 100 ; anyway.
; 101 ;321 Prevent statistics microcode from losing traps by forcing NICOND
; 102 ; dispatch 11 to ignore the statistics and take the trap.
; 103 ;320 Restore the VMA again in INC2WD (broken by 307), since the state
; 104 ; register bits may have changed in the interim. This was causing
; 105 ; PXCT to do surprising things (mostly bad).
; 106 ;317 Originally, this was an attempt to uncount multiply counted op
; 107 ; codes which resulted from interrupts during long instructions.
; 108 ; That project has been shelved for now. Instead, the second
; 109 ; NICOND dispatch during op code counting has had its final constraint
; 110 ; fixed.
; 111 ;316 Make counting only version compatible with time and counting by making
; 112 ; counting only version use TRX2 and TRX3, removing physical contiguity
; 113 ; requirement.
; 114 ;315 Op code counting lives again! The setup code activated by DATAO PI
; 115 ; was attempting to write the TRX registers with data fresh from memory,
; 116 ; resulting in parity checks when it was used (see edit 73, for example).
; 117 ; Juggle code to overlap next address calculation with parity wait.
; 118 ;314 Add CST.WRITE conditional to facilitate assembly of microcode
; 119 ; without the CST writable bit (see edit 303).
; 120 ;313 Put TIME/3T on XFERW, as the assembler was getting the wrong
; 121 ; value with both AR_MEM and ARX_MEM macros present.
; 122 ;312 Fix definition of BYTE RPW to include a write test. This was
; 123 ; causing the SMP version of DPB to hang when memory was readable
; 124 ; but not writable.
; 125 ;311 Make all IOP function 7 style of references look in the cache.
; 126 ;310 Improve the fix in 307 to save the computed E0+1 in FILL during
; 127 ; OWGBP conversion and to restore the VMA from there when done.
; 128 ; Also, make sure that the VMA is initialized to PC for all cases
; 129 ; when doing effective address calculations for two word globals
; 130 ; in string instructions. 307 was not enough to clean up the
; 131 ; CMPSx fill problem, since VMA HELD was never loaded.
; 132 ; Force EXT2WD to prereference AC4 and AC5 so that glitch discovered
; 133 ; for second edit 210 will not be activated.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-2
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 134 ;307 Restore VMA from MQ at end of CNV2WD (and remove it from INC2WD,
; 135 ; saving a word in the process). This was causing CMPSx to load
; 136 ; a random fill word and MOVSLJ to store to a random place when the
; 137 ; source length was zero if one word globals were in use.
; 138 ; Force page fail code to look for ARX as well as AR parity errors
; 139 ; (now possible with BYTE RPW implemented).
; 140 ; Make sign extension of E1 go to right place in EXTEND decoding of
; 141 ; offset instructions (broken in 301).
; 142 ;306 Add University of Essex code to statistics (TRACKS) code to make
; 143 ; it work with address break enabled.
; 144 ;305 Fix CST write bit logic to not test bit 18 when reading.
; 145 ;304 Switch byte read interlock from LDB to DPB (broken in 303).
; 146 ;303 Implement bit 18 of a CST entry as a write enable bit in addition
; 147 ; to all the other write enable functions.
; 148 ; Knock one cycle out of byte deposit where the byte is being
; 149 ; deposited into the high order byte of a word.
; 150 ; Implement the SMP conditional for extended addressing by
; 151 ; replicating all the byte effective address calculation code for
; 152 ; DPB. This is unfortunate, but necessary due to the huge dispatch
; 153 ; table that ends this subroutine.
; 154 ;302 Move XFERW out of EIS (which no longer absolutely requires it
; 155 ; in line) into SKPJMP (more in the heart of things). Also
; 156 ; juggle comment lines and code layout to reduce the listing
; 157 ; size a bit and to force some of the .TOC lines into the table
; 158 ; of contents (even though the code nearby may be suppressed).
; 159 ;301 Fix ADJBP so that instructions which occur at the last word on
; 160 ; a page do not cause a page failure of some random type (one cycle
; 161 ; too many between I FETCH and NICOND).
; 162 ; Fix effective address calculation for EXTEND so that only offset
; 163 ; instructions (and not GSNGL, for example) will have E1 sign
; 164 ; smeared.
; 165 ; Implement XJRST. Also force JSP and JSR to do full 30 bit
; 166 ; effective address calculations.
; 167 ;300 ADD LOAD OF VMA FROM PC IN PUTDST TO GET THE SECTION ADDRESS
; 168 ; CORRECT ON THE STRING INSTRUCTIONS.
; 169 ;277 Add EA CALC table for SMP configurations of extended addressing
; 170 ; for TOPS-10. (TOPS-20 paging)
; 171 ;276 Force global EA CALC for EXTEND instructions in PUTDST.
; 172 ;275 FIX THE ERROR CODE IN STRING COMPARE FOR ILLEGAL BITS IN THE
; 173 ; LENGTH FIELD. WAS CAUSING AR PARITY ERRORS.
; 174 ;274 SAVE THE API FUNCTION WORD ON AN IO PAGE FAIL INSTEAD OF THE
; 175 ; PAGE FAIL WORD. THIS TAKES PLACE IN BOTH THE AC BLK 7 AC 2
; 176 ; AND THE MONITOR.
; 177 ;273 PUT CONDITIONALS AROUND 4 GFLOAT CONVERSION INSTRUCTIONS.
; 178 ; THEY WILL ACT AS MUUO'S AND MONITOR WILL TAKE CARE OF THEM.
; 179 ;272 CONO APR 200000 AT TIMES WAS NOT GENERATING EBUS RESET OF A
; 180 ; SUFFICIENT LENGTH TO CLEAR DTE REGISTERS. ADDED ANOTHER
; 181 ; MICROWORD SO THAT CONO APR IS NOW UP FOR TWO FULL WORDS WHICH
; 182 ; GETS AROUND THE HARDWARE PROBLEM.
; 183 ;271 ILLEGAL INDIRECT PAGE FAIL (24) WAS NOT ALLOWING USER TO BE SET.
; 184 ;270 WHEN IN SECTIONS > 1, AN UPDATED OWGBP WOULD BE WRITTEN INTO
; 185 ; MEMORY INSTEAD OF THE AC'S.
; 186 ;267 CHANGED TESTS FOR OWGBP TO TEST FOR PC SEC0 FIRST. SAVES 33 NS.
; 187 ;266 CONDITIONALS ON FOR TOPS-20 DEVELOPMENT.
; 188 ;265 REMOVED EDIT 244. SOFTWARE ENGINEERING WILL SUPPLY MONITOR
; 189 ; CODE TO TAKE CARE OF PROBLEM. CODE COSTS TOO MUCH TIME IN
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-3
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 190 ; THE INSTRUCTION EXECUTION.
; 191 ;264 ADDED CONDITIONALS TO CODE FOR IPA20, OWGBP AND NO CST UPDATE IF
; 192 ; CBR IS ZERO. THIS IS FOR RELEASE 5 OF TOPS-20.
; 193 ;263 IBP DID NOT CLEAR FPD ON EXIT.
; 194 ;262 ALLOW XBLT TO BE VALID IN SECTION 0.
; 195 ;261 FIX CODE AT END OF ADJBP CODE TO CLEAR STATE REG. IF ILDB
; 196 ; WITH 2 WD GLOBAL POINTER POINTING TO ADDRESS NOT IN CORE
; 197 ; CLEAN DISPATCHES TO WRONG CODE BECAUSE SR LEFT OVER FROM
; 198 ; ADJBP.
; 199 ;260 FIX FM PARITY ERRORS AT MVF1: ADDED NULL CALL TO RET2:
; 200 ; AT MVST: TO TAKE CARE OF EXTRA TICK FOR PARITY.
; 201 ;257 MAKE SURE THAT THE UPDATED ONE WORD GLOBAL BYTE POINTER IS
; 202 ; WRITTEN BACK INTO THE CORRECT CONTEXT.
; 203 ;256 MAKE ANOTHER ATTEMPT TO FIX PXCT OF ONE WORD GLOBAL BYTE POINTERS.
; 204 ; THE GIBP CODE GETS THE SAME CHANGES AS EDIT 255.
; 205 ;255 MAKE ONE WORD GLOBAL BYTE POINTERS WORK WITH PXCT. THE STATE
; 206 ; REGISTER BITS ON MCL4 (NOT TO BE CONFUSED WITH CON3), WERE NOT
; 207 ; BEING SET PROPERLY TO ALLOW PREVIOUS ENA AND USER ENA TO BE SET.
; 208 ; GUARANTEE THAT THESE SR BITS ARE SET PRIOR TO THE LOAD OF THE VMA.
; 209 ;254 FIX PROBLEM WITH OWGBP WHERE FPD DOES NOT EFFECT
; 210 ; INC OF POINTER AFTER PAGE FAIL
; 211 ;253 FIXED ADDRESSING FOR SH DISP AT GADJL0:
; 212 ;252 MOVE STRING INSTRUCTIONS DO NOT GET THE CORRECT DATA ON
; 213 ; LOCAL POINTERS IN NON 0 SECTIONS
; 214 ;251 ADD CODE FOR ONE WORD GLOBAL BYTE POINTERS.
; 215 ; TOOK OUT EDITS 243 AND 250 TO GET ENOUGH SPACE IN CRAM
; 216 ; FOR THIS EDIT. OWGBP WITH EXTEND INSTRUCTIONS WILL NOT
; 217 ; RETURN A OWGBP. THEY WILL RETURN A TWO WORD GLOBAL BP.
; 218 ;250 ALLOW SMP SWITCH TO EFFECT TOPS-20 MODEL B TO DO RPW IN
; 219 ; BYTE INSTRUCTIONS.
; 220 ;247 DO NOT DO A CST UPDATE OR AGE UPDATE IF THE CBR IS ZERO.
; 221 ;246 EXTEND OP CODE DECODE FOR MODEL A WAS ACCEPTING MODEL B
; 222 ; OP CODES (20-31). ADDED CONDITIONALS TO CODE TO FIX.
; 223 ;245 FIX 2 WORD GLOBAL BYTE POINTER BUG WITH IBP INSTRUCTION
; 224 ; WITH EXTENDED ADDRESSING OUT OF SECTION 0
; 225 ;244 FIX MOVST EXTEND INST. SO THAT ILLEGAL (> 36) S FIELD
; 226 ; DOES NOT CAUSE STOP CODE TO CRASH SYSTEM FOR TOPS-10 MODEL B.
; 227 ;243 WRTIME TRIED TO DO MEM WRITE EVEN THOUGH THE INSTRUCTION
; 228 ; DOES NOT DO ANYTHING TO MEMORY. CAUSED PROBLEMS IF THE MEMORY
; 229 ; LOCATION WAS NOT WRITABLE.
; 230 ;242 FIX CODE FROM EDIT 234 TO GET PF CODE OF 24.
; 231 ;241 FIX DFAD AND DFMP FOR ROUNDING OCCURS PROPERLY. ADDED STICKY
; 232 ; BIT FOR LEAST SIGNIFICANT BITS OF THE RESULT.
; 233 ;240 FIX GFLT INSTRUCTIONS GFIX AND DGFIX SO THEY WILL TRUNCATE NEGATIVE
; 234 ; NUMBERS IN THE CORRECT DIRECTION. THE MQ MUST BE ZERO BEFORE
; 235 ; THE ARX_2 MACRO IS INVOKED OR THE ARX MIGHT GET A 3 FROM MQ00.
; 236 ;237 ADD OPTION BIT FOR PV CPU IN THE APRID WORD AS IT IS DOCUMENTED
; 237 ; IN ALL OF THE HARDWARE DOCUMENTATION. SET THE BIT ACCORDING
; 238 ; TO THE MODEL.B OPTION SWITCH. IT WILL BE MAGIC NUMBER BIT 3.
; 239 ;236 ALLOW THE INTEGER DIVIDE OF THE LARGEST NEGATIVE NUMBER BY
; 240 ; PLUS ONE TO SUCCEED. THIS USED TO BE A DOCUMENTED RESTRICTION
; 241 ; THAT THIS OPERATION WOULD CAUSE AN OVERFLOW AND NO DIVIDE.
; 242 ;235 FIX JRA SO IT DOESN'T FALL INTO SECTION ZERO FROM A NON-ZERO
; 243 ; SECTION EVERY TIME BY WRITING THE PC SECTION INTO THE VMAX.
; 244 ;234 BUILD A PAGE FAIL CODE OF 24 WHEN AN ILLEGAL INDIRECT WORD
; 245 ; IS FOUND DURING THE EFFECTIVE ADDRESS CALCULATION IN
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-4
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 246 ; A NON-ZERO SECTION. THE PAGE FAIL CODE WAS PREVIOUSLY NOT
; 247 ; BEING REPORTED.
; 248 ;233 SAVE THE IOP FUNCTION WORD THAT APPEARS ON THE EBUS WHEN AN
; 249 ; EXTERNAL DEVICE INTERRUPTS THE CPU. SAVE THIS INFORMATION
; 250 ; ON EVERY INTERRUPT IN AC BLOCK 7, AC 3. THE CONTENTS
; 251 ; OF THIS AC WILL BE PRESERVED UNTIL THE NEXT INTERRUPT.
; 252 ; OPERATING SYSTEMS SHOULD SAVE THIS INFORMATION AS SOON AS POSSIBLE
; 253 ; IF ITS CONTENTS ARE TO BE RELIABLE AND MEANINGFUL.
; 254 ;232 ADDS 13 NEW INSRUCTIONS FOR SUPPORTING FORTRAN78 ON MODEL
; 255 ; B MACHINES. THESE INSTRUCTIONS ARE:
; 256 ; OPCODE SYMBOL
; 257 ; ====== ======
; 258 ; 102 GFAD AC,E
; 259 ; 103 GFSB AC,E
; 260 ; 106 GFMP AC,E
; 261 ; 107 GFDV AC,E
; 262 ; EXTEND INSTRUCTIONS EXTEND OPCODE
; 263 ; ====== ============ ====== ======
; 264 ; EXTEND AC,[GSNGL 0,E] 21
; 265 ; EXTEND AC,[GDBLE 0,E] 22
; 266 ; EXTEND AC,[DGFIX 0,E] 23
; 267 ; EXTEND AC,[GFIX 0,E] 24
; 268 ; EXTEND AC,[DGFIXR 0,E] 25
; 269 ; EXTEND AC,[GFIXR 0,E] 26
; 270 ; EXTEND AC,[DGFLTR 0,E] 27
; 271 ; EXTEND AC,[GFLTR 0,E] 30
; 272 ; EXTEND AC,[GFSC 0,E] 31
; 273 ;231 FIX IN PROBLEM IN EDIT 215 TO XDPB THAT PREVENTED THE KL
; 274 ; FROM HANDLING INTERRUPTS WHILE EVALUTAING AN INDEXED INDIRECT CHAIN.
; 275 ; AN "=0" WAS MISSING BY BYTEIP.
; 276 ;230 TO PRESERVE COMPATABILITY WITH THE KS10 AND BECAUSE OF SPACE
; 277 ; LIMITATIONS IN TOPS20 MODEL A, THE SPECIFICATION FOR THE
; 278 ; CVTDBX INSTRUCTIONS HAVE BEEN CHANGED TO ELIMINATE THE NEED
; 279 ; FOR AN OVERFLOW TEST DURING THE CONVERSION. THIS CHANGE
; 280 ; EFFECTIVELY REMOVES EDIT 221.
; 281 ;227 DELETE EDIT 222 AND RETURN THE CVTBDX INSTRUCTIONS TO THEIR
; 282 ; OLD, BROKEN FUNCTIONALITY SINCE ANY ATTEMPT TO PREVENT THE
; 283 ; FLAGS FROM BEING CHANGED PREMATURELY HAS TO CONTEND WITH
; 284 ; INTERRUPTABILITY PROBLEMS. THE HARDWARE REFERENCE MANUAL
; 285 ; HAS A FOOTNOTE ABOUT THE FLAG PROBLEM SO THE CURRENT FUNCTIONALITY
; 286 ; IS DOCUMENTED FOR USERS.
; 287 ;226 PREVENT AR PARITY ERRORS WHEN INCREMENTING BYTE POINTERS IN THE ACS.
; 288 ;225 THE CODE TO SUPPORT THE MX20 VIA THE SBUS DIAG LOOP MECHANISM
; 289 ; DOES NOT TIME OUT CORRECTLY BECAUSE THE LOOP COUNTER IS BEING
; 290 ; REINITIALIZED EVERY TIME THROUGH THE LOOP. FIX THIS PROBLEM
; 291 ; EVEN THOUGH THE CODE IS NOT ASSEMBLED IN CURRENT RELEASES.
; 292 ;224 FIX BUG IN EDIT 223 THAT CAUSED THE WRONG PAGE FAIL
; 293 ; WORD TO BE WRITTEN WHEN AN I/O PAGE FAIL OCCURS.
; 294 ;223 WHEN A MEMORY PARITY ERROR OCCURRS AT PI LEVEL, AS EVIDENCED
; 295 ; BY AN AR DATA PARITY ERROR, THE DTE MAY BE WAITING FOR A
; 296 ; RESPONSE. IF IT IS, A DEX FAILURE WILL OCCUR UNLESS WE CAUSE
; 297 ; DEMAND TO WIGGLE. WE CAN DO THIS BY FORCING THE DATA IN THE
; 298 ; AR OVER THE EBUS.
; 299 ;222 CVTBDX IS NOT SUPPOSED TO CHANGE THE CONTENTS OF THE ACS
; 300 ; OR MEMORY IF THE CONVERTED NUMBER WILL NOT FIT INTO THE
; 301 ; DESTINATION FIELD. IT WAS, HOWEVER, CHANGING THE FLAGS
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-5
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 302 ; BEFORE IT KNEW IF THE NUMBER WOULD FIT.
; 303 ;221 THE CVTDBX WERE FAILING TO SET OV AND TRAP1 WHEN THE
; 304 ; CONVERTED DECIMAL NUMBER WOULD NOT FIT INTO A
; 305 ; DOUBLE WORD.
; 306 ;220 THE TRANSLATE INSTRUCTIONS WERE USING A 15 BIT WIDE
; 307 ; FIELD FOR THE REPLACEMENT BYTE IN THE TRANSLATE TABLE
; 308 ; WHILE THE SPECIFICATION STATED THAT THE TRANSLATE
; 309 ; INSTRUCTIONS WOULD USE ONLY 12 BITS.
; 310 ;217 PREVENT CRAM PARITY ERRORS CAUSED BY DISPATCHING TO LOCATION
; 311 ; 3042 WHEN INDEXING IS SPECIFIED IN THE EFFECTIVE ADDDRESS
; 312 ; CALCULATION OF E1 WHEN THE EXTEDED OPCODE IS ZERO (ILLEGAL).
; 313 ; THE FIX IS TO PUT A JUMP TO UUO AT 3042.
; 314 ;216 CHANGE THE DEFAULT VALUE FOR THE SMP SWITCH TO BE ONE. THIS
; 315 ; CAUSES THE MICROCODE TO INCLUDE SMP SUPPORT BY DEFAULT.
; 316 ;215 CHANGES DPB INSTRUCTION TO R-P-W CYCLE ON DATA FETCH PORTION OF
; 317 ; INSTRUCTION TO SOLVE AN INTERACTION PROBLEM IN AN SMP OPERATING
; 318 ; SYSTEM. THIS CHANGE ONLY APPLIES TO MICROCODES FOR TOPS-10
; 319 ; AND TOPS-20, MODEL A.
; 320 ;214 ADDED CHANGES FOR XADR, RELEASE 4 AS FOLLOWS.
; 321 ; STORE PREVIOUS CONTEXT SECTION (PCS) IN FLAGS WORD (BITS 31-35)
; 322 ; IF EXEC MODE AND XSFM OR XPCW INSTRUCTION,MUUO OR PAGE FAIL.
; 323 ; RESTORE PCS FROM FLAGS WORDS (BITS 31-35) WHEN XJRSTF OR XJEN
; 324 ; IS EXECUTED IN EXEC MODE AND THE NEW PC IS ALSO IN EXEC MODE.
; 325 ;213 SET/FPLONG=0 PARAMETER ADDED TO TOPS-10 MICROCODE FOR KL MODEL
; 326 ; A AND MODEL B.
; 327 ;212 CHANGE THE CODE AT LDIND: TO TEST FOR USER MODE IF USER MODE
; 328 ; TURN OFF SPECIAL CYCLE THAT MAY STILL BE ON. THE MICROCODE WILL DEPEND
; 329 ; ON KERNAL PROGRAMS TO NOT GET IN PAGE POINTER
; 330 ; LOOPS. INSTRUCTIONS EXECUTED FROM THE CONSOLE WILL NOT WORK.
; 331 ; PI INSTRUCTIONS GET A RESTRICTION TO NOT GET INDIRECT PAGE POINTERS
; 332 ; IN THEIR PAGING CHAIN AS DO EXAMINES AND DEPOSITS AND BYTE TRANSFERS.
; 333 ;211 CHANGE THE TEST FOR INDIRECT POINTERS TO NOT HAPPEN ON SECTION
; 334 ; POINTERS AND JUST ON INDIRECT PAGE POINTERS. AT LDIND:+1 AND LDIMM:+2
; 335 ;210 MAKE ALL AC+# MICROINSTRUCTIONS HAVE THE # FIELD THE SAME IN THE
; 336 ; PREVIOUS MICROINSTRUCTION TO SOLVE A TIMONG GLITCH IN THE HARDWARE.
; 337 ; MAKE EXCHANG MARK AND DESTINATION POINTERS UUO IF THEY DO NOT
; 338 ; HAVE BYTE POINTERS OF EQUAL LENGTH. CHANGES PERVASIVE IN EIS ALSO IN PF
; 339 ; RECOVERY IN IO.
; 340 ; MAKE THE LOAD OF AN INDIRECT POINTER CLEAR PI CYCLE IF SET.
; 341 ; THIS MEANS THAT THE MONITOR CANNOT USE KERNAL CYCLE, INSTR ABORT
; 342 ; INH PC+1 OR HALT IN A PI CYCLE IF AN INDIRECT POINTER CAN
; 343 ; BE A PART OF THE REFILL. ALSO NOTE THE POSSIBILITY OF GETTING AN
; 344 ; INTERUPT BEFOR THE PI INSTRUCTION COMPLETES. (NEVER CONTINUES PI
; 345 ; INSTRUCTION) CHANGES AT LDIND.
; 346 ;207 CHANGE SBUS DIAG CODE FOR MOS PUT IT IN MOS CONDITIONAL /MOS=1
; 347 ; IF ON SBUS DIAG TRIES AT LEAST 8 TIMES TO GET A RESPONSE
; 348 ; OTHER THAN -1 IF IT GOT -1 ALL THOSE TIMES THE MICROCODE
; 349 ; GIVES UP AND RETURNS 0
; 350 ;206 FINAL FIXES TO PUSHM AND POPM
; 351 ;205 FIX BUG IN INDEX CALCULATION OF E1 FOR EXTENDED ADDRESSING.
; 352 ; INDEXING REQUIRED THAT AN AREAD BE PERFORMED IN ORDER TO LOAD
; 353 ; THE AR WITH A CORRECT FINAL RESULT. THE EFFECTIVE ADDRESS CALCULATION
; 354 ; AROUND EXTLA: GOT A NEW MACRO ADDED FOR INDEXING THAT DOES THE AREAD.
; 355 ; ABSOLUTE LOCATIONS IN THE RANGE 3040 GET USED AS TARGETS FOR THIS
; 356 ; AREAD THEN THE CODE REJOINS THE OLD CODE AT EXT2:
; 357 ; THE AREAD WAS NECESSARY FOR THE HARDWARE MAGIC TO LOAD PARTS OF THE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-6
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 358 ; AR DEPENDING ON THE INDEX REGISTER AND OTHER EXTENDED ADRESSING
; 359 ; PARAMETERS.
; 360 ;204 ADD AUTOMATIC VERSION NUMBER
; 361 ; ADD CODE TO DO SBUS DIAG TESTING REQUIRED BY MOS
; 362 ;203 PUT THE BLKO PAG, CHANGE IN 201 IN A KLPAGING CONDITIONAL
; 363 ; KIPAGING GETS TANGLED IN AR PARITY ERRORS AND IN GENERAL DOES
; 364 ; THE WRONG THINGS
; 365 ;202 TURN OFF IMULI OPTIMIZATION IT GETS THE SIGN BIT AND THE OVERFLOW
; 366 ; FOULED UP (TURNED OFF FOR MODEL B ONLY WAS OFF IN MODEL A)
; 367 ;201 CHANGE BLKO PAG, TO INVALIDATE ONLY ONE ENTRY BY CLEARING IT
; 368 ; CHANGES AT PAGBO PAGBO+1 AND CLRPT+3 CLRPT+3 GETS SETUP THAT USED
; 369 ; TO BE AT PAGBO+1, PAGBO+1 NOW CLEARS ENTRY AND QUITS
; 370 ; KLPAGE ERROR CHECK FOR TOPS 10 MODEL A TO CAUSE ERROR
; 371 ; IF SWITCH SETTINGS ARE IN CONFLICT DIDDLED
; 372 ;200 CHANGE ALL EXEC REF TRACKS FEATURES BACK TO PHYS REF
; 373 ; ON SUSPICION THAT PAGE FAULTS ARE NOT HANDLED PROPERLY
; 374 ; MAKE NON TRACKS INSTR STAT FEATURES GET FOUR PHYSICAL
; 375 ; PAGE NUMBERS FROM FIRST FOUR LOCATIONS IN THE PAGE PRESENTED
; 376 ; IN THE DATAO PI, THE CODE ALSO USES THAT PAGE FIRST
; 377 ; LOCATION TO PUT THE INITIAL JUNK INTO ON STARTUP
; 378 ;177 FIX SOME BUGS IN OPCODE TIMING CODE AT OPTM0: AND BEYOND
; 379 ;176 ADD TO THE TIME COUNTING CODE CODE THAT COUNTS FREQUENCY
; 380 ; OF EACH OPCODE IN PAGE+2 AND PAGE+3
; 381 ;175 FIX TIME COUNTING CODE TO ACOUNT FOR EACH OPCODE IN THE
; 382 ; USER OR EXEC MODE IT WAS SEEN IN, EDGE COUNTS WERE DONE IN
; 383 ; WRONG MODE CHANGES UNDER OP.TIME CONDITONALS (PERVASIVE)
; 384 ;174 CHANGE TRACKS AND TIME COUNTING TO USE EXEC VIRTUAL SPACE
; 385 ; INSTEAD OF PHYSICAL SPACE
; 386 ;173 SEPERATE OUT THE DISMISS AT 626: BECAUSE OF SUSPECTED BUG
; 387 ;172 THE FACT THAT XJEN DISMISSES BEFORE READING NEW PC WORDS CAUSES
; 388 ; A PROBLEM FOR TOPS 20. REHASH THE CODE AT 600: TO 637: TO MAKE
; 389 ; XJEN READ THE TWO WORDS FIRST AND THEN DISMISS.
; 390 ;171 CAUSE IO PAGE FAIL FIX IN 170 TO SHIFT AT END GETTING CORRECT
; 391 ; PAGE FAIL WORD CHANGE AT IOPGF:
; 392 ;170 MAKE CLRFPD: GO DIRECT TO FINI: INSTEAD OF THROUGH NOP: THIS WAS
; 393 ; COSTING 2 TICS IN BYTE INSTRUCTIONS
; 394 ; CHANGE IO PAGE FAIL TO SAVE A VIRTUAL ADDRESS IN THE AC BLOCK 7
; 395 ; LOCATION 2 INSTEAD OF THE DATA THAT WAS ON THE EBUS CHANGES AT
; 396 ; PGF4:+1 AND IOPGF:
; 397 ;167 CHANGE DEFAULT ON ADB MIXER SELECTS. NO DEFAULT NOW SUBFIELD U23
; 398 ; IS DEFAULTED TO 1 TO AVOID SELECTING FM AND NEEDING TO WAIT FOR PARITY.
; 399 ; THIS LEAVES THE OTHER BIT OF THE FIELD AVAILABLE FOR PARITY
; 400 ; EPT MOVED TO 540 USING SWITCH IN KLX,KLL (KLA,KLB NOW DEFUNCT)
; 401 ;166 CHANGE FIELD DEFINITION FORMAT CHANGE THE WAY THE OPTIONS FIELD
; 402 ; GETS ITS VALUES ASSIGNED. EACH BIT GETS A FIELD DEFINITION.
; 403 ;165 BUG IN 161 TO 164 WAS MISSING AC0 AT POP2: PARITY BIT WAS PUT THERE
; 404 ; IN THE NEWER MICROCODES
; 405 ; INSTALL MANY THINGS TO MAKE WORD STRING MOVES WORK START AT
; 406 ; MOVWD1 AND UNTILL BMVWD1 ALSO ASSORTED MACROS ARE ADDED
; 407 ; THESE ARE INSTALLED IN A SEPERATED EIS FILE (WDEIS) FOR THE MOST PART
; 408 ; THERE ARE SOME NEW MACROS AND THE CLEAN+17 LOCATION IS USED FOR
; 409 ; THIS CASE UNDER MODEL B CONDITIONAL INTERRUPTS DO NOT WORK YET
; 410 ; IN THIS CODE BUT ALL DATA TRANSFERS ARE CORRECT. INTERRUPTS ARE
; 411 ; TAKEN SO SUSPECT THE PROBLEM IS IN THE CLEANUP CODE.
; 412 ;164 LEAVE IN ONLY MAP FIX
; 413 ;163 TAKE OUT MAP FIX LEAVING XHLLI IN AND JRSTF IN
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-7
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 414 ;162 PUT XHLLI BACK IN TAKE OUT JRSTF ONLY IN SEC 0 CODE
; 415 ;161 XHLLI OUT TO DEBUG ADD RSTF0: TO MAKE TEST FOR JRSTF IN NON
; 416 ; 0 SECTIONS TEST IN ALL CASES
; 417 ;157 INSTALL XHLLI MAKE JRSTF UUO ON NON ZERO SECTIONS
; 418 ; ALSO MAKE MAP DOING A REFILL PAGE FAIL RIGHT THIS MEANS THAT AFTER
; 419 ; CLEAN IT CANNOT DO ANYTHING INTERESTING IF AN INTERRUPT IS PENDING
; 420 ; CHANGES AT MAP2:
; 421 ;156 REINSERT A SKP INTRPT IN THE PAGE FAULT HANDLER TO HAVE INDIRECT
; 422 ; POINTER CHAINS INTERRUPTABLE. AT PGRF6:+6
; 423 ;155 ABORTIVE MAP FIX FIX REMOVED PROBLEM MUST BE FIXED IN HARDWARE.
; 424 ;154 ADD TESTS FOR AC'S IN PHYSICAL REFERENCES FOR EXAMINES AND DEPOSITS
; 425 ; PHYS REFS GO TO MEMORY, NOT AC'S AFTER PROBLEM SHEET 1675
; 426 ; CHANGES AT PILD+3 PIFET+2 PSTOR PHYS1 PHYS2 PHYS3
; 427 ; ADD CHANGES IN TRACKS TO MAKE MODEL A WORK AT TRK2+2 AND +3
; 428 ;153 ADD SPECIAL CODE FOR PXCT OF BLT THIS HOPEFULLY CAN GO AWAY
; 429 ; WHEN THE EXTENDED ADDRESSING MONITOR DOES NOT USE PXCT ANYMORE
; 430 ; IT IS UNDER .IF/BLT.PXCT CONDITIONAL AND COSTS 12 WORDS
; 431 ;152 CHANGE WHAT BLT DOES TO MATCH THE SPEC SR_BLT(XXX) IS CHANGED TO
; 432 ; NOT FORCE GLOBAL ADDRESSING THE LOAD VMA(EA)_ARX+BR AND
; 433 ; STORE VMA(EA)_ARX MACROS ARE ADDED TO FORCE THE GLOBAL/LOCAL PARAMETERS
; 434 ; TO BE THE SAME AS THOSE OF THE EFFECTIVE ADDRESS
; 435 ;151 PUT THE EPT AND UPT AT 540 UNDER SWITCH CONTROL .IF/EPT540
; 436 ;150 VERSION NUMBER BACKED UP TO PRESERVE SPACE IN VERSION NUMBER FIELD
; 437 ;304 EXTEND 0 WOULD GET A JUMP TO AN UNUSED MICROLOCATION IN MODEL.B
; 438 ; ONLY THIS WAS BECAUSE LOCATION 2002: IN MODEL.A SHOULD BE AT 3002:
; 439 ; IN MODEL.B 3002: AND 3003: PUT IN WHERE 2002: AND 2003: ARE UNDER
; 440 ; CONDITIONALS.
; 441 ;303 CHANGE THE NUMBER FIELD OF THE SR_BLT(XXX) MACROS TO GIVE THE
; 442 ; BIT 0 OFF ALL THE TIME. THIS GIVES BLT MORE THE FORM OF THE OTHER
; 443 ; EXTENDED ADDRESSING STUFF IN HOW IT REFERS TO THE SHADOW AC'S.
; 444 ; IT IS STILL BELIEVED TO BE BROKEN BUT IS BETTER THAN IT WAS.
; 445 ;302 ADD LONGER ADDRESS CONSTRAINTS FOR THE NEW MICROASSEMBLER. EVERY
; 446 ; LOCATION THAT THE DISPATCH RAM CAN JUMP TO IS EFFECTED. THE
; 447 ; CONSTRAINTS THATUSED TO LOOK LIKE =00**** MUST NOW LOOK LIKE
; 448 ; =0****00**** THIS IS BECAUSE THE MODEL B MACHINE CAN AND DID
; 449 ; REALLY SET THAT BIT. THE CHANGE MAKES THE MICROCODE INCOMPATIBLE
; 450 ; WITH THE OLD ASSEMBLER.
; 451 ;301 HALT IS CLEARING THE RUN FLOP WITH HARDWARE MUST CHECK FOR
; 452 ; KERNAL MODE BEFOR THE HALT MACRO SO USER IOT MODE WILL
; 453 ; NOT BE ABLE TO HALT. THIS TAKES ONE MICROWORD AT 1017:
; 454 ; THE SENSE OF THE SKIP IS REVERSED AGAIN SO 1016: IS BACK TO
; 455 ; BEING THE UUO AND CHALT: IS NOW A SEPERATE WORD AFTER 1017:.
; 456 ;300 REPLACE HALT CODE AGAIN BUT THIS TIME GET THE SENSE OF THE
; 457 ; SKIP RIGHT BY SWAPPING THE CONTENTS OF LOCATIONS 1016: AND 1017:
; 458 ; PUT THE 1: ADDRESS CONSTRAINT ON CONT:.
; 459 ;277 PUT HALT BACK THE WAY IT WAS SKP USER HAS THE INVERSE SKIP SENSE
; 460 ; AND HENCE DOES THE WRONG THING. HALT TO BE FIXED LATER.
; 461 ;276 YET ANOTHER TRY AT THE BLKO PROBLEM BLK1: SHOULD HAVE HAD A
; 462 ; J/BLK2.
; 463 ;275 THE LONG PC CHANGES HAD XSFM1: BEFOR THE ADDRESS CONSTRAINT THUS
; 464 ; GIVEING THE WRONG ADDRESS. THE =0 IS PUT BEFOR THE LABEL.
; 465 ;274 FIX THE DIAG.INST CONDITIONALS TO BEHAVE PROPERLY WITH THE
; 466 ; CONSTRAINTS OF DRAM LOCATIONS MAP DIED BECAUSE IT NEVER WAS
; 467 ; REACHED OUT OF A DISPATCH.
; 468 ;273 INSERT THE DIAG.INST FEATURE FOR THE DIAGNOSTICS PEOPLE.
; 469 ; CHANGES AT DCODE 104:, 106: AND AT XCT: SHOULD NOT EFFECT OTHER
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-8
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 470 ; ASSEMBLIES.
; 471 ;272 THE FIX TO THE GARBAGE IN THE LEFT HALF OF VMA IN 265 FORGOT TO
; 472 ; LOAD THE VMA IN BLK3:+1 PUT THAT IN. ALSO ON JUD'S RECOMENDATION
; 473 ; PUT A COPY OF THE NOP MICROINSTRUCTION AFTER CLRFPD: TO MAKE
; 474 ; ENOUGH TIME IN THE SKIP CASE. IT SEEMED TO WORK WITHOUT THIS
; 475 ; AND IF SPACE GETS TIGHT IT SOULD BE REMOVED.
; 476 ;271 FIX IN 267 PGF4:+4 DOES NOT WORK, CANNOT PUT VMA_# THERE. POSSIBLY BECAUSE
; 477 ; VMA_# CONFLICTS IN SOME ESOTERIC WAY WITH STORE? THAT CHANGE
; 478 ; IS TAKEN OUT AND AT PGF1 THE VMA IS GIVEN 500 OR 501. THIS IS SLIGHTLY
; 479 ; LESS DESIREABLE AND FURTHER EFFORT COULD BE SPENT IN THE UCODE TO
; 480 ; MAKE PAGE FAILS LESS UNWEILDY FOR THE SOFTWARE ROUTINE THAT CONVERTS
; 481 ; THEM TO MODEL B FORM.
; 482 ;270 CHANGE HALT TO CHECK FOR USER MODE INSTEAD OF IO LEGAL. A JOB
; 483 ; IN USER IOT SHOULD NOT BE ABLE TO HALT THE MACHINE.
; 484 ;267 ADD NEW CONDITIONAL SHIFT.MUUO TO PROVIDE THE SHIFTED DOWN MUUO
; 485 ; DATA BLOCKS MORE SIMILAR TO THE XADDR TYPES. CONDITIONAL IS USED
; 486 ; AT 1003: AND PGF4:+4 TO PROVIDE A DIFFERENT STARTING ADDRESS.
; 487 ;266 FIX PILD+3 TO LOAD THE VMA AT THE SAME TIME THUS ENABLING
; 488 ; THE MODEL HACK FIX TO LOAD THE LONG VMA.
; 489 ;265 HAIR UP THE ALREADY HAIRY BLKXX CODE TO CLOBBER THE LEFT HALF OF AR
; 490 ; BEFOR USING IT AS AN ADDRESS. CLOBBERED ARL AT BLK2 AND LOADED
; 491 ; VMA AT BLK3.
; 492 ;264 ADD J/CLRFPD AT BFIN TO MAKE IT THE SAME AS IT WAS. BFIN GOT
; 493 ; MOVED TO A DIFFERENT PLACE IN THE LAST EDIT AND THIS J FIELD
; 494 ; WAS NOT FIXED.
; 495 ;263 ADD THE MIT FIXES. IOTEND AND THE BLK1 TO BLK4 GROUP ARE CHANGED
; 496 ; EXTENSIVELY. CLRFPD IS PUT JUST BEFORE FINI CONSTRAINT ON IOFET
; 497 ; IS CHANGED.
; 498 ; ADD THE LONG PC FORMAT UNDER A NEW CONDITIONAL LONG.PC THE
; 499 ; CONDITIONAL IS TURNED ON BY XADDR. CONDITIONALS ARE ADDED TO THE
; 500 ; LONG PC CODE TO MAKE IT SMALLER WHEN ONLY SECTION 0 IS POSSIBLE.
; 501 ; ADD COMMENTS TO THE MICROCODE OPTIONS FIELD.
; 502 ; RESTORE SXCT CODE FROM VERSION 131. TO BE USED ONLY IN MODEL A
; 503 ; NON KLPAGING CODE.
; 504 ;262 PUT WORD AT INDR1+1 UNDER SXCT CONDITIONAL SO WHEN SXCT IS OFF WE
; 505 ; GET AN ADDITIONAL SAVINGS OF ONE WORD.
; 506 ;261 ADD PHYS REFS AT PGRF6+4 AND PIDISP+4 TO MAKE MODEL.A LOAD A LONG
; 507 ; VMA. PART OF THIS CODE IS NOT UNDER CONDITIONAL BECAUSE IT SHOULD NOT MATTER
; 508 ; TO A MODEL.B MACHINE. PIDISP+4 ALSO GETS THE LOAD OF THE SAME DATA
; 509 ; REPEATED SO THE PHYS REF HAS SOMETHING TO WORK ON.
; 510 ; FLUSH THE NOW USELESS CODE AT CHALT TO GENERATE THE LD AR.PHYS
; 511 ; CONSTANTS.
; 512 ; CURRENTLY THERE IS SORT OF A BUG IN THAT THE SBR AND THE CBR
; 513 ; CAN NOT BE ABOVE 256K IN A MODEL.A MACHINE. THIS DOES NOT BOTHER
; 514 ; THE CURRENT MONITORS AT ALL IN THAT THESE TABLES ARE IN VERY LOW CORE.
; 515 ; IF THAT CHANGES THE LOCATIONS SECIMM+3 SECIMM+7, LDIND, PGRF5, LDSHR
; 516 ; AND LDPT1+1 MUST ALL GET FIXED UP. THE GENERAL FIX IS TO GET A PHYS REF
; 517 ; IN THE MICROINSTRUCTION THAT LOADS THE VMA. THIS CAN BE DONE BY
; 518 ; POSTPONING THE LOAD OF THE VMA ONE MICROINSTRUCTION IN ALL OF THESE
; 519 ; PLACES, BUT, SINCE THAT CAUSES A PERFORMANCE DEGRADATION IT WAS NOT
; 520 ; DONE.
; 521 ;260 DIVERGANT CHANGES TO MAKE KLPAGING PHYS REFS THE OLD WAY
; 522 ; CAUSE ALL CASES OF VMA_XXX+LD AR.PHYS TO GO BACK TO THE
; 523 ; OLD PHYS REF WAY
; 524 ;257 IN MODEL B MACHINES AT LDPT+1 THE VMA IS GETTING GARBAGE IN THE
; 525 ; LEFT HALF BECAUSE IT ADDED IN JUNK THAT WAS IN AR LEFT. FIX IS TO
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-9
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 526 ; CLEAR ARL AFTER LDPT AND TO DO THE SHUFFLE PERFORMED THERE ONE
; 527 ; MICROINSTRUCTION LATER.
; 528 ;****** A HACK FIX IS USED HERE THAT TAKES TWO WORDS. THIS WAS DONE BECAUSE
; 529 ; OF EXTREEM TIME PRESSURE TO DEBUG >256K MODEL B. THERE OUGHT TO BE
; 530 ; A WAY TO REDUCE THIS FIX TO ONLY ONE WORD IN SPACE AND TIME, OR
; 531 ; EVEN LESS.
; 532 ;256 EDIT JUMPED TO RANDOMNESS WITH AN EXTRA RETURN. THIS HAPPENED
; 533 ; BECAUSE THERE WAS NO CALL AT EDSFLT IN THE MODEL B NON XADDR CODE
; 534 ; ADDED CALL TO EDSFLT.
; 535 ;255 SAVE EDIT FROM GETTING AN EXTRA STORE CYCLE AT EDSSIG BY SENDING
; 536 ; IT ALWAYS TO THE EDFLT1 LOCATION INSTEAD OF EDFLT THIS ONLY
; 537 ; CHANGES WHAT HAPPENS IN MODEL B NON XADDR BECAUSE IN MODEL A
; 538 ; EDFLT AND EDFLT1 ARE THE SAME LOCATION ANYWAY
; 539 ;254 CAUSE THE A INDRCT CHANGE IN 253 TO BE ONLY FOR NON EXTENDED
; 540 ; ADDRESSING MACHINES. THIS THROWS DOUBT ON THE WORD SAVINGS
; 541 ; THAT MIGHT HAVE BEEN POSSIBLE
; 542 ;253 CHANGE A INDRCT TO LOAD BOTH THE AR AND ARX, IN THE EXTENDED
; 543 ; INSTRUCTION SET THIS HAPPENED TO BE DEPENDED ON AT EXT2+2 AND
; 544 ; EXT2+3. THE DEFINITION OF A IND IN EA CALC/ WAS FIXED TO
; 545 ; LOAD THE AR AND THE ARX
; 546 ; I THINK THIS PERMITS THE SAVINGS OF AN EXTRA WORD AND SOME
; 547 ; TIME ON ALL INDIRECTS. CHECK OUT FLUSHING INDR1 AND MAKING INDRCT
; 548 ; DO THE DISPATCH AND GO TO COMPEA
; 549 ; FORCE ADB TO GENERATE AR*4 AS DEFAULT THIS DISABLES PARITY
; 550 ; CHECKING ON THE FM WHEN IT IS NOT BEING READ FIXED IN
; 551 ; DEFINITION OF ADB THIS WILL ALSO SPEED UP THE MACHINE BY SOME
; 552 ; BECAUSE THE ADB FIELD CAN NO LONGER FORCE 3 TICS WITHOUT REALLY
; 553 ; NEEDING THAT LONG
; 554 ;252 SAVE A WORD AT IOPGF+1 BY MAKING IT PILD+3 THIS ADDS THE SET
; 555 ; ACCOUNT ENABLE TO AN UNDEFINED CASE.
; 556 ;251 TURNING ON PAGING CAUSED A HANG THIS WAS BECAUSE OF A MISIMPLIMENTED
; 557 ; FIX IN 250. THE ATTEMPT TO PUT THAT FIX IN NO SPACE FAILED AND IT TOOK
; 558 ; ONE WORD. AT LDPT+1 ADD BR/AR AT GTCST1 RECOVER THE AR FROM THE BR
; 559 ; THIS SEEMS LIKE IT SHOULD BE ABLE TO BE BUMMED BUT I CANNOT
; 560 ; FIGURE OUT HOW
; 561 ; ALSO FIX A PLACE WHERE A PHYS REF WAS LEFT IN THE MODEL A CODE
; 562 ; AT PGRF6+4 MODEL B CONDITIONAL IS AS IT WAS MODEL A IS NEW TO USE
; 563 ; LD AR.PHYS MECHANISM
; 564 ;250 LOADING HIGH ORDER GARBAGE TO THE VMA WITH THE FIX FOR
; 565 ; >256K CAUSES FUNNY THINGS TO HAPPEN. BITS GET CLOBBERED
; 566 ; WITH AR0-8_SCAD 14 LINES AFTER SECIMM. ACTUALLY IS MORE
; 567 ; HAIR BECAUSE OF CONFLICTING FIELDS. CODE ABOVE AND BELOW
; 568 ; THAT GOT REARRANGED TO SIMPLER MODEL A AND MODEL B CONDITIONALS
; 569 ; SINCE NOW ALL LINES ARE DIFFERENT. SHUFFLING OF FE IS DONE
; 570 ; TO PROVIDE ROOM FOR A CONSTANT ON THE CORRECT SIDE OF THE SCAD
; 571 ; AT LDPT A SIMILAR
; 572 ; RECODING IS NEEDED. 4 LINES OF CODE ARE REDONE IN MODEL
; 573 ; A CONDITIONAL AND CONDITIONALS ARE RESHUFFLED TO HAVE
; 574 ; SIMPLER FORMAT
; 575 ; NEW MACROS ARE ADDED GEN AR0-8, GEN FE AND AR0-8
; 576 ; VMA_AR+LD AR.PHYS AND ITS FRIENDS ARE TAKEN OUT OF KLPAGING
; 577 ; CONDITIONAL THEY ARE USED TO DO EXAMINES AND DEPOSITS NOW
; 578 ;247 FIX ST AR.PHYS TO GIVE BIT 4 INSTEAD OF BIT 5 AT CHALT
; 579 ; AT PSTORE CHECK FOR AC REF AND IF SO WRITE FM MUST DO THIS
; 580 ; BECAUSE LOAD AD FUNC DOES NOT SET MCL STORE AR
; 581 ;246 FIX MUUO, IN EXTENDED ADDRESSING, TO GET NEW PC BEFORE CLOBBERING
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-10
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 582 ; THE USER AND PUBLIC FLAGS THAT TELL WHERE TO GET IT. FIX CONDITIONAL
; 583 ; ASSEMBLY AT INDRCT TO DO EA TYPE DISP IN MODEL A, NOT MODEL B.
; 584 ;245 ADDITIONAL FIXES FOR THE 256K PROBLEM, TO MAKE EXAMINE AND
; 585 ; DEPOSIT WORK. CHANGES AT CHALT TO CREATE CONSTANT "ST AR.PHYS",
; 586 ; AND EXTENSIVELY NEAR PICYC1, PIDATI, AND PIDATO. CHANGES ARE ALL
; 587 ; UNDER MODEL B CONDITIONAL, BECAUSE MODEL B HARDWARE WORKS OK, AND
; 588 ; THE FIX IS REGARDED AS CROCKISH.
; 589 ;244 WAIT FOR COMPLETION OF INDIRECT REFERENCE AT BYTEI+1 AND EXTI+1
; 590 ; EVEN THOUGH INTERRUPT REQUEST HAS BEEN SEEN, SO AS NOT TO CONFUSE MBOX.
; 591 ;243 VARIOUS FIXES TO MAKE THESE SOURCES WITH MODEL.B SWITCH OFF
; 592 ; EQUIVALENT TO MODEL A SOURCES, SO WE CAN DISCARD MODEL A SOURCES
; 593 ; THE FIXES ARE:
; 594 ; 1) SWITCH SNORM.OPT, TO SAVE SPACE IN SINGLE PRECISION
; 595 ; FLOATING NORMALIZATION.
; 596 ; 2) CREATION OF LD AR.PHYS MAGIC CONSTANT, TO SOLVE HARDWARE
; 597 ; PROBLEMS GENERATING ADDRESSES ABOVE 256K.
; 598 ;242 FIX AT SECPTR+1 TO PRESERVE AR LEFT UNTIL WE CAN CHECK
; 599 ; FOR BITS 12-17 NON ZERO CORRECT ADDRESS CONSTRAINTS AT
; 600 ; SECIMM+1 & +2 TO GET BRANCHING RIGHT FOR SHARED AND INDIRECT
; 601 ; SECTION POINTERS. FIX AT LDIMM+1 TO CLEAR LH OF AR BEFORE
; 602 ; LOADING VMA WITH SPT ADDRESS, TO PREVENT PAGE FAULT ON SPT
; 603 ; REFERENCE.
; 604 ;241 MORE FIXES AT START: AND NEWPC:, FOR SAME PROBLEM AS 240.
; 605 ; MUST LOAD FLAGS AND CLEAR VMAX, THEN LOAD VMA INTO PC TO CLEAR
; 606 ; PCX, THEN RELOAD VMA TO GET EFFECT OF NEW FLAGS AND CLEARED
; 607 ; PCX. (MODEL A ONLY).
; 608 ;240 FIXES AT START: AND NEWPC: TO LOAD 23-BIT ADDRESS RATHER
; 609 ; THAN 30-BIT, SINCE OTHER BITS ARE PC FLAGS. AT SAME TIME AND
; 610 ; PLACE, FIX MODEL A CODE TO CLEAR PC SECTION NUMBER.
; 611 ;237 CHANGE CONDITIONALS AROUND PUSH AND POP CODE FROM XADDR TO
; 612 ; MODEL.B. COULD SIMPLIFY IFNOT XADDR.
; 613 ;236 FIX ADDRESS CONSTRAINTS ON USES OF EA MOD DISP IN MODEL
; 614 ; B MACHINE WITH EXTENDED ADDRESSING OFF. PROBLEMS AT COMPEA,
; 615 ; BFETCH, AND EXT2.
; 616 ;235 SLIGHTLY CLEANER FIXES FOR PROBLEMS IN 234 TO AVOID WASTING TIME
; 617 ; AND SPACE. BYTE READ MACRO NEEDS TO SET VMA/LOAD, AND VMA_VMA
; 618 ; HELD MACRO DOESN'T USE MEM FIELD UNLESS MODEL B AND KL PAGING.
; 619 ; ALSO FIX CONDITIONAL ASSEMBLY STUFF TO AVOID SPURIOUS ERRORS.
; 620 ;234 INSTALL FIXES FOR SOME PLACES WHERE MODEL B CODE CAUSES CONFLICT
; 621 ; WITH THE OLD NON KLPAGING NON EXTENDED ADDRESSING CODE
; 622 ; THESE ARE AT BFETCH, PGF3-1, PGF6, EXT1+2
; 623 ;233 FIX THE FOLLOWING PROBLEMS:
; 624 ; KL PAGING SHOULD PRODUCE A PAGE FAILURE WHEN BITS
; 625 ; 12-17 OF A PRIVATE SECTION POINTER ARE NON 0
; 626 ; FIXED AT SECPTR ETC.
; 627 ; EDIT DOES NOT ALLOW INTERUPTS
; 628 ; FIXED AT EDNXT1 AND AFTER THAT
; 629 ; MAP SHOULD NOT BE LEGAL IN USER MODE
; 630 ; FIXED AT MAP2 AND CLEAN+15
; 631 ; MOVMI IS SHORTENED BY MAKING IT THE SAME AS MOVEI
; 632 ; AT DON LEWINES SUGGESTION THIS IS IN DCODE 215
; 633 ;232 MERGE THE SECOND ORDER STATISTICS GATHERING CODE WITH THIS
; 634 ; CODE INTENT IS TO KEEP IT HERE
; 635 ;231 CHANGE THE LOAD CCA DEFINITION TO REFLECT THE NEW HARDWARE
; 636 ; THIS IS ENABLED WHEN THE MODEL.B ASSEMBLY SWITCH IS ON
; 637 ;230 THIS IS THE POINT WHERE MICHAEL NEWMAN TAKES OVER THE MICROCODE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-11
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 638 ; MAINTENCE SEVERAL BUG FIXES GET EDITED INTO 126 AT THIS POINT
; 639 ; TWO SETS OF PARALLEL CODE WILL BE MAINTAINED FOR A WHILE.
; 640 ; FIX THE CMPS PARODY ERROR PROBLEM WHEN ILLEGAL BITS ARE FOUND IN
; 641 ; THE LENGTHS.
; 642 ;227 FIX PIBYTE TO GET DTE# CORRECT ON TO-10 TRANSFERS. FIX MTRREQ
; 643 ; CYCLES TO WAIT FOR STORE TO FINISH BEFORE RE-ENABLING ACCOUNT.
; 644 ; FIX ADJSP OF LONG STACK POINTERS TO FETCH NEXT INSTR.
; 645 ;226 FIX EXMD TO LOAD AR, RATHER THAN ARX, WITH MARK POINTER, AS
; 646 ; EXPECTED BY THE HANDLER. FIX EDIT, SEVERAL PLACES, TO IGNORE
; 647 ; LEFT HALF OF MARK & PATTERN ADDRESSES WHEN PC SECTION IS ZERO.
; 648 ; FIX EDIT TO MAKE EXTENDED REFERENCE FOR PATTERN BYTES.
; 649 ; FIX ADJSP TO BE MEANINGFUL WITH LONG STACK POINTERS
; 650 ;225 FIX BYTEA NOT TO CLOBBER FE ON INDIRECTS, FIX EXMD TO BACK
; 651 ; UP VMA AFTER STORING DSTP2 AND BEFORE STORING DSTP. FIX EDIT TO
; 652 ; COUNT THE WHOLE PATTERN ADDRESS IF PC SECTION NOT ZERO.
; 653 ;224 FIX EXTEND ADDRESS CALCULATION TO RECOVER E0 FROM MQ, AND
; 654 ; FIX EXTEND OPCODE TEST TO DISALLOW OPS >20.
; 655 ; FIXES TO HANDLE NEW ENCODING OF AC-OP ON APR BOARD.
; 656 ;223 COMPLETE 222. P HAS TO GO TO SC AS WELL AS AR0-5. CREATE
; 657 ; SUBROUTINE RESETP TO DO IT. GET CODE IN SYNC WITH HARDWARE AND
; 658 ; MOST RECENT SPEC FOR MEANING OF PXCT AC BITS IN EXTEND. THUS
; 659 ; UNDO COMMENT IN 221: WE SHOULD LOOK AT PXCT B11. ALSO FIX
; 660 ; EXTEND TO USE CORRECT ENCODING OF BITS 9, 11, AND 12 FOR PXCT
; 661 ; OF STRING OPERATIONS. FIX DATAI PAG SO IT DOESN'T LOSE THE
; 662 ; PREVIOUS CONTEXT AC BLOCK WHEN LOADING PREVIOUS SECTION #.
; 663 ; INSERT CHANGE CLAIMED FOR EDIT 55, TO INHIBIT INTERRUPT DURING
; 664 ; PI CYCLES.
; 665 ;222 FIX BYTE POINTER UPDATE ROUTINES GSRC & IDST IN EIS CODE
; 666 ; TO UPDATE P WHEN INCREMENTING SECOND WORD. JUST FORGOT TO. TRY
; 667 ; AGAIN TO CONTROL EIS REFERENCES OFF E0, FOR EXTENDED OR NOT.
; 668 ;221 COMPLETE FIX OF 220, TO KEEP SR CORRECT THROUGH RELOAD OF IR
; 669 ; IN EXTEND DECODING, AND TO CONTROL SR CORRECTLY FOR XBLT DST
; 670 ; REFERENCES. (WE WERE LOOKING AT PXCT B11, SHOULD BE B12).
; 671 ;220 FIXES SEVERAL PLACES TO USE "EA" IN DRAM A FIELD INSTEAD OF "I",
; 672 ; NOTABLY BLT, WHICH WAS USING WRONG SECTION. FIX EXTEND TO
; 673 ; CONTROL VMA EXTENDED BEFORE FETCHING EXTEND-OP, SO AS NOT TO
; 674 ; LOOK "UNDER" THE AC'S. FIX XBLT FOREWARD TO STOP WHEN AC GOES
; 675 ; TO ZERO, NOT -1. ALSO CONTROL SR BEFORE INITIAL STORE TO GET
; 676 ; CORRECT CONTEXT.
; 677 ;217 CODE CHANGES TO MAKE SECOND WORD OF BYTE POINTER WORK RIGHT
; 678 ; WHETHER EFIW OR IFIW, BY CONTROLLING CRY18 OR CRY6.
; 679 ;216 RECODE EXTENDED INSTRUCTION SET DECODING & EFFECTIVE ADDRESS
; 680 ; CALCULATION. FIX UUO CODE TO INCREMENT VMA AFTER STORING PC.
; 681 ; FIX ADJBP TO GET 36 BIT ADDRESS ADJUSTMENT IF B12 SET.
; 682 ;215 REARRANGE CONDITIONAL ASSEMBLY DEFAULTS TO BE MORE LOGICAL
; 683 ; INSERT FORM FEEDS AND COMMENTS TO HELP BEAUTIFY THE LISTING.
; 684 ; REWORK THE NEW JRST'S, TO MAKE THEM SMALLER, FASTER, AND TEST
; 685 ; IO LEGAL BEFORE DISMISSING. PUT IN XBLT.
; 686 ;214 MODIFY ADJBP AND UUO'S FOR EXTENDED ADDRESSING. REWORK PARITY
; 687 ; ERROR HANDLING, IN A FRUITLESS ATTEMPT TO MAKE IT SMALLER,
; 688 ; BUT SUCCESSFULLY MAKING IT CLEARER. FIX ASSEMBLY ERRORS IN EIS
; 689 ; DUE TO AC4 CHANGES, AND ADD CODE TO HANDLE LONG BYTE POINTERS
; 690 ; IN AC'S. PUT IN CODE TO GIVE PAGE FAIL 24 ON ILLEGAL FORMAT
; 691 ; INDIRECT WORD.
; 692 ;213 FIX LDB & DPB TO TEST POINTER BIT 12 ON CALL TO BYTEA.
; 693 ;212 MODIFY JSP, JSR TO STORE FULL PC WITHOUT FLAGS IN NON-ZERO SEC
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-12
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 694 ; SEPARATE CONDITIONALS FOR "MODEL B" MACHINE FROM THOSE FOR
; 695 ; EXTENDED ADDRESSING MICROCODE.
; 696 ;211 REMOVE UNNECESSARY DIDDLING OF VMA USER BIT DURING PAGE REFILL,
; 697 ; AND ELIMINATE SPECIAL CASE FOR MAP INSTRUCTION, WHEN EXTENDED
; 698 ; ADDRESSING HARDWARE EXISTS TO SOLVE THESE PROBLEMS.
; 699 ; FIX SEVERAL CASES OF SIGNS DISP WITH INADEQUATE CONSTRAINT.
; 700 ;210 FIX DEFINITION OF "SKP LOCAL AC REF", WHICH CONFUSED "AC
; 701 ; REF" WITH "LOCAL AC REF".
; 702 ;207 FIX JRSTF (AND ITS DERIVATIVES) TO LOAD FLAGS INTO AR AFTER
; 703 ; DOING EA MOD DISP, WHICH WOULD OTHERWISE CLOBBER THEM. FIX
; 704 ; COMPEA CODE TO LET AREAD HARDWARE LOAD AR. OTHERWISE GET SEC #.
; 705 ;206 FIX PCTXT ROUTINE TO GET PREVIOUS CONTEXT SECTION.
; 706 ;205 FIX POPJ TO LOAD HALFWORD OR FULLWORD PC ACCORDING TO PC SECT
; 707 ;204 FIX CONDITIONALS AROUND LOC 47, WRONG IN 202. FIX DEFINITION
; 708 ; OF A INDRCT, DOESN'T NEED #07. FIX STACK INSTRUCTIONS FOR
; 709 ; EXTENDED ADDRESSING. MUST NOT LOAD VMA FROM FULL AD.
; 710 ;203 INCLUDE CODE AT NEXT+2 TO GENERATE ADDRESS MASK (LOW 23 BITS)
; 711 ; AT HALT TIME, AND CODE IN PICYCLE TO USE IT TO GET 23 BIT ADDR
; 712 ; OUT OF IOP FUNCTION WORD.
; 713 ;202 MOVE "40+A" LOCATIONS TO "A" UNDER EXTENDED ADDRESSING. CHANGE
; 714 ; ALL CALL MACROS TO GENERATE CALL BIT INSTEAD OF SPECIAL FUNC'S.
; 715 ;201 BEGIN EXTENDED ADDRESSING CHANGES IN EARNEST. INTEGRATE NEW
; 716 ; EFFECTIVE ADDRESS COMPUTATION CODE, AND REVISE INSTRUCTION
; 717 ; ROUTINES AS NECESSARY.
; 718 ;126 FIX STRAC3-2, WHERE COMMA GOT LEFT OFF WHEN IFETCH MOVED
; 719 ;125 REMOVE NXT INSTR FROM STAC1, STRAC3, & STAC4, MAKING THEM JUMP
; 720 ; TO FINI INSTEAD. PROBLEM INVOLVES A RACE IF PAGE FAIL OCCURS
; 721 ; WHILE WRITING FM. IF FM ADDRESS CHANGES BEFORE COND/FM WRITE
; 722 ; GOES FALSE, APR BOARD MAY GRONK PARITY BIT OF SOME FM LOC'N.
; 723 ; THIS RESULTS IN SOME SOME PATHS FROM FETCH TO NICOND BECOMING
; 724 ; LONGER THAN 6 TICKS, SO THE FETCHES GOT SHUFFLED IN SOME PLACES.
; 725 ; MICROCODE PATCH ELIMINATES MOST PROBABLE CAUSE, WHICH IS PAGE
; 726 ; FAIL AT NICOND TIME WHILE WRITING AC OTHER THAN 0. IT DOES NOT
; 727 ; TAKE CARE OF THE POSSIBILITY THAT COND/FM WRITE WILL GLITCH AT
; 728 ; INSTR 1777 TIME.
; 729 ;124 FIXES IN SEVERAL PLACES TO SET AND CLEAR ACCOUNT ENABLE SO AS
; 730 ; TO GET REPEATABLE ACCOUNTING MEASURES OF USEFUL WORK DONE. THE
; 731 ; ENABLE IS NOW CLEARED FOR METER UPDATE CYCLES AND KL PAGE REFILL
; 732 ; CYCLES. THE HARDWARE ALREADY TAKES CARE OF PI CYCLES.
; 733 ;123 CORRECT 122 TO CONSTRAIN LOC "UNHALT", AND TO LOAD ARX FROM AR,
; 734 ; SO AS TO LET "SKP AR EQ" WORK. PROBLEM AROSE BECAUSE MACRO ALSO
; 735 ; TESTS ARX00-01. FIX EDIT, WHEN STORING DEST POINTER ON SELECT
; 736 ; SIGNIFICANCE START, TO ELIMINATE AMBIGUITY IN DEST P FIELD.
; 737 ;122 SPEC CHANGE TO EXIT FROM HALT LOOP, SO THAT AR0-8=0 WITH AR9-35
; 738 ; NON-ZERO LOADS AR INTO PC TO START PROCESSOR. THIS IS DIFFERENT
; 739 ; FROM EXECUTING JRST BECAUSE PC FLAGS ARE CLEARED.
; 740 ;121 FIX TO 120 TO ALLOW A CYCLE BETWEEN FILLER FROM MEMORY AND
; 741 ; WRITING IT INTO FM (THUS PARITY CAN BE COMPUTED). ALSO CLEAR
; 742 ; STATE REGISTER IN EDIT BEFORE GETTING NEXT PATTERN BYTE.
; 743 ;120 FIX EIS TO TOLERATE PAGE FAIL ON READ OF FILL BYTE IN MOVSRJ
; 744 ; OR B2D CONVERSION. REQUIRES GETTING FILLER BEFORE STORING DLEN
; 745 ; ALSO INTEGRATE OPCODE COUNTING/TIMING CODE UNDER CONDITIONALS
; 746 ;117 FIX PARITY ERROR CODE TO WRITEBACK AR ON RPW ERROR.
; 747 ;116 REWRITE OF DDIV, SO THAT THE NO-DIVIDE TEST IS ON THE MOST
; 748 ; SIGNIFICANT HALF OF THE MAGNITUDE OF THE DIVIDEND, RATHER THAN
; 749 ; THE MAGNITUDE OF THE MOST SIGNIFICANT HALF. IN THE PROCESS,
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-13
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 750 ; SAVE TIME AND SPACE. ALSO PUT IN CONDITIONAL ASSEMBLY VARIABLE
; 751 ; "WRTST" TO INHIBIT WRITE TEST CYCLE FOR INSTRUCTIONS WHICH
; 752 ; APPEAR NOT TO NEED IT, AND THUS TO SPEED THEM UP.
; 753 ;115 FIX SBDIAG TO SET MCL REG FUNC TO INHIBIT EBOX MAY BE PAGED.
; 754 ;114 RECODE STRING COMPARE TO SAVE SPACE AND TIME. CHANGE DEFAULTS
; 755 ; FOR KLPAGING TO INCLUDE EIS, EXCLUDE TRACKS FEATURE. CHANGE
; 756 ; KLPAGING (NEW SPEC) TO KEEP "LOGICALLY WRITABLE" IN SOFTWARE BIT
; 757 ;113 RECODE KL PAGING TO ELIMINATE PROBLEM OF WRITING HARDWARE
; 758 ; PAGE TABLE BEFORE CHECKING FOR AGE TRAP, AND THEREFORE LEAVING
; 759 ; THE PAGE ACCESSIBLE AFTER THE TRAP. THE RECODING ALSO IMPROVES
; 760 ; THE ALGORITHM IN THAT THE HARDWARE ENTRY INCLUDES THE W BIT SET
; 761 ; IF THE CORE TABLES ALLOWED WRITE AND THE CST INDICATES WRITTEN,
; 762 ; EVEN IF THE CURRENT REFERENCE WAS NOT A WRITE.
; 763 ; ALSO FIX CODE WHICH WRITES PT DIR, TO GET WRITE REF BIT FROM
; 764 ; VMA HELD INTO BIT 5 OF SAVED PAGE FAIL WORD.
; 765 ;112 FIX PAGE FAIL CODE FOR USE WITH PROB SHEET 1396, WHICH LOADS
; 766 ; PC IF PAGE FAIL OCCURS ON NICOND. THUS CODE NEEDN'T CHECK FOR
; 767 ; FETCH AT CLEAN, WHICH CAUSED OTHER PROBLEMS ON PARITY ERRORS.
; 768 ; CLEAR FE AND SC IN NXT INSTR MACRO (JUST CLEANLINESS).
; 769 ;111 PATCH SEVERAL ROUTINES WITH THE FOLLOWING MACRO --
; 770 ; FETCH WAIT "MEM/MB WAIT"
; 771 ; TO PREVENT SEQUENCES IN WHICH PAGE FAIL INFO CAN GET LOST
; 772 ; BECAUSE OF LONG TIME FROM REQUEST TO MB WAIT. THESE PATCHES
; 773 ; SHOULD BE REMOVED AFTER AN ECO HAS BEEN INSTALLED TO FIX.
; 774 ; IN ADDITION, EBUSX SUBROUTINE HAS BEEN MODIFIED TO PREVENT RACE
; 775 ; CONDITION WHEN SETTING UP IO FUNCTION WITH COND/EBUS CTL AND
; 776 ; MAGIC # BIT 4. MUST NOT CHANGE #5 THROUGH #8 ON NEXT CYCLE.
; 777 ; FIX KLPAGING CODE TO GO BACK TO AREAD ON MAP REF, BECAUSE
; 778 ; MEM/AD FUNC DOESN'T CORRECTLY RESTORE APR REG FUNC. ALSO MAKE
; 779 ; THE CODE SMARTER ON NO MATCH CONDITION, SO REQUEST DOESN'T HAVE
; 780 ; TO BE RESTARTED AND IMMEDIATELY FAIL AGAIN.
; 781 ;110 GIVE UP ON THE OLD STRING COMPARE CODE, INSTALLING MIKE NEWMAN'S
; 782 ; VERSION. SOMEWHAT SLOWER, BUT GIVES THE RIGHT ANSWERS.
; 783 ; FIX LDB CODE TO WAIT FOR MEM WORD EVEN IF INTERRUPT REQUEST
; 784 ; SEEN, SO AS NOT TO GET CONFUSED WHEN IT ARRIVES OR PAGE FAILS.
; 785 ; ALSO IMPROVE CLRPT ROUTINE USED BY CONO AND DATAO PAG TO START
; 786 ; LOOP WITH VMA CLEARED AND PT WR SELECTION SETUP CORRECTLY.
; 787 ;107 FIX STRING COMPARES TO CHECK FOR INTERRUPT. THIS INVOLVED
; 788 ; CHECKING DURING GSRC ROUTINE, WHICH ELIMINATES NEED FOR CHECK
; 789 ; IN SRCMOD (WHICH CALLS GSRC). IT ALSO REQUIRED CLEARING SFLGS
; 790 ; AT STARTUP, AND ADJUSTING DLEN UPDATE CODE IN DEST FILL TO GET
; 791 ; VALID LENGTH STORED ON INTERRUPT.
; 792 ;106 ELIMINATE RACE IN DECODING OF # FIELD ON MTR BOARD BY HOLDING
; 793 ; LOW 3 BITS THROUGH NEXT MICROINSTRUCTION.
; 794 ; FIX LUUO AND MUUO TO ALLOW INTERRUPTS.
; 795 ; FIX B2D OFFSET TO SIGN-EXTEND E1 AFTER INTERRUPT. FINISH 105,
; 796 ; TO GET ENTIRE AR LOADED WHILE CLEARING MQ (ARL WAS HOLDING).
; 797 ; FIX KL PAGING TO USE VMA/1 INSTEAD OF VMA/AD WHEN RESTORING VMA
; 798 ; FROM VMA HELD OR COPIES THEREOF.
; 799 ; FIX UFA NOT TO ALWAYS GET UNDERFLOW ON NEGATIVE RESULTS.
; 800 ; SAME FIX AS EDIT 103 OF BREADBOARD. WHERE DID IT GET LOST?
; 801 ;105 FIX KL PAGING AS REVISED BY EDIT 103 TO CORRECTLY RESTORE
; 802 ; BR ON NO-MATCH CONDITION
; 803 ; ANOTHER FIX TO B2D, TO CLEAR MQ ON ENTRY. BUG INVOLVED GARBAGE
; 804 ; FROM MQ SHIFTING INTO ARX DURING DEVELOPMENT OF POWER OF TEN.
; 805 ;104 FIX BINARY TO DECIMAL CONVERSION, WHICH WAS NOT GOING TO CLEAN
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-14
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 806 ; ON FINDING AN INTERRUPT, AND ON RESTART WITH FPD SET, WAS NOT
; 807 ; SETTING UP SLEN. TSK, TSK. CORRECT CLEANUP FOR DEST FILL IN
; 808 ; MOVSRJ, WHICH WAS INCREMENTING BOTH SLEN AND DLEN, SHOULD
; 809 ; HAVE BEEN NEITHER. FIX JSR, BROKEN BY EDIT 103. JUMP MUST BE
; 810 ; TO E+1, NOT E.
; 811 ;103 CREATE CONDITIONAL ASSEMBLY FOR EXTENDED ADDRESSING. UNDER IT,
; 812 ; CREATE MEM FIELD DEFINITIONS, SUPPRESS SXCT.
; 813 ; SAVE A WORD IN JSR BY USING JSTAC IN COMMON WITH PUSHJ.
; 814 ; FORCE TIME FIELD IN CASES WHERE ASSEMBLER DEFAULT SCREWS UP.
; 815 ; ADD INTERRUPT TESTS IN KL PAGING CODE TO PREVENT HANGS, AND
; 816 ; REVISE PAGE FAIL WORD TO ELIMINATE THE NEW FAIL CODES.
; 817 ;102 ATTEMPT ANOTHER FIX OF MOVSRJ, CVTBDX FILL. EDIT 71 LOSES
; 818 ; DUE TO INCONSISTENCY -- DLEN UPDATE MUST NOT PRECEED CLEANUP.
; 819 ; CREATE CONDITIONAL ASSEMBLY SWITCHES TO CONTROL EXTENDED
; 820 ; INSTRUCTION SET, DOUBLE INTEGER ARITHMETIC, AND ADJBP. CHANGE
; 821 ; DEFAULT OF IMULI.OPT, WHICH CAN GET SIGN WRONG ON OVERFLOW.
; 822 ;101 FIX METER REQUEST CODE TO "ABORT INSTR" EVEN IF NOT SETTING
; 823 ; PI CYCLE. THIS SHOULD FIX OCCASIONAL LOSS OF TRAPS PROBLEM.
; 824 ;100 FIXES TO KL PAGING CODE TO PREVENT LOADING VMA FROM AD WHILE
; 825 ; REQUESTING PHYSICAL REF. FIX JSR TO PREVENT FM PARITY STOP
; 826 ; ON STORE TO AC. FIX 1777 TO FORCE RECIRCULATION OF AR/ARX,
; 827 ; EVEN IF MBOX RESP STILL TRUE.
; 828 ;77 FIX DDIV TO GET MQ SHIFTED LEFT ONE PLACE, WITHOUT INTRODUCING
; 829 ; AN EXTRA BIT, AT DDVX1. THIS INVOLVES INHIBITING ADA TO PREVENT
; 830 ; AD CRY0 FROM COMMING INTO MQ35.
; 831 ;76 FIX UFA TO ALLOW AN EBOX CYCLE BETWEEN FETCH AND NICOND WHEN
; 832 ; FRACTION SUM IS ZERO, AT UFA3.
; 833 ;75 PUT BACK INSTRUCTION "MBREL" REMOVED BY EDIT 64. NECESSARY TO
; 834 ; ENSURE THAT EBOX REQUEST FOR FETCH DOESN'T COME UP WHILE
; 835 ; REGISTER FUNCTION IS IN PROGRESS, WHICH WOULD CONFUSE MBOX ON
; 836 ; STARTING THE FETCH.
; 837 ;74 CHANGES TO EIS FOR NEW-SPEC AC USAGE. CHANGES TO KL PAGING FOR
; 838 ; INDIRECT, IMMEDIATE SECTION POINTERS
; 839 ;73 FIX JRA TO PREVENT WRITING AC WITH DATA FRESH FROM MEMORY (ALLOW
; 840 ; A CYCLE FOR PARITY CHECK). FIX DPB CODE TAKE ONLY 3 TICKS ON
; 841 ; RETURN FROM BYTEA, SO THAT CACHE DATA DOESN'T ARRIVE INTO AR
; 842 ; AND ARX UNTIL DPB1, WHEN THE BYTE HAS GOTTEN OUT TO MQ.
; 843 ;72 FIX DEFINITION OF SP MEM/UNPAGED TO INHIBIT VMA USER. FIX
; 844 ; PAGE FAIL CODE TO CHECK FOR VMA FETCH BEFORE LOOKING AT
; 845 ; INTERRUPT REQUEST. PROBLEM WAS INTERRUPT CONCURRENT WITH
; 846 ; PAGE FAIL ON JRSTF TO USER. PC FLAGS GOT RESTORED, BUT VMA
; 847 ; NEVER COPIED TO PC BECAUSE PAGE FAIL INHIBITED NICOND, AND
; 848 ; INTERRUPT ABORTED PAGE FAIL HANDLING TO LOAD PC.
; 849 ;71 DEFINE FMADR/AC4=6. FIX MOVFIL ROUTINE TO PUT AWAY UPDATED
; 850 ; LENGTH DIFFERENCE WHEN INTERRUPTED, THUS AVOIDING RANDOMNESS
; 851 ; IN MOVSRJ, CVTBDX. FIX CVTBD CALL TO MOVFIL TO PRESERVE SR.
; 852 ; CHANGE STMAC AND PIDONE FROM "FIN XFER" TO "FIN STORE", BECAUSE
; 853 ; STORE WAS IN PROGRESS, WHICH CAUSED FM WRITE IF AC REF, AND
; 854 ; GOT A PARITY ERROR DUE TO ADB/FM.
; 855 ;70 FIX PXCT 4,[POP ...], WHICH DIDN'T GET DEST CONTEXT SET FOR
; 856 ; STORE. MUST USE SR_100 TO SET IT.
; 857 ;67 FIX PROBLEM IN ADJBP BY WHICH BYTES/WORD WAS GETTING LOST
; 858 ; WHEN DIVIDE ROUTINE LOADED REMAINDER INTO BR. SOLVED BY
; 859 ; SAVING BYTES/WORD IN T1.
; 860 ;66 FIX KL PAGING TO RESTORE VMA ON TRAP, SAVE ADDRESS OF POINTER
; 861 ; CAUSING TRAP, AND NOT RESTORE ARX EXCEPT FOR BLT PAGE FAIL.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-15
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 862 ; ALSO SET TIME PARAMETER ON ADB/FM TO ALLOW TIME FOR PARITY
; 863 ; CHECKING OF FM.
; 864 ;65 FIX KL PAGING CODE TO DO MBWAIT AFTER DETERMINING THAT PARITY
; 865 ; ERROR HAS NOT OCCURRED, SO AS TO GET CORRECT VMA TO SAVE.
; 866 ; CREATE SYMBOLS FOR KL PAGE FAIL CODES. PUT CONDITIONAL
; 867 ; ASSEMBLY AROUND IMULI OPTIMIZATION CODE, AND SXCT. CREATE
; 868 ; SYMBOL "OPTIONS" IN # FIELD FOR MICROCODE OPTIONS.
; 869 ;64 MICROCODE FOR KL10 PAGING (PAGE REFILL, MAP INSTR)...
; 870 ; REMOVE UNNECESSARY INSTRUCTION MBREL: FROM SWEEP AND APRBO
; 871 ; COSMETIC CHANGES TO KEEP COMMENTS & MACRO DEFINITIONS FROM
; 872 ; OVERFLOWING LINE OF LISTING, AND INSERTION OF CONDITIONAL
; 873 ; ASSEMBLY CONTROL OF LONG FLOATING POINT INSTRUCTIONS.
; 874 ;63 IN MTR REQUEST ROUTINE, DON'T DISMISS WHEN PI CYCLE HASN'T
; 875 ; BEEN SET.
; 876 ;62 FIX RDMTR CODE TO PUT 35 IN SC BEFORE GOING TO DMOVEM CODE.
; 877 ;61 FIX PIIBP ROUTINE TO USE CALL.M INSTEAD OF SPEC/CALL,
; 878 ; WHICH GETS OVERRIDDEN BY P_P-S... IN MTR REQUEST SERVICE
; 879 ; ROUTINE, DON'T SET PI CYCLE UNLESS REQUEST IS FOR VECTOR.
; 880 ;60 FIX DATAO PAG TO DO MB WAIT AFTER STORING EBOX ACCT AND
; 881 ; BEFORE CHANGING VMA.
; 882 ;57 RE-CODE USES OF A@, B@ TO USE VMA/1, RATHER THAN VMA/AD,
; 883 ; IN ORDER TO GET CORRECT CONTEXT ON INDIRECT WORD. SEE MCL4
; 884 ;56 FIX SECOND PART OF PICYCLE (TAG NEXT:) TO ENSURE THAT
; 885 ; PC+1 INH, KERNEL CYCLE, ETC REMAIN UP DURING 2ND PART.
; 886 ; ALSO CHANGE SPEC/FLAG CTL FOR ECO 1261, WHICH REQUIRES
; 887 ; #07 TO BE OPPOSITE OF #04 TO GENERATE SCD LEAVE USER.
; 888 ;55 FIX SPEC INSTR/SET PI CYCLE TO INHIBIT INTERRUPTS
; 889 ; (IN PARTICULAR, METER UPDATE REQUESTS). MAKE SURE VALID
; 890 ; DATA SAVED ON IO PAGE FAIL AND PARITY ERRORS. REMOVE
; 891 ; BACKWARDS BLT... IT BROKE TOO MANY PROGRAMS.
; 892 ;54 FIX OVERFLOW CHECK IN IMULI OPTIMIZATION TO INH CRY 18
; 893 ; UPDATE TO USE CONDITIONAL ASSEMBLY IN MICRO VERS 20.
; 894 ;53 FIX T1,T2 PARAMETERS ON BYTE DISP, SIGNS DISP
; 895 ;52 CORRECT SHIFT AMOUNT FOR IMULI OPTIMIZATION, AND FIX MACRO
; 896 ; DEFINITIONS FOR SET SR?, WHICH WERE ALWAYS SETTING SR0.
; 897 ;51 OPTIMIZE IMULI OF TWO POSITIVE OPERANDS (TO SPEED UP SUBSCRIPT
; 898 ; CALCULATIONS) BY TAKING ONLY 9 MULTIPLY STEPS AND STARTING
; 899 ; NEXT INSTRUCTION FETCH EARLIER. OPTIMIZATION CAN BE REMOVED
; 900 ; BY COMMENTING OUT TWO INSTRUCTIONS AT IMULI, AND ONE FOLLOWING
; 901 ; IMUL. ALSO FIX APRBI/UVERS TO KEEP SERIAL # OUT OF LH.
; 902 ;50 INTRODUCE SKIP/FETCH AND CODE IN PAGE FAIL RECOVERY TO LOAD
; 903 ; PC FROM VMA IF PAGE FAIL OCCURED ON FETCH, BECAUSE NICOND
; 904 ; CYCLE, WHICH SHOULD HAVE LOADED PC, GETS INHIBITED BY INSTR 1777
; 905 ; ALSO INCLUDE EXTENDED INSTRUCTION SET.
; 906 ;47 UNDO XCT CHANGES OF EDIT 46, WHICH BROKE XCT DUE TO INSUFFICIENT
; 907 ; TIME FOR DRAM HOLD BEFORE USING "A READ". ALSO FIX VECTOR
; 908 ; INTERRUPT CODE TO LOOK AT CORRECT BITS FOR CONTROLLER NUMBER.
; 909 ;46 FOLLOW-ON TO EDIT 45, SAVING 2 WORDS AND A CYCLE
; 910 ; ALSO MOVE JRST TO 600, JFCL TO 700, UUO'S TO 100X AS PREPARATION
; 911 ; FOR EXTENDED INSTRUCTION SET
; 912 ;45 FIX SXCT TO LOOK AT AC FIELD OF SXCT, NOT SUBJECT INSTRUCTION,
; 913 ; WHEN DECIDING WHETHER TO USE BASE-TYPE ADDRESS CALCULATION.
; 914 ;44 FIX PAGE FAIL LOGIC TO WORK FOR EITHER PAGE FAIL OR PARITY
; 915 ; ERROR. EDITS 42 AND 43 BOTH WRONG. ALSO CORRECT RACE IN
; 916 ; WRITING PERFORMANCE ANALYSIS ENABLES TO PREVENT SPURIOUS COUNTS.
; 917 ;43 CORRECT USE OF PF DISP BY EDIT 42. LOW BITS ARE INVERTED
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-16
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 918 ;42 FIX BUGS INTRODUCED BY EDIT 40, WHICH MADE FLTR OF 1B0 HANG
; 919 ; TRYING TO NEGATE IT, AND FIX UP EXPONENT CORRECTION ON LONG
; 920 ; SHIFT LEFT. ALSO PUT IN CODE TO HANDLE PARITY ERROR PAGE
; 921 ; FAILURES, AND SET TIME CONTROLS ON 43-47.
; 922 ;41 REWRITE OF VECTOR INTERRUPT PROCESSING TO MAKE DTE VECTORS
; 923 ; GO TO 142+8N, WHERE N IS DTE#. RH20 GO TO PROGRAMMED ADDRESS
; 924 ; IN EPT, EXTERNAL DEVICES USE EXEC VIRTUAL ADDRESSES.
; 925 ;40 IMPROVEMENTS TO FLOATING NORMALIZATION TO MAKE LONG SHIFTS
; 926 ; FASTER, PRIMARILY TO HELP FLTR
; 927 ;37 FIX FLOATING DIVIDE SO THAT THE TRUNCATED FORM OF A NEGATIVE
; 928 ; QUOTIENT IS EQUAL TO THE HIGH-ORDER PART OF THE INFINITE-
; 929 ; PRECISION QUOTIENT. SEE COMMENTS IN THE CODE. ALSO BUM
; 930 ; A CYCLE OUT OF FLOATING DIVIDE BY STARTING THE NORMALIZE
; 931 ; WHILE MOVING THE QUOTIENT INTO AR.
; 932 ; SEVERAL CHANGES TO MAKE TRACKS FEATURE WORK
; 933 ;36 FIX CONO MTR TO PUT DATA ON BOTH HALVES, SO PI CAN SEE PIA
; 934 ;35 FIX CONI PI TO READ BACK WRITE EVEN PARITY ENABLES
; 935 ;34 FIX BLT USE OF SR, SO NO CORRECTION OF ARX NECESSARY
; 936 ;33 FIX PAGE TABLE REFERENCES TO FORCE UNPAGED REF. FIX TRAP
; 937 ; TO SET PC+1 INHIBIT.
; 938 ;32 CORRECT SETTING OF SC FOR SHIFTING METER COUNTERS, TO GET
; 939 ; 12 BITS UNUSED AT RIGHT WHEN IT GETS TO CORE.
; 940 ;31 RECODE ASH AND ASHC TO SAVE SPACE
; 941 ;30 FIX JFFO TO SHIFT AR CORRECTLY AT JFFO2. BUM ADJSP TO USE
; 942 ; STMAC FOR UPDATING PDL POINTER.
; 943 ;27 FIX CONI PAG TO READ EBUS. CORRECT DEFINITIONS OF MBOX
; 944 ; REGISTER FUNCTIONS, WHICH HAD BITS 0 AND 3 INVERTED.
; 945 ;26 FIX DEFINITIONS OF DIAG FUNC CONO MTR AND CONO TIM, WHICH
; 946 ; WERE REVERSED
; 947 ;25 FIX DECODING OF PHYSICAL DEVICE NUMBER IN PI FUNCTION CODE
; 948 ; AND RE-CODE JFCL FOR FEWER MICROWORDS
; 949 ;24 FIX JFFO TO SHIFT ON FIRST 6-BIT TEST STEP, AND JRSTF TO
; 950 ; KEEP E AND XR DISTINCT. ALSO SET LOAD-ENABLE BITS IN
; 951 ; DATAI PAG, WORD.
; 952 ;23 FIX CONO PI, TO HOLD AR ONTO EBUS THRU REL EBUS, BECAUSE
; 953 ; PI BOARD DELAYS CONO PI TO GET CONO SET EQUIVALENT.
; 954 ;22 MORE JFCL FIXES. MUST USE FLAG CTL/JFCL WHILE CLEARING BITS,
; 955 ; AS WELL AS WHILE TESTING THEM. BUM A WORD OUT OF JFFO BY
; 956 ; MAKING THE SIXBIT COUNT NEGATIVE. CHANGES SO SHIFT SUBR
; 957 ; RETURNS 2, BYTEA 1. FIX SETMB TO STORE BACK AND FETCH.
; 958 ;21 RE-WRITE JFCL TO KEEP LOW OPCODE BITS OUT OF AR0-1, BECAUSE
; 959 ; PC00 GETS PROPAGATED LEFT TO ADA -1 AND -2.
; 960 ;20 FIX BLT TO LOAD BR WITH SRC-DST ADDR
; 961 ; ALSO SET TIME PARAMETERS ON CONDITIONAL FETCH FUNCTIONS
; 962 ;17 CHANGE SWEEP ONE PAGE TO PUT PAGE # IN E, RATHER THAN ADDR.
; 963 ; ALSO CHANGE COND/FM WRITE TO MATCH ECO #1068.
; 964 ;16 FIX JUMP FETCH MACRO TO LOAD VMA FROM PC+1 (TEST SATISFIED
; 965 ; OVERRIDES THIS TO HOLD VMA). ALSO BUM ONE MICROWORD FROM MUUO.
; 966 ;15 INCLUDE PAGE FAIL DISP IN DISP/ FIELD
; 967 ; ALSO MAKE MUUO STORE PROCESS CONTEXT WORD AT 426, AND SETUP
; 968 ; PCS FROM PC EXTENSION, CWSX FROM SXCT
; 969 ;14 FIX DEFINITIONS OF SKIP/IO LEGAL, AC#0, SC0, EVEN PAR
; 970 ; ALSO FIX DATAO PAG, TO SEND LH DATA ON BOTH HALVES OF EBUS
; 971 ;13 ALIGN SETEBR SO CALL TO SHIFT RETURNS CORRECTLY
; 972 ;12 MAKE SURE AD COPIES AR DURING DATAO, CONO, AND CLEAR AR AT
; 973 ; SET DATAI TIME.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-17
; EDHIS.MIC[10,5351] 22:44 29-Nov-83 REVISION HISTORY
; 974 ;11 FIXES TO CONTINUE CODE SO CONSOLE WORKS, AND CORRECTIONS TO
; 975 ; PROTECTED DEP/EXAM SO PROTECTION PROTECTS.
; 976 ;10 FIX A READ MACRO TO VMA/PC+1. AD OVERRIDES UNLESS DRAM A=1
; 977 ;07 RE-WRITE OF PI CYCLE CODE TO RECOGNIZE NEW EBUS SPEC.
; 978 ;06 FIX DEFINITIONS OF SKIPS 40-57 BY COMPLEMENTING 3 LOW ORDER BITS
; 979 ; FIX MULSUB TO CORRESPOND TO NEW CRA LOGIC
; 980 ;05 FIX EBUS CTL DEFINITIONS TO GET F01 CORRECT. CORRECT FLAG CTL
; 981 ; DEFINITIONS TO PREVENT LEAVE USER WHEN NOT WANTED, AND FIX
; 982 ; JRST/JFCL TO HAVE FLAGS IN AR WHEN NEEDED.
; 983 ;04 FIX RETURNS FROM MULSUB, PUT BETTER COMMENTS ON SNORM CODE,
; 984 ; IMPROVE SNORM ALGORITHM TO MINIMIZE WORST-CASE TIME.
; 985 ;03 FIX DISPATCH ADDRESS PROBLEMS, MOSTLY JRST/JFCL AND UUO'S.
; 986 ;02 CHANGES PER INSTRUCTION SET REVIEW -- DELETE USE OF BIT12 OF
; 987 ; BYTE POINTERS, CHANGE BLT TO PUT FINAL SRC,DST ADDRESSES IN AC,
; 988 ; MAKE TRUNCATE FORM FLOATING POINT REALLY TRUNCATE, ELIMINATE
; 989 ; LOCAL JSYS SUPPORT, DELETE PXCT OPCODE (XCT W/ NON-ZERO AC IN
; 990 ; EXEC MODE), LUUO'S GO TO 40/41 OF CURRENT SPACE.
; 991 ;01 UPDATES FOR .TITLE AND .TOC PSEUDO OPS,
; 992 ; AND VARIOUS CHANGES FOR PROTO HARDWARE
; 993 ;00 CREATION, BASED ON BREADBOARD AS OF EDIT 66
; 994 .BIN
; 995
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 996 .TOC "CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS"
; 997 .NOBIN
; 998
; 999 ; [COST ESTIMATES IN BRACKETS INDICATE NUMBER OF ADDITIONAL
; 1000 ; MICROINSTRUCTIONS REQUIRED BY TURNING ON THE FEATURE SWITCH]
; 1001
; 1002 .DEFAULT/TRACKS=0 ;1 ENABLES STORING PC AFTER EVERY INSTRUCTION,
; 1003 ; & CREATES DATAI/O PI TO READ/SETUP PC BUFFER
; 1004 ;ADDRESS. [COST = 21 WDS]
; 1005
; 1006 .DEFAULT/OP.CNT=0 ;1 ENABLES CODE TO BUILD A HISTOGRAM IN CORE
; 1007 ; COUNTING USES OF EACH OPCODE IN USER & EXEC
; 1008
; 1009 .DEFAULT/OP.TIME=0 ;1 ENABLES CODE TO ACCUMULATE TIME SPENT BY
; 1010 ; EACH OPCODE
; 1011
; 1012 .DEFAULT/SO.CNT=0 ;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1013 ; 400000 NOT DEBUGED [COST = 28 WDS]
; 1014
; 1015 .DEFAULT/SO2.CNT=0 ;SECOND ORDER COUNTING IN 128K STARTING AT LOC
; 1016 ; PRESENTED AT START DOES ONE MORE ADD THAN
; 1017 ; SO.CNT AND HENCE AN INSTRUCTION TAKES
; 1018 ; 120 NS LONGER THAN SO.CNT [COST = 28 WDS]
; 1019
; 1020 .DEFAULT/PAGCNT=0 ;Enable code to count entries into the PFH and
; 1021 ; number of DATAO PAGs with bit 2 set. [Cost =
; 1022 ; 6 words] [327]
; 1023
; 1024 .DEFAULT/FPLONG=1 ;1 ENABLES KA-STYLE DOUBLE PRECISION FLOATING
; 1025 ;POINT INSTRUCTIONS: FADL, FSBL, FMPL, FDVL,
; 1026 ; UFA, DFN. [COST = 49 WDS]
; 1027
; 1028 .DEFAULT/MULTI=0 ;1 IF MULTIPROCESSOR SYSTEM, TO SUPPRESS CACHE
; 1029 ;ON UNPAGED REF'S. PAGED REF'S ARE UP TO EXEC.
; 1030
; 1031 .DEFAULT/KLPAGE=0 ;1 ENABLES KL-MODE PAGING. [COST = 85 WDS]
; 1032
; 1033 .DEFAULT/SHIFT.MUUO=0 ;ENABLES A DIFFERENT MUUO FORMAT FOR MODEL A
; 1034 ;THAT IS SLIGHTLY CLOSER TO THE XADDR FORMAT
; 1035 ;EXPECTED TO BE USED IN CONJUNCTION WITH LONG.PC
; 1036 ;BUT THEY DO NOT DEPEND ON EACH OTHER
; 1037
; 1038 .DEFAULT/MODEL.B=0 ;1 INDICATES EXTENDED ADDRESSING HARDWARE,
; 1039 ;PRIMARILY 2K (RATHER THAN 1280) CONTROL RAM,
; 1040 ;NEW MCL, CTL, AND APR BOARDS.
; 1041
; 1042 .DEFAULT/BLT.PXCT=0 ;1ENABLES SPECIAL BLT CODE FOR EXTENDED ADDRESSING
; 1043 ;THIS IS SUPPOSED TO GO AWAY IN THE FUTURE
; 1044 ;WHEN PXCT OF BLT IS NO LONGER USED BY TOPS-20
; 1045 ;THIS SHOULD ONLY BE USED BY KLX XADDR MICROCODE
; 1046 ;[COST 12 WORDS]
; 1047
; 1048 .IF/KLPAGE
;;1049 .IFNOT/MODEL.B
;;1050 .SET/XADDR=0 ;CAN'T DO EXTENDED ADDRESSING WITHOUT MODEL B
;;1051 .set/extexp=0 ;No room in TOPS20 Model A machine for extended exp.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-1
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 1052 .ENDIF/MODEL.B
; 1053
;;1054 .IFNOT/KLPAGE
;;1055 .SET/XADDR=0 ;CAN'T HAVE EXTENDED ADDRESSING WITHOUT KL PAGE
; 1056 .ENDIF/KLPAGE
; 1057
; 1058 .DEFAULT/IMULI.OPT=0 ;1 ENABLES OPTIMIZATION OF IMULI TO TAKE ONLY
; 1059 ;NINE MULTIPLY STEPS [COST = 3 WDS]
; 1060
; 1061 .IF/MODEL.B ; [COST = 19 WDS]
; 1062 .SET/SXCT=0 ;DONT NEED SXCT WITH EXTENDED ADDRESSING
; 1063 ;CAN'T DO IT IN MODEL B HARDWARE
; 1064 .ENDIF/MODEL.B
; 1065 .DEFAULT/SXCT=0 ;1 ENABLES SPECIAL XCT INSTR, WHICH ALLOWS
; 1066 ; DIAGNOSTICS TO GENERATE LARGE ADDRESSES.
; 1067
; 1068
; 1069 .DEFAULT/SNORM.OPT=0 ;1 ENABLES FASTER NORMALIZATION OF SINGLE-
; 1070 ; PRECISION RESULTS WHICH HAVE SEVERE LOSS OF
; 1071 ; SIGNIFICANCE [COST = 4 WDS]
; 1072
;;1073 .IFNOT/MODEL.B
;;1074 .SET/PUSHM=0 ;CODE ONLY WORKS FOR MODEL B
; 1075 .ENDIF/MODEL.B
; 1076
; 1077 .DEFAULT/PUSHM=0 ;ENABLES THE PUSHM AND POPM INSTRUCTIONS
; 1078 ; [COST = ??? WDS]
; 1079 .DEFAULT/EXTEND=1 ;1 ENABLES EXTENDED INSTRUCTION SET
; 1080 ; [COST = 290 WDS]
; 1081
; 1082 .DEFAULT/DBL.INT=1 ;1 ENABLES DOUBLE INTEGER INSTRUCTIONS
; 1083 ; [COST = 59 WDS]
; 1084
; 1085 .DEFAULT/ADJBP=1 ;1 ENABLES ADJUST BYTE POINTER
; 1086 ; [COST = 24 WDS]
; 1087
; 1088 .DEFAULT/RPW=1 ;1 ENABLES READ-PAUSE-WRITE CYCLES FOR
; 1089 ;NON-CACHED REFERENCES BY CERTAIN INSTRUCTIONS.
; 1090 ; [COST = 0]
; 1091
; 1092 .DEFAULT/WRTST=0 ;1 ENABLES WRITE-TEST CYCLES AT AREAD TIME FOR
; 1093 ;INSTRUCTIONS LIKE MOVEM AND SETZM. [COST = 0]
; 1094
; 1095 .DEFAULT/BACK.BLT=0 ;1 ENABLES BLT TO DECREMENT ADDRESSES ON EACH
; 1096 ;STEP IF E < RH(AC). BREAKS MANY PROGRAMS.
; 1097 ; [COST = 9 WDS]
; 1098
;;1099 .IF/TRACKS ;SETUP CONTROL FOR COMMON CODE
;;1100 .SET/INSTR.STAT=1
; 1101 .ENDIF/TRACKS
; 1102
;;1103 .IF/OP.CNT
;;1104 .SET/INSTR.STAT=1 ;ENABLE COMMON CODE, ERROR IF TRACKS TOO
; 1105 .ENDIF/OP.CNT
; 1106
;;1107 .IF/OP.TIME
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-2
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
;;1108 .SET/INSTR.STAT=1 ;ERROR IF TRACKS OR OP.CNT ALSO SET
; 1109 .ENDIF/OP.TIME
; 1110
;;1111 .IF/SO.CNT
;;1112 .SET/INSTR.STAT=1
; 1113 .ENDIF/SO.CNT
; 1114
;;1115 .IF/SO2.CNT
;;1116 .SET/INSTR.STAT=1
; 1117 .ENDIF/SO2.CNT
; 1118
; 1119 .DEFAULT/INSTR.STAT=0 ;IF NO STATISTICS, TURN OFF COMMON CODE
; 1120
;;1121 .IF/INSTR.STAT
;;1122 .SET/NONSTD=1 ;STATISTICS CODE IS NONSTANDARD
;;1123 .SET/TRXDEF=1 ;Make sure TRX registers get defined [327]
; 1124 .ENDIF/INSTR.STAT
; 1125
;;1126 .IF/PAGCNT
;;1127 .SET/NONSTD=1 ;All statistics are nonstandard
;;1128 .SET/TRXDEF=1 ;We need the TRX registers
; 1129 .ENDIF/PAGCNT
; 1130
; 1131 .DEFAULT/TRXDEF=0 ;Normally no TRX registers needed
; 1132
; 1133 .DEFAULT/LONG.PC=0 ;LONG PC FORMAT [COST 9 WORDS 11 WORDS IF XADDR]
; 1134
; 1135 .DEFAULT/EPT540=0 ;PUT EPT AND UPT SECTION TABLES AT 540 IF ON
; 1136 ; 440 IF OFF
; 1137
; 1138 .DEFAULT/DIAG.INST=0 ;UNSUPPORTED DIAGNOSTIC MICROCODE
; 1139
;;1140 .IF/DIAG.INST
;;1141 .SET/NONSTD=1 ;NONSTANDARD MICROCODE
; 1142 .ENDIF/DIAG.INST
; 1143
; 1144 .DEFAULT/NONSTD=0 ;NONSTANDARD MICROCODE IS NORMALLY OFF
; 1145 .DEFAULT/SMP=1 ;[216]1 IF SYMMETRIC MULTIPROCESSOR
; 1146 ;SYSTEM.
; 1147 ;TO ENABLE RPW ON DPB INSTRUCTION.
; 1148 ;[COST=9 WORDS if not XADDR, more if XADDR]
; 1149 .DEFAULT/OWGBP=0 ;[264]
; 1150 .DEFAULT/IPA20=0 ;[264]
; 1151 .DEFAULT/NOCST=0 ;[264]
; 1152 .DEFAULT/CST.WRITE=1 ;[314] Enable CST writable bit
; 1153 .DEFAULT/BIG.PT=0 ;[333] Special code for big page table and Keep bit
; 1154 .DEFAULT/GFTCNV=1 ;[273] GFLOAT CONVERSION INST.
; 1155
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1156 .TOC "HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS"
; 1157
; 1158 ;(1) FIELD DEFINITIONS
; 1159 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE
; 1160 ; DEFINE.MIC (CONTROL AND DISPATCH RAM DEFINITIONS).
; 1161 ; THEY HAVE THE FORM:
; 1162 ; SYMBOL/=<L:R>M,J
; 1163 ;ANOTHER FORM ACCEPTED BY THE ASSEMBLER (FOR HISTORIC REASONS) IS:
; 1164 ; SYMBOL/=J,K,R,M ;THIS FORM HAS BEEN REMOVED FROM THIS CODE
; 1165 ; THE PARAMETER (J) IS MEANINGFUL ONLY WHEN "D" IS SPECIFIED
; 1166 ; AS THE DEFAULT MECHANISM, AND IN THAT CASE, GIVES THE DEFAULT VALUE OF
; 1167 ; THE FIELD IN OCTAL.
; 1168 ; THE PARAMETER (K) GIVES THE FIELD SIZE IN (DECIMAL) NUMBER
; 1169 ; OF BITS. THIS IS USED ONLY IN THE OUTDATED FORMAT.
; 1170 ; THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT
; 1171 ;IN THE FIELD. THE SAME METHOD IS USED AS FOR (R) BELOW.
; 1172 ; THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL
; 1173 ; AS THE BIT NUMBER OF THE RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED
; 1174 ; FROM 0 ON THE LEFT. NOTE THAT THE POSITION OF BITS IN THE MICROWORD
; 1175 ; SHOWN IN THE LISTING BEARS NO RELATION TO THE ORDERING OF BITS IN THE
; 1176 ; HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP AND SCATTERED.
; 1177 ; THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT
; 1178 ; MECHANISM FOR THE FIELD. THE LEGAL VALUES OF THIS PARAMETER ARE THE
; 1179 ; CHARACTERS "D", "T", "P", OR "+".
; 1180 ; "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT
; 1181 ; VALUE IS SPECIFIED.
; 1182 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE
; 1183 ; FIELD DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS.
; 1184 ; THE VALUE OF A FIELD WITH THIS SPECIFICATION DEFAULTS TO THE
; 1185 ; MAX OF <SUM OF THE T1 PARAMETERS DEFINED FOR FIELD/VALUES
; 1186 ; SPECIFIED IN THIS MICROINSTRUCTION>, <SUM OF THE T2 PARAMETERS
; 1187 ; FOR THIS MICROINSTRUCTION>, <J PARAMETER OF THIS FIELD>.
; 1188 ; WITHIN THE KL10 MICROCODE, T1 PARAMETERS ARE USED TO SPECIFY
; 1189 ; FUNCTIONS WHICH DEPEND ON THE ADDER SETUP TIME, AND T2 PARAMETERS
; 1190 ; ARE USED FOR FUNCTIONS WHICH REQUIRE ADDITIONAL TIME FOR CORRECT
; 1191 ; SELECTION OF THE NEXT MICROINSTRUCTION ADDRESS.
; 1192 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE
; 1193 ; FIELD SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD
; 1194 ; IS ODD. IF THIS OPTION IS SELECTED ON A FIELD WHOSE SIZE (K) IS
; 1195 ; ZERO, THE MICRO ASSEMBLER WILL ATTEMPT TO FIND A BIT SOMEWHERE
; 1196 ; IN THE WORD FOR WHICH NO VALUE IS SPECIFIED OR DEFAULTED.
; 1197 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT
; 1198 ; JUMP ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT,
; 1199 ; IN GENERAL, THE CURRENT LOCATION +1).
; 1200 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE
; 1201 ; SELECT INPUTS FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S.
; 1202 ; EXAMPLES:
; 1203 ; AR/=<24:26>D,0 OR AR/=0,3,26,D
; 1204 ; THE MICROCODE FIELD WHICH CONTROLS THE AR MIXER (AND THEREFORE
; 1205 ; THE DATA TO BE LOADED INTO AR ON EACH EBOX CLOCK) IS THREE BITS WIDE
; 1206 ; AND THE RIGHTMOST BIT IS SHOWN IN THE LISTING AS BIT 26 OF THE
; 1207 ; MICROINSTRUCTION. IF NO VALUE IS SPECIFICALLY REQUESTED FOR THE FIELD,
; 1208 ; THE MICROASSEMBLER WILL ENSURE THAT THE FIELD IS 0.
; 1209 ; AD/=<12:17> OR AD/=0,6,17
; 1210 ; THE FIELD WHICH CONTROLS THE AD IS 6 BITS WIDE, ENDING ON
; 1211 ; BIT 17. THE FOURTH PARAMETER OF THE FIELD IS OMITTED, SO THE FIELD
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-1
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1212 ; IS AVAILABLE TO THE MICROASSEMBLER (IF NO VALUE IS EXPLICITLY
; 1213 ; CALLED OUT FOR THE FIELD) FOR MODIFICATION TO ENSURE ODD PARITY IN THE
; 1214 ; ENTIRE WORD.
; 1215 ;
; 1216 ;(2) VALUE DEFINITIONS
; 1217 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT
; 1218 ; FIELD TO CORRESPOND TO VALUES OF THE FIELD. THE FORM IS:
; 1219 ; SYMBOL=N,T1,T2
; 1220 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD.
; 1221 ; T1 AND T2 ARE OPTIONAL, AND SPECIFY PARAMETERS IN THE TIME FIELD
; 1222 ; CALCULATION FOR MICROINSTRUCTIONS IN WHICH THIS FIELD/SYMBOL IS USED.
; 1223 ; THE MICROASSEMBLER COMPUTES THE SUMS OF ALL THE T1'S AND ALL THE T2'S
; 1224 ; SPECIFIED FOR FIELD/SYMBOL SPECIFICATIONS IN A WORD, AND USES THE MAX
; 1225 ; OF THE TWO SUMS AS THE DEFAULT VALUE FOR THE FIELD WHOSE DEFAULT
; 1226 ; MECHANISM IS "T". EXAMPLES:
; 1227 ; AD/=<12:17> ;FIELD DEFINITION IN WHICH FOLLOWING SYMBOLS EXIST
; 1228 ; XOR=31
; 1229 ; A+B=6,1
; 1230 ; HERE THE SYMBOLS "XOR" AND "A+B" ARE DEFINED FOR THE "AD" FIELD.
; 1231 ; TO THE ASSEMBLER, THEREFORE, WRITING "AD/XOR" MEANS PUT THE VALUE 31
; 1232 ; INTO THE 6-BIT FIELD ENDING ON BIT 17 OF THE MICROWORD. THE SYMBOLS
; 1233 ; ARE CHOSEN FOR MNEMONIC SIGNIFICANCE, OF COURSE, SO ONE READING
; 1234 ; THE MICROCODE WOULD INTERPRET "AD/XOR" AS "THE OUTPUT OF AD SHALL BE THE
; 1235 ; EXCLUSIVE OR OF ITS A AND B INPUTS". SIMILIARLY, "AD/A+B" IS READ AS
; 1236 ; "AD PRODUCES THE SUM OF A AND B". THE SECOND PARAMETER IN THE DEFINITION
; 1237 ; OF "A+B" IS A CONTROL TO THE MICRO ASSEMBLER'S TIME-FIELD CALCULATION,
; 1238 ; WHICH TELLS THE ASSEMBLER THAT THIS OPERATION TAKES LONGER THAN THE
; 1239 ; BASIC CYCLE, AND THEREFORE THAT THE TIME FIELD SHOULD BE INCREASED.
; 1240 ; AR/=<24:26>D,0 ;FIELD DEFINITION FOR FOLLOWING SYMBOLS
; 1241 ; AR=0
; 1242 ; AD=2
; 1243 ; HERE THE SYMBOLS "AR" AND "AD" ARE DEFINED FOR THE FIELD NAMED
; 1244 ; "AR", WHICH CONTROLS THE AR MIXER. WE COULD WRITE AR/AR TO MEAN THAT
; 1245 ; THE AR MIXER SELECT INPUTS WOULD BE 0, WHICH IN THE
; 1246 ; HARDWARE SELECTS THE AR OUTPUT FOR RECIRCULATION TO THE REGISTER. IN
; 1247 ; PRACTICE, HOWEVER, WE WANT THIS TO BE THE DEFAULT CASE, SO THAT AR
; 1248 ; DOES NOT CHANGE UNLESS WE SPECIFICALLY REQUEST IT, SO THE FIELD
; 1249 ; DEFINITION SPECIFIES 0 AS THE DEFAULT VALUE OF THE FIELD. IF WE
; 1250 ; WANT AR LOADED FROM THE AD OUTPUT, WE WRITE "AR/AD" TO SET THE
; 1251 ; MIXER SELECTS TO PASS THE AD OUTPUT INTO THE AR.
; 1252 ;
; 1253 ;(3) LABEL DEFINITIONS
; 1254 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON
; 1255 ; PRECEDING THE MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE
; 1256 ; MICROINSTRUCTION BECOMES THE VALUE OF THE SYMBOL IN THE FIELD NAMED "J".
; 1257 ; EXAMPLE:
; 1258 ; FOO: J/FOO
; 1259 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS
; 1260 ; THE VALUE "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS
; 1261 ; OF ITSELF. THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD
; 1262 ; LOOP ON ITSELF.
; 1263 ;
; 1264 ;(4) COMMENTS
; 1265 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE
; 1266 ; TO BE IGNORED BY THE ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS.
; 1267 ;
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-2
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1268 ;(5) MICROINSTRUCTION DEFINITION
; 1269 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME,
; 1270 ; FOLLOWED BY SLASH (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A
; 1271 ; SYMBOL DEFINED FOR THAT FIELD, AN OCTAL DIGIT STRING, OR A DECIMAL
; 1272 ; DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT CONTAINS "8" AND/OR
; 1273 ; "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY BE SPECIFIED
; 1274 ; IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS WITH
; 1275 ; COMMAS. EXAMPLE:
; 1276 ; ADB/BR,ADA/AR,AD/A+B,AR/AD
; 1277 ; THE FIELD NAMED "ADB" IS GIVEN THE VALUE NAMED "BR" (TO
; 1278 ; CAUSE THE MIXER ON THE B SIDE OF AD TO SELECT BR), FIELD "ADA" HAS VALUE
; 1279 ; "AR", FIELD "AD" HAS VALUE "A+B", AND FIELD "AR" HAS VALUE "AD".
; 1280 ;
; 1281 ;(6) CONTINUATION
; 1282 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR
; 1283 ; MORE LINES BY BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE
; 1284 ; LAST NON-BLANK, NON-COMMENT CHARACTER ON A LINE IS A COMMA, THE
; 1285 ; INSTRUCTION SPECIFICATION IS CONTINUED ON THE FOLLOWING LINE.
; 1286 ; EXAMPLE:
; 1287 ; ADB/BR,ADA/AR, ;SELECT AR & BR AS AD INPUTS
; 1288 ; AD/A+B,AR/AD ;TAKE THE SUM INTO AR
; 1289 ; BY CONVENTION, CONTINUATION LINES ARE INDENTED AN EXTRA TAB.
; 1290 ;
; 1291 ;(7) MACROS
; 1292 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE
; 1293 ; SPECIFICATIONS AND/OR MACROS. A MACRO DEFINITION IS A LINE CONTAINING
; 1294 ; THE MACRO NAME FOLLOWED BY A QUOTED STRING WHICH IS THE VALUE OF THE
; 1295 ; MACRO. EXAMPLE:
; 1296 ; AR_AR+BR "ADB/BR,ADA/AR,AD/A+B,AR/AD"
; 1297 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT
; 1298 ; TO THE APPEARANCE OF ITS VALUE. MACROS FOR VARIOUS FUNCTIONS
; 1299 ; ARE DEFINED IN "MACRO.MIC".
; 1300 ;
; 1301 ;(8) PSEUDO OPS
; 1302 ; THE MICRO ASSEMBLER HAS 10 PSEUDO-OPERATORS:
; 1303 ;.DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL
; 1304 ;BE LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE
; 1305 ;MEANINGFUL IN SUBSEQUENT MICROCODE
; 1306 ;.TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND
; 1307 ;.TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING.
; 1308 ;.SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER,
; 1309 ;.CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER,
; 1310 ;.DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER.
; 1311 ;.IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO,
; 1312 ;.IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND
; 1313 ;.ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED.
; 1314 ;
; 1315 ;(9) LOCATION CONTROL
; 1316 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT
; 1317 ; ADDRESS.
; 1318 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY
; 1319 ; A STRING OF 0'S, 1'S, AND/OR *'S, SPECIFIES A CONSTRAINT ON THE
; 1320 ; ADDRESS OF FOLLOWING MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS
; 1321 ; IN THE CONSTRAINT STRING (EXCLUDING THE "=") IS THE NUMBER OF LOW-ORDER
; 1322 ; BITS CONSTRAINED IN THE ADDRESS. THE MICROASSEMBLER ATTEMPTS TO FIND
; 1323 ; AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN THE POSITIONS
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-3
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 1324 ; CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE
; 1325 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS.
; 1326 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT
; 1327 ; IMPLIES A BLOCK OF <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S
; 1328 ; IN THE STRING. ALL LOCATIONS IN THE BLOCK WILL HAVE 1'S IN THE ADDRESS
; 1329 ; BITS CORRESPONDING TO 1'S IN THE STRING, AND BIT POSITIONS DENOTED BY *'S
; 1330 ; WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK.
; 1331 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS
; 1332 ; COUNTING IN THE "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW
; 1333 ; CONSTRAINT STRING OCCURING WITHIN A BLOCK MAY FORCE SKIPPING OVER
; 1334 ; SOME LOCATIONS OF THE BLOCK. WITHIN A BLOCK, A NEW CONSTRAINT
; 1335 ; STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS PROGRESSION, IT
; 1336 ; MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE
; 1337 ; MICROASSEMBLER WILL LATER FILL THEM IN.
; 1338 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0",
; 1339 ; "1", OR "*") SERVES TO TERMINATE A CONSTRAINT BLOCK.
; 1340 ; EXAMPLES:
; 1341 ; =0
; 1342 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO--
; 1343 ; THE MICROASSEMBLER FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS
; 1344 ; THE NEXT TWO MICROINSTRUCTIONS INTO THEM.
; 1345 ; =11
; 1346 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST
; 1347 ; BOTH BE ONES. SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE
; 1348 ; ASSEMBLER FINDS ONLY ONE LOCATION MEETING THE CONSTRAINT.
; 1349 ; =0*****
; 1350 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE
; 1351 ; TO THE IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT
; 1352 ; ADDRESS PROGRESSION APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS
; 1353 ; CONSTRAINT FINDS ONE WORD IN WHICH THE "40" BIT IS ZERO, AND DOES
; 1354 ; NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ONE.
; 1355 ;THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS.
; 1356 ;HOWEVER NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE
; 1357 ;CONSTRAINT MENTIONED ABOVE.
; 1358
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 MICROCODE LISTING TEMPLATE
; 1359 .TOC "MICROCODE LISTING TEMPLATE"
; 1360 ;HERE IS A TEMPLATE WHICH CAN BE USED WITH THE MICROCODE
; 1361 ; LISTING TO IDENTIFY FIELDS IN THE OUTPUT --
; 1362
; 1363
; 1364 ; ---- ---- ---- ---- ---- ---- ---- ----
; 1365 ; [--] [--] []!! !!!! !!!! !![] [][] ![-]
; 1366 ; ! ! !!! !!!! !!!! !! ! ! ! ! + # = MAGIC NUMBERS
; 1367 ; ! ! !!! !!!! !!!! !! ! ! ! + MARK = SCOPE SYNC
; 1368 ; ! ! !!! !!!! !!!! !! ! ! !
; 1369 ; ! ! !!! !!!! !!!! !! ! ! + CALL, DISP/SPEC = SPEC FUNCTIONS
; 1370 ; ! ! !!! !!!! !!!! !! ! + SKIP/COND = SPECIAL FUNCTIONS
; 1371 ; ! ! !!! !!!! !!!! !! !
; 1372 ; ! ! !!! !!!! !!!! !! + TIME, MEM = UINST TIME & MEM FUNCTION
; 1373 ; ! ! !!! !!!! !!!! !+ VMA = VMA INPUT SELECT
; 1374 ; ! ! !!! !!!! !!!! + SH/ARMM = SH FUNCTION / ARMM SELECT
; 1375 ; ! ! !!! !!!! !!!!
; 1376 ; ! ! !!! !!!! !!!+ SC, FE = SC INPUT SELECT & FE LOAD
; 1377 ; ! ! !!! !!!! !!+ SCADB = SELECT FOR SCAD "B" INPUT
; 1378 ; ! ! !!! !!!! !+ SCADA = ENABLE AND SELECT FOR SCAD "A" INPUT
; 1379 ; ! ! !!! !!!! + SCAD = SC/FE ADDER FUNCTION
; 1380 ; ! ! !!! !!!!
; 1381 ; ! ! !!! !!!+ FM ADR = FAST MEMORY ADDRESS SELECT
; 1382 ; ! ! !!! !!+ BR, BRX, MQ = LOAD BR & BRX, SEL FOR MQ
; 1383 ; ! ! !!! !+ ARX = SELECT FOR ARX INPUT
; 1384 ; ! ! !!! + AR = SELECT FOR AR INPUT
; 1385 ; ! ! !!!
; 1386 ; ! ! !!+ ADB = SELECT FOR ADDER "B" INPUT
; 1387 ; ! ! !+ ADA = SELECT AND ENABLE FOR ADDER "A" INPUT
; 1388 ; ! ! + AD = OPERATION IN ADDER AND ADDER EXTENSION
; 1389 ; ! !
; 1390 ; ! + J = BASE ADDRESS TO WHICH THIS MICROINSTRUCTION JUMPS
; 1391 ; !
; 1392 ; + LOCATION IN CRAM INTO WHICH THIS WORD IS LOADED
; 1393 ;
; 1394 ; U/V = MICRO INSTRUCTION FOR CRAM
; 1395
; 1396 ;*******************************************************************
; 1397
; 1398 ; D = WORD FOR DRAM
; 1399 ;
; 1400 ; + LOCATION IN DRAM INTO WHICH THIS WORD IS LOADED
; 1401 ; !
; 1402 ; ! + A = OPERAND ACCESS CONTROL
; 1403 ; ! !+ B = INSTRUCTION "MODE"
; 1404 ; ! !! + P = PARITY FOR THIS WORD
; 1405 ; ! !! !
; 1406 ; ! !! ! + J = ADDRESS OF HANDLER FOR THIS INSTRUCTION
; 1407 ; [--] !! ! [--]
; 1408 ; ---- ---- ----
; 1409
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 KL10 INSTRUCTION OPCODE MAP
; 1410 .TOC "KL10 INSTRUCTION OPCODE MAP"
; 1411
; 1412 ; 0 1 2 3 4 5 6 7
; 1413 ;100 UUO UUO EFAD EFSB JSYS ADJSP EFMP EFDV
; 1414 ;110 DFAD DFSB DFMP DFDV DADD DSUB DMUL DDIV
; 1415 ;120 DMOVE DMOVN FIX EXTEND DMOVEM DMOVNM FIXR FLTR
; 1416 ;130 UFA DFN FSC IBP ILDB LDB IDPB DPB
; 1417 ;140 FAD FADL FADM FADB FADR FADRI FADRM FADRB
; 1418 ;150 FSB FSBL FSBM FSBB FSBR FSBRI FSBRM FSBRB
; 1419 ;160 FMP FMPL FMPM FMPB FMPR FMPRI FMPRM FMPRB
; 1420 ;170 FDV FDVL FDVM FDVB FDVR FDVRI FDVRM FDVRB
; 1421 ; 0 1 2 3 4 5 6 7
; 1422 ;200 MOVE MOVEI MOVEM MOVES MOVS MOVSI MOVSM MOVSS
; 1423 ;210 MOVN MOVNI MOVNM MOVNS MOVM MOVMI MOVMM MOVMS
; 1424 ;220 IMUL IMULI IMULM IMULB MUL MULI MULM MULB
; 1425 ;230 IDIV IDIVI IDIVM IDIVB DIV DIVI DIVM DIVB
; 1426 ;240 ASH ROT LSH JFFO ASHC ROTC LSHC UUO
; 1427 ;250 EXCH BLT AOBJP AOBJN JRST JFCL XCT MAP
; 1428 ;260 PUSHJ PUSH POP POPJ JSR JSP JSA JRA
; 1429 ;270 ADD ADDI ADDM ADDB SUB SUBI SUBM SUBB
; 1430 ; 0 1 2 3 4 5 6 7
; 1431 ;300 CAI CAIL CAIE CAILE CAIA CAIGE CAIN CAIG
; 1432 ;310 CAM CAML CAME CAMLE CAMA CAMGE CAMN CAMG
; 1433 ;320 JUMP JUMPL JUMPE JUMPLE JUMPA JUMPGE JUMPN JUMPG
; 1434 ;330 SKIP SKIPL SKIPE SKIPLE SKIPA SKIPGE SKIPN SKIPG
; 1435 ;340 AOJ AOJL AOJE AOJLE AOJA AOJGE AOJN AOJG
; 1436 ;350 AOS AOSL AOSE AOSLE AOSA AOSGE AOSN AOSG
; 1437 ;360 SOJ SOJL SOJE SOJLE SOJA SOJGE SOJN SOJG
; 1438 ;370 SOS SOSL SOSE SOSLE SOSA SOSGE SOSN SOSG
; 1439 ; 0 1 2 3 4 5 6 7
; 1440 ;400 SETZ SETZI SETZM SETZB AND ANDI ANDM ANDB
; 1441 ;410 ANDCA ANDCAI ANDCAM ANDCAB SETM SETMI SETMM SETMB
; 1442 ;420 ANDCM ANDCMI ANDCMM ANDCMB SETA SETAI SETAM SETAB
; 1443 ;430 XOR XORI XORM XORB IOR IORI IORM IORB
; 1444 ;440 ANDCB ANDCBI ANDCBM ANDCBB EQV EQVI EQVM EQVB
; 1445 ;450 SETCA SETCAI SETCAM SETCAB ORCA ORCAI ORCAM ORCAB
; 1446 ;460 SETCM SETCMI SETCMM SETCMB ORCM ORCMI ORCMM ORCMB
; 1447 ;470 ORCB ORCBI ORCBM ORCBB SETO SETOI SETOM SETOB
; 1448 ; 0 1 2 3 4 5 6 7
; 1449 ;500 HLL HLLI HLLM HLLS HRL HRLI HRLM HRLS
; 1450 ;510 HLLZ HLLZI HLLZM HLLZS HRLZ HRLZI HRLZM HRLZS
; 1451 ;520 HLLO HLLOI HLLOM HLLOS HRLO HRLOI HRLOM HRLOS
; 1452 ;530 HLLE HLLEI HLLEM HLLES HRLE HRLEI HRLEM HRLES
; 1453 ;540 HRR HRRI HRRM HRRS HLR HLRI HLRM HLRS
; 1454 ;550 HRRZ HRRZI HRRZM HRRZS HLRZ HLRZI HLRZM HLRZS
; 1455 ;560 HRRO HRROI HRROM HRROS HLRO HLROI HLROM HLROS
; 1456 ;570 HRRE HRREI HRREM HRRES HLRE HLREI HLREM HLRES
; 1457 ; 0 1 2 3 4 5 6 7
; 1458 ;600 TRN TLN TRNE TLNE TRNA TLNA TRNN TLNN
; 1459 ;610 TDN TSN TDNE TSNE TDNA TSNA TDNN TSNN
; 1460 ;620 TRZ TLZ TRZE TLZE TRZA TLZA TRZN TLZN
; 1461 ;630 TDZ TSZ TDZE TSZE TDZA TSZA TDZN TSZN
; 1462 ;640 TRC TLC TRCE TLCE TRCA TLCA TRCN TLCN
; 1463 ;650 TDC TSC TDCE TSCE TDCA TSCA TDCN TSCN
; 1464 ;660 TRO TLO TROE TLOE TROA TLOA TRON TLON
; 1465 ;670 TDO TSO TDOE TSOE TDOA TSOA TDON TSON
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- J, AD
; 1466 .TOC "CONTROL RAM DEFINITIONS -- J, AD"
; 1467 ;FIELDS ARRANGED FOR READABILITY, NOT COMPACTNESS
; 1468 ; IN THE PROCESSOR, BITS ARE SCATTERED IN ANOTHER ORDER
; 1469
; 1470 U0/=<0:0>D,0 ;BIT 0 UNUSED
; 1471 J/=<1:11>+ ;SYMBOLS WILL BE DEFINED BY TAGS (CRA1&CRA2)
; 1472
; 1473 ;MAIN ADDER CONTROLS. Bit 0 = carry in, bit 1 = boolean operation
; 1474 ; Bits 2-5 are S8-S1 of the 10181 ALU chip. For normal arithmetic,
; 1475 ; the AD and ADX are separated unless SPEC/AD LONG or equivalent is given.
; 1476
; 1477
; 1478 AD/=<12:17> ; (EDP3, EXCEPT CARRY IN, ON CTL1)
; 1479 A+1=40,1
; 1480 A+XCRY=00,1
; 1481 ; A+ANDCB=01,1
; 1482 ; A+AND=02,1
; 1483 A*2=03,1
; 1484 A*2+1=43,1
; 1485 ; OR+1=44,1
; 1486 ; OR+ANDCB=05,1
; 1487 A+B=06,1
; 1488 A+B+1=46,1
; 1489 ; A+OR=07,1
; 1490 ORCB+1=50,1
; 1491 A-B-1=11,1
; 1492 A-B=51,1
; 1493 ; AND+ORCB=52,1
; 1494 ; A+ORCB=53,1
; 1495 XCRY-1=54,1
; 1496 ; ANDCB-1=15,1
; 1497 ; AND-1=16,1
; 1498 A-1=17,1
; 1499 ;ADDER LOGICAL FUNCTIONS
; 1500 SETCA=20
; 1501 ORC=21 ;NAND
; 1502 ORCA=22
; 1503 1S=23
; 1504 ANDC=24 ;NOR
; 1505 NOR=24
; 1506 SETCB=25
; 1507 EQV=26
; 1508 ORCB=27
; 1509 ANDCA=30
; 1510 XOR=31
; 1511 B=32
; 1512 OR=33
; 1513 0S=34
; 1514 ANDCB=35
; 1515 AND=36
; 1516 A=37
; 1517 ;BOOLEAN FUNCTIONS FOR WHICH CRY0 IS INTERESTING
; 1518 CRY A EQ -1=60,1 ;GENERATE CRY0 IF A=1S, AD=SETCA
; 1519 CRY A.B#0=36,1 ;CRY 0 IF A&B NON-ZERO, AD=AND
; 1520 CRY A#0=37,1 ;GENERATE CRY0 IF A .NE. 0, AD=A
; 1521 CRY A GE B=71,1 ;CRY0 IF A .GE. B, UNSIGNED; AD=XOR
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 1522 .TOC "CONTROL RAM DEFINITIONS -- DATA PATH MIXERS"
; 1523
; 1524 ADA/=<18:20> ; (EDP3)
; 1525 AR=0
; 1526 ARX=1
; 1527 MQ=2
; 1528 PC=3
; 1529 ADA EN/=<18:18> ;ADA ENABLE ALSO ENABLES ADXA (EDP3)
; 1530 EN=0
; 1531 0S=1
; 1532 U21/=<21:21>D,0 ;BIT 21 UNUSED
; 1533 ADB/=<22:23> ;CONTROLS ADB AND ADXB (EDP3)
; 1534 FM=0,,1 ;MUST HAVE TIME FOR PARITY CHECK
; 1535 BR*2=1
; 1536 BR=2
; 1537 AR*4=3
; 1538 U23/=<23:23>D,1 ;PREVENT DEFAULT SELECTION OF FM
; 1539 ;FORCE IT TO TAKE ONE OF THE SHORTER
; 1540 ;PATHS IF FM NOT NEEDED ALSO DISABLES
; 1541 ;PARITY CHECKING LOGIC
; 1542
; 1543 ;REGISTER INPUTS
; 1544
; 1545 AR/=<24:26>D,0 ; (EDP1)
; 1546 AR=0
; 1547 ARMM=0 ;REQUIRES SPECIAL FUNCTION
; 1548 CACHE=1 ;ORDINARILY SELECTED BY HWARE
; 1549 AD=2
; 1550 EBUS=3
; 1551 SH=4
; 1552 AD*2=5
; 1553 ADX=6
; 1554 AD*.25=7
; 1555 ARX/=<27:29>D,0 ; (EDP2)
; 1556 ; ARX=0 ;BY DEFAULT
; 1557 CACHE=1 ;ORDINARILY BY MBOX RESP
; 1558 AD=2
; 1559 MQ=3
; 1560 SH=4
; 1561 ADX*2=5
; 1562 ADX=6
; 1563 ADX*.25=7
; 1564 BR/=<30:30>D,0 ;DEFAULT TO RECIRCULATE (EDP4)
; 1565 AR=1
; 1566 BRX/=<31:31>D,0 ;DEFAULT TO RECIRCULATE (EDP4)
; 1567 ARX=1
; 1568 MQ/=<32:32>D,0 ;DEFAULT TO RECIRCULATE (EDP2)
; 1569 SH=1 ;LOAD FROM SHIFT MATRIX
; 1570 MQ*2=0 ;WITH SPEC/MQ SHIFT
; 1571 MQ*.25=1 ;WITH SPEC/MQ SHIFT
; 1572 MQ SEL=0 ;WITH COND/REG CTL
; 1573 MQM SEL=1 ;WITH COND/REG CTL
; 1574
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 1575 ;FMADR SELECTS THE SOURCE OF THE FAST MEMORY ADDRESS,
; 1576 ; RATHER THAN PROVIDING THE ADDRESS ITSELF
; 1577
; 1578 FMADR/=<33:35> ; (APR4&APR5)
; 1579 AC0=0 ;IR 9-12
; 1580 AC1=1 ;<IR 9-12>+1 MOD 16
; 1581 XR=2 ;ARX 14-17
; 1582 VMA=3 ;VMA 32-35
; 1583 AC2=4 ;<IR 9-12>+2 MOD 16
; 1584 AC3=5 ;<IR 9-12>+3 MOD 16
;;1585 .IFNOT/MODEL.B
;;1586 AC4=6 ;CURRENT BLOCK, AC+4
;;1587 ac5=7 ;current block, ac+5
; 1588 .IF/MODEL.B
; 1589 AC+#=6 ;CURRENT BLOCK, AC+ MAGIC #
; 1590 .ENDIF/MODEL.B
; 1591 #B#=7 ;BLOCK AND AC SELECTED BY # FIELD
; 1592
; 1593 .TOC "CONTROL RAM DEFINITIONS -- 10-BIT LOGIC"
; 1594
; 1595 SCAD/=<36:38> ; (SCD1)
; 1596 A=0
; 1597 A-B-1=1
; 1598 A+B=2
; 1599 A-1=3
; 1600 A+1=4
; 1601 A-B=5
; 1602 OR=6
; 1603 AND=7
; 1604 SCADA/=<39:41> ; (SCD1)
; 1605 FE=0
; 1606 AR0-5=1 ;BYTE POINTER P FIELD
; 1607 AR EXP=2 ;<AR 01-08> XOR <AR 00>
; 1608 #=3 ;SIGN EXTENDED WITH #00
; 1609 SCADA EN/=<39:39> ; (SCD1)
; 1610 0S=1
; 1611 U42/=<42:42>D,0 ;BIT 42 UNUSED
; 1612 SCADB/=<43:44> ; (SCD1)
; 1613 SC=0
; 1614 AR6-11=1 ;BYTE POINTER S FIELD
; 1615 AR0-8=2
; 1616 #=3 ;NO SIGN EXTENSION
; 1617 U45/=<45:45>D,0 ;BIT 45 UNUSED
; 1618 SC/=<46:46>D,0 ;RECIRCULATE BY DEFAULT (SCD2)
; 1619 FE=0 ;WITH SCM ALT
; 1620 SCAD=1
; 1621 AR SHIFT=1 ;WITH SCM ALT ;AR 18, 28-35
; 1622 FE/=<47:47>D,0 ;RECIRCULATE BY DEFAULT (SCD2)
; 1623 SCAD=1
; 1624 U48/=<48:48>D,0 ;BIT 48 UNUSED
; 1625
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME
; 1626 .TOC "CONTROL RAM DEFINITIONS -- SHIFT, ARMM, VMA, TIME"
; 1627
; 1628 SH/=<49:50> ; (SH1)
; 1629 SHIFT AR!ARX=0 ;LEFT BY (SC)
; 1630 AR=1
; 1631 ARX=2
; 1632 AR SWAP=3 ;HALVES SWAPPED
; 1633 ARMM/=<49:50> ;SAME BITS AS SH CONTROL (SCD3)
; 1634 #=0 ;MAGIC # 0-8 TO AR 0-8
; 1635 EXP_SIGN=1 ;AR1-8 _ AR0
; 1636 SCAD EXP=2 ;AR0-8_SCAD
; 1637 SCAD POS=3 ;AR0-5_SCAD
; 1638 .IF/MODEL.B
; 1639 VMAX/=<49:50> ;SAME BITS AS SH CONTROL (VMA4)
; 1640 VMAX=0 ;VMA SECTION #
; 1641 PC SEC=1 ;PC SECTION #
; 1642 PREV SEC=2 ;PREVIOUS CONTEXT SECT
; 1643 AD12-17=3
; 1644 .ENDIF/MODEL.B
; 1645 U51/=<51:51>D,0 ;BIT 51 UNUSED
; 1646 VMA/=<52:53>D,0 ;ALSO CONTROLLED BY SPECIAL FUNCTIONS
; 1647 VMA=0 ;BY DEFAULT
; 1648 PC=1 ;MAY BE OVERRIDDEN BY MCL LOGIC TO LOAD FROM AD
; 1649 LOAD=1 ; IF WE KNOW IT WILL BE OVERRIDDEN, USE THIS
; 1650 PC+1=2
; 1651 AD=3 ;ENTIRE VMA, INCLUDING SECTION
; 1652 TIME/=<54:55>T ;CONTROLS MINIMUM MICROINSTRUCTION EXECUTION
; 1653 ; TIME, COUNTING MBOX CLOCK TICKS (CLK)
; 1654 ;ASSEMBLER GENERALLY TAKES CARE OF THIS
; 1655 2T=0 ;2 TICKS
; 1656 3T=1 ;3 TICKS
; 1657 4T=2 ;4 TICKS
; 1658 5T=3 ;5 TICKS (COND/DIAG FUNC & #00, --> .5 USEC)
; 1659
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 1660 .TOC "CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS"
; 1661
; 1662 MEM/=<56:59>D,0 ; (MCL1)
; 1663 ; NOP=0 ;DEFAULT
; 1664 ARL IND=1 ;CONTROL AR LEFT MUX FROM # FIELD
; 1665 MB WAIT=2 ;WAIT FOR MBOX RESP IF PENDING
; 1666 A RD=4 ;OPERAND READ
; 1667 B WRITE=5 ;CONDITIONAL WRITE ON DRAM B 01
; 1668 FETCH=6 ;LOAD NEXT INSTR TO ARX (CONTROL BY #)
; 1669 REG FUNC=7 ;MBOX REGISTER FUNCTIONS
; 1670 LOAD AR=12
; 1671 LOAD ARX=13
; 1672 WRITE=16 ;FROM AR TO MEMORY
; 1673 .IF/MODEL.B
; 1674 RESTORE VMA=3 ;AD FUNC WITHOUT GENERATING A REQUEST
; 1675 AD FUNC=10 ;FUNCTION LOADED FROM AD LEFT
; 1676 EA CALC=11 ;FUNCTION DECODED FROM # FIELD
; 1677 RW=14 ;READ, TEST WRITABILITY
; 1678 RPW=15 ;READ-PAUSE-WRITE
; 1679 IFET=17 ;UNCONDITIONAL FETCH
;;1680 .IFNOT/MODEL.B ;OLD-STYLE MCL BOARD
;;1681 SEC 0=3 ;CLEAR VMAX
;;1682 A IND=10 ;A-TYPE INDIRECT
;;1683 BYTE IND=11 ;BYTE-TYPE INDIRECT
;;1684 AD FUNC=14 ;FUNCTION FROM AD LEFT
;;1685 BYTE RD=15 ;BYTE READ TO BOTH AR AND ARX
;;1686 RPW=17 ;LOAD AR WITH RPW CYCLE
; 1687 .ENDIF/MODEL.B
; 1688
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS
; 1689 .TOC "CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS"
; 1690
; 1691 SKIP/=<60:65>D,0 ;MICRO-PROGRAM SKIPS
; 1692 ; 40-57 DECODED ON (CRA2)
; 1693 ; SPARE=40
; 1694 EVEN PAR=41,,1 ;AR PARITY IS EVEN
; 1695 BR0=42 ;BR BIT 00
; 1696 ARX0=43 ;ARX BIT 00
; 1697 AR18=44 ;AR BIT 18
; 1698 AR0=45 ;AR BIT 00
; 1699 AC#0=46 ;IR9-12 .EQ. 0
; 1700 SC0=47 ;SC BIT 00
;;1701 .IFNOT/MODEL.B
;;1702 SC .LT. 36=50
; 1703 .IF/MODEL.B
; 1704 PC SEC0=50
; 1705 .ENDIF/MODEL.B
; 1706 SCAD0=51,,1 ;SIGN OF SCAD OUTPUT
; 1707 SCAD#0=52,,1 ;SCAD OUTPUT IS NON-ZERO
; 1708 ADX0=53,1 ;ADDER EXTENSION BIT 00
; 1709 AD CRY0=54,1 ;CARRY OUT OF AD BIT -2 (BOOLE IGNORED)
; 1710 AD0=55,1 ;ADDER BIT 00
; 1711 AD#0=56,1 ;AD BITS 00-35 CONTAIN SOME ONES
; 1712 .IF/MODEL.B
; 1713 -LOCAL AC ADDR=57 ;VMA18-31 =0 ON LOCAL REF IN SEC >1
; 1714 .ENDIF/MODEL.B
; 1715 ; 60-77 DECODED ON (CON2)
; 1716 FETCH=60 ;VMA FETCH (LAST CYCLE WAS A FETCH)
; 1717 KERNEL=61 ;PC IS IN KERNEL MODE
; 1718 USER=62 ;PC IS IN USER MODE
; 1719 PUBLIC=63 ;PC IS PUBLIC (INCLUDING SUPER)
; 1720 RPW REF=64 ;MIDDLE OF READ-PAUSE-WRITE CYCLE
; 1721 PI CYCLE=65 ;PI CYCLE IN PROGRESS
; 1722 -EBUS GRANT=66 ;PI HASN'T RELEASED BUS FOR CPU USE
; 1723 -EBUS XFER=67 ;NO TRANSFER RECIEVED FROM DEVICE
; 1724 INTRPT=70 ;AN INTERRUPT REQUEST WAITING FOR SERVICE
; 1725 -START=71 ;NO CONTINUE BUTTON
; 1726 RUN=72 ;PROCESSOR NOT HALTED
; 1727 IO LEGAL=73 ;KERNEL, PI CYCLE, USER IOT, OR DEVICE .GE. 740
; 1728 P!S XCT=74 ;PXCT OR SXCT
; 1729 .IF/MODEL.B
; 1730 -VMA SEC0=75 ;VMA SECTION NUMBER (13-17) IS NOT ZERO
; 1731 .ENDIF/MODEL.B
; 1732 AC REF=76,,1 ;VMA .LT.20 ON READ OR WRITE
; 1733 -MTR REQ=77 ;INTERRUPT REQUEST NOT DUE TO METER
; 1734
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- SKIP/COND SPECIAL FUNCTIONS
; 1735 ;SKIP/COND FIELD CONTINUED
; 1736
; 1737 COND/=<60:65>D,0 ;NON-SKIP SPECIAL FUNCTIONS
; 1738 ;0-7 DECODED ON (CTL2)
; 1739 ; NOP=0 ;BY DEFAULT
; 1740 LD AR0-8=1
; 1741 LD AR9-17=2
; 1742 LD AR18-35=3
; 1743 AR CLR=4
; 1744 ARX CLR=5
; 1745 ARL IND=6 ;CONTROL AR LEFT, CALL, AND CLEAR BITS FROM #
; 1746 REG CTL=7 ;CONTROL AR LOAD, EXP TST, AND MQ FROM #
; 1747 ; 10-37 DECODED ON (CON1)
; 1748 FM WRITE=10 ;WRITE AR INTO CURRENTLY ADDRESSED FM LOC
; 1749 PCF_#=11 ;SET PC FLAGS FROM # FIELD
; 1750 FE SHRT=12 ;SHIFT FE RIGHT 1
; 1751 AD FLAGS=13 ;SET PC CRY0, CRY1, OVRFLO, TRAP1 AS APPROPRIATE
; 1752 LOAD IR=14 ;LATCH AD OR CACHE DATA INTO IR
; 1753 SPEC INSTR=15 ;SET/CLR SXCT, PXCT, PICYC, TRAP INSTR FLAGS
; 1754 SR_#=16 ;CONTROL FOR STATE REGISTER
; 1755 SEL VMA=17 ;READ VMA THROUGH ADA/PC
; 1756 DIAG FUNC=20 ;SELECT DIAGNOSTIC INFO ONTO EBUS
; 1757 EBOX STATE=21 ;SET STATE FLOPS
; 1758 EBUS CTL=22 ;I/O FUNCTIONS
; 1759 MBOX CTL=23
; 1760 ; SPARE=24
; 1761 .IF/MODEL.B
; 1762 LONG EN=25 ;THIS WORD CAN BE INTERPRETED AS LONG INDIRECT
; 1763 .ENDIF/MODEL.B
; 1764 ; SPARE=26
; 1765 ; SPARE=27
; 1766 VMA_#=30
; 1767 VMA_#+TRAP=31
; 1768 VMA_#+MODE=32
; 1769 VMA_#+AR32-35=33
; 1770 VMA_#+PI*2=34
; 1771 VMA DEC=35 ;VMA_VMA-1
; 1772 VMA INC=36 ;VMA_VMA+1
; 1773 LD VMA HELD=37 ;HOLD VMA ON SIDE
;;1774 .IFNOT/MODEL.B
;;1775 U66/=<66:66>D,0 ;BIT 66 UNUSED
; 1776 .IF/MODEL.B
; 1777 CALL/=<66:66>D,0 ;CALL FUNCTION
; 1778 CALL=1 ;GOOD TO 15 LEVELS IN MODEL B
; 1779 .ENDIF/MODEL.B
; 1780
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 1781 .TOC "CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS"
; 1782
; 1783 DISP/=<67:71>D,10 ;0-7 AND 30-37 ARE DISPATCHES (CRA1&CRA2)
; 1784 DIAG=0
; 1785 DRAM J=1
; 1786 DRAM A RD=2 ;IMPLIES INH CRY18
; 1787 RETURN=3 ;POPJ RETURN
; 1788 PG FAIL=4 ;PAGE FAIL TYPE DISP
; 1789 SR=5 ;16 WAYS ON STATE REGISTER
; 1790 NICOND=6 ;NEXT INSTRUCTION CONDITION (see NEXT for detail)
; 1791 SH0-3=7,,2 ;16 WAYS ON HIGH-ORDER BITS OF SHIFTER
; 1792 MUL=30 ;FE0*4 + MQ34*2 + MQ35; implies MQ SHIFT, AD LONG
; 1793 DIV=31,,1 ;FE0*4 + BR0*2 + AD CRY0; implies MQ SHIFT, AD LONG
; 1794 SIGNS=32,1 ;ARX0*8 + AR0*4 + BR0*2 + AD0
; 1795 DRAM B=33 ;8 WAYS ON DRAM B FIELD
; 1796 BYTE=34,,1 ;FPD*4 + AR12*2 + SCAD0
; 1797 NORM=35,2 ;See normalization for details. Implies AD LONG
; 1798 EA MOD=36 ;(ARX0 or -LONG EN)*8 + -(LONG EN and ARX1)*4 +
; 1799 ;ARX13*2 + (ARX2-5) or (ARX14-17) non zero; enable
; 1800 ;is (ARX0 or -LONG EN) for second case. If ARX18
; 1801 ;is 0, clear AR left; otherwise, poke ARL select
; 1802 ;to set bit 2 (usually gates AD left into ARL)
;;1803 .IFNOT/MODEL.B
;;1804 EA TYPE=37
; 1805 .ENDIF/MODEL.B
; 1806
; 1807 SPEC/=<67:71>D,10 ;NON-DISPATCH SPECIAL FUNCTIONS (CTL1)
; 1808 ; NOP=10 ;DEFAULT
; 1809 INH CRY18=11
; 1810 MQ SHIFT=12 ;ENABLE MQ*2, MQ SHRT2
; 1811 SCM ALT=13 ;ENABLE FE, ARSHIFT
; 1812 CLR FPD=14
; 1813 LOAD PC=15
; 1814 XCRY AR0=16 ;CARRY INTO AD IS XOR'D WITH AR00
; 1815 GEN CRY18=17
;;1816 .IFNOT/MODEL.B
;;1817 SEC HOLD=20 ;INHIBIT LOADING VMAX
;;1818 CALL=21 ;MAX DEPTH 4, INCLUDING PAGE REFILL
; 1819 .IF/MODEL.B
; 1820 STACK UPDATE=20 ;CONTROL CRY18 IF LOCAL STACK
; 1821 .ENDIF/MODEL.B
; 1822 ARL IND=22 ;# SPECIFIES ARL MIX, ENABLES, & CALL
; 1823 MTR CTL=23 ;# CONTROLS METERS
; 1824 FLAG CTL=24 ;FUNCTION ENCODED IN # FIELD
; 1825 SAVE FLAGS=25 ;TELLS PI CYCLE TO HOLD INTRPT
; 1826 SP MEM CYCLE=26 ;MEM REQUEST IS MODIFIED BY #
; 1827 AD LONG=27 ;AD BECOMES 72 BIT ALU
; 1828
; 1829 U73/=<72:73>D,0 ;BITS 72-73 UNUSED
; 1830
; 1831 MARK/=<74:74>D,0 ;FIELD SERVICE "MARK" BIT
; 1832
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1833 .TOC "CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD"
; 1834
; 1835 #/=<75:83>D,0 ;THE INFAMOUS "MAGIC NUMBERS"
; 1836
; 1837 ;THE OPTIONS DESIGNATE CERTAIN ASSEMBLIES FROM THE SAME
; 1838 ;MICROCODE SOURCES
; 1839 ;# BIT 0 INDICATES KLPAGING
; 1840 ;# BIT 1 INDICATES EXTENDED ADDRESSING
; 1841 ;# BIT 2 INDICATES NONSTANDARD MICROCODE
; 1842 ;# BIT 3 INDICATES A CPU WITH THE PV KIT. (MODEL B)
; 1843 ;# BIT 8 INDICATES INSTRUCTION STATISTICS GATHERING
; 1844 ;(I.E. TRACKS)
; 1845 ;EACH OPTION BIT IS GIVEN A SEPERATE FIELD DEFINITION
; 1846
; 1847 KLPAGE/=<75:75> ;KLPAGING
; 1848
; 1849 .IF/KLPAGE
; 1850 OPTIONS=1
;;1851 .IFNOT/KLPAGE
;;1852 OPTIONS=0
; 1853 .ENDIF/KLPAGE
; 1854
; 1855
; 1856 LONGPC/=<76:76> ;LONG PC FORMAT AS IN EXTENDED ADDRESSING
; 1857 ; THIS IS A SLIGHTLY BASTARDIZED FORMAT IN
; 1858 .IF/LONG.PC ; MODEL A MACHINES DUE TO SPACE LIMITATIONS
; 1859 OPTIONS=1
;;1860 .IFNOT/LONG.PC
;;1861 OPTIONS=0
; 1862 .ENDIF/LONG.PC
; 1863
; 1864
; 1865 NONSTD/=<77:77> ;NONSTANDARD MICROCODE (IE DIAGNOSTIC MICROCODE)
; 1866
;;1867 .IF/NONSTD
;;1868 OPTIONS=1
; 1869 .IFNOT/NONSTD
; 1870 OPTIONS=0
; 1871 .ENDIF/NONSTD
; 1872
; 1873 PV/=<78:78> ;MODEL B - PV CPU
; 1874
; 1875 .IF/MODEL.B
; 1876 OPTIONS=1
;;1877 .IFNOT/MODEL.B
;;1878 OPTIONS=0
; 1879 .ENDIF/MODEL.B
; 1880
; 1881 ISTAT/=<83:83> ;STATISTICS GATHERING CODE (IE TRACKS)
; 1882
;;1883 .IF/INSTR.STAT
;;1884 OPTIONS=1
; 1885 .IFNOT/INSTR.STAT
; 1886 OPTIONS=0
; 1887 .ENDIF/INSTR.STAT
; 1888
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13-1
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1889 ACB/=<77:79> ;AC block number. Used with FMADR/#B#
; 1890 PAGB=6 ;AC block used for KL paging registers
; 1891 MICROB=7 ;AC block for general microcode scratch
; 1892
; 1893 AC#/=<80:83> ;AC number used with ACB or AC-OP (below)
; 1894
; 1895 .IF/MODEL.B
; 1896 ;
; 1897 ; WARNING !!! BECAUSE OF A TIMING PROBLEM IN THE HARDWARE ALL AC-OPS
; 1898 ; MUST HAVE THE NUMBER FIELD THE SAME IN THE PREVIOUS
; 1899 ; MICROINSTRUCTION. THE SYMPTOM WILL BE GARBAGE WRITTEN IN A
; 1900 ; DIFFERENT AC AS THE ADDRESS LINES DON'T MAKE IT IN TIME
; 1901 ; FOR THE WRITE PULSE.
; 1902 ;
; 1903 AC-OP/=<75:79> ;CONTROLS OPERATION ON AC AND AC#
; 1904 AC+#=6
; 1905 #=32 ;JUST AC#
; 1906 OR=33 ;AC <OR> AC#
; 1907 ;ALL AD/ FUNCTIONS <40 WORK
; 1908 .ENDIF/MODEL.B
; 1909
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1910 ;VARIOUS SPECIAL FUNCTIONS ENABLE SPECIAL DECODING OF THE
; 1911 ; "MAGIC #" FIELD, AS FOLLOWS:
; 1912
; 1913 ;SPECIAL DATA PATH CONTROLS
; 1914
;;1915 .IFNOT/MODEL.B
;;1916 CALL/=<75:75> ;ENABLED BY ARL IND (CTL2)
;;1917 CALL=1
; 1918 .ENDIF/MODEL.B
; 1919 AR0-8/=<76:76> ;ENABLED BY ARL IND (CTL2)
; 1920 LOAD=1
; 1921 CLR/=<77:80> ;ENABLED BY ARL IND (CTL2)
; 1922 MQ=10
; 1923 ARX=4
; 1924 ARL=2
; 1925 ARR=1
; 1926 AR=3
; 1927 AR+ARX=7
; 1928 AR+MQ=13
; 1929 ARX+MQ=14
; 1930 AR+ARX+MQ=17
; 1931 ARL+ARX=6
; 1932 ARL+ARX+MQ=16
; 1933 ARR+MQ=11
; 1934 ARL/=<81:83> ;ENABLED BY ARL IND (CTL2)
; 1935 ARL=0
; 1936 ARMM=0 ;REQUIRES SPECIAL FUNCTION
; 1937 CACHE=1 ;ORDINARILY SELECTED BY HWARE
; 1938 AD=2
; 1939 EBUS=3
; 1940 SH=4
; 1941 AD*2=5
; 1942 ADX=6
; 1943 AD*.25=7
; 1944 AR CTL/=<75:77> ;ENABLED BY COND/REG CTL (CTL2)
; 1945 AR0-8 LOAD=4
; 1946 AR9-17 LOAD=2
; 1947 ARR LOAD=1
; 1948 ARL LOAD=6
; 1949 EXP TST/=<80:80> ;ENABLED BY COND/REG CTL (CTL1)
; 1950 AR_EXP=1
; 1951 MQ CTL/=<82:83> ;ENABLED BY COND/REG CTL (CTL2)
; 1952 ; MQ=0 ;WITH MQ/MQ SEL
; 1953 MQ*2=1 ; "
; 1954 ; MQ*.5=2 ; " (DROPS BITS 0,6,12,18,24,30)
; 1955 0S=3 ; "
; 1956 SH=0 ;WITH MQ/MQM SEL
; 1957 MQ*.25=1 ; "
; 1958 1S=2 ; "
; 1959 AD=3 ; "
; 1960
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1961 ;SPECIAL CONTROL OF EBOX FLAGS & FUNCTIONS
; 1962
; 1963 PC FLAGS/=<75:83> ;ENABLED BY COND/PCF_# (SCD4)
; 1964 AROV=420 ;SET ARITH OVFLO & TRAP1
; 1965 FLOV=620 ;SAME, PLUS FLOATING OVFLO
; 1966 FPD=100 ;SET FIRST PART DONE
; 1967 TRAP2=40 ;SET TRAP2 (PDL OVFLO)
; 1968 TRAP1=20 ;SET TRAP1 (ARITH OVFLO)
; 1969 FXU=630 ;FLOV + EXP UNDERFLOW
; 1970 DIV CHK=424 ;NO DIVIDE + AROV
; 1971 FDV CHK=624 ;FLOATING NO DIVIDE
; 1972 FLAG CTL/=<75:83> ;ENABLED BY SPEC/FLAG CTL (SCD5)
; 1973 RSTR FLAGS=420 ;AS IN JRSTF
; 1974 JFCL=602 ;FORCE PC 00 = AROV
; 1975 JFCL+LD=622 ;SECOND PART OF JFCL -- CLEAR TESTED FLAGS
; 1976 DISMISS=502 ;CLEAR PI CYCLE IF SET (CON5)
; 1977 ; ELSE DISMISS HIGHEST PI HOLD
; 1978 DISMISS+LD=522 ;LOAD FLAGS AND DISMISS
; 1979 HALT=442 ;STOP PROCESSOR IF LEGAL (CON2)
; 1980 SET FLAGS=20 ;AS IN MUUO
; 1981 PORTAL=412 ;CLEAR PUBLIC IF PRIVATE INSTR
; 1982 SPEC INSTR/=<75:83> ;ENABLED BY COND/SPEC INSTR
; 1983 SET PI CYCLE=714; (CON5)
; 1984 KERNEL CYCLE=200;MAKE IO LEGAL, EXEC ADDR SPACE (CON4)
; 1985 INH PC+1=100 ;TO MAKE JSR WORK IN TRAP, INTRPT (CON4)
; 1986 SXCT=40 ;START SECTION XCT (MCL4)
; 1987 PXCT=20 ;START PREV CONTXT XCT (MCL4)
; 1988 INTRPT INH=10 ;INHIBIT INTERRUPTS (CON4)
; 1989 INSTR ABORT=4 ; (CON2)
; 1990 HALTED=302 ;TELL CONSOLE WE'RE HALTED (CON4)
; 1991 CONS XCT=310 ;FLAGS FOR INSTR XCT'D FROM CONSOLE
; 1992 CONT=0 ;RESTORE NORMAL STATE FOR CONTINUE
; 1993 FETCH/=<75:83> ;ENABLED BY MEM/FETCH
; 1994 UNCOND=400
; 1995 ;LOW 2 BITS DECODED ON (IR3)
; 1996 COMP=201,2 ;DEPENDING ON AD AND DRAM B
; 1997 SKIP=202,2
; 1998 TEST=203,1
; 1999 JUMP=502,2 ;AS IN JUMPX, ON AD AND DRAM B
; 2000 JFCL=503,1 ;JUMP ON TEST CONDITION
; 2001
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2002 ;SPECIAL MEMORY REQUEST FUNCTIONS
; 2003
; 2004 .IF/MODEL.B
; 2005 EA CALC/=<75:83> ;SPECIFIC CONTROLS FOR MEM/EA CALC
; 2006 ; LOAD AR=400
; 2007 ; LOAD ARX=200
; 2008 ; PAUSE=100 ;Freeze memory--always use with 040
; 2009 ; WRITE=040 ;SET VMA WRITE
; 2010 ; PREV EN=20 ;PREV CONTXT SELECTED BY SR AND PXCT
; 2011 ; INDIRECT=10 ;PREV CONTXT FOR EA CALC
; 2012 ; EA=2 ;RESTORATION OF ORIGINAL EA CONDITIONS
; 2013 ; STACK=1 ;PREV CONTXT SELECTED BY PXCT B12
; 2014 .IF/XADDR ;JUST TO ARX FOR EXTENDED ADDRESSING
; 2015 A IND=230 ;INDIRECT AT FIRST EA CALC TIME
;;2016 .IFNOT/XADDR ;TO BOTH AR AND ARX AS IN MODEL A
;;2017 A IND=630 ;INDIRECT AT FIRST EA CALC TIME
; 2018 .ENDIF/XADDR
; 2019 BYTE LD=420 ;Read byte data to AR only [337]
; 2020 BYTE RD=620 ;READ BYTE DATA TO AR & ARX
; 2021 BYTE RD PC=621 ;READ BYTE DATA TO AR & ARX WITH PC SECTION
; 2022 BYTE RPW=760 ;Read byte data to AR, ARX, write test, pause [312]
; 2023 BYTE IND=610 ;INDIRECT AT BYTE EA CALC TIME
; 2024 PUSH=041 ;STORE TO STACK
; 2025 POP AR=421 ;READ FROM STACK TO AR
; 2026 POP ARX=221 ;READ FROM STACK TO ARX
; 2027 POP AR-ARX=621 ;POP TO BOTH
; 2028 WRITE(E)=042
; 2029 LD AR(EA)=402 ;LOAD AR GLOBAL/LOCAL AS IN EA
; 2030 LD AR+WR=440 ;LOAD AR, TEST WRITABILITY
; 2031 LD ARX+WR=240 ;LOAD ARX, TEST WRITABILITY
; 2032 .ENDIF/MODEL.B
; 2033
; 2034 SP MEM/=<75:83> ;ENABLED BY SPEC/SP MEM CYCLE
; 2035 FETCH=400 ;LOAD IR WHEN DATA ARRIVES (MCL5)
; 2036 USER=200 ;FORCE USER OR UPT (MCL2)
; 2037 EXEC=100 ;FORCE EXEC OR EPT (MCL3)
; 2038 SEC 0=40 ;CLEAR VMAX (MCL4)
; 2039 UPT EN=20 ;UPT IF USER EN (MCL3)
; 2040 EPT EN=10 ;EPT IF NOT USER EN (MCL3)
; 2041 CACHE INH=2 ; (MCL6)
; 2042 UNCSH+UNPAGE=103;UNCACHED AND UNPAGED
; 2043 UNPAGED+CACHED=101 ;physical reference with cache enabled.
;;2044 .IFNOT/MULTI
;;2045 UNPAGED=101 ; (MCL6)
;;2046 EPT=111
;;2047 EPT CACHE=111 ;[260]
;;2048 EPT FETCH=511
;;2049 UPT=221
;;2050 UPT FETCH=621
;;2051 PT=31
;;2052 PT FETCH=431
; 2053 .IF/MULTI
; 2054 UNPAGED=103 ; (MCL6)
; 2055 EPT=113
; 2056 EPT CACHE=111 ;[260]
; 2057 EPT FETCH=513
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16-1
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2058 UPT=223
; 2059 UPT FETCH=623
; 2060 PT=33
; 2061 PT FETCH=433
; 2062 .ENDIF/MULTI
; 2063
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2064 ;MBOX CONTROLS
; 2065
; 2066 MREG FNC/=<75:83> ;ENABLED BY MEM/REG FUNC (APR6)
; 2067 SBUS DIAG=407 ;PERFORM SBUS DIAGNOSTIC CYCLE
; 2068 READ UBR=502 ;ASK MBOX TO LOAD UBR INTO EBUS REG
; 2069 READ EBR=503 ;PUT EBR INTO EBUS REG
; 2070 READ ERA=504
; 2071 WR REFILL RAM=505 ;DISGUISED AS A "READ REG" FUNCTION
; 2072 .IF/MODEL.B ;THIS GOT CHANGED IN THE GENERAL SPEEDUP (APR6)
; 2073 LOAD CCA=606 ;START A SWEEP
;;2074 .IFNOT/MODEL.B ;HERE IS WHAT IT USED TO BE
;;2075 LOAD CCA=601 ;START A SWEEP
; 2076 .ENDIF/MODEL.B
; 2077 LOAD UBR=602 ;SETUP UBR FROM VMA
; 2078 LOAD EBR=603 ;SETUP EBR FROM VMA
; 2079 MAP=140 ;GET PHYS ADDR CORRESPONDING TO VMA (MCL6)
; 2080 MBOX CTL/=<75:83> ;ENABLED BY COND/MBOX CTL (APR5)
; 2081 SET PAGE FAIL=200
; 2082 SET IO PF ERR=100
; 2083 CLR PT LINE(NK)=61,,1;[333] Clear valid if no Keep bit set
; 2084 PT DIR CLR(NK)=41;Enable clear of PT DIR for non keep entries
; 2085 CLR PT LINE=21,,1;CLEAR VALID FOR 8 ENTRIES
; 2086 PT DIR WR=20,1 ;WRITE PAGE TABLE DIRECTORY
; 2087 PT WR=10,1 ;WRITE PAGE TABLE ENTRY SELECTED BY VMA
; 2088 PT DIR CLR=1 ;SELECT FOR CLEARING PT DIR (PAG3)
; 2089 NORMAL=0 ;RESET PT WR SELECTION
; 2090 MTR CTL/=<81:83> ;FUNCTION DECODING FOR METERS (MTR3)
; 2091 CLR TIME=0 ; USUALLY USED WITH DIAG FUNC
; 2092 CLR PERF=1
; 2093 CLR E CNT=2
; 2094 CLR M CNT=3
; 2095 LD PA LH=4
; 2096 LD PA RH=5
; 2097 CONO MTR=6
; 2098 CONO TIM=7
; 2099
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 18
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 2100 ;I/O FUNCTIONS
; 2101
; 2102 EBUS CTL/=<75:83> ;ENABLED BY COND/EBUS CTL (APR3)
; 2103 GRAB EEBUS=400 ;"EBUS RETURN" TAKES ECL EBUS FOR EBOX
; 2104 REQ EBUS=200
; 2105 REL EBUS=100 ; (CON3)
; 2106 EBUS DEMAND=60 ;ASSERT DEMAND, KEEP CS, FUNC
; 2107 EBUS NODEMAND=20;DROP DEMAND, KEEP CS, FUNC
; 2108 ; CTL_IR=10 ;SELECT F01 & F02 FROM IR
; 2109 ; DISABLE CS=4 ;TURN OFF CONTROLLER SELECT
; 2110 ; DATAIO=2 ;0 FOR CONI/O
; 2111 ; INPUT=1 ;0 FOR OUTPUT
; 2112 IO INIT=30 ;ENABLE IR3-9 TO EBUS CONTROLLER SELECT,
; 2113 ; IR10-12 (DECODED) TO FUNCTION
; 2114 ; AND AR ONTO EBUS IF FUNCTION IS OUTPUT
; 2115 DATAO=26 ;0'S TO CS, DATAO TO FCN, AND AR TO EBUS
; 2116 DATAI=27 ;0'S TO CS, DATAI TO FCN
; 2117 REL EEBUS=0 ;LEGGO
; 2118 DIAG FUNC/=<75:83> ;ENABLED BY COND/DIAG FUNC (CTL3)
; 2119 .5 USEC=400,3 ;STRETCH CLOCK TO LET EBUS SETTLE (CON?)
; 2120 LD PA LEFT=404,3 ;LH PERF ANAL CONTROLS FROM RH (MTR)
; 2121 LD PA RIGHT=405,3 ;RH PA CONTROLS FROM RH (MTR)
; 2122 CONO MTR=406,3 ;ACCOUNTING CONTROLS (MTR)
; 2123 CONO TIM=407,3 ;INTERVAL TIMER CONTROLS (MTR)
; 2124 CONO APR=414,3 ; (CON3)
; 2125 CONO PI=415,3 ; (CON3)
; 2126 CONO PAG=416,3 ;CACHE & PAGING CTL (CON3)
; 2127 DATAO APR=417,3 ;ADDRESS BREAK (CON3)
; 2128 DATAO PAG=620,3 ;AC BLOCKS & PREV CONTXT (CON3)
; 2129 LD AC BLKS=425,3 ;FORCE LOADING AC BLOCKS
; 2130 LD PCS+CWSX=426,3 ;FORCE LOADING PREV CONTXT SEC, CWSX
; 2131 CONI PI(R)=500,3 ;PI HOLD & ACTIVE TO LH (PI)
; 2132 CONI PI(L)=501,3 ;PI GEN TO LH (PI)
; 2133 CONI APR(R)=510,3 ;APR INTERRUPT & PIA TO LH (APR6)
; 2134 RD TIME=510,3 ;TIME BASE TO RH (MTR5)
; 2135 DATAI PAG(L)=511,3 ;AC BLOCKS, PREV CONTXT TO LH (APR6)
; 2136 RD PERF CNT=511,3 ;PERFORMANCE COUNT TO RH (MTR5)
; 2137 CONI APR(L)=512,3 ;APR INTERRUPT ENABLES TO LH (APR6)
; 2138 RD EBOX CNT=512,3 ;EBOX COUNT TO RH (MTR5)
; 2139 DATAI APR=513,3 ;ADDR BREAK CONDITIONS TO LH (APR6)
; 2140 RD CACHE CNT=513,3 ;CACHE COUNT TO RH (MTR5)
; 2141 RD INTRVL=514,3 ;INTERVAL TIMER TO RH (MTR5)
; 2142 RD PERIOD=515,3 ;PERIOD REGISTER TO RH (MTR5)
; 2143 CONI MTR=516,3 ;CONTROLS & PIA TO RH (MTR5)
; 2144 RD MTR REQ=517,3 ;ENCODED UPDATE REQUEST TO 20-22 (MTR5)
; 2145 CONI PI(PAR)=530,3 ;WRITE EVEN PARITY ENABLES TO RH (CON1)
; 2146 CONI PAG=531,3 ;CACHE & TRAP CTL TO RH (CON1)
; 2147 RD EBUS REG=567,3 ;EBUS REGISTER IN MBOX (MBZ1 & MBC1)
; 2148
; 2149 PARITY/=0,0,0,P ;USE ANY AVAILABLE FIELD FOR PARITY
; 2150
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 19
; DEFINE.MIC[10,5351] 23:19 23-Nov-83 DISPATCH RAM DEFINITIONS
; 2151 .TOC "DISPATCH RAM DEFINITIONS"
; 2152 ;FIELDS ARE ARRANGED FOR EASY READING, NOT COMPACTNESS
; 2153
; 2154 .DCODE
; 2155 A/=<0:2> ;OPERAND FETCH MODE
; 2156 IMMED=0 ;IMMEDIATE
; 2157 IMMED-PF=1 ;IMMEDIATE, START PREFETCH
; 2158 .IF/MODEL.B
; 2159 ADDR=2 ;FULL EFFECTIVE ADDRESS
; 2160 .ENDIF/MODEL.B
; 2161 WR-TST=3 ;TEST WRITABILITY
; 2162 READ=4 ;READ ONLY
; 2163 READ-PF=5 ;READ, THEN PREFETCH
; 2164 RD-WR=6 ;READ WRITE (SEPARATE CYCLES)
; 2165 RD-P-WR=7 ;READ PAUSE WRITE
; 2166
; 2167 B/=<3:5> ;STORE RESULTS AT--
; 2168 DBL AC=1 ;DOUBLE RESULT TO AC & AC+1
; 2169 DBL BOTH=2 ;MULB, DIVB, ETC
; 2170 SELF=3 ;SELF MODE INSTRUCTIONS
; 2171 AC=5 ;SINGLE RESULT TO AC, PREFETCH IN PROG
; 2172 MEM=6 ;RESULT TO MEMORY
; 2173 BOTH=7 ;SINGLE RESULT TO MEMORY AND AC
; 2174
; 2175 SJC-=3 ;SKIP JUMP COMPARE CONTROLS
; 2176 SJCL=2
; 2177 SJCE=1
; 2178 SJCLE=0
; 2179 SJCA=7
; 2180 SJCGE=6
; 2181 SJCN=5
; 2182 SJCG=4
; 2183 B0/=<3:3> ;INVERTS VARIOUS TEST, SKIP, AND JUMP CONTROLS
; 2184 CRY0(0)=0 ;TEST TST CAUSES PC SKIP IF CRY0=0
; 2185 CRY0(1)=1 ; SAME IF CRY0=1
; 2186 B1-2/=<4:5> ;FLOATING RESULT STORE MODE
; 2187 AC=1 ;RESULT TO AC
; 2188 MEM=2 ;RESULT JUST TO MEM
; 2189 BOTH=3 ;RESULT TO BOTH
; 2190
; 2191 PARITY/=<11:11>P
; 2192
; 2193 J/=<14:23> ;EXECUTOR (40&20-BITS ALWAYS 0)
; 2194 .UCODE
; 2195
; 2196 .BIN
; 2197
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--Miscellaneous and A
; 2198 .TOC "CRAM Macros--Miscellaneous and A"
; 2199 .NOBIN
; 2200 ;
; 2201 ; All the CRAM macros have been alphabetized for easy reference. We have
; 2202 ; defined "_" to be alphabetically lower than the alphabet (although its
; 2203 ; ASCII representation makes it higher) so that macros such as AR_AR+1
; 2204 ; will precede ARX_AR+1, for example (this seems more intuitive).
; 2205 ;
; 2206 []_[]*[] "@1/AD, ADA/@2, ADB/@3"
; 2207 []_[]*FM[] "@3, ADA/@2, ADB/FM, @1/AD"
; 2208 []_[]-FM[] "@3, ADA/@2, ADB/FM, @1/AD, AD/A-B"
; 2209 []_#[] "@1_#,#/@2"
; 2210 []_ADA[] "@1/AD, ADA/@2, AD/A"
; 2211 []_ADB[] "@1/AD, ADA EN/0S, ADB/@2, AD/B"
; 2212 []_FM[] "@1/AD, ADA EN/0S, ADB/FM, @2, AD/B"
; 2213
; 2214 (AR+ARX+MQ)*.25 "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25,(MQ)*.25"
; 2215 (AR+ARX+MQ)*2 "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2,(MQ)*2"
; 2216 (MQ)*.25 "COND/REG CTL,MQ/MQM SEL,MQ CTL/MQ*.25"
; 2217 (MQ)*2 "COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*2"
; 2218
; 2219 .IF/MODEL.B
; 2220 A INDRCT "MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2221 A READ "VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/300,J/0"
;;2222 .IFNOT/MODEL.B
;;2223 A INDRCT "MEM/A IND,VMA/LOAD"
;;2224 A READ "VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/0,J/0"
; 2225 .ENDIF/MODEL.B
; 2226 ABORT INSTR "COND/SPEC INSTR,SPEC INSTR/INSTR ABORT"
; 2227 AC0 "FMADR/AC0"
; 2228 AC0_AR "FMADR/AC0,COND/FM WRITE"
; 2229 AC1_AR "FMADR/AC1,COND/FM WRITE"
; 2230 AC2_AR "FMADR/AC2,COND/FM WRITE"
; 2231 AC3_AR "FMADR/AC3,COND/FM WRITE"
; 2232 .IF/MODEL.B
; 2233 AC4 "FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2234 .IFNOT/MODEL.B
;;2235 AC4 "FMADR/AC4"
; 2236 .ENDIF/MODEL.B
; 2237 AC4_AR "AC4,COND/FM WRITE"
; 2238 .IF/MODEL.B
; 2239 AC5 "FMADR/AC+#,AC-OP/AC+#,AC#/5"
;;2240 .IFNOT/MODEL.B
;;2241 AC5 "FMADR/AC5"
; 2242 .ENDIF/MODEL.B
; 2243 AC5_AR "AC5,COND/FM WRITE"
; 2244 AD FLAGS "COND/AD FLAGS"
; 2245 AD LONG "SPEC/AD LONG"
; 2246 ADMSK "R15" ;23 ONES
; 2247
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR
; 2248 .TOC "CRAM Macros--AR"
; 2249
; 2250 AR_[] AND FM[] "ADA/@1,ADB/FM,@2,AD/AND,AR/AD"
; 2251
; 2252 AR_(AR+2BR)*.25 "ADA/AR,ADB/BR*2,AD/A+B,AR/AD*.25"
; 2253 AR_(AR+BR)*.25 "ADA/AR,ADB/BR,AD/A+B,AR/AD*.25"
; 2254 AR_(AR-2BR)*.25 "ADA/AR,ADB/BR*2,AD/A-B,AR/AD*.25"
; 2255 AR_(AR-BR)*.25 "ADA/AR,ADB/BR,AD/A-B,AR/AD*.25"
; 2256 AR_(ARX OR AR*4)*.25 "ADA/ARX,ADB/AR*4,AD/OR,AR/AD*.25"
; 2257 AR_-AC0 "FMADR/AC0,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2258 AR_-AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25"
; 2259 AR_-AR LONG "GEN -AR LONG,AR_AD*.25 LONG"
; 2260 AR_-BR "ADB/BR,ADA EN/0S,AD/A-B,AR/AD"
; 2261 AR_-BR LONG "ADA EN/0S,ADB/BR,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2262 AR_-BR*2 LONG "ADA EN/0S,ADB/BR*2,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2263 AR_-BRX "ADB/BR,ADA EN/0S,AD/A-B,AR/ADX"
; 2264 AR_-DLEN "DLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2265 AR_-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 2266 AR_0.C "COND/ARL IND,CLR/AR"
; 2267 AR_0.M "MEM/ARL IND,CLR/AR"
; 2268 AR_0.S "SPEC/ARL IND,CLR/AR"
; 2269 AR_0S "AD/0S,AR/AD"
; 2270 AR_1 "ADA EN/0S,AD/A+1,AR/AD"
; 2271 AR_1 LONG "ADA EN/0S,AD/A+1,AR/AD*.25,ARX/ADX"
; 2272 AR_1S "AD/1S,AR/AD"
; 2273 AR_2 "ADA EN/0S,AD/A+1,AR/AD*2"
; 2274 AR_2(AR*BR) "ADA/AR,ADB/BR,AR/AD*2"
; 2275 AR_2(AR+1) "ADA/AR,AD/A+1,AR/AD*2"
; 2276 AR_2(AR+BR) "AR_2(AR*BR),AD/A+B"
; 2277 AR_2(AR+BR) LONG "AR_2(AR*BR),AD/A+B,ARX/ADX*2,SPEC/AD LONG"
; 2278 AR_2(AR-BR) "AR_2(AR*BR),AD/A-B"
; 2279
; 2280 AR_AC0 "FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2281 AR_AC0 COMP "FMADR/AC0,ADB/FM,AD/SETCB,AR/AD"
; 2282 AR_AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,AR/AD"
; 2283 AR_AC1 "FMADR/AC1,ADB/FM,AD/B,AR/AD"
; 2284 AR_AC1 COMP "FMADR/AC1,ADB/FM,AD/SETCB,AR/AD"
; 2285 AR_AC1*2 "FMADR/AC1,ADB/FM,AD/B,AR/AD*2"
; 2286 AR_AC2 "FMADR/AC2,ADB/FM,AD/B,AR/AD"
; 2287 AR_AC3 "FMADR/AC3,ADB/FM,AD/B,AR/AD"
; 2288 AR_AC3*2 "FMADR/AC3,ADB/FM,AD/B,AR/AD*2"
; 2289 AR_AC4 "AC4,ADB/FM,AD/B,AR/AD"
; 2290 AR_AD*.25 LONG "AR/AD*.25,ARX/ADX*.25,SPEC/AD LONG"
; 2291 AR_ADMSK AND VMA HELD "COND/SEL VMA,ADA/PC,ADB/FM,ADMSK,AD/AND,AR/AD"
; 2292
; 2293 AR_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2294 .IF/KLPAGE
; 2295 AR_AR AND CSMSK "CSMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 2296 AR_AR OR PUR "PUR,ADB/FM,ADA/AR,AD/OR,AR/AD"
; 2297 .ENDIF/KLPAGE
; 2298 AR_AR SWAP "SH/AR SWAP,AR/SH"
; 2299
; 2300 AR_AR*.25 "ADA/AR,AD/A,AR/AD*.25"
; 2301 AR_AR*.25 LONG "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25"
; 2302 AR_AR*.5 "ADA/AR,AD/A*2,AR/AD*.25"
; 2303 AR_AR*.5 LONG "ADA/AR,AD/A*2,SPEC/AD LONG,AR/AD*.25,ARX/ADX*.25"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR
; 2304 AR_AR*1.25 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR_AD*.25 LONG"
; 2305 AR_AR*10 "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2"
; 2306 AR_AR*10 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2,ARX/ADX*2,SPEC/AD LONG"
; 2307 AR_AR*2 "ADA/AR,AD/A,AR/AD*2"
; 2308 AR_AR*2 LONG "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2"
; 2309 AR_AR*4 "ADB/AR*4,AD/B,AR/AD"
; 2310 AR_AR*4 LONG "ADB/AR*4,AD/B,AR/AD,ARX/ADX"
; 2311 AR_AR*5 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2312 AR_AR*8 "ADB/AR*4,AD/B,AR/AD*2"
; 2313 AR_AR*8 LONG "ADB/AR*4,AD/B,AR/AD*2,ARX/ADX*2"
; 2314 AR_AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR,AR/AD" ;GENERAL BINARY OPERATION
; 2315 AR_AR*AC1 "FMADR/AC1,ADB/FM,ADA/AR,AR/AD"
; 2316 AR_AR*BR "ADA/AR,ADB/BR,AR/AD"
; 2317 AR_AR*EXPMSK "EXPMSK,ADB/FM,ADA/AR,AR/AD" ;[224]
; 2318 AR_AR*MSK "MSK,ADB/FM,ADA/AR,AR/AD"
; 2319 AR_AR*SFLGS "SFLGS,ADB/FM,ADA/AR,AR/AD"
; 2320 AR_AR*SLEN "SLEN,ADB/FM,ADA/AR,AR/AD"
; 2321 AR_AR*T0 "T0,ADB/FM,ADA/AR,AR/AD"
; 2322
; 2323 AR_AR+1 "ADA/AR,AD/A+1,AR/AD"
; 2324 AR_AR+1 LONG "AR_AR+1,ARX/ADX,SPEC/AD LONG"
; 2325 AR_AR+1-AR0 "ADA/AR,AD/A+1,AR/AD,SPEC/XCRY AR0"
; 2326 AR_AR+BR "ADA/AR,ADB/BR,AD/A+B,AR/AD"
; 2327 AR_AR+BR LONG "AR_AR+BR,ARX/ADX,SPEC/AD LONG"
; 2328 AR_AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2329 .IF/KLPAGE
; 2330 AR_AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2331 .ENDIF/KLPAGE
; 2332 AR_AR+T0 "T0,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2333 AR_AR+T1 "T1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2334 .IF/TRXDEF
;;2335 AR_AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,AR/AD"
;;2336 AR_AR+TRX "TRX,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 2337 .ENDIF/TRXDEF
; 2338 AR_AR+XR "GEN AR+XR,AR/AD"
; 2339
; 2340 AR_AR-1 "ADA/AR,AD/A-1,AR/AD"
; 2341 AR_AR-BR "ADA/AR,ADB/BR,AD/A-B,AR/AD"
; 2342 AR_AR-BR LONG "AR_AR-BR,ARX/ADX,SPEC/AD LONG"
; 2343 AR_AR-BR-1 "GEN AR*BR,AD/A-B-1,AR/AD"
; 2344 AR_AR-T0 "T0,ADB/FM,ADA/AR,AD/A-B,AR/AD"
; 2345
; 2346 AR_ARX "SH/ARX,AR/SH"
; 2347 AR_ARX (AD) "ADA/ARX,AD/A,AR/AD"
; 2348 AR_ARX (ADX) "ADA EN/EN,AD/A,AR/ADX"
; 2349 AR_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,AR/AD"
; 2350 AR_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,AR/AD"
; 2351 AR_ARX COMP "ADA EN/EN,AD/SETCA,AR/ADX"
; 2352 .IF/KLPAGE
; 2353 AR_ARX OR PUR "PUR,ADB/FM,ADA/ARX,AD/OR,AR/AD"
; 2354 .ENDIF/KLPAGE
; 2355 AR_ARX*.25 "ADA/ARX,AD/A,AR/AD*.25"
; 2356 AR_ARX*.25-AR-1 "ADB/AR*4,ADA/ARX,AD/A-B-1,AR/AD*.25"
; 2357 AR_ARX*2 "ADA/ARX,AD/A,AR/AD*2"
; 2358 AR_ARX*4 "ADB/AR*4,AD/B,AR/ADX"
; 2359 AR_ARX*4 COMP "ADB/AR*4,AD/SETCB,AR/ADX"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-2
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR
; 2360 AR_ARX*AC1 "FMADR/AC1,ADB/FM,ADA/ARX,AR/AD"
; 2361 AR_ARX*BR "ADA/ARX,ADB/BR,AR/AD"
; 2362 AR_ARX*BRX "ADA/AR,ADB/BR,AR/ADX"
; 2363 AR_ARX*E1 "E1,ADB/FM,ADA/ARX,AR/AD"
; 2364 AR_ARX+1 (AD) "ADA/ARX,AD/A+1,AR/AD"
; 2365 AR_ARX+AR*4 "ADA/ARX,ADB/AR*4,AD/A+B,AR/AD"
; 2366 AR_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,AR/AD"
; 2367 AR_ARX+XR "GEN ARX+XR,AR/AD"
; 2368 AR_ARX-1 "ADA EN/EN,AD/A-1,AR/ADX"
; 2369 AR_ARX-BR "ADA/ARX,ADB/BR,AD/A-B,AR/AD"
; 2370
; 2371 AR_BR "ADB/BR,AD/B,AR/AD"
; 2372 AR_BR COMP "ADB/BR,AD/SETCB,AR/AD"
; 2373 AR_BR COMP LONG "ADB/BR,AD/SETCB,AR/AD,ARX/ADX"
; 2374 AR_BR LONG "ADB/BR,AD/B,AR/AD,ARX/ADX"
; 2375 AR_BR OR ARX "ADA/ARX,ADB/BR,AD/OR,AR/AD"
; 2376 AR_BR*.5 "ADB/BR*2,AD/B,AR/AD*.25"
; 2377 AR_BR*.5 LONG "ADB/BR*2,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2378 AR_BR*2 "ADB/BR*2,AD/B,AR/AD"
; 2379 AR_BR*2 LONG "ADB/BR*2,AD/B,AR/AD,ARX/ADX"
; 2380 AR_BR*4 "ADB/BR*2,AD/B,AR/AD*2" ;[230]
; 2381 AR_BR*4 LONG "ADB/BR*2,AD/B,AR/AD*2,ARX/ADX*2"
; 2382 AR_BR+1 "ADB/BR,ADA EN/0S,AD/A+B+1,AR/AD"
; 2383 AR_BR+1 LONG "ADA EN/0S,ADB/BR,AD/A+B+1,AR/AD,ARX/ADX,SPEC/AD LONG"
; 2384 AR_BRX "ADB/BR,AD/B,AR/ADX"
; 2385 AR_BRX+1 "ADA EN/0S,ADB/BR,AD/A+B+1,AR/ADX"
; 2386
; 2387 AR_CACHE CNT "DIAG IN,DIAG FUNC/RD CACHE CNT"
; 2388 AR_DLEN "DLEN,AR_FM"
; 2389 AR_DLEN COMP "DLEN,ADB/FM,AD/SETCB,AR/AD"
; 2390 AR_DLEN+1 "DLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2391 AR_DSTP "DSTP,AR_FM"
; 2392 AR_DSTP+1 "DSTP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2393 AR_DSTP2 "DSTP2,AR_FM"
; 2394 AR_DSTP2+1 "DSTP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2395 AR_DSTW "DSTW,AR_FM"
; 2396 AR_E0 "E0,AR_FM"
; 2397 AR_E1 "E1,AR_FM"
; 2398 AR_EBOX CNT "DIAG IN,DIAG FUNC/RD EBOX CNT"
; 2399 AR_EBUS "AR/EBUS,TIME/5T"
; 2400 AR_EBUS REG "DIAG IN,DIAG FUNC/RD EBUS REG"
; 2401 AR_FILL "FILL,AR_FM"
; 2402 AR_FM "ADB/FM,AD/B,AR/AD"
; 2403 AR_FM[] "AR/AD, AD/B, ADB/FM, @1" ;[274]
; 2404 .IF/MODEL.B
; 2405 AR_FM(#) "FMADR/AC+#,AC-OP/AC+#,ADB/FM,AD/B,AR/AD"
; 2406 .ENDIF/MODEL.B
; 2407 AR_FM(VMA) "FMADR/VMA,ADB/FM,AD/B,AR/AD"
; 2408 AR_INTERVAL "DIAG IN,DIAG FUNC/RD INTRVL"
; 2409
; 2410 AR_MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2411 AR_MQ "ADA/MQ,AD/A,AR/AD"
; 2412 AR_MQ COMP "ADA/MQ,AD/SETCA,AR/AD"
; 2413 AR_MQ*.25 "ADA/MQ,AD/A,AR/AD*.25"
; 2414 AR_MQ*2 "ADA/MQ,AD/A,AR/AD*2"
; 2415 AR_MQ*4 "ADA/MQ,AD/A*2,AR/AD*2"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-3
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR
; 2416 AR_MQ*AC1 "FMADR/AC1,ADB/FM,ADA/MQ,AR/AD"
; 2417 AR_MQ*AC2 "FMADR/AC2,ADB/FM,ADA/MQ,AR/AD"
; 2418 AR_MQ*AC3 "FMADR/AC3,ADB/FM,ADA/MQ,AR/AD"
; 2419 AR_MQ+1 "ADA/MQ,AD/A+1,AR/AD"
; 2420 AR_MQ+AC0 "FMADR/AC0,ADB/FM,ADA/MQ,AD/A+B,AR/AD"
; 2421 AR_MQ-1 "ADA/MQ,AD/A-1,AR/AD"
; 2422 AR_MQ-BR "ADA/MQ,ADB/BR,AD/A-B,AR/AD"
; 2423 AR_MTR REQ "DIAG IN,DIAG FUNC/RD MTR REQ"
; 2424 AR_PC "ADA/PC,AD/A,AR/AD"
; 2425 AR_PC FLAGS "ADMSK,ADB/FM,ADA/PC,AD/ANDCB,AR/AD"
; 2426 AR_PC+1 "ADA/PC,AD/A+1,AR/AD,SPEC/SAVE FLAGS"
; 2427 AR_PERF CNT "DIAG IN,DIAG FUNC/RD PERF CNT"
; 2428 AR_PERIOD "DIAG IN,DIAG FUNC/RD PERIOD"
; 2429 .IF/KLPAGE
; 2430 AR_PUR+AR0 "PUR,ADB/FM,ADA EN/0S,AD/A+B,SPEC/XCRY AR0,AR/AD"
; 2431 .ENDIF/KLPAGE
; 2432
; 2433 AR_SERIAL "AR/ARMM,COND/REG CTL,AR CTL/ARR LOAD"
; 2434 AR_SFLGS "SFLGS,AR_FM"
; 2435 AR_SHIFT "SH/SHIFT AR!ARX,AR/SH"
; 2436 AR_SIGN "AD/XCRY-1,SPEC/XCRY AR0,AR/AD"
; 2437 AR_SLEN "SLEN,AR_FM"
; 2438 AR_SLEN COMP "SLEN,ADB/FM,AD/SETCB,AR/AD"
; 2439 AR_SLEN+1 "SLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2440 AR_SRCP "SRCP,AR_FM"
; 2441 AR_SRCP+1 "SRCP,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2442 AR_SRCP2 "SRCP2,AR_FM"
; 2443 AR_SRCP2+1 "SRCP2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2444 AR_SV.AR "SV.AR,AR_FM"
; 2445 .IF/KLPAGE
; 2446 AR_SV.ARX "SV.ARX,AR_FM"
; 2447 AR_SV.BR "SV.BR,AR_FM"
; 2448 AR_SV.PFW "SV.PFW,AR_FM"
; 2449 AR_SV.SC "SV.SC,AR_FM"
; 2450 AR_SV.VMA "SV.VMA,AR_FM"
; 2451 .ENDIF/KLPAGE
; 2452 AR_SWD "SWD,AR_FM"
; 2453
; 2454 AR_T0 "T0,AR_FM"
; 2455 AR_T1 "T1,AR_FM"
; 2456 AR_T2 "T2,AR_FM"
; 2457 AR_TIME BASE "DIAG IN,DIAG FUNC/RD TIME"
;;2458 .IF/TRXDEF
;;2459 AR_TRB "TRB,AR_FM"
;;2460 AR_TRX "TRX,AR_FM"
;;2461 AR_TRX+1 "TRX,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
;;2462 AR_TRX1 "TRX1,AR_FM"
;;2463 AR_TRX2 "TRX2,AR_FM"
;;2464 AR_TRX2+1 "TRX2,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
;;2465 AR_TRX3 "TRX3,AR_FM"
;;2466 AR_TRX3+1 "TRX3,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 2467 .ENDIF/TRXDEF
; 2468 AR_VMA HELD "COND/SEL VMA,AR_PC"
; 2469 AR_XR "FMADR/XR,ADB/FM,AD/B,AR/AD"
; 2470
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR Miscellaneous, ARL, and ARR
; 2471 .TOC "CRAM Macros--AR Miscellaneous, ARL, and ARR"
; 2472
; 2473 AR+ARX+MQ_0.M "MEM/ARL IND,CLR/AR+ARX+MQ"
; 2474 AR+MQ_0.M "MEM/ARL IND,CLR/AR+MQ"
; 2475 AR+MQ_0.S "SPEC/ARL IND,CLR/AR+MQ"
; 2476
; 2477 AR0-3 DISP "SH/AR,DISP/SH0-3"
; 2478 AR0-8_# "COND/LD AR0-8,AR/ARMM,ARMM/#"
; 2479 AR0-8_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,AR0-8_SCAD#"
; 2480 AR0-8_# OR AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/OR,AR0-8_SCAD#"
; 2481 AR0-8_#+SC "SCADA/#,SCADB/SC,SCAD/A+B,AR0-8_SCAD#"
; 2482 AR0-8_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,AR0-8_SCAD"
; 2483 AR0-8_FE "SCADA/FE,SCAD/A,AR0-8_SCAD"
; 2484 AR0-8_FE OR # "SCADA/FE,SCADB/#,SCAD/OR,AR0-8_SCAD#"
; 2485 AR0-8_FE OR SC "SCADA/FE,SCADB/SC,SCAD/OR,AR0-8_SCAD.M"
; 2486 AR0-8_FE# "SCADA/FE,SCAD/A,ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2487 AR0-8_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,AR0-8_SCAD#"
; 2488 AR0-8_FE+1 "SCADA/FE,SCAD/A+1,AR0-8_SCAD"
; 2489 AR0-8_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,AR0-8_SCAD.M"
; 2490 AR0-8_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,AR0-8_SCAD.M"
; 2491 AR0-8_FE.M "SCADA/FE,SCAD/A,AR0-8_SCAD.M"
; 2492 AR0-8_FE.R "GEN FE,AR0-8_SCAD.R"
; 2493 AR0-8_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,AR0-8_SCAD"
; 2494 AR0-8_SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2495 AR0-8_SCAD# "ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 2496 AR0-8_SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2497 AR0-8_SCAD.R "ARMM/SCAD EXP,AR/ARMM,COND/REG CTL,AR CTL/AR0-8 LOAD"
; 2498 AR12-17_PC SEC "AR/ARMM,VMAX/PC SEC,COND/LD AR9-17"
; 2499 AR12-17_PREV SEC "AR/ARMM,VMAX/PREV SEC,COND/LD AR9-17"
; 2500 AR18-21 DISP "SH/AR SWAP,DISP/SH0-3"
; 2501
; 2502 ARL_0.C "COND/ARL IND,CLR/ARL"
; 2503 ARL_0.M "MEM/ARL IND,CLR/ARL"
; 2504 ARL_0.S "SPEC/ARL IND,CLR/ARL"
; 2505 ARL_0S "COND/ARL IND,CLR/ARL"
; 2506 ARL_1.M "ADA EN/0S,AD/A+1,SPEC/GEN CRY18,MEM/ARL IND,ARL/AD"
; 2507 ARL_1S "AD/1S,COND/ARL IND,ARL/AD"
; 2508 ARL_1S.M "AD/1S,MEM/ARL IND,ARL/AD"
; 2509 ARL_AC0 "FMADR/AC0,ADB/FM,AD/B,COND/ARL IND,ARL/AD"
; 2510 ARL_ARL "COND/ARL IND,ARL/ARL"
; 2511 ARL_ARL.M "MEM/ARL IND,ARL/ARL"
; 2512 ARL_ARL.S "SPEC/ARL IND,ARL/ARL"
; 2513 ARL_ARR "COND/ARL IND,ARL/SH,SH/AR SWAP"
; 2514 ARL_ARR.M "MEM/ARL IND,ARL/SH,SH/AR SWAP"
; 2515 ARL_ARR.S "SPEC/ARL IND,ARL/SH,SH/AR SWAP"
; 2516 ARL_ARX (ADX) "ADA EN/EN,AD/A,MEM/ARL IND,ARL/ADX"
; 2517 ARL_ARXL "SPEC/ARL IND,SH/ARX,ARL/SH"
; 2518 ARL_ARXL.M "MEM/ARL IND,SH/ARX,ARL/SH"
; 2519 ARL_BRL "ADB/BR,AD/B,COND/ARL IND,ARL/AD"
; 2520 ARL_BRL.M "ADB/BR,AD/B,MEM/ARL IND,ARL/AD"
; 2521 ARL_BRL.S "ADB/BR,AD/B,SPEC/ARL IND,ARL/AD"
; 2522 ARL_SHIFT "MEM/ARL IND,SH/SHIFT AR!ARX,ARL/SH"
; 2523 ARL_SIGN "AD/XCRY-1,SPEC/XCRY AR0,COND/ARL IND,ARL/AD"
; 2524 ARL+ARX+MQ_0.M "MEM/ARL IND,CLR/ARL+ARX+MQ"
; 2525 ARL+ARX_0.M "MEM/ARL IND,CLR/ARL+ARX"
; 2526
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--AR Miscellaneous, ARL, and ARR
; 2527 ARR_0.C "COND/ARL IND,CLR/ARR"
; 2528 ARR_0.M "MEM/ARL IND,CLR/ARR"
; 2529 ARR_0.S "SPEC/ARL IND,CLR/ARR"
; 2530 ARR_0S "AR_0S"
; 2531 ARR_1S "AR_1S"
; 2532 ARR_AC0 "AR_AC0"
; 2533 ARR_AC0.S "SPEC/ARL IND,FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 2534 ARR_ARL "SH/AR SWAP,AR/SH"
; 2535 ARR_ARR "AR/AR"
; 2536 ARR_BR "ADB/BR,AD/B,COND/ARL IND,AR/AD" ;[252]
; 2537 ARR_PC+1 "ADA/PC,AD/A+1,AR/AD"
; 2538 ARR+MQ_0.S "SPEC/ARL IND,CLR/ARR+MQ"
; 2539
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--ARX
; 2540 .TOC "CRAM Macros--ARX"
; 2541
; 2542 ARX_-AC0 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A-B,ARX/AD"
; 2543 ARX_-BRX "ADB/BR,ADA EN/0S,AD/A-B,ARX/ADX"
; 2544 ARX_-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,ARX/AD"
; 2545 ARX_0.C "COND/ARL IND,CLR/ARX"
; 2546 ARX_0.M "MEM/ARL IND,CLR/ARX"
; 2547 ARX_0.S "SPEC/ARL IND,CLR/ARX"
; 2548 ARX_0S "AD/0S,ARX/AD"
; 2549 ARX_1 "ADA EN/0S,AD/A+1,ARX/AD"
; 2550 ARX_1B1 "ADA EN/0S,AD/A+1,ARX/ADX*.25"
; 2551 ARX_1B17-1 "ADA EN/0S,AD/A-1,SPEC/GEN CRY18,ARX/AD"
; 2552 ARX_1S "AD/1S,ARX/AD"
; 2553 ARX_2 "ADA EN/0S,AD/A+1,ARX/ADX*2"
; 2554
; 2555 ARX_AC0 "FMADR/AC0,ADB/FM,AD/B,ARX/AD"
; 2556 ARX_AC0 COMP "ADB/FM,FMADR/AC0,AD/SETCB,ARX/AD"
; 2557 ARX_AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,ARX/AD"
; 2558 ARX_AC1 "FMADR/AC1,ADB/FM,AD/B,ARX/AD"
; 2559 ARX_AC2 "FMADR/AC2,ADB/FM,AD/B,ARX/AD"
; 2560 ARX_AC3 "FMADR/AC3,ADB/FM,AD/B,ARX/AD"
; 2561 ARX_AC4 "AC4,ADB/FM,AD/B,ARX/AD"
; 2562
; 2563 ARX_AR "SH/AR,ARX/SH"
; 2564 ARX_AR (AD) "ADA/AR,AD/A,ARX/AD"
; 2565 ARX_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,ARX/AD"
; 2566 ARX_AR ANDCA BR "ADA/AR,ADB/BR,AD/ANDCA,ARX/AD"
; 2567 ARX_AR SIGN "AD/XCRY-1,SPEC/XCRY AR0,ARX/AD"
; 2568 ARX_AR SWAP "SH/AR SWAP,ARX/SH"
; 2569 ARX_AR*4 COMP "ADB/AR*4,AD/SETCB,ARX/AD"
; 2570 ARX_AR*MSK "MSK,ADB/FM,ADA/AR,ARX/AD"
; 2571 ARX_AR+1 "ADA/AR,AD/A+1,ARX/AD"
; 2572 .IF/KLPAGE
; 2573 ARX_AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,ARX/AD"
; 2574 .ENDIF/KLPAGE
; 2575 ARX_AR-1 "ADA/AR,AD/A-1,ARX/AD"
; 2576 ARX_AR-BR "ADA/AR,ADB/BR,AD/A-B,ARX/AD" ;[224]
; 2577
; 2578 ARX_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,ARX/AD"
; 2579 ARX_ARX ANDC ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/ANDCB,ARX/AD"
; 2580 ARX_ARX*-6 "ADA EN/EN,ADB/AR*4,AD/A-B,ARX/ADX*2"
; 2581 ARX_ARX*.25 "ADA EN/EN,AD/A,ARX/ADX*.25"
; 2582 ARX_ARX*.5 "ADA EN/EN,AD/A*2,ARX/ADX*.25"
; 2583 ARX_ARX*2 "ADA EN/EN,AD/A,ARX/ADX*2"
; 2584 ARX_ARX*2 COMP "ADA EN/EN,AD/SETCA,ARX/ADX*2"
; 2585 ARX_ARX*4 "ADB/AR*4,AD/B,ARX/ADX"
; 2586 ARX_ARX*4 COMP "ADB/AR*4,AD/SETCB,ARX/ADX"
; 2587 ARX_ARX*8 "ADB/AR*4,AD/B,ARX/ADX*2"
; 2588 ARX_ARX*BRX "ADA/AR,ADB/BR,ARX/ADX"
; 2589 ARX_ARX*EXPMSK "EXPMSK,ADB/FM,ADA/ARX,ARX/AD" ;[224]
; 2590 ARX_ARX+1 "ADA EN/EN,AD/A+1,ARX/ADX"
; 2591 .IF/KLPAGE
; 2592 ARX_ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,ARX/AD"
; 2593 .ENDIF/KLPAGE
; 2594 ARX_ARX-1 "ADA EN/EN,AD/A-1,ARX/ADX"
; 2595 ARX_ARX-1 (AD) "ADA/ARX,AD/A-1,ARX/AD"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--ARX
; 2596
; 2597 ARX_BR "ADB/BR,AD/B,ARX/AD"
; 2598 ARX_BR*2 "ADB/BR*2,AD/B,ARX/AD"
; 2599 ARX_BR+1 "ADB/BR,ADA EN/0S,AD/A+B+1,ARX/AD"
; 2600 ARX_BRX "ADB/BR,AD/B,ARX/ADX"
; 2601 ARX_BRX COMP "ADB/BR,AD/SETCB,ARX/ADX"
; 2602 ARX_BRX+1 "ADA EN/0S,ADB/BR,AD/A+B+1,ARX/ADX"
; 2603 ARX_DSTP "DSTP,ARX_FM"
; 2604 ARX_DSTP2 "DSTP2,ARX_FM"
; 2605 ARX_E1 "E1,ARX_FM"
; 2606 ARX_FILL "FILL,ARX_FM" ;[310]
; 2607 ARX_FM "ADB/FM,AD/B,ARX/AD"
; 2608 ARX_FM(VMA) "FMADR/VMA,ADB/FM,AD/B,ARX/AD"
; 2609 ARX_MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2610
; 2611 ARX_PC "ADA/PC,AD/A,ARX/AD"
; 2612 ARX_PC+1 "ADA/PC,AD/A+1,ARX/AD,SPEC/SAVE FLAGS"
; 2613 ARX_SHIFT "SH/SHIFT AR!ARX,ARX/SH"
; 2614 ARX_SRCP "SRCP,ARX_FM"
; 2615 ARX_SRCP2 "SRCP2,ARX_FM"
; 2616 .IF/KLPAGE
; 2617 ARX_SV.AR "SV.AR,ARX_FM"
; 2618 ARX_SV.ARX "SV.ARX,ARX_FM"
; 2619 ARX_SV.BR "SV.BR,ARX_FM"
; 2620 ARX_SV.VMA "SV.VMA,ARX_FM"
; 2621 .ENDIF/KLPAGE
; 2622 ARX_T0 "T0,ARX_FM"
; 2623 ARX_T2 "T2,ARX_FM"
;;2624 .IF/TRXDEF
;;2625 ARX_TRB "TRB,ARX_FM"
; 2626 .ENDIF/TRXDEF
; 2627 ARX_VMA HELD "COND/SEL VMA,ARX_PC"
; 2628 ARX+MQ_0.M "MEM/ARL IND,CLR/ARX+MQ"
; 2629 ARX+MQ_0.S "SPEC/ARL IND,CLR/ARX+MQ"
; 2630 ARX0_MQ35 "ADA/MQ,AD/A*2+1,ARX/ADX*.25"
; 2631 ARX0-3 DISP "SH/ARX,DISP/SH0-3"
; 2632
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--B, C, D
; 2633 .TOC "CRAM Macros--B, C, D"
; 2634
; 2635 B DISP "DISP/DRAM B"
; 2636 B WRITE "DISP/DRAM B,MEM/B WRITE"
; 2637 BLKO TIM(L) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA LEFT"
; 2638 BLKO TIM(R) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA RIGHT"
; 2639 BR_AR LONG "BR/AR,BRX/ARX"
; 2640 BYTE DISP "DISP/BYTE"
;;2641 .IFNOT/MODEL.B
;;2642 BYTE INDRCT "MEM/BYTE IND,VMA/LOAD"
; 2643 .IF/MODEL.B
; 2644 BYTE INDRCT "MEM/EA CALC,EA CALC/BYTE IND,VMA/LOAD"
; 2645 .ENDIF/MODEL.B
; 2646 BYTE PREV & CLR SR3 "COND/SR_#,#/640"
; 2647 BYTE PREV & SET SR2 "COND/SR_#,#/622"
; 2648 BYTE PREV & SET SR3 "COND/SR_#,#/641"
; 2649 .IF/MODEL.B
; 2650 BYTE READ "MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD"
; 2651 BYTE READ PC "MEM/EA CALC,EA CALC/BYTE RD PC,VMA/LOAD"
; 2652 BYTE RPW "MEM/EA CALC,EA CALC/BYTE RPW,VMA/LOAD"
;;2653 .IFNOT/MODEL.B
;;2654 BYTE READ "MEM/BYTE RD,VMA/LOAD"
;;2655 BYTE RPW "MEM/RPW,VMA/AD"
; 2656 .ENDIF/MODEL.B
; 2657
; 2658 .IF/MODEL.B
; 2659 CALL "CALL/CALL"
;;2660 .IFNOT/MODEL.B
;;2661 CALL "SPEC/CALL"
; 2662 .ENDIF/MODEL.B
; 2663 CALL [] "CALL, J/@1"
; 2664 CALL[] "CALL, J/@1"
; 2665 .IF/MODEL.B
; 2666 CALL.C "CALL/CALL"
; 2667 CALL.M "CALL/CALL"
; 2668 CALL.S "CALL/CALL"
;;2669 .IFNOT/MODEL.B
;;2670 CALL.C "COND/ARL IND,CALL/CALL"
;;2671 CALL.M "MEM/ARL IND,CALL/CALL"
;;2672 CALL.S "SPEC/ARL IND,CALL/CALL"
; 2673 .ENDIF/MODEL.B
; 2674 .IF/KLPAGE
; 2675 CBR "P2"
; 2676 .ENDIF/KLPAGE
; 2677 CLR ACC+SET UCODE "COND/EBOX STATE,#/245"
; 2678 CLR ACCOUNT EN "COND/EBOX STATE,#/145"
; 2679 CLR AR "COND/AR CLR"
; 2680 CLR ARX "COND/ARX CLR"
; 2681 CLR EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS NODEMAND"
; 2682 CLR EXP "SCADA EN/0S,SCAD/A,EXP_SCAD"
; 2683 CLR FE "SCADA EN/0S,SCAD/A,FE/SCAD"
; 2684 CLR FPD "SPEC/CLR FPD"
; 2685 CLR MQ "COND/REG CTL,MQ/MQ SEL,MQ CTL/0S"
; 2686 CLR MTR PA EN "COND/EBOX STATE,#/025"
; 2687 CLR P "SCADA EN/0S,SCAD/A,P_SCAD"
; 2688 CLR PT LINE "COND/MBOX CTL,MBOX CTL/CLR PT LINE"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--B, C, D
; 2689 CLR PT LINE (KEEP) "COND/MBOX CTL,MBOX CTL/CLR PT LINE(NK)"
; 2690 CLR SC "SCADA EN/0S,SCAD/A,SC/SCAD"
; 2691 CLR SPECIAL CYCLE "COND/SPEC INSTR,SPEC INSTR/0"
; 2692 CLR SR2 "COND/SR_#,#/20"
; 2693 CLR SR3 "COND/SR_#,#/40"
; 2694 CLR TRACKS EN "COND/EBOX STATE,#/121"
; 2695 CLR TRK+PA EN "COND/EBOX STATE,#/021"
; 2696 CMS FETCH "VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 2697 COMP FETCH "AD/XOR,VMA/PC+1,MEM/FETCH,FETCH/COMP"
; 2698 CONI APR(L) "DIAG IN,DIAG FUNC/CONI APR(L)"
; 2699 CONI APR(R) "DIAG IN,DIAG FUNC/CONI APR(R)"
; 2700 CONI MTR "DIAG IN,DIAG FUNC/CONI MTR"
; 2701 CONI PAG "DIAG IN,DIAG FUNC/CONI PAG"
; 2702 CONI PI(L) "DIAG IN,DIAG FUNC/CONI PI(L)"
; 2703 CONI PI(PAR) "DIAG IN,DIAG FUNC/CONI PI(PAR)"
; 2704 CONI PI(R) "DIAG IN,DIAG FUNC/CONI PI(R)"
; 2705 CONO APR "DIAG OUT,DIAG FUNC/CONO APR"
; 2706 CONO MTR "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO MTR"
; 2707 CONO PAG "DIAG OUT,DIAG FUNC/CONO PAG"
; 2708 CONO PI "DIAG OUT,DIAG FUNC/CONO PI"
; 2709 CONO TIM "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO TIM"
; 2710 CONTINUE "COND/SPEC INSTR,SPEC INSTR/CONT"
; 2711 .IF/KLPAGE
; 2712 CSMSK "P0"
; 2713 .ENDIF/KLPAGE
; 2714
; 2715 DATAI APR(L) "DIAG IN,DIAG FUNC/DATAI APR"
; 2716 DATAI PAG(L) "DIAG IN,DIAG FUNC/DATAI PAG(L)"
; 2717 DATAO APR "DIAG OUT,DIAG FUNC/DATAO APR"
; 2718 DATAO PAG(L) "DIAG OUT,DIAG FUNC/DATAO PAG"
; 2719 DIAG IN "COND/DIAG FUNC,TIME/5T,AR/EBUS"
; 2720 DIAG OUT "COND/DIAG FUNC,TIME/5T,ADA/AR,AD/A"
; 2721 DISMISS "SPEC/FLAG CTL,FLAG CTL/DISMISS"
; 2722 DIVIDE "FE_FE-1,DISP/DIV,MQ/MQ*2"
; 2723 DLEN "FMADR/AC3"
; 2724 DLEN_AR "DLEN,FM_AR"
; 2725 DROP EBUS REQ "COND/EBUS CTL,EBUS CTL/0"
; 2726 .IF/MODEL.B
; 2727 DSTP "FMADR/AC+#,AC-OP/AC+#,AC#/4"
;;2728 .IFNOT/MODEL.B
;;2729 DSTP "FMADR/AC4"
; 2730 .ENDIF/MODEL.B
; 2731 DSTP_AR "DSTP,FM_AR"
; 2732 .IF/MODEL.B
; 2733 DSTP2 "FMADR/AC+#,AC-OP/AC+#,AC#/5"
; 2734 .ENDIF/MODEL.B
; 2735 DSTP2_AR "DSTP2,FM_AR"
; 2736 DSTW "R14"
; 2737 DSTW_AR "DSTW,FM_AR"
; 2738
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--E, F
; 2739 .TOC "CRAM Macros--E, F"
; 2740
; 2741 E0 "R16"
; 2742 E0_AR "E0,FM_AR"
; 2743 E1 "R5"
; 2744 E1_AR "E1,FM_AR"
; 2745 .IF/XADDR
; 2746 EA MOD DISP "DISP/EA MOD,AD/1S"
;;2747 .IFNOT/XADDR
;;2748 EA MOD DISP "DISP/EA MOD"
;;2749 EA TYPE DISP "DISP/EA TYPE"
; 2750 .ENDIF/XADDR
; 2751 EPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/EPT FETCH"
; 2752 EPT REF "SPEC/SP MEM CYCLE,SP MEM/EPT"
; 2753 EPT REF CACHE "SPEC/SP MEM CYCLE,SP MEM/EPT CACHE"
; 2754 EXEC REF "SPEC/SP MEM CYCLE,SP MEM/EXEC"
; 2755 EXIT "DISP/DRAM B,MEM/B WRITE,J/ST0"
; 2756 EXIT DBL "MB WAIT,J/ST2AC" ;"I FETCH,J/DSTAC" WHEN TIMING FIXED
; 2757 EXP TEST "COND/REG CTL,EXP TST/AR_EXP"
; 2758 EXP TST "COND/REG CTL,EXP TST/AR_EXP"
; 2759 EXPMSK "R4" ;[224][233]
; 2760 EXP_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD"
; 2761 EXP_-SC-1 TST "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD.C,EXP TST"
; 2762 EXP_1 "SCADA EN/0S,SCAD/A+1,EXP_SCAD"
; 2763 EXP_FE TST "SCADA/FE,SCAD/A,EXP_SCAD.C,EXP TST"
; 2764 EXP_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,EXP_SCAD"
; 2765 EXP_SC.MS "MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/SCAD EXP,EXP_SCAD.MS";[224]
; 2766 EXP_SCAD "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 2767 EXP_SCAD.C "COND/REG CTL,AR CTL/AR0-8 LOAD,AR/ARMM,ARMM/SCAD EXP"
; 2768 EXP_SCAD.MS "SCADA EN/0S,SCADB/SC,SCAD/A+B"
; 2769 EXP_SIGN "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2770 EXP_SIGN.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2771 EXP_SIGN.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
; 2772 EXP_SIGN.MS "MEM/ARL IND,ARL/ARMM,COND/LD AR0-8,ARMM/EXP_SIGN";[224]
; 2773 .IF/MODEL.B
; 2774 EXT ADDR "MEM/A RD,#/400,DISP/DRAM B"
; 2775 EXT BYTE READ "MEM/EA CALC,EA CALC/BYTE RD,VMA/LOAD,GLOBAL"
; 2776 EXT INDEX "MEM/A RD,#/400,DISP/DRAM A RD"
; 2777 EXT INDRCT "MEM/EA CALC,EA CALC/A IND,VMA/LOAD"
; 2778 .ENDIF/MODEL.B
; 2779
; 2780 FE_# "SCADA/#,SCAD/A,FE/SCAD"
; 2781 FE_# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,FE/SCAD"
; 2782 FE_#+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2783 FE_#+SC "SCADA/#,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2784 FE_#-SC "SCADA/#,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2785 FE_+# "SCADA EN/0S,SCADB/#,SCAD/A+B,FE/SCAD"
; 2786 FE_-1 "SCADA EN/0S,SCAD/A-1,FE/SCAD"
; 2787 FE_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,FE/SCAD"
; 2788 FE_1 "SCADA EN/0S,SCAD/A+1,FE/SCAD"
; 2789 FE_AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 2790 FE_AR0-8 AND # "SCADA/#,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2791 FE_AR0-8 COMP "SCADA EN/0S,SCADB/AR0-8,SCAD/A-B-1,FE/SCAD"
; 2792 FE_EXP "SCADA/AR EXP,SCAD/A,FE/SCAD"
; 2793 FE_EXP+1 "SCADA/AR EXP,SCAD/A+1,FE/SCAD"
; 2794 FE_EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,FE/SCAD"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--E, F
; 2795 FE_EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,FE/SCAD"
; 2796 FE_EXP-1 "SCADA/AR EXP,SCAD/A-1,FE/SCAD"
; 2797 FE_FE AND # "SCADA/FE,SCADB/#,SCAD/AND,FE/SCAD"
; 2798 FE_FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 2799 FE_FE OR # "SCADA/FE,SCADB/#,SCAD/OR,FE/SCAD"
; 2800 FE_FE OR AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/OR,FE/SCAD"
; 2801 FE_FE SHRT "COND/FE SHRT,FE/0"
; 2802 FE_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,FE/SCAD"
; 2803 FE_FE+1 "SCADA/FE,SCAD/A+1,FE/SCAD"
; 2804 FE_FE+S "SCADA/FE,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2805 FE_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2806 FE_FE-# "SCADA/FE,SCADB/#,SCAD/A-B,FE/SCAD"
; 2807 FE_FE-1 "SCADA/FE,SCAD/A-1,FE/SCAD"
; 2808 FE_FE-S "SCADA/FE,SCADB/AR6-11,SCAD/A-B,FE/SCAD"
; 2809 FE_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,FE/SCAD"
; 2810 FE_P "SCADA/AR0-5,SCAD/A,FE/SCAD"
; 2811 FE_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,FE/SCAD"
; 2812 FE_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,FE/SCAD"
; 2813 FE_P OR # "SCADA/AR0-5,SCADB/#,SCAD/OR,FE/SCAD"
; 2814 FE_P+SC "SCADA/AR0-5,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2815 FE_S "SCADA EN/0S,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2816 FE_S+# "SCADA/#,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 2817 FE_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,FE/SCAD"
; 2818
; 2819 .IF/MODEL.B
; 2820 FETCH "MEM/IFET"
; 2821 FETCH+1 "COND/VMA INC,MEM/IFET"
;;2822 .IFNOT/MODEL.B
;;2823 FETCH "MEM/FETCH,FETCH/UNCOND"
;;2824 FETCH+1 "COND/VMA INC,MEM/FETCH,FETCH/UNCOND"
; 2825 .ENDIF/MODEL.B
; 2826 FETCH WAIT "MEM/MB WAIT" ;See edit 111
; 2827 FILL "R13"
; 2828 FILL_AR "FILL,FM_AR"
; 2829 FIN STORE "FMADR/VMA" ;FINISH STOREING
; 2830 FIN XFER "FMADR/VMA,ADB/FM,AD/B" ;FINISH XFER WHILE STARTING ANOTHER
; 2831 FINISH "J/FINI" ;USE INSTEAD OF NXT INSTR IF FM WRITE
; 2832 FM_AR "COND/FM WRITE"
; 2833 FM[]_AR "@1, FM_AR"
; 2834 .IF/MODEL.B
; 2835 FM(#)_AR "FMADR/AC+#,AC-OP/AC+#,COND/FM WRITE"
; 2836 .ENDIF/MODEL.B
; 2837 FORCE AR-ARX "ADB/AR*4,AD/B,AR/AD*.25,ARX/ADX*.25"
; 2838
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--G, H, I, J, L
; 2839 .TOC "CRAM Macros--G, H, I, J, L"
; 2840
; 2841 GEN # AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND"
; 2842 GEN #+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B"
; 2843 GEN #+SC "SCADA/#,SCADB/SC,SCAD/A+B"
; 2844 GEN #-SC "SCADA/#,SCADB/SC,SCAD/A-B"
; 2845 GEN -AR LONG "ADB/AR*4,ADA EN/0S,AD/A-B,SPEC/AD LONG"
; 2846 GEN -SC "SCADB/SC,SCADA EN/0S,SCAD/A-B"
; 2847 GEN -SC-1 "SCADB/SC,SCADA EN/0S,SCAD/A-B-1"
; 2848 GEN 0S "AD/0S"
; 2849 GEN 2AR "ADA/AR, AD/A*2"
; 2850
; 2851 GEN AC0 "FMADR/AC0,ADB/FM,AD/B"
; 2852 GEN AC0+1 "FMADR/AC0,ADB/FM,ADA EN/0S,AD/A+B+1"
; 2853 GEN AR "ADA/AR,AD/A"
; 2854 GEN AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR"
; 2855 GEN AR*BR "ADA/AR,ADB/BR"
; 2856 GEN AR*T0 "T0,ADB/FM,ADA/AR"
; 2857 GEN AR+1 "ADA/AR,AD/A+1"
; 2858 GEN AR+2BR "ADA/AR,ADB/BR*2,AD/A+B"
; 2859 GEN AR+BR "ADA/AR,ADB/BR,AD/A+B"
; 2860 GEN AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B"
; 2861 GEN AR+XR "FMADR/XR,ADB/FM,ADA/AR,AD/A+B"
; 2862 GEN AR-2BR "ADA/AR,ADB/BR*2,AD/A-B"
; 2863 GEN AR-AC3 "FMADR/AC3,ADB/FM,ADA/AR,AD/A-B"
; 2864 GEN AR-BR "ADA/AR,ADB/BR,AD/A-B"
; 2865 GEN AR-BR-1 "GEN AR*BR,AD/A-B-1"
; 2866 GEN AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/OR"
; 2867 GEN ARX "ADA/ARX,AD/A"
; 2868 GEN ARX COMP "ADA/ARX,AD/SETCA"
; 2869 GEN ARX*BR "ADA/ARX,ADB/BR" ;[224]
; 2870 GEN ARX*BRX "ADA EN/EN,ADB/BR"
; 2871 GEN ARX+1 "ADA/ARX,AD/A+1"
; 2872 GEN ARX+XR "FMADR/XR,ADB/FM,ADA/ARX,AD/A+B"
; 2873 GEN ARX-1 "ADA/ARX,AD/A-1"
; 2874
; 2875 GEN BR "ADB/BR,AD/B"
; 2876 GEN BR*2 "ADB/BR*2,AD/B"
; 2877 GEN BR+ARX "ADA/ARX,ADB/BR,AD/A+B" ;[230]
; 2878 GEN BRX+1 "ADA EN/0S,ADB/BR,AD/A+B+1"
; 2879 GEN CRY18 "SPEC/GEN CRY18"
; 2880 GEN E1 "E1, ADB/FM, AD/B"
; 2881 GEN FE "SCADA/FE,SCAD/A"
; 2882 GEN FE AND # "SCADA/FE,SCADB/#,SCAD/AND"
; 2883 GEN FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND"
; 2884 GEN FE AND S "SCADA/FE,SCADB/AR6-11,SCAD/AND"
; 2885 GEN FE AND SC "SCADA/FE,SCADB/SC,SCAD/AND"
; 2886 GEN FE+# "SCADA/FE,SCADB/#,SCAD/A+B"
; 2887 GEN FE-# "SCADA/FE,SCADB/#,SCAD/A-B"
; 2888 GEN FE-1 "SCADA/FE,SCAD/A-1"
; 2889 GEN FE-S "SCADA/FE,SCADB/AR6-11,SCAD/A-B"
; 2890 GEN FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B"
; 2891 GEN FE-SC-1 "SCADA/FE,SCADB/SC,SCAD/A-B-1" ; [303] For DPB to top byte
; 2892
; 2893 GEN MQ "ADA/MQ,AD/A"
; 2894 GEN MQ-AR "ADA/MQ,ADB/AR,AD/A-B"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--G, H, I, J, L
; 2895 GEN P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND"
; 2896 GEN P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND"
; 2897 GEN P+SC "SCADA/AR0-5,SCADB/SC,SCAD/A+B"
; 2898 GEN P-S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B"
; 2899 GEN P-SC "SCADA/AR0-5,SCADB/SC,SCAD/A-B"
; 2900 GEN SC "SCADB/SC,SCADA EN/0S,SCAD/A+B"
; 2901 GEN SCAD 0S "SCADA EN/0S,SCAD/A"
; 2902 GEN T1 "T1,ADB/FM,AD/B"
; 2903 GEN T2 "T2,ADB/FM,AD/B"
; 2904 GET ECL EBUS "COND/EBUS CTL,EBUS CTL/GRAB EEBUS"
; 2905 GLOBAL "SH/1"
; 2906
; 2907 HALT "SPEC/FLAG CTL,FLAG CTL/HALT"
; 2908
; 2909 .IF/MODEL.B
; 2910 I FETCH "VMA/PC+1,MEM/IFET"
;;2911 .IFNOT/MODEL.B
;;2912 I FETCH "VMA/PC+1,MEM/FETCH,FETCH/UNCOND"
; 2913 .ENDIF/MODEL.B
; 2914 INDEXED "SH/2"
; 2915 INH CRY18 "SPEC/INH CRY18"
; 2916 IO INIT "COND/EBUS CTL,EBUS CTL/IO INIT"
; 2917 IR DISP "DISP/DRAM J"
; 2918
; 2919 JFCL FETCH "VMA/PC+1,MEM/FETCH,FETCH/JFCL"
; 2920 JFCL S "SPEC/FLAG CTL,FLAG CTL/JFCL+LD"
; 2921 JFCL T "SPEC/FLAG CTL,FLAG CTL/JFCL"
; 2922 JUMP FETCH "VMA/PC+1,MEM/FETCH,FETCH/JUMP"
; 2923
; 2924 LD PCS "COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/ARX,AD/A"
; 2925 LD PREV CTXT "COND/DIAG FUNC,TIME/5T,DIAG FUNC/LD PCS+CWSX,ADA/PC,AD/A"
; 2926 LOAD AR "MEM/LOAD AR"
; 2927 .IF/MODEL.B
; 2928 LOAD AR (WR TST) "MEM/EA CALC,EA CALC/LD AR+WR"
; 2929 .ENDIF/MODEL.B
; 2930 LOAD ARX "MEM/LOAD ARX"
; 2931 .IF/MODEL.B
; 2932 LOAD ARX (WR TST) "MEM/EA CALC,EA CALC/LD ARX+WR"
; 2933 .ENDIF/MODEL.B
; 2934 LOAD EBR "MEM/REG FUNC,MREG FNC/LOAD EBR"
; 2935 .IF/MODEL.B
; 2936 LOAD IR "COND/LOAD IR,#/0"
;;2937 .IFNOT/MODEL.B
;;2938 LOAD IR "COND/LOAD IR"
; 2939 .ENDIF/MODEL.B
; 2940 LOAD UBR "MEM/REG FUNC,MREG FNC/LOAD UBR"
; 2941 .IF/BLT.PXCT
; 2942 LOAD VMA(EA)_ARX+BR "VMA/LOAD,MEM/EA CALC,EA CALC/LD AR(EA),ADA/ARX,ADB/BR,AD/A+B"
;;2943 .IFNOT/BLT.PXCT
;;2944 LOAD VMA(EA)_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD,LOAD AR"
; 2945 .ENDIF/BLT.PXCT
; 2946 .IF/MODEL.B
; 2947 LONG EN "COND/LONG EN"
; 2948 .ENDIF/MODEL.B
; 2949
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--M, N, O, P
; 2950 .TOC "CRAM Macros--M, N, O, P"
; 2951
; 2952 MAP "MEM/REG FUNC,MREG FNC/MAP"
; 2953 MB WAIT "MEM/MB WAIT"
; 2954 MEM_AR "FMADR/VMA,MEM/MB WAIT"
; 2955
; 2956 MQ_0.C "COND/ARL IND,CLR/MQ"
; 2957 MQ_0.M "MEM/ARL IND,CLR/MQ"
; 2958 MQ_0.S "SPEC/ARL IND,CLR/MQ"
; 2959 MQ_1 "ADA EN/0S,AD/A+1,MQ_AD"
; 2960 MQ_1S "COND/REG CTL,MQ/MQM SEL,MQ CTL/1S"
; 2961 MQ_AD "COND/REG CTL,MQ/MQM SEL,MQ CTL/AD"
; 2962 MQ_AR "SH/AR,MQ/SH"
; 2963 MQ_AR (AD) "ADA/AR,AD/A,MQ_AD"
; 2964 MQ_AR COMP "ADA/AR,AD/SETCA,MQ_AD"
; 2965 MQ_AR SWAP "SH/AR SWAP,MQ/SH"
; 2966 MQ_ARX "SH/ARX,MQ/SH"
; 2967 MQ_ARX COMP "ADA/ARX,AD/SETCA,MQ_AD"
; 2968 MQ_BR "ADB/BR,AD/B,MQ_AD"
; 2969 MQ_BR COMP "ADB/BR,AD/SETCB,MQ_AD"
; 2970 MQ_MQ*.25 "SPEC/MQ SHIFT,MQ/MQ*.25"
; 2971 MQ_MQ*2 "SPEC/MQ SHIFT,MQ/MQ*2"
; 2972 MQ_MQ*BR "ADA/MQ, ADB/BR, MQ_AD"
; 2973 MQ_SHIFT "SH/SHIFT AR!ARX,MQ/SH"
; 2974
; 2975 MSK "R7"
; 2976 MSK_AR "MSK,FM_AR"
; 2977 MUL "FE_FE+1,DISP/MUL,MQ/MQ*.25"
; 2978
; 2979
; 2980 NO CRY "AD/SETCA"
; 2981 NORM "DISP/NORM"
; 2982 NORM -AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25,ARX/ADX*.25,DISP/NORM"
; 2983 NORM AR "ADB/AR*4,AD/B,DISP/NORM"
; 2984 NXT INSTR "MEM/MB WAIT,DISP/NICOND,#/0,CLR SC,CLR FE,J/NEXT"
; 2985
; 2986 OPTIONS "ISTAT/OPTIONS,KLPAGE/OPTIONS,LONGPC/OPTIONS,NONSTD/OPTIONS,PV/OPTIONS"
; 2987
; 2988 P_# "SCADA/#,SCAD/A,P_SCAD#"
; 2989 P_#-S "SCADA/#,SCADB/AR6-11,SCAD/A-B,P_SCAD#"
; 2990 P_-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,P_SCAD.M"
; 2991 P_1S "SCADA EN/0S,SCAD/A-1,P_SCAD"
; 2992 P_FE "SCADA/FE,SCAD/A,P_SCAD"
; 2993 P_FE OR SC "SCADA/FE,SCADB/SC,SCAD/OR,P_SCAD"
; 2994 P_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,P_SCAD.C"
; 2995 P_FE-S "SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD.C"
; 2996 P_FE-S.S "SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD"
; 2997 P_FE.C "SCADA/FE,SCAD/A,P_SCAD#"
; 2998 P_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,P_SCAD#"
; 2999 P_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,P_SCAD.M"
; 3000 P_P OR # "SCADA/AR0-5,SCADB/#,SCAD/OR,P_SCAD#"
; 3001 P_P OR SC "SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD.M"
; 3002 P_P OR SC# "SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD#"
; 3003 P_P+# "SCADA/AR0-5,SCADB/#,SCAD/A+B,P_SCAD#"
; 3004 P_P+1 "SCADA/AR0-5,SCAD/A+1,P_SCAD"
; 3005 P_P+S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--M, N, O, P
; 3006 P_P+S.C "SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD#"
; 3007 P_P-S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,P_SCAD.M"
; 3008 P_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD.M"
; 3009 P_SC# "SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD#"
; 3010 P_SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3011 P_SCAD# "COND/LD AR0-8,AR/ARMM,ARMM/SCAD POS"
; 3012 P_SCAD.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3013 P_SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 3014
; 3015 P0 "FMADR/#B#,ACB/PAGB,AC#/0" Paging AC 0
; 3016 P1 "FMADR/#B#,ACB/PAGB,AC#/1"
; 3017 P10 "FMADR/#B#,ACB/PAGB,AC#/10"
; 3018 P11 "FMADR/#B#,ACB/PAGB,AC#/11"
; 3019 P12 "FMADR/#B#,ACB/PAGB,AC#/12"
; 3020 P13 "FMADR/#B#,ACB/PAGB,AC#/13"
; 3021 P14 "FMADR/#B#,ACB/PAGB,AC#/14"
; 3022 P15 "FMADR/#B#,ACB/PAGB,AC#/15"
; 3023 P16 "FMADR/#B#,ACB/PAGB,AC#/16"
; 3024 P17 "FMADR/#B#,ACB/PAGB,AC#/17"
; 3025 P2 "FMADR/#B#,ACB/PAGB,AC#/2"
; 3026 P3 "FMADR/#B#,ACB/PAGB,AC#/3"
; 3027 P4 "FMADR/#B#,ACB/PAGB,AC#/4"
; 3028 P5 "FMADR/#B#,ACB/PAGB,AC#/5"
; 3029 P6 "FMADR/#B#,ACB/PAGB,AC#/6"
; 3030 P7 "FMADR/#B#,ACB/PAGB,AC#/7"
; 3031
; 3032 PC_VMA "SPEC/LOAD PC"
; 3033 PF DISP "DISP/PG FAIL"
; 3034 .IF/KLPAGE
; 3035 PFA "P4"
; 3036 PFA_AR "PFA,COND/FM WRITE"
; 3037 .ENDIF/KLPAGE
; 3038 PHYS REF "SPEC/SP MEM CYCLE,SP MEM/UNPAGED"
; 3039 PHYS REF CACHE "SPEC/SP MEM CYCLE,SP MEM/UNPAGED+CACHED"
; 3040 .IF/MODEL.B
; 3041 POP AR "MEM/EA CALC,EA CALC/POP AR,VMA/LOAD"
; 3042 POP AR-ARX "MEM/EA CALC,EA CALC/POP AR-ARX,VMA/LOAD"
; 3043 POP ARX "MEM/EA CALC,EA CALC/POP ARX,VMA/LOAD"
; 3044 .ENDIF/MODEL.B
; 3045 PORTAL "SPEC/FLAG CTL,FLAG CTL/PORTAL"
; 3046 PT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/PT FETCH"
; 3047 PT REF "SPEC/SP MEM CYCLE,SP MEM/PT"
; 3048 PT SEL_INVAL "COND/MBOX CTL,MBOX CTL/PT DIR CLR"
; 3049 PT SEL_INVAL (KEEP) "COND/MBOX CTL,MBOX CTL/PT DIR CLR(NK)"
; 3050 PT SEL_NORMAL "COND/MBOX CTL,MBOX CTL/NORMAL"
; 3051 .IF/KLPAGE
; 3052 PUR "P1"
; 3053 .ENDIF/KLPAGE
; 3054 .IF/MODEL.B
; 3055 PUSH "MEM/EA CALC,EA CALC/PUSH,VMA/LOAD,SPEC/STACK UPDATE"
; 3056 .ENDIF/MODEL.B
; 3057
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--R
; 3058 .TOC "CRAM Macros--R"
; 3059
; 3060 R0 "FMADR/#B#,ACB/MICROB,AC#/0" Scratch register 0
; 3061 R1 "FMADR/#B#,ACB/MICROB,AC#/1" Scratch register 1
; 3062 R10 "FMADR/#B#,ACB/MICROB,AC#/10" Scratch register 10
; 3063 R11 "FMADR/#B#,ACB/MICROB,AC#/11" Scratch register 11
; 3064 R12 "FMADR/#B#,ACB/MICROB,AC#/12" Scratch register 12
; 3065 R13 "FMADR/#B#,ACB/MICROB,AC#/13" Scratch register 13
; 3066 R14 "FMADR/#B#,ACB/MICROB,AC#/14" Scratch register 14
; 3067 R15 "FMADR/#B#,ACB/MICROB,AC#/15" Scratch register 15
; 3068 R16 "FMADR/#B#,ACB/MICROB,AC#/16" Scratch register 16
; 3069 R17 "FMADR/#B#,ACB/MICROB,AC#/17" Scratch register 17
; 3070 R2 "FMADR/#B#,ACB/MICROB,AC#/2" Scratch register 2
; 3071 R3 "FMADR/#B#,ACB/MICROB,AC#/3" Scratch register 3
; 3072 R4 "FMADR/#B#,ACB/MICROB,AC#/4" Scratch register 4
; 3073 R5 "FMADR/#B#,ACB/MICROB,AC#/5" Scratch register 5
; 3074 R6 "FMADR/#B#,ACB/MICROB,AC#/6" Scratch register 6
; 3075 R7 "FMADR/#B#,ACB/MICROB,AC#/7" Scratch register 7
; 3076
; 3077 RD+CLR C CNT "SPEC/MTR CTL,AR_CACHE CNT"
; 3078 RD+CLR E CNT "SPEC/MTR CTL,AR_EBOX CNT"
; 3079 RD+CLR PA "SPEC/MTR CTL,AR_PERF CNT"
; 3080 RD+CLR TB "SPEC/MTR CTL,AR_TIME BASE"
; 3081 .IF/MODEL.B
; 3082 READ BP2 "MEM/EA CALC,EA CALC/BYTE IND,VMA/VMA,COND/VMA INC"
; 3083 .ENDIF/MODEL.B
; 3084 READ EBR "MEM/REG FUNC,MREG FNC/READ EBR"
; 3085 READ ERA "MEM/REG FUNC,MREG FNC/READ ERA"
; 3086 READ UBR "MEM/REG FUNC,MREG FNC/READ UBR"
; 3087 REL EBUS "COND/EBUS CTL,EBUS CTL/REL EBUS"
; 3088 REL ECL EBUS "COND/EBUS CTL,EBUS CTL/REL EEBUS"
; 3089 REQ EBUS "COND/EBUS CTL,EBUS CTL/REQ EBUS"
; 3090 .IF/KLPAGE
; 3091 REQ SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/1,MEM/AD FUNC"
; 3092 REQ VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/1,MEM/AD FUNC"
; 3093 .ENDIF/KLPAGE
; 3094
; 3095 RET[] "DISP/RETURN,J/@1"
; 3096 RETURN0 "DISP/RETURN,J/0"
; 3097 RETURN1 "DISP/RETURN,J/1"
; 3098 RETURN10 "DISP/RETURN,J/10"
; 3099 RETURN12 "DISP/RETURN,J/12"
; 3100 RETURN2 "DISP/RETURN,J/2"
; 3101 RETURN20 "DISP/RETURN,J/20"
; 3102 RETURN3 "DISP/RETURN,J/3"
; 3103 RETURN30 "DISP/RETURN,J/30"
; 3104 RETURN37 "DISP/RETURN,J/37"
; 3105 RETURN4 "DISP/RETURN,J/4"
; 3106 RETURN5 "DISP/RETURN,J/5"
; 3107 RETURN6 "DISP/RETURN,J/6"
; 3108 RETURN7 "DISP/RETURN,J/7"
; 3109 RSTR FLAGS_AR "SPEC/FLAG CTL,FLAG CTL/RSTR FLAGS"
; 3110 .IF/KLPAGE
; 3111 RSTR VMA_ARX "ADA/ARX,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3112 RSTR VMA_MQ "ADA/MQ,AD/A,VMA/LOAD,MEM/RESTORE VMA"
; 3113 RSTR VMA_SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/LOAD,MEM/RESTORE VMA"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--R
; 3114 .ENDIF/KLPAGE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--S
; 3115 .TOC "CRAM Macros--S"
; 3116
; 3117 .IF/KLPAGE
; 3118 SBR "P3"
; 3119 .ENDIF/KLPAGE
; 3120 SBUS DIAG "MEM/REG FUNC,MREG FNC/SBUS DIAG"
; 3121
; 3122 SC_# "SCADA/#,SCAD/A,SC/SCAD"
; 3123 SC_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
; 3124 SC_# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,SC/SCAD"
; 3125 SC_# OR SC "SCADA/#,SCADB/SC,SCAD/OR,SC/SCAD"
; 3126 SC_#+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B,SC/SCAD"
; 3127 SC_#+SC "SCADA/#,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3128 SC_#-SC "SCADA/#,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3129 SC_#-SC-1 "SCADA/#,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3130 SC_-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3131 SC_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3132 SC_0 "SCADA EN/0S,SCAD/A,SC/SCAD"
; 3133 SC_1 "SCADA EN/0S,SCAD/A+1,SC/SCAD"
; 3134 SC_1S "SCADA EN/0S,SCAD/A-1,SC/SCAD"
; 3135 SC_AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,SC/SCAD" ;[231]
; 3136 SC_EA "SPEC/SCM ALT,SC/AR SHIFT"
; 3137 SC_EXP "SCADA/AR EXP,SCAD/A,SC/SCAD"
; 3138 SC_EXP+1 "SCADA/AR EXP,SCAD/A+1,SC/SCAD"
; 3139 SC_EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3140 SC_EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,SC/SCAD"
; 3141 SC_EXP-1 "SCADA/AR EXP,SCAD/A-1,SC/SCAD"
; 3142 SC_EXP-SC "SCADA/AR EXP,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3143 SC_FE "SPEC/SCM ALT,SC/FE"
; 3144 SC_FE AND # "SCADA/FE,SCADB/#,SCAD/AND,SC/SCAD"
; 3145 SC_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,SC/SCAD"
; 3146 SC_FE+1 "SCADA/FE,SCAD/A+1,SC/SCAD"
; 3147 SC_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,SC/SCAD"
; 3148 SC_FE-# "SCADA/FE,SCADB/#,SCAD/A-B,SC/SCAD"
; 3149 SC_FE-1 "SCADA/FE,SCAD/A-1,SC/SCAD"
; 3150 SC_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,SC/SCAD"
; 3151 SC_FE-SC-1 "SCADA/FE,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 3152 SC_P "SCADA/AR0-5,SCAD/A,SC/SCAD"
; 3153 SC_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,SC/SCAD"
; 3154 SC_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,SC/SCAD"
; 3155 SC_P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B,SC/SCAD"
; 3156 SC_S "SCADB/AR6-11,SCADA EN/0S,SCAD/A+B,SC/SCAD"
; 3157 SC_SC AND # "SCADA/#,SCADB/SC,SCAD/AND,SC/SCAD"
; 3158
; 3159 .IF/MODEL.B
; 3160 SEL AC4 "AC-OP/AC+#,AC#/4"
; 3161 SEL DSTP "AC-OP/AC+#,AC#/4"
; 3162 SEL DSTP2 "AC-OP/AC+#,AC#/5"
; 3163 .ENDIF/MODEL.B
; 3164 SET ACC+CLR UCODE "COND/EBOX STATE,#/005"
; 3165 SET ACCOUNT EN "COND/EBOX STATE,#/105"
; 3166 SET AROV "COND/PCF_#,PC FLAGS/AROV"
; 3167 SET CONS XCT "COND/SPEC INSTR,SPEC INSTR/CONS XCT"
; 3168 SET DATAI "COND/EBUS CTL,EBUS CTL/DATAI,AD/0S,AR/AD"
; 3169 SET DATAO "COND/EBUS CTL,EBUS CTL/DATAO"
; 3170 SET EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS DEMAND"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--S
; 3171 SET FL NO DIV "COND/PCF_#,PC FLAGS/FDV CHK"
; 3172 SET FLAGS_AR "SPEC/FLAG CTL,FLAG CTL/SET FLAGS"
; 3173 SET FLOV "COND/PCF_#,PC FLAGS/FLOV"
; 3174 SET FPD "COND/PCF_#,PC FLAGS/FPD"
; 3175 SET FXU "COND/PCF_#,PC FLAGS/FXU" ;[224]
; 3176 SET HALTED "COND/SPEC INSTR,SPEC INSTR/HALTED"
; 3177 SET IO PF "COND/MBOX CTL,MBOX CTL/SET IO PF ERR"
; 3178 SET MTR PA EN "COND/EBOX STATE,#/225"
; 3179 SET NO DIVIDE "COND/PCF_#,PC FLAGS/DIV CHK"
; 3180 SET PC+1 INH "COND/SPEC INSTR,SPEC INSTR/INH PC+1"
; 3181 SET PI CYCLE "COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE"
; 3182 SET PXCT "COND/SPEC INSTR,SPEC INSTR/PXCT"
; 3183 SET SR1 "COND/SR_#,#/64"
; 3184 SET SR2 "COND/SR_#,#/62"
; 3185 SET SR3 "COND/SR_#,#/61"
; 3186 SET SXCT "COND/SPEC INSTR,SPEC INSTR/SXCT"
; 3187 SET TRACKS EN "COND/EBOX STATE,#/131"
; 3188 SET TRK+PA EN "COND/EBOX STATE,#/231"
; 3189 SFLGS "FMADR/AC0"
; 3190 SFLGS_AR "SFLGS,FM_AR"
; 3191 SH DISP "SH/SHIFT AR!ARX,DISP/SH0-3"
; 3192 SIGNS DISP "DISP/SIGNS"
; 3193 SKIP FETCH "ADA/AR,AD/A,VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 3194
; 3195 SKP -EBUS GRANT "SKIP/-EBUS GRANT"
; 3196 SKP -EBUS XFER "SKIP/-EBUS XFER"
; 3197 .IF/MODEL.B
; 3198 SKP -LOCAL AC ADDR "SKIP/-LOCAL AC ADDR"
; 3199 .ENDIF/MODEL.B
; 3200 SKP -START "SKIP/-START"
; 3201 .IF/MODEL.B
; 3202 SKP -VMA SEC0 "SKIP/-VMA SEC0"
; 3203 .ENDIF/MODEL.B
; 3204 SKP AC REF "SKIP/AC REF"
; 3205 SKP AC#0 "SKIP/AC#0"
; 3206 SKP AC0+ "FMADR/AC0,ADB/FM,AD/SETCB,SKIP/AD0"
; 3207 SKP AC0- "FMADR/AC0,ADB/FM,AD/B,SKIP/AD0"
; 3208 SKP AD NE "SKIP/AD#0"
; 3209 SKP AD0 "SKIP/AD0"
; 3210 SKP ADX0 "SKIP/ADX0"
; 3211 SKP AR EQ "ADA EN/0S,ADB/AR*4,AD/ORCB+1,SKIP/AD CRY0"
; 3212 SKP AR EQ -1 "ADA/AR,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3213 SKP AR GT BR "ADA/AR,ADB/BR,AD/XOR,SKIP/AD CRY0"
; 3214 SKP AR NE "ADA/AR,AD/CRY A#0,SKIP/AD CRY0"
; 3215 SKP AR NE BR "ADA/AR,ADB/BR,AD/XOR,SKIP/AD#0"
; 3216 SKP AR SIG "ADA/AR,AD/A+XCRY,SPEC/XCRY AR0,SKIP/AD#0"
; 3217 SKP AR0 "SKIP/AR0"
; 3218 SKP AR1 "ADA/AR,AD/A*2,SKIP/AD0"
; 3219 SKP AR18 "SKIP/AR18"
; 3220 SKP AR2 "ADB/AR*4,AD/B,SKIP/AD0"
; 3221 SKP AR6 "SCADB/AR6-11,SCADA/#,#/40,SCAD/AND,SKIP/SCAD#0"
; 3222 SKP ARX LE BRX "ADA EN/EN,ADB/BR,AD/A-B-1,SKIP/ADX0"
; 3223 SKP ARX LT BRX "ADA EN/EN,ADB/BR,AD/A-B,SKIP/ADX0"
; 3224 SKP ARX NE "ADA/ARX,AD/CRY A#0,SKIP/AD CRY0"
; 3225 SKP ARX+MQ NE "ADA/MQ,AD/CRY A#0,SPEC/AD LONG,SKIP/AD CRY0"
; 3226 SKP ARX0 "SKIP/ARX0"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10-2
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--S
; 3227 SKP ARX2 "ADB/AR*4,AD/B,SKIP/ADX0"
; 3228
; 3229 SKP BR EQ "ADA EN/0S,ADB/BR,AD/CRY A GE B,SKIP/AD CRY0"
; 3230 SKP BR EQ -1 "ADA EN/0S,ADB/BR,AD/A+B+1,SKIP/AD CRY0"
; 3231 SKP BR0 "SKIP/BR0"
; 3232 SKP CRY0 "SKIP/AD CRY0"
; 3233 SKP EVEN PAR "SKIP/EVEN PAR"
; 3234 SKP EXP NE "SCADA/AR EXP,SCAD/A,SKIP/SCAD#0"
; 3235 SKP FE0 "SCADA/FE,SCAD/A,SKIP/SCAD0"
; 3236 SKP FETCH "SKIP/FETCH"
; 3237 SKP INTRPT "SKIP/INTRPT"
; 3238 SKP IO LEGAL "SKIP/IO LEGAL"
; 3239 SKP KERNEL "SKIP/KERNEL"
; 3240 SKP MQ EQ -1 "ADA/MQ,AD/CRY A EQ -1,SKIP/AD CRY0"
; 3241 SKP MQ NE "ADA/MQ,AD/CRY A#0,SKIP/AD CRY0"
; 3242 SKP P NE "SCADA/AR0-5,SCAD/A,SKIP/SCAD#0"
; 3243 SKP P!S XCT "SKIP/P!S XCT"
; 3244 .IF/MODEL.B
; 3245 SKP PC SEC0 "SKIP/PC SEC0"
; 3246 .ENDIF/MODEL.B
; 3247 SKP PI CYCLE "SKIP/PI CYCLE"
; 3248 SKP RPW "SKIP/RPW REF"
; 3249 SKP RUN "SKIP/RUN"
;;3250 .IFNOT/MODEL.B
;;3251 SKP SC LE 36 "SCADB/SC,SCADA/#,#/-36.,SCAD/A+B,SKIP/SCAD0"
; 3252 .ENDIF/MODEL.B
; 3253 SKP SC NE "SCADB/SC,SCADA EN/0S,SCAD/A+B,SKIP/SCAD#0"
; 3254 SKP SC0 "SKIP/SC0"
; 3255 SKP SCAD NE "SKIP/SCAD#0"
; 3256 SKP SCAD0 "SKIP/SCAD0"
; 3257 SKP USER "SKIP/USER"
; 3258
; 3259 SLEN "R10" ;MUST BE 170
; 3260 SLEN_AR "SLEN,FM_AR"
; 3261 SR DISP "DISP/SR"
; 3262 SR_# "COND/SR_#" ;USED FOR NON-PAGE-FAIL APPLICATIONS
; 3263 SR_0 "COND/SR_#,#/0"
; 3264 SR_1 "COND/SR_#,#/1"
; 3265 SR_2 "COND/SR_#,#/2" ;[224]
; 3266 .IF/MODEL.B
; 3267 SR_BDD "COND/SR_#,#/206" ;B2D AFTER UPDATING DST PTR
; 3268 SR_BDF "COND/SR_#,#/203" ;B2D STORING FILLERS
; 3269 SR_BDT "COND/SR_#,#/010" ;B2D IN TRANSLATION
; 3270 SR_BLT(DST) "COND/SR_#,#/507"
; 3271 .IF/BLT.PXCT
; 3272 SR_BLT(PXCT DST)"COND/SR_#,#/107"
; 3273 SR_BLT(PXCT SRC)"COND/SR_#,#/307" ;SPECIAL FOR PXCT
; 3274 .ENDIF/BLT.PXCT
; 3275 SR_BLT(SRC) "COND/SR_#,#/707"
; 3276 SR_DB "COND/SR_#,#/102" ;D2B ANYWHERE
; 3277 SR_DST "COND/SR_#,#/212"
; 3278 SR_DSTF "COND/SR_#,#/214"
; 3279 SR_ED(+D) "COND/SR_#,#/224"
; 3280 SR_ED(PAT) "COND/SR_#,#/0" ;PATTERN REF IS EXTENDED
; 3281 SR_ED(S) "COND/SR_#,#/101"
;;3282 .IFNOT/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10-3
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--S
;;3283 SR_BDD "COND/SR_#,#/6" ;B2D AFTER UPDATING DST PTR
;;3284 SR_BDF "COND/SR_#,#/3" ;B2D STORING FILLERS
;;3285 SR_BDT "COND/SR_#,#/10" ;B2D IN TRANSLATION
;;3286 SR_BLT(DST) "COND/SR_#,#/107" ; BY PXCT 10,4
;;3287 SR_BLT(SRC) "COND/SR_#,#/607" ;CONTEXT CONTROLLED BY PXCT 2,1
;;3288 SR_DB "COND/SR_#,#/2" ;D2B ANYWHERE
;;3289 SR_DST "COND/SR_#,#/12"
;;3290 SR_DSTF "COND/SR_#,#/14"
;;3291 SR_ED(+D) "COND/SR_#,#/24"
;;3292 SR_ED(PAT) "COND/SR_#,#/0"
;;3293 SR_ED(S) "COND/SR_#,#/1"
; 3294 .ENDIF/MODEL.B
; 3295 .IF/KLPAGE
; 3296 SR_MAP "COND/SR_#,#/15" ;CATCH MAP PAGE FAILURES
; 3297 .ENDIF/KLPAGE
; 3298 .IF/MODEL.B
; 3299 SR_SRC "COND/SR_#,#/111"
; 3300 SR_SRC+DST "COND/SR_#,#/213"
;;3301 .IFNOT/MODEL.B
;;3302 SR_SRC "COND/SR_#,#/11"
;;3303 SR_SRC+DST "COND/SR_#,#/13"
; 3304 .ENDIF/MODEL.B
; 3305 SR_WORD "COND/SR_#,#/17" ;WORD MOVES OF STRING INSTRS
; 3306 .IF/MODEL.B
; 3307 .IF/XADDR
; 3308 SR_XBLT(DST) "COND/SR_#,#/316"
; 3309 SR_XBLT(SRC) "COND/SR_#,#/216"
; 3310 .ENDIF/XADDR
; 3311 .ENDIF/MODEL.B
; 3312 SRCP "FMADR/AC1"
; 3313 SRCP_AR "SRCP,FM_AR"
; 3314 SRCP2 "FMADR/AC2"
; 3315 SRCP2_AR "SRCP2,FM_AR"
; 3316
; 3317 .IF/MODEL.B
; 3318 STACK UPDATE "SPEC/STACK UPDATE"
; 3319 .ENDIF/MODEL.B
; 3320 STORE "MEM/WRITE"
; 3321 .IF/BLT.PXCT
; 3322 STORE VMA(EA)_ARX "VMA/LOAD,MEM/EA CALC,EA CALC/WRITE(E),ADA/ARX,AD/A"
;;3323 .IFNOT/BLT.PXCT
;;3324 STORE VMA(EA)_ARX "ADA/ARX,AD/A,VMA/AD,STORE"
; 3325 .ENDIF/BLT.PXCT
; 3326 .IF/KLPAGE
; 3327 SV.AR "P16" ;156 REQUIRED FOR PF.PAR HACK
;;3328 .IFNOT/KLPAGE
;;3329 SV.AR "R0"
; 3330 .ENDIF/KLPAGE
; 3331 SV.AR_AR "SV.AR,COND/FM WRITE"
; 3332 .IF/KLPAGE
; 3333 SV.ARX "P17" ;157 REQUIRED FOR PF.PAR HACK
;;3334 .IFNOT/KLPAGE
;;3335 SV.ARX "R1"
; 3336 .ENDIF/KLPAGE
; 3337 SV.ARX_AR "SV.ARX,COND/FM WRITE"
; 3338 .IF/KLPAGE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10-4
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--S
; 3339 SV.BR "P10"
; 3340 SV.BR_AR "SV.BR,COND/FM WRITE"
; 3341 .ENDIF/KLPAGE
; 3342 SV.IOP "R3" ;[233]
; 3343 SV.IOPF "R2"
; 3344 SV.IOPF_AR "SV.IOPF,COND/FM WRITE" ;IO PAGE FAIL WORD
; 3345 .IF/KLPAGE
; 3346 SV.PAR "R0" ;Note not in PAGB block
; 3347 SV.PAR_AR "SV.PAR,COND/FM WRITE"
; 3348 SV.PFW "P12"
; 3349 SV.PFW_AR "SV.PFW,COND/FM WRITE"
; 3350 SV.SC "P11"
; 3351 SV.SC_AR "SV.SC,COND/FM WRITE"
; 3352 SV.VMA "P5"
; 3353 SV.VMA_AR "SV.VMA,COND/FM WRITE"
; 3354 .ENDIF/KLPAGE
; 3355 SWD "R1" ;BUFFER FOR SOURCE BYTE WORD
; 3356 SWD_AR "SWD,FM_AR"
; 3357 SWEEP CACHE "MEM/REG FUNC,MREG FNC/LOAD CCA"
; 3358
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--T, U, V, W, X
; 3359 .TOC "CRAM Macros--T, U, V, W, X"
; 3360
; 3361 T0 "R6"
; 3362 T0_AR "T0,FM_AR"
; 3363 T1 "R11"
; 3364 T1_AR "T1,FM_AR"
; 3365 T2 "R12"
; 3366 T2_AR "T2,FM_AR"
; 3367 TAKE INTRPT "SKIP/-MTR REQ,J/MTRINT"
; 3368 TEST AR "ADA/AR,AD/CRY A#0"
; 3369 TEST AR.AC0 "FMADR/AC0,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3370 TEST AR.BR "ADB/BR,ADA/AR,AD/CRY A.B#0"
; 3371 TEST AR.MSK "MSK,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 3372 TEST ARX "ADA/ARX,AD/CRY A#0"
; 3373 TEST ARX.AR*4 "ADA/ARX,ADB/AR*4,AD/CRY A.B#0"
; 3374 TEST BRL "ADA EN/0S,ADB/BR,AD/ORCB+1,GEN CRY18"
; 3375 .IF/KLPAGE
; 3376 TEST CBR "CBR,ADB/FM,AD/B,SKP AD NE" ;[247]
; 3377 .ENDIF/KLPAGE
; 3378 TEST FETCH "VMA/PC+1,MEM/FETCH,FETCH/TEST"
; 3379 TRAP1 "COND/PCF_#,PC FLAGS/TRAP1"
; 3380 TRAP2 "COND/PCF_#,PC FLAGS/TRAP2"
; 3381 TRAP3 "COND/PCF_#,PC FLAGS/TRAP3"
;;3382 .IF/TRXDEF
;;3383 TRB "E0" ;same as E0.
;;3384 TRB_AR "TRB,FM_AR"
;;3385 TRX "R17"
;;3386 TRX_AR "TRX,FM_AR"
;;3387 TRX1 "R2"
;;3388 TRX1_AR "TRX1,FM_AR"
;;3389 TRX2 "R1"
;;3390 TRX2_AR "TRX2,FM_AR"
;;3391 TRX3 "R14"
;;3392 TRX3_AR "TRX3,FM_AR"
; 3393 .ENDIF/TRXDEF
; 3394
; 3395 UNCSH PHYS REF "SPEC/SP MEM CYCLE,SP MEM/UNCSH+UNPAGE"
; 3396 UPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/UPT FETCH"
; 3397 UPT REF "SPEC/SP MEM CYCLE,SP MEM/UPT"
; 3398 USER REF "SPEC/SP MEM CYCLE,SP MEM/USER"
; 3399
; 3400 VMA_# "VMA/LOAD,COND/VMA_#"
; 3401 VMA_#+AR32-35 "VMA/LOAD,COND/VMA_#+AR32-35"
; 3402 VMA_40 "VMA/LOAD,COND/VMA_#,#/40"
; 3403 VMA_40+PI*2 "VMA/LOAD,COND/VMA_#+PI*2,#/40"
; 3404 VMA_41 "VMA/LOAD,COND/VMA_#,#/41"
; 3405 VMA_41+PI*2 "VMA/LOAD,COND/VMA_#+PI*2,#/41"
; 3406 VMA_420+TRAP "VMA/LOAD,COND/VMA_#+TRAP,#/420"
; 3407 VMA_430+MODE "VMA/LOAD,COND/VMA_#+MODE,#/430"
; 3408 VMA_AC3 "FMADR/AC3,ADB/FM,AD/B,VMA/AD"
; 3409 VMA_AR "ADA/AR,AD/A,VMA/AD"
; 3410 VMA_AR AND ADMSK "ADMSK,ADB/FM,ADA/AR,AD/AND,VMA/AD"
; 3411 VMA_AR+1 "ADA/AR,AD/A+1,VMA/AD"
; 3412 VMA_AR+BR "ADA/AR,ADB/BR,AD/A+B,VMA/AD"
; 3413 .IF/KLPAGE
; 3414 VMA_AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11-1
; MACRO.MIC[10,5351] 21:14 28-Nov-83 CRAM Macros--T, U, V, W, X
; 3415 .ENDIF/KLPAGE
; 3416 VMA_AR+E0 "E0,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3417 VMA_AR+E0+1 "E0,ADB/FM,ADA/AR,AD/A+B+1,VMA/AD"
; 3418 VMA_AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3419 .IF/KLPAGE
; 3420 VMA_AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3421 .ENDIF/KLPAGE
;;3422 .IF/TRXDEF
;;3423 VMA_AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 3424 .ENDIF/TRXDEF
; 3425 VMA_AR+XR "GEN AR+XR,VMA/AD"
; 3426 VMA_AR-1 "ADA/AR,AD/A-1,VMA/AD"
; 3427 VMA_ARX "ADA/ARX,AD/A,VMA/AD"
; 3428 VMA_ARX AND ADMSK "ADMSK,ADB/FM,ADA/ARX,AD/AND,VMA/AD"
; 3429 VMA_ARX+1 "ADA/ARX,AD/A+1,VMA/AD"
; 3430 VMA_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD"
; 3431 .IF/KLPAGE
; 3432 VMA_ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,VMA/AD"
; 3433 .ENDIF/KLPAGE
; 3434 VMA_ARX+XR "GEN ARX+XR,VMA/AD"
; 3435
; 3436 VMA_BR "ADB/BR,AD/B,VMA/AD"
; 3437 VMA_E0+1 "E0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
; 3438 VMA_MQ "ADA/MQ,AD/A,VMA/AD"
; 3439 VMA_MQ+1 "ADA/MQ,AD/A+1,VMA/AD" ;[310]
; 3440 VMA_PC "VMA/PC" ;[252]
; 3441 VMA_PC+1 "VMA/PC+1"
; 3442 .IF/KLPAGE
; 3443 VMA_SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/AD"
; 3444 .ENDIF/KLPAGE
;;3445 .IF/TRXDEF
;;3446 VMA_TRB "TRB,ADB/FM,AD/B,VMA/AD"
; 3447 .ENDIF/TRXDEF
;;3448 .IFNOT/MODEL.B
;;3449 VMA_VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3450 .IF/MODEL.B
;;3451 .IFNOT/KLPAGE
;;3452 VMA_VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 3453 .IF/KLPAGE
; 3454 VMA_VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/AD,MEM/RESTORE VMA"
; 3455 .ENDIF/KLPAGE
; 3456 .ENDIF/MODEL.B
; 3457 VMA_VMA+1 "VMA/VMA,COND/VMA INC"
; 3458 VMA_VMA-1 "VMA/VMA,COND/VMA DEC"
; 3459
; 3460 WR PT ENTRY "COND/MBOX CTL,MBOX CTL/PT WR"
; 3461 WR REFILL RAM "MEM/REG FUNC,MREG FNC/WR REFILL RAM"
; 3462 .IF/MODEL.B
; 3463 WRITE (E) "MEM/EA CALC,EA CALC/WRITE(E),VMA/LOAD"
; 3464 .ENDIF/MODEL.B
; 3465
; 3466 XR "FMADR/XR"
; 3467
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; MACRO.MIC[10,5351] 21:14 28-Nov-83 DRAM Macros
; 3468 .TOC "DRAM Macros"
; 3469
; 3470 .DCODE
; 3471 ;
; 3472 ; These macros have not been sorted alphabetically, as (1) there are
; 3473 ; too few to bother, and (2) no one ever looks at the DRAM anyway!
; 3474 ;
; 3475 ;"A FIELD" MACROS
; 3476 ; DECODED TO TELL WHAT TO DO WITH EFFECTIVE ADDRESS
; 3477 ; AND WHETHER TO PREFETCH FROM PC+1
; 3478
; 3479 I "A/IMMED"
; 3480 I-PF "A/IMMED-PF"
;;3481 .IFNOT/XADDR
;;3482 EA "A/IMMED"
; 3483 .IF/XADDR
; 3484 EA "A/ADDR"
; 3485 .ENDIF/XADDR
; 3486 W "A/WR-TST"
; 3487 R "A/READ"
; 3488 R-PF "A/READ-PF"
; 3489 RW "A/RD-WR"
; 3490 .IF/RPW
; 3491 RPW "A/RD-P-WR"
;;3492 .IFNOT/RPW
;;3493 RPW "A/RD-WR"
; 3494 .ENDIF/RPW
;;3495 .IF/WRTST
;;3496 IW "A/WR-TST"
; 3497 .IFNOT/WRTST
; 3498 IW "A/IMMED"
; 3499 .ENDIF/WRTST
; 3500
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; MACRO.MIC[10,5351] 21:14 28-Nov-83 DRAM Macros
; 3501 ;"B FIELD" MACROS
; 3502 ; DECODED BY MOST INSTRUCTIONS TO TELL WHERE TO STORE RESULTS,
; 3503 ; BUT USED BY OTHERS TO HOLD VARIOUS "MODE" INFORMATION
; 3504
; 3505 AC "B/AC"
; 3506 M "B/MEM"
; 3507 S "B/SELF"
; 3508 B "B/BOTH"
; 3509 DBL AC "B/DBL AC"
; 3510 DBL B "B/DBL BOTH"
; 3511 FL-AC "B1-2/AC"
; 3512 FL-MEM "B1-2/MEM"
; 3513 FL-BOTH "B1-2/BOTH"
; 3514
; 3515 TN- "B0/CRY0(1),B1-2/0"
; 3516 TNE "B0/CRY0(0),B1-2/0"
; 3517 TNA "B0/CRY0(0),B1-2/0"
; 3518 TNN "B0/CRY0(1),B1-2/0"
; 3519 TZ- "B0/CRY0(1),B1-2/1"
; 3520 TZE "B0/CRY0(0),B1-2/1"
; 3521 TZA "B0/CRY0(0),B1-2/1"
; 3522 TZN "B0/CRY0(1),B1-2/1"
; 3523 TC- "B0/CRY0(1),B1-2/2"
; 3524 TCE "B0/CRY0(0),B1-2/2"
; 3525 TCA "B0/CRY0(0),B1-2/2"
; 3526 TCN "B0/CRY0(1),B1-2/2"
; 3527 TO- "B0/CRY0(1),B1-2/3"
; 3528 TOE "B0/CRY0(0),B1-2/3"
; 3529 TOA "B0/CRY0(0),B1-2/3"
; 3530 TON "B0/CRY0(1),B1-2/3"
; 3531
; 3532 SJC- "B/SJC-"
; 3533 SJCL "B/SJCL"
; 3534 SJCE "B/SJCE"
; 3535 SJCLE "B/SJCLE"
; 3536 SJCA "B/SJCA"
; 3537 SJCGE "B/SJCGE"
; 3538 SJCN "B/SJCN"
; 3539 SJCG "B/SJCG"
; 3540
; 3541 BLKI "B0/CRY0(0),B1-2/2"
; 3542 BLKO "B0/CRY0(0),B1-2/0"
; 3543 DATAI "B/6"
; 3544 DATAO "B/4"
; 3545 CONI "B/6"
; 3546 CONO "B/4"
; 3547 CONSO "B0/CRY0(1),B1-2/1"
; 3548 CONSZ "B0/CRY0(0),B1-2/1"
; 3549
; 3550 .BIN
; 3551 .UCODE
; 3552
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; BASIC.MIC[10,5351] 19:05 28-Nov-83 THE INSTRUCTION LOOP
; 3553 .TOC "THE INSTRUCTION LOOP"
; 3554
; 3555 ; Comments updated [302]
; 3556 ;
; 3557 ;INSTRUCTION DECODE, EA COMPUTATION, AND OPERAND FETCH
; 3558 ;
; 3559 ; IN GENERAL, AN INSTRUCTION IS STARTED AT XCTGO.
; 3560 ; AT THIS TIME THE INSTRUCTION IS IN ARX AND IR, AND PC HAS ITS ADDRESS.
; 3561 ; THE DRAM OUTPUTS AND "AC" BITS WILL SETTLE DURING THIS
; 3562 ; MICROINSTRUCTION, AND WILL BE LATCHED BY THE CLOCK WHICH ENDS
; 3563 ; THE CYCLE. XCTGO DISPATCHES ON THE STATE OF THE
; 3564 ; INDIRECT AND INDEX BITS OF THE ARX (EA MOD DISP) TO COMPEA OR
; 3565 ; ONE OF THE THREE LOCATIONS FOLLOWING IT.
; 3566 ; IF INDIRECT IS SPECIFIED, THE INDIRECT POINTER IS FETCHED (AT
; 3567 ; COMPEA+2 OR +3 DEPENDING ON WHETHER INDEXING IS ALSO SPECIFIED).
; 3568 ; WE WAIT FOR IT AT INDRCT, AND THEN LOOP BACK TO COMPEA. WHEN NO
; 3569 ; INDIRECT IS CALLED FOR, WE COMPUTE THE INSTRUCTION'S EFFECTIVE ADDRESS
; 3570 ; (EA) AT COMPEA OR COMPEA+1 (DEPENDING ON WHETHER INDEXING IS CALLED
; 3571 ; FOR), AND PERFORM THE FUNCTION "A READ", WHOSE OPERATION DEPENDS
; 3572 ; ON THE DRAM A FIELD, AS FOLLOWS:
; 3573 ;
; 3574 ; MACRO A-FLD MEM FUNCTION VMA DISPATCH
; 3575 ; I 0 NONE AD(=EA) DRAM J
; 3576 ; I-PF 1 FETCH PC+1 DRAM J
; 3577 ; EA 2 30 BIT EA CALC AD DRAM J
; 3578 ; W 3 WR TST AD 3 (MODEL B) 43 (MODEL A)
; 3579 ; R 4 READ AD 4 44
; 3580 ; R-PF 5 READ AD 5 45
; 3581 ; RW 6 READ/WR TST AD 6 46
; 3582 ; RPW 7 RD-PSE/WR TST AD 7 47
; 3583 ;
; 3584 ; A FIELD VALUES 0 AND 1 ARE USED FOR INSTRUCTIONS WHICH NEITHER
; 3585 ; READ NOR WRITE THE CONTENTS OF EA (IMMEDIATE-MODE INSTRUCTIONS,
; 3586 ; JUMPS, ETC). THESE DISPATCH FROM "A READ" DIRECTLY TO THE MICROCODE
; 3587 ; WHICH HANDLES THE INSTRUCTION. IF THE A FIELD CONTAINS 1, "A READ"
; 3588 ; CAUSES A PREFETCH (FROM PC+1), SO THAT THE MBOX CAN WORK ON GETTING
; 3589 ; THE NEXT INSTRUCTION INTO ARX WHILE THE EBOX PERFORMS THIS ONE.
; 3590 ; IF THE A FIELD CONTAINS A 2, THE EA CALCULATION WILL PROVIDE
; 3591 ; A FULL 30 BIT EFFECTIVE ADDRESS AT THE END. THIS WAS INTRODUCED
; 3592 ; WITH EXTENDED ADDRESSING, TO ALLOW SUCH INSTRUCTIONS AS XMOVEI,
; 3593 ; PUSHJ, AND JSP TO COMPUTE A COMPLETE ADDRESS WITHOUT ACTUALLY
; 3594 ; REFERENCING IT. OTHERWISE, THIS IS SIMILAR TO AN A FIELD OF 0.
; 3595 ; IF THE A FIELD CONTAINS 3, THE MBOX PERFORMS A PAGING CHECK ON
; 3596 ; EA, AND CAUSES A PAGE FAIL IF THAT LOCATION IS NOT WRITABLE.
; 3597 ; THE MICROCODE GOES TO 3 TO WAIT FOR COMPLETION OF THE PAGE CHECK,
; 3598 ; AND AT THAT LOCATION LOADS AC INTO AR. THE WRITABILITY OF EA IS
; 3599 ; VERIFIED AT THIS TIME TO PREVENT INCORRECTLY SETTING FLAGS OR
; 3600 ; THE PROCESSOR STATE IF THE INSTRUCTION WILL BE ABORTED BY PAGE
; 3601 ; FAILURE. LOCATION 3 THEN DISPATCHES TO THE HANDLER FOR THE
; 3602 ; CURRENT INSTRUCTION.
; 3603 ; A FIELD VALUES 4 TO 7 PERFORM READS FROM EA. 6 AND 7 ALSO TEST
; 3604 ; THE WRITABILITY OF THE LOCATION, AND 7 PERFORMS THE FIRST HALF OF
; 3605 ; A READ-PAUSE-WRITE CYCLE IF EA IS AN UN-CACHED ADDRESS. THE DISPATCH
; 3606 ; IS TO A, WHERE WE WAIT FOR MEMORY DATA TO ARRIVE IN AR. IF THE A
; 3607 ; FIELD WAS 5, WE PREFETCH FROM PC+1 AS SOON AS THE DATA ARRIVES.
; 3608 ; IN ANY CASE, WE DISPATCH ACCORDING TO THE DRAM J FIELD TO THE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-1
; BASIC.MIC[10,5351] 19:05 28-Nov-83 THE INSTRUCTION LOOP
; 3609 ; HANDLER FOR THE INSTRUCTION.
; 3610 ; IF A PAGE FAIL OCCURS AT ANY TIME (EITHER IN THIS CODE OR DURING
; 3611 ; INSTRUCTION EXECUTION) THE MICROPROCESSOR TRAPS TO CRAM LOCATION
; 3612 ; 1777 OR 3777, WHERE IT CAUSES A PAGE FAIL TRAP.
; 3613 ;
; 3614 ; MOST INSTRUCTIONS (THE MOVE, HALFWORD, AND BOOLEAN GROUPS,
; 3615 ; PLUS ADD AND SUB) ARE PERFORMED BY HANDLERS CONSISTING OF ONE OR
; 3616 ; TWO MICROINSTRUCTIONS WHICH LEAVE THE RESULT IN AR, AND COMPLETE
; 3617 ; BY INVOKING THE "EXIT" MACRO. EXIT USES THE MEM/B WRITE FUNCTION
; 3618 ; TO BEGIN A STORE TO MEMORY FOR THOSE MODES IN WHICH THE RESULT
; 3619 ; GOES TO MEMORY, AND DISP/DRAM B TO GET TO ONE OF THE MICROINSTRUCTIONS
; 3620 ; FOLLOWING ST0. THIS CODE DEPENDS ON A CERTAIN AMOUNT OF CORRELATION
; 3621 ; BETWEEN THE DRAM A AND B FIELDS. IN PARTICULAR, STAC (STORE AC)
; 3622 ; ASSUMES THAT A PREFETCH HAS OCCURRED, WHILE THE OTHERS ASSUME THAT
; 3623 ; NO PREFETCH HAS OCCURED. THUS NORMAL AND IMMEDIATE MODES, WHOSE
; 3624 ; RESULTS GO ONLY TO AC, MUST PREFETCH IN THE DRAM A FIELD, WHILE
; 3625 ; MEM, BOTH, AND SELF MODES, WHOSE RESULTS GO TO MEMORY, MUST NOT.
; 3626 ; (THIS RESTRICTION IS AVOIDED FOR THOSE INSTRUCTIONS WHICH NEVER
; 3627 ; PREFETCH -- IN MUL, DIV, AND IDIV BY USE OF THE EXIT TO ST2AC,
; 3628 ; AND IN IMUL AND THE SINGLE PRECISION FLOATING POINT
; 3629 ; INSTRUCTIONS BY A RESTRICTED EXIT TO ST6.)
; 3630 ; ANOTHER LARGE SET OF INSTRUCTIONS (SKIP, AOS, SOS, JUMP, AOJ,
; 3631 ; SOJ, AOBJ, CAI, CAM, AND THE TEST GROUP) KNOWS WHERE TO PUT THE
; 3632 ; RESULTS WITHOUT MODE INFORMATION, AND THEY USE THE DRAM B FIELD TO
; 3633 ; DETERMINE WHETHER TO SKIP OR JUMP, AS A FUNCTION OF THEIR OPERANDS.
; 3634 ; SKIP, AOS, AND SOS ARE CONSIDERED SELF-MODE INSTRUCTIONS,
; 3635 ; AND AFTER MAKING THE FETCH DECISION (AND RE-WRITING MEMORY, IN
; 3636 ; THE CASE OF AOS OR SOS), JUMP TO STSELF TO DECIDE WHETHER OR NOT
; 3637 ; TO PUT THE RESULT ALSO IN AC. THE OTHER INSTRUCTIONS OF THIS SET
; 3638 ; JUMP TO STORAC OR NOP AFTER MAKING THE FETCH DECISION, DEPENDING
; 3639 ; ON WHETHER OR NOT THE OPCODE DEFINITION REQUIRES MODIFICATION OF AC.
; 3640 ; (NOTE THE DIFFERENCE BETWEEN STAC AND FINI ON THE ONE HAND,
; 3641 ; AND STORAC AND NOP ON THE OTHER -- STORAC AND NOP MUST BE USED WHEN
; 3642 ; THE NEXT INSTRUCTION FETCH OCCURS ON THE PRECEDING EBOX CYCLE, BECAUSE
; 3643 ; NICOND MUST NOT IMMEDIATELY FOLLOW A FETCH (ONE CYCLE REQUIRED FOR
; 3644 ; VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC), STAC AND FINI ARE
; 3645 ; USED WHEN THERE HAS BEEN AN INTERVENING CYCLE.)
; 3646
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; BASIC.MIC[10,5351] 19:05 28-Nov-83 NEXT INSTRUCTION DISPATCH
; 3647 .TOC "NEXT INSTRUCTION DISPATCH"
; 3648
; 3649 ;START BY PUTTING PC WORD IN AR, JUMP HERE
; 3650 0:
;;3651 .IFNOT/MODEL.B
;;3652 START: SET FLAGS_AR,VMA_AR,MEM/SEC 0, ;LOAD FLAGS, CLEAR VMAX
;;3653 BR/AR,J/SETPC ;THEN JUMP TO ADDR IN AR
; 3654 .IF/MODEL.B
U 0000, 1125,0001,0000,0000,0000,0024,0020 ; 3655 START: SET FLAGS_AR,J/SETPC ;LOAD FLAGS, USE REST AS ADDR
; 3656 .ENDIF/MODEL.B
; 3657 1: ;MUST BE AT START+1
U 0001, 0270,0001,0000,0000,0117,0010,0000 ; 3658 CONT: VMA/PC,FETCH,J/XCTW ;HERE TO CONTINUE FROM PC
; 3659 ;
; 3660 ; Comments updated [321].
; 3661 ;
; 3662 ; DISP/NICOND (THE "NXT INSTR" MACRO) BRINGS US TO ONE OF THE
; 3663 ; LOCATIONS FOLLOWING "NEXT". PC HAS BEEN UPDATED TO ADDRESS THE NEXT
; 3664 ; INSTRUCTION IN THE NORMAL FLOW, AND IF IT IS FROM MEMORY
; 3665 ; (AS OPPOSED TO AC'S), THE INSTRUCTION IS IN ARX AND IR.
; 3666 ; THE NICOND DISPATCH IS PRIORITY ENCODED, AS FOLLOWS:
; 3667 ; [FOR FULL DETAILS, SEE PRINT CON2]
; 3668 ;(1) IF PI CYCLE IS TRUE, GO TO NEXT FOR SECOND HALF
; 3669 ; OF STANDARD OR VECTOR INTERRUPT.
; 3670 ;(2) IF THE RUN FLOP (CON RUN) IS OFF, GO TO NEXT+2, FROM WHICH THE
; 3671 ; MICROCODE WILL ENTER THE HALT LOOP TO WAIT FOR THE CONSOLE TO RESTART
; 3672 ; INSTRUCTION PROCESSING.
; 3673 ;(3) IF THE METER HAS A REQUEST, GO TO NEXT+4 (MTRINT) TO SERVE IT.
; 3674 ;(4) IF THE PI SYSTEM HAS A REQUEST READY, GO TO NEXT+6 (INTRPT)
; 3675 ; TO START A PI CYCLE.
; 3676 ;(5) IF CON UCODE STATE 05 (TRACK EN) IS SET, GO TO NEXT+10 OR 11.
; 3677 ; Normally NEXT+10 will be used; if a trap flag was set by the previous
; 3678 ; instruction, however, NEXT+11 will be reached. This is the only
; 3679 ; way the trap will ever be detected, so be cautious of ignoring it.
; 3680 ; THIS FLOP IS ENTIRELY UNDER CONTROL OF THE MICROCODE, AND IS ONLY
; 3681 ; USED FOR THE SPECIAL STATISTICS-GATHERING MICROCODE.
; 3682 ;(6) IF THE LAST INSTRUCTION SET A TRAP FLAG, GO TO NEXT+13 OR +17,
; 3683 ; IT DOESN'T MATTER WHICH. (NEXT+17 will be reached if VMA contains
; 3684 ; an AC address, probably irrelevant when a trap flag was set.)
; 3685 ;(7) IF VMA CONTAINS AN AC ADDRESS, IMPLYING THAT THE NEXT
; 3686 ; INSTRUCTION IS TO COME OUT OF FAST MEMORY, GO TO NEXT+16 TO GET IT.
; 3687 ;(10) --NORMAL CASE-- THE INSTRUCTION IS IN ARX, READY TO GO, GO
; 3688 ; TO NEXT+12 (XCTGO).
; 3689 ;
; 3690 ; The NICOND dispatch yields the following:
; 3691 ;
; 3692 ; +0 CON PI CYCLE
; 3693 ; +1 Unused
; 3694 ; +2 -CON RUN (i.e. halt)
; 3695 ; +3 Unused
; 3696 ; +4 CON MTR INT REQ (meter interrupt)
; 3697 ; +5 Unused
; 3698 ; +6 CON INT REQ (interrupt)
; 3699 ; +7 Unused
; 3700 ; +10 CON UCODE STATE 05 (tracks enable)
; 3701 ; +11 CON UCODE STATE 05+TRAP REQ (tracks enable+trap)
; 3702 ; +12 -VM AC REF (normal instruction)
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-1
; BASIC.MIC[10,5351] 19:05 28-Nov-83 NEXT INSTRUCTION DISPATCH
; 3703 ; +13 -VM AC REF+TRAP REQ (normal instruction+trap)
; 3704 ; +14 Unused
; 3705 ; +15 Unused
; 3706 ; +16 -CON PI CYCLE (AC ref)
; 3707 ; +17 -CON PI CYCLE+TRAP REQ (AC ref+trap)
; 3708
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; BASIC.MIC[10,5351] 19:05 28-Nov-83 NEXT INSTRUCTION DISPATCH
; 3709 ;NICOND (NXT INSTR) DISPATCH BLOCK
; 3710
; 3711 =11*0000 ;USE LOC'NS INACCESSIBLE TO DRAM
; 3712 NEXT: AR_MQ+1,VMA/AD, ;2ND PART OF INTERRUPT
U 0140, 3152,4023,2000,0000,0320,1510,0714 ; 3713 SET PI CYCLE,J/PICYC2 ;CONTINUE WITH 41+2N
; 3714 =0010 CLR AR,ARX_1S,SC_#,#/23., ;HERE IF RUN FLOP OFF
U 0142, 1630,2341,0200,0302,0000,0450,0027 ; 3715 CALL,J/ROTS ;BUILD ADDR MASK
;;3716 .IFNOT/EXTEXP ;[230]
;;3717 ADMSK,FM_AR,AR_AR+1,J/CHALT ;SAVE MASK, GO HALT
; 3718 .IF/EXTEXP ;[230]
U 0143, 0032,3703,5007,0000,0000,1010,0175 ; 3719 FM[ADMSK]_AR,AR_AR*2,J/EXMSK ;[230] AR HAS 77,,777776
; 3720 .ENDIF/EXTEXP ;[230]
; 3721 =0100
U 0144, 3130,0001,0000,0000,0000,2110,0145 ; 3722 MTRINT: CLR ACCOUNT EN,J/MTRREQ ;HERE IF METER REQUEST UP
U 0145, 3147,0001,3000,0302,0060,0010,0002 ; 3723 AR_EBUS,SC_#,#/2,J/PICYC1 ;HERE IF TAKE INTRPT DOESNT FIND
; 3724 =0110 ; A METER REQUEST
U 0146, 3147,0001,3000,0302,0060,0010,0002 ; 3725 INTRPT: AR_EBUS,SC_#,#/2,J/PICYC1 ;HERE IF INTERRUPT PENDING
; 3726 ;
; 3727 ; [321] Even if statistics are enabled, traps should not be lost,
; 3728 ; so override TRACKS and friends when TRAP is set.
; 3729 ;
;;3730 .IF/TRACKS
;;3731 =1000 AR_TRX+1,GEN CRY18,SKP CRY0,J/TRK1;STORE PC BEFORE EXECUTING INSTR
;;3732 VMA_420+TRAP,J/TRAPX ;[321] Don't lose traps!
; 3733 .ENDIF/TRACKS
;;3734 .IF/OP.CNT
;;3735 =1000 SC_#,#/9.,SKP USER,J/OPCT1 ;COUNT THIS INSTR
;;3736 VMA_420+TRAP,J/TRAPX ;[321] Don't lose traps!
; 3737 .ENDIF/OP.CNT
;;3738 .IF/OP.TIME
;;3739 =1000 AR_2,CLR TRK+PA EN,J/OPTM0 ;TIME THIS INSTR
;;3740 VMA_420+TRAP,J/TRAPX ;[321] Don't lose traps!
; 3741 .ENDIF/OP.TIME
;;3742 .IF/SO.CNT
;;3743 =1000
;;3744 TRK0: ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
;;3745 VMA_420+TRAP,J/TRAPX ;[321] Don't lose traps!
; 3746 .ENDIF/SO.CNT
;;3747 .IF/SO2.CNT
;;3748 =1000
;;3749 TRK0: ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HOLD THIS INSTR
;;3750 VMA_420+TRAP,J/TRAPX ;[321] Don't lose traps!
; 3751 .ENDIF/SO2.CNT
; 3752 =1010
; 3753 XCTGO: BRX/ARX,AR_ARX,SET ACCOUNT EN, ;SAVE INSTR, SIGN EXTEND Y,
U 0152, 0174,2341,4022,0000,2000,2136,0105 ; 3754 XR,EA MOD DISP,J/COMPEA ; GO CALCULATE EA
U 0153, 0060,4001,0000,0000,0100,3110,0420 ; 3755 TRAP: VMA_420+TRAP,J/TRAPX ;HERE IF TRAP BITS SET
U 0156, 0152,3240,0203,0000,0020,1410,0000 ; 3756 =1110 ARX_FM(VMA),TIME/3T,LOAD IR,J/XCTGO ;HERE IF INSTR IS IN FM
U 0157, 0060,4001,0000,0000,0100,3110,0420 ; 3757 VMA_420+TRAP,J/TRAPX ;HERE IF TRAP BITS SET
; 3758
; 3759 ;HERE ON TRAPS, VMA SETUP WITH 420+TRAP CODE
; 3760 =11****
U 0060, 0064,4001,0000,0000,0013,0026,0033 ; 3761 TRAPX: LOAD ARX,PT REF ;GET AND XCT TRAP INSTR
U 0064, 0270,4001,0000,0000,0000,1510,0100 ; 3762 =11**** SET PC+1 INH ;DON'T INCREMENT PC FOR THIS INSTR
; 3763
; 3764 ;HERE AFTER FETCHING INSTR TO BE EXECUTED
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3-1
; BASIC.MIC[10,5351] 19:05 28-Nov-83 NEXT INSTRUCTION DISPATCH
; 3765
; 3766 =11****
U 0270, 0152,3240,0003,0000,0022,1410,0000 ; 3767 XCTW: ARX_MEM,LOAD IR,J/XCTGO ;GET INSTR TO XCT
; 3768 .IF/EXTEXP ;[230]
U 0032, 0117,4003,2000,0000,0020,0010,0000 ; 3769 EXMSK: AR_AR+1 ;[230] GIVES 77,,777777
U 0117, 0661,0001,0007,0000,0000,1010,0164 ; 3770 FM[EXPMSK]_AR,J/CHALT ;[230] MASK FOR FORTRAN EXT EXP
; 3771 .ENDIF/EXTEXP ;[230]
; 3772
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; BASIC.MIC[10,5351] 19:05 28-Nov-83 EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 3773 .TOC "EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH"
; 3774
; 3775 .IF/XADDR
; 3776 =11*0000
; 3777 EFIW: AR_ARX (AD),GLOBAL,A INDRCT, ;LONG EXTENDED ADDR
U 0160, 0070,3713,2000,0000,1111,7010,0230 ; 3778 SKP INTRPT,J/INDRCT ;WITH INDIRECT SET
; 3779 AR_ARX+XR,GLOBAL,A INDRCT,
U 0161, 0070,0610,2002,4000,1131,7010,0230 ; 3780 SKP INTRPT,J/INDRCT
; 3781 AR_ARX (AD),GLOBAL,A INDRCT,
U 0162, 0070,3713,2000,0000,1111,7010,0230 ; 3782 SKP INTRPT,J/INDRCT
; 3783 AR_ARX+XR,GLOBAL,A INDRCT,
U 0163, 0070,0610,2002,4000,1131,7010,0230 ; 3784 SKP INTRPT,J/INDRCT
; 3785
U 0164, 0000,3713,2000,0000,1204,0002,0300 ; 3786 AR_ARX (AD),GLOBAL,A READ ;LONG EXTENDED ADDR
U 0165, 0000,0610,2002,4000,1224,0002,0300 ; 3787 AR_ARX+XR,GLOBAL,A READ ; WITH INDEXING IN 2-5
U 0166, 0000,3713,2000,0000,1204,0002,0300 ; 3788 AR_ARX (AD),GLOBAL,A READ
U 0167, 0000,0610,2002,4000,1224,0002,0300 ; 3789 AR_ARX+XR,GLOBAL,A READ
; 3790
U 0170, 0121,4001,0000,0000,0000,2210,0400 ; 3791 PF24: GET ECL EBUS,J/ILLIND ;[234]ARX BITS 0,1 = 11
U 0171, 0121,4001,0000,0000,0000,2210,0400 ; 3792 GET ECL EBUS,J/ILLIND
U 0172, 0121,4001,0000,0000,0000,2210,0400 ; 3793 GET ECL EBUS,J/ILLIND
U 0173, 0121,4001,0000,0000,0000,2210,0400 ; 3794 GET ECL EBUS,J/ILLIND
; 3795
; 3796 .ENDIF/XADDR
; 3797
; 3798 =11*1100
U 0174, 0000,3701,0000,0000,0204,0002,0300 ; 3799 COMPEA: GEN AR,A READ ;LOCAL
U 0175, 0000,0600,0002,4000,2224,0002,0300 ; 3800 GEN AR+XR,INDEXED,A READ ;LOCAL UNLESS XR>0
; 3801 GEN AR,A INDRCT,
U 0176, 0070,3701,0000,0000,0111,7010,0230 ; 3802 SKP INTRPT,J/INDRCT
; 3803 GEN AR+XR,INDEXED,A INDRCT,
U 0177, 0070,0600,0002,4000,2131,7010,0230 ; 3804 SKP INTRPT,J/INDRCT
;;3805 .IFNOT/MODEL.B
;;3806 =11***0
;;3807 INDRCT: ARX_MEM,EA TYPE DISP,J/INDR1
;;3808 TAKINT: ARX_MEM,TAKE INTRPT
;;3809 =11**01
;;3810 INDR1: AR_ARX,XR,EA MOD DISP,J/COMPEA
;;3811 .IF/SXCT
;;3812 AR_ARX (AD),A READ ;HERE IF SXCT 0,
;;3813 .IFNOT/SXCT
;;3814 =
;;3815 .ENDIF/SXCT
; 3816 .IF/MODEL.B
;;3817 .IFNOT/XADDR
;;3818 =11***0
;;3819 INDRCT: ARX_MEM,J/INDR1
;;3820 TAKINT: ARX_MEM,TAKE INTRPT
;;3821
;;3822 =11****
;;3823 INDR1: AR_ARX,EA MOD DISP,J/COMPEA
; 3824 .IF/XADDR
; 3825 =11***0
U 0070, 0271,3240,0003,0000,0022,2510,0000 ; 3826 INDRCT: ARX_MEM,LONG EN,J/INDR1
U 0071, 0144,3200,0003,0000,0022,7710,0000 ; 3827 TAKINT: ARX_MEM,TAKE INTRPT
; 3828 =11****
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-1
; BASIC.MIC[10,5351] 19:05 28-Nov-83 EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 3829 INDR1: AR_ARX,XR,EA MOD DISP,
U 0271, 0160,2341,4002,0301,2020,0036,0024 ; 3830 FE_#,#/24,TIME/3T,J/EFIW
; 3831
U 0121, 0141,3731,0000,0301,0303,1710,0024 ; 3832 ILLIND: VMA_VMA HELD, FE_#, #/24 ;[234]ILLEGAL INDIRECT PF
U 0141, 0147,4001,0000,0302,0000,0010,0140 ; 3833 SC_#, #/140 ;[234][242]
; 3834 ;[271]MASK TO INSERT PF CODE.
U 0147, 3172,4001,0000,0000,0007,0010,0140 ; 3835 MAP, J/PFPAR2 ;[234]GET MAP INFO, JOIN PF ROUTINE
; 3836 .ENDIF/XADDR
; 3837 .ENDIF/MODEL.B
; 3838
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; BASIC.MIC[10,5351] 19:05 28-Nov-83 WAIT FOR (E)
; 3839 .TOC "WAIT FOR (E)"
; 3840
; 3841 ;THE EXECUTE CODE FOR EACH INSTRUCTION IS ENTERED WITH
; 3842 ; THE OPCODE AND AC # IN BRX AND IR, THE LAST INDIRECT WORD
; 3843 ; IN ARX, AND AR AND VMA SETUP AS A FUNCTION OF THE A
; 3844 ; FIELD OF THE DISPATCH RAM. A PREFETCH IS IN PROGRESS IF THE
; 3845 ; DRAM A FIELD WAS 1 OR 5 (OR IF IR CONTAINS "JRST 0,").
; 3846
; 3847 ;ON "A READ", THE HARDWARE DISPATCHES TO THE EXECUTE CODE FOR
; 3848 ; THE INSTRUCTION IF THE DRAM A FIELD IS 0 OR 1. IF THE A FIELD
; 3849 ; CONTAINS 2-7, THE HARDWARE DISPATCHES TO A (MODEL B), OR 40+A
; 3850 ; (MODEL A), BELOW:
; 3851
; 3852 ;COME HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 3
; 3853 ; A "WRITE TST" IS IN PROGRESS
; 3854
; 3855 .IF/MODEL.B
; 3856 3:
;;3857 .IFNOT/MODEL.B
;;3858 43:
; 3859 .ENDIF/MODEL.B
; 3860 BR/AR,AR_AC0,MB WAIT, ;WAIT FOR PERMISSION TO WRITE
U 0003, 0000,3240,2040,0000,0022,0001,0000 ; 3861 TIME/3T,IR DISP,J/0 ;AND GO TO EXECUTE CODE
; 3862
; 3863 ;HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 4
; 3864 ; A "LOAD AR" IS IN PROGRESS
; 3865
; 3866 .IF/MODEL.B
; 3867 4:
;;3868 .IFNOT/MODEL.B
;;3869 44:
; 3870 .ENDIF/MODEL.B
; 3871 BR/AR,AR_MEM,TIME/3T, ;GET OPERAND
U 0004, 0000,3200,0043,0000,0022,0001,0000 ; 3872 IR DISP,J/0 ; START EXECUTE
; 3873
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; BASIC.MIC[10,5351] 19:05 28-Nov-83 WAIT FOR (E)
; 3874 ;HERE ON "A READ" IF A FIELD IS 5
; 3875 ; A "LOAD AR" IS IN PROGRESS, AND WE MUST PREFETCH WHEN IT COMPLETES
; 3876
; 3877 .IF/MODEL.B
; 3878 5:
;;3879 .IFNOT/MODEL.B
;;3880 45:
; 3881 .ENDIF/MODEL.B
; 3882 BR/AR,FIN XFER,I FETCH, ;GET OPERAND, PREFETCH,
U 0005, 0000,3200,0043,0000,0237,0001,0000 ; 3883 TIME/3T,IR DISP,J/0 ; & START EXECUTE
; 3884
; 3885 ;HERE ON "A READ" IF A FIELD IS 6
; 3886 ; A "LOAD AR" IS IN PROGRESS, BUT PAGING IS TESTING WRITABILITY
; 3887
; 3888 .IF/MODEL.B
; 3889 6:
;;3890 .IFNOT/MODEL.B
;;3891 46:
; 3892 .ENDIF/MODEL.B
; 3893 BR/AR,AR_MEM,TIME/3T, ;GET OPERAND
U 0006, 0000,3200,0043,0000,0022,0001,0000 ; 3894 IR DISP,J/0 ; START EXECUTE
; 3895
; 3896 ;HERE ON "A READ" IF A FIELD IS 7
; 3897 ; A "READ-PAUSE-WRITE" IS IN PROGRESS
; 3898
; 3899 .IF/MODEL.B
; 3900 7:
;;3901 .IFNOT/MODEL.B
;;3902 47:
; 3903 .ENDIF/MODEL.B
; 3904 BR/AR,AR_MEM,TIME/3T, ;GET OPERAND
U 0007, 0000,3200,0043,0000,0022,0001,0000 ; 3905 IR DISP,J/0 ; START EXECUTE
; 3906
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; BASIC.MIC[10,5351] 19:05 28-Nov-83 TERMINATION
; 3907 .TOC "TERMINATION"
; 3908
; 3909 ;DISPATCH HERE WITH THE "EXIT" MACRO,
; 3910 ; OR JUMP DIRECTLY TO ONE OF THESE LOCATIONS.
; 3911
; 3912 =11*000
; 3913 ST0: ;BASE FOR B DISP IN EXIT MACRO
; 3914 =001
U 0061, 0246,5401,2000,0000,0237,1016,0000 ; 3915 ST2AC: AC0_AR,AR_SIGN,I FETCH,J/STD1 ;HERE TO STORE AC0 & AC1
U 0062, 0061,4001,0003,0000,0002,0010,0000 ; 3916 FIN STORE,EXIT DBL ;MULB, DIVB, ETC ...
; 3917 FIN STORE,I FETCH, ;SELF MODE
U 0063, 0074,4001,0003,0000,0217,4610,0000 ; 3918 SKP AC#0,J/STSELF ; RESULT TO AC TOO?
; 3919 =101
U 0065, 0140,4001,0000,0403,0002,1006,0000 ; 3920 STAC: AC0_AR,NXT INSTR ;NORMAL AND IMMEDIATE MODES
; 3921 ST6:
; 3922 IFNOP:
U 0066, 0075,4001,0003,0000,0217,0010,0000 ; 3923 STMEM: FIN STORE,I FETCH,J/NOP ;MEM MODE
; 3924 IFSTAC:
U 0067, 0074,0001,0003,0000,0217,0010,0000 ; 3925 STBOTH: FIN STORE,I FETCH,J/STORAC ;BOTH MODE
; 3926 =
; 3927 ;HERE TO FINISH, AFTER FETCHING NEXT INSTRUCTION.
; 3928 ; WE MUST GUARANTEE AT LEAST ONE EBOX CYCLE BETWEEN FETCH AND NICOND,
; 3929 ; TO ALLOW VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC.
; 3930 =11***0
; 3931 STSELF: ;SKIP, AOS, SOS COME HERE
U 0074, 0065,0001,0000,0000,0000,1610,0000 ; 3932 STORAC: SR_0,J/STAC ;STORE AC, TOO
U 0075, 0222,4001,0000,0000,0000,1610,0000 ; 3933 NOP: SR_0,J/FINI
; 3934
; 3935 =0
U 0020, 0222,4001,0000,0000,0000,0014,0000 ; 3936 CLRFPD: CLR FPD,J/FINI ;CAN'T DO THIS UNTIL STORE COMPLETE
U 0021, 0222,4001,0000,0000,0000,1610,0000 ; 3937 NOP2: SR_0,J/FINI ;THE CODE SEEMS TO WORK WITHOUT THIS
; 3938 ; BUT THE TIMING IS VERY HAIRY AND
; 3939 ; THE HARDWARE PROBABLY ISN'T
; 3940 ; SUPPOSED TO
; 3941
U 0222, 0140,0001,0000,0403,0002,0006,0000 ; 3942 FINI: NXT INSTR ;GET NEXT INSTR IN ARX & IR,
; 3943 ; LOAD PC, TEST PI CYCLE, RUN,
; 3944 ; PI READY, TRAPS
; 3945
; 3946 ;HERE TO STORE ARITHMETIC DOUBLE RESULTS
; 3947
U 0241, 0246,5441,2000,0000,0020,1016,0000 ; 3948 DSTAC: AC0_AR,AR_SIGN ;HERE WITH FETCH STARTED
U 0246, 0251,4001,4000,0000,0000,1610,0000 ; 3949 STD1: AR_SHIFT,SR_0 ;BRING IN LOW PART
U 0251, 0222,0001,0001,0000,0000,1010,0000 ; 3950 STAC1: AC1_AR,FINISH ;GO DO NEXT INSTRUCTION
; 3951
; 3952
; 3953 ;HERE TO GET MICRO-CODE VERSION #. FIXED LOC'N SO SOFTWARE CAN FIND IT
; 3954 137:
U 0137, 3157,4001,0040,0000,0000,0110,0336 ; 3955 UVERS: BR/AR,AR0-8_#,#/EDIT,J/GTAR08 ;COPY VERSION TO AR
; 3956
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; BASIC.MIC[10,5351] 19:05 28-Nov-83 MOVE GROUP, EXCH, BLT
; 3957 .TOC "MOVE GROUP, EXCH, BLT"
; 3958
; 3959 .DCODE
D 0200, 5500,0100 ; 3960 200: R-PF, AC, J/MOVE ;BASIC MOVE
D 0201, 1501,0100 ; 3961 I-PF, AC, J/MOVE
;;3962 .IF/WRTST
;;3963 W, M, J/MOVE
; 3964 .IFNOT/WRTST
D 0202, 0101,0103 ; 3965 I, B/1, J/MOVEM
; 3966 .ENDIF/WRTST
D 0203, 7301,0100 ; 3967 RPW, S, J/MOVE
; 3968
D 0204, 5500,0002 ; 3969 204: R-PF, AC, J/MOVS
D 0205, 1501,0002 ; 3970 I-PF, AC, J/MOVS
D 0206, 3600,0002 ; 3971 W, M, J/MOVS
D 0207, 7301,0002 ; 3972 RPW, S, J/MOVS
; 3973
D 0210, 5500,0205 ; 3974 210: R-PF, AC, J/MOVN
D 0211, 1501,0205 ; 3975 I-PF, AC, J/MOVN
D 0212, 3600,0205 ; 3976 W, M, J/MOVN
D 0213, 7301,0205 ; 3977 RPW, S, J/MOVN
; 3978
D 0214, 5501,0201 ; 3979 214: R-PF, AC, J/MOVM
D 0215, 1500,0201 ; 3980 I-PF, AC, J/MOVM
D 0216, 3601,0201 ; 3981 W, M, J/MOVM
D 0217, 7300,0201 ; 3982 RPW, S, J/MOVM
; 3983 .UCODE
; 3984
; 3985 ; ENTER WITH 0,E, (E), OR (AC) IN AR
; 3986 =0****00****
U 0002, 0060,4001,4000,0000,3005,0033,0000 ; 3987 MOVS: AR_AR SWAP,EXIT ;ALSO USED BY HALFWORD GROUP
; 3988 =
; 3989 =0****00****
U 0201, 0100,0001,0040,0000,0000,4510,0000 ; 3990 MOVM: BR/AR,SKP AR0,J/MOVE ;FORCE POSITIVE
; 3991 =
; 3992 =0****00****
U 0205, 0101,0001,0040,0000,0000,0010,0000 ; 3993 MOVN: BR/AR,J/MOVNEG ;GET NEGATIVE
; 3994 =
; 3995 100:
U 0100, 0060,0001,0000,0000,0005,0033,0000 ; 3996 MOVE: EXIT ;STORE AS IS FROM AR
; 3997 101:
U 0101, 0100,5142,2000,0000,0022,1310,0000 ; 3998 MOVNEG: AR_-BR,AD FLAGS,FETCH WAIT,J/MOVE
; 3999
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; BASIC.MIC[10,5351] 19:05 28-Nov-83 XMOVEI, XHLLI, MOVEM, EXCH, BLT
; 4000 .TOC "XMOVEI, XHLLI, MOVEM, EXCH, BLT"
; 4001
; 4002 ;HERE FOR XMOVEI (=SETMI), WITH 36-BIT ADDRESS IN VMA AND AR
; 4003
; 4004 .IF/XADDR
; 4005 102:
U 0102, 0334,0001,0000,0000,0217,5710,0000 ; 4006 XMOVEI: SKP -LOCAL AC ADDR,I FETCH
; 4007 =0
U 0334, 0065,4061,0000,0000,0021,0017,0002 ; 4008 XMOVEI1:ARL_1.M,ARR_ARR,J/STAC ;AC IN NON-ZERO SECTION
U 0335, 0065,0001,0000,0400,3000,0022,0200 ; 4009 CLR P,J/STAC ;RETURN 30-BIT ADDRESS
; 4010
; 4011 ;HERE FOR XHLLI (=HLLI), WITH 36-BIT ADDRESS IN VMA AND AR
; 4012 107:
; 4013 XHLLI: SKP -LOCAL AC ADDR,I FETCH,
U 0107, 0334,3240,2000,0000,0237,5722,0000 ; 4014 ARR_AC0.S,ARL_ARL.S,J/XMOVEI1
; 4015 .ENDIF/XADDR
; 4016
; 4017 ;EXCH, BLT
; 4018
; 4019 .DCODE
D 0250, 7001,0103 ; 4020 250: RPW, B/0, J/EXCH
D 0251, 2000,0104 ; 4021 EA, J/BLT
; 4022 .UCODE
; 4023
; 4024 103:
; 4025 MOVEM: ;LIKE EXCH, EXCEPT NO STORE AC
U 0103, 1334,3200,2400,0000,1036,0010,0000 ; 4026 EXCH: ARX_AR,AR_AC0,STORE,J/STMAC ;PUT AC AT E, THEN STORE AC
; 4027 104:
; 4028 BLT: MQ_AR,ARX_AR, ;END ADDR TO MQ & ARX
U 0104, 3462,3200,2410,0000,1020,0610,0000 ; 4029 ARR_AC0,ARL_ARL,J/BLT1 ;FIRST DEST ADDR TO AR
; 4030
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; BASIC.MIC[10,5351] 19:05 28-Nov-83 HALFWORD GROUP
; 4031 .TOC "HALFWORD GROUP"
; 4032 ; DESTINATION LEFT HALF
; 4033
; 4034 .DCODE
D 0500, 5500,0106 ; 4035 500: R-PF, AC, J/HLL
; 4036 .IF/XADDR
D 0501, 2500,0107 ; 4037 EA, AC, J/XHLLI ;GET 36 BIT ADDRESS IN AR AND VMA
;;4038 .IFNOT/XADDR
;;4039 I-PF, AC, J/HLL
; 4040 .ENDIF/XADDR
D 0502, 7601,0105 ; 4041 RPW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE
D 0503, 7301,0100 ; 4042 RPW, S, J/MOVE ;HLLS = MOVES
; 4043
D 0504, 5501,0306 ; 4044 R-PF, AC, J/HRL
D 0505, 1500,0306 ; 4045 I-PF, AC, J/HRL
D 0506, 7601,0114 ; 4046 RPW, M, J/HRLM
D 0507, 7300,0115 ; 4047 RPW, S, J/HRLS
; 4048
D 0510, 5501,0312 ; 4049 510: R-PF, AC, J/HLLZ
D 0511, 1500,0312 ; 4050 I-PF, AC, J/HLLZ
D 0512, 3601,0312 ; 4051 W, M, J/HLLZ
D 0513, 7300,0312 ; 4052 RPW, S, J/HLLZ
; 4053
D 0514, 5501,0300 ; 4054 R-PF, AC, J/HRLZ
D 0515, 1500,0300 ; 4055 I-PF, AC, J/HRLZ
D 0516, 3601,0300 ; 4056 W, M, J/HRLZ
D 0517, 7300,0300 ; 4057 RPW, S, J/HRLZ
; 4058
D 0520, 5500,0313 ; 4059 520: R-PF, AC, J/HLLO
D 0521, 1501,0313 ; 4060 I-PF, AC, J/HLLO
D 0522, 3600,0313 ; 4061 W, M, J/HLLO
D 0523, 7301,0313 ; 4062 RPW, S, J/HLLO
; 4063
D 0524, 5500,0301 ; 4064 R-PF, AC, J/HRLO
D 0525, 1501,0301 ; 4065 I-PF, AC, J/HRLO
D 0526, 3600,0301 ; 4066 W, M, J/HRLO
D 0527, 7301,0301 ; 4067 RPW, S, J/HRLO
; 4068
D 0530, 5501,0413 ; 4069 530: R-PF, AC, J/HLLE
D 0531, 1500,0413 ; 4070 I-PF, AC, J/HLLE
D 0532, 3601,0413 ; 4071 W, M, J/HLLE
D 0533, 7300,0413 ; 4072 RPW, S, J/HLLE
; 4073
D 0534, 5501,0401 ; 4074 R-PF, AC, J/HRLE
D 0535, 1500,0401 ; 4075 I-PF, AC, J/HRLE
D 0536, 3601,0401 ; 4076 W, M, J/HRLE
D 0537, 7300,0401 ; 4077 RPW, S, J/HRLE
; 4078
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; BASIC.MIC[10,5351] 19:05 28-Nov-83 HALFWORD GROUP
; 4079 ; DESTINATION RIGHT HALF
; 4080
D 0540, 5500,0105 ; 4081 540: R-PF, AC, J/HRR
D 0541, 1501,0105 ; 4082 I-PF, AC, J/HRR
D 0542, 7601,0106 ; 4083 RPW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE
D 0543, 7301,0100 ; 4084 RPW, S, J/MOVE ;HRRS = MOVES
; 4085
D 0544, 5501,0311 ; 4086 R-PF, AC, J/HLR
D 0545, 1500,0311 ; 4087 I-PF, AC, J/HLR
D 0546, 7600,0202 ; 4088 RPW, M, J/HLRM
D 0547, 7301,0203 ; 4089 RPW, S, J/HLRS
; 4090
D 0550, 5500,0214 ; 4091 550: R-PF, AC, J/HRRZ
D 0551, 1501,0214 ; 4092 I-PF, AC, J/HRRZ
D 0552, 3600,0214 ; 4093 W, M, J/HRRZ
D 0553, 7301,0214 ; 4094 RPW, S, J/HRRZ
; 4095
D 0554, 5500,0304 ; 4096 R-PF, AC, J/HLRZ
D 0555, 1501,0304 ; 4097 I-PF, AC, J/HLRZ
D 0556, 3600,0304 ; 4098 W, M, J/HLRZ
D 0557, 7301,0304 ; 4099 RPW, S, J/HLRZ
; 4100
D 0560, 5501,0215 ; 4101 560: R-PF, AC, J/HRRO
D 0561, 1500,0215 ; 4102 I-PF, AC, J/HRRO
D 0562, 3601,0215 ; 4103 W, M, J/HRRO
D 0563, 7300,0215 ; 4104 RPW, S, J/HRRO
; 4105
D 0564, 5501,0305 ; 4106 R-PF, AC, J/HLRO
D 0565, 1500,0305 ; 4107 I-PF, AC, J/HLRO
D 0566, 3601,0305 ; 4108 W, M, J/HLRO
D 0567, 7300,0305 ; 4109 RPW, S, J/HLRO
; 4110
D 0570, 5500,0316 ; 4111 570: R-PF, AC, J/HRRE
D 0571, 1501,0316 ; 4112 I-PF, AC, J/HRRE
D 0572, 3600,0316 ; 4113 W, M, J/HRRE
D 0573, 7301,0316 ; 4114 RPW, S, J/HRRE
; 4115
D 0574, 5500,0406 ; 4116 R-PF, AC, J/HLRE
D 0575, 1501,0406 ; 4117 I-PF, AC, J/HLRE
D 0576, 3600,0406 ; 4118 W, M, J/HLRE
D 0577, 7301,0406 ; 4119 RPW, S, J/HLRE
; 4120
; 4121 .UCODE
; 4122
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; BASIC.MIC[10,5351] 19:05 28-Nov-83 HALFWORD GROUP
; 4123 ;FIRST, THE 16 OPS WHICH DO NOT AFFECT THE "OTHER" HALF.
; 4124 ;THESE MUST BE TREATED SEPARATELY, BECAUSE THEY COMBINE MEMORY DATA
; 4125 ;IN AR WITH DATA FROM THE FM. ENTER WITH 0,E OR (E) IN AR.
; 4126
; 4127 105:
U 0105, 0060,3200,0000,0000,0025,0633,0002 ; 4128 HRR: ARL_AC0,ARR_ARR,EXIT ;HRR, HRRI, HLLM
; 4129 106:
U 0106, 0060,3200,2000,0000,0025,0633,0000 ; 4130 HLL: ARR_AC0,ARL_ARL,EXIT ;HLL, HLLI, HRRM
; 4131 ;HRRS, HLLS ARE BOTH EQUIVALENT TO MOVES
; 4132 =0****00****
U 0306, 0060,3240,2000,0000,3025,0633,0004 ; 4133 HRL: ARL_ARR,ARR_AC0,EXIT ;HRL, HRLI
; 4134 =
; 4135 =0****00****
U 0311, 0060,3240,4000,0000,3025,0633,0002 ; 4136 HLR: ARR_ARL,ARL_AC0,EXIT ;HLR, HLRI
; 4137 =
; 4138 =0****00***0
U 0114, 0002,3240,2000,0000,3020,0610,0004 ; 4139 HRLM: ARL_ARR,ARR_AC0,J/MOVS ;HRLM
U 0115, 0060,4001,0000,0000,3005,0633,0004 ; 4140 HRLS: ARL_ARR,ARR_ARR,EXIT ;HRLS
; 4141 =
; 4142 =0****00***0
U 0202, 0002,3240,4000,0000,3020,0610,0002 ; 4143 HLRM: ARR_ARL,ARL_AC0,J/MOVS ;HLRM
U 0203, 0060,4001,4000,0000,3005,0633,0000 ; 4144 HLRS: ARR_ARL,ARL_ARL,EXIT ;HLRS
; 4145 =
; 4146 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF
; 4147 ; ENTER WITH 0,E, (E), OR (AC) IN AR
; 4148
; 4149 =0****00****
U 0316, 0214,0001,0000,0000,0000,4410,0000 ; 4150 HRRE: SKP AR18 ;SELECT HRRZ OR HRRO ON SIGN
; 4151 =
; 4152 =0****00***0
U 0214, 0060,4001,0000,0000,0005,0633,0020 ; 4153 HRRZ: ARL_0S,ARR_ARR,EXIT
U 0215, 0060,2301,0000,0000,0005,0633,0002 ; 4154 HRRO: ARL_1S,ARR_ARR,EXIT
; 4155 =
; 4156 =0****00****
U 0401, 0300,4001,0000,0000,0000,4410,0000 ; 4157 HRLE: SKP AR18
; 4158 =
; 4159 =0****00***0
U 0300, 0060,3441,2000,0000,3005,0633,0004 ; 4160 HRLZ: ARL_ARR,ARR_0S,EXIT
U 0301, 0060,2341,2000,0000,3005,0633,0004 ; 4161 HRLO: ARL_ARR,ARR_1S,EXIT
; 4162 =
; 4163 =0****00****
U 0406, 0304,4001,0000,0000,0000,4510,0000 ; 4164 HLRE: SKP AR0
; 4165 =
; 4166 =0****00***0
U 0304, 0060,0001,4000,0000,3005,0633,0020 ; 4167 HLRZ: ARR_ARL,ARL_0S,EXIT
U 0305, 0060,2341,4000,0000,3005,0633,0002 ; 4168 HLRO: ARR_ARL,ARL_1S,EXIT
; 4169 =
; 4170 =0****00****
U 0413, 0312,0001,0000,0000,0000,4510,0000 ; 4171 HLLE: SKP AR0
; 4172 =
; 4173 =0****00***0
U 0312, 0060,3401,2000,0000,0005,0633,0000 ; 4174 HLLZ: ARR_0S,ARL_ARL,EXIT
U 0313, 0060,2301,2000,0000,0005,0633,0000 ; 4175 HLLO: ARR_1S,ARL_ARL,EXIT
; 4176 =
; 4177
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; BASIC.MIC[10,5351] 19:05 28-Nov-83 DMOVE, DMOVN, DMOVEM, DMOVNM
; 4178 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM"
; 4179 ;DOUBLE-WORD MOVES
; 4180
; 4181 .DCODE
D 0120, 4000,0506 ; 4182 120: R, B/0, J/DMOVE
D 0121, 4101,0506 ; 4183 R, B/1, J/DMOVN
; 4184 .UCODE
; 4185
; 4186 ; ENTER WITH (E) IN AR
; 4187 =0****00****
; 4188 DMOVN:
U 0506, 0030,4001,0000,0000,0013,3633,0000 ; 4189 DMOVE: VMA_VMA+1,LOAD ARX,B DISP ;PICK UP (E+1)
; 4190 =
U 0030, 2023,3240,0003,0000,0022,0010,0000 ; 4191 =00 ARX_MEM,J/STDAC ;GO STORE DOUBLE AC
U 0031, 0274,3240,0003,0000,0022,0062,0100 ; 4192 ARX_MEM,MQ_0.S,CALL.S,J/GTDBR ;LOAD BR WITH DOUBLE OPERAND
; 4193 =11 AR_-BR LONG,AD FLAGS, ;NEGATE DOUBLE OPERAND
U 0033, 0255,5142,2600,0302,0020,1327,0043 ; 4194 SC_#,#/35. ;& STORE RESULT
U 0255, 0246,3441,2000,0000,0217,1010,0000 ; 4195 DBLST: AC0_AR,AR_0S,I FETCH,J/STD1 ;STORE HIGH WORD, READY LOW
; 4196
; 4197
; 4198 ;DOUBLE MOVES TO MEMORY
; 4199
; 4200 .DCODE
D 0124, 3001,0110 ; 4201 124: W, J/DMOVEM
D 0125, 3000,0111 ; 4202 W, J/DMOVNM
; 4203 .UCODE
; 4204
; 4205 ;ENTER WITH (AC) IN AR
; 4206 =0****00**00
U 0110, 0256,3240,0201,0302,0036,0010,0044 ; 4207 DMOVEM: ARX_AC1,STORE,SC_#,#/36.,J/DMVM1
U 0111, 0274,3200,0201,0000,0020,0062,0100 ; 4208 DMOVNM: ARX_AC1,MQ_0.S,CALL.S,J/GTDBR ;HIGH WORD IS ALREADY IN AR
; 4209 =11 AR_-BR LONG,AD FLAGS, ;NEGATE
U 0113, 0256,5162,2600,0302,0036,1327,0043 ; 4210 STORE,SC_#,#/35. ; & STORE
; 4211 =
U 0256, 0273,3401,2003,0000,0002,3610,0000 ; 4212 DMVM1: MEM_AR,VMA_VMA+1,AR_0S
U 0273, 0066,4001,4000,0000,0016,0010,0000 ; 4213 AR_SHIFT,STORE,J/STMEM
; 4214
U 0274, 0331,3721,0500,0000,0000,0010,0000 ; 4215 GTDBR: ARX_ARX*2 ;SHIFT OUT LOW SIGN
U 0331, 0003,0001,0060,0000,0000,0003,0000 ; 4216 LDBRL: BR_AR LONG,RETURN3 ;COPY TO BR LONG
; 4217
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; BASIC.MIC[10,5351] 19:05 28-Nov-83 BOOLEAN GROUP
; 4218 .TOC "BOOLEAN GROUP"
; 4219 .DCODE
D 0400, 1501,0516 ; 4220 400: I-PF, AC, J/SETZ
D 0401, 1501,0516 ; 4221 I-PF, AC, J/SETZ
D 0402, 0600,0516 ; 4222 IW, M, J/SETZ
D 0403, 0701,0516 ; 4223 IW, B, J/SETZ
; 4224 .UCODE
; 4225
; 4226 =0****00****
U 0516, 0060,3401,2000,0000,0005,0033,0000 ; 4227 SETZ: AR_0S,EXIT
; 4228 =
; 4229 .DCODE
D 0404, 5501,0701 ; 4230 404: R-PF, AC, J/AND
D 0405, 1500,0701 ; 4231 I-PF, AC, J/AND
D 0406, 7600,0701 ; 4232 RPW, M, J/AND
D 0407, 7701,0701 ; 4233 RPW, B, J/AND
; 4234 .UCODE
; 4235
; 4236 =0****00****
U 0701, 0060,3600,2000,4000,0025,0033,0000 ; 4237 AND: AR_AR*AC0,AD/AND,EXIT
; 4238 =
; 4239 .DCODE
D 0410, 5500,0711 ; 4240 410: R-PF, AC, J/ANDCA
D 0411, 1501,0711 ; 4241 I-PF, AC, J/ANDCA
D 0412, 7601,0711 ; 4242 RPW, M, J/ANDCA
D 0413, 7700,0711 ; 4243 RPW, B, J/ANDCA
; 4244 .UCODE
; 4245
; 4246 =0****00****
U 0711, 0060,3500,2000,4000,0025,0033,0000 ; 4247 ANDCA: AR_AR*AC0,AD/ANDCB,EXIT
; 4248 =
; 4249 .DCODE
D 0414, 5500,0100 ; 4250 414: R-PF, AC, J/MOVE ;SETM = MOVE
; 4251 .IF/XADDR
D 0415, 2500,0102 ; 4252 EA, AC, J/XMOVEI ;XMOVEI <=> SETMI
;;4253 .IFNOT/XADDR
;;4254 I-PF, AC, J/MOVE
; 4255 .ENDIF/XADDR
D 0416, 7601,0100 ; 4256 RPW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY
D 0417, 7700,0100 ; 4257 RPW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY
; 4258
D 0420, 5500,0712 ; 4259 420: R-PF, AC, J/ANDCM
D 0421, 1501,0712 ; 4260 I-PF, AC, J/ANDCM
D 0422, 7601,0712 ; 4261 RPW, M, J/ANDCM
D 0423, 7700,0712 ; 4262 RPW, B, J/ANDCM
; 4263 .UCODE
; 4264
; 4265 =0****00****
U 0712, 0060,3000,2000,4000,0025,0033,0000 ; 4266 ANDCM: AR_AR*AC0,AD/ANDCA,EXIT
; 4267 =
; 4268 .DCODE
D 0424, 5001,0014 ; 4269 424: R-PF, J/TDN ;SETA = NOP
D 0425, 1000,0014 ; 4270 I-PF, J/TDN ;SETAI IS, TOO
D 0426, 3600,0100 ; 4271 W, M, J/MOVE ;SETAM = MOVEM
D 0427, 3600,0100 ; 4272 W, M, J/MOVE ;SETAB, TOO
; 4273
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; BASIC.MIC[10,5351] 19:05 28-Nov-83 BOOLEAN GROUP
; 4274 .DCODE
D 0430, 5501,0715 ; 4275 430: R-PF, AC, J/XOR
D 0431, 1500,0715 ; 4276 I-PF, AC, J/XOR
D 0432, 7600,0715 ; 4277 RPW, M, J/XOR
D 0433, 7701,0715 ; 4278 RPW, B, J/XOR
; 4279 .UCODE
; 4280
; 4281 =0****00****
U 0715, 0060,3100,2000,0000,0025,0033,0000 ; 4282 XOR: AR_AR*AC0,AD/XOR,EXIT
; 4283 =
; 4284 .DCODE
D 0434, 5501,0716 ; 4285 434: R-PF, AC, J/IOR
D 0435, 1500,0716 ; 4286 I-PF, AC, J/IOR
D 0436, 7600,0716 ; 4287 RPW, M, J/IOR
D 0437, 7701,0716 ; 4288 RPW, B, J/IOR
; 4289 .UCODE
; 4290
; 4291 =0****00****
U 0716, 0060,3300,2000,4000,0025,0033,0000 ; 4292 IOR: AR_AR*AC0,AD/OR,EXIT
; 4293 =
; 4294 .DCODE
D 0440, 5501,1001 ; 4295 440: R-PF, AC, J/ANDCB
D 0441, 1500,1001 ; 4296 I-PF, AC, J/ANDCB
D 0442, 7600,1001 ; 4297 RPW, M, J/ANDCB
D 0443, 7701,1001 ; 4298 RPW, B, J/ANDCB
; 4299 .UCODE
; 4300
; 4301 =0****00****
U 1001, 0060,2400,2000,4000,0025,0033,0000 ; 4302 ANDCB: AR_AR*AC0,AD/ANDC,EXIT
; 4303 =
; 4304 .DCODE
D 0444, 5501,1007 ; 4305 444: R-PF, AC, J/EQV
D 0445, 1500,1007 ; 4306 I-PF, AC, J/EQV
D 0446, 7600,1007 ; 4307 RPW, M, J/EQV
D 0447, 7701,1007 ; 4308 RPW, B, J/EQV
; 4309 .UCODE
; 4310
; 4311 =0****00****
U 1007, 0060,2600,2000,0000,0025,0033,0000 ; 4312 EQV: AR_AR*AC0,AD/EQV,EXIT
; 4313 =
; 4314 .DCODE
D 0450, 1500,1015 ; 4315 450: I-PF, AC, J/SETCA
D 0451, 1500,1015 ; 4316 I-PF, AC, J/SETCA
D 0452, 0601,1015 ; 4317 IW, M, J/SETCA
D 0453, 0700,1015 ; 4318 IW, B, J/SETCA
; 4319 .UCODE
; 4320
; 4321 =0****00****
U 1015, 0060,2500,2000,0000,0025,0033,0000 ; 4322 SETCA: AR_AR*AC0,AD/SETCB,EXIT
; 4323 =
; 4324
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; BASIC.MIC[10,5351] 19:05 28-Nov-83 BOOLEAN GROUP
; 4325 .DCODE
D 0454, 5500,1116 ; 4326 454: R-PF, AC, J/ORCA
D 0455, 1501,1116 ; 4327 I-PF, AC, J/ORCA
D 0456, 7601,1116 ; 4328 RPW, M, J/ORCA
D 0457, 7700,1116 ; 4329 RPW, B, J/ORCA
; 4330 .UCODE
; 4331
; 4332 =0****00****
U 1116, 0060,2700,2000,4000,0025,0033,0000 ; 4333 ORCA: AR_AR*AC0,AD/ORCB,EXIT
; 4334 =
; 4335 .DCODE
D 0460, 5500,1311 ; 4336 460: R-PF, AC, J/SETCM
D 0461, 1501,1311 ; 4337 I-PF, AC, J/SETCM
D 0462, 7601,1311 ; 4338 RPW, M, J/SETCM
D 0463, 7700,1311 ; 4339 RPW, B, J/SETCM
; 4340 .UCODE
; 4341
; 4342 =0****00****
U 1311, 0060,2001,2000,0000,0005,0033,0000 ; 4343 SETCM: ADA/AR,AD/SETCA,AR/AD,EXIT
; 4344 =
; 4345 .DCODE
D 0464, 5501,1504 ; 4346 464: R-PF, AC, J/ORCM
D 0465, 1500,1504 ; 4347 I-PF, AC, J/ORCM
D 0466, 7600,1504 ; 4348 RPW, M, J/ORCM
D 0467, 7701,1504 ; 4349 RPW, B, J/ORCM
; 4350 .UCODE
; 4351
; 4352 =0****00****
U 1504, 0060,2200,2000,4000,0025,0033,0000 ; 4353 ORCM: AR_AR*AC0,AD/ORCA,EXIT
; 4354 =
; 4355 .DCODE
D 0470, 5500,1505 ; 4356 470: R-PF, AC, J/ORCB
D 0471, 1501,1505 ; 4357 I-PF, AC, J/ORCB
D 0472, 7601,1505 ; 4358 RPW, M, J/ORCB
D 0473, 7700,1505 ; 4359 RPW, B, J/ORCB
; 4360 .UCODE
; 4361
; 4362 =0****00****
U 1505, 0060,2100,2000,4000,0025,0033,0000 ; 4363 ORCB: AR_AR*AC0,AD/ORC,EXIT
; 4364 =
; 4365 .DCODE
D 0474, 1501,1506 ; 4366 474: I-PF, AC, J/SETO
D 0475, 1501,1506 ; 4367 I-PF, AC, J/SETO
D 0476, 0600,1506 ; 4368 IW, M, J/SETO
D 0477, 0701,1506 ; 4369 IW, B, J/SETO
; 4370 .UCODE
; 4371
; 4372 =0****00****
U 1506, 0060,2301,2000,0000,0005,0033,0000 ; 4373 SETO: AR_1S,EXIT
; 4374 =
; 4375
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 TEST GROUP
; 4376 .TOC "TEST GROUP"
; 4377 .DCODE
D 0600, 1000,0014 ; 4378 600: I-PF, J/TDN ;TRN- IS NOP
D 0601, 1000,0014 ; 4379 I-PF, J/TDN ;SO IS TLN-
D 0602, 0000,0013 ; 4380 I, TNE, J/TDXX
D 0603, 0001,0012 ; 4381 I, TNE, J/TSXX
D 0604, 0000,0010 ; 4382 I, TNA, J/TDX
D 0605, 0001,0011 ; 4383 I, TNA, J/TSX
D 0606, 0401,0013 ; 4384 I, TNN, J/TDXX
D 0607, 0400,0012 ; 4385 I, TNN, J/TSXX
; 4386
D 0610, 1000,0014 ; 4387 610: I-PF, J/TDN ;TDN- IS A NOP
D 0611, 1000,0014 ; 4388 I-PF, J/TDN ;TSN- ALSO
D 0612, 4001,0013 ; 4389 R, TNE, J/TDXX
D 0613, 4000,0012 ; 4390 R, TNE, J/TSXX
D 0614, 4001,0010 ; 4391 R, TNA, J/TDX
D 0615, 4000,0011 ; 4392 R, TNA, J/TSX
D 0616, 4400,0013 ; 4393 R, TNN, J/TDXX
D 0617, 4401,0012 ; 4394 R, TNN, J/TSXX
; 4395
D 0620, 0500,0010 ; 4396 620: I, TZ-, J/TDX
D 0621, 0501,0011 ; 4397 I, TZ-, J/TSX
D 0622, 0101,0013 ; 4398 I, TZE, J/TDXX
D 0623, 0100,0012 ; 4399 I, TZE, J/TSXX
D 0624, 0101,0010 ; 4400 I, TZA, J/TDX
D 0625, 0100,0011 ; 4401 I, TZA, J/TSX
D 0626, 0500,0013 ; 4402 I, TZN, J/TDXX
D 0627, 0501,0012 ; 4403 I, TZN, J/TSXX
; 4404
D 0630, 4501,0010 ; 4405 630: R, TZ-, J/TDX
D 0631, 4500,0011 ; 4406 R, TZ-, J/TSX
D 0632, 4100,0013 ; 4407 R, TZE, J/TDXX
D 0633, 4101,0012 ; 4408 R, TZE, J/TSXX
D 0634, 4100,0010 ; 4409 R, TZA, J/TDX
D 0635, 4101,0011 ; 4410 R, TZA, J/TSX
D 0636, 4501,0013 ; 4411 R, TZN, J/TDXX
D 0637, 4500,0012 ; 4412 R, TZN, J/TSXX
; 4413
D 0640, 0600,0010 ; 4414 640: I, TC-, J/TDX
D 0641, 0601,0011 ; 4415 I, TC-, J/TSX
D 0642, 0201,0013 ; 4416 I, TCE, J/TDXX
D 0643, 0200,0012 ; 4417 I, TCE, J/TSXX
D 0644, 0201,0010 ; 4418 I, TCA, J/TDX
D 0645, 0200,0011 ; 4419 I, TCA, J/TSX
D 0646, 0600,0013 ; 4420 I, TCN, J/TDXX
D 0647, 0601,0012 ; 4421 I, TCN, J/TSXX
; 4422
D 0650, 4601,0010 ; 4423 650: R, TC-, J/TDX
D 0651, 4600,0011 ; 4424 R, TC-, J/TSX
D 0652, 4200,0013 ; 4425 R, TCE, J/TDXX
D 0653, 4201,0012 ; 4426 R, TCE, J/TSXX
D 0654, 4200,0010 ; 4427 R, TCA, J/TDX
D 0655, 4201,0011 ; 4428 R, TCA, J/TSX
D 0656, 4601,0013 ; 4429 R, TCN, J/TDXX
D 0657, 4600,0012 ; 4430 R, TCN, J/TSXX
; 4431
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 TEST GROUP
D 0660, 0701,0010 ; 4432 660: I, TO-, J/TDX
D 0661, 0700,0011 ; 4433 I, TO-, J/TSX
D 0662, 0300,0013 ; 4434 I, TOE, J/TDXX
D 0663, 0301,0012 ; 4435 I, TOE, J/TSXX
D 0664, 0300,0010 ; 4436 I, TOA, J/TDX
D 0665, 0301,0011 ; 4437 I, TOA, J/TSX
D 0666, 0701,0013 ; 4438 I, TON, J/TDXX
D 0667, 0700,0012 ; 4439 I, TON, J/TSXX
; 4440
D 0670, 4700,0010 ; 4441 670: R, TO-, J/TDX
D 0671, 4701,0011 ; 4442 R, TO-, J/TSX
D 0672, 4301,0013 ; 4443 R, TOE, J/TDXX
D 0673, 4300,0012 ; 4444 R, TOE, J/TSXX
D 0674, 4301,0010 ; 4445 R, TOA, J/TDX
D 0675, 4300,0011 ; 4446 R, TOA, J/TSX
D 0676, 4700,0013 ; 4447 R, TON, J/TDXX
D 0677, 4701,0012 ; 4448 R, TON, J/TSXX
; 4449 .UCODE
; 4450
; 4451 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE (IMMEDIATE OR MEMORY)
; 4452 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH
; 4453 ; FOR THE MODIFICATION ON THE B FIELD.
; 4454
; 4455 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 1 AND 2 AS FOLLOWS:
; 4456 ; 0 0 NO MODIFICATION
; 4457 ; 0 1 ZEROS
; 4458 ; 1 0 COMPLEMENT
; 4459 ; 1 1 ONES
; 4460 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE
; 4461 ; ORDER OF INSTRUCTIONS AT TGROUP.
; 4462
; 4463 ;THE HIGH ORDER BIT OF THE B FIELD (B0) IS XOR'D WITH AD CRY0 TO
; 4464 ; DETERMINE THE SENSE OF THE SKIP:
; 4465 ; 0 SKIP IF CRY0=1 (TXX- AND TXXN)
; 4466 ; 1 SKIP IF CRY0=0 (TXXA AND TXXE)
; 4467
; 4468 =0****00*000
; 4469 TDX: TEST FETCH,NO CRY, ;TDXA AND TRXA
U 0010, 0014,2001,0000,0000,0226,0033,0203 ; 4470 B DISP,J/TDN
; 4471
; 4472 TSX: AR_AR SWAP,TEST FETCH,NO CRY, ;TSX, TSXA, TLX, AND TLXA
U 0011, 0014,2041,4000,0000,3226,0033,0203 ; 4473 B DISP,J/TDN
; 4474
U 0012, 0013,4001,4000,0000,3000,0010,0000 ; 4475 TSXX: AR_AR SWAP ;TSXE, TSXN, TLXE, AND TLXN
; 4476
U 0013, 0014,3600,0000,0000,0246,0033,0203 ; 4477 TDXX: TEST AR.AC0,TEST FETCH,B DISP ;TDXE, TDXN, TRXE, AND TRXN
; 4478
U 0014, 0222,0001,0000,0000,0000,0010,0000 ; 4479 TDN: J/FINI ;NO MODIFICATION
U 0015, 0065,3000,2000,4000,0000,0010,0000 ; 4480 TDZ: AR_AR*AC0,AD/ANDCA,TIME/2T,J/STAC ;ZEROS
U 0016, 0065,3100,2000,0000,0000,0010,0000 ; 4481 TDC: AR_AR*AC0,AD/XOR,TIME/2T,J/STAC ;COMP
U 0017, 0065,3300,2000,4000,0000,0010,0000 ; 4482 TDO: AR_AR*AC0,AD/OR,TIME/2T,J/STAC ;ONES
; 4483 =
; 4484
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 COMPARE -- CAI, CAM
; 4485 .TOC "COMPARE -- CAI, CAM"
; 4486
; 4487 .DCODE
D 0300, 0301,1507 ; 4488 300: I, SJC-, J/CAIM ;CAI
D 0301, 0200,1507 ; 4489 I, SJCL, J/CAIM
D 0302, 0100,1507 ; 4490 I, SJCE, J/CAIM
D 0303, 0001,1507 ; 4491 I, SJCLE, J/CAIM
D 0304, 0700,1507 ; 4492 I, SJCA, J/CAIM
D 0305, 0601,1507 ; 4493 I, SJCGE, J/CAIM
D 0306, 0501,1507 ; 4494 I, SJCN, J/CAIM
D 0307, 0400,1507 ; 4495 I, SJCG, J/CAIM
; 4496
D 0310, 4300,1507 ; 4497 310: R, SJC-, J/CAIM ;CAM
D 0311, 4201,1507 ; 4498 R, SJCL, J/CAIM
D 0312, 4101,1507 ; 4499 R, SJCE, J/CAIM
D 0313, 4000,1507 ; 4500 R, SJCLE, J/CAIM
D 0314, 4701,1507 ; 4501 R, SJCA, J/CAIM
D 0315, 4600,1507 ; 4502 R, SJCGE, J/CAIM
D 0316, 4500,1507 ; 4503 R, SJCN, J/CAIM
D 0317, 4401,1507 ; 4504 R, SJCG, J/CAIM
; 4505 .UCODE
; 4506
; 4507 =0****00****
U 1507, 0075,3100,0000,0000,0246,0010,0201 ; 4508 CAIM: GEN AR*AC0,COMP FETCH,J/NOP
; 4509 =
; 4510
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 4511 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP"
; 4512 ;ENTER WITH (E) IN AR
; 4513
; 4514 .DCODE
D 0330, 4300,1510 ; 4515 330: R, SJC-, J/SKIP ;NOT A NOP IF AC .NE. 0
D 0331, 4201,1510 ; 4516 R, SJCL, J/SKIP
D 0332, 4101,1510 ; 4517 R, SJCE, J/SKIP
D 0333, 4000,1510 ; 4518 R, SJCLE, J/SKIP
D 0334, 4701,1510 ; 4519 R, SJCA, J/SKIP
D 0335, 4600,1510 ; 4520 R, SJCGE, J/SKIP
D 0336, 4500,1510 ; 4521 R, SJCN, J/SKIP
D 0337, 4401,1510 ; 4522 R, SJCG, J/SKIP
; 4523 .UCODE
; 4524
; 4525 =0****00****
; 4526 SKIP: FIN STORE,SKIP FETCH,
U 1510, 0074,3703,0003,0000,0246,4610,0202 ; 4527 SKP AC#0,J/STSELF ;STORE IN SELF MODE
; 4528 =
; 4529
; 4530 .DCODE
D 0350, 7301,1511 ; 4531 350: RPW, SJC-, J/AOS
D 0351, 7200,1511 ; 4532 RPW, SJCL, J/AOS
D 0352, 7100,1511 ; 4533 RPW, SJCE, J/AOS
D 0353, 7001,1511 ; 4534 RPW, SJCLE, J/AOS
D 0354, 7700,1511 ; 4535 RPW, SJCA, J/AOS
D 0355, 7601,1511 ; 4536 RPW, SJCGE, J/AOS
D 0356, 7501,1511 ; 4537 RPW, SJCN, J/AOS
D 0357, 7400,1511 ; 4538 RPW, SJCG, J/AOS
; 4539 .UCODE
; 4540
; 4541 =0****00****
U 1511, 1510,4001,2000,0000,0036,1310,0000 ; 4542 AOS: AR_AR+1,AD FLAGS,STORE,J/SKIP
; 4543 =
; 4544
; 4545 .DCODE
D 0370, 7301,1512 ; 4546 370: RPW, SJC-, J/SOS
D 0371, 7200,1512 ; 4547 RPW, SJCL, J/SOS
D 0372, 7100,1512 ; 4548 RPW, SJCE, J/SOS
D 0373, 7001,1512 ; 4549 RPW, SJCLE, J/SOS
D 0374, 7700,1512 ; 4550 RPW, SJCA, J/SOS
D 0375, 7601,1512 ; 4551 RPW, SJCGE, J/SOS
D 0376, 7501,1512 ; 4552 RPW, SJCN, J/SOS
D 0377, 7400,1512 ; 4553 RPW, SJCG, J/SOS
; 4554 .UCODE
; 4555
; 4556 =0****00****
U 1512, 1510,1703,2000,0000,0036,1310,0000 ; 4557 SOS: AR_AR-1,AD FLAGS,STORE,J/SKIP
; 4558 =
; 4559
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 4560 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ"
; 4561
; 4562 .DCODE
D 0320, 0301,1513 ; 4563 320: I, SJC-, J/JUMP
D 0321, 0200,1513 ; 4564 I, SJCL, J/JUMP
D 0322, 0100,1513 ; 4565 I, SJCE, J/JUMP
D 0323, 0001,1513 ; 4566 I, SJCLE, J/JUMP
D 0324, 0700,1513 ; 4567 I, SJCA, J/JUMP
D 0325, 0601,1513 ; 4568 I, SJCGE, J/JUMP
D 0326, 0501,1513 ; 4569 I, SJCN, J/JUMP
D 0327, 0400,1513 ; 4570 I, SJCG, J/JUMP
; 4571 .UCODE
; 4572
; 4573 =0****00****
U 1513, 0075,3200,2000,0000,0246,0010,0502 ; 4574 JUMP: AR_AC0,JUMP FETCH,J/NOP ; E IS IN VMA (HERE AND BELOW)
; 4575 =
; 4576
; 4577 .DCODE
D 0340, 0300,1514 ; 4578 340: I, SJC-, J/AOJ
D 0341, 0201,1514 ; 4579 I, SJCL, J/AOJ
D 0342, 0101,1514 ; 4580 I, SJCE, J/AOJ
D 0343, 0000,1514 ; 4581 I, SJCLE, J/AOJ
D 0344, 0701,1514 ; 4582 I, SJCA, J/AOJ
D 0345, 0600,1514 ; 4583 I, SJCGE, J/AOJ
D 0346, 0500,1514 ; 4584 I, SJCN, J/AOJ
D 0347, 0401,1514 ; 4585 I, SJCG, J/AOJ
; 4586 .UCODE
; 4587
; 4588 =0****00****
U 1514, 0074,4640,2000,0000,0266,1310,0502 ; 4589 AOJ: AR_AC0+1,AD FLAGS,JUMP FETCH,J/STORAC
; 4590 =
; 4591
; 4592 .DCODE
D 0360, 0301,1515 ; 4593 360: I, SJC-, J/SOJ
D 0361, 0200,1515 ; 4594 I, SJCL, J/SOJ
D 0362, 0100,1515 ; 4595 I, SJCE, J/SOJ
D 0363, 0001,1515 ; 4596 I, SJCLE, J/SOJ
D 0364, 0700,1515 ; 4597 I, SJCA, J/SOJ
D 0365, 0601,1515 ; 4598 I, SJCGE, J/SOJ
D 0366, 0501,1515 ; 4599 I, SJCN, J/SOJ
D 0367, 0400,1515 ; 4600 I, SJCG, J/SOJ
; 4601 .UCODE
; 4602
; 4603 =0****00****
U 1515, 0353,3240,2000,0000,0020,0010,0000 ; 4604 SOJ: AR_AC0
U 0353, 0074,1703,2000,0000,0266,1310,0502 ; 4605 = AR_AR-1,AD FLAGS,JUMP FETCH,J/STORAC
; 4606
; 4607 .DCODE
D 0252, 0601,1516 ; 4608 252: I, SJCGE, J/AOBJ
D 0253, 0200,1516 ; 4609 I, SJCL, J/AOBJ
; 4610 .UCODE
; 4611
; 4612 =0****00****
U 1516, 0074,4640,2000,0000,0266,0017,0502 ; 4613 AOBJ: AR_AC0+1,GEN CRY18,JUMP FETCH,J/STORAC
; 4614 =
; 4615
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 AC DECODE JUMPS -- JRST, JFCL
; 4616 .TOC "AC DECODE JUMPS -- JRST, JFCL"
; 4617
; 4618 .DCODE
D 0254, 2000,0600 ; 4619 254: EA, J/JRST ;DISPATCHES TO 1 OF 16 ON AC BITS
D 0255, 0401,0700 ; 4620 I,TNN, J/JFCL
; 4621 .UCODE
; 4622
; 4623 ;A READ DETECTS JRST, AND DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS
; 4624
; 4625 600: ;DRAM REQUIRES JRST AT MULTIPLE OF 200
U 0600, 0222,0001,0000,0000,0000,0010,0000 ; 4626 JRST: J/FINI ;(0) A READ PREFETCHES ON JRST 0,
U 0601, 0630,0001,0040,0000,0000,0024,0412 ; 4627 601: PORTAL,BR/AR,J/BRJMP ;(1) PORTAL
; 4628 602:
U 0602, 0036,2301,0040,0000,0000,0036,0000 ; 4629 JRST2: EA MOD DISP,BR/AR,J/JRSTF ;(2) JRSTF
U 0603, 1002,4001,0000,0000,0000,0010,0000 ; 4630 603: J/UUO ;(3)
U 0604, 1016,0001,0000,0000,0000,6110,0000 ; 4631 604: SKP KERNEL,J/IHALT ;(4) HALT
; 4632 .IF/LONG.PC
U 0605, 0465,0001,0000,0000,0012,0010,0000 ; 4633 605: LOAD AR,J/XJRSTF1 ;(5) XJRSTF -- VALID ANYWHERE
U 0606, 0604,4001,0000,0000,0000,7310,0000 ; 4634 606: SKP IO LEGAL,J/604 ;(6) XJEN -- TRAP IF USER
U 0607, 0730,4031,0200,0000,0020,7325,0000 ; 4635 607: SKP IO LEGAL,ARX_PC+1,J/XPCW1 ;(7) XPCW -- TRAP IF USER
;;4636 .IFNOT/LONG.PC
;;4637 605: J/UUO ;(5)
;;4638 606: J/UUO ;(6)
;;4639 607: J/UUO ;(7)
; 4640 .ENDIF/LONG.PC
U 0610, 0364,4001,0000,0000,0000,7310,0000 ; 4641 610: SKP IO LEGAL,J/DISM ;(10) JRST 10, DISMISS ONLY
U 0611, 1002,4001,0000,0000,0000,0010,0000 ; 4642 611: J/UUO ;(11)
U 0612, 0364,4001,0000,0000,0000,7310,0000 ; 4643 612: SKP IO LEGAL,J/DISM ;(12) JEN
U 0613, 1002,4001,0000,0000,0000,0010,0000 ; 4644 613: J/UUO ;(13)
; 4645 .IF/LONG.PC
U 0614, 0372,4031,0200,0000,0020,0625,0030 ; 4646 614: AR_0.C,ARX_PC+1,J/XSFM1 ;(14) XSFM [331]
U 0615, 0534,0001,0000,0000,0012,0010,0000 ; 4647 615: LOAD AR,J/PCA ;(15) XJRST [301]
;;4648 .IFNOT/LONG.PC
;;4649 614: J/UUO ;(14)
;;4650 615: J/UUO ;(15)
; 4651 .ENDIF/LONG.PC
U 0616, 1002,4001,0000,0000,0000,0010,0000 ; 4652 616: J/UUO ;(16)
U 0617, 1002,4001,0000,0000,0000,0010,0000 ; 4653 617: J/UUO ;(17)
; 4654
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 AC DECODE JUMPS -- JRST, JFCL
; 4655 ;HERE TO FINISH THE MORE COMPLEX FORMS OF JRST
; 4656
;;4657 .IFNOT/XADDR
;;4658 =1110
;;4659 JRSTF: AR_ARX,J/RSTF ;NO XR, RESTORE FROM INDIRECT WORD
;;4660 AR_XR,J/RSTF ;INDEXED, RESTORE FROM REGISTER
; 4661 .IF/XADDR
; 4662 =1110
U 0036, 0354,0001,4000,0000,2000,5010,0000 ; 4663 JRSTF: AR_ARX,SKP PC SEC0,J/RSTF0 ;NO XR, RESTORE FROM INDIRECT WORD
U 0037, 0354,3240,2002,0000,0020,5010,0000 ; 4664 AR_XR,SKP PC SEC0 ;INDEXED, RESTORE FROM REGISTER
; 4665 =0
U 0354, 1002,4001,0000,0000,0000,0010,0000 ; 4666 RSTF0: J/UUO
; 4667 .ENDIF/XADDR
U 0355, 0630,0001,0000,0000,0000,0024,0420 ; 4668 RSTF: RSTR FLAGS_AR,J/BRJMP
; 4669
; 4670 =0
U 0364, 1002,4001,0000,0000,0000,0010,0000 ; 4671 DISM: J/UUO ;ATTEMPT TO DISMISS FROM USER
U 0365, 0361,4001,0040,0000,0000,0024,0502 ; 4672 DISMISS,BR/AR
U 0361, 0020,0001,0000,0000,0000,0001,0000 ; 4673 IR DISP,J/20 ;SPLIT OUT AGAIN
; 4674 630: ;JRST 10,
U 0630, 0075,3242,0000,0000,0317,0010,0000 ; 4675 BRJMP: VMA_BR,FETCH,J/NOP ;RELOAD VMA WITH NEW FLAGS
U 0632, 0036,2341,0000,0000,0000,0036,0000 ; 4676 632: EA MOD DISP,J/JRSTF ;JEN, MUST RESTORE FLAGS
; 4677
; 4678 .IF/LONG.PC
U 0372, 0644,3510,0207,4000,0020,6210,0175 ; 4679 XSFM1: ARX_ARX ANDC ADMSK,SKP USER ;[331] XSFM now legal everywhere
U 0644, 0635,0001,0000,0000,2000,0250,0000 ; 4680 =0 AR12-17_PREV SEC,CALL [ARSWAP] ;[334] SAVE PCS IN AR
; 4681 ARL_ARXL,ARR_ARR, ;STORE FLAG WORD
U 0645, 0634,0001,0000,0000,2016,0022,0004 ; 4682 STORE,J/XSFM2
; 4683 ; ;[334]
; 4684
;;4685 .IFNOT/XADDR
;;4686 =0
;;4687 XPCW1: J/UUO ;BAD USE OF XPCW
;;4688 AR_ARX ANDC ADMSK,STORE, ;STORE FLAGS WORD
;;4689 BRX/ARX,ARX/AD,
;;4690 IR DISP,J/20 ;IS THIS XSFM OR XPCW
; 4691 .IF/XADDR
; 4692 =0
U 0730, 1002,4001,0000,0000,0000,0010,0000 ; 4693 XPCW1: J/UUO ;BAD USE OF XPCW
; 4694 AR_ARX ANDC ADMSK,BRX/ARX, ;SAVE FLAGS,PC IN BRX AND
U 0731, 0461,3510,2227,0000,0020,0010,0175 ; 4695 ARX/AD ;FLAGS IN ARX
U 0461, 0734,0001,0040,0000,0000,6222,0030 ; 4696 AR_0.S,BR/AR,SKP USER
U 0734, 0635,0001,0000,0000,2000,0250,0000 ; 4697 =0 AR12-17_PREV SEC,CALL [ARSWAP] ;[334] SAVE PCS IN AR
; 4698 ARL_BRL,ARR_ARR,STORE, ;STORE FLAGS WORD
U 0735, 0020,3242,0000,0000,0016,0601,0002 ; 4699 IR DISP,J/20 ;IS THIS XSFM, OR XPCW?
; 4700 .ENDIF/XADDR
; 4701 627: FIN STORE,AR_ARX*BRX,AD/ANDCA, ;XPCW. GET ADDRESS TO AR
U 0627, 0471,3002,6003,4000,0016,3610,0000 ; 4702 VMA_VMA+1,STORE,J/XPCW2
; 4703 634:
U 0634, 0075,4001,0003,0000,0217,0010,0000 ; 4704 XSFM2: FIN STORE,I FETCH,J/NOP ;XSFM. DONE.
; 4705
; 4706 XJRSTF1:FIN XFER,VMA_VMA+1,LOAD AR, ;GETS TO 625 OR 626 FOR XJRSTF
U 0465, 0020,3240,0003,0000,0032,3601,0000 ; 4707 IR DISP,J/20 ; OR XJEN
; 4708
;;4709 .IFNOT/XADDR
;;4710 XPCW2: FIN STORE,VMA_VMA+1,LOAD AR ;STORE PC ADDR, GET NEW FLAGS
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7-1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 AC DECODE JUMPS -- JRST, JFCL
;;4711 FIN XFER,VMA_VMA+1,LOAD AR ;GOT FLAGS GET PC ADDRESS
;;4712 625: RSTR FLAGS_AR,AR_MEM,J/ARJMP ;XJRSTF WINDS UP HERE
;;4713 626: RSTR FLAGS_AR,AR_MEM ;XJEN WINDS UP HERE
;;4714 DISMISS,J/ARJMP
; 4715 .IF/XADDR
U 0471, 0472,0001,0003,0000,0012,3610,0000 ; 4716 XPCW2: FIN STORE,VMA_VMA+1,LOAD AR ;STORE PC ADDR, GET NEW FLAGS
U 0472, 0475,3200,0003,0000,0032,3610,0000 ; 4717 FIN XFER,VMA_VMA+1,LOAD AR ;GOT FLAGS, GET PC ADDRESS
U 0475, 1045,3200,0003,0000,0022,0024,0420 ; 4718 RSTR FLAGS_AR,AR_MEM,J/ARJMP
; 4719 625: RSTR FLAGS_AR,AR_MEM, ;XJRSTF WINDS UP HERE
; 4720 ARX_AR SWAP, ;SAVE PCS,FLAGS IN ARX
U 0625, 1020,3200,0403,0000,3022,6224,0420 ; 4721 SKP USER,J/XJRSTF2
; 4722 626: RSTR FLAGS_AR,AR_MEM,SKP USER, ;XJEN WINDS UP HERE
U 0626, 0754,3200,0403,0000,3022,6224,0420 ; 4723 ARX_AR SWAP ;SAVE PCS,FLAGS IN ARX
U 0754, 1020,4001,0000,0000,0000,0024,0502 ; 4724 =0 DISMISS,J/XJRSTF2
U 0755, 1045,4001,0000,0000,0000,0024,0502 ; 4725 DISMISS,J/ARJMP
; 4726 =0
U 1020, 1044,4001,0000,0000,0000,6210,0000 ; 4727 XJRSTF2:SKP USER,J/XJRSTF3
U 1021, 0075,3703,0000,0000,0317,0010,0000 ; 4728 VMA_AR,FETCH,J/NOP
; 4729 =0
U 1044, 0552,4001,0000,0000,0000,0050,0000 ; 4730 XJRSTF3:CALL,J/LDPCS ;RESTORE PCS FROM FLAGS WORD
; 4731 .ENDIF/XADDR
U 1045, 0075,3703,0000,0000,0317,0010,0000 ; 4732 ARJMP: VMA_AR,FETCH,J/NOP ;DONE
; 4733 .IF/XADDR
U 0534, 1045,3200,0003,0000,0022,1610,0000 ; 4734 PCA: AR_MEM,SR_0,J/ARJMP ;[301] End of LUUO and XJRST
; 4735 ;
U 0552, 0562,4001,0000,0000,0000,2210,0400 ; 4736 LDPCS: GET ECL EBUS
U 0562, 0624,3711,0000,0000,0060,2010,0426 ; 4737 LD PCS
; 4738 COND/EBUS CTL,EBUS CTL/2, ;RELEASE ECL BUS
U 0624, 0001,0001,0000,0000,0000,2203,0002 ; 4739 RETURN1
; 4740 .ENDIF/XADDR
; 4741 .ENDIF/LONG.PC
; 4742 ;
; 4743 ; [334] Subroutine to swap AR halves. Used in a couple of places.
; 4744 ;
U 0635, 0001,0001,4000,0000,3000,0003,0000 ; 4745 ARSWAP: AR_AR SWAP,RETURN1 ;[334] Rearrange things
; 4746 ;
; 4747 700: ;JFCL MUST BE AT JRST+100
U 0700, 0124,3242,0600,0302,0000,0010,0015 ; 4748 JFCL: ARX_BRX,SC_#,#/13. ;GET BACK AC FIELD
; 4749 =0* AR_SHIFT,ARX_0S, ;MOVE AC TO AR32-35
U 0124, 2264,3401,4200,0302,0000,0050,0040 ; 4750 SC_#,#/32.,CALL,J/SHIFT ;SHIFTER WILL MOVE TO 0-3
U 0126, 0641,3731,2040,0000,0000,0024,0602 ; 4751 BR/AR,AR_PC,JFCL T ;GET PC FLAGS INTO AR
U 0641, 0652,3602,0000,0000,0246,0010,0503 ; 4752 TEST AR.BR,JFCL FETCH ;JUMP IF TEST SATISFIED
U 0652, 0656,3502,2000,0000,0000,0010,0000 ; 4753 AR_AR*BR,AD/ANDCB ;CLEAR TESTED FLAGS IN AR
U 0656, 0222,4001,0000,0000,0000,0024,0622 ; 4754 JFCL S,J/FINI ;SET PC FROM THEM
; 4755
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 HALT LOOP
; 4756 .TOC "HALT LOOP"
; 4757 ;HERE WHILE PROCESSOR IS "HALTED"
; 4758
; 4759 1016:
; 4760 UUO107: ;OP 107 COMES HERE
U 1016, 1002,4001,0000,0000,0000,0010,0000 ; 4761 IHALT: J/UUO ;HERE IF HALT NOT IN KERNEL
U 1017, 0661,0001,0000,0000,0000,0024,0442 ; 4762 1017: HALT
; 4763
; 4764 CHALT: AR_0S,CLR SC,CLR FE,SET HALTED, ;KERNEL OR CONSOLE HALT
U 0661, 1054,3441,2000,0403,0100,1515,0302 ; 4765 VMA/PC,PC_VMA ; IF JRST 4, COPY EA TO PC
;;4766 .IF/PAGCNT ;[327] PFH, DATAO PAG bit 2 counts
;;4767 TRX2_AR ;[327] Zero count registers
;;4768 TRX3_AR
; 4769 .ENDIF/PAGCNT ;[327]
; 4770 =0
; 4771 HALT1: SKP -START,TIME/3T, ;CHECK FOR CONTINUE BUTTON
U 1054, 1164,4001,0400,2421,1020,7110,0000 ; 4772 FE_AR0-8,ARX_AR,J/HALT2 ;PICK UP OPCODE IN CASE XCT
U 1055, 0144,0001,0000,0000,0000,7710,0000 ; 4773 TAKE INTRPT ;HERE IF EXAMINE/DEPOSIT UP
; 4774 =0
U 1164, 0226,4001,0000,3000,0020,1534,0000 ; 4775 HALT2: GEN FE-1,BYTE DISP,CONTINUE,J/UNHALT ;INSTR FROM SWITCHES?
U 1165, 1054,0001,0000,0000,0000,7010,0000 ; 4776 SKP INTRPT,TIME/2T,J/HALT1 ;HALT LOOP MUST BE AN ODD
; 4777 ; NUMBER OF TICKS TO ALLOW
; 4778 ; DIAGNOSTICS TO SYNCRONIZE
; 4779 ; EBOX WITH E & SBUS CLK PHASES.
; 4780 =110
U 0226, 1775,0001,0000,0401,0000,1510,0310 ; 4781 UNHALT: SET CONS XCT,CLR FE,J/UXCT ;XCT ONE FROM "SWITCHES"
U 0227, 0000,5063,0000,0000,0040,5410,0000 ; 4782 SKP AR EQ,J/START ;NOT AN INSTR. START, OR CONT?
; 4783
; 4784
; 4785 .TOC "MAP, XCT"
; 4786
; 4787 .DCODE
D 0256, 4000,0402 ; 4788 256: R, J/XCT ;OPERAND FETCHED AS DATA
D 0257, 0500,0403 ; 4789 I, AC, J/MAP
; 4790 .UCODE
; 4791
; 4792 =0****00***0
U 0402, 1762,4001,0000,0000,0000,7010,0000 ; 4793 XCT: SKP INTRPT,J/XCT1 ;CHECK FOR XCT . LOOP
; 4794
U 0403, 0671,4001,0040,0000,0007,0010,0140 ; 4795 MAP: MAP,BR/AR ;MAP E, GO READ BACK EBRG
; 4796 =
; 4797 .IF/KLPAGE ;IN KL PAGING MODE,
U 0671, 1254,0001,0000,0000,0000,1610,0015 ; 4798 SR_MAP ;MAP CAN PAGE FAIL
; 4799 .ENDIF/KLPAGE
; 4800 =0
; 4801 RDEBRG: AR_0S,SKP IO LEGAL,MB WAIT, ;FINISH READ REG FUNC
U 1254, 2406,3401,2000,0000,0002,7350,0000 ; 4802 CALL,J/GETEEB ;AND GET EBUS
U 1255, 0726,4001,3000,0000,0060,2010,0567 ; 4803 AR_EBUS REG ;READ DATA
U 0726, 0066,0001,0000,0000,0005,2233,0000 ; 4804 REL ECL EBUS,B WRITE,J/ST6 ;GIVE IT TO USER
; 4805 .IF/KLPAGE
; 4806 =0
U 1274, 1002,0001,0000,0000,0000,1610,0000 ; 4807 MAP2: SR_0,J/UUO ;NO MAPS IN USER MODE
U 1275, 1320,0001,0000,0000,0000,7010,0000 ; 4808 SKP INTRPT ;DO NOT BUM THIS CODE OUT
; 4809 =0 ;IT IS NECESSARY TO DO NOTHING
U 1320, 0074,0001,0000,0000,0217,0010,0000 ; 4810 I FETCH,J/STORAC ;INTERESTING AFTER A MAP IF
U 1321, 0071,0001,0000,0000,0000,2110,0105 ; 4811 SET ACCOUNT EN,J/TAKINT ;AN INTERRUPT IS PENDING
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8-1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 MAP, XCT
; 4812 .ENDIF/KLPAGE
; 4813
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 4814 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ"
; 4815
; 4816 .DCODE
D 0260, 2000,0415 ; 4817 260: EA, J/PUSHJ
D 0261, 4001,0414 ; 4818 R, B/0, J/PUSH
D 0262, 2001,0504 ; 4819 EA, B/0, J/POP
D 0263, 0001,0505 ; 4820 I, J/POPJ
; 4821 .UCODE
; 4822
; 4823 ;PUSHJ
; 4824 ; ENTER WITH E IN AR
; 4825 ;PUSH
; 4826 ; ENTER WITH (E) IN AR
; 4827
; 4828 =0****00***0
;;4829 .IFNOT/MODEL.B
;;4830 PUSH: ARX_AC0+1,GEN CRY18,SKP CRY0, ;BUMP BOTH HALVES OF AC,
;;4831 VMA/AD,STORE,J/STMAC ;PUT AR ONTO LIST
;;4832
;;4833 PUSHJ: BR/AR,AR_PC+1 ;SAVE JUMP ADDR, GET PC
;;4834 = ARX_AC0+1,GEN CRY18,SKP CRY0, ;COMPUTE STACK ADDRESS
;;4835 VMA/AD,STORE,J/JSTAC ;AND PREPARE TO STORE PC
; 4836 .IF/MODEL.B ;COULD SIMPLIFY IFNOT XADDR
U 0414, 1334,4640,0200,0000,0151,5420,0041 ; 4837 PUSH: ARX_AC0+1,PUSH,SKP CRY0,J/STMAC ;BUMP AC ACCORDING TO FORMAT
; 4838 ; AND SECTION NUMBER
U 0415, 1330,4031,2040,0000,0020,5025,0000 ; 4839 PUSHJ: BR/AR,AR_PC+1,SKP PC SEC0 ;GET PC WITH FLAGS
; 4840 =
U 1330, 1331,3600,2007,4000,0020,0010,0175 ; 4841 =0 AR_AR AND ADMSK ;STRIP OFF FLAGS IF NOT SEC0
U 1331, 0122,4660,0200,0000,0151,5420,0041 ; 4842 ARX_AC0+1,PUSH,SKP CRY0,J/JSTAC ;UPDATE STACK POINTER, STORE
; 4843 .ENDIF/MODEL.B
; 4844 =00
U 0120, 0736,3703,0000,0000,0313,0050,0000 ; 4845 JRA1: VMA_AR,LOAD ARX,CALL,J/XFERW ;GET SAVED AC
; 4846 =10
; 4847 JSTAC: FIN STORE,VMA_BR,FETCH, ;STORE PC, JUMP ADDR TO VMA
U 0122, 0074,3202,4003,0000,2317,0010,0000 ; 4848 AR_ARX,J/STORAC ;PREPARE TO STORE AC VALUE
U 0123, 0122,0001,0003,0000,0002,1110,0040 ; 4849 TRAP2,MEM_AR,J/JSTAC ;CAUSE PDL OVRFLO
; 4850
; 4851 =0
; 4852 STMAC: FIN STORE,I FETCH, ;STORE RESULT, GET NEXT INSTR
U 1334, 0074,4001,4003,0000,2217,0033,0000 ; 4853 AR_ARX,B DISP,J/STSELF ;STORE AC IF B=0
; 4854 MEM_AR,TRAP2, ;PDL OVFLO, CAUSE TRAP
U 1335, 0067,0001,4003,0000,2002,1110,0040 ; 4855 AR_ARX,J/IFSTAC ;UPDATE AC BEFORE TRAPPING
; 4856 ;
; 4857 ; A one line subroutine to wait for a memory fetch (either AR
; 4858 ; or ARX) and return. Used by all sorts of things.
; 4859 ;
U 0736, 0002,3240,0003,0000,0022,0003,0000 ; 4860 XFERW: AR_MEM,ARX_MEM,TIME/3T,RETURN2 ; Cross reference both macros [313]
; 4861
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 4862 ;POP, POPJ
; 4863 ;ENTER WITH E IN AR
; 4864
;;4865 .IFNOT/MODEL.B
;;4866 =0****00***0
;;4867 POP: BR/AR,AR_AC0,VMA/AD, ;GET PUSHDOWN POINTER
;;4868 LOAD AR,J/POP1 ;BEGIN DATA FETCH FROM STACK
;;4869
;;4870 POPJ: AR_AC0,VMA/AD,LOAD ARX ;START FETCH FROM STACK
;;4871 = AR_AR-1,INH CRY18,SKP CRY0 ;DECR STACK POINTER, CHECK UNDERFLOW
;;4872 =0 ARX_MEM,TRAP2,J/POPJ1 ;UNDERFLOW OCCURRED
;;4873 ARX_MEM ;GET STACK WORD
;;4874 POPJ1: AC0_AR,VMA_ARX,FETCH,J/NOP ;SET NEW AC VALUE, JUMP
;;4875
;;4876
;;4877 POP1: ARX_AR-1,INH CRY18,SKP CRY0 ;ADJUST POINTER, CHECK TRAP
;;4878 =0 AR_MEM,TRAP2 ;PDL OVFLO, CAUSE TRAP
;;4879 AR_MEM,SR_#,#/100 ;SET DEST CONTEXT FLAG
;;4880 VMA_BR,STORE,SR_0,J/STMAC ;PUT RESULT AWAY, THEN AC
; 4881 .IF/MODEL.B ;COULD SIMPLIFY IFNOT XADDR
; 4882 =0****00***0
U 0504, 1003,3240,2040,0000,0131,0010,0421 ; 4883 POP: BR/AR,AR_AC0,POP AR,J/POP2 ;GET FROM STACK
; 4884
U 0505, 0752,3200,2000,0000,0131,0010,0621 ; 4885 POPJ: AR_AC0,POP AR-ARX ;GET STACK TO AR AND ARX
; 4886 = AR_AR-1,TIME/3T, ;BACK OFF POINTER
U 0752, 1374,1703,2000,0000,0020,5420,0000 ; 4887 AC0,STACK UPDATE,SKP CRY0 ; UNDERFLOW?
; 4888 =0 BR/AR,AR_MEM,ARL_0.S, ;AC TO BR, HALFWORD PC TO AR
; 4889 ARX_MEM,TIME/3T, ;FULL PC TO ARX.
U 1374, 1454,3240,0043,0000,0022,5022,0020 ; 4890 SKP PC SEC0,J/POPJT ; GO SET TRAP
; 4891 BR/AR,AR_MEM,ARL_0.S, ;AC TO BR, HALFWORD PC TO AR
; 4892 ARX_MEM,TIME/3T, ;FULL PC TO ARX.
U 1375, 1440,3240,0043,0000,0022,5022,0020 ; 4893 SKP PC SEC0 ;EXTENDED FORM?
; 4894 =0
U 1440, 0756,3711,0000,0000,0317,0010,0000 ; 4895 POPJ2: VMA_ARX,FETCH,J/POPJ4 ;YES. LOAD ENTIRE ADDR
U 1441, 0756,3703,0000,0000,0317,0010,0000 ; 4896 POPJ3: VMA_AR,FETCH ;NO, LOAD HALFWORD ADDRESS
U 0756, 0065,3242,2000,0000,0000,0010,0000 ; 4897 POPJ4: AR_BR,J/STAC ;GET AC BACK, GO STUFF IT
; 4898
; 4899 ;HERE IF POPJ GETS STACK UNDERFLOW
; 4900 ; SKIP IF PC SECTION 0
; 4901 =0
U 1454, 1440,4001,0000,0000,0000,1110,0040 ; 4902 POPJT: TRAP2,J/POPJ2
U 1455, 1441,0001,0000,0000,0000,1110,0040 ; 4903 TRAP2,J/POPJ3
; 4904
; 4905 POP2: ARX_AR-1,AC0,STACK UPDATE, ;BACK UP POINTER
U 1003, 1570,1701,0200,0000,0040,5420,0000 ; 4906 SKP CRY0
U 1570, 1023,3200,0003,0000,0022,1110,0040 ; 4907 =0 AR_MEM,TRAP2,J/POP3
U 1571, 1023,3240,0003,0000,0022,0010,0000 ; 4908 AR_MEM
U 1023, 1334,3242,0000,0000,0111,0010,0042 ; 4909 POP3: GEN BR,WRITE (E),J/STMAC ;STORE RESULT & AC
; 4910 .ENDIF/MODEL.B
; 4911
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 4912 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA"
; 4913
; 4914 .DCODE
D 0264, 2001,0703 ; 4915 264: EA, J/JSR ; [301] Make sure these can cross
D 0265, 2000,0702 ; 4916 EA, J/JSP ; section boundaries
D 0266, 0001,1114 ; 4917 I, J/JSA
D 0267, 0000,1115 ; 4918 I, J/JRA
; 4919 .UCODE
; 4920
; 4921 =0****00***0
;;4922 .IFNOT/XADDR
;;4923 JSP: AR_PC+1,FETCH,J/STORAC
;;4924
;;4925 JSR: AR_PC+1,STORE
;;4926 = FIN STORE,VMA_VMA+1,FETCH,J/NOP
; 4927 .IF/XADDR
U 0702, 1602,4031,2000,0000,0037,5025,0000 ; 4928 JSP: AR_PC+1,FETCH,SKP PC SEC0,J/JSP1
; 4929
U 0703, 1574,4033,2000,0000,0020,5025,0000 ; 4930 JSR: AR_PC+1,SKP PC SEC0
; 4931 =
U 1574, 1025,3600,2007,0000,0036,0010,0175 ; 4932 =0 AR_AR AND ADMSK,STORE,J/JSR1
U 1575, 1025,0001,0000,0000,0016,0010,0000 ; 4933 STORE ;IN SECT 0, SAVE FLAGS, TOO
U 1025, 0075,0001,0003,0000,0017,3610,0000 ; 4934 JSR1: FIN STORE,VMA_VMA+1,FETCH,J/NOP
; 4935
; 4936 =0
U 1602, 0065,3600,2007,4000,0020,0010,0175 ; 4937 JSP1: AR_AR AND ADMSK,J/STAC ;NON-ZERO SEC, NO FLAGS
U 1603, 0222,4001,0000,0000,0000,1010,0000 ; 4938 AC0_AR,J/FINI
; 4939 .ENDIF/XADDR
; 4940
; 4941
; 4942 =0****00***0
U 1114, 1041,3200,2400,0000,3036,0010,0000 ; 4943 JSA: ARX_AR SWAP,AR_AC0,STORE,J/JSA1 ;SAVE E IN ARX LEFT, GET AC
; 4944
; 4945 JRA:
;;4946 .IFNOT/XADDR ;[235]
;;4947 BR/AR, AR_AC0 ;get AC, save jump address.
;;4948 =
;;4949 ARR_ARL, ARL_0.M, J/JRA1 ;E to ARR.
; 4950 .IF/XADDR ;[235]
U 1115, 1032,4001,0000,0000,1000,0210,0000 ; 4951 AR12-17_PC SEC ;[235] put section in jump address.
; 4952 =
U 1032, 1610,3200,2040,0000,0020,5010,0000 ; 4953 BR/AR, AR_AC0, SKP PC SEC0 ;[235] save jump address, get AC.
U 1610, 1034,0001,4000,0000,3001,0010,0020 ; 4954 =0 ARR_ARL, ARL_0.M, J/JRAB ;[235] in section part to ARR.
U 1611, 0120,0001,4000,0000,3001,0010,0020 ; 4955 ARR_ARL, ARL_0.M, J/JRA1 ;[235] E to ARR.
U 1034, 0120,4001,0000,0000,1000,0210,0000 ; 4956 JRAB: AR12-17_PC SEC, J/JRA1 ;[235] section to ARL.
; 4957 .ENDIF/XADDR ;[235]
; 4958
U 1041, 1046,4001,0003,0000,0017,3610,0000 ; 4959 JSA1: FIN STORE,VMA_VMA+1,FETCH ;JUMP TO E+1
U 1046, 0065,4033,2000,0000,2020,0022,0004 ; 4960 ARR_PC+1,ARL_ARXL,J/STAC ;PC+1,,E GOES TO AC
; 4961
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
; 4962 .TOC "UUO'S"
; 4963 ;LUUO'S TRAP TO CURRENT CONTEXT
; 4964 ; EXTENDED INSTRUCTION SET IS "HIDDEN" BENEATH LUUO OPCODES
; 4965 ;
; 4966 ; WARNING: use extreme caution if E1 for MOVSRJ or CMPSE should
; 4967 ; ever be used for anything, as they are sign smeared if they are
; 4968 ; > 377777 (they fall in with MOVSO and friends at EXT2). [301]
; 4969 ; Use similar caution if new EXTEND codes are created which
; 4970 ; must have the DCODE B field be 1 or 3.
; 4971 ;
; 4972 .DCODE
D 0000, 2000,1002 ; 4973 000: EA, J/UUO
D 0001, 2200,1005 ; 4974 EA, SJCL, J/L-CMS ;CMSX HIDDEN BENEATH LUUO
D 0002, 2100,1005 ; 4975 EA, SJCE, J/L-CMS
D 0003, 2001,1005 ; 4976 EA, SJCLE, J/L-CMS
; 4977
D 0004, 2200,1006 ; 4978 004: EA, B/2, J/L-EDIT ;EDIT
D 0005, 2601,1005 ; 4979 EA, SJCGE, J/L-CMS
D 0006, 2501,1005 ; 4980 EA, SJCN, J/L-CMS
D 0007, 2400,1005 ; 4981 EA, SJCG, J/L-CMS
; 4982
D 0010, 2101,1010 ; 4983 010: EA, B/1, J/L-DBIN ;CVTDBO
D 0011, 2401,1010 ; 4984 EA, B/4, J/L-DBIN ;CVTDBT
D 0012, 2100,1011 ; 4985 EA, B/1, J/L-BDEC ;CVTBDO
D 0013, 2001,1011 ; 4986 EA, B/0, J/L-BDEC ;CVTBDT
; 4987
D 0014, 2100,1012 ; 4988 014: EA, B/1, J/L-MVS ;MOVSO
D 0015, 2001,1012 ; 4989 EA, B/0, J/L-MVS ;MOVST
D 0016, 2200,1012 ; 4990 EA, B/2, J/L-MVS ;MOVSLJ
D 0017, 2301,1012 ; 4991 EA, B/3, J/L-MVS ;MOVSRJ
; 4992
; 4993 020:
;;4994 .IFNOT/EXTEXP
;;4995 EA, J/LUUO
; 4996 .IF/EXTEXP
D 0020, 2000,1013 ; 4997 EA, J/L-XBLT ;XBLT
D 0021, 2501,1014 ; 4998 EA, AC, J/L-GTPI ;GSNGL
D 0022, 2001,1104 ; 4999 EA, J/L-SFTE ;GDBLE
D 0023, 2000,1105 ; 5000 EA, B/0, J/L-GTDI ;DGFIX
D 0024, 2201,1106 ; 5001 024: EA, B/2, J/L-GTSI ;GFIX
D 0025, 2400,1107 ; 5002 EA, B/4, J/L-GTDR ;DGFIXR
D 0026, 2601,1110 ; 5003 EA, B/6, J/L-GTSR ;GFIXR
D 0027, 2000,1111 ; 5004 EA, J/L-DITE ;DGFLTR
D 0030, 2000,1112 ; 5005 030: EA, J/L-SITE ;GFLTR
D 0031, 2001,1113 ; 5006 EA, J/L-EFSC ;GFSC
;;5007 .IFNOT/EXTEXP
;;5008 EA, J/LUUO
;;5009 EA, J/LUUO
;;5010 EA, J/LUUO
;;5011 024: EA, J/LUUO
;;5012 EA, J/LUUO
;;5013 EA, J/LUUO
;;5014 EA, J/LUUO
;;5015 030: EA, J/LUUO
;;5016 EA, J/LUUO
; 5017 .ENDIF/EXTEXP
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12-1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
D 0032, 2001,1006 ; 5018 EA, J/LUUO ;These are reserved to Cobol.
D 0033, 2001,1006 ; 5019 EA, J/LUUO
D 0034, 2001,1006 ; 5020 EA, J/LUUO
D 0035, 2001,1006 ; 5021 EA, J/LUUO
D 0036, 2001,1006 ; 5022 EA, J/LUUO
D 0037, 2001,1006 ; 5023 EA, J/LUUO
; 5024
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
; 5025 ;MONITOR UUO'S -- TRAP TO EXEC
; 5026
D 0040, 2000,1002 ; 5027 040: EA, J/MUUO ;CALL
D 0041, 2000,1002 ; 5028 EA, J/MUUO ;INIT
D 0042, 2000,1002 ; 5029 EA, J/MUUO
D 0043, 2000,1002 ; 5030 EA, J/MUUO
D 0044, 2000,1002 ; 5031 EA, J/MUUO
D 0045, 2000,1002 ; 5032 EA, J/MUUO
D 0046, 2000,1002 ; 5033 EA, J/MUUO
D 0047, 2000,1002 ; 5034 EA, J/MUUO ;CALLI
D 0050, 2000,1002 ; 5035 EA, J/MUUO ;OPEN
D 0051, 2000,1002 ; 5036 EA, J/MUUO ;TTCALL
D 0052, 2000,1002 ; 5037 EA, J/MUUO
D 0053, 2000,1002 ; 5038 EA, J/MUUO
D 0054, 2000,1002 ; 5039 EA, J/MUUO
D 0055, 2000,1002 ; 5040 EA, J/MUUO ;RENAME
D 0056, 2000,1002 ; 5041 EA, J/MUUO ;IN
D 0057, 2000,1002 ; 5042 EA, J/MUUO ;OUT
D 0060, 2000,1002 ; 5043 EA, J/MUUO ;SETSTS
D 0061, 2000,1002 ; 5044 EA, J/MUUO ;STATO
D 0062, 2000,1002 ; 5045 EA, J/MUUO ;GETSTS
D 0063, 2000,1002 ; 5046 EA, J/MUUO ;STATZ
D 0064, 2000,1002 ; 5047 EA, J/MUUO ;INBUF
D 0065, 2000,1002 ; 5048 EA, J/MUUO ;OUTBUF
D 0066, 2000,1002 ; 5049 EA, J/MUUO ;INPUT
D 0067, 2000,1002 ; 5050 EA, J/MUUO ;OUTPUT
D 0070, 2000,1002 ; 5051 EA, J/MUUO ;CLOSE
D 0071, 2000,1002 ; 5052 EA, J/MUUO ;RELEAS
D 0072, 2000,1002 ; 5053 EA, J/MUUO ;MTAPE
D 0073, 2000,1002 ; 5054 EA, J/MUUO ;UGETF
D 0074, 2000,1002 ; 5055 EA, J/MUUO ;USETI
D 0075, 2000,1002 ; 5056 EA, J/MUUO ;USETO
D 0076, 2000,1002 ; 5057 EA, J/MUUO ;LOOKUP
D 0077, 2000,1002 ; 5058 EA, J/MUUO ;ENTER
; 5059
; 5060 ;EXPANSION OPCODES
; 5061
D 0100, 2000,1002 ; 5062 100: EA, J/UUO ;UJEN
D 0101, 2000,1002 ; 5063 EA, J/UUO
;;5064 .IFNOT/EXTEXP
;;5065 102: EA, J/UUO
;;5066 EA, J/UUO
; 5067 .ENDIF/EXTEXP
; 5068 .UCODE
; 5069
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
; 5070 ;HERE FOR UNDEFINED OPS (UUO'S) AND ILLEGAL INSTRUCTIONS
; 5071 ;E IS IN AR, OPCODE AND AC IN BRX
; 5072
; 5073 ;HERE ON LUUO'S
; 5074 ; E IN AR, INSTR IN BRX
; 5075 1005:
U 1005, 1006,0001,0000,0000,0000,0010,0000 ; 5076 L-CMS: J/LUUO ;LOC FOR HIDING STRING COMPARE
; 5077 1006:
; 5078 L-EDIT: ;HIDE EDIT HERE
;;5079 .IFNOT/XADDR
;;5080 LUUO: ARX_BRX,SC_#,#/13.,
;;5081 SKP INTRPT,CALL,J/ROTS ;COMBINE E WITH UUO
;;5082 1007: AR_SHIFT,VMA_40,STORE ;STORE OPCODE ETC AT 40
;;5083 FIN STORE,VMA_41,
;;5084 LOAD ARX,J/XCTW ;GO PERFORM 41
; 5085 .IF/XADDR
U 1006, 0340,3242,0600,0000,0000,5010,0000 ; 5086 LUUO: ARX_BRX,SKP PC SEC0,J/LUUO1 ;WHICH KIND OF UUO?
; 5087 =0***0
U 0340, 1662,4001,0000,0000,0000,5750,0000 ; 5088 LUUO1: SKP -LOCAL AC ADDR,CALL,J/UUOCOM ;EXTENDED. DO IT
; 5089 BR/AR,AR_ARX ANDC ADMSK, ;COMPATABLE. ADDR TO BR
U 0341, 1614,3510,2047,4000,0020,7010,0175 ; 5090 SKP INTRPT,J/LUUO2 ; DO IT THE OLD WAY
U 0360, 0130,4001,0000,0000,0100,3010,0420 ; 5091 VMA_#,#/420 ;PT LOC FOR LUUO BLOCK POINTER
; 5092 =
U 0130, 0736,0001,0000,0000,0013,0066,0033 ; 5093 =00 LOAD ARX,PT REF,CALL,J/XFERW ;GET LUUO BLOCK ADDRESS
U 0132, 1161,3711,0000,0000,0316,0050,0000 ; 5094 =10 VMA_ARX,STORE,CALL,J/UUOC2 ;STORE UUO OPCODE AND FLAGS
; 5095 FIN STORE,VMA_VMA+1,LOAD AR, ;NOW GET A NEW PC
U 0133, 0534,0001,0003,0000,0012,3610,0000 ; 5096 J/PCA ; [301]
; 5097
; 5098 ;HERE FOR COMPATIBLE UUO
; 5099 =0
; 5100 LUUO2: AR_AR*BR,AD/OR,VMA_#,#/40, ;SAVE OPCODE AND EA
U 1614, 1051,3302,2004,0000,0116,3010,0040 ; 5101 STORE,J/LUUO3 ;THEN GET INSTR FROM 41
U 1615, 0144,0001,0000,0000,0000,7710,0000 ; 5102 TAKE INTRPT ;ONE MOMENT, PLEASE
U 1051, 0270,0001,0003,0000,0013,3610,0000 ; 5103 LUUO3: FIN STORE,VMA_VMA+1,LOAD ARX,J/XCTW
; 5104 .ENDIF/XADDR
; 5105
; 5106 1010:
U 1010, 1006,0001,0000,0000,0000,0010,0000 ; 5107 L-DBIN: J/LUUO ;DBIN AT 2010
; 5108 1011:
U 1011, 1006,0001,0000,0000,0000,0010,0000 ; 5109 L-BDEC: J/LUUO ;BDEC AT 2011
; 5110 1012:
U 1012, 1006,0001,0000,0000,0000,0010,0000 ; 5111 L-MVS: J/LUUO ;MOVE STRING AT 2012
; 5112
; 5113 ;ROTATE SUBROUTINE
; 5114
; 5115 =0
U 1630, 0003,4001,4400,5302,0000,0003,0044 ; 5116 ROTS: AR_SHIFT,ARX_SHIFT,SC_#-SC,#/36.,RETURN3
U 1631, 0144,0001,0000,0000,0000,7710,0000 ; 5117 TAKE INTRPT
; 5118
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
; 5119 ;HERE ON MUUO'S
; 5120 ; E IN AR, OP AND AC IN BRX
;;5121 .IFNOT/XADDR
;;5122 1002: ;FIXED ADDRESS TO COOPERATE
;;5123 ;WITH EXTEND AND OTHER OPS
;;5124 UUO: ;UNDEFINED OP'S .GE. 100
;;5125 MUUO: ARX_BRX,SC_#,#/13.,
;;5126 SKP INTRPT,CALL,J/ROTS
;;5127 .IFNOT/SHIFT.MUUO
;;5128 1003: AR_SHIFT,VMA_#,#/424
;;5129 .IF/SHIFT.MUUO
;;5130 1003: AR_SHIFT,VMA_#,#/425
;;5131 .ENDIF/SHIFT.MUUO
;;5132 STORE,UPT REF ;FIRST, STORE INSTRUCTION
;;5133 FIN STORE,AR_PC+1,VMA_VMA+1,STORE ;NEXT, PC
;;5134 =100 MEM_AR,VMA_VMA+1,SC_#,#/60,
;;5135 CALL,J/GTEEB1
;;5136 DATAI PAG(L),CALL,J/PCTXT ;GET PROCESS CONTEXT VARIABLES
;;5137 =11 LD PREV CTXT ;PCS FROM PC, CWSX FROM SXCT
;;5138 AR_SHIFT,ARL_BRL.S, ;COMBINE UBR WITH AC BLKS, CWSX
;;5139 STORE, ; STORE THAT AT 426 (XADDR =427)
;;5140 COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
;;5141 MEM_AR,VMA_430+MODE ;NOW READY TO GET NEW PC
;;5142 LOAD AR,UPT REF ;FETCH NEW PC
;;5143 NEWPC: AR_MEM,SR_0,J/START ;USE IT
;;5144 .IF/MODEL.B
;;5145 SETPC: VMA_AR AND ADMSK,FETCH,J/NOP ;USE LOW AR AS ADDRESS
;;5146 .IFNOT/MODEL.B
;;5147 SETPC: PC_VMA,J/BRJMP ;LOAD PC, INCLUDING SECTION
;;5148 .ENDIF/MODEL.B
; 5149 .IF/XADDR
; 5150 1002:
; 5151 UUO: ;A PEDANTIC DISTINCTION...
; 5152 MUUO: ARX_BRX,SKP -LOCAL AC ADDR, ;PULL TOGETHER PIECES OF UUO
U 1002, 1662,3202,0600,0000,0000,5750,0000 ; 5153 CALL,J/UUOCOM
U 1022, 1056,4001,0000,0000,0100,3210,0430 ; 5154 1022: VMA_430+MODE ;GET NEW PC
U 1056, 1071,4001,0000,0000,0013,0026,0223 ; 5155 LOAD ARX,UPT REF
U 1071, 1634,3240,0003,0000,0122,3010,0424 ; 5156 ARX_MEM,VMA_#,#/424 ;LOC'N OF MUUO DATA BLOCK
; 5157 =0 BRX/ARX,STORE,UPT REF, ;STORE OPCODE, FLAGS
U 1634, 1161,4001,0020,0000,0016,0066,0223 ; 5158 CALL,J/UUOC2 ;NOW RETURN TO COMMON CODE
U 1635, 0220,3731,2003,0302,0002,0010,0004 ; 5159 MEM_AR,AR_PC,SC_#,#/4 ;READY TO SETUP NEW FLAGS
; 5160 =00 VMA_VMA+1,SC_#,#/60, ;SET UP FOR CONTEXT WORD
; 5161 SH DISP,AR_0S, ;TEST USER AND PUBLIC FLAGS
U 0220, 0072,3401,2000,0302,0040,3647,0060 ; 5162 CALL,J/MUUOF ;SET NEW PREV FLAGS, GET EBUS
; 5163 DATAI PAG(L),ARX_1B17-1, ;GO COLLECT DATAI PAG INFO
U 0221, 3101,1741,3200,0000,0060,2057,0511 ; 5164 CALL,J/PCTXT
U 0223, 1117,3733,0000,0000,0060,2010,0426 ; 5165 =11 LD PREV CTXT ;PCS FROM PC, CWSX FROM SXCT
; 5166 AR_SHIFT,ARL_BRL.S, ;COMBINE UBR WITH AC BLKS, CWSX
; 5167 STORE, ; STORE THAT AT 426 (XADDR =427)
U 1117, 1121,3202,4000,0000,0016,2222,0002 ; 5168 COND/EBUS CTL,EBUS CTL/2; & RELEASE ECL EBUS
U 1121, 1125,3242,6003,0000,0002,1610,0000 ; 5169 MEM_AR,AR_BRX,SR_0 ;NOW GET NEW PC
U 1125, 0075,3600,0007,4000,0337,0010,0175 ; 5170 SETPC: VMA_AR AND ADMSK,FETCH,J/NOP
; 5171
; 5172 =0
U 1662, 1132,4041,0000,0000,0021,0017,0002 ; 5173 UUOCOM: ARL_1.M,J/UUOC1 ;FORCE AC ADDRESS
U 1663, 1132,4001,0000,0400,3000,0022,0200 ; 5174 CLR P ;NOT AC, GET CLEAN SECT #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15-1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 UUO'S
U 1132, 1142,3510,2017,0000,1020,0010,0175 ; 5175 UUOC1: MQ_AR,AR_ARX ANDC ADMSK ;SAVE ADDR IN MQ. GET OPCODE
U 1142, 1672,4001,0040,0000,0000,6222,0030 ; 5176 BR/AR,AR_0.S,SKP USER ;SAVE OPCODE IN BR
U 1672, 1673,4001,0000,0000,2000,0210,0000 ; 5177 =0 AR12-17_PREV SEC ;GET PCS
U 1673, 1144,3302,2000,0000,0000,0010,0000 ; 5178 AR_AR*BR,AD/OR ;OPCODE/PCS COMBINED
U 1144, 1152,3530,2407,4000,3020,0010,0175 ; 5179 ARX_AR SWAP,AR_PC FLAGS ;GET FLAGS FROM PC
U 1152, 0020,4001,4000,0000,2000,0603,0000 ; 5180 ARL_ARL,AR_ARX,RETURN20 ;FLAGS AND OPCODE COMBINED
; 5181 ;GO BACK TO CALLER TO STORE
U 1161, 1172,4033,0203,0000,0022,0025,0000 ; 5182 UUOC2: MEM_AR,ARX_PC+1 ;FINISH STORE
; 5183 AR_ARX AND ADMSK, ;PC+1 ADDRESS TO AR
U 1172, 1252,3610,2307,0000,0036,3610,0175 ; 5184 VMA_VMA+1,STORE,ARX/MQ ;PUT PC AWAY, GET EFFECTIVE ADDR
; 5185 FIN STORE,AR_ARX,
U 1252, 0001,0001,4003,0000,2016,3603,0000 ; 5186 VMA_VMA+1,STORE,RETURN1 ;PUT EA AWAY.
; 5187
; 5188 =1010 ;HERE TO SETUP NEW FLAGS
U 0072, 2407,0001,0000,0000,0000,0024,0020 ; 5189 MUUOF: SET FLAGS_AR,J/GTEEB1 ;GO GET ECL EBUS
U 0073, 0072,4001,0000,0000,0000,0110,0400 ; 5190 AR0-8_#,#/400,J/MUUOF ;PREV CTXT SUPERVISOR
U 0076, 0072,4001,0000,0000,0000,0110,0004 ; 5191 AR0-8_#,#/004,J/MUUOF ; USER/CONCEALED
U 0077, 0072,0001,0000,0000,0000,0110,0404 ; 5192 AR0-8_#,#/404,J/MUUOF ; USER/PUBLIC
; 5193 .ENDIF/XADDR
; 5194
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 JSYS, ADJSP
; 5195 .TOC "JSYS, ADJSP"
;;5196 .IF/DIAG.INST
;;5197 .DCODE
;;5198 104: EA, J/DIADISP ;DIAG
;;5199 I, B/0, J/ADJSP
;;5200 .UCODE
;;5201
;;5202 ;HERE FOR DIAG INSTRUCTION
;;5203
;;5204 1001:
;;5205 DIADISP: J/DIAGINSTR
;;5206
; 5207 .IFNOT/DIAG.INST
; 5208 .DCODE
D 0104, 2000,1002 ; 5209 104: EA, J/UUO ;JSYS
D 0105, 0000,1000 ; 5210 I, B/0, J/ADJSP
; 5211 .UCODE
; 5212 .ENDIF/DIAG.INST
; 5213
; 5214 ;HERE FOR ADJSP INSTRUCTION
; 5215 ; ENTER WITH E IN AR, PREFETCH IN PROGRESS
; 5216
; 5217 1000: ;PUT ADJSP NEXT TO UUO
;;5218 .IFNOT/XADDR
;;5219 ADJSP: ARL_ARR,ARR_ARR ;PUT E IN BOTH HALVES
;;5220 AR_AR*AC0,AD/A+B,INH CRY18, ;ADJUST POINTER,
;;5221 ARX/AD,SKP AR0 ;SKIP IF NEGATIVE
; 5222 .IF/XADDR
U 1000, 1262,4061,0200,0000,3020,0610,0004 ; 5223 ADJSP: ARX_1,ARL_ARR,ARR_ARR ;MUST TEST FOR SHORT STACK
; 5224 AC0,STACK UPDATE, ;MCL SHORT STACK ENABLES CRY18
U 1262, 1724,1711,0000,0000,0040,5420,0000 ; 5225 GEN ARX-1,SKP CRY0 ; THUS CRY IFF LONG POINTER
; 5226 =0 AR_AR*AC0,AD/A+B,INH CRY18, ;ADJUST POINTER,
U 1724, 1734,0600,2200,0000,0020,4511,0000 ; 5227 ARX/AD,SKP AR0,J/ADJSP1 ;SKIP IF NEGATIVE
U 1725, 1272,5441,0000,0000,0237,0616,0002 ; 5228 ARL_SIGN,ARR_ARR,I FETCH ;LONG: SIGN EXTEND E
U 1272, 0065,0600,2000,0000,0020,0010,0000 ; 5229 AR_AR*AC0,AD/A+B,J/STAC ;DONE
; 5230 .ENDIF/XADDR
; 5231 =0
; 5232 ADJSP1: GEN AR*AC0,AD/ANDCA, ;TEST FOR - TO + CHANGE
U 1734, 1334,3000,0000,4000,0020,5510,0000 ; 5233 SKP AD0,J/STMAC
; 5234 GEN AR*AC0,AD/ANDCB, ;TEST FOR + TO - CHANGE
U 1735, 1334,3500,0000,4000,0020,5510,0000 ; 5235 SKP AD0,J/STMAC
; 5236
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 XCT, PXCT, SXCT
; 5237 .TOC "XCT, PXCT, SXCT"
; 5238 ;HERE FOR EXTENDED ADDRESSING INSTRUCTIONS
; 5239
; 5240 =0
U 1762, 1774,0001,0000,0000,0000,6210,0000 ; 5241 XCT1: SKP USER,J/PXCT ;HERE ON XCT, NO INTERRUPT
U 1763, 0144,0001,0000,0000,0000,7710,0000 ; 5242 TAKE INTRPT ;GET OUT OF LONG XCT CHAIN
; 5243 =0
U 1774, 1775,0001,0000,0000,0000,1510,0020 ; 5244 PXCT: SET PXCT ;SETUP PXCT CONTROLS FROM 9-12
U 1775, 0152,3703,0200,0000,0000,1410,0000 ; 5245 UXCT: ARX_AR (AD),LOAD IR,#/0,J/XCTGO ;COPY INSTR TO ARX, IR
; 5246
; 5247 .DCODE
; 5248 .IFNOT/SXCT
;;5249 .IF/DIAG.INST
;;5250 106: R, J/DIAGXCT ;DIAG MODEL B SXCT = XCT
;;5251 EA, J/XCTUUO
;;5252 .UCODE
;;5253 ;UNSUPPORTED FEATURE
;;5254 ;SEPERATE FROM XCT BECAUSE OF DRAM CONSTRAINTS
;;5255 =0****00***0
;;5256 DIAGXCT: SKP INTRPT,J/XCT1 ;CHECK FOR XCT . LOOP
;;5257 XCTUUO: J/UUO ;INST PAIR FOR XCT
;;5258 =
; 5259 .IFNOT/DIAG.INST
;;5260 .IFNOT/EXTEXP
;;5261 .IFNOT/PUSHM
;;5262 106: EA, J/UUO
;;5263 EA, J/UUO
;;5264 .UCODE
;;5265 .IF/PUSHM
;;5266 106: R, J/PUSHM ;PUSH MULTIPLE
;;5267 107: EA, J/POPM ;POP MULTIPLE
;;5268 .UCODE
;;5269 .ENDIF/PUSHM
; 5270 .ENDIF/EXTEXP
; 5271 .ENDIF/DIAG.INST
; 5272
;;5273 .IF/SXCT ;NOTE: THE SXCT INSTRUCTION IS A TEMPORARY MECHANISM
;;5274 106: R, J/SXCT ;INTENDED FOR DIAGNOSTICS ONLY
;;5275 EA, J/UUO107
;;5276 .UCODE
;;5277
;;5278 1014: ;PUT NEXT TO UUO107
;;5279 SXCT: SKP KERNEL,CALL,J/IOCHK ;LEGAL IN KERNEL MODE ONLY
;;5280 1015: BR/AR,ARX_AR,AR_AC0, ;SHUFFLE INSTR TO GET BASE REG
;;5281 SET SXCT ;SETUP HARDWARE FLAGS
;;5282 SKP AC#0 ;CHOOSE LOOP FOR EA CALC
;;5283 =0 BR/AR,AR_BR,LOAD IR, ;AC0 IS BASE INDEX
;;5284 BRX/ARX,ARL_0.M,
;;5285 EA MOD DISP,J/SXCTB
;;5286 AR_BR,LOAD IR,ARL_0.M, ;GET EXT ADDR FROM XR OR INDRCT
;;5287 BRX/ARX,J/XIND2
;;5288 =00
;;5289 PXLOOP: GEN AR,A READ ;GO DO INSTR
;;5290 AR_AR+XR,A READ
;;5291 GEN AR,A INDRCT,SKP INTRPT,J/XIND1
;;5292 GEN AR+XR,A INDRCT,SKP INTRPT
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17-1
; SKPJMP.MIC[10,5351] 21:45 19-Sep-83 XCT, PXCT, SXCT
;;5293
;;5294 =0
;;5295 XIND1: AR_MEM,ARX_MEM,EA TYPE DISP,J/XIND2
;;5296 MB WAIT,TAKE INTRPT
;;5297 =00
;;5298 XIND2: EA MOD DISP,J/PXLOOP ;CURRENT OR PREV WITHOUT CWSX
;;5299 AR_ARX (AD),A READ ;PREV AND CWSX
;;5300 AR_ARX (AD),A READ ;SXCT 0,
;;5301 EA MOD DISP,J/SXCTB ;SXCT B,
;;5302
;;5303 =00
;;5304 SXCTB: AR_AR+BR,A READ ;GO
;;5305 AR_AR+XR,ARL_0.C,J/SXCTB ;NO MORE INDIRECTS
;;5306 GEN AR,A INDRCT, ;FOLLOW INDRCT POINTER
;;5307 SKP INTRPT,J/XIND1
;;5308 GEN AR+XR,A INDRCT,
;;5309 SKP INTRPT,J/XIND1
; 5310 .ENDIF/SXCT
; 5311
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; SHIFT.MIC[10,5351] 16:00 16-Mar-78 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 5312 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO"
; 5313
; 5314 .DCODE
D 0240, 0001,1316 ; 5315 240: I, B/0, J/ASH
D 0241, 0000,1317 ; 5316 I, B/0, J/ROT
D 0242, 0201,1314 ; 5317 I, B/2, J/LSH
D 0243, 0001,1315 ; 5318 I, J/JFFO
D 0244, 0100,1400 ; 5319 I, B/1, J/ASHC
D 0245, 0000,1401 ; 5320 I, J/ROTC
D 0246, 0001,1004 ; 5321 I, J/LSHC
D 0247, 2000,1002 ; 5322 EA, J/UUO
; 5323 .UCODE
; 5324
; 5325 ;ENTER WITH 0,E IN AR
; 5326 ; NOTE THAT VALUES OF SC GREATER THAN 36
; 5327 ; CAUSE THE SHIFTER TO SELECT ARX.
; 5328
; 5329 =0****00***0
; 5330 LSH: AR_AC0,ARL/AD,ARX_0.M,SC_EA,
U 1314, 0230,3200,2000,0002,0021,4413,0042 ; 5331 SKP AR18,J/SHR1
; 5332
U 1315, 2000,3240,2000,0302,0020,5610,0006 ; 5333 JFFO: AR_AC0,SKP AD NE,SC_#,#/6
; 5334 =
U 2000, 0075,4001,0001,0000,0217,1010,0000 ; 5335 =0 AC1_AR,I FETCH,J/NOP ;AC WAS ZERO, NO JUMP
; 5336 ARX+MQ_0.M,FE_P,SKP SCAD NE, ;TEST FIRST 6 BITS
U 2001, 2004,0001,4000,0101,0021,5210,0144 ; 5337 AR_SHIFT,ARL/SH ;DISCARD THEM
; 5338 =0
; 5339 JFFO1: AR_SHIFT,FE_P,SKP SCAD NE, ;TEST NEXT 6 BITS
U 2004, 2004,1701,4600,0101,0020,5210,0000 ; 5340 ARX_ARX-1,J/JFFO1 ;LOOP, COUNTING, TILL NE
; 5341 P_FE,ARR_0.S, ;RESTORE 6 NON-ZERO BITS
U 2005, 2010,5123,0500,0000,3020,0022,0210 ; 5342 ARX_ARX*-6 ;GET POS GROUP COUNT*6
; 5343 =0
; 5344 JFFO2: SKP AR0,AR_2(AR+1), ;LOOP TO FIND A 1
U 2010, 2010,4001,5600,0000,0040,4510,0000 ; 5345 ARX_ARX+1,J/JFFO2 ;COUNTING AS WE GO
U 2011, 1656,1721,6000,0000,0037,0010,0000 ; 5346 AR_ARX-1,FETCH,J/STRAC1
; 5347
; 5348 =0****00***0
; 5349 ASH: SC_EA,SKP AR18, ;GET SHIFT AMOUNT
U 1316, 2044,3441,2000,0002,0000,4413,0000 ; 5350 AR_0S,J/ASHL ;SET LOW PART = 0
U 1317, 0230,3200,2200,0002,0040,4413,0000 ; 5351 ROT: AR_AC0,ARX_AC0,SC_EA,SKP AR18
; 5352 =
; 5353 ;SINGLE-WORD LSH/ROT
; 5354 ; FOR ROT, B=0, AR AND ARX BOTH CONTAIN AC
; 5355 ; FOR LSH, B=2, AR HAS AC, ARX IS ZERO
; 5356
; 5357 =00
; 5358 SHR1: AR_SHIFT,SC_#+SC,#/-36., ;DO POS (LEFT) SHIFT, CHK RANGE
U 0230, 0232,0001,4000,2302,0020,5110,0734 ; 5359 SKP SCAD0,J/SHR2
; 5360 ARX_AR (AD),AR_ARX (ADX),
; 5361 SC_#+SC,#/36.,
U 0231, 0230,3703,6200,2302,0020,5133,0044 ; 5362 B DISP,SKP SCAD0,J/SHR1 ;MAKE NEG SHIFT TO EQUIV POS
; 5363 SHR2: AR_SHIFT,SC_#+SC,#/-36.,
U 0232, 0232,0001,4000,2302,0020,5110,0734 ; 5364 SKP SCAD0,J/SHR2 ;BRING SC INTO RANGE
U 0233, 0075,0001,0000,0000,0217,1010,0000 ; 5365 AC0_AR,I FETCH,J/NOP ;DONE
; 5366
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; SHIFT.MIC[10,5351] 16:00 16-Mar-78 ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 5367 .TOC "ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC"
; 5368
; 5369 =0****00***0
; 5370 ASHC: SC_EA,SKP AR18, ;SETUP SHIFT COUNT
U 1400, 2044,3240,5001,0002,0020,4413,0000 ; 5371 AR_AC1*2,J/ASHL ;GET LOW WORD
U 1401, 1324,3240,0201,0000,0020,0010,0000 ; 5372 ROTC: ARX_AC1
U 1324, 2012,3240,2000,0002,0020,4413,0000 ; 5373 = AR_AC0,SC_EA,SKP AR18 ;SETUP BOTH AC'S
; 5374 =0
; 5375 ROT3: MQ_SHIFT,ARX_AR (AD),
U 2012, 1332,3701,6210,0000,0000,0010,0000 ; 5376 AR_ARX (ADX),J/ROT4
; 5377 ARX_AR (AD),AR_ARX (ADX),
U 2013, 2012,3701,6200,2302,0020,5110,0044 ; 5378 SC_#+SC,#/36.,SKP SCAD0,J/ROT3
; 5379
; 5380 ROT4: AR_MQ,ARX_SHIFT,
U 1332, 2022,3721,2400,2302,0020,5110,0734 ; 5381 SC_#+SC,#/-36.,SKP SCAD0
; 5382 =0 MQ_SHIFT,ARX_AR (AD),
U 2022, 1332,3701,6210,0000,0000,0010,0000 ; 5383 AR_ARX (ADX),J/ROT4
U 2023, 1656,0001,4000,0000,2217,1010,0000 ; 5384 STDAC: AC0_AR,AR_ARX,I FETCH,J/STRAC1
; 5385
; 5386
; 5387 1004: ;NEXT TO UUO
U 1004, 1336,3240,0201,0000,0021,0010,0100 ; 5388 LSHC: ARX_AC1,MQ_0.M
U 1336, 2040,3240,2000,0303,0020,4413,0044 ; 5389 LSH1: AR_AC0,SC_EA,FE_#,#/36.,SKP AR18
; 5390 =0
; 5391 LSH2: MQ_SHIFT,AR_ARX (ADX),
U 2040, 1342,3721,6310,0301,0000,0010,0734 ; 5392 ARX/MQ,FE_#,#/-36.,J/LSH3
; 5393 ARX_AR (AD),AR_0.M,MQ_ARX,
U 2041, 2040,3701,0210,2002,2021,5110,0030 ; 5394 SC_FE+SC,SKP SCAD0,J/LSH2
; 5395
; 5396 LSH3: AR_MQ,ARL/AD,ARX_SHIFT,MQ_0.M,
U 1342, 2042,3723,2400,2002,0021,5110,0102 ; 5397 SC_FE+SC,SKP SCAD0
U 2042, 1342,3701,6310,0000,0000,0010,0000 ; 5398 =0 MQ_SHIFT,AR_ARX (ADX),ARX/MQ,J/LSH3
U 2043, 1656,0001,4000,0000,2217,1010,0000 ; 5399 AC0_AR,AR_ARX,I FETCH,J/STRAC1
; 5400
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; SHIFT.MIC[10,5351] 16:00 16-Mar-78 ARITHMETIC SHIFTS -- ASH, ASHC
; 5401 .TOC "ARITHMETIC SHIFTS -- ASH, ASHC"
; 5402
; 5403 ;COMMON CODE FOR ARITHMETIC SHIFTS
; 5404
; 5405 =0
; 5406 ASHL: ARX_AR,AR_AC0, ;INPUT NOW IN AR LONG
U 2044, 2052,3200,2400,2400,1040,5210,0000 ; 5407 SKP SC NE,J/ASHL1 ;CHECK FOR NULL SHIFT
; 5408 ARX_AR,AR_AC0, ;HERE IF RIGHT SHIFT
U 2045, 2050,3240,2400,2302,1040,5110,0044 ; 5409 SC_#+SC,#/36.,SKP SCAD0 ;CHECK FOR LONG ONE
; 5410 =0
U 2050, 1353,5441,2440,0000,0020,0016,0000 ; 5411 ASHR1: BR/AR,ARX_SHIFT,AR_SIGN,J/ASHR2 ;LOW OUTPUT TO ARX
; 5412 ARX_AR,AR_SIGN, ;HERE IF SHIFT COUNT .GT. 36
; 5413 SC_#+SC,#/36., ;BRING COUNT UP BY 36
U 2051, 2050,5401,2400,2302,1020,5116,0044 ; 5414 SKP SCAD0,J/ASHR1 ;LOOP TILL COUNT REASONABLE
; 5415
; 5416 ASHR2: BRX/ARX,ARX_BR, ;HIGH INPUT TO ARX
U 1353, 2070,3242,0220,0000,0000,0033,0000 ; 5417 B DISP,J/ASHX
; 5418
; 5419 ;HERE FOR LEFT ARITHMETIC SHIFT
; 5420
; 5421 =0
U 2052, 0075,4001,0000,0000,0217,0010,0000 ; 5422 ASHL1: I FETCH,J/NOP ;SHIFT 0 IS A NOP
U 2053, 1354,5401,2060,0000,0020,0016,0000 ; 5423 BR_AR LONG,AR_SIGN ;SAVE INPUT, GEN SIGN WORD
U 1354, 0134,3201,2640,0000,0000,0010,0000 ; 5424 BR/AR,AR_BR*2 LONG ;SAVE SIGN, GET MAGNITUDE BITS
; 5425 =0*
; 5426 ASHL2: BRX/ARX,ARX_AR,AR_BR, ;HI IN TO ARX, LOW TO BRX
U 0134, 2264,3202,2420,0000,1000,0050,0000 ; 5427 CALL,J/SHIFT ;CALL SHIFTER TO GET BITS LOST
U 0136, 2054,3102,0004,0000,0020,5610,0000 ; 5428 SKP AR NE BR ;ANY BITS DIFFERENT FROM SIGN?
; 5429 =0
; 5430 ASHL3: AR_ARX,ARX_BRX, ;RESTORE HI TO AR, LOW TO ARX
U 2054, 2060,3202,4600,2300,2020,5110,0734 ; 5431 GEN #+SC,#/-36.,SKP SCAD0,J/ASHL4
U 2055, 2054,4001,0000,0000,0000,1110,0420 ; 5432 SET AROV,J/ASHL3 ;BITS SHIFTED OUT NE SIGN
; 5433 =0
; 5434 ASHL4: AR_ARX,ARX_0S, ;HERE IF E .GT. 36
U 2060, 0134,3441,4200,2302,2000,0010,0734 ; 5435 SC_#+SC,#/-36.,J/ASHL2 ;SHIFT 36 PLACES, TRY AGAIN
; 5436 MQ_SHIFT,AR_BRX,CLR ARX, ;HIGH OUTPUT TO MQ,
U 2061, 2064,3242,6010,2302,0000,0533,0777 ; 5437 SC_#+SC,#/-1,B DISP ;COMPENSATE FOR EXTRA SHIFT
; 5438 =0
; 5439 ASHL5: AR_BR,BRX/ARX,ARX/MQ, ;SIGN TO AR, HIGH OUT TO ARX
; 5440 SC_#,#/35., ;READY TO COMBINE THEM
U 2064, 2070,3242,2320,0302,0000,0033,0043 ; 5441 B DISP,J/ASHX ;STORE AS APPROPRIATE
U 2065, 2064,0001,0400,0000,0000,0010,0000 ; 5442 ARX_SHIFT,J/ASHL5 ;LOW OUTPUT TO ARX
; 5443
; 5444 ;HERE TO GET FINAL RESULTS.
; 5445
; 5446 =0
U 2070, 0074,4001,4000,0000,0217,0010,0000 ; 5447 ASHX: AR_SHIFT,I FETCH,J/STORAC ;HERE AFTER ASH
; 5448 AR_SHIFT,ARX_BRX, ;HERE AFTER ASHC
U 2071, 0061,3202,4600,0302,0000,0010,0043 ; 5449 SC_#,#/35.,J/ST2AC
; 5450
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; ARITH.MIC[10,5351] 19:59 21-Jun-83 ADD, SUB
; 5451 .TOC "ADD, SUB"
; 5452
; 5453 .DCODE
D 0270, 5500,1517 ; 5454 270: R-PF, AC, J/ADD
D 0271, 1501,1517 ; 5455 I-PF, AC, J/ADD
D 0272, 7601,1517 ; 5456 RPW, M, J/ADD
D 0273, 7700,1517 ; 5457 RPW, B, J/ADD
; 5458 .UCODE
; 5459
; 5460 =0****00****
U 1517, 0060,0600,2000,0000,0025,1333,0000 ; 5461 ADD: AR_AR*AC0,AD/A+B,AD FLAGS,EXIT
; 5462 =
; 5463
; 5464
; 5465 .DCODE
D 0274, 5500,1600 ; 5466 274: R-PF, AC, J/SUB
D 0275, 1501,1600 ; 5467 I-PF, AC, J/SUB
D 0276, 7601,1600 ; 5468 RPW, M, J/SUB
D 0277, 7700,1600 ; 5469 RPW, B, J/SUB
; 5470 .UCODE
; 5471
; 5472 =0****00****
U 1600, 1372,3240,2040,0000,0020,0010,0000 ; 5473 SUB: AR_AC0,BR/AR
U 1372, 0060,5102,2000,0000,0025,1333,0000 ; 5474 = AR_AR-BR,AD FLAGS,EXIT
; 5475
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; ARITH.MIC[10,5351] 19:59 21-Jun-83 MUL, IMUL
; 5476 .TOC "MUL, IMUL"
; 5477
; 5478 .DCODE
D 0220, 4501,0112 ; 5479 220: R, AC, J/IMUL
D 0221, 0500,0112 ; 5480 I, AC, J/IMULI
D 0222, 6600,0112 ; 5481 RW, M, J/IMUL
D 0223, 6701,0112 ; 5482 RW, B, J/IMUL
; 5483 .UCODE
; 5484
; 5485 .IFNOT/IMULI.OPT
; 5486 =0****00*01*
; 5487 IMULI:
;;5488 .IF/IMULI.OPT
;;5489 =0****00*000
;;5490 IMULI: SKP AR18,GEN AC0,SIGNS DISP, ;OPTIMIZE SPECIAL CASE
;;5491 TIME/3T,SC_#,#/17.
;;5492 =010 MQ_AR,AR_AC0, ;HERE FOR IMULI OF + BY +
;;5493 CLR ARX,FE_#,#/-9., ; 9 STEPS WILL DO
;;5494 CALL,J/MULSUB
; 5495 .ENDIF/IMULI.OPT
; 5496 IMUL: MQ_AR,AR_AC0, ;M'IER TO MQ, M'CAND TO AR
; 5497 CLR ARX,FE_#,#/-18.,
U 0112, 1431,3240,2010,0301,1020,0550,0756 ; 5498 CALL,J/MULSUB ;CALL MULTIPLY SUBROUTINE
;;5499 .IF/IMULI.OPT
;;5500 =110 AR_SHIFT,SKP AR NE,INH CRY18, ;HERE FROM IMULI
;;5501 I FETCH,J/MUL1 ; AFTER SHORT MULTIPLY
; 5502 .ENDIF/IMULI.OPT
U 0116, 2072,0003,0000,0302,0040,5616,0043 ; 5503 SC_#,#/35.,SKP AR SIG ;CHECK OVERFLOW AND STORE
; 5504 =
; 5505 =0
U 2072, 0066,4001,4000,0000,0005,0033,0000 ; 5506 IMUL2: AR_SHIFT,B WRITE,J/ST6 ;STORE LOW WORD OF PRODUCT
U 2073, 2072,5441,2000,0000,0020,1116,0420 ; 5507 SET AROV,AR_SIGN,J/IMUL2 ;NOTE OVERFLOW...
; 5508
; 5509
; 5510 .DCODE
D 0224, 4100,0200 ; 5511 224: R, DBL AC, J/MUL
D 0225, 0101,0200 ; 5512 I, DBL AC, J/MUL
D 0226, 6600,0200 ; 5513 RW, M, J/MUL
D 0227, 6201,0200 ; 5514 RW, DBL B, J/MUL
; 5515 .UCODE
; 5516
; 5517 =0****00*000
; 5518 MUL: MQ_AR,CLR ARX, ;MULTIPLIER TO MQ
; 5519 AR_AC0,FE_#,#/-18., ;SETUP MULTIPLICAND AND STEP CNT
U 0200, 1431,3240,2010,0301,1020,0550,0756 ; 5520 CALL,J/MULSUB ;AND GO TO SUBROUTINE
U 0204, 0206,3602,0004,0000,0020,5510,0000 ; 5521 =100 GEN AR*BR,AD/AND,SKP AD0 ;M'IER NEG, CHECK M'CAND & PROD TOO
; 5522 =110
U 0206, 0060,0001,0000,0302,0005,0033,0043 ; 5523 MUL1: SC_#,#/35.,EXIT ;STORE DOUBLE RESULT
U 0207, 0206,0001,0000,0000,0000,1110,0420 ; 5524 SET AROV,J/MUL1 ;MUST HAVE SQUARED 400000,,0
; 5525 =
; 5526
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; ARITH.MIC[10,5351] 19:59 21-Jun-83 MULTIPLY SUBROUTINE
; 5527 .TOC "MULTIPLY SUBROUTINE"
; 5528 ; ENTER WITH MULTIPLIER IN MQ,
; 5529 ; MULTIPLICAND IN AR!ARX, MINUS STEP COUNT IN FE
; 5530 ; RETURNS PRODUCT IN AR!ARX!MQ.
; 5531 ; RETURN 4, 6 TELLS SIGN OF MULTIPLIER
; 5532 ; 4 AND 6 ARE USED SO CALLER CAN IGNORE
; 5533 ; DIFFERENCE BY ALIGNMENT OF CALL LOC'N
; 5534 ;[TIME=4+2(-FE)+(# OF ARITH STEPS)] ... IF FE=-18, 40-58.
; 5535 ;
; 5536 ;Recall:
; 5537 ; MUL "FE_FE+1,DISP/MUL,MQ/MQ*.25"
; 5538 ;
; 5539
; 5540 MULSUB: BR_AR LONG,AR_0S,ARX_0S, ;M'CAND TO BR LONG, CLEAR PROD
U 1431, 0260,3441,2270,4001,0000,0030,0000 ; 5541 MUL,J/MULP ;START THE MULTIPLICATION
; 5542 =000 ;GRAB AN 8-WORD BLOCK
; 5543 MULP:
; 5544 .IF/MODEL.B
U 0260, 0006,3701,5500,2401,0000,0703,0001 ; 5545 (AR+ARX+MQ)*2,FE_SC,RETURN6 ;XADDR MACHINE HAS
U 0261, 0006,3701,5500,2401,0000,0703,0001 ; 5546 (AR+ARX+MQ)*2,FE_SC,RETURN6 ; NO "CRA MUL DONE"
U 0262, 0006,3701,5500,2401,0000,0703,0001 ; 5547 (AR+ARX+MQ)*2,FE_SC,RETURN6
; 5548 .ENDIF/MODEL.B
U 0263, 0006,3701,5500,2401,0000,0703,0001 ; 5549 =011 (AR+ARX+MQ)*2,FE_SC,RETURN6 ;DISCARD REDUNDANT SIGN BIT
; 5550
U 0264, 0260,3703,7710,4001,0000,0030,0000 ; 5551 =100 AR_AR*.25 LONG,MUL,J/MULP ;M'IER BITS 00 AFTER POS STEP
; 5552 AR_(AR+BR)*.25,ARX/ADX*.25, ;01 AFTER +
U 0265, 0260,0602,7714,4001,0020,0030,0000 ; 5553 MUL,J/MULP
; 5554 AR_(AR-2BR)*.25,ARX/ADX*.25, ;10 AFTER +
U 0266, 0320,5101,7710,4001,0020,0030,0000 ; 5555 MUL,J/MULM
; 5556 AR_(AR-BR)*.25,ARX/ADX*.25,
U 0267, 0320,5102,7710,4001,0020,0030,0000 ; 5557 MUL,J/MULM ;11 AFTER +
; 5558
; 5559 =000 ;ANOTHER 8-WORD BLOCK FOR
; 5560 MULM: ; AFTER SUBTRACTION STEPS
; 5561 .IF/MODEL.B
U 0320, 0004,3703,5500,2401,0000,0703,0001 ; 5562 (AR+ARX+MQ)*2,FE_SC,RETURN4
U 0321, 0004,3703,5500,2401,0000,0703,0001 ; 5563 (AR+ARX+MQ)*2,FE_SC,RETURN4
U 0322, 0004,3703,5500,2401,0000,0703,0001 ; 5564 (AR+ARX+MQ)*2,FE_SC,RETURN4
; 5565 .ENDIF/MODEL.B
U 0323, 0004,3703,5500,2401,0000,0703,0001 ; 5566 =011 (AR+ARX+MQ)*2,FE_SC,RETURN4 ;M'IER WAS NEGATIVE
; 5567
; 5568 =100 AR_(AR+BR)*.25,ARX/ADX*.25, ;M'IER BITS 00 AFTER NEG STEP
U 0324, 0260,0602,7714,4001,0020,0030,0000 ; 5569 MUL,J/MULP
; 5570 AR_(AR+2BR)*.25,ARX/ADX*.25, ;01 AFTER -
U 0325, 0260,0601,7714,4001,0020,0030,0000 ; 5571 MUL,J/MULP
; 5572 AR_(AR-BR)*.25,ARX/ADX*.25, ;10 AFTER -
U 0326, 0320,5102,7710,4001,0020,0030,0000 ; 5573 MUL,J/MULM
U 0327, 0320,3703,7710,4001,0000,0030,0000 ; 5574 AR_AR*.25 LONG,MUL,J/MULM ;11 AFTER -
; 5575
; 5576 ;HERE TO CONTINUE A LONG MULTIPLICATION
; 5577 ; WITH PARTIAL PRODUCT IN AR LONG
; 5578
U 1442, 0260,3441,0010,4001,0000,0030,0000 ; 5579 MULREE: AD/0S,MUL,J/MULP ;DIVE IN WITHOUT CLOBBERING AR
; 5580
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; ARITH.MIC[10,5351] 19:59 21-Jun-83 DIV, IDIV
; 5581 .TOC "DIV, IDIV"
; 5582
; 5583 .DCODE
D 0230, 4100,0211 ; 5584 230: R, DBL AC, J/IDIV
D 0231, 0101,0211 ; 5585 I, DBL AC, J/IDIV
D 0232, 6600,0211 ; 5586 RW, M, J/IDIV
D 0233, 6201,0211 ; 5587 RW, DBL B, J/IDIV
; 5588
D 0234, 4101,0210 ; 5589 234: R, DBL AC, J/DIV
D 0235, 0100,0210 ; 5590 I, DBL AC, J/DIV
D 0236, 6601,0210 ; 5591 RW, M, J/DIV
D 0237, 6200,0210 ; 5592 RW, DBL B, J/DIV
; 5593 .UCODE
; 5594
; 5595 =0****00*000
; 5596 DIV: BR/AR,ARX+MQ_0.M, ;DIVISOR TO BR
; 5597 AR_AC1*2,ARL/AD*2, ;LOW DIVIDEND TO AR
U 0210, 1461,3240,5041,0000,0021,0050,0145 ; 5598 CALL.M,J/DIV1 ;GET HIGH DIVIDEND
; 5599 .IF/MODEL.B
U 0211, 1452,4061,2040,0000,0020,0010,0000 ; 5600 IDIV: BR/AR, AR_1, J/IDIV2 ;[236]
; 5601 IDIV1: BR/AR,ARX+MQ_0.M,SC_1, ;DIVISOR TO BR
; 5602 AR_AC0,ARL/AD,CALL.M, ;DIVIDEND TO AR
U 0212, 2106,3240,2040,4402,0021,4550,0142 ; 5603 SKP AR0,J/DIV2 ;TEST DIVISOR SIGN
;;5604 .IFNOT/MODEL.B
;;5605 =10
;;5606 IDIV: BR/AR,ARX+MQ_0.M,SC_1, ;DIVISOR TO BR
;;5607 AR_AC0,ARL/AD,CALL.M, ;DIVIDEND TO AR
;;5608 SKP AR0,J/DIV2 ;TEST DIVISOR SIGN
; 5609 .ENDIF/MODEL.B
; 5610 =011
U 0213, 0075,4001,0000,0000,0000,1110,0424 ; 5611 NODIVD: SET NO DIVIDE,J/NOP ;HERE IF DIVIDE IMPOSSIBLE
; 5612
; 5613 =110 ARX_AR,AR_-BRX, ;REMAIN TO ARX, GET CORRECT QUOTIENT
U 0216, 0060,5142,6400,0302,1025,0033,0044 ; 5614 SC_#,#/36.,EXIT
; 5615 ARX_AR,AR_BRX, ;HERE FOR POS QUOTIENT
U 0217, 0060,3202,6400,0302,1005,0033,0044 ; 5616 SC_#,#/36.,EXIT
; 5617 =
; 5618 .IF/MODEL.B
U 1452, 2074,5102,0000,0000,0040,5610,0000 ; 5619 IDIV2: GEN AR-BR, SKP AD NE ;[236] IS DIVISOR = 1?
; 5620 =0 AR_AC0, CLR ARX, SC_#, #/36., ;[236] YES, ANSWER IS AC0.
U 2074, 0060,3240,2000,0302,0025,0533,0044 ; 5621 EXIT ;[236]
U 2075, 0212,3202,2000,0000,0000,0010,0000 ; 5622 AR_BR, J/IDIV1 ;
; 5623 .ENDIF/MODEL.B
; 5624 ;HERE ON DIVIDE TO SET UP DIVIDEND
; 5625
; 5626 DIV1: BRX/ARX,ARX_AR,AR_AC0, ;CLR BRX, DIVIDEND IN AR LONG
; 5627 FE_#,#/33.,TIME/3T, ;SETUP ITERATION COUNT
U 1461, 0234,3240,2420,0301,1020,0032,0041 ; 5628 SIGNS DISP,J/DIVS1 ;ENTER SUBR
; 5629
; 5630 ;HERE ON IDIV TO SET UP DIVIDEND. SKIP IF DIVISOR NEG
; 5631 ; ALSO CALLED BY ADJBP
; 5632 =0
; 5633 DIV2: BRX/ARX,ARX_SHIFT,AR_SIGN, ;CLR BRX, DIVIDEND TO AR LONG
; 5634 FE_#,#/33., ;SETUP LOOP COUNT
U 2106, 0234,5401,2420,0301,0020,4516,0041 ; 5635 SKP AR0,J/DIVS1 ;ENTER SUBR ACCORDING TO SIGNS
; 5636 BRX/ARX,ARX_SHIFT,AR_SIGN, ;CLR BRX, DIVIDEND TO AR LONG
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-1
; ARITH.MIC[10,5351] 19:59 21-Jun-83 DIV, IDIV
; 5637 FE_#,#/33., ;SETUP LOOP COUNT
U 2107, 0236,5441,2420,0301,0020,4516,0041 ; 5638 SKP AR0,J/DIVS2 ;ENTER SUBR ACCORDING TO SIGNS
; 5639
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; ARITH.MIC[10,5351] 19:59 21-Jun-83 INTEGER DIVIDE SUBROUTINE
; 5640 .TOC "INTEGER DIVIDE SUBROUTINE"
; 5641 ; ENTER WITH SIGNS DISPATCH OF DIVISOR AND DIVIDEND,
; 5642 ; DIVISOR IN BR, BRX CLR; DIVIDEND IN AR!ARX
; 5643 ; STEP COUNT IN FE (# OF QUOTIENT BITS -2)
; 5644 ; IF NO DIVIDE, RETURN 3 WITH IFETCH STARTED
; 5645 ; OTHERWISE, RETURN WITH SIGNED REMAINDER IN AR,
; 5646 ; POSITIVE QUOTIENT IN BRX AND MQ.
; 5647 ; RETURN 6 IF QUOTIENT SHOULD BE NEGATIVE,
; 5648 ; RETURN 7 IF QUOTIENT SHOULD BE POSITIVE.
; 5649 ;[TIME=14+3(FE)+3(D'END NEG)+3(RESTORE REQ'D)+1(REMAINDER NEG)]
; 5650 ; ... IF FE=33, 113-120
; 5651 ;
; 5652 ;Recall:
; 5653 ; DIVIDE "FE_FE-1,DISP/DIV,MQ/MQ*2"
; 5654 ;
; 5655 =1100
; 5656 DIVS1: DIVIDE,AR_2(AR-BR),
U 0234, 0342,5102,5500,3001,0020,0031,0000 ; 5657 ARX/ADX*2,J/DIVS3 ;BOTH D'END AND D'SOR POS
U 0235, 0234,5143,7700,0000,0020,0027,0000 ; 5658 AR_-AR LONG,J/DIVS1 ;MAKE POS DIVIDEND, THEN CHK
; 5659 DIVS2: DIVIDE,AR_2(AR+BR),
U 0236, 0362,0602,5500,3001,0020,0031,0000 ; 5660 ARX/ADX*2,J/DIVS4 ;D'END POS, D'SOR NEG
U 0237, 0236,5163,7700,0000,0020,0027,0000 ; 5661 AR_-AR LONG,J/DIVS2
; 5662
; 5663 =010
; 5664 DIVS3: DIVIDE,AR_2(AR+BR),ARX/ADX*2,
U 0342, 0520,0602,5504,3001,0020,0071,0005 ; 5665 ARL/AD*2,CALL.M,J/DIVLP ;START DIVIDING
U 0343, 0003,4001,0000,0000,0217,0003,0000 ; 5666 I FETCH,RETURN3 ;RETURN TO CALLER WITH NO DIVIDE
; 5667
U 0346, 0006,5162,2020,0000,0020,0003,0000 ; 5668 AR_-BR,BRX/ARX,RETURN6 ;D'END NEG, SO NEGATE QUO & REM
U 0347, 0007,0001,0020,0000,0000,0003,0000 ; 5669 BRX/ARX,RETURN7 ;EVERYTHING POSITIVE
; 5670
; 5671
; 5672 =010
; 5673 DIVS4: DIVIDE,AR_2(AR-BR),ARX/ADX*2,
U 0362, 0520,5102,5500,3001,0020,0071,0005 ; 5674 ARL/AD*2,CALL.M,J/DIVLP ;BEGIN DIVISION FOR REAL BITS
U 0363, 0003,4001,0000,0000,0217,0003,0000 ; 5675 I FETCH,RETURN3 ;ABORT FOR IMPOSSIBLE DIVISION
; 5676
U 0366, 0006,4001,0020,0000,0000,0003,0000 ; 5677 BRX/ARX,RETURN6 ;NEGATE QUO
U 0367, 0007,5142,2020,0000,0020,0003,0000 ; 5678 AR_-BR,BRX/ARX,RETURN7 ;NEGATE REM
; 5679
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; ARITH.MIC[10,5351] 19:59 21-Jun-83 BASIC DIVIDE LOOP
; 5680 .TOC "BASIC DIVIDE LOOP"
; 5681 ; THE LOOP ITSELF IS AN INNER SUBROUTINE, TO MAKE IT SUITABLE
; 5682 ; FOR USE IN DOUBLE-LENGTH DIVISION.
; 5683 ; THE DOUBLE LENGTH REMAINDER IS RETURNED IN BR!BRX (RESTORED)
; 5684 ; THE SINGLE LENGTH QUOTIENT (LOW PART IF DBL-LEN DIVISION) IN ARX
; 5685 ; RETURN 6 IF QUOTIENT (REALLY AC0.XOR.BR) NEGATIVE, OR 7 IF POSITIVE
; 5686 ;[TIME=12+3(FE)+3(RESTORE REQ'D)] ... IF FE=33, 111-114.
; 5687
; 5688 =000
U 0520, 0520,0602,5500,3001,0020,0031,0000 ; 5689 DIVLP: DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0521, 0520,5102,5504,3001,0020,0031,0000 ; 5690 DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0522, 0520,5102,5504,3001,0020,0031,0000 ; 5691 DIV-: DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
U 0523, 0520,0602,5500,3001,0020,0031,0000 ; 5692 DIV+: DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/DIVLP
U 0524, 0564,0602,2604,3001,0020,0031,0000 ; 5693 DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
U 0525, 0564,5102,2600,3001,0020,0031,0000 ; 5694 DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX
U 0526, 0564,5102,2600,3001,0020,0031,0000 ; 5695 DIVIDE,AR_AR-BR,ARX/ADX,J/DIVX ;NO SHIFT ON FINAL STEP
U 0527, 0564,0602,2604,3001,0020,0031,0000 ; 5696 DIVIDE,AR_AR+BR,ARX/ADX,J/DIVX
; 5697
; 5698 ;HERE AFTER FINAL DIVIDE STEP
; 5699 ; MQ HAS POSITIVE FORM QUOTIENT
; 5700 ; AR!ARX HAS REMAINDER, EXCEPT THAT IT MUST BE RESTORED IF IT IS
; 5701 ; NEGATIVE (IT'S NEGATIVE IF THERE WAS NO CARRY ON FINAL STEP)
; 5702 ; THE ORIGINAL DIVIDEND IS STILL IN AC0, SO WE CHECK ITS SIGN
; 5703 ; TO DETERMINE WHETHER TO NEGATE THE (RESTORED) REMAINDER.
; 5704
; 5705 =100
U 0564, 0565,0602,2600,0000,0020,0027,0000 ; 5706 DIVX: AR_AR+BR LONG ;RESTORE REMAIN WITH POS D'SOR
; 5707 BR_AR LONG,ARX/MQ,FE_SC, ;LONG REMAIN TO BR, QUO TO ARX
U 0565, 0006,2500,0360,2401,0020,5503,0000 ; 5708 SKP AC0+,RETURN6 ;RETURN TESTING D'END SIGN
U 0566, 0567,5102,2600,0000,0020,0027,0000 ; 5709 AR_AR-BR LONG ;RESTORE REMAIN WITH NEG D'SOR
; 5710 BR_AR LONG,ARX/MQ,FE_SC,
U 0567, 0006,3200,0360,2401,0020,5503,0000 ; 5711 SKP AC0-,RETURN6
; 5712
; 5713
; 5714 ;SUBROUTINE FOR FIRST PART OF LONG DIVISIONS
; 5715 ; ENTER AT DDVSUB WITH SKP BR0
; 5716 ; RETURN3 IF SHOULD RESUME WITH ADD STEP
; 5717 ; RETURN5 IF SHOULD RESUME WITH SUBTRACT
; 5718
; 5719 =000
U 1060, 1060,0602,5500,3001,0020,0031,0000 ; 5720 DDVLP: AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 1061, 1060,5102,5504,3001,0020,0031,0000 ; 5721 AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 1062, 1060,5102,5504,3001,0020,0031,0000 ; 5722 DDVSUB: AR_2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 1063, 1060,0602,5500,3001,0020,0031,0000 ; 5723 AR_2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 1064, 0003,3723,2010,0301,1000,0003,0040 ; 5724 AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
U 1065, 0005,3723,2010,0301,1000,0003,0040 ; 5725 AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 1066, 0005,3723,2010,0301,1000,0003,0040 ; 5726 AR_MQ,MQ_AR,FE_#,#/32.,RETURN5
U 1067, 0003,3723,2010,0301,1000,0003,0040 ; 5727 AR_MQ,MQ_AR,FE_#,#/32.,RETURN3
; 5728
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; ARITH.MIC[10,5351] 19:59 21-Jun-83 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 5729 .TOC "DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV"
; 5730
; 5731 .DCODE
;;5732 .IFNOT/DBL.INT
;;5733 114: EA, J/UUO
;;5734 EA, J/UUO
;;5735 EA, J/UUO
;;5736 EA, J/UUO
; 5737 .IF/DBL.INT
D 0114, 4001,0515 ; 5738 114: R, B/0, J/DASMD ;DADD
D 0115, 4200,0515 ; 5739 R, B/2, J/DASMD ;DSUB
D 0116, 4400,0515 ; 5740 R, B/4, J/DASMD ;DMUL
D 0117, 4000,0514 ; 5741 R, J/DDIV
; 5742 .UCODE
; 5743
; 5744 ;HERE FOR DOUBLE WORD ADD, SUBTRACT, MULTIPLY, OR DIVIDE
; 5745 ;ENTER WITH (E) IN AR, E IN VMA
; 5746
; 5747 =0****00**00
U 0514, 1546,3200,0205,0000,0020,0710,0003 ; 5748 DDIV: ARX_AC3,CLR MQ,J/DDIV0 ;GET LOWEST PART OF D'END
; 5749
; 5750 DASMD: BR/AR,AR_AC1*2,ARL/AD*2, ;HIGH MEM WORD TO BR
; 5751 VMA_VMA+1,LOAD ARX, ;ASK FOR LOW WORD
U 0515, 0736,3240,5041,0000,0033,3662,0105 ; 5752 MQ_0.S,CALL.S,J/XFERW ;AND WAIT FOR IT
U 0517, 1467,3721,0500,0000,0000,0010,0000 ; 5753 =11 ARX_ARX*2 ;SHIFT LOW MEM WORD LEFT
; 5754 = BRX/ARX,ARX_AR,AR_AC0, ;ALL DATA IN PLACE
U 1467, 0250,3200,2420,0302,1020,0033,0043 ; 5755 SC_#,#/35.,B DISP ;DO THE OPERATION
; 5756
; 5757 ;HERE WITH (E) IN BR, (E+1)*2 IN BRX
; 5758 ; (AC) IN AR, (AC+1)*2 IN ARX
; 5759
U 0250, 0061,0602,2604,0000,0022,1327,0000 ; 5760 =00* AR_AR+BR LONG,AD FLAGS,EXIT DBL ;DADD
; 5761
U 0252, 0061,5102,2600,0000,0022,1327,0000 ; 5762 AR_AR-BR LONG,AD FLAGS,EXIT DBL ;DSUB
; 5763
; 5764 MQ_SHIFT,AR_0S,ARX_0S, ;DMUL, USE AC1 AS INITIAL M'IER
U 0254, 0370,3401,2210,0301,0000,0010,0756 ; 5765 FE_#,#/-18.,J/DMULT ;SETUP STEP COUNT
; 5766 =
; 5767
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; ARITH.MIC[10,5351] 19:59 21-Jun-83 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 5768 ;HERE FOR DOUBLE WORD MULTIPLY
; 5769
; 5770 =00*
U 0370, 0260,3401,0010,4001,0000,0070,0000 ; 5771 DMULT: AD/0S,MUL,CALL.M,J/MULP ;BEGIN MULTIPLY
U 0374, 0376,0602,2604,0000,0020,0027,0000 ; 5772 =10* AR_AR+BR LONG ;CANCEL EFFECTS OF LOW BIT 0
U 0376, 1472,3721,2010,0000,1000,0010,0000 ; 5773 MQ_AR,AR_MQ ;EXCH HI AND LOW PRODUCT WORDS
; 5774
; 5775 ;HERE AFTER 1ST CALL ON MPY SUBR. SAVE LOW WORD OF PROD, GET HIGH M'IER
; 5776
U 1472, 1523,0001,0005,0000,0000,1010,0000 ; 5777 AC3_AR ;LOW WORD OF PRODUCT
U 1523, 1120,3200,2000,0000,0020,0010,0000 ; 5778 AR_AC0 ;GET HIGH M'IER WORD
; 5779 =000 MQ_AR,AR_MQ,CALL, ;DIVE IN AGAIN
U 1120, 1442,3723,2010,0301,1000,0050,0756 ; 5780 FE_#,#/-18.,J/MULREE ;CONTINUE THE MULTIPLY
U 1124, 1126,3602,0004,0000,0020,5510,0000 ; 5781 =100 GEN AR*BR,AD/AND,SKP AD0 ;SKP IF M'IER, M'CAND, & PROD NEG
; 5782 =110
; 5783 DMUL1: AC0_AR,AR_SIGN,
U 1126, 1524,5401,2000,0302,0020,1016,0043 ; 5784 SC_#,#/35.,J/DMUL2 ;STORE HIGH WORD OF PRODUCT
U 1127, 1126,0001,0000,0000,0000,1110,0420 ; 5785 SET AROV,J/DMUL1
; 5786
; 5787 ;MULTIPLY NOW COMPLETE, STORE RESULTS WITH PROPER SIGN IN BIT 0
; 5788
U 1524, 1532,4001,4040,0000,0000,0010,0000 ; 5789 DMUL2: BR/AR,AR_SHIFT ;GET 2ND WITH SIGN, SAVE SIGN
U 1532, 1540,4001,4301,0000,2000,1010,0000 ; 5790 AC1_AR,AR_ARX,ARX/MQ ;READY TO BUILD 3RD WORD
U 1540, 1542,3202,2400,0000,0000,0012,0000 ; 5791 ARX_SHIFT,AR_BR,MQ_MQ*2 ;SIGNIFICANT BITS TO ARX, SIGN TO AR
; 5792 AR_SHIFT,ARX_AC3, ;3RD WORD IN AR, GET LOW
U 1542, 1544,3240,4215,0000,0020,0012,0000 ; 5793 MQ_MQ*.25 ;EXTRA PROD BIT TO MQ 35
U 1544, 0554,3723,2004,0000,0000,1010,0000 ; 5794 AC2_AR,AR_MQ ;,I FETCH WHEN TIMING FIXED
; 5795 =0* ARX_SHIFT,AR_BR,I FETCH, ;LOW WORD AND SIGN READY
U 0554, 2264,3242,2400,0000,0217,0050,0000 ; 5796 CALL,J/SHIFT ; GET LOW WORD TO AR
U 0556, 0222,4001,0005,0000,0000,1010,0000 ; 5797 STRAC3: AC3_AR,FINISH ;GANZ GETAN
; 5798
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; ARITH.MIC[10,5351] 19:59 21-Jun-83 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 5799 ;HERE FOR DOUBLE INTEGER DIVISION
; 5800 ;AR HAS (E), ARX HAS (AC3), AND MQ IS CLEAR
; 5801
U 1546, 1550,3203,4507,4402,2000,1010,0166 ; 5802 DDIV0: T0_AR,AR_ARX,ARX_ARX*8,SC_1 ;SAVE (E) IN T0
; 5803 BRX/ARX,ARX_SHIFT, ;AC3 3-35 TO BRX, 1-2 TO ARX
U 1550, 1552,3200,2424,0302,0020,0010,0002 ; 5804 AR_AC2,SC_#,#/2 ;GET AC2 READY
; 5805 AR_SHIFT,BR/AR, ;AC2 BITS 2-35 WITH AC3 1-2
U 1552, 1554,3200,4241,0000,0020,3610,0000 ; 5806 ARX_AC1,VMA_VMA+1 ;READY TO GET (E+1)
; 5807 BR/AR,AR_ARX,ARX_BR*2, ;LOW DOUBLE WORD NOW IN BR LONG
U 1554, 1556,3241,4240,4403,2000,0010,0000 ; 5808 SC_1,FE_1
U 1556, 2110,3240,2400,0000,0020,5510,0000 ; 5809 ARX_SHIFT,AR_AC0,SKP AD0 ;HIGH DOUBLEWORD IN AR LONG
; 5810 =0
; 5811 DDIV1: BR_AR LONG,AR_BRX,ARX_BR, ;HI POS D'END TO BR
U 2110, 0664,3202,6260,0000,0012,0010,0000 ; 5812 LOAD AR,J/DDIV2 ;GET LOW D'SOR READY
; 5813 BR_AR LONG,AR_-BR LONG, ;NEGATE LOW D'END
U 2111, 2112,5162,2660,3401,0040,5427,0000 ; 5814 FE_-1,SKP CRY0 ;TEST FOR CARRY PROPAGATION
U 2112, 2110,2502,2660,0000,0000,0010,0000 ; 5815 =0 BR_AR LONG,AR_BR COMP LONG,J/DDIV1
U 2113, 2110,5162,2660,0000,0020,0027,0000 ; 5816 BR_AR LONG,AR_-BR LONG,J/DDIV1 ;FINISH NEGATION OF D'END
; 5817 =0*
; 5818 DDIV2: T1_AR,MQ_ARX,ARX_0S, ;LOWEST D'END TO T1, NEXT TO MQ
U 0664, 0736,3401,0217,0000,2000,1050,0171 ; 5819 CALL,J/XFERW ; WAIT FOR (E+1)
U 0666, 2124,3240,2407,0000,0040,5110,0166 ; 5820 ARX_SHIFT,AR_T0,SKP FE0 ;DIVISOR NOW IN AR LONG
; 5821 =0 AR_BR LONG,BR_AR LONG, ;PUT OPERANDS IN PLACE FOR DIV
U 2124, 0253,3242,2660,0000,0020,0032,0000 ; 5822 SIGNS DISP,J/DDIV3 ;TEST D'SOR SIGN
; 5823 AR_BR LONG,BR_AR LONG,SET SR2, ;NOTE D'END NEGATIVE
U 2125, 0253,3242,2660,0000,0020,1632,0062 ; 5824 SIGNS DISP,J/DDIV3
; 5825
; 5826 ;HERE WITH THE DIVISOR IN BR LONG,
; 5827 ; THE HIGH PART OF THE MAGNITUDE OF THE DIVIDEND IN AR LONG,
; 5828 ; AND THE LOW PART OF THE MAGNITUDE OF THE DIVIDEND IN MQ AND T1
; 5829 ; SKIP IF DIVISOR NEGATIVE, & CHECK FOR NO-DIVIDE.
; 5830 =1011
; 5831 DDIV3: AR_2(AR-BR),ARX/ADX*2,MQ_MQ*2, ;SEE IF FIRST DIVIDE STEP
U 0253, 1140,5102,5500,0000,0040,5412,0000 ; 5832 SKP CRY0,J/DDIV4 ; GENERATES A 1
U 0257, 1140,0602,5504,0000,0040,5412,0000 ; 5833 AR_2(AR+BR),ARX/ADX*2,MQ_MQ*2,SKP CRY0
; 5834 =000
U 1140, 1060,0001,0000,0301,0000,4250,0041 ; 5835 DDIV4: FE_#,#/33.,SKP BR0,CALL,J/DDVLP ;GO DO FIRST HALF OF DIVIDE
U 1141, 0213,0001,0000,0000,0217,0010,0000 ; 5836 I FETCH,J/NODIVD ;TOO MANY QUOTIENT BITS
U 1143, 1562,4001,0001,0402,0000,1010,0000 ; 5837 =011 AC1_AR,CLR SC,J/DDIV6 ;SAVE HI QUOTIENT IN AC1
U 1145, 1562,4001,0001,3402,0000,1010,0000 ; 5838 =101 AC1_AR,SC_1S ;SET FLAG FOR RESUMPTION
; 5839 =
U 1562, 1024,3200,2007,0000,0020,0010,0171 ; 5840 DDIV6: AR_T1 ;GET LOWEST DIVIDEND BITS
; 5841 =100 MQ_AR,AR_MQ,CALL, ;FINISH DIVISION, GENERATING
U 1024, 0520,3721,2010,0000,1000,4750,0000 ; 5842 SKP SC0,J/DIVLP ; 35 MORE QUOTIENT BITS
U 1026, 0275,3240,2001,0000,0020,1605,0061 ; 5843 =110 AR_AC1,SR DISP,SET SR3,J/DDVX1 ;QUOTIENT NEGATIVE. NOTE
U 1027, 0275,3240,2001,0000,0020,0005,0000 ; 5844 AR_AC1,SR DISP ;HERE'S HIGH PART OF QUOTIENT
; 5845 =1101
U 0275, 1565,3202,2660,0000,0000,0010,0000 ; 5846 DDVX1: BR_AR LONG,AR_BR LONG,J/DDVX2 ;POS REMAINDER. GO STORE
U 0277, 1565,5162,2660,0000,0020,0027,0000 ; 5847 BR_AR LONG,AR_-BR LONG,J/DDVX2 ;NEGATE REMAINDER
U 1565, 1572,5441,2004,0302,0020,1016,0043 ; 5848 DDVX2: AC2_AR,AR_SIGN,SC_#,#/35.
U 1572, 0336,4001,4000,0000,0000,0005,0000 ; 5849 AR_SHIFT,SR DISP ;GET LOW WORD OF REM. TEST QUO SIGN
U 0336, 0061,3202,2505,0000,0002,1010,0000 ; 5850 =1110 AC3_AR,AR_BR,ARX/ADX*2,EXIT DBL ;GET QUOTIENT, SQUEEZE OUT HOLE
; 5851 AC3_AR,AR_-BR,ARX/ADX*2,AD LONG,;GET NEGATIVE QUOTIENT
U 0337, 0061,5162,2505,0000,0022,1027,0000 ; 5852 EXIT DBL
; 5853 .ENDIF/DBL.INT
; 5854
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 5855 .TOC "SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR"
; 5856
; 5857 .DCODE
; 5858 .IFNOT/FPLONG
D 0130, 2000,1002 ; 5859 130: EA, J/UUO ;UFA
D 0131, 2000,1002 ; 5860 EA, J/UUO ;DFN
; 5861 .ENDIF/FPLONG
; 5862
D 0140, 4101,0704 ; 5863 140: R, FL-AC, B0/0, J/FAD
D 0141, 4000,0707 ; 5864 R, B0/0, J/FPNO
D 0142, 6200,0704 ; 5865 RW, FL-MEM, B0/0, J/FAD
D 0143, 6301,0704 ; 5866 RW, FL-BOTH,B0/0, J/FAD
; 5867
D 0144, 4101,0303 ; 5868 R, FL-AC, J/FADR
D 0145, 0101,0302 ; 5869 I, FL-AC, B0/0, J/FADRI
D 0146, 6200,0303 ; 5870 RW, FL-MEM, J/FADR
D 0147, 6301,0303 ; 5871 RW, FL-BOTH, J/FADR
; 5872
D 0150, 4500,0704 ; 5873 150: R, FL-AC, B0/1, J/FSB
D 0151, 4401,0707 ; 5874 R, B0/1, J/FPNO
D 0152, 6601,0704 ; 5875 RW, FL-MEM, B0/1, J/FSB
D 0153, 6700,0704 ; 5876 RW, FL-BOTH,B0/1, J/FSB
; 5877
D 0154, 4100,0307 ; 5878 R, FL-AC, J/FSBR
D 0155, 0500,0302 ; 5879 I, FL-AC, B0/1, J/FSBRI
D 0156, 6201,0307 ; 5880 RW, FL-MEM, J/FSBR
D 0157, 6300,0307 ; 5881 RW, FL-BOTH, J/FSBR
; 5882 .UCODE
; 5883
; 5884 .IFNOT/FPLONG
; 5885 =0****00**00
; 5886 FAD:
U 0704, 0303,0001,0000,0000,0000,1633,0001 ; 5887 FSB: SR_#,#/1,B DISP,J/FADR ;FLAG NO ROUND, GO FAD/FSB
U 0705, 1403,4001,0000,0000,0000,1610,0001 ; 5888 FMP: SR_#,#/1,J/FMPR
U 0706, 1405,4001,0000,0000,0000,1610,0001 ; 5889 FDV: SR_#,#/1,J/FDVR
U 0707, 1002,3242,2000,0000,0000,0010,0000 ; 5890 FPNO: AR_BR,J/UUO
; 5891 =
;;5892 .IF/FPLONG
;;5893 =0****00***0
;;5894 FAD:
;;5895 FSB: SR_#,#/1,B DISP,J/FADR ;FLAG TRUNCATE MODE, GO FAD
;;5896 FADL:
;;5897 FSBL: SR_#,#/2,B DISP,J/FADR ;FLAG LONG MODE
; 5898 .ENDIF/FPLONG
; 5899 =
; 5900 =0****00*010
; 5901 FADRI:
U 0302, 0303,4001,4000,0000,3000,0033,0000 ; 5902 FSBRI: AR_AR SWAP,B DISP
; 5903 FADR: FE_EXP,EXP_SIGN,SC/SCAD,
U 0303, 1601,3441,0200,0203,1000,0022,0200 ; 5904 ARX_0S,J/FAS
; 5905 =111
U 0307, 1576,3441,0200,0203,1000,0022,0200 ; 5906 FSBR: FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
U 1576, 1601,5143,7000,0000,0020,0010,0000 ; 5907 = AR_-AR,J/FAS ;NEGATE SUBTRAHEND
; 5908
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 5909 ;FIND OPERAND WITH LARGER EXP, LEAVING IT IN BR,
; 5910 ; AND ITS EXP-1 IN FE. THE SMALLER OPERAND IS LEFT IN AR,
; 5911 ; SHIFTED RIGHT BY THE DIFFERENCE BETWEEN THE EXPONENTS -1
; 5912
U 1601, 1612,3200,2060,0000,0020,0010,0000 ; 5913 FAS: BR/AR,BRX/ARX,AR_AC0 ;SAVE MEM OP IN BR, GET AC
U 1612, 2130,0001,0000,5202,1020,5122,0200 ; 5914 SC_EXP-SC,EXP_SIGN,SKP SCAD0 ;FIND LARGER OPERAND
U 2130, 1616,3201,2040,2001,0000,0010,0000 ; 5915 =0 FE_FE+SC,BR/AR,AR_BR*2,J/FAS1 ;AC EXP .GE. MEM
; 5916 MQ_AR,SC_#+SC,#/37., ;MEM OP LARGER, SHIFT AC OP
U 2131, 2132,4001,0010,2302,1020,5110,0045 ; 5917 SKP SCAD0,J/FAS2 ;COMPUTE SHIFT AMOUNT
; 5918
U 1616, 2132,4001,0010,5302,1020,5110,0044 ; 5919 FAS1: MQ_AR,SC_#-SC,#/36.,SKP SCAD0 ;CHECK SHIFT AMOUNT
; 5920 =0
U 2132, 1632,5441,2310,0000,0020,0016,0000 ; 5921 FAS2: MQ_SHIFT,ARX/MQ,AR_SIGN,J/FAS3 ;LOW TO MQ, READY TO GET HI
; 5922 AR_SIGN,ARX_AR, ;HERE IF EXP DIFF .GT. 36
U 2133, 2140,5401,2400,2302,1020,5116,0044 ; 5923 SC_#+SC,#/36.,SKP SCAD0 ; .GT. 72?
U 2140, 1636,4001,0400,4001,0001,0010,0100 ; 5924 =0 ARX_SHIFT,MQ_0.M,FE_FE+1,J/FAS5
U 2141, 1636,0001,0400,4001,1001,0010,0100 ; 5925 ARX_AR,MQ_0.M,FE_FE+1,J/FAS5 ;SHIFTED CLEAR OUT
; 5926
; 5927 FAS3: AR_SHIFT,ARL/SH,ARX/MQ,
U 1632, 1636,0001,4300,4001,0001,0010,0104 ; 5928 MQ_0.M,FE_FE+1 ;READY TO ADD
; 5929
; 5930 FAS5: AR_(AR+2BR)*.25,ARX/ADX*.25, ;HERE FOR ADD OR SUB
U 1636, 1240,0601,7704,0000,0060,0035,0000 ; 5931 NORM,J/SNORM
; 5932
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 5933 .TOC "SINGLE FLOATING MULTIPLY -- FMP, FMPR"
; 5934
; 5935 .DCODE
D 0160, 4100,0705 ; 5936 160: R, FL-AC, J/FMP
D 0161, 4000,0707 ; 5937 R, J/FPNO
D 0162, 6201,0705 ; 5938 RW, FL-MEM, J/FMP
D 0163, 6300,0705 ; 5939 RW, FL-BOTH,J/FMP
; 5940
D 0164, 4101,1403 ; 5941 R, FL-AC, J/FMPR
D 0165, 0101,1402 ; 5942 I, FL-AC, J/FMPRI
D 0166, 6200,1403 ; 5943 RW, FL-MEM, J/FMPR
D 0167, 6301,1403 ; 5944 RW, FL-BOTH,J/FMPR
; 5945 .UCODE
;;5946 .IF/FPLONG
;;5947 =0****00***0
;;5948 FMP: SR_#,#/1,J/FMPR ;FLAG TRUNCATE MODE
;;5949 FMPL: SR_#,#/2,J/FMPR ;LONG MODE
;;5950 =
; 5951 .ENDIF/FPLONG
; 5952 =0****00***0
U 1402, 1403,0001,4000,0000,3000,0010,0000 ; 5953 FMPRI: AR_AR SWAP
U 1403, 1640,3401,0200,0202,1000,0022,0200 ; 5954 FMPR: SC_EXP,EXP_SIGN,ARX_0S ;PREPARE M'IER FRACTION
; 5955
U 1640, 0272,3240,2010,0301,1020,0010,0762 ; 5956 = MQ_AR,AR_AC0,FE_#,#/-14. ;M'IER TO MQ, GET M'CAND
; 5957 =01* SC_EXP+SC,EXP_SIGN, ;SEPARATE M'CAND FRACTION FROM EXP
U 0272, 1431,4001,0000,2202,1000,0062,0200 ; 5958 CALL.S,J/MULSUB ;AND BEGIN MULTIPLY
U 0276, 1240,3203,0000,2301,0040,0035,0600 ; 5959 =11* FE_#+SC,#/-200,NORM AR,J/SNORM
; 5960 =
; 5961
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 5962 .TOC "SINGLE FLOATING DIVIDE -- FDV, FDVR"
; 5963
; 5964 .DCODE
D 0170, 4100,0706 ; 5965 170: R, FL-AC, J/FDV
D 0171, 4101,0707 ; 5966 R, FL-AC, J/FPNO
D 0172, 6201,0706 ; 5967 RW, FL-MEM, J/FDV
D 0173, 6300,0706 ; 5968 RW, FL-BOTH,J/FDV
; 5969
D 0174, 4101,1405 ; 5970 R, FL-AC, J/FDVR
D 0175, 0101,1404 ; 5971 I, FL-AC, J/FDVRI
D 0176, 6200,1405 ; 5972 RW, FL-MEM, J/FDVR
D 0177, 6301,1405 ; 5973 RW, FL-BOTH,J/FDVR
; 5974 .UCODE
;;5975 .IF/FPLONG
;;5976 =0****00***0
;;5977 FDVL: FE_EXP-1,EXP_SIGN,ARX+MQ_0.S,J/FDVL1
;;5978 FDV: SR_#,#/1,J/FDVR ;FLAG TRUNCATE MODE
;;5979 =
; 5980 .ENDIF/FPLONG
; 5981 =0****00***0
U 1404, 1405,0001,4000,0000,3000,0010,0000 ; 5982 FDVRI: AR_AR SWAP
U 1405, 1160,4001,0000,4202,1000,0022,0340 ; 5983 FDVR: SC_EXP+1,EXP_SIGN,ARX+MQ_0.S ;SETUP DIVISOR
; 5984 =
; 5985 =000 BR/AR,BRX/ARX, ;DIVISOR TO BR, CLR BRX
; 5986 AR_AC0,FE_#,#/27., ;GET DIVIDEND, STEP COUNT
U 1160, 2150,3240,2060,0301,0020,5550,0033 ; 5987 SKP AD0,CALL,J/FDVCHK
; 5988
U 1162, 0522,0001,0000,0000,0000,4250,0000 ; 5989 =10 SKP BR0,CALL,J/DIV- ;OK, BEGIN DIVISION
U 1163, 0066,4001,0000,0000,0000,1110,0624 ; 5990 SET FL NO DIV,J/IFNOP ;NO DIVIDE, SORRY
; 5991
; 5992 ;RETURN HERE WITH QUOTIENT IN ARX. WE TOOK 29 DIVIDE STEPS, TO
; 5993 ; GUARANTEE HAVING A ROUNDING BIT EVEN IF THE FIRST STEP GENERATES
; 5994 ; A QUOTIENT BIT OF ZERO. THEREFORE, THE MSB OF QUOTIENT IS EITHER
; 5995 ; IN BIT 7 OR 8, AND NORM WILL FIND IT IN ONE STEP.
; 5996
; 5997 =110 AR_ARX,FE_FE+#,#/2, ;NEGATIVE QUOTIENT
U 1166, 2142,7162,4000,2031,2040,5410,0002 ; 5998 SKP BR EQ,J/FDVNEG ;CHECK FOR MORE QUO TO COME
; 5999 AR_ARX*.25,ARX_ARX*.25,NORM, ;JUNK IS 36 BITS AWAY FROM MSB
U 1167, 1240,3713,7700,2031,0040,0035,0002 ; 6000 FE_FE+#,#/2,J/SNORM ;POS QUOTIENT, NORMALIZE
; 6001 =
; 6002 ;HERE IF QUOTIENT SHOULD BE NEGATIVE, WITH POSITIVE FORM IN
; 6003 ; AR AND ARX. SKIP IF REMAINDER (IN BR) IS ZERO. IN THIS CASE,
; 6004 ; WE CLEAR ARX, BECAUSE AR CONTAINS THE ENTIRE QUOTIENT.
; 6005 ; IF, HOWEVER, THE REMAINDER IS NOT ZERO, WE INFER
; 6006 ; THAT AN INFINITE PRECISION DIVISION WOULD GENERATE MORE ONES
; 6007 ; IN THE QUOTIENT. IF THAT IS THE CASE, WE LEAVE ARX WITH THE
; 6008 ; QUOTIENT, SO THE NEGATION PROCESS WILL WORK CORRECTLY TO RETURN
; 6009 ; THE HIGH ORDER PART OF THE INFINITE-PRECISION NEGATIVE QUOTIENT.
; 6010 =0
U 2142, 1240,3703,7700,0000,0040,1635,0064 ; 6011 FDVNEG: SET SR1,AR_AR*.25 LONG,NORM,J/SNORM
U 2143, 2142,3441,0200,0000,0000,0010,0000 ; 6012 ARX_0S,J/FDVNEG ;REMAINDER WENT TO ZERO
; 6013
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 6014 ;HERE FOR FDVL
; 6015
;;6016 .IF/FPLONG
;;6017
;;6018 ;FDVL: FE_EXP-1,EXP_SIGN,CLR ARX+MQ
;;6019 =000
;;6020 FDVL1: AR_AC1,BR_AR LONG, ;SAVE DIVISOR IN BR LONG
;;6021 SC_#,#/9.,CALL ;READY TO SHIFT LOW DIVIDEND
;;6022 ARX_SHIFT,AR_AC0, ;DIVIDEND IN PLACE
;;6023 SC_FE,FE_#,#/24., ;EXP TO SC, STEP COUNT TO FE
;;6024 SKP AD0,J/FDVCHK ;GO CHECK FOR NO DIVIDE
;;6025 =010 CALL,SKP BR0,J/FDVL2 ;GO BEGIN DIVIDE
;;6026 SET FL NO DIV,J/IFNOP ;CAN'T DIVIDE, ABORT
;;6027
;;6028 =110 AR_AC0,SR_#,#/5, ;NEG QUO, FLAG TRUNCATE MODE
;;6029 SR DISP,J/FDVL4 ; WAS IT 26 OR 27 STEPS?
;;6030 AR_AC0,SR_#,#/1, ;POS QUO
;;6031 SR DISP,J/FDVL4
;;6032 =
;;6033
;;6034
;;6035 ;COME HERE TO START THE DIVISION. ON THE FIRST STEP, WE CHECK
;;6036 ; TO SEE WHETHER A 1 HAS BEEN GENERATED IN THE QUOTIENT. IF SO,
;;6037 ; 26 ADDITIONAL STEPS WILL GENERATE THE FULL 27 SIGNIFICANT BITS
;;6038 ; OF THE QUOTIENT. IF NOT, 27 STEPS ARE REQUIRED.
;;6039
;;6040 =0
;;6041 FDVL2: DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/FDVL3 ;FIRST DIVIDE STEP
;;6042 DIVIDE,AR_2(AR+BR),ARX/ADX*2 ; DOES IT GENERATE A 1?
;;6043 =00
;;6044 FDVL3: DISP/DIV,MQ/MQ*2, ;NO, TAKE AN EXTRA DIVIDE STEP
;;6045 AR_2(AR+BR),ARX/ADX*2,J/DIVLP ; WITHOUT COUNTING FE
;;6046 SR_1,SC_#+SC,#/1,J/DIV- ;YES, 27 STEPS WILL NORMALIZE QUO
;;6047 DISP/DIV,MQ/MQ*2,AR_2(AR-BR),ARX/ADX*2,J/DIVLP
;;6048 SR_1,SC_#+SC,#/1,J/DIV+
;;6049
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE FLOATING DIVIDE -- FDV, FDVR
;;6050 ;WE COME HERE AFTER DOING THE DIVISION, EITHER 26 OR 27 STEPS
;;6051 ; AS REQUIRED TO GENERATE A NORMALIZED QUOTIENT FROM NORMALIZED
;;6052 ; OPERANDS. NOW FIGURE OUT WHAT EXPONENT THE REMAINDER SHOULD HAVE.
;;6053
;;6054 =0
;;6055 FDVL4: SC_EXP-#,#/27., ;DIVIDEND EXP-27
;;6056 AR_BR,SKP AR0,J/FDVL6 ;GET REMAINDER, TEST D'END SIGN
;;6057 SC_EXP-#,#/26., ;D'END EXP-26
;;6058 AR_BR,SKP AR0
;;6059
;;6060 ;HERE WITH REMAINDER IN AR, ITS EXP IN SC
;;6061 ; SKIP IF D'END (AND THEREFORE REM) NEGATIVE.
;;6062
;;6063 =0
;;6064 FDVL6: EXP_SC,BYTE DISP, ;TEST FOR UNDERFLOW
;;6065 SKP AR EQ,J/FDVL7 ; OR REM =0
;;6066 AR_-BR,SKP CRY0, ;NEGATE REM, CHECK =0
;;6067 GEN SC,BYTE DISP ; AND LOOK FOR EXP UFLO
;;6068 =110 EXP_-SC-1,J/FDVL7 ;ONE'S COMPLEMENT EXP
;;6069 AR_0S ;REM =0 OR EXP UFLO
;;6070 =110
;;6071 FDVL7: AC1_AR,ARX+MQ_0.M, ;SAVE REMAINDER
;;6072 AR_MQ,ARL/AD,J/SNR2 ;GO NORMALIZE QUOTIENT
;;6073 AR_0S,J/FDVL7
; 6074 .ENDIF/FPLONG
; 6075
; 6076
; 6077 ;SUBR TO CHECK FOR FLOATING NO DIVIDE
; 6078 ; ENTER WITH SKP ON DIVIDEND SIGN, IN AR LONG, WITH
; 6079 ; DIVISOR EXP IN SC, DIVISOR IN BR
; 6080
; 6081 =0
U 2150, 2152,4001,0000,5202,1000,4222,0200 ; 6082 FDVCHK: SC_EXP-SC,EXP_SIGN,SKP BR0,J/FDVCK1
U 2151, 2150,5143,7700,0000,0020,0027,0000 ; 6083 AR_-AR LONG,J/FDVCHK ;GET POSITIVE DIVIDEND
; 6084 =0
; 6085 FDVCK1: GEN AR-2BR,SKP CRY0, ;TEST FOR NO DIVIDE
U 2152, 0002,5101,0004,2302,0040,5403,0177 ; 6086 SC_#+SC,#/177,RETURN2 ;AND CORRECT EXP
; 6087 GEN AR+2BR,SKP CRY0, ;SAME TEST, NEG DIVISOR
U 2153, 0002,0601,0000,2302,0040,5403,0177 ; 6088 SC_#+SC,#/177,RETURN2 ;AND SAME EXP CORRECTION
; 6089
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; FP.MIC[10,5351] 19:08 8-Oct-81 UFA, DFN, FSC, IBP
; 6090 .TOC "UFA, DFN, FSC, IBP"
; 6091 ;ENTER WITH (E) IN AR
;;6092 .IF/FPLONG
;;6093 .DCODE
;;6094 130: R, J/UFA
;;6095 RPW, J/DFN
;;6096 .UCODE
;;6097 =0****00***0
;;6098 DFN: FE_AR0-8,AR0-8_#,#/0, ;SAVE LOW EXP, CLR SO CAN
;;6099 ARX_0S,J/DFN1 ; DETECT FRACTION = 0
;;6100 UFA: FE_EXP,SC/SCAD,EXP_SIGN,ARX_0S
;;6101 =
;;6102 =000 BR_AR LONG,AR_AC0,CALL,J/EXPD
;;6103 =100 ARX_AR,AR_SIGN,ARL/AD, ;READY TO UNNORMALIZE SMALLER OP
;;6104 CALL.M,J/SHIFT
;;6105 AR_SIGN,ARX/AD ;LOST SMALLER OP, USE ITS SIGN
;;6106 AR_AR+BR,SKP AD NE, ;IS RESULT SIGNIFICANT?
;;6107 SC_FE,I FETCH
;;6108 =
;;6109 =0 AC1_AR,J/FINI ;NO, CLEAR RESULT AC
;;6110 SKP EXP NE,BR/AR ;IS RIGHT SHIFT REQ'D?
;;6111 =0 SKP AR0,FETCH WAIT,J/UFA4 ;NO, IS RESULT NEG?
;;6112 AR_BR*.5,GEN FE-#,#/377,SKP SCAD NE,FETCH WAIT
;;6113 =0 FE_-1,SET FLOV
;;6114 FE_FE+1,SC/SCAD,SKP AR0
;;6115 =0
;;6116 UFA4: AR0-8_SC,J/STAC1 ;POS, PUT IN EXP STRAIGHT
;;6117 AR0-8_-SC-1,J/STAC1 ;NEG, USE COMPLEMENT OF EXP
;;6118
;;6119
;;6120 DFN1: AR_-AR,SKP CRY0 ; LOW FRACTION =0?
;;6121 =0 AR0-8_FE,STORE, ;STORE LOW WORD BACK TO MEM
;;6122 ARX_AC0 COMP,J/STMAC ; GET COMPLEMENTED HIGH WORD
;;6123 AR0-8_FE,STORE, ;LOW WORD WAS ZERO, INSTALL EXP
;;6124 ARX_-AC0,J/STMAC ; GET NEGATED HIGH WORD
; 6125 .ENDIF/FPLONG
; 6126
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; FP.MIC[10,5351] 19:08 8-Oct-81 UFA, DFN, FSC, IBP
; 6127 .DCODE
D 0132, 0101,1407 ; 6128 132: I, FL-AC, J/FSC
D 0133, 4600,1406 ; 6129 R, B/6, J/IBP ;ADJBP IF AC .NE. 0
; 6130 .UCODE
; 6131 =0****00***0
; 6132 .IF/ADJBP
;;6133 .IF/OWGBP
;;6134 IBP: SKP PC SEC0,J/IBP0 ;[251] CAN IT BE A OWGBP ?
; 6135 .IFNOT/OWGBP
U 1406, 1520,0001,0000,0000,0000,4610,0000 ; 6136 IBP: SKP AC#0,J/IBP1 ;IS IT IBP, OR ADJBP?
; 6137 .ENDIF/OWGBP
;;6138 .IFNOT/ADJBP
;;6139 IBP: J/IBP2
; 6140 .ENDIF/ADJBP
; 6141
; 6142
; 6143 ;FSC
; 6144 ;ENTER WITH E IN AR
; 6145 =0****00****
; 6146 FSC: SC_EA,ARX+MQ_0.M,
U 1407, 1642,3240,2000,0002,0021,0013,0142 ; 6147 AR_AC0,ARL/AD
U 1642, 1242,4001,0000,2201,1000,0022,0200 ; 6148 = FE_EXP+SC,EXP_SIGN,J/SNR2 ;NORMALIZE SCALED RESULT
; 6149
;;6150 .IF/OWGBP
;;6151 =0
;;6152 IBP0: SC_P-#,#/45,SKP SCAD0,J/IBP3 ;TREAT THIS AS A OWGBP ?
;;6153 SKP AC#0,J/IBP1 ;IS IT IBP, OR ADJBP?
;;6154 =0
;;6155 IBP3: BR/AR,SKP AC#0,J/GIBP ;YES, CHECK FOR ADJBP
;;6156 SKP AC#0,J/IBP1 ;NO, TREAT AS BEFORE, ADJBP?
; 6157 .ENDIF/OWGBP
; 6158
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; FP.MIC[10,5351] 19:08 8-Oct-81 FIX, FIXR, FLTR, EXTEND
; 6159 .TOC "FIX, FIXR, FLTR, EXTEND"
; 6160
; 6161 .DCODE
D 0122, 4000,1412 ; 6162 122: R, J/FIX ;UNROUNDED
D 0123, 4001,1413 ; 6163 R, J/EXTEND ;EXTENDED INSTRUCTION SET
; 6164
D 0126, 4000,1411 ; 6165 126: R, J/FIXR ;ROUNDED
D 0127, 4100,1410 ; 6166 R, FL-AC, J/FLTR
; 6167 .UCODE
; 6168 ;FLTR
; 6169 ;ENTER WITH (E) IN AR
; 6170 =0****00***0
; 6171 FLTR: FE_#,#/277,ARX_AR,SKP AR0, ;BINARY POINT TO RIGHT OF ARX
U 1410, 1240,5401,2400,0301,1020,4516,0277 ; 6172 AR_SIGN,J/SNORM ; SIGN EXTENDED. GO NORMALIZE
; 6173
; 6174 ;FIX AND FIXR
; 6175 ;ENTER WITH (E) IN AR
; 6176 ; FIX AND FIXR DIFFER ONLY IN THE ROUNDING CRITERION:
; 6177 ;FIXR ADDS 1 TO THE INTEGER PART IF THE FRACTION PART IS ONE-HALF
; 6178 ;OR GREATER. FIX DROPS THE FRACTION PART OF POSITIVE NUMBERS, BUT ADDS
; 6179 ;1 TO THE INTEGER PART OF NEGATIVE NUMBERS IF THE FRACTION PART IS NOT
; 6180 ;ALL ZERO.
; 6181 ; THIS IS IMPLEMENTED BY CHOOSING A FRACTION (THE ROUNDING
; 6182 ;CONSTANT) TO ADD TO THE INPUT, SUCH THAT A CARRY WILL OCCUR INTO THE
; 6183 ;INTEGER PART UNDER THE APPROPRIATE CONDITIONS. FOR FIXR, THE ROUNDING
; 6184 ;CONSTANT IS EXACTLY ONE-HALF. FOR FIX, IT IS ZERO ON POSITIVE INPUT,
; 6185 ;OR THE LARGEST POSSIBLE FRACTION (ALL 1S) ON NEGATIVE INPUT.
; 6186
; 6187 =0****00****
; 6188 FIXR: FE_EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
U 1411, 2170,4041,0700,5231,0020,5110,0244 ; 6189 ARX_1B1,J/FIX1 ;GET ROUNDING CONSTANT
; 6190 =
; 6191 =0****00***0
; 6192 FIX: FE_EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
U 1412, 2170,5441,0200,5231,0020,5116,0244 ; 6193 ARX_AR SIGN,J/FIX1 ;SET ROUNDING CONSTANT, GO FIX
; 6194
; 6195 .IF/EXTEND
;;6196 .IFNOT/XADDR
;;6197 .IF/MODEL.B ;[246]
;;6198 EXTEND: FE_#+AR0-8,#/-32,SKP SCAD0, ;VALID EXTENDED OPERATION?
;;6199 ARX_AR,AR_BRX,J/EXT1 ; OPR TO ARX, AC TO AR
;;6200 .IFNOT/MODEL.B
;;6201 EXTEND: FE_#+AR0-8,#/-20,SKP SCAD0, ;[246] VALID EXTENDED OPERATION?
;;6202 ARX_AR,AR_BRX,J/EXT1 ;[246] OPR TO ARX, AC TO AR
;;6203 .ENDIF/MODEL.B ;[246]
; 6204 .IF/XADDR
; 6205 EXTEND: SC_#+AR0-8,#/-32,SKP SCAD0, ;VALID EXTENDED OPERATION?
U 1413, 2476,3242,2400,2322,1020,5110,0746 ; 6206 ARX_AR,AR_BR,J/EXTF1 ; OPR TO ARX, AC TO AR
; 6207 .ENDIF/XADDR
;;6208 .IFNOT/EXTEND
;;6209 EXTEND: AR_BR,J/UUO
; 6210 .ENDIF/EXTEND
; 6211 =
; 6212
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; FP.MIC[10,5351] 19:08 8-Oct-81 FIX, FIXR, FLTR, EXTEND
; 6213 ;HERE FOR FIX. CONVERT FLOATING TO INTEGER
; 6214
; 6215 =0
U 2170, 0066,4001,0000,0000,0000,1110,0420 ; 6216 FIX1: SET AROV,J/IFNOP ;CAN'T DO IT, GIVE UP
U 2171, 1644,3721,0540,0000,0000,0410,0000 ; 6217 BR/AR,CLR AR,ARX_ARX*2 ;ROUNDING CONSTANT READY IN ARX
; 6218 BR_AR LONG,AR_BR,CLR ARX, ;MANTISSA TO AR LONG
U 1644, 1646,3202,2060,0302,0000,0510,0011 ; 6219 SC_#,#/9. ;READY TO SHIFT OFF EXPONENT
; 6220 ARX_SHIFT,AR_SIGN, ;MANTISSA LEFT ALIGNED IN ARX
U 1646, 2172,5401,2400,2032,0020,5116,0044 ; 6221 SC_FE+#,#/36.,SKP SCAD0 ;ANY INTEGER BITS?
; 6222 =0 MQ_SHIFT, ;YES, PUT THEM IN MQ
; 6223 AR_ARX (ADX),CLR ARX, ;SHIFT MANTISSA LEFT 36 PLACES
U 2172, 1650,3721,6010,0000,0217,0510,0000 ; 6224 I FETCH,J/FIX2 ;AND PREFETCH NEXT
U 2173, 0074,3401,2000,0000,0217,0010,0000 ; 6225 AR_0S,I FETCH,J/STORAC ;ALL SIGNIFICANCE LOST
U 1650, 1652,3723,2400,0000,0000,0010,0000 ; 6226 FIX2: ARX_SHIFT,AR_MQ ;INTEGER IN AR, FRACTION IN ARX
U 1652, 0065,0602,2000,0000,0020,0027,0000 ; 6227 AR_AR+BR,AD LONG,J/STAC ;ROUND AND STORE
; 6228
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE PRECISION FLOATING NORMALIZATION
; 6229 .TOC "SINGLE PRECISION FLOATING NORMALIZATION"
; 6230
; 6231 ;HERE TO NORMALIZE SINGLE PRECISION RESULTS
; 6232 ;SR2-3 TELL HOW TO STORE RESULTS:
; 6233 ;XX00 ... ROUND, SINGLE PRECISION
; 6234 ;XX01 ... TRUNCATE, SINGLE PRECISION
; 6235 ;XX10 ... LONG MODE (IMPLIES TRUNCATION)
; 6236 ;IN ADDITION, THIS CODE SETS SR 1 IF ANSWER IS NEGATIVE, SO X1YZ
; 6237 ; CORRESPONDS TO X0YZ EXCEPT THAT THE RESULT MUST BE NEGATED.
; 6238
; 6239 ;DISPATCH TO SNORM WITH "DISP/NORM,AR/AD*.25"
; 6240 ; THUS THE 8 POSSIBILITIES ARE:
; 6241 ;SNORM AD=0 AR=0 EITHER ANSWER IS ZERO, OR MSB IS IN ARX
; 6242 ;SNORM+1 AD0 AR NEG RESULT IS NEG. MAKE POS, TRY AGAIN
; 6243 ;SNORM+2 AD1-6 AR3-8 MSB TOO FAR LEFT, SHIFT RIGHT & RETRY
; 6244 ;SNORM+3 AD7 AR9 RESULT IS CORRECTLY NORMALIZED
; 6245 ;SNORM+4 AD8 AR10 SHIFT LEFT ONCE FOR NORMALIZATION
; 6246 ;SNORM+5 AD9 AR11 SHIFT LEFT 2 PLACES
; 6247 ;SNORM+6 AD10 AR12 SHIFT LEFT THRICE
; 6248 ;SNORM+7 AD11-35 AR13-35 SHIFT LEFT A LOT, TRY AGAIN
; 6249
; 6250 =000
; 6251 SNORM: AR_ARX,ARL/SH,SKP ARX NE, ;AR IS ZERO, GET ARX
U 1240, 2202,3713,4000,0000,2041,5410,0044 ; 6252 ARX_0.M,J/SNZERO
U 1241, 1240,5143,7700,0000,0060,1635,0064 ; 6253 NORM -AR,SET SR1,J/SNORM ;REMEMBER NEGATIVE, GO POSITIVE
; 6254 SNR2: AR_AR*.25 LONG,FE_FE+#,#/2, ;SHIFT RIGHT,
U 1242, 1240,3701,7700,2031,0040,0035,0002 ; 6255 NORM,J/SNORM ;TRY AGAIN
U 1243, 0024,0001,0000,0000,0000,0005,0000 ; 6256 SR DISP,J/SROUND ;AD7 -> AR9, IS ROUND REQ'D?
; 6257 AR_AR*2 LONG,FE_FE-1, ;AD8 -> AR10, ONCE LEFT AND DONE
U 1244, 0024,3701,5500,3001,0000,0005,0000 ; 6258 SR DISP,J/SROUND
; 6259 AR_AR*4 LONG,FE_FE-#,#/2, ;AD9 -> AR11
U 1245, 0024,3243,2600,5031,0000,0005,0002 ; 6260 SR DISP,J/SROUND
; 6261 AR_AR*8 LONG,FE_FE-#,#/3, ;AD10 -> AR12
U 1246, 0024,3243,5500,5031,0000,0005,0003 ; 6262 SR DISP,J/SROUND
;;6263 .IFNOT/SNORM.OPT
;;6264 SKP AR NE,INH CRY18,SC_#,#/7 ;LOOK FOR AR13-17
;;6265 =0 SC_#,#/13. ;LH IS 0. SHIFT FARTHER
;;6266 MQ_SHIFT,AR_ARX (ADX),CLR ARX, ;HIGH TO MQ, GET READY FOR LOW
;;6267 FE_FE-SC ; ADJUST EXPONENT
;;6268 ARX_SHIFT,AR_MQ,J/SNR2 ;FRACTION REPOSITIONED. GO AGAIN
;;6269
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE PRECISION FLOATING NORMALIZATION
;;6270 ;HERE IS THE FASTER VERSION OF LONG NORMALIZATION SHIFTS,
;;6271 ; WHICH TAKES FOUR WORDS MORE BUT IS A BIT QUICKER IN THE
;;6272 ; INTERMEDIATE NORMALIZATION CASES.
;;6273
; 6274 .IF/SNORM.OPT
; 6275 ADA EN/0S,ADB/AR*4,AD/ANDCA, ;GENERATE AR*4
; 6276 AR/AD*2,ARX/ADX*2, ; AR_AR*8 LONG
; 6277 SC_#,#/12., ;READY TO SHIFT FARTHER
U 1247, 2200,3063,5500,0302,0020,5417,0014 ; 6278 GEN CRY18,SKP CRY0 ; TEST AR0-19 FOR ZERO
; 6279
; 6280 =0 AR_AR*8 LONG,BR_AR LONG, ;IT WAS IN AR13-19
U 2200, 1264,3243,5560,5031,0040,0035,0006 ; 6281 FE_FE-#,#/6,NORM,J/SN1 ; NOW IN AR10-16, AD8-14
; 6282 MQ_SHIFT,AR_ARX (ADX), ;13-19=0, SHIFT TO TRY 20-35
U 2201, 1654,3701,6010,0302,0000,0510,0012 ; 6283 CLR ARX,SC_#,#/10.
; 6284 ARX_SHIFT,AR_MQ*.25, ;REPOSITION FRACTION IN AR LONG
; 6285 FE_FE-#,#/13., ;COMPENSATE EXPONENT
U 1654, 1240,3721,7400,5031,0040,0035,0015 ; 6286 NORM,J/SNORM
; 6287 =100
; 6288 SN1: AR_BR*2 LONG,FE_FE+#,#/2, ;MSB IN AD8, SO IN BR10
U 1264, 0024,3241,2600,2031,0000,0005,0002 ; 6289 SR DISP,J/SROUND
; 6290 AR_BR*4 LONG,FE_FE+1, ;MSB IN AD9, THUS IN BR11
U 1265, 0024,3241,5500,4001,0000,0005,0000 ; 6291 SR DISP,J/SROUND
U 1266, 0024,0001,0000,0000,0000,0005,0000 ; 6292 SR DISP,J/SROUND ;AD10 -> AR9, A LUCKY GUESS
; 6293 AR_AR*8 LONG,BR_AR LONG, ;TRY SHIFTING 3 MORE
U 1267, 1264,3243,5560,5031,0040,0035,0003 ; 6294 FE_FE-#,#/3,NORM,J/SN1
; 6295 .ENDIF/SNORM.OPT
; 6296
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE PRECISION FLOATING NORMALIZATION
; 6297 ;HERE WHEN AD ENTIRELY ZERO ON NORMALIZE ATTEMPT. SKIP IF ARX
; 6298 ; IS NOT ZERO, HAVING COPIED IT TO AR (IE, LEFT SHIFT 36 PLACES).
; 6299 ; OTHERWISE, THE ENTIRE RESULT IS ZERO, SO WE STORE THAT.
; 6300 =0
; 6301 SNZERO: CLR FE,AR+ARX+MQ_0.M, ;RESULT = 0
U 2202, 0151,4001,0000,0401,0001,0005,0170 ; 6302 SR DISP,J/SRND5
; 6303 AR_AR*.25 LONG,FE_FE-#,#/34., ;HAVE MOVED LEFT 36, GO RIGHT 2
U 2203, 1240,3701,7700,5031,0040,0035,0042 ; 6304 NORM,J/SNORM ;AND TRY THAT
; 6305
; 6306
; 6307 ;WE GET HERE WITH A NORMALIZED POSITIVE FRACTION IN AR'ARX,
; 6308 ; THE CORRECTED EXPONENT IN FE, AND SR INDICATES THE PROPER SIGN
; 6309 ; FOR THE RESULT AND WHETHER THE ANSWER SHOULD BE ROUNDED,
; 6310 ; TRUNCATED, OR LONG.
; 6311
;;6312 .IF/FPLONG
;;6313 =100
; 6314 .IFNOT/FPLONG
; 6315 =1*0
; 6316 .ENDIF/FPLONG
U 0024, 0135,3401,2060,0000,0000,0010,0000 ; 6317 SROUND: BR_AR LONG,AR_0S,J/SRND2 ;PREPARE TO ROUND BY ADDING THE
; 6318 ; PART OF THE FRACTION WE WILL
; 6319 ; DISCARD (CARRY IF ARX0)
; 6320 BR_AR LONG,CLR AR,ARX_1S, ;TRUNCATE MODE
U 0025, 0131,2341,0260,0000,0000,0405,0000 ; 6321 SR DISP,J/STRNC ; HANDLING DEPENDS ON SIGN
;;6322 .IF/FPLONG
;;6323 BR_AR LONG,CLR AR,ARX_1S, ;LONG MODE
;;6324 SC_#,#/9.
;;6325 = ARX_SHIFT,SR DISP ;MASK = 0,,000777 TO ARX
;;6326 =01*
;;6327 BR_AR LONG,AR_BR LONG,J/SRND4 ;POS, TRUNCATE BY ANDING
;;6328 AR_AR+BR,ARX/ADX,BR_AR LONG, ;NEG, MUST DIDDLE
;;6329 NORM,J/SRND3 ; NORM FORCES LONG ARITH
; 6330 .ENDIF/FPLONG
; 6331
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; FP.MIC[10,5351] 19:08 8-Oct-81 SINGLE PRECISION FLOATING NORMALIZATION
; 6332 ;HERE TO PERFORM ROUNDING OR TRUNCATION OF SINGLE-PRECISION RESULTS,
; 6333 ; AND CHECK FOR CARRY INTO EXPONENT FIELD REQUIRING RENORMALIZATION
; 6334
; 6335 =0*1
U 0131, 0035,3242,2000,0000,0000,0510,0000 ; 6336 STRNC: AR_BR,CLR ARX,J/SRND4 ;POS TRUNCATE, GO STUFF IN EXP
U 0135, 0034,0602,2000,0000,0060,0535,0000 ; 6337 SRND2: AR_AR+BR,NORM,CLR ARX ;NORM FORCES LONG ARITH
; 6338 ; SO THIS ADDS ARX TO BR'BRX
; 6339 =1*0
U 0034, 0035,0303,7000,4001,0020,0010,0000 ; 6340 SRND3: AR_AR*.5,FE_FE+1 ;RENORMALIZE
; 6341 SRND4: EXP_FE TST,SR DISP, ;STUFF EXP, CHECK NEG OR LONG
U 0035, 0151,3502,0600,0000,2000,0705,0410 ; 6342 ARX_ARX*BRX,AD/ANDCB ;CLEAR TRUNCATED FRACTION
; 6343
; 6344 ;HERE TO STORE RESULT AS A FUNCTION OF SINGLE OR LONG PRECISION
; 6345 ; AND POSITIVE OR NEGATIVE...
;;6346 .IF/FPLONG
;;6347 =001
; 6348 .IFNOT/FPLONG
; 6349 =0*1
; 6350 .ENDIF/FPLONG
U 0151, 0066,4001,0000,0000,0005,1633,0000 ; 6351 SRND5: SR_0,B WRITE,J/ST6 ;POS & NOT LONG
;;6352 .IF/FPLONG
;;6353 SLNG3: AC0_AR,AR_0S,SC_#,#/27.,J/SLNG4 ;STORE HIGH PART OF LONG ANS
; 6354 .ENDIF/FPLONG
U 0155, 0066,5143,7000,0000,0025,1633,0000 ; 6355 AR_-AR,SR_0,B WRITE,J/ST6 ;NEG & NOT LONG
;;6356 .IF/FPLONG
;;6357 AR_-AR LONG,J/SLNG3 ;LONG NEG, MAKE IT SO
;;6358
;;6359 SLNG4: AR_SHIFT,I FETCH
;;6360 AR0-8_FE-SC,BYTE DISP, ;TEST FOR EXP UNDERFLOW
;;6361 SKP AR EQ ; OR LOW WORD ZERO
;;6362
;;6363 =110
; 6364 .ENDIF/FPLONG
U 1656, 0251,0001,0000,0000,0000,1610,0000 ; 6365 STRAC1: SR_0,J/STAC1 ;PUT AWAY LOW WORD OF LONG RESULT
;;6366 .IF/FPLONG
;;6367 AR_0S,SR_0,J/STAC1 ;CLEAR LOW WORD IN AC1
; 6368 .ENDIF/FPLONG
; 6369
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6370 .TOC "DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV"
; 6371
; 6372 .DCODE
D 0110, 4000,1414 ; 6373 110: R, B/0, J/DFLOAT ;DFAD
D 0111, 4201,1414 ; 6374 R, B/2, J/DFLOAT ;DFSB
D 0112, 4401,1414 ; 6375 R, B/4, J/DFLOAT ;DFMP
D 0113, 4600,1414 ; 6376 R, B/6, J/DFLOAT ;DFDV
; 6377 .UCODE
; 6378
; 6379 =0****00**0*
; 6380 DFLOAT: FE_EXP,EXP_SIGN,SC/SCAD,MQ_0.S,
; 6381 VMA_VMA+1,LOAD ARX,
U 1414, 0736,4001,0000,0203,1013,3662,0300 ; 6382 CALL.S,J/XFERW ;GET LOW WORD
U 1416, 0460,3701,0500,0000,0000,0033,0000 ; 6383 ARX_ARX*2,B DISP ;LOW BIT 0 IGNORED
; 6384 =
; 6385 =00*
U 0460, 0240,3240,5061,0000,0020,0010,0000 ; 6386 DFAS: BR_AR LONG,AR_AC1*2,J/DFAS1 ;MEM OP READY, GET AC OP
; 6387
U 0462, 0460,5163,7700,0000,0020,0027,0000 ; 6388 AR_-AR LONG,J/DFAS ;DFSB, NEGATE AND ADD
; 6389
; 6390 .IF/MODEL.B
; 6391 BR_AR LONG,GEN ARX,SKP AD NE, ;[241]HERE FOR DOUBLE FLT MUL
U 0464, 2240,3713,0060,0301,0020,5610,0756 ; 6392 FE_#,#/-18.,J/DFMP ;[241]BEGIN TEST FOR STICKY BIT
;;6393 .IFNOT/MODEL.B
;;6394 AR_AC1,BR_AR LONG, ;HERE FOR DBL FLOATING MUL
;;6395 FE_#,#/-18.,J/DFMP
; 6396 .ENDIF/MODEL.B
; 6397
; 6398 GEN AR*AC0,AD/XOR,SKP AD0, ;DFDV. WILL QUO BE NEG?
; 6399 BR_AR LONG, ;SAVE D'SOR IN BR, BRX
U 0466, 1340,3100,0060,3022,0020,5510,0000 ; 6400 SC_FE-1,J/DFDV
; 6401
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6402 ;HERE FOR DFAD AND DFSB
; 6403 ; MEM OPERAND IS IN BR (NEGATED IF DFSB)
; 6404 ; FE AND SC HAVE ITS EXPONENT
; 6405
; 6406 =0*0
U 0240, 1722,3200,2400,0000,1020,0050,0000 ; 6407 DFAS1: ARX_AR,AR_AC0,CALL,J/EXPD ;AC OPERAND IN PLACE
; 6408 =1*0
; 6409 DFAS2: ARX_AR,AR_SIGN, ;GET SHIFTED HIGH WORD
; 6410 GEN #+SC,#/-36., ;IS ANY SHIFT REQUIRED?
U 0244, 2222,5401,2400,2300,1020,5116,0734 ; 6411 SKP SCAD0,J/DFAS3
; 6412 ARX_AR,AR_SIGN, ;DIFF IS > 36
U 0245, 2220,5401,2400,2302,1020,5116,0044 ; 6413 SC_#+SC,#/36.,SKP SCAD0 ;CHECK FOR >72
; 6414 .IF/MODEL.B
; 6415 =0 AC0_AR,MQ_SHIFT,AR_ARX (ADX),
U 2220, 1702,3721,6310,0000,0000,1010,0000 ; 6416 ARX/MQ,J/DFAS6 ;[241]36 < DIFF < 72
;;6417 .IFNOT/MODEL.B
;;6418 =0 AC0_AR,MQ_SHIFT,AR_ARX (ADX),
;;6419 ARX/MQ,J/DFAS4 ;36 < DIFF < 72
; 6420 .ENDIF/MODEL.B
; 6421 AR_BR,ARL/AD,ARX_BRX, ;DIFF >72
U 2221, 1326,3202,2600,0000,0001,0010,0102 ; 6422 MQ_0.M,J/DNTRY ;NORMALIZE LARGER OP
; 6423 =0
; 6424 DFAS3: AR_ARX,ARL/SH,ARX/MQ, ;NO SHIFT REQUIRED
U 2222, 1677,4001,4300,0000,2001,0010,0104 ; 6425 MQ_0.M,J/DFAS5
U 2223, 1661,0001,4000,0000,0000,0010,0000 ; 6426 AR_SHIFT ;BEGIN SHIFTING SMALLER OP
U 1661, 1665,4001,4300,0000,2000,1010,0000 ; 6427 AC0_AR,AR_ARX,ARX/MQ ;HI PART TO AC
; 6428 MQ_SHIFT,AR_ARX (ADX), ;MID PART TO MQ
U 1665, 1671,3701,6010,0000,0000,0510,0000 ; 6429 CLR ARX ;SHIFT ZEROS IN FROM RIGHT
U 1671, 1677,3240,2310,0000,0020,0010,0000 ; 6430 DFAS4: MQ_SHIFT,ARX/MQ,AR_AC0 ;ALL PIECES NOW IN PLACE
; 6431 DFAS5: AR_AR+BR,ARX/ADX,SC_#,#/4, ;HERE WHEN OPERANDS ALIGNED
U 1677, 1360,0602,2600,0302,0060,0035,0004 ; 6432 NORM,J/DNORM ;ADD, AND NORMALIZE RESULT
; 6433 .IF/MODEL.B
U 1702, 1704,3721,2010,0000,0000,0010,0000 ; 6434 DFAS6: MQ_SHIFT,AR_MQ ;[241]GET H,L, PUT S,H IN AR
U 1704, 1706,3441,4201,0000,2000,1010,0000 ; 6435 AC1_AR,AR_ARX,ARX_0S ;[241]STORE S,H
U 1706, 1720,3200,4201,0000,0020,0010,0000 ; 6436 ARX_AC1,AR_SHIFT ;[241]GET L,0, GET S,H BACK
U 1720, 2230,3703,0000,0000,0020,5610,0000 ; 6437 GEN AR,SKP AD NE ;[241]TEST FOR 0'S,
U 2230, 1677,3200,2000,0000,0020,1610,0040 ; 6438 =0 CLR SR3,AR_AC0,J/DFAS5 ;[241]DO 2'S COMP, ALL IN PLACE
U 2231, 1677,3200,2000,0000,0020,1610,0061 ; 6439 SET SR3,AR_AC0,J/DFAS5 ;[241]DO 1'S COMP, ALL IN PLACE
; 6440 .ENDIF/MODEL.B
; 6441
; 6442 ;SUBROUTINE TO CHOOSE OPERAND WITH SMALLER EXPONENT, AND
; 6443 ; PREPARE FOR SHIFTING IT.
; 6444 ; ENTER WITH ONE OPERAND FRACTION IN BR, ITS EXPONENT IN FE & SC,
; 6445 ; THE OTHER OP IN AR WITH ITS EXPONENT IN AR0-8
; 6446 ; RETURN THE LARGER EXPONENT IN FE, AND 36-(MAGNITUDE OF DIFFERENCE)
; 6447 ; IN SC. RETURN 4 IF SC POSITIVE, 5 IF NEGATIVE.
; 6448
U 1722, 2232,4001,0000,5202,1020,5122,0200 ; 6449 EXPD: SC_EXP-SC,EXP_SIGN,SKP SCAD0 ;COMPARE MAGNITUDES
; 6450 =0 AR_BR,ARX_BRX,BR/AR,BRX/ARX, ;AC OP IS LARGER MAGNITUDE
U 2232, 1726,3202,2660,2001,0000,0010,0000 ; 6451 FE_FE+SC,J/EXPD1 ;ITS EXP TO FE
; 6452 MQ_ARX,SC_#+SC,#/36., ;CHECK FOR EXP DIFF > 36
U 2233, 0004,4001,0010,2302,2020,5103,0044 ; 6453 SKP SCAD0,RETURN4
; 6454 EXPD1: MQ_ARX,SC_#-SC,#/36., ;AC EXP .GE. MEM
U 1726, 0004,0001,0010,5302,2020,5103,0044 ; 6455 SKP SCAD0,RETURN4 ;SHIFT MEM OP
; 6456
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6457 ;DFMP
; 6458 ; DO TESTS FOR STICKY BITS FIRST THEN
; 6459 ; GET HERE WITH MEM OPERAND (M'CAND) IN BR!BRX
; 6460 ; AR HAS (AC1), LOW HALF OF M'IER
; 6461
; 6462 .IF/MODEL.B
; 6463 =0
U 2240, 0470,3200,2001,0000,0020,0010,0000 ; 6464 DFMP: AR_AC1,J/DFMP1 ;NO STICKY BIT
U 2241, 2242,3200,2001,0000,0020,5610,0000 ; 6465 AR_AC1,SKP AD NE ;GET AC LOW AND TEST
U 2242, 0470,4001,0000,0000,0000,0010,0000 ; 6466 =0 J/DFMP1 ;NO STICKY BIT
U 2243, 0470,4001,0000,0000,0000,1610,0061 ; 6467 SET SR3 ;WORRY ABOUT IT IN NORM
; 6468 =00*
; 6469 DFMP1: MQ_AR,AR_0S,ARX_0S, ;SETUP LOW M'IER
; 6470 SC_#+SC,#/-200, ;CORRECT EXPONENT
U 0470, 1442,3441,2210,2302,1000,0050,0600 ; 6471 CALL,J/MULREE ;MULTIPLY BY THE LOW PART
;;6472 .IFNOT/MODEL.B
;;6473 =00*
;;6474 DFMP: MQ_AR,AR_0S,ARX_0S, ;SETUP LOW M'IER
;;6475 SC_#+SC,#/-200, ;CORRECT EXPONENT
;;6476 CALL,J/MULREE ;MULTIPLY BY THE LOW PART
; 6477 .ENDIF/MODEL.B
U 0474, 0476,0602,2600,0000,0020,0027,0000 ; 6478 =10* AR_AR+BR LONG ;OOPS, LOW SIGN WAS SET
U 0476, 1745,3240,2010,0301,1020,0010,0762 ; 6479 MQ_AR,AR_AC0,FE_#,#/-14. ;READY TO CONTINUE WITH HIGH PART
; 6480
; 6481 ;HERE TO USE HIGH MULTIPLIER
; 6482
; 6483 SC_EXP+SC,EXP_SIGN.M, ;EXTRACT EXP FROM HIGH WORD
U 1745, 1322,4001,0000,2202,1001,4510,0200 ; 6484 SKP AR0 ;CHECK FOR NEG M'IER
; 6485 =010
U 1322, 1442,3723,2010,0000,1000,0050,0000 ; 6486 DFMP2: MQ_AR,AR_MQ,CALL,J/MULREE ;GO BACK IN FOR HIGH PART
U 1323, 1322,4001,0000,4400,2001,0010,0200 ; 6487 EXP_1,J/DFMP2 ;OOPS, NEG, MOVE SIGN TO BIT 8
; 6488 =110
U 1326, 1360,3703,0000,0302,0040,0035,0004 ; 6489 DNTRY: SC_#,#/4,GEN AR,NORM,J/DNORM ;NORMALIZE THE ANSWER
; 6490 =
; 6491
; 6492
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 18
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 6493
; 6494 ;DFDV
; 6495 ; GET HERE WITH DIVISOR IN BR!BRX, ITS EXP-1 IN SC
; 6496 ; SKIP IF D'SOR AND D'END SIGNS DIFFER
; 6497
; 6498 =000
U 1340, 0330,3200,5001,0000,0020,0050,0000 ; 6499 DFDV: AR_AC1*2,CALL,J/DFDV1 ;GET LOW D'END, GO START DIVIDE
; 6500 .IF/MODEL.B
U 1341, 0330,3200,5001,0000,0020,1650,0062 ; 6501 SET SR2,AR_AC1*2,CALL,J/DFDV1 ;NOTE NEG QUO
;;6502 .IFNOT/MODEL.B
;;6503 SR_1,AR_AC1*2,CALL,J/DFDV1 ;NOTE NEG QUO
; 6504 .ENDIF/MODEL.B
; 6505
; 6506 =011 AC1_AR,AR_MQ,ARL/AD,FE_FE+1, ;HERE FROM DDVSUB. NEW STEP CNT
U 1343, 0523,3723,2001,4001,0001,1050,0102 ; 6507 MQ_0.M,CALL.M,J/DIV+ ; SAVE HIGH QUO, RESUME
; 6508 =101 AC1_AR,AR_MQ,ARL/AD,FE_FE+1,
U 1345, 0522,3721,2001,4001,0001,1050,0102 ; 6509 MQ_0.M,CALL.M,J/DIV-
; 6510
; 6511 =111 AR_AC1,ARX/MQ,SC_#,#/4, ;POSITIVE QUOTIENT TO AR LONG
U 1347, 1360,3200,2301,0302,0040,0035,0004 ; 6512 NORM,J/DNORM ;NORMALIZE AND ROUND
; 6513
; 6514 =00
; 6515 DFDV1: ARX_AR,AR_AC0,SKP AD0, ;TEST DIVIDEND SIGN
; 6516 FE_#,#/26., ;SETUP COUNT FOR HIGH QUO
U 0330, 2150,3200,2400,0301,1020,5550,0032 ; 6517 CALL,J/FDVCHK ;GO CHECK DIVIDABILITY
U 0332, 1062,4001,0000,0000,0000,4210,0000 ; 6518 =10 SKP BR0,J/DDVSUB ;BEGIN DIVISION (RETURN ABOVE)
U 0333, 0066,4001,0000,0000,0000,1110,0624 ; 6519 SET FL NO DIV,J/IFNOP ;ABORT THE DIVISION
; 6520
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 19
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE PRECISION NORMALIZATION
; 6521 .TOC "DOUBLE PRECISION NORMALIZATION"
; 6522
; 6523 =000
U 1360, 2246,3723,0000,0302,0040,5427,0043 ; 6524 DNORM: SKP ARX+MQ NE,SC_#,#/35.,J/DNZERO ;AR=0
; 6525 .IF/MODEL.B
; 6526 BR/AR,BRX/ARX,AR_MQ COMP, ;RESULT NEG, MAKE POS
U 1361, 1766,2021,2060,0000,0000,1610,0062 ; 6527 SET SR2,J/DNNEG ;[241]FLAG NEGATIVE
;;6528 .IFNOT/MODEL.B
;;6529 BR/AR,BRX/ARX,AR_MQ COMP, ;RESULT NEG, MAKE POS
;;6530 SR_1,J/DNNEG ;FLAG NEGATIVE
; 6531 .ENDIF/MODEL.B
; 6532 AR_AR*.25 LONG,MQ_MQ*.25,
U 1362, 1770,3701,7710,2031,0000,0012,0004 ; 6533 FE_FE+#,#/4,J/DNHI ;MSB IN AR 1-6
; 6534 AR_AR*.25 LONG,
U 1363, 1365,3701,7700,2031,0000,0010,0002 ; 6535 FE_FE+#,#/2,J/DROUND ;MSB IN AR7
U 1364, 1365,0301,7700,4001,0020,0027,0000 ; 6536 AR_AR*.5 LONG,FE_FE+1 ;MSB IN AR8
; 6537 DROUND: AR_AR+1,ARX/ADX,NORM, ;MSB IS AR9, RIGHT ON
U 1365, 1146,4003,2600,0302,0060,0035,0043 ; 6538 SC_#,#/35.,J/DRND1
U 1366, 1365,3701,5500,3001,0000,0710,0001 ; 6539 (AR+ARX+MQ)*2,FE_FE-1,J/DROUND ;MSB IN AR10
U 1367, 1752,0001,4000,5001,0000,0010,0000 ; 6540 AR_SHIFT,FE_FE-SC ;SOMEWHERE IN AR 11-35
; 6541
U 1752, 1756,0001,4340,0000,2000,0010,0000 ; 6542 DNSHFT: BR/AR,AR_ARX,ARX/MQ ;SHIFT THE WHOLE THING
U 1756, 1761,3701,6010,0000,0000,0510,0000 ; 6543 MQ_SHIFT,AR_ARX (ADX),CLR ARX
; 6544 MQ_SHIFT,ARX/MQ,AR_BR,SC_#,#/10.,
U 1761, 1360,3202,2310,0302,0040,0035,0012 ; 6545 NORM,J/DNORM ;GIVE IT ANOTHER GO
; 6546
; 6547 .IF/MODEL.B
U 1766, 0356,0001,0000,0000,0000,0005,0000 ; 6548 DNNEG: SR DISP ;[241]TEST FOR 1'S COMP
U 0356, 2244,4003,2000,0000,0040,5410,0000 ; 6549 =1110 AR_AR+1,SKP CRY0,J/DNNEG1 ;[241]COMPLETE NEGATION OF MQ
; 6550 MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 0357, 1360,2502,2610,0000,1040,0035,0000 ; 6551 NORM,J/DNORM ;NORMALIZE THE POS FORM
; 6552 =0
; 6553 DNNEG1: MQ_AR,AR_BR COMP,ARX_BRX COMP,
U 2244, 1360,2502,2610,0000,1040,0035,0000 ; 6554 NORM,J/DNORM ;NORMALIZE THE POS FORM
U 2245, 1360,5142,2610,0000,1060,0035,0000 ; 6555 MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
;;6556 .IFNOT/MODEL.B
;;6557 DNNEG: AR_AR+1,SKP CRY0 ;COMPLETE NEGATION OF MQ
;;6558 =0 MQ_AR,AR_BR COMP,ARX_BRX COMP,
;;6559 NORM,J/DNORM ;NORMALIZE THE POS FORM
;;6560 MQ_AR,AR_-BR,ARX/ADX,NORM,J/DNORM
; 6561 .ENDIF/MODEL.B
; 6562
U 1770, 1326,3703,7710,0000,0000,0710,0001 ; 6563 DNHI: (AR+ARX+MQ)*.25,J/DNTRY ;GO TRY AGAIN
; 6564
; 6565 =0
U 2246, 0255,3401,2200,0000,0000,1610,0000 ; 6566 DNZERO: SR_0,AR_0S,ARX_0S,J/DBLST ;RESULT = 0, STORE THAT
U 2247, 1752,0001,4000,5001,0000,0010,0000 ; 6567 AR_SHIFT,FE_FE-SC,J/DNSHFT ;NOT ZERO, SHIFT AND TRY AGAIN
; 6568
; 6569 =110
U 1146, 1147,0303,7700,4001,0020,0027,0000 ; 6570 DRND1: AR_AR*.5 LONG,FE_FE+1 ;ROUNDING BLEW THE NORM, GO RIGHT
; 6571 EXP_FE TST,SR DISP,CLR MQ, ;STUFF EXP IN, CHECK RESULT SIGN
U 1147, 0375,4041,0220,0000,2020,0705,0413 ; 6572 BRX/ARX,ARX_1 ;READY IF NEGATION NECESSARY
; 6573
; 6574 .IF/MODEL.B
; 6575 =1101 ;[241]
;;6576 .IFNOT/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 19-1
; FP.MIC[10,5351] 19:08 8-Oct-81 DOUBLE PRECISION NORMALIZATION
;;6577 =0
; 6578 .ENDIF/MODEL.B
; 6579 AC0_AR,AR_SHIFT,ARX_BRX, ;STORE HIGH WORD, READY LOW
U 0375, 0246,3242,4600,0000,0217,1010,0000 ; 6580 I FETCH,J/STD1
; 6581 .IF/XADDR
; 6582 ARX_ARX*BRX,AD/ANDCA,SR_0, ;CLEAR ROUNDING BIT
U 0377, 2761,3002,0604,0000,0000,1610,0000 ; 6583 J/CDBLST
;;6584 .IFNOT/XADDR
;;6585 ARX_ARX*BRX,AD/ANDCA,SR_0 ;CLEAR ROUNDING BIT
;;6586 AR_-AR LONG,J/DBLST ;NEGATE RESULT AND STORE
; 6587 .ENDIF/XADDR
; 6588
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; BYTE.MIC[10,5351] 15:09 9-Aug-83 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 6589 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB"
; 6590
; 6591 .DCODE
; 6592 ;133: R, J/IBP ;OR ADJBP
D 0134, 6000,0310 ; 6593 134: RW, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD
D 0135, 4000,0314 ; 6594 R, J/LDB ;
D 0136, 6000,0400 ; 6595 RW, J/IDPB ;
D 0137, 4000,0404 ; 6596 R, J/DPB ;
; 6597 .UCODE
; 6598
; 6599 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER
; 6600 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES, SO THAT
; 6601 ;THE 10/11 INTERFACE AND STRING MAY ALSO USE THESE SUBROUTINES
; 6602
; 6603 =0****00*000
; 6604 .IFNOT/OWGBP
; 6605 ILDB: BR/AR,P_P-S,BYTE DISP, ;START IBP
U 0310, 1420,4001,0040,5110,3021,0074,0200 ; 6606 CALL.M,J/IBPS ;AND CALL SUBR
; 6607 =100
;;6608 .IFNOT/XADDR
;;6609 LDB: ARX_AR,SC_P,CALL,J/BYTEA ;BEGIN EA COMPUTATION
; 6610 .IF/XADDR
; 6611 LDB: ARX_AR,SC_P,BYTE DISP,
U 0314, 1444,4001,0400,0102,1020,0074,0000 ; 6612 CALL,J/BYTEA ;BEGIN EA COMPUTATION
; 6613 .ENDIF/XADDR
U 0315, 2260,0001,0000,2002,0000,0050,0000 ; 6614 SC_FE+SC,CALL,J/LDB1 ;SC_P+S WHILE LOADING AR
U 0317, 0075,4001,0000,0000,0217,1014,0000 ; 6615 =111 AC0_AR,CLR FPD,I FETCH,J/NOP ;DONE
; 6616 =
;;6617 .IF/OWGBP ;[265][251]
;;6618 ILDB: SKP PC SEC0,CALL,J/GTST ;TEST FOR NOT SEC 0 AND OWGBP [266]
;;6619 BR/AR,J/ILDB0 ; NO, CONTINUE
;;6620 BYTE PREV & CLR SR3,
;;6621 CALL [GBYTE] ;[255]YES, ENA PREVIOUS
;;6622 GEN AR, EXT BYTE READ, ;GET BYTE
;;6623 SR_#, J/LDB01 ;[255]ALLOW PREVIOUS ENABLE.
;;6624 =100
;;6625 LDB: SKP PC SEC0,CALL,J/GTST ;TEST FOR NOT SEC 0 AND OWGBP [266]
;;6626 ARX_AR,BR/AR,J/LDB0 ;NO, CONTINUE
;;6627 BYTE PREV & SET SR3,
;;6628 CALL [GBYTE] ;[255]YES, ENA PREVIOUS
;;6629 GEN AR,EXT BYTE READ, ;GET BYTE
;;6630 SR_#, J/LDB01 ;[255]ALLOW PREVIOUS ENABLE.
;;6631 =
;;6632 =000
;;6633 ILDB0: P_P-S,BYTE DISP,
;;6634 CALL.M,J/IBPS ;START IBP
;;6635 =100
;;6636 LDB0: ARX_AR,SC_P,BYTE DISP,
;;6637 CALL,J/BYTEA ;DO EA COMP
;;6638 LDB01: SC_FE+SC,CALL,J/LDB1 ;SC_P+S WHILE LOAD AR
;;6639 =111 AC0_AR,CLR FPD,I FETCH,J/NOP ;DONE
;;6640
;;6641
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; BYTE.MIC[10,5351] 15:09 9-Aug-83 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
;;6642
;;6643 =0
;;6644 GBYTE: BR/AR,CALL,J/CNV2WD ;CONVERT TO A 2WD FORMAT
;;6645 SC_P,SR DISP ;SAVE P, INC POINTER ?
;;6646 =1110 AR_BR,BYTE DISP,CALL,J/INC2WD ;YES, (INC ADDR) AND STORE
;;6647 AR_BR,RETURN1 ;[335] NO, GET whole ADDRESS
;;6648 =0
;;6649 GTST: SC_P-#,#/45, SKP SCAD0,J/GTST1 ;TEST FOR ONE WORD GLOBAL [265]
;;6650 RETURN1 ;NOT IN SEC 0
;;6651 =0
;;6652 GTST1: BR/AR,RETURN2 ;DO OWG CODE
;;6653 RETURN1 ;NOT OWG
; 6654 .ENDIF/OWGBP ;[265][251]
; 6655 =
; 6656
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; BYTE.MIC[10,5351] 15:09 9-Aug-83 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 6657
; 6658 =0****00*000
; 6659 .IFNOT/OWGBP ;[265]
; 6660 IDPB: BR/AR,P_P-S,BYTE DISP, ;START IBP
U 0400, 1420,4001,0040,5110,3021,0074,0200 ; 6661 CALL.M,J/IBPS
; 6662 =100
;;6663 .IFNOT/XADDR
;;6664 .IFNOT/SMP
;;6665 DPB: ARX_AR,SC_P,CALL,J/BYTEA ;COMPUTE EFFECTIVE BYTE ADDR
;;6666 .IF/SMP
;;6667 DPB: ARX_AR,SC_P,CALL,J/BYTEAP ;COMPUTE EFFECTIVE BYTE ADDR
;;6668 .ENDIF/SMP
; 6669 .IF/XADDR
;;6670 .IFNOT/SMP ;[324]
;;6671 DPB: ARX_AR,SC_P,BYTE DISP,
;;6672 CALL,J/BYTEA ;COMPUTE EFFECTIVE BYTE ADDR
; 6673 .IF/SMP ;[324]
; 6674 DPB: ARX_AR,SC_P,BYTE DISP, ;[324] SMP. Must interlock
U 0404, 1464,0001,0400,0102,1020,0074,0000 ; 6675 CALL,J/BYTEAP ;COMPUTE EFFECTIVE BYTE ADDR
; 6676 .ENDIF/SMP ;[324]
; 6677 .ENDIF/XADDR
; 6678 =101
; 6679 AR_AC0,TIME/3T,SC_#-SC,#/36., ;COMPUTE 36-P
U 0405, 2266,3200,2000,5302,0020,5150,0044 ; 6680 CALL,SKP SCAD0,J/DPB1 ;CALL DEPOSITOR
; 6681 =111
U 0407, 0020,4001,0003,0000,0217,0010,0000 ; 6682 BFIN: FIN STORE,I FETCH,J/CLRFPD ;DONE
;;6683 .IF/OWGBP ;[265][251]
;;6684 IDPB: SKP PC SEC0,CALL,J/GTST ;TEST FOR NOT SEC 0 AND OWGBP [266]
;;6685 BR/AR,J/IDPB0 ; NO, CONTINUE
;;6686 BYTE PREV & CLR SR3,
;;6687 CALL [GBYTE] ;[255]YES, ENA PREVIOUS
;;6688 GEN AR, EXT BYTE READ, ;GET BYTE
;;6689 J/DPB01
;;6690 =100
;;6691 DPB: SKP PC SEC0,CALL,J/GTST ;TEST FOR NOT SEC 0 AND OWGBP [266]
;;6692 ARX_AR,BR/AR,J/DPB0 ;NO, CONTINUE
;;6693 BYTE PREV & SET SR3,
;;6694 CALL [GBYTE] ;[255]YES, ENA PREVIOUS
;;6695 GEN AR,EXT BYTE READ, ;GET BYTE
;;6696 J/DPB01 ;[256]
;;6697 =
;;6698 =000
;;6699 IDPB0: P_P-S,BYTE DISP, ;START IBP
;;6700 CALL.M,J/IBPS
;;6701 =100
;;6702 .IF/SMP
;;6703 DPB0: ARX_AR,SC_P,BYTE DISP,
;;6704 CALL,J/BYTEAP ;DO EA COMP
;;6705 .IFNOT/SMP
;;6706 DPB0: ARX_AR,SC_P,BYTE DISP,
;;6707 CALL,J/BYTEA ;DO EA COMP
;;6708 .ENDIF/SMP
;;6709 DPB01: AR_AC0,TIME/3T,SC_#-SC,#/36., ;COMPUTE 36-P
;;6710 CALL,SKP SCAD0,J/DPB1 ;CALL DEPOSITOR
;;6711 =111
;;6712 BFIN: FIN STORE,I FETCH,J/CLRFPD ;DONE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3-1
; BYTE.MIC[10,5351] 15:09 9-Aug-83 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 6713 .ENDIF/OWGBP ;[265][251]
; 6714 =
; 6715
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; BYTE.MIC[10,5351] 15:09 9-Aug-83 INCREMENT BYTE POINTER SUBROUTINE
; 6716 .TOC "INCREMENT BYTE POINTER SUBROUTINE"
; 6717
; 6718 ;THIS SUBROUTINE IS CALLED BY THE INSTRUCTIONS ILDB, IDPB AS
; 6719 ;WELL AS THE MICROCODED 10/11 INTERFACE HANDLER.
; 6720 ;CALL WITH BYTE DISP TESTING FPD AND SIGN OF P-S
; 6721 ;[TIME=2+2(BP OVFLO)]
; 6722
;;6723 .IFNOT/XADDR
;;6724 =010 ;BR12 IRELEVANT
;;6725 IBPS: STORE,RETURN4 ;SIMPLE, NO OVERFLOW
;;6726 FE_#,#/36.,GEN AR+1,TIME/2T, ;HERE IF OVRFLO OF WORD
;;6727 ARX_AR,J/NXTWRD
;;6728 AR_BR,RETURN4 ;FPD WAS SET, RESTORE AR
;;6729 AR_BR,RETURN4 ; AND CONVERT TO LDB OR DPB
;;6730 ;TEST BR12 ONLY
;;6731 NXTWRD: AR_AR+1,P_FE-S,STORE,
;;6732 TIME/2T,RETURN4
;;6733
;;6734
;;6735 .TOC "BYTE EFFECTIVE ADDRESS EVALUATOR - NO XADDR"
;;6736
;;6737 ;ENTER WITH POINTER IN AR, ARX, AND BR
;;6738 ;RETURN1 WITH (EA) LOADING INTO AR AND ARX,
;;6739 ;FPD SET, P IN SC, AND S IN FE
;;6740 ;[TIME=4+1(INDEXED)+?(INDIRECT)]
;;6741
;;6742 BYTEA: MEM_AR,FE_S,SET FPD, ;PUT AWAY UPDATED POINTER
;;6743 EA MOD DISP ;EVAL BP ADDR
;;6744 =1100
;;6745 BFETCH: GEN ARX,BYTE READ,RETURN1 ;START DATA FETCH
;;6746 GEN ARX+XR,BYTE READ,RETURN1 ;ADDRESS IS INDEXED
;;6747 GEN ARX,BYTE INDRCT,J/BYTEI ;DO INDIRECT
;;6748 GEN ARX+XR,BYTE INDRCT,J/BYTEI ;INDIRECT INDEXED!!!
;;6749
;;6750 BYTEI: ARX_MEM,SKP INTRPT ;WAIT FOR INDIRECT WORD
;;6751 =0 EA MOD DISP,J/BFETCH ;PROCEED IN ADDR EVAL
;;6752 SR DISP,J/CLEAN ;INTERRUPTED, CLEAN UP AS REQ'D
;;6753 .IF/SMP
;;6754 BYTEAP: MEM_AR,FE_S,SET FPD, ;PUT AWAY UPDATED POINTER
;;6755 EA MOD DISP ;EVAL BP ADR
;;6756
;;6757 =1100
;;6758 BFETCHP:GEN ARX,BYTE RPW,RETURN1 ;START DATA FETCH. RPW CYCLE
;;6759 GEN ARX+XR,BYTE RPW,RETURN1 ;ADDRESS IS INDEXED
;;6760 GEN ARX,BYTE INDRCT,J/BYTEIP ;DO INDIRECT
;;6761 GEN ARX+XR,BYTE INDRCT,J/BYTEIP ;INDIRECT INDEXED!!!
;;6762
;;6763 BYTEIP: ARX_MEM,SKP INTRPT ;WAIT FOR INDIRECT WORD
;;6764 =0 EA MOD DISP,J/BFETCHP ;[231] PROCEED IN ADR EVAL
;;6765 SR DISP,J/CLEAN ;INTERRUPTED. CLEAN UP AS REQ'D
;;6766 .ENDIF/SMP
; 6767 .IF/XADDR
; 6768
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; BYTE.MIC[10,5351] 15:09 9-Aug-83 INCREMENT BYTE POINTER SUBROUTINE
; 6769 ;IBP SUBROUTINE
; 6770 ; CALL WITH BP IN AR, P_P-S, BYTE DISP
; 6771
; 6772 =000
U 1420, 0004,0001,0000,0000,0016,0003,0000 ; 6773 IBPS: STORE,RETURN4 ;SIMPLE CASE
; 6774 FE_#,#/36.,GEN AR+1,TIME/2T, ;POINTER OVERFLOW, B12=0
U 1421, 2250,4003,0000,0301,0000,0010,0044 ; 6775 J/NXTWRD
U 1422, 0004,0001,0000,0000,0016,0003,0000 ; 6776 STORE,RETURN4 ;B12=1 BUT NO OVERFLOW
; 6777 FE_#,#/36.,GEN AR+1,TIME/2T, ;OVERFLOW, B12=1
U 1423, 2250,4001,0000,0301,0000,7510,0044 ; 6778 SKP -VMA SEC0,J/NXTWRD
U 1424, 0004,3242,2000,0000,0000,0003,0000 ; 6779 AR_BR,RETURN4
U 1425, 0004,3242,2000,0000,0000,0003,0000 ; 6780 AR_BR,RETURN4
U 1426, 0004,3242,2000,0000,0000,0003,0000 ; 6781 AR_BR,RETURN4
U 1427, 0004,3242,2000,0000,0000,0003,0000 ; 6782 AR_BR,RETURN4
; 6783 =0
; 6784 NXTWRD: P_FE-S,AR_AR+1,TIME/2T, ;SINGLE WORD BP
U 2250, 0004,4001,2000,5010,3016,0603,0200 ; 6785 STORE,RETURN4
U 2251, 1776,4001,0000,5010,3012,3622,0200 ; 6786 VMA_VMA+1,LOAD AR,P_FE-S.S ;DOUBLE... GET OTHER HALF
U 1776, 2027,3200,0403,0000,1022,0010,0000 ; 6787 ARX_AR,AR_MEM
U 2027, 2252,4003,2040,0102,0020,4510,0000 ; 6788 SC_P,SKP AR0,BR/AR,AR_AR+1 ;IFIW OR EFIW?
U 2252, 2033,0001,0000,2400,3016,0110,0000 ; 6789 =0 P_SC#,STORE,J/NXTW2 ;EFIW, CARRY STOPS AT B6
U 2253, 2033,3242,0000,0000,0016,0610,0002 ; 6790 ARL_BRL,STORE ;IFIW, CARRY STOPS AT B18
; 6791 NXTW2: FIN STORE,AR_ARX,
U 2033, 0004,0001,4003,0000,2016,3503,0000 ; 6792 VMA_VMA-1,STORE,RETURN4
; 6793
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; BYTE.MIC[10,5351] 15:09 9-Aug-83 INCREMENT BYTE POINTER SUBROUTINE
; 6794 ;HERE TO EVALUATE EFFECTIVE ADDRESS OF BYTE POINTER.
; 6795 ; ENTER AT BYTEA WITH BYTE DISP (SCAD0=0), EXCEPT FOR EXTENDED
; 6796 ; INSTRUCTION SET, WHICH MUST GET SECOND PART OF POINTER FROM
; 6797 ; AC AND MUST NOT SET FPD, AND THEREFORE ENTERS AT BFETCH (FOR
; 6798 ; SINGLE-WORD POINTERS) OR BYTEI (FOR LONG POINTERS).
; 6799
; 6800 =100
; 6801 BYTEA: MEM_AR,FE_S,SET FPD,
U 1444, 0434,2341,0003,2411,0002,1136,0100 ; 6802 EA MOD DISP,J/BFETCH
U 1445, 2034,0001,0000,2411,0011,3610,0610 ; 6803 READ BP2,FE_S,J/BPART2 ;GET SECOND WORD
U 1446, 1444,4001,0003,0000,0002,7510,0000 ; 6804 MEM_AR,SKP -VMA SEC0,J/BYTEA ;B12=1. OBEY IF NOT SEC0
; 6805 =
; 6806 =0000
; 6807 BXA: GEN ARX,GLOBAL,BYTE INDRCT,
U 0420, 2254,3711,0000,0000,1111,7010,0610 ; 6808 SKP INTRPT,J/BYTEI
; 6809 GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0421, 2254,0610,0002,0000,1131,7010,0610 ; 6810 SKP INTRPT,J/BYTEI
; 6811 GEN ARX,GLOBAL,BYTE INDRCT,
U 0422, 2254,3711,0000,0000,1111,7010,0610 ; 6812 SKP INTRPT,J/BYTEI
; 6813 GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0423, 2254,0610,0002,0000,1131,7010,0610 ; 6814 SKP INTRPT,J/BYTEI
; 6815
U 0424, 0001,3711,0000,0000,1111,0003,0620 ; 6816 GEN ARX,GLOBAL,BYTE READ,RETURN1
U 0425, 0001,0610,0002,0000,1131,0003,0620 ; 6817 GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
U 0426, 0001,3711,0000,0000,1111,0003,0620 ; 6818 GEN ARX,GLOBAL,BYTE READ,RETURN1
U 0427, 0001,0610,0002,0000,1131,0003,0620 ; 6819 GEN ARX+XR,GLOBAL,BYTE READ,RETURN1
; 6820
U 0430, 0170,0001,0000,0301,0000,0010,0024 ; 6821 FE_#,#/24,J/PF24 ;ILLEGAL FORMAT INDIRECT WORD
U 0431, 0170,0001,0000,0301,0000,0010,0024 ; 6822 FE_#,#/24,J/PF24
U 0432, 0170,0001,0000,0301,0000,0010,0024 ; 6823 FE_#,#/24,J/PF24
U 0433, 0170,0001,0000,0301,0000,0010,0024 ; 6824 FE_#,#/24,J/PF24
; 6825
; 6826 BFETCH:
U 0434, 0001,3701,0000,0000,0111,0003,0620 ; 6827 GEN AR,BYTE READ,RETURN1
U 0435, 0001,0600,0002,4000,2131,0003,0620 ; 6828 GEN AR+XR,INDEXED,BYTE READ,RETURN1
; 6829 GEN AR,BYTE INDRCT,
U 0436, 2254,3701,0000,0000,0111,7010,0610 ; 6830 SKP INTRPT,J/BYTEI
; 6831 GEN AR+XR,INDEXED,BYTE INDRCT,
U 0437, 2254,0600,0002,4000,2131,7010,0610 ; 6832 SKP INTRPT,J/BYTEI
; 6833
U 2034, 2254,4001,0000,0000,0000,1110,0100 ; 6834 BPART2: SET FPD ;SET BEFORE FAULTING
; 6835 =0
U 2254, 2102,3240,0003,0000,0022,2510,0000 ; 6836 BYTEI: ARX_MEM,LONG EN,J/BYTEI2
U 2255, 0144,3200,0003,0000,0022,7710,0000 ; 6837 ARX_MEM,TAKE INTRPT
U 2102, 0420,2341,4002,0000,2020,0036,0000 ; 6838 BYTEI2: AR_ARX,XR,EA MOD DISP,TIME/3T,J/BXA
; 6839
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; BYTE.MIC[10,5351] 15:09 9-Aug-83 BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB
; 6840 .TOC "BYTE EFFECTIVE ADDRESS EVALUATOR FOR XADDR SMP LDB"
; 6841
; 6842 ;
; 6843 ; The following code segment is virtually identical to the preceding
; 6844 ; hunk. Unfortunately, in order to make DPB do an RPW interlock and
; 6845 ; allow extended addressing, it is necessary to completely duplicate
; 6846 ; the effective address evaluation code (as it exits from a 16 word
; 6847 ; dispatch block). Thus we waste gross amounts of microstore. Ugh.
; 6848 ;
; 6849 .IF/SMP ; [303]
; 6850 =100
; 6851 BYTEAP: MEM_AR,FE_S,SET FPD,
U 1464, 0454,2341,0003,2411,0002,1136,0100 ; 6852 EA MOD DISP,J/BFETCHP
U 1465, 2104,4001,0000,2411,0011,3610,0610 ; 6853 READ BP2,FE_S,J/BPART2P ;GET SECOND WORD
U 1466, 1464,0001,0003,0000,0002,7510,0000 ; 6854 MEM_AR,SKP -VMA SEC0,J/BYTEAP ;B12=1. OBEY IF NOT SEC0
; 6855 =
; 6856 =0000
; 6857 BXAP: GEN ARX,GLOBAL,BYTE INDRCT,
U 0440, 2256,3713,0000,0000,1111,7010,0610 ; 6858 SKP INTRPT,J/BYTEIP
; 6859 GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0441, 2256,0610,0002,4000,1131,7010,0610 ; 6860 SKP INTRPT,J/BYTEIP
; 6861 GEN ARX,GLOBAL,BYTE INDRCT,
U 0442, 2256,3713,0000,0000,1111,7010,0610 ; 6862 SKP INTRPT,J/BYTEIP
; 6863 GEN ARX+XR,GLOBAL,BYTE INDRCT,
U 0443, 2256,0610,0002,4000,1131,7010,0610 ; 6864 SKP INTRPT,J/BYTEIP
; 6865
U 0444, 0001,3711,0000,0000,1111,0003,0760 ; 6866 GEN ARX,GLOBAL,BYTE RPW,RETURN1 ; [303] Interlock for SMP
U 0445, 0001,0610,0002,0000,1131,0003,0760 ; 6867 GEN ARX+XR,GLOBAL,BYTE RPW,RETURN1
U 0446, 0001,3711,0000,0000,1111,0003,0760 ; 6868 GEN ARX,GLOBAL,BYTE RPW,RETURN1
U 0447, 0001,0610,0002,0000,1131,0003,0760 ; 6869 GEN ARX+XR,GLOBAL,BYTE RPW,RETURN1
; 6870
U 0450, 0170,0001,0000,0301,0000,0010,0024 ; 6871 FE_#,#/24,J/PF24 ;ILLEGAL FORMAT INDIRECT WORD
U 0451, 0170,0001,0000,0301,0000,0010,0024 ; 6872 FE_#,#/24,J/PF24
U 0452, 0170,0001,0000,0301,0000,0010,0024 ; 6873 FE_#,#/24,J/PF24
U 0453, 0170,0001,0000,0301,0000,0010,0024 ; 6874 FE_#,#/24,J/PF24
; 6875
U 0454, 0001,3701,0000,0000,0111,0003,0760 ; 6876 BFETCHP: GEN AR,BYTE RPW,RETURN1
U 0455, 0001,0600,0002,4000,2131,0003,0760 ; 6877 GEN AR+XR,INDEXED,BYTE RPW,RETURN1
; 6878 GEN AR,BYTE INDRCT,
U 0456, 2256,3703,0000,0000,0111,7010,0610 ; 6879 SKP INTRPT,J/BYTEIP
; 6880 GEN AR+XR,INDEXED,BYTE INDRCT,
U 0457, 2256,0600,0002,0000,2131,7010,0610 ; 6881 SKP INTRPT,J/BYTEIP
; 6882
U 2104, 2256,0001,0000,0000,0000,1110,0100 ; 6883 BPART2P: SET FPD ;SET BEFORE FAULTING
; 6884 =0
U 2256, 2117,3200,0003,0000,0022,2510,0000 ; 6885 BYTEIP: ARX_MEM,LONG EN,J/BYTEI2P
U 2257, 0144,3200,0003,0000,0022,7710,0000 ; 6886 ARX_MEM,TAKE INTRPT
U 2117, 0440,2341,4002,0000,2020,0036,0000 ; 6887 BYTEI2P: AR_ARX,XR,EA MOD DISP,TIME/3T,J/BXAP
; 6888 .ENDIF/SMP
; 6889 .ENDIF/XADDR
; 6890
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; BYTE.MIC[10,5351] 15:09 9-Aug-83 LOAD BYTE SUBROUTINE
; 6891 .TOC "LOAD BYTE SUBROUTINE"
; 6892 ;ENTER WITH S IN FE, P+S IN SC, AND AR LOAD IN PROGRESS
; 6893 ;SKP INTERRUPT AT ENTRY IS OPTIONAL
; 6894 ;RETURN2 WITH BYTE RIGHT JUSTIFIED IN AR
; 6895 ;[TIME=7]
; 6896 =0
; 6897 LDB1: AR_MEM,SC_#-SC,#/36.,SKP SCAD0, ;36-(P+S)
U 2260, 2262,3200,0003,5302,0022,5110,0044 ; 6898 TIME/3T,J/LDB2
U 2261, 0040,3240,0003,0000,0022,0005,0000 ; 6899 AR_MEM,SR DISP,J/CLEAN ;HERE IF INTERRUPT PENDING
; 6900
; 6901 =0
U 2262, 2264,3441,2400,0000,0000,0013,0000 ; 6902 LDB2: ARX_SHIFT,AR_0S,SC_FE,J/SHIFT ;BYTE IN ARX HI, READY TO SHIFT
; 6903 ARX_AR,AR_0S, ;P+S > 36, PUT BYTE IN ARX HI
U 2263, 2264,3401,2400,2002,1020,5110,0000 ; 6904 SC_FE+SC,SKP SCAD0 ;ADJUST S AND SHIFT BYTE
; 6905
; 6906 ;PUT BYTE INTO AR RIGHT-JUSTIFIED
; 6907 ; THIS INSTRUCTION ALSO CALLED ALONE AS A SUBROUTINE
; 6908
; 6909 =0
U 2264, 0002,0001,4000,0000,0000,0003,0000 ; 6910 SHIFT: AR_SHIFT,RETURN2 ;RETURN WITH BYTE IN AR
U 2265, 0002,4001,0000,0000,0000,0003,0000 ; 6911 RETURN2 ;BYTE WAS OFF THE END, RETURN AR=0
; 6912
; 6913
; 6914 .TOC "DEPOSIT BYTE SUBROUTINE"
; 6915 ;ENTER WITH BYTE RIGHT JUSTIFIED IN AR, POINTER IN BR,
; 6916 ; S IN FE, 36-P IN SC, AND LOAD AR-ARX STARTED
; 6917 ; SKP IF P>36
; 6918 ;RETURN3 WITH FINAL STORE IN PROGRESS
; 6919 ;[TIME=11]
; 6920
; 6921 =0
; 6922 DPB1: MQ_AR,AR_MEM,ARX_MEM, ;GET WORD TO ROTATE 36-P
; 6923 GEN FE-SC-1,TIME/3T, ; [303] COMPUTE S-(36-P)-1
U 2266, 2270,3200,0013,1000,1022,5110,0000 ; 6924 SKP SCAD0,J/DPB2 ;CHECK THAT P+S<=36
;;6925 .IFNOT/SMP ;[335]
;;6926 AR_MEM,RETURN3 ;[226]P>36, STORE NOTHING
; 6927 .IF/SMP ;[335]
U 2267, 2174,3240,0003,0402,0022,0010,0000 ; 6928 AR_MEM,SC_0,J/RELMEM ;[335] Must release memory if RPW
; 6929 .ENDIF/SMP
; 6930
; 6931 =0
U 2270, 2271,0001,0000,2401,0000,0010,0000 ; 6932 DPB2: FE_SC ;P+S>36, S_36-P
;;6933 .IFNOT/MODEL.B
;;6934 .IF/SMP
;;6935 ARX_AR ;WORD TO ROTATE TO ARX
;;6936 .ENDIF/SMP
; 6937 .ENDIF/MODEL.B
; 6938 ARX_SHIFT,AR_MQ,SC_FE, ;ARX HAS P,X,S
U 2271, 2123,3723,2400,5301,0000,0013,0110 ; 6939 FE_#-SC,#/72. ;SC_S, FE_72-(36-P)=36+P
U 2123, 2166,0001,0000,5302,0000,0010,0044 ; 6940 SC_#-SC,#/36. ;SC_36-S (KNOWN .LE. P)
; 6941 AR_SHIFT,ARX_SHIFT, ;S,P,X
U 2166, 2174,0001,4400,5002,0000,0010,0000 ; 6942 SC_FE-SC ;SC_(36+P)-(36-S)=P+S
U 2174, 0003,0001,4000,0000,0016,0003,0000 ; 6943 RELMEM: AR_SHIFT,STORE,RETURN3 ;[335] DONE, STORE IT BACK
; 6944
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
; 6945 .TOC "IBP, ADJBP"
; 6946
; 6947 ;IBP OR ADJBP
; 6948 ;IBP IF AC#0, ADJBP OTHERWISE
; 6949 ; HERE WITH THE BASE POINTER IN AR
; 6950
; 6951 ;IBP: SKP AC#0 ;IS THIS IBP OR ADJBP?
; 6952 .IF/ADJBP
; 6953 =000
;;6954 .IFNOT/XADDR
;;6955 IBP1: T0_AR,BR/AR, ;SAVE POINTER FOR ADJBP
;;6956 SC_S,AR_0S,CALL,J/GETSC ; GET BYTE SIZE
; 6957 .IF/XADDR
; 6958 IBP1: T0_AR,BR/AR,BYTE DISP, ;SAVE POINTER, TEST B12
U 1520, 1325,3441,2047,2412,0020,1074,0166 ; 6959 SC_S,AR_0S,CALL,J/GETSC ;GET SIZE, SECOND WORD IF NEEDED
; 6960 .ENDIF/XADDR
; 6961 .ENDIF/ADJBP
; 6962 =001
; 6963 IBP2: BR/AR,P_P-S,CALL.M, ;NEW P UNLESS OVERFLOW
U 1521, 1420,4001,0040,5110,3021,0074,0200 ; 6964 BYTE DISP,J/IBPS ;[245]
; 6965 .IF/ADJBP
U 1522, 2176,3242,2040,0000,0000,0010,0000 ; 6966 BR/AR,AR_BR,J/ADJBP ;HOLD S IN BR
; 6967 .ENDIF/ADJBP
U 1525, 0075,4001,0003,0000,0217,0010,0000 ; 6968 =101 FIN STORE,I FETCH,J/NOP ;IBP DONE
; 6969 =
; 6970
; 6971 ;HERE FOR ADJUST BYTE POINTER (IBP WITH NON-ZERO AC)
; 6972 ; BYTE SIZE (S) IS RIGHT ADJUSTED IN BR AND MQ
; 6973 ; FULL POINTER IS IN AR, AND SAVED IN T0
; 6974
; 6975 .IF/ADJBP
; 6976
; 6977 ADJBP: SC_P,AR+ARX+MQ_0.M, ;GET P
U 2176, 0350,7162,0000,0102,0041,5410,0170 ; 6978 SKP BR EQ ;CHECK SIZE IS NON-ZERO
; 6979
U 0350, 2652,4001,0020,2400,3001,0050,0200 ; 6980 =00 BRX/ARX,P_SC,CALL.M,J/SIXDIV ;DIVIDE P BY S
U 0351, 0067,3200,2007,0000,0020,0010,0166 ; 6981 AR_T0,J/IFSTAC ;OOPS, S=0, RETURN UNALTERED POINTER
; 6982 T1_AR,AR_0S,ARX_0S, ;SAVE P/S
U 0352, 0674,3401,2207,5002,0000,1010,0171 ; 6983 SC_FE-SC ;36-P IN SC
; 6984 =
U 0674, 2652,4001,0000,2400,3001,0050,0300 ; 6985 =0* P_SC,MQ_0.M,CALL.M,J/SIXDIV ;36-P IN AR0-5
U 0676, 2272,0600,2007,0000,0040,5610,0171 ; 6986 AR_AR+T1,SKP AD NE ;(P/S)+(36-P/S)=BYTES/WORD
U 2272, 0213,0001,0000,0000,0217,0010,0000 ; 6987 =0 I FETCH,J/NODIVD ;ABORT, BYTES/WORD=0
U 2273, 2204,0001,4047,0000,2000,1010,0171 ; 6988 T1_AR,BR/AR,AR_ARX ;SAVE BYTES/WORD, READY TO
; 6989 ; DIVIDE BY IT
U 2204, 2206,3723,2007,0000,0000,1010,0172 ; 6990 T2_AR,AR_MQ ;SAVE REMAIN(36-P/S), GET (36-P)/S
; 6991 AR_AR*AC0,AD/A+B,ARL/AD, ;ADJUSTMENT IN AR
U 2206, 1564,0600,2000,0000,0021,0010,0142 ; 6992 ARX+MQ_0.M
; 6993
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
; 6994 ;COMPUTE QUOTIENT Q AND REMAINDER R OF ADJUSTMENT/(BYTES/WORD)
; 6995 ; SUCH THAT ADJUSTMENT=Q*(BYTES/WORD)+R, 1 .LE. R .LE. (BYTES/WORD)
; 6996 ; SINCE ADJUSTMENT IS CALCULATED RELATIVE TO LEFT-MOST BYTE OF
; 6997 ; A WORD, THIS GIVES Q AS THE NUMBER OF WORDS BY WHICH TO INDEX THE
; 6998 ; BYTE POINTER, AND R AS THE NUMBER OF BYTES FROM THE LEFT OF THE
; 6999 ; WORD. MULTIPLYING R BY THE BYTE SIZE WILL GIVE THE NUMBER OF BITS
; 7000 ; FROM THE LEFTMOST BYTE, AND ADDING REMAIN(36-P/S) WILL GIVE NUMBER
; 7001 ; OF BITS FROM BIT 0. FINALLY, WE MUST SUBTRACT THIS FROM 36 TO GET
; 7002 ; THE CORRECT P FIELD, WHICH IS ALWAYS RELATIVE TO THE RIGHT EDGE OF
; 7003 ; THE WORD.
; 7004 ;
; 7005 ; SR1 = 1 DON'T DO FETCH OF NEXT INST (ADJBP WITH OWGBP)
; 7006
U 1564, 2106,0001,0000,4402,0000,1050,0000 ; 7007 =100 AC0_AR,SC_1,CALL,J/DIV2 ;DO THE BASIC DIVIDE
; 7008 =110 ARX_-BRX,FE_#,#/-4, ;NEG QUO ==> NEG REMAIN
U 1566, 1604,5162,0600,0301,0020,0005,0774 ; 7009 SR DISP,J/ADJD1 ;TEST FOR DOUBLE-WORD POINTER
; 7010 ARX/MQ,SKP AR NE,FE_#,#/-4, ;POS QUO. IS REMAIN .GT. 0?
U 1567, 1604,3703,0300,0301,0040,5405,0774 ; 7011 SR DISP
;;7012 .IFNOT/XADDR
;;7013 =10
; 7014 .IF/XADDR
; 7015 =100
; 7016 .ENDIF/XADDR
U 1604, 2645,0600,2007,0000,0020,0010,0171 ; 7017 ADJD1: AR_AR+T1,J/ADJD2 ;INCREASE REM TO MEET CONSTRAINT
; 7018 BR/AR,AR_ARX (ADX), ;REMAIN IN RANGE,
U 1605, 2646,3701,6040,0000,0001,0010,0060 ; 7019 ARL+ARX_0.M,J/ADJD3 ; QUOTIENT TO ARR
; 7020 .IF/XADDR
U 1606, 2211,0600,2007,0000,0020,0010,0171 ; 7021 AR_AR+T1,J/ADJX2 ;INCREASE REMAIN & DECR QUO
;;7022 .IF/OWGBP
;;7023 ADJX3: BR/AR,AR_ARX,SR DISP ;[251] REM TO BR, OWGBP ?
;;7024 =011 AR_AC1,SKP AD0,J/ADJX4 ; NO, WD2 EFIW OR IFIW?
;;7025 AR_AR+T0,J/ADJX1 ; YES, INC ADDRESS
; 7026 .IFNOT/OWGBP
U 1607, 2274,3240,2041,0000,0020,5510,0000 ; 7027 ADJX3: BR/AR,AR_AC1,SKP AD0,J/ADJX4 ;REM TO BR, WD2 EFIW OR IFIW?
; 7028 .ENDIF/OWGBP
U 2211, 1607,1701,0600,0000,0020,0010,0000 ; 7029 ADJX2: ARX_ARX-1,J/ADJX3
;;7030 .IF/OWGBP
;;7031 ADJX1: T0_AR,ARX_0S ;SAVE NEW ADDRESS
;;7032 AR_E0,BRX/ARX,J/ADJD4 ;GET P,S, CLEAR BRX
; 7033 .ENDIF/OWGBP
; 7034 =0
;;7035 .IF/OWGBP
;;7036 ADJX4: SC_P,SR DISP,J/ADJX7 ;[251] EFIW, SAVE 0-5, OWGBP ?
; 7037 .IFNOT/OWGBP
U 2274, 2236,0610,2001,0102,0020,0010,0000 ; 7038 ADJX4: SC_P,AR_ARX*AC1,AD/A+B,J/ADJX5 ;EFIW, SAVE 0-5
; 7039 .ENDIF/OWGBP
U 2275, 2463,0610,2001,0000,0020,0610,0000 ; 7040 ARL_ARL,AR_ARX*AC1,AD/A+B,J/ADJX6
U 2236, 2463,4001,0000,2400,3001,0010,0200 ; 7041 ADJX5: P_SC ;ADJUSTMENT MUSTN'T TOUCH @,XR
U 2463, 2644,3401,0201,0000,0000,1010,0000 ; 7042 ADJX6: AC1_AR,ARX_0S
U 2644, 0530,3200,2027,0000,0020,0010,0166 ; 7043 AR_T0,BRX/ARX,J/ADJD4
;;7044 .IF/OWGBP
;;7045 =011
;;7046 ADJX7: AR_ARX*AC1,AD/A+B,J/ADJX5 ;[251] NO, EFIW
;;7047 AR_ARX*E1,AD/A+B,J/ADJX5 ;[251] YES, EFIW
; 7048 .ENDIF/OWGBP
; 7049 .ENDIF/XADDR
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10-1
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
; 7050
; 7051 ADJD2: BR/AR,AR_ARX-1, ;HOLD UPDATED REMAINDER,
U 2645, 2646,1701,6040,0000,0021,0010,0060 ; 7052 ARL+ARX_0.M ; GET CORRESPONDING QUOTIENT
; 7053 ADJD3: AR_AR+T0,INH CRY18, ;ADD Q TO Y OF POINTER,
U 2646, 0530,0600,2027,0000,0020,0011,0166 ; 7054 BRX/ARX,J/ADJD4 ;CLR BRX
; 7055
; 7056 ;HERE WITH ADDRESS PART OF POINTER UPDATED, P AND S IN AR, AND
; 7057 ; THE REMAINDER IN BR. COMPUTE 36-[ R*S + REMAIN(36-P/S) ].
; 7058
; 7059 =00*
U 0530, 1325,3441,2000,2412,0000,1050,0000 ; 7060 ADJD4: AC0_AR,AR_0S,SC_S,CALL,J/GETSC ;SAVE UPDATED Y, GET SIZE
; 7061 MQ_AR,AR_T2,CLR ARX, ;M'IER IS S, GET REMAIN(36-P/S)
U 0532, 1442,3200,2017,0000,1020,0550,0172 ; 7062 CALL,J/MULREE ;COMPUTE (R*S)+REMAIN(36-P/S)
; 7063 =11*
;;7064 .IF/OWGBP
;;7065 AR_ARX*2,SR DISP ;[251] OWGBP ?
;;7066 =011 SR_0,I FETCH,J/ADJD5 ; [301] NO, FOLLOW FLOW
;;7067 SC_P-#,#/36.,AR_AC0
;;7068 P_-SC,J/GADJ1 ;[251] YES, THAT'S NEW P, DONE
;;7069 ADJD5: SC_P-#,#/36.,AR_AC0
;;7070 P_-SC,J/STAC ;NO, THAT'S NEW P, DONE
; 7071 .IFNOT/OWGBP
U 0536, 2647,3711,5000,0000,0217,1610,0000 ; 7072 AR_ARX*2,SR_0,I FETCH ; [301] PUT THAT IN AR0-5
U 2647, 2650,3200,2000,5132,0020,0010,0044 ; 7073 SC_P-#,#/36.,AR_AC0
U 2650, 0065,0001,0000,5400,3001,0010,0200 ; 7074 P_-SC,J/STAC ; [301] THAT'S NEW P, DONE
; 7075 .ENDIF/OWGBP
; 7076
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
; 7077 ;[251]
; 7078 ;HERE IF WE ARE DOING IBP OR ADJBP ON A ONE WORD GLOBAL BYTE POINTER.
; 7079
;;7080 .IF/OWGBP
;;7081 =0
;;7082 GIBP: J/GADJBP ;GO DO ADJBP
;;7083 BYTE PREV & CLR SR3 ;[256] ENA PREVIOUS
;;7084 =0 CALL,J/GBYTE ;INC POINTER AND STORE
;;7085 I FETCH,CLR FPD,J/NOP ;[263]DONE IBP
;;7086 =0
;;7087 GADJBP: BYTE PREV & SET SR2,
;;7088 CALL [CNV2WD] ;[256] ENA PREVIOUS
;;7089 [AR]_[AR]*FM[EXPMSK],AD/ANDCB ;SAVE P,S AND CLEAR REST
;;7090 SET SR1 ;USE E1 INSTEAD OF AC1 IN ADJBP
;;7091 E0_AR,SC_S,AR_BR,BRX/ARX ;SAVE S, ADDRESS TO AR
;;7092 =01 T0_AR,AR_0S,CALL,J/GETSC ;GET BYTE SIZE IN AR,SAVE ADDR
;;7093 BR/AR,AR_BR,VMA_#,#/722 ;ADDR, P,S IN PLACE, EPT ADDR TO VMA
;;7094 E1_AR,AR_BRX,J/ADJBP ;SAVE ADDR, GO ADJ
;;7095
;;7096 GADJ1: FE_S+#,#/-18.,SKP SCAD0 ;BYTE SIZE 18 ?
;;7097 =0
;;7098 GADJLD: LOAD AR,EPT REF CACHE,J/GADJ2 ;GET DECODE WORD AND CACHE IT [260]
;;7099 SC_#,#/8. ;SET UP FOR DISP
;;7100 SH DISP,J/GADJL0 ;DISPATCH ON SIZE 6-9 [253]
;;7101 =0000
;;7102 GADJL0: ;[253]
;;7103 =0110 VMA_#,#/716,J/GADJLD ;6
;;7104 =0111 VMA_#,#/717,J/GADJLD ;7
;;7105 =1000 VMA_#,#/720,J/GADJLD ;8
;;7106 =1001 VMA_#,#/721,J/GADJLD ;9
;;7107 =
;;7108 GADJ2: MB WAIT,SC_#,#/30. ;BYTE # TO AR 0-5
;;7109 BR/AR,AR_BR,ARX_0.M ;DATA TO AR,CLEAR ARX
;;7110 AR_SHIFT,SC_#,#/6 ;SHIFT IT
;;7111 FE_P,AR_BR ;SAVE COUNT,DECODE TO AR
;;7112 GADJ3: FE_FE-1,SKP SCAD NE ;DEC DECODE, SKIP TO SHIFT
;;7113 =0 ARX_T0,J/GADJ4 ;GET ADDRESS, NEW P IN AR0-4
;;7114 AR_SHIFT,J/GADJ3 ;SHIFT AND TRY AGAIN
;;7115 GADJ4: AR_ARX,FE_P ;GET ADDRESS, SAVE P
;;7116 P_FE ;NEW P
;;7117 AC0_AR,I FETCH,J/NOP ;DONE !
;;7118 .ENDIF/ADJBP
; 7119 .ENDIF/OWGBP
; 7120 ;[251]
; 7121
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
; 7122 ;SUBROUTINE TO GET CONTENTS OF SC RIGHT ALIGNED IN AR
; 7123 ; CALLED BY ADJBP WITH BYTE DISP TO GET SECOND PART OF POINTER, TOO.
; 7124 ;[TIME=6]
; 7125
; 7126 =101
U 1325, 0560,0001,0000,2400,2000,0022,0200 ; 7127 GETSC: AR0-8_SC,J/GETEXP ;PUT SC INTO AR
; 7128 .IF/XADDR
U 1327, 0560,4001,0000,2400,2000,7522,0200 ; 7129 AR0-8_SC,SKP -VMA SEC0 ;BIT 12=1. GET 2ND PART OF PTR
; 7130 =00
; 7131 .ENDIF/XADDR
U 0560, 2264,4001,0400,0302,1000,0010,0011 ; 7132 GETEXP: ARX_AR,SC_#,#/9.,J/SHIFT ;HERE WITH DATA IN AR0-8
; 7133 .IF/XADDR
; 7134 VMA_VMA+1,LOAD ARX,SC_#,#/9., ;LONG POINTER, GET PART 2
U 0561, 0736,4001,0000,0302,0013,3650,0011 ; 7135 CALL,J/XFERW
U 0563, 2651,3703,4200,0000,2000,1610,0002 ; 7136 =11 ARX_AR (AD),AR_ARX,SR_#,#/2 ;READY TO PUT IT AWAY
U 2651, 2264,3401,2001,0000,0000,1010,0000 ; 7137 AC1_AR,AR_0S,J/SHIFT ;PUT AWAY, FINISH GETTING S
; 7138 .ENDIF/XADDR
; 7139
; 7140
; 7141 ;SUBROUTINE FOR SHORT DIVISION, BR KNOWN POSITIVE
; 7142 ; CALL WITH MQ CLEAR, DIVISOR RIGHT-ALIGNED IN BR, AND DIVIDEND
; 7143 ; IN AR0-5 (OR LEFT-ALIGNED IN ARX IF ENTERING AT SDIV)
; 7144 ; RETURN QUOTIENT IN AR AND MQ, REMAIN IN ARX
; 7145 ;[TIME=22+3(RESTORE REQ'D)]
; 7146
; 7147 ;TO IMPROVE ADJBP PERFORMANCE, INSERT THE INSTRUCTION SHOWN BELOW
; 7148 ; (SIXDZ), AND CHANGE THE CALLS TO SIXDIV TO "SKP SCAD NE,J/SIXDZ"
; 7149 ;=0
; 7150 ;SIXDZ: AR_0S,ARX_0S,FE_#,#/36.,RETURN2 ;HERE IF DIVIDEND IS ZERO
; 7151
U 2652, 0541,3441,2400,0301,1000,0010,0004 ; 7152 SIXDIV: ARX_AR,AR_0S,FE_#,#/4,J/SDIV-
; 7153 =0*0
U 0540, 0540,0602,5500,3001,0020,0031,0000 ; 7154 SDIV: DIVIDE,AR_2(AR+BR),ARX/ADX*2,J/SDIV
U 0541, 0540,5102,5504,3001,0020,0031,0000 ; 7155 SDIV-: DIVIDE,AR_2(AR-BR),ARX/ADX*2,J/SDIV
U 0544, 0224,0602,2004,3001,0020,0031,0000 ; 7156 DIVIDE,AR_AR+BR,J/SDIVR ;NO SHIFT ON FINAL STEP
U 0545, 0224,5102,2000,3001,0020,0031,0000 ; 7157 DIVIDE,AR_AR-BR
; 7158 =1*0
U 0224, 0225,0602,2004,0000,0020,0010,0000 ; 7159 SDIVR: AR_AR+BR ;NO CRY0 MEANS RESTORE REQ'D
; 7160 ARX_AR,AR_MQ, ;RETURN QUO IN AR, REMAIN IN ARX
U 0225, 0002,3723,2400,0301,1000,0003,0044 ; 7161 FE_#,#/36.,RETURN2
; 7162
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; BYTE.MIC[10,5351] 15:09 9-Aug-83 IBP, ADJBP
;;7163 .IF/OWGBP
;;7164 ;CNV2WD -- ROUTINE TO CALCULATE NEW P FIELD OF ONE WORD GLOBAL BYTE
;;7165 ;POINTER AND STORE NEW POINTER. A TABLE IS IN THE EPT STARTING AT 700
;;7166 ;AND THIS IS USED TO CONVERT THE OWGBP TO A TWO WORD GLOBAL POINTER
;;7167 ;AND TO CALCULATE THE NEW P FOR THE STORE.
;;7168 ;
;;7169 ;ENTER WITH P-45 IN SC
;;7170 ; BYTE POINTER IN BR
;;7171 ;
;;7172
;;7173 CNV2WD: AR_VMA HELD ;[326] GET FULL VMA FOR WRITE
;;7174 MQ_AR ;SAVE FOR WRITE BACK
;;7175 AR0-8_SC ;P-45 IN AR
;;7176 =0* AR_ARX (AD),ARX_AR,SC_#,#/9., ;SWAP AROUND FOR SHIFT
;;7177 CALL [SHIFT] ;NOW SHIFT IT TO BIT 35
;;7178 AR_AR*.5 LONG ;MAKE IT AN OFFSET, LSB IN ARX0
;;7179 VMA_#+AR32-35,#/700 ;POINT TO RIGHT WORD
;;7180 LOAD AR,EPT REF CACHE ;GET AND CACHE DATA FROM EPT [260]
;;7181 MB WAIT,GEN ARX,SKP AD0 ;TEST FOR EVEN/ODD
;;7182 =0
;;7183 CNV01: FE_S,ARX_AR,J/CNV02 ;SKIP SWAP
;;7184 AR_AR SWAP,J/CNV01 ;SWAP HALVES FOR ODD
;;7185 CNV02: BRX/ARX,GEN AR,SKP AD NE ;DID WE GET 0 DATA ?
;;7186 =0 BR/AR,J/UUO ;P=77 OR EPT NOT SET UP
;;7187 RSTR VMA_MQ,RETURN1 ;[307][326]NO, RESTORE VMA AND EXIT
;;7188
;;7189
;;7190 =1001 ;[254]
;;7191 INC2WD: SC_#,#/6,J/INC01 ;DON'T INC, SET SHIFT
;;7192 AR_BR+1,SC_#,#/6,J/INC01 ;INC ADDRESS, SET SHIFT
;;7193 AR_BRX,J/INC02 ;FPD SET. DON'T [254]
;;7194 AR_BRX,J/INC02 ;TOUCH POINTER [254]
;;7195 INC01: ARX_SHIFT,AR_BRX,SR_#,#/500 ;[256][270]ADDR TO 0-29 IN ARX
;;7196 ;NEW P TO AR
;;7197 =0* AR_AR SWAP,SC_#,#/30., ;GET NEW P,LOAD SHIFT
;;7198 CALL [SHIFT] ;NEW POINTER
;;7199 ;
;;7200 ; [320] Because of the SR_# above, we must restore the VMA again.
;;7201 ; [326] Make sure we do a full restore (i.e., include local/global
;;7202 ; information) so that we distinguish the ACs from shadow memory.
;;7203 ;
;;7204 RSTR VMA_MQ,P_P OR #,#/40 ;[326] SET BIT 0
;;7205 BR/AR,STORE ;[320] STORE NEW POINTER
;;7206 MEM_AR, AR_BRX, SR_#, #/200 ;GET DECODE ALLOW PREVIOUS
;;7207 P_P-S,SKP SCAD0 ;SET UP FOR EXIT
;;7208 =0
;;7209 INC02: SC_P,SET FPD,AR_BR,RETURN1 ;DONT ADD
;;7210 P_#-S,#/44,J/INC02 ;FIX FOR OVERFLOW
; 7211 .ENDIF/OWGBP
; 7212
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DOUBLE PRECISION ARITHMETIC
; 7213 .TOC "GFLT DOUBLE PRECISION ARITHMETIC"
; 7214
; 7215 .IF/MODEL.B
; 7216 .IF/EXTEXP
; 7217
; 7218 .DCODE
D 0102, 4001,1415 ; 7219 102: R, B/0, J/EDFLOT ;EFAD
D 0103, 4200,1415 ; 7220 103: R, B/2, J/EDFLOT ;EFSB
D 0106, 4400,1415 ; 7221 106: R, B/4, J/EDFLOT ;EFMP
D 0107, 4601,1415 ; 7222 107: R, B/6, J/EDFLOT ;EFDV
; 7223 .UCODE
; 7224
; 7225 =0****00**0*
; 7226 EDFLOT: VMA_VMA+1, LOAD ARX,
U 1415, 0736,0001,0000,0000,0013,3662,0100 ; 7227 MQ_0.S, CALL [XFERW]
U 1417, 1620,3721,0507,0000,0000,1033,0176 ; 7228 FM[E0]_AR, ARX_ARX*2, B DISP ;mem high to E0, do instruction
; 7229 =
; 7230
; 7231 =000
U 1620, 2346,4001,0000,0000,0000,4550,0000 ; 7232 EDFL1: SKP AR0, CALL [ISOEXP] ;save mem high word in E0.
U 1621, 2276,4001,0007,0000,0000,1010,0172 ; 7233 FM[T2]_AR, J/EF1 ;save mem exp in T2.
U 1622, 1623,5143,7700,0000,0020,0027,0000 ; 7234 AR_-AR LONG ;subtract now same as add.
U 1623, 1620,4001,0007,0000,0000,1010,0176 ; 7235 FM[E0]_AR, J/EDFL1 ;save "positive" exponent
U 1624, 2346,4001,0000,0000,0000,4550,0000 ; 7236 =100 SKP AR0, CALL [ISOEXP] ;isolate mem exp in AR.
; 7237 BR/AR, GEN ARX, SKP AD NE, ;start test for sticky bits.
U 1625, 2312,3711,0040,0000,0020,5610,0000 ; 7238 J/EFMP
; 7239 =110 BR/AR, GEN AR, SKP AD0, ;save mem high in br.
U 1626, 2346,3703,0040,0000,0020,5550,0000 ; 7240 CALL [ISOEXP] ;get mem exp
U 1627, 2721,3401,2007,0000,0000,1010,0172 ; 7241 FM[T2]_AR, AR_0S, J/EFDV0 ;save mem exp in T2. No sticky bits.
; 7242 =0
U 2276, 2346,3200,2000,0000,0020,5550,0000 ; 7243 EF1: AR_AC0, SKP AD0, CALL [ISOEXP] ;get AC op
U 2277, 2653,0001,0047,0000,0000,1010,0165 ; 7244 FM[E1]_AR, BR/AR ;save AC exp in E1
; 7245
; 7246 ;Now have positive mem exponent in T2, pos AC exp in E1.
; 7247 ;Save larger exp in T2 and exp diff if less than 340 in SC.
; 7248 [AR]_[AR]*FM[T2], AD/A-B, ;AR gets exp diff.
U 2653, 0620,5100,2007,0000,0040,5510,0172 ; 7249 SKP AD0 ;AR get exp diff, BRX gets exp.
U 0620, 2667,4001,0000,0302,0000,0050,0003 ; 7250 =00 SC_#, #/3, CALL [EXPDIF] ;test for exp diff >72.
U 0621, 0660,0001,0040,0000,0000,0010,0000 ; 7251 BR/AR, J/EF3A ;mem op larger.
U 0622, 2661,3242,2000,0000,0000,0010,0000 ; 7252 AR_BR, J/EF5 ;restore exp to AR.
U 0623, 2730,3240,2007,0401,0020,0010,0165 ; 7253 [AR]_FM[E1], CLR FE, J/ACNORM ;exp diff too large, norm AC op.
; 7254 =00
U 0660, 2667,5162,2000,0302,0020,0050,0003 ; 7255 EF3A: AR_-BR, SC_#, #/3, CALL [EXPDIF];mem larger, get positive diff.
U 0662, 2654,3242,2000,0000,0000,0010,0000 ; 7256 =10 AR_BR, J/EF3B ;restore exponent to AR.
U 0663, 2726,3260,2007,0401,0020,0010,0172 ; 7257 [AR]_FM[T2], CLR FE, J/MEMNRM ;exp diff > 72. norm mem op.
U 2654, 2655,3203,5000,0000,0000,0010,0000 ; 7258 EF3B: AR_AR*8 ;move exp difference into AR0-8.
; 7259 FE_AR0-8, ;mem larger, op doable.
U 2655, 2300,3200,2000,2421,0020,0010,0000 ; 7260 AR_AC0 ;save smaller AC op in T0,T1
U 2300, 2666,0001,0007,0000,0000,1050,0166 ; 7261 =0 FM[T0]_AR, CALL [EF5B]
U 2301, 2656,4001,0007,0000,0000,1010,0171 ; 7262 FM[T1]_AR
U 2656, 2657,3260,2007,0000,0020,0010,0176 ; 7263 [AR]_FM[E0] ;save larger mem op in AC0,AC1
U 2657, 2660,4001,4000,0000,2000,1010,0000 ; 7264 AC0_AR, AR_ARX
U 2660, 2304,4001,0001,0000,0000,1010,0000 ; 7265 AC1_AR, J/EF5A ;all set to shift and add.
; 7266
U 2661, 2662,3243,5000,0000,0000,0010,0000 ; 7267 EF5: AR_AR*8 ;move exp difference into AR0-8.
U 2662, 2663,3240,2007,2421,0020,0010,0176 ; 7268 FE_AR0-8, [AR]_FM[E0] ;smaller mem op to T0,T1
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-1
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DOUBLE PRECISION ARITHMETIC
U 2663, 2302,0001,4007,0000,2000,1010,0166 ; 7269 FM[T0]_AR, AR_ARX
U 2302, 2666,0001,0007,0000,0000,1050,0171 ; 7270 =0 FM[T1]_AR, CALL [EF5B]
U 2303, 2664,4001,0001,0000,0000,1010,0000 ; 7271 AC1_AR ;we expect AC1*2 to be saved.
U 2664, 2665,3260,2007,0000,0020,0010,0165 ; 7272 [AR]_FM[E1] ;save larger AC exp in T2
U 2665, 2304,0001,0007,0000,0000,1010,0172 ; 7273 FM[T2]_AR, J/EF5A
; 7274
U 2666, 0001,3240,5001,0000,0020,0003,0000 ; 7275 EF5B: AR_AC1*2, RETURN1
; 7276
; 7277 ;EXPDIF determines if the exponent difference is too large-ie >110 oct.
; 7278 ;The largest allowed value for shifting is 72 decimal. This is 110 octal.
; 7279 ;Since the exponent is in AR1-11, 110 octal has the value 11 in AR1-8.
; 7280 ;It expects the exponent difference in AR0-8.
; 7281 ;It uses AR0-8 and the BR.
; 7282 ;Returns 2 if the difference is ok (<=110).
; 7283 ;Returns 3 if the difference is too large (>110).
U 2667, 2670,4001,0040,0000,0000,0410,0000 ; 7284 EXPDIF: BR/AR, CLR AR ;zero all of those bits.
U 2670, 2671,0001,0000,0000,0000,0110,0010 ; 7285 AR0-8_#, #/10 ;put in 100 in AR0-11.
U 2671, 0002,5102,0004,0000,0040,5503,0000 ; 7286 GEN AR-BR, SKP AD0, RETURN2 ;<max diff>-<actual diff>
; 7287
; 7288 ;We now have:
; 7289 ; AC0 / larger op high
; 7290 ; AC1 / larger op low
; 7291 ; T0 / smaller op high
; 7292 ; T1 / smaller op low
; 7293 ; T2 / larger exponent
; 7294 ; FE / exp difference
; 7295 ;We must now sign extend both high ops.
; 7296 =0
U 2304, 2350,3240,2000,0000,0020,5550,0000 ; 7297 EF5A: AR_AC0, SKP AD0, CALL [SGNEXT] ;get larger high op
U 2305, 2306,4001,0000,0000,0000,1010,0000 ; 7298 AC0_AR ;save larger extended op in AC0
; 7299 =0 [AR]_FM[T0], SKP AD0, ;get smaller high op
U 2306, 2350,3240,2007,0000,0020,5550,0166 ; 7300 CALL [SGNEXT] ; and sign extend into AR1-11.
U 2307, 2672,4001,0007,0000,0000,1010,0166 ; 7301 FM[T0]_AR ;save smaller extended op in T0
; 7302 ;We are now set to shift the smaller op to align it with the larger op.
U 2672, 2673,3240,2007,0000,0020,0010,0171 ; 7303 [AR]_FM[T1]
U 2673, 2674,3260,2407,0000,1020,0013,0166 ; 7304 [AR]_FM[T0], ARX_AR, SC_FE ;move diff to SC for next line.
U 2674, 2310,0001,0000,5302,0020,5110,0044 ; 7305 SC_#-SC, #/36., SKP SCAD0
U 2310, 2701,5441,2400,0000,1020,0016,0000 ; 7306 =0 ARX_AR, AR_SIGN, J/EF10 ;FE < 37.
U 2311, 2675,4001,0060,0000,0000,0013,0000 ; 7307 BR/AR, BRX/ARX, SC_FE
U 2675, 2676,5401,2400,0000,1020,0016,0000 ; 7308 AR_SIGN, ARX_AR
U 2676, 2677,4001,0000,5302,0000,0010,0110 ; 7309 SC_#-SC, #/72.
U 2677, 0371,0001,0400,0000,0000,0010,0000 ; 7310 ARX_SHIFT ;high is sign, low is sign,,high.
; 7311 =01 AR_BR LONG, BR/AR, BRX/ARX, ;save new stuff in BR long.
U 0371, 2710,3242,2660,0000,0000,0050,0000 ; 7312 CALL [EF12] ;MQ gets lowest word.
U 0373, 2700,0001,0007,0000,0000,1010,0165 ; 7313 FM[E1]_AR ;save sticky bits.
U 2700, 2706,3200,2001,0000,0020,0010,0000 ; 7314 AR_AC1, J/EF11 ;now prepare to add.
U 2701, 2702,3240,4207,0000,0020,0010,0171 ; 7315 EF10: AR_SHIFT, [ARX]_FM[T1] ;shift high op, load low word.
U 2702, 2703,3260,2047,0000,0020,0010,0166 ; 7316 BR/AR, [AR]_FM[T0] ;shift low op, load high word.
U 2703, 0531,3711,2400,0000,0000,0010,0000 ; 7317 AR_ARX (AD), ARX_SHIFT ;get shifted low word into ARX.
U 0531, 2710,0001,0020,0000,0000,0550,0000 ; 7318 =01 BRX/ARX, CLR ARX, CALL [EF12] ;save low word, shift end bits.
U 0533, 2704,4001,0007,0000,0000,1010,0165 ; 7319 FM[E1]_AR ;save sticky bits. (word 4 of sum).
U 2704, 2706,3200,2001,0000,0020,0010,0000 ; 7320 AR_AC1, J/EF11 ;prepare to add.
U 2705, 2706,3200,2061,0000,0020,0010,0000 ; 7321 BR/AR, BRX/ARX, AR_AC1 ;get larger op in AR,ARX
U 2706, 2707,3240,2400,0301,1020,0010,0000 ; 7322 EF11: ARX_AR, AR_AC0, FE_#, #/0 ;smaller op in BR,BRX
; 7323 AR_AR+BR, ARX/ADX, SC_#, #/3, ;operation done, now normalize.
U 2707, 1710,0602,2604,0302,0060,0035,0003 ; 7324 NORM, J/ENORM
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1-2
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DOUBLE PRECISION ARITHMETIC
; 7325
U 2710, 2264,3711,2010,0000,0000,0510,0000 ; 7326 EF12: MQ_SHIFT, AR_ARX (AD), CLR ARX,J/SHIFT
;;7327 .IF/GFTCNV ;[273]
;;7328 EF12A: AR_SHIFT, RETURN10
; 7329 .ENDIF/GFTCNV ;[273]
; 7330
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT MULTIPLY
; 7331 .TOC "GFLT MULTIPLY"
; 7332 =0
U 2312, 2315,0001,0000,0000,0000,0410,0000 ; 7333 EFMP: CLR AR, J/EFMP1 ;mem low op is zero, no sticky bits.
U 2313, 2314,3200,5001,0000,0020,5610,0000 ; 7334 AR_AC1*2, SKP AD NE ;is AC low op non-zero as well ?
U 2314, 2315,0001,0000,0000,0000,0410,0000 ; 7335 =0 CLR AR ;yes, no sticky bits today.
U 2315, 2711,3401,2007,0000,0000,1010,0165 ; 7336 EFMP1: FM[E1]_AR, AR_0S ;set sticky bits.
U 2711, 2712,4001,0000,0000,0000,0110,0200 ; 7337 AR0-8_#, #/200 ;subtract 200.
U 2712, 2713,3242,2040,0000,0000,0010,0000 ; 7338 BR/AR, AR_BR ;swap around exp and 2000.
U 2713, 2316,5102,2000,0402,0020,0010,0000 ; 7339 AR_AR-BR, CLR SC ;done, and SC is cleared.
; 7340 =0 BR/AR, AR_AC0, SKP AD0, ;save exp-2000 in BR.
U 2316, 2346,3240,2040,0000,0020,5550,0000 ; 7341 CALL [ISOEXP] ;get AC high and isolate exp.
U 2317, 2714,0602,2004,0000,0020,0010,0000 ; 7342 AR_AR+BR ;add exponents together.
U 2714, 2320,0001,0007,0000,0000,1010,0172 ; 7343 FM[T2]_AR ;and store the sum in T2.
; 7344 =0 [AR]_FM[E0], SKP AD0, ;get mem high op sign extended.
U 2320, 2350,3260,2007,0000,0020,5550,0176 ; 7345 CALL [SGNEXT]
U 2321, 2715,0001,0000,0301,0000,0010,0756 ; 7346 FE_#, #/-18. ;
U 2715, 1660,3240,2061,0000,0020,0010,0000 ; 7347 BR/AR, BRX/ARX, AR_AC1 ;move mem ops to BR!BRX.
; 7348 =000 MQ_AR, AR_0S, ARX_0S, ;multiply by low word.
U 1660, 1442,3441,2210,0000,1000,0050,0000 ; 7349 CALL [MULREE]
U 1664, 1666,0602,2604,0000,0020,0027,0000 ; 7350 =100 AR_AR+BR LONG ;low sign was set, add results.
; 7351 =110 MQ_AR, AR_AC0, FE_#, #/-13., ;now continue with high part.
U 1666, 2350,3240,2010,0301,1020,5550,0763 ; 7352 SKP AD0, CALL [SGNEXT] ;sign extend the ac high op.
U 1667, 2322,4001,0007,0000,0000,1010,0166 ; 7353 FM[T0]_AR ;save sign extended AC op.
; 7354 ; SKP AR0 ;test sign bit to adjust FE.
; 7355 =0
U 2322, 1670,3721,2010,0000,1000,0010,0000 ; 7356 EFMPP1: MQ_AR, AR_MQ, J/EFMPP2 ;swap AR+MQ.
U 2323, 2322,0001,0000,4001,0000,0010,0000 ; 7357 FE_FE+1, J/EFMPP1 ;inc the FE if number is neg.
; 7358 =000
; 7359 EFMPP2: AD/0S, FE_FE+1, DISP/MUL, ;now multiply by the high word.
U 1670, 0260,3401,0010,4001,0000,0070,0000 ; 7360 MQ/MQ*.25, CALL [MULP]
; 7361 ;Since our last multiply step used 2 signs bits instead of a sign bit
; 7362 ;and the MSB, our answer is too low by a power of two for positive numbers
; 7363 ;and too low by a power of 4 for negative numbers.
U 1674, 2716,3703,5500,0000,0000,0710,0001 ; 7364 =100 (AR+ARX+MQ)*2, J/EFMPP3 ;try this correction factor.
U 1675, 2716,3701,7710,0000,0000,0710,0001 ; 7365 =101 (AR+ARX+MQ)*.25, J/EFMPP3 ;shouldn't ever get here.
U 1676, 2716,3703,5500,0000,0000,0710,0001 ; 7366 =110 (AR+ARX+MQ)*2 ;and this for postive numbers.
; 7367 =
U 2716, 0631,2301,0260,0000,0000,0610,0030 ; 7368 EFMPP3: BR_AR LONG, AR_0.C, ARX_1S ;result to BR!BRX. Build mask.
; 7369 =01 SC_#, #/10., ;load SC with shift count.
U 0631, 2264,0001,0000,0302,0000,0050,0012 ; 7370 CALL [SHIFT] ;Now have mask of 0,,1777
U 0633, 2717,3242,2660,0000,0000,0010,0000 ; 7371 AR_BR LONG, BR_AR LONG ;mask to BR, result TO AR!ARX.
U 2717, 2720,3522,0014,0000,0000,0710,0003 ; 7372 MQ_MQ*BR, AD/ANDCB ;clear the last 10 MQ bits.
; 7373 GEN AR, SC_#, #/3, ;generate NORM bits.
U 2720, 1710,3701,0000,0302,0040,0035,0003 ; 7374 NORM, J/ENORM ;conditions set for EE norm.
; 7375
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DIVIDE
; 7376 .TOC "GFLT DIVIDE"
U 2721, 2324,4001,0007,0000,0000,1010,0165 ; 7377 EFDV0: FM[E1]_AR ;no sticky bits on divide.
U 2324, 2350,3202,2000,0000,0020,5550,0000 ; 7378 =0 AR_BR, SKP AD0, CALL [SGNEXT] ;sign extend mem high.
; 7379 GEN AR*AC0, AD/XOR, SKP AD0, ;determine sign of result.
U 2325, 1700,3100,0060,0000,0020,5510,0000 ; 7380 BR_AR LONG ;mem op to BR!BRX.
U 1700, 0670,3240,5001,0000,0020,0050,0000 ; 7381 =000 AR_AC1*2, CALL [EFDV1] ;start division.
U 1701, 0670,3240,5001,0000,0020,1650,0001 ; 7382 SR_1, AR_AC1*2, CALL [EFDV1] ;note result if negative.
; 7383
; 7384 =011 AC1_AR, AR_MQ, ARL/AD, FE_FE+1, ;set step count to 35-2.
U 1703, 0523,3723,2001,4001,0001,1050,0102 ; 7385 MQ_0.M, CALL [DIV+]
; 7386 =101 AC1_AR, AR_MQ, ARL/AD, FE_FE+1,
U 1705, 0522,3721,2001,4001,0001,1050,0102 ; 7387 MQ_0.M, CALL [DIV-]
U 1707, 2722,0001,0000,0401,0000,0410,0000 ; 7388 =111 CLR AR, CLR FE ;exp must be adjusted-
U 2722, 2723,0001,0000,0000,0000,0110,0200 ; 7389 AR0-8_#, #/200 ; it is currently 2000 too low
U 2723, 2724,0600,2007,0000,0020,0010,0172 ; 7390 [AR]_[AR]*FM[T2], AD/A+B ;add in the correction.
U 2724, 2725,4001,0007,0000,0000,1010,0172 ; 7391 FM[T2]_AR ;store the corrected exp in T2.
; 7392 AR_AC1, ARX/MQ, SC_#, #/3, ;get answer ready for norm.
U 2725, 1710,3240,2301,0302,0040,0035,0003 ; 7393 NORM, J/ENORM
; 7394
; 7395 =00
; 7396 EFDV1: ARX_AR, AR_AC0, SKP AD0, FE_#, ;AC low*2 to ARX, AC high to AR.
U 0670, 2326,3240,2400,0301,1020,5550,0027 ; 7397 #/23., CALL [EDVCHK]
U 0672, 1062,4001,0000,0000,0000,4210,0000 ; 7398 =10 SKP BR0, J/DDVSUB
U 0673, 0066,4001,0000,0000,0000,1110,0624 ; 7399 SET FL NO DIV, J/IFNOP ;no division this time.
; 7400
; 7401 =0
U 2326, 2330,0001,0010,0000,1000,0010,0000 ; 7402 EDVCHK: MQ_AR, J/EDVCH1 ;go to an even address.
U 2327, 2326,5143,7700,0000,0020,0027,0000 ; 7403 AR_-AR LONG, J/EDVCHK ;make ac op positive.
; 7404
; 7405 =0
U 2330, 2346,4001,0000,0000,0000,4550,0000 ; 7406 EDVCH1: SKP AR0, CALL [ISOEXP] ;op saved in MQ, get exp in AR.
; 7407 [AR]_[AR]*FM[T2], AD/A-B, ;subtract exponents.
U 2331, 2332,5100,2007,4000,0040,5510,0172 ; 7408 SKP AD0 ;did this cause an underflow ?
; 7409 =0
U 2332, 2333,0001,0000,0000,0000,1610,0062 ; 7410 SET SR2 ;no, let SR2 denote this.
U 2333, 2334,0001,0007,0000,0000,1010,0172 ; 7411 EDVCH2: FM[T2]_AR ;yes, save exponent in T2 for ENORM.
; 7412
; 7413 =0
U 2334, 2350,3723,2000,0000,0020,5550,0000 ; 7414 EDVCH3: AR_MQ, SKP AD0, CALL [SGNEXT] ;now sign extend the op.
U 2335, 2152,0001,0000,0000,0001,4210,0100 ; 7415 SKP BR0, MQ_0.M, J/FDVCK1
; 7416
; 7417
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT NORMALIZATION
; 7418 .TOC "GFLT NORMALIZATION"
; 7419 ;Normalization is done here.
; 7420 ; The are 8 addresses the can be reached when doing a
; 7421 ; NORM dispatch. The following table describes the
; 7422 ; dispatching and how to normalize the fraction and
; 7423 ; exponent.
; 7424 ;
; 7425 ; =000 AR=0 AR is zero, check ARX,MQ
; 7426 ; =001 AR00=1 sign bit on, complement
; 7427 ; =010 MSB in AR 1-6 shf 4 rt.(a guess)
; 7428 ; =011 MSB in AR07 sht 2 rt.
; 7429 ; =100 MSB in AR08 sht 3 rt.
; 7430 ; =101 MSB in AR09 right on!
; 7431 ; =110 MSB in AR10 sht 1 lf.
; 7432 ; =111 MSB in AR 11-35 sht 4 lf.(a guess)
; 7433 ;
; 7434 ;The normalization routine for double precision assumes that
; 7435 ; the exponent can be found in the FE. As it goes through
; 7436 ; the normalization process, it adjusts the fraction and
; 7437 ; the FE by the correct amounts to normalize the number.
; 7438 ; In GFLT numbers, the exponent may not fit
; 7439 ; into the FE, so it has to be saved in an accumulator.
; 7440 ; However, if one assumes initially that the exponent is
; 7441 ; zero and that it is in the FE, then the same normalization
; 7442 ; algorithm can be used as in double precision numbers
; 7443 ; with the realization that at the end of the normalization
; 7444 ; process the FE contains the correction (EC) that must be
; 7445 ; added into the saved exponent (ES) to produce a 'bit-9'
; 7446 ; normalized number. Once this correction value is obtained,
; 7447 ; the 'bit-12' normalized exponent (EN) is given by
; 7448 ; EN = ES + EC + 3
; 7449
U 2726, 2727,0001,0007,0000,0000,1010,0172 ; 7450 MEMNRM: FM[T2]_AR ;save larger exponent.
U 2727, 2336,3240,2007,0000,0020,5510,0176 ; 7451 [AR]_FM[E0], SKP AD0, J/ACNRM1 ;get high word, sign extend it
; 7452
U 2730, 2731,4001,0007,0000,0000,1010,0172 ; 7453 ACNORM: FM[T2]_AR ;save larger exponent.
U 2731, 2732,3200,5001,0401,0020,0010,0000 ; 7454 AR_AC1*2, CLR FE ;get low word*2 into AR.
U 2732, 2336,3200,2400,0000,1020,5510,0000 ; 7455 ARX_AR, AR_AC0, SKP AD0 ;get high word, sign extend it.
; 7456 =0
; 7457 ACNRM1: [AR]_[AR]*FM[EXPMSK], AD/AND, ;sign extend with 0's.
U 2336, 1710,3600,2007,4000,0040,0035,0164 ; 7458 NORM, J/ENORM
; 7459 [AR]_[AR]*FM[EXPMSK], AD/ORCB, ;sign extend with 1's.
U 2337, 1710,2700,2007,4000,0040,0035,0164 ; 7460 NORM ;fall into the normalize routine.
; 7461
; 7462 =000
; 7463 ENORM: SKP ARX+MQ NE, SC_#, #/35., ;AR=0,check ARX,+MQ.
U 1710, 2344,3723,0000,0302,0040,5427,0043 ; 7464 J/ENZERO
; 7465 BR/AR, BRX/ARX, AR_MQ COMP, ;result neg, complement.
U 1711, 2736,2021,2060,0000,0000,1610,0061 ; 7466 SET SR3, J/ENNEG ;flag negative seen.
; 7467 AR_AR*.25 LONG, MQ_MQ*.25, ;MSB in AR 1-6.
U 1712, 2737,3701,7710,2031,0000,0012,0004 ; 7468 FE_FE+#, #/4, J/ENHI
; 7469 AR_AR*.25 LONG, FE_FE+#, ;MSB in AR07.
U 1713, 1715,3701,7700,2031,0000,0010,0002 ; 7470 #/2, J/EROUND ;
U 1714, 1715,0301,7700,4001,0020,0027,0000 ; 7471 AR_AR*.5 LONG, FE_FE+1 ;MSB in AR08.
; 7472 EROUND: BR_AR LONG, AR+MQ_0.S, ;MSB in AR09, where we want it.
U 1715, 2740,0001,0060,0000,0000,0022,0130 ; 7473 J/ERND1 ;put result in BR!BRX.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-1
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT NORMALIZATION
; 7474 (AR+ARX+MQ)*2, FE_FE-1, ;MSB in AR10.
U 1716, 1715,3701,5500,3001,0000,0710,0001 ; 7475 J/EROUND
U 1717, 2733,4001,4000,5001,0000,0010,0000 ; 7476 AR_SHIFT, FE_FE-SC ;MSB somewhere in AR 11-35.
; 7477
U 2733, 2734,4001,4340,0000,2000,0010,0000 ; 7478 ENSHFT: BR/AR, AR_ARX, ARX/MQ ;shift everyone.
U 2734, 2735,3721,6010,0000,0000,0510,0000 ; 7479 MQ_SHIFT, AR_ARX (ADX), CLR ARX
; 7480 MQ_SHIFT, ARX/MQ, AR_BR, ;go aroung again.
; 7481 SC_#, #/10.,
U 2735, 1710,3202,2310,0302,0040,0035,0012 ; 7482 NORM, J/ENORM
; 7483
U 2736, 2340,3200,0007,0000,0020,5610,0165 ; 7484 ENNEG: GEN E1, SKP AD NE ;any sticky bits left around?
U 2340, 2342,4001,2000,0000,0040,5410,0000 ; 7485 =0 AR_AR+1, SKP CRY0, J/ENNEG1 ;no, 2's comp MQ.
; 7486 MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2341, 1710,2502,2610,0000,1040,0035,0000 ; 7487 NORM, J/ENORM ;one's complement to finish.
; 7488 =0
; 7489 ENNEG1: MQ_AR, AR_BR COMP, ARX_BRX COMP,
U 2342, 1710,2502,2610,0000,1040,0035,0000 ; 7490 NORM, J/ENORM ;one's complement to finish.
; 7491 MQ_AR, AR_-BR, ARX/ADX, ;carry happened, do two's comp.
U 2343, 1710,5142,2610,0000,1060,0035,0000 ; 7492 NORM, J/ENORM
; 7493
U 2737, 2762,3701,7710,0000,0000,0710,0001 ; 7494 ENHI: (AR+ARX+MQ)*.25, J/ENTRY ;go try again after setting SC.
; 7495 =0
U 2344, 0255,3401,2200,0000,0000,1610,0000 ; 7496 ENZERO: SR_0, AR_0S, ARX_0S, J/DBLST ;result = 0, store in AC,AC+1.
U 2345, 2733,4001,4000,5001,0000,0010,0000 ; 7497 AR_SHIFT, FE_FE-SC, J/ENSHFT ;not zero, try next 35 bits.
; 7498
U 2740, 2741,4041,0500,0000,0020,0010,0000 ; 7499 ERND1: ARX_2 ;build rounding constant.
U 2741, 2742,3243,0600,0000,0000,0010,0000 ; 7500 ARX_ARX*4 ;gen a 10 in the ARX for rounding.
U 2742, 1526,0602,2604,0000,0060,0035,0000 ; 7501 AR_AR+BR, ARX/ADX, NORM ;do the rounding and test norm.
U 1526, 1527,0301,7700,4001,0020,0027,0000 ; 7502 =110 AR_AR*.5 LONG, FE_FE+1 ;rounding blew norm, correct it.
; 7503
; 7504 ; When we get here the number is 'bit-9' normalized
; 7505 ; in the AR,ARX. Add the FE + 3 to the exponent
; 7506 ; saved in T2.
; 7507 ; At this point the Extended Exponent must be put
; 7508 ; into the AR after everything is shifted right 3 bits.
; 7509 ; The double precision norm routine does this by:
; 7510 ; EXP_FE TST, SR DISP, CLR MQ, BRX/ARX, ARX_1
; 7511
; 7512
; 7513 ERND2: AR_AR*.25 LONG, ;shift everything 2 bits right.
; 7514 MQ_MQ*.25, ; " " "
U 1527, 2743,3701,7710,0302,0000,0012,0003 ; 7515 SC_#, #/3 ;add in correction to FE.
; 7516 AR_AR*.5 LONG, ;now shift the final bit position.
U 2743, 2744,0303,7700,2002,0020,0027,0000 ; 7517 SC_FE+SC ;total exponent correction.
U 2744, 2745,4001,0060,0000,0000,0410,0000 ; 7518 BR/AR, BRX/ARX, CLR AR ;save answer in BR,BRX.
U 2745, 2746,4001,0000,2400,2001,0110,0000 ; 7519 EXP_SC.MS ;get exp corr in AR.
; 7520 ARX_AR, AR_SIGN, ;get exp into ARX 1-8.
U 2746, 2747,5441,2400,0302,1020,0016,0041 ; 7521 SC_#,#/33. ;prepare to shift 3 places.
; 7522 ARX_SHIFT, ;move exponent into ARX 1-11.
U 2747, 2750,3240,2407,0000,0020,0010,0164 ; 7523 [AR]_FM[EXPMSK] ;prepare to build mask in AR.
U 2750, 2751,0001,0000,0000,0000,0110,0400 ; 7524 AR0-8_#, #/400 ;include AR00 in EXPMSK==>400077,,-1
; 7525 AR_AR*BR, AD/AND, ;zero AR1-11 to make room for exp.
U 2751, 2752,3602,2004,0302,0000,0010,0043 ; 7526 SC_#, #/35.
; 7527
; 7528 ; I am sure a few lines of code can be saved around here.
; 7529
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-2
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT NORMALIZATION
U 2752, 2753,3260,2047,0000,0020,0010,0172 ; 7530 [AR]_FM[T2], BR/AR ;save high word in BR, load larger exp.
U 2753, 2754,3242,2040,0000,0000,0010,0000 ; 7531 AR_BR, BR/AR ;swap around so we can add.
; 7532 AR_ARX+BR, BR/AR, ;have final exponent, check for problems.
U 2754, 2755,0612,2040,0302,0020,0010,0000 ; 7533 SC_#,#/0
U 2755, 0463,4001,0000,0000,0040,0007,0000 ; 7534 SH DISP ;any exponent problems ?
; 7535 =0011 ARX_AR, SC_#, #/35., ; no problems.
U 0463, 2757,0001,0400,0302,1000,0010,0043 ; 7536 J/ENFNL1
; 7537 ENFNL0: ARX_AR, SC_#, #/35., ; no problems.
U 0467, 2757,0001,0400,0302,1000,0010,0043 ; 7538 J/ENFNL1
U 0473, 2756,0001,0000,0000,0000,1110,0620 ; 7539 SET FLOV, J/EEOV ; an overflow occurred.
; 7540
U 0477, 0535,0001,0000,0000,0000,0005,0000 ; 7541 SR DISP ;floating underflow - is it real ?
; 7542 =1101 ;test SR2.
U 0535, 2756,4001,0000,0000,0000,1110,0630 ; 7543 SET FXU, J/EEOV ;yes, it is a real underflow.
U 0537, 2756,0001,0000,0000,0000,1110,0620 ; 7544 SET FLOV ;no, GFDV saw an overflow before.
; 7545
; 7546 EEOV: P_P AND #, #/37, ;turn off AR00.
U 2756, 0467,4001,0000,7130,3000,0110,0037 ; 7547 J/ENFNL0
; 7548
U 2757, 2760,3312,2004,0000,0000,0010,0000 ; 7549 ENFNL1: AR_ARX*BR, AD/OR ;AR now has high word, BRX has low.
U 2760, 0732,4041,0200,0000,0021,0005,0100 ; 7550 ARX_1, MQ_0.M, SR DISP ;incase negation of lower word needed.
; 7551 =10 AC0_AR, AR_SHIFT, ;store high word,
; 7552 ARX_BRX, ;move low word to ARX.
U 0732, 0246,3242,4600,0000,0217,1010,0000 ; 7553 I FETCH, J/STD1 ;prepare to store low word and exit.
; 7554 ARX_ARX*BRX, AD/ANDCA, ; clear rounding bit.
U 0733, 2761,3002,0604,0000,0000,1610,0000 ; 7555 SR_0,J/CDBLST ;negate result and store double result.
; 7556
U 2761, 0255,5163,7700,0000,0020,0027,0000 ; 7557 CDBLST: AR_-AR LONG, J/DBLST
; 7558
U 2762, 1710,3701,0000,0302,0040,0035,0003 ; 7559 ENTRY: SC_#, #/3, GEN AR, NORM, J/ENORM; go normalize again.
; 7560
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT TO INTEGER CONVERSION
; 7561 .TOC "GFLT TO INTEGER CONVERSION"
;;7562 .IF/GFTCNV ;[273]
;;7563
;;7564 ;ETXIX routine is used when converting extended exponent data to
;;7565 ;single/double precision integers with rounding/truncation.
;;7566 ;This routine assumes that the AR/ARX contain the extended exponent
;;7567 ;data. It also assumes that the maximum exponent value + 1 of either
;;7568 ;36 or 70 (decimal) are already in the FE. This is the positive exponent
;;7569 ;maximum; the code adjusts for the fact that a negative number can have
;;7570 ;an exponent one greater than a positive number.
;;7571 ;It uses all of the registers in the EBOX and returns 4 if the
;;7572 ;result is positive and returns 5 if the result is negative
;;7573 ;with the AR/ARX containing the double word integer. It is the
;;7574 ;responsibility of the calling routine to determine whether
;;7575 ;rounding or truncation should be performed and how many words
;;7576 ;to store.
;;7577
;;7578 ETXIX: ARX_ARX*2 ;get low word*2 into ARX.
;;7579 =0 MQ_AR, SKP AR0, ; get a positive exp in AR.
;;7580 CALL [ISOEXP]
;;7581 CLR AR, BR/AR ;clear extraneous bits, save exp.
;;7582 AR0-8_#, #/200 ;test for positive exp.
;;7583 GEN AR+BR, SKP AD0, ;skip on positive exponent(sum has AD0 on).
;;7584 AR_0.M ;so exponent test has a clean register.
;;7585 =0 MEM/ARL IND, CLR/AR+ARX,;exponent must be positive.
;;7586 RETURN4 ;return to caller.
;;7587 AR0-8_#, #/212, J/ET1 ;start range check of positive exponent
;;7588
;;7589 ;At this point the exponent is in BR 1-11 and it is positive.
;;7590 ;Now we must determine if it is a small enough positive number
;;7591 ;to make the conversion to integer meaningful.
;;7592 ET1: GEN AR-BR, SKP AD0 ;do the exponent test.
;;7593 =0 AR_BR*4, J/ET2 ;exp fits in AR0-8, now for final test!
;;7594 SET AROV, I FETCH, J/NOP;exponent out of range.
;;7595 ET2: AR_AR*2 ;finish moving exponent into AR0-8.
;;7596 SC_AR0-8, GEN MQ, ;exponent to SC.
;;7597 SKP AD0 ;max neg exponent is 1 gtr than max pos exp.
;;7598 =0
;;7599 ET2A: AR_MQ, GEN FE-SC, ;shift low word into ARX00-34, caller
;;7600 SKP SCAD0, ;put max exponent+1 in FE. range check.
;;7601 J/ET2B
;;7602 FE_FE+1, J/ET2A ;max neg exp is 1 gtr than max pos exp.
;;7603 =0
;;7604 ET2B: FE_SC, J/ET3 ;save exp in FE.
;;7605 SET AROV, I FETCH, J/NOP;exponent is too large.
;;7606 ET3: SC_#, #/12. ;prepare to map AR12 into AR00.
;;7607
;;7608 ;We now have the high word in the AR and
;;7609 ;the low word*2 in the ARX. The SC has 12 (dec) to let the
;;7610 ;shifter strip off the sign and exponent of the high word.
;;7611 AR_SIGN, MQ_SHIFT ;put high 36 integer bits into MQ.
;;7612 AR_ARX, BR/AR, CLR ARX ;generate low 36 integer bits and
;;7613 AR_BR, ARX/MQ, MQ_SHIFT,; put in MQ. High bits to ARX.
;;7614 SC_FE-#, #/36., ;check the size of the exponent.
;;7615 SKP SCAD0 ;if exp<36. then high result is sign.
;;7616 =0 GEN SC, SKP SCAD NE, ;is exponent gtr or geq to 36 ?
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5-1
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT TO INTEGER CONVERSION
;;7617 J/ET3A
;;7618 SC_#+SC, #/37., J/ET5 ;exponent less than 36.
;;7619 =0
;;7620 ET3A: (AR+ARX+MQ)*2, J/ET3B ;must shift left 1 bit.
;;7621 BRX/ARX, SC_#+SC, #/1, ;adjust exp, save low word in BRX.
;;7622 J/ET4
;;7623 ET3B: BR_AR LONG, AR_ARX, ;high and low to BR!BRX
;;7624 SC_#, #/35., ;get a good exponent for final shifting.
;;7625 ARX/MQ, J/ET4A ;rest of fraction to ARX.
;;7626 ET4: AR_ARX (AD), ARX/MQ, ;exp gtr 36. High result has integer bits.
;;7627 MQ_SHIFT ;high result to MQ.
;;7628 AR_MQ, ARX_SHIFT ;put integer bits into ARX.
;;7629 BR_AR LONG, AR_ARX (AD),;now compute fraction.
;;7630 CLR ARX ;low integer to AR, pad with zeros in ARX.
;;7631 ET4A: AR_BR LONG, MQ_SHIFT, ;restore integer to AR!ARX, fraction to MQ.
;;7632 SC_#, #/35., ;low word must have bit 0 same as high.
;;7633 SKP AD0, RET[4] ; and return on sign of integer.
;;7634 =01
;;7635 ET5: FM[T0]_AR, AR_ARX (AD), ;sign is high 36 bit result. Save in T0.
;;7636 ARX/MQ, ;high 36 bits of frac to AR, low 23 to ARX.
;;7637 MQ_SHIFT, ;low integer result to MQ.
;;7638 CALL [SHIFT] ;high half of fraction to AR.
;;7639
;;7640 ;Now we have the high 36 bits of mantissa in AR, the low 23 bits if mantissa
;;7641 ;in the ARX, the high 36 bit result (the sign bits) in T0 and the low 36 bit
;;7642 ;result in the MQ. Now we compute the fraction to store.
;;7643 BR/AR, AR_ARX, CLR ARX ;high frac to BR. Now gen low fraction bits.
;;7644 ARX_SHIFT, ;low fraction bits to ARX.
;;7645 SC_#, #/35. ;low word must have same sign as high.
;;7646 GEN ARX*BR, AD/OR, ;gen composite OR of fraction into 1 word.
;;7647 MQ_AD, ;put this funny fraction in the MQ.
;;7648 ARX/MQ ;low integer result to ARX.
;;7649 [AR]_FM[T0], SKP AD0, ;get high result (Sign) back in AR.
;;7650 RET[4] ;and return to caller.
; 7651 .ENDIF/GFTCNV ;[273]
; 7652
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT TO INTEGER CONVERSION
; 7653
; 7654 ;ISOEXP will isolate the exponent in an extended exponent data word.
; 7655 ;It will return the positive representation of the exponent.
; 7656 ;Call with AR containing high order word with "SKP AR0" to do
; 7657 ;correct things with one's complemented exponent in negative numbers.
; 7658 ;It returns 1 with the positive exponent in the AR.
; 7659 =0
U 2346, 0001,3500,2007,4000,0020,0003,0164 ; 7660 ISOEXP: [AR]_[AR]*FM[EXPMSK],AD/ANDCB,RET[1] ;isolate pos exp in AR1-11.
U 2347, 0001,2400,2007,4000,0020,0003,0164 ; 7661 [AR]_[AR]*FM[EXPMSK],AD/NOR,RET[1] ;isolate neg exp in AR1-11.
; 7662
; 7663 ;SGNEXT will extend the sign bit of the AR into AR1-11. Call with
; 7664 ;SKP AR0 so the correct actions are taken for negative numbers.
; 7665 ;It will do a return 1 with either ones or zeroes in AR1-11.
; 7666 =0
U 2350, 0001,3600,2007,4000,0020,0003,0164 ; 7667 SGNEXT: [AR]_[AR]*FM[EXPMSK], AD/AND, RET[1] ;extend 0s into AR1-11.
U 2351, 0001,2700,2007,4000,0020,0003,0164 ; 7668 [AR]_[AR]*FM[EXPMSK], AD/ORCB, RET[1] ;extend ones into AR1-11.
; 7669
; 7670 ;OVTEST will determine if the high order word of a double integer,
; 7671 ;as stored in the AR is all sign bits, ie either it is all zeroes
; 7672 ;or all ones. The call is via "GEN AR, SKP AD NE, J/OVTEST".
; 7673 ;It assumes that the double integer is in the AR/ARX and the SC
; 7674 ;contains 35 decimal.
; 7675 ;OVTEST will store the ARX*.5 and exit if the AR is all sign bits.
; 7676 ;It will set AROV and jump to NOP if it finds some data bits.
U 2763, 2352,3723,2000,0000,0020,5610,0000 ; 7677 OVTST1: AR_MQ, SKP AD NE ;get the sign bits from the MQ.
; 7678 =0
U 2352, 2764,0001,4000,0000,0217,0010,0000 ; 7679 OVTEST: AR_SHIFT, I FETCH, J/OVTST2 ;the high word is all zeros - ok.
U 2353, 2354,4003,0000,0000,0040,5610,0000 ; 7680 GEN AR+1, SKP AD NE ;check to see if it is all ones.
U 2354, 2764,0001,4000,0000,0217,0010,0000 ; 7681 =0 AR_SHIFT, I FETCH, J/OVTST2 ;this is simply a negative number.
U 2355, 0075,4001,0000,0000,0217,1110,0420 ; 7682 SET AROV, I FETCH, J/NOP ;sorry, we found some data bits.
U 2764, 0075,4001,0000,0000,0000,1010,0000 ; 7683 OVTST2: AC0_AR, J/NOP ;finish the store.
; 7684
; 7685
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DATA CONVERSION INSTRUCTIONS
; 7686 .TOC "GFLT DATA CONVERSION INSTRUCTIONS"
; 7687 1013:
U 1013, 1006,0001,0000,0000,0000,0010,0000 ; 7688 L-XBLT: J/LUUO
; 7689 1014:
U 1014, 1006,0001,0000,0000,0000,0010,0000 ; 7690 L-GTPI: J/LUUO
; 7691 1104:
U 1104, 1006,0001,0000,0000,0000,0010,0000 ; 7692 L-SFTE: J/LUUO
; 7693 1105:
U 1105, 1006,0001,0000,0000,0000,0010,0000 ; 7694 L-GTDI: J/LUUO
; 7695 1106:
U 1106, 1006,0001,0000,0000,0000,0010,0000 ; 7696 L-GTSI: J/LUUO
; 7697 1107:
U 1107, 1006,0001,0000,0000,0000,0010,0000 ; 7698 L-GTDR: J/LUUO
; 7699 1110:
U 1110, 1006,0001,0000,0000,0000,0010,0000 ; 7700 L-GTSR: J/LUUO
; 7701 1111:
U 1111, 1006,0001,0000,0000,0000,0010,0000 ; 7702 L-DITE: J/LUUO
; 7703 1112:
U 1112, 1006,0001,0000,0000,0000,0010,0000 ; 7704 L-SITE: J/LUUO
; 7705 1113:
U 1113, 1006,0001,0000,0000,0000,0010,0000 ; 7706 L-EFSC: J/LUUO
; 7707
; 7708 .IF/XADDR
U 3013, 3451,3200,0204,0000,0020,0010,0000 ; 7709 3013: ARX_AC2, J/XBLT ; -20- XBLT
; 7710 .ENDIF/XADDR
U 3014, 2765,3240,2007,0000,0020,0010,0165 ; 7711 3014: [AR]_FM[E1], J/L-GTSP ; -21- GSNGL
U 3104, 3004,3260,2007,0000,0020,0010,0165 ; 7712 3104: [AR]_FM[E1], J/L-EDBL ; -22- GDBLE
; 7713 .IFNOT/GFTCNV ;[273]
U 3105, 1002,4001,0000,0000,0000,0010,0000 ; 7714 3105: J/MUUO ; -23- DGFIX ;[273]
U 3106, 1002,4001,0000,0000,0000,0010,0000 ; 7715 3106: J/MUUO ; -24- GFIX ;[273]
U 3107, 1002,4001,0000,0000,0000,0010,0000 ; 7716 3107: J/MUUO ; -25- DGFIXR ;[273]
U 3110, 1002,4001,0000,0000,0000,0010,0000 ; 7717 3110: J/MUUO ; -26- GFIXR ;[273]
;;7718 .IF/GFTCNV ;[273]
;;7719 3105: [AR]_FM[E1], J/L-GTIN ; -23- DGFIX
;;7720 3106: [AR]_FM[E1], J/L-GTIN ; -24- GFIX
;;7721 3107: [AR]_FM[E1], J/L-GTIN ; -25- DGFIXR
;;7722 3110: [AR]_FM[E1], J/L-GTIN ; -26- GFIXR
; 7723 .ENDIF/GFTCNV ;[273]
U 3111, 3030,3240,2007,0000,0020,0010,0165 ; 7724 3111: [AR]_FM[E1], J/L-FLTR ; -27- DGFLTR
U 3112, 3037,3260,2007,0000,0020,0010,0165 ; 7725 3112: [AR]_FM[E1], J/L-DFLT ; -30- GFLTR
U 3113, 2372,3260,2007,0000,0020,0010,0165 ; 7726 3113: [AR]_FM[E1], J/L-DFSC ; -31- GFSC
; 7727
; 7728
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DATA CONVERSION INSTRUCTIONS
U 2765, 2766,3701,0000,0000,0312,0010,0000 ; 7729 L-GTSP: VMA_AR, LOAD AR ;-21- GSNGL EDPFP TO SPFP
U 2766, 2767,3200,0003,0000,0022,0022,0100 ; 7730 AR_MEM, MQ_0.S ;load high word into AR.
U 2767, 2356,3701,0000,0000,0020,5610,0000 ; 7731 GEN AR, SKP AD NE ;check for zeroes.
U 2356, 0074,0001,0000,0000,0217,0010,0000 ; 7732 =0 I FETCH, J/STORAC ;high word zero, store it.
U 2357, 2360,0001,0000,0000,0000,3610,0000 ; 7733 VMA_VMA+1 ;point to mem low word.
; 7734 =0 ARX_AR, SKP AR0, ;save high word in ARX.
U 2360, 2346,4001,0400,0000,1000,4550,0000 ; 7735 CALL [ISOEXP] ;get the excess-2000 exponent.
U 2361, 2770,0001,0040,0000,0000,0410,0000 ; 7736 CLR AR, BR/AR ;exp to BR.
U 2770, 2771,0001,0000,0000,0000,0110,0220 ; 7737 AR0-8_#, #/220 ;largest exponent allowed is 2200.
U 2771, 2362,1102,0000,0000,0040,5510,0000 ; 7738 GEN AR-BR-1, SKP AD0 ;range check exponent.
U 2362, 2772,0001,0000,0000,0000,0110,0157 ; 7739 =0 AR0-8_#, #/157, J/L-GTS1;do lower range check now.(actually too low)
U 2363, 0075,0001,0000,0000,0217,1110,0620 ; 7740 SET FLOV, I FETCH, J/NOP;tough
U 2772, 2773,3242,2040,0000,0000,0010,0000 ; 7741 L-GTS1: BR/AR, AR_BR ;swap values around for next subtract.
U 2773, 2364,5102,0004,0000,0040,5510,0000 ; 7742 GEN AR-BR, SKP AD0 ;do lower range check.
U 2364, 2774,4001,0040,0000,0000,0410,0000 ; 7743 =0 BR/AR, CLR AR, J/L-GTS6 ;passed. 10 bit path to do last checks.
U 2365, 0075,4001,0000,0000,0217,1110,0630 ; 7744 SET FXU, I FETCH, J/NOP ;too low.
U 2774, 2775,0001,0000,0000,0000,0110,0160 ; 7745 L-GTS6: AR0-8_#, #/160 ;subtract 1600 to get excess 200 exp.
U 2775, 2776,3242,2040,0000,0000,0010,0000 ; 7746 AR_BR, BR/AR ;swap around to do subtract.
U 2776, 2777,5102,2000,0000,0020,0010,0000 ; 7747 AR_AR-BR ;got it.
U 2777, 3000,3243,5000,0000,0000,0010,0000 ; 7748 AR_AR*8 ;move excess-200 exponent over.
; 7749 FE_AR0-8, AR_ARX, ;put some exponent in FE. High word to AR.
U 3000, 3001,4001,4000,2421,2013,0010,0000 ; 7750 LOAD ARX ;low word to ARX.
; 7751 ;This next test determines the relative size of the exponent. If the expo-
; 7752 ;nent is less than 401 then it is a positive exponent and all will be well.
; 7753 ;If the exponent is greater than 400 (actually 700), then the exponent is
; 7754 ;really negative but bit 0 of the FE is off. To correct the sign of the
; 7755 ;exponent and to prevent undeserved FXU later because of the incorrect sign
; 7756 ;bit, we must examine the value of the exponent so as to always get the
; 7757 ;correct sign during normalization.
; 7758 ARX_MEM, GEN FE-#, ;undeserved FXU happens when FE00 should be
U 3001, 2366,3240,0003,5030,0042,5110,0500 ; 7759 #/500, SKP SCAD0;set from previous subtract of 1600.
; 7760 =0 FE_FE+#, #/777, ;set FE00. Later add will clear it.
; 7761 ARX_ARX*2, ;low word * 2.
U 2366, 2370,3721,0500,2031,0000,0010,0777 ; 7762 J/L-GTS7 ;continue.
U 2367, 2370,3721,0500,3001,0000,0010,0000 ; 7763 FE_FE-1, ARX_ARX*2 ;adjust FE so later add gets right exp.
; 7764 =0
U 2370, 2350,0001,0000,0000,0000,4550,0000 ; 7765 L-GTS7: SKP AR0, CALL [SGNEXT] ;sign extend high word.
; 7766 AR_AR*.25 LONG, ;prepare for normalization
; 7767 FE_FE+#, #/6, ;adjust exponent.
U 2371, 1240,3703,7700,2031,0040,0035,0006 ; 7768 NORM, J/SNORM ;finish up.
; 7769
U 3004, 3007,3703,0000,0000,0312,0010,0000 ; 7770 L-EDBL: VMA_AR, LOAD AR ;-22- GDBLE SPFP to EXTENDED EXPONENT
U 3007, 3015,3240,0003,0000,0022,0710,0003 ; 7771 AR_MEM, CLR MQ
U 3015, 3016,4001,0400,0202,1000,0410,0000 ; 7772 SC_EXP, ARX_AR, CLR AR ;correct the expoent, save a copy in the ARX
U 3016, 3017,0001,0007,0000,0000,1010,0165 ; 7773 FM[E1]_AR ;no sticky bits here.
U 3017, 3020,4001,0000,2400,2001,0010,0200 ; 7774 EXP_SC ;put the "positive" exponent back IN THE AR.
U 3020, 3021,0303,7000,0000,0020,0010,0000 ; 7775 AR_AR*.5 ;must move exponent into AR4-11
U 3021, 3022,3703,7000,0000,0000,0010,0000 ; 7776 AR_AR*.25 ; done.
U 3022, 3023,0001,0040,0000,0000,0410,0000 ; 7777 BR/AR, CLR AR ;exp to BR.
U 3023, 3024,4001,0000,0000,0000,0110,0160 ; 7778 AR0-8_#, #/160 ;put 1600 in the AR for exp conversion
U 3024, 3025,0602,2004,0301,0020,0010,0775 ; 7779 AR_AR+BR, FE_#, #/-3 ;convert exp, set initial exp correction
U 3025, 3026,4001,4007,0000,2000,1010,0172 ; 7780 FM[T2]_AR, AR_ARX ;save exp for ENORM, frac to AR
U 3026, 3027,4001,0000,0000,1001,0610,0240 ; 7781 EXP_SIGN.C, ARX_0.M ;get rid of exp, clear low word
; 7782 GEN AR, SC_#, #/3, NORM,;normalize an extended exponent number
U 3027, 1710,3701,0000,0302,0040,0035,0003 ; 7783 J/ENORM
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DATA CONVERSION INSTRUCTIONS
; 7784
;;7785 .IF/GFTCNV ;[273]
;;7786 L-GTIN: VMA_AR, LOAD AR ;23-26. fetch high word.
;;7787 AR_MEM, MQ_0.S, ;word in AR, init MQ.
;;7788 VMA_VMA+1 ;prepare to fetch low word.
;;7789 GEN AR, SKP AD NE ;is high word all zeroes ?
;;7790 =0 CLR ARX, EXIT DBL ;high word zero, store zeroes.
;;7791 LOAD ARX, B DISP ;fetch low word, call appropriate routine.
;;7792
;;7793 =000 ARX_MEM, J/L-G23 ;do GDP to DP integer, truncate.
;;7794 =010 ARX_MEM, J/L-G24 ;do GDP to SP integer, truncate.
;;7795 =100 ARX_MEM, J/L-G25 ;do GDP to DP integer, rounded.
;;7796 =110 ARX_MEM, J/L-G26 ;do GDP to SP integer, rounded.
;;7797 = ;terminate this dispatch block.
;;7798
;;7799 ;DGFIX needs the sticky bit fix.
;;7800 =0010
;;7801 L-G23: FE_#, #/70., ;-23- DGFIX GDP to double integer, truncate.
;;7802 CALL [ETXIX] ;do the conversion
;;7803 =0110 EXIT DBL ;store results.
;;7804 =0111 BR_AR LONG, AR_ARX, ;save high 2 words in BR!BRX, MSB of
;;7805 ARX/MQ, ;fraction to AR35. Rest of fraction to ARX.
;;7806 SC_#, #/35., ;get fraction all together.
;;7807 CALL [EF12A]
;;7808 =1111 GEN AR, SKP AD NE, ;any fraction bits on ?
;;7809 MQ_0.S ;[240]CLEAR MQ00 FOR ARX_2 MACRO.
;;7810 =0 AR_BR LONG, J/ST2AC ;no, leave answer alone.
;;7811 CLR AR, ARX_2 ;yes, add 1 to integer part.
;;7812 AR_AR+BR LONG, J/ST2AC ;store result.
;;7813
;;7814 ;GFIX needs the sticky bit fix.
;;7815 =0010
;;7816 L-G24: FE_#, #/35., ;-24- GFIX GDP to single integer, truncate.
;;7817 CALL [ETXIX] ;do the conversion
;;7818 =0110
;;7819 L-GTS2: SKP AR NE, J/OVTEST ;test for sign bits in AR and store.
;;7820 =0111 BR_AR LONG, AR_ARX, ;save in BR!BRX.
;;7821 ARX/MQ, ;add one to integer part of negative number
;;7822 SC_#, #/35., ;if fraction is not zero.
;;7823 CALL [EF12A]
;;7824 =1111 GEN AR, SKP AD NE, ;is fraction zero ?
;;7825 MQ_0.S ;[240]CLEAR MQ00 FOR ARX_2 MACRO.
;;7826 =0 AR_BR LONG, SKP AD NE, ;yes, try to store the result.
;;7827 J/OVTEST
;;7828 CLR AR, ARX_2 ;no, add one to integer part.
;;7829 AR_AR+BR LONG, SKP AD NE,; do the add and test that the high
;;7830 J/OVTEST ;word is all sign bits.
;;7831
;;7832 =011
;;7833 L-G25: FE_#, #/70., ;-25- DGFIXR GDP to double integer, rounded.
;;7834 CALL [ETXIX] ;do the conversion
;;7835 =111 BR_AR LONG, CLR AR, ;save in BR!BRX, round by adding one half
;;7836 ARX_1, ;to result. Remember that the MSB of the
;;7837 SC_#, #/35. ;store routine expects this.
;;7838 AR_AR+BR LONG, AD FLAGS ;fraction is on ARX35. Do the rounding and
;;7839 ;=0 ; replace SKP CRY0 with AD FLAGS. Eliminates extra word.
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9-1
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DATA CONVERSION INSTRUCTIONS
;;7840 EXIT DBL ; store the double result.
;;7841 ; SET AROV, I FETCH, J/NOP;rounding caused an overflow - too bad!
;;7842
;;7843 =011
;;7844 L-G26: FE_#, #/35., ;-26- GFIXR GDP to single integer, rounded.
;;7845 CALL [ETXIX] ;do the conversion.
;;7846 =111 BR_AR LONG, CLR AR, ;save in CR!BRX, round by adding one half
;;7847 ARX_1, ;to result. MSB of the fraction is in ARX35.
;;7848 SC_#, #/35. ;store routine expects this.
;;7849 AR_AR+BR LONG, SKP AD NE,;do the rounding.
;;7850 J/OVTEST ;figure out what, if any, to store.
; 7851 .ENDIF/GFTCNV ;[273]
; 7852 L-FLTR: VMA_AR, LOAD AR, ;-27- DGFLTR DP INTEGER to EDPFP
U 3030, 3031,3701,0000,0301,0312,0010,0137 ; 7853 FE_#, #/137 ;inital fugde factor for exp
U 3031, 0744,3200,0003,0000,0022,0022,0100 ; 7854 AR_MEM, MQ_0.S ;get high word into the AR.
; 7855 =0* VMA_VMA+1, LOAD ARX, ;get the low word into the ARX,
U 0744, 0736,4001,0040,0000,0013,3650,0000 ; 7856 BR/AR, CALL [XFERW]; and save the high word in the BR.
U 0746, 3032,3701,0500,0000,0000,0410,0000 ; 7857 =1* ARX_ARX*2, CLR AR ;ignore the sign copy.
U 3032, 3033,0001,0007,0000,0000,1010,0165 ; 7858 FM[E1]_AR ;no sticky bits here.
U 3033, 3034,0001,0000,0000,0000,0110,0200 ; 7859 AR0-8_#, #/200 ;ENORM expects the exponent in T2.
; 7860 FM[T2]_AR, AR_BR, ;and save it in T2.
U 3034, 3035,3242,2217,0000,2000,1010,0172 ; 7861 ARX/AD, MQ_ARX ;sign to AR, high to ARX, low to MQ.
U 3035, 3036,5401,2000,0000,0020,0016,0000 ; 7862 AR_SIGN ;
U 3036, 1710,3703,0000,0000,0040,0035,0000 ; 7863 GEN AR, NORM, J/ENORM ;restore high word and normalize.
; 7864
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; EXTEXP.MIC[10,5351] 22:20 31-Aug-82 GFLT DATA CONVERSION INSTRUCTIONS
; 7865
; 7866 L-DFLT: VMA_AR, LOAD AR, ;-30- GFLTRSP INTEGER to EDPFP
U 3037, 3040,3703,0000,0301,0312,0010,0004 ; 7867 FE_#, #/4 ;initial fudge factor for exp.
U 3040, 3041,3200,0003,0000,0022,0710,0003 ; 7868 AR_MEM, CLR MQ ;get the single precision op.
U 3041, 3042,5401,2400,0000,1020,0016,0000 ; 7869 AR_SIGN, ARX_AR ;build a dummy high word of all sign.
U 3042, 3043,0001,0040,0000,0000,0410,0000 ; 7870 BR/AR, CLR AR ;save sign, prepare for exponent.
U 3043, 3044,0001,0007,0000,0000,1010,0165 ; 7871 FM[E1]_AR ;no sticky bits here.
U 3044, 3045,4001,0000,0000,0000,0110,0207 ; 7872 AR0-8_#, #/207 ;build an initial exp of 207 for ENORM
; 7873 FM[T2]_AR, AR_BR, ;save exp for ENORM, restore sign word.
U 3045, 1710,3242,2007,0000,0040,1035,0172 ; 7874 NORM, J/ENORM ;and normalize it.
; 7875
; 7876 =0
; 7877 L-DFSC: AR_AC0, BR/AR, SKP AD0, ;-31- GFSC EDPFP SCALE
U 2372, 2346,3240,2040,0000,0020,5550,0000 ; 7878 CALL [ISOEXP] ;get the exponent into the AR.
U 2373, 3046,3242,2040,0000,0000,0010,0000 ; 7879 BR/AR, AR_BR ;put exp in BR, scale factor to AR.
; 7880 AR_AR SWAP, GEN AC0, ;put scale in left half of AR.
U 3046, 2374,3200,4000,0000,3020,5610,0000 ; 7881 SKP AD NE ;is high word zero ?
U 2374, 0061,4001,0000,0000,0001,0010,0170 ; 7882 =0 AR+ARX+MQ_0.M, J/ST2AC ;yes, store zero as double result.
; 7883 AR_SIGN, ARX_AR, SC_#, ;no, move sign and scale factor together.
U 2375, 3047,5441,2400,0302,1020,0016,0042 ; 7884 #/34.
U 3047, 3050,0001,4000,0401,0000,0010,0000 ; 7885 AR_SHIFT, CLR FE ;sign now in AR00, scale in AR 9-19.
U 3050, 3051,4001,0000,0000,1000,0022,0200 ; 7886 EXP_SIGN ;scale sign is in AR00; extend it.
U 3051, 3052,0001,0000,0302,0000,0010,0010 ; 7887 SC_#, #/8. ;move scale factor into AR 1-11 and
U 3052, 3053,3240,4201,0000,0020,0010,0000 ; 7888 AR_SHIFT, ARX_AC1 ; put the sign to left of scale factor.
U 3053, 3054,0602,2004,0000,0020,0710,0003 ; 7889 AR_AR+BR, CLR MQ ;add exponent and scale factor.
U 3054, 0543,0001,0000,0000,1040,0007,0000 ; 7890 SH/AR, DISP/SH0-3 ;check for over and under flovs.
; 7891 =0011
; 7892 L-FSC2: [AR]_[AR]*FM[EXPMSK], ;clear out non-exponent bits.
; 7893 AD/ANDCB, ;and AR00 in the over or under flow case.
U 0543, 3055,3500,2007,4000,0020,0010,0164 ; 7894 J/L-FSC3 ; and continue
; 7895 =0111 [AR]_[AR]*FM[EXPMSK], ;clear out non-exponent bits.
; 7896 AD/ANDCB, ;
U 0547, 3055,3500,2007,4000,0020,0010,0164 ; 7897 J/L-FSC3 ; and continue
U 0553, 0543,4001,0000,0000,0000,1110,0620 ; 7898 =1011 SET FLOV, J/L-FSC2 ;you lose
U 0557, 0543,0001,0000,0000,0000,1110,0630 ; 7899 =1111 SET FXU, J/L-FSC2 ;ditto
; 7900
U 3055, 2376,3721,0507,0000,0000,1010,0172 ; 7901 L-FSC3: FM[T2]_AR, ARX_ARX*2 ;save new exponent fofr ENORM.
; 7902 =0 AR_AC0, SKP AD0, ;get the high word.
; 7903 SC_#, #/3, ;for ENORM.
U 2376, 2350,3200,2000,0302,0020,5550,0003 ; 7904 CALL [SGNEXT] ;and sign extend it for ENORM as well.
U 2377, 1710,3703,0000,0000,0040,0035,0000 ; 7905 GEN AR, NORM, J/ENORM ;put the result back together.
; 7906
; 7907 .ENDIF/EXTEXP
; 7908 .ENDIF/MODEL.B
; 7909
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; IO.MIC[10,5351] 14:31 29-Nov-83 I/O INSTRUCTIONS
; 7910 .TOC "I/O INSTRUCTIONS"
; 7911
; 7912 ; BITS 10-12 OF INSTRUCTION GET MAPPED TO IR 7-9 FOR I/O INSTRUCTIONS
; 7913 ; THE DEVICE ADDRESS IS BROKEN DOWN AS ONE OF THE FIRST 7, OR ALL OTHERS
; 7914 .DCODE
; 7915
; 7916 ;DEVICE 000 (APR)
; 7917
D 0700, 3000,0502 ; 7918 700: W, J/APRBI ;BLKI APR, OPTIONS, SERIAL #
D 0701, 3601,0500 ; 7919 W, DATAI, J/APRDI ;DATAI APR, ADDRESS COMPARE
D 0702, 0000,1102 ; 7920 I, J/APRBO ;BLKO APR, REFILL RAM
D 0703, 4401,1100 ; 7921 R, DATAO, J/APRDO ;DATAO APR, ADDRESS COMPARE
D 0704, 0400,1200 ; 7922 I, CONO, J/APRCO ;CONO APR, APR FLAGS
D 0705, 0600,1202 ; 7923 I, CONI, J/APRCI ;CONI APR,
D 0706, 0101,1202 ; 7924 I, CONSZ, J/APRCI ;CONSZ APR,
D 0707, 0500,1202 ; 7925 I, CONSO, J/APRCI ;CONSO APR,
; 7926
; 7927 ;DEVICE 004 (PI)
; 7928
D 0710, 3601,0511 ; 7929 710: W, M, J/PIBI ;BLKI PI, READ ERA
D 0711, 3300,0510 ; 7930 W, B/3, J/PIDI ;DATAI PI, Stats, or not used
D 0712, 4000,0512 ; 7931 R, J/PIBO ;BLKO PI, SBUS DIAGNOSTIC
D 0713, 4001,0510 ; 7932 R, B/0, J/PIDO ;DATAO PI, More statistics
D 0714, 0400,0710 ; 7933 I, CONO, J/PICO ;CONO PI, PI SYSTEM CONTROL
D 0715, 0600,0714 ; 7934 I, CONI, J/PICI ;CONI PI, IN PROGRESS, ENABLE
D 0716, 0101,0714 ; 7935 I, CONSZ, J/PICI
D 0717, 0500,0714 ; 7936 I, CONSO, J/PICI
; 7937
; 7938 ;DEVICE 010 (PAG)
; 7939
D 0720, 6200,1212 ; 7940 720: RW, BLKI, J/PAGBI ;BLKI PAG, UNASSIGNED
D 0721, 3600,1210 ; 7941 W, DATAI, J/PAGDI ;DATAI PAG, USER CONTEXT
D 0722, 0000,1204 ; 7942 I, J/PAGBO ;BLKO PAG, INVAL PAGE TABLE
D 0723, 4401,1206 ; 7943 R, DATAO, J/PAGDO ;DATAO PAG, USER CONTEXT
D 0724, 0400,1214 ; 7944 I, CONO, J/PAGCO ;CONO PAG, EXEC CONTEXT
D 0725, 0600,1216 ; 7945 I, CONI, J/PAGCI ;CONI PAG,
D 0726, 0101,1216 ; 7946 I, CONSZ, J/PAGCI
D 0727, 0500,1216 ; 7947 I, CONSO, J/PAGCI
; 7948
; 7949 ;DEVICE 014 (CCA)
; 7950
D 0730, 0000,1500 ; 7951 730: I, J/SWEEP ;8 FUNCTIONS TO SWEEP THE CACHE
D 0731, 0000,1500 ; 7952 I, J/SWEEP ;SWPIA INVALIDATE ALL CACHE, NO CORE UPDATE
D 0732, 0000,1500 ; 7953 I, J/SWEEP ;SWPVA VALIDATE ALL CORE, LEAVE CACHE VALID
D 0733, 0000,1500 ; 7954 I, J/SWEEP ;SWPUA UNLOAD ALL CACHE TO CORE, CLEAR CACHE
D 0734, 0000,1500 ; 7955 I, J/SWEEP
D 0735, 0000,1500 ; 7956 I, J/SWEEP ;SWPIO INVALIDATE ONE PAGE
D 0736, 0000,1500 ; 7957 I, J/SWEEP ;SWPVO VALIDATE ONE PAGE
D 0737, 0000,1500 ; 7958 I, J/SWEEP ;SWPUO UNLOAD ONE PAGE
; 7959
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; IO.MIC[10,5351] 14:31 29-Nov-83 I/O INSTRUCTIONS
; 7960 ;I/O CONT'D
; 7961
; 7962 ;DEVICE 020 (TIM)
; 7963
D 0740, 3100,1502 ; 7964 740: W, B/1, J/RDMTR ;BLKI TIM, PERF CNT
D 0741, 3001,1502 ; 7965 W, B/0, J/RDMTR ;DATAI TIM, TIME BASE
D 0742, 4400,1312 ; 7966 R, DATAO, J/TIMBO ;BLKO TIM, PA ENABLES
D 0743, 4401,1310 ; 7967 R, DATAO, J/TIMDO ;DATAO TIM, UNDEFINED
D 0744, 0401,1300 ; 7968 I, CONO, J/TIMCO ;CONO TIM, SETUP INTERVAL TIMER
D 0745, 0601,1302 ; 7969 I, CONI, J/TIMCI ;CONI TIM, RD INTERVAL & PERIOD
D 0746, 0100,1302 ; 7970 I, CONSZ, J/TIMCI
D 0747, 0501,1302 ; 7971 I, CONSO, J/TIMCI
; 7972
; 7973 ;DEVICE 024 (MTR)
; 7974
D 0750, 3301,1502 ; 7975 750: W, B/3, J/RDMTR ;BLKI MTR, CACHE CNT
D 0751, 3200,1502 ; 7976 W, B/2, J/RDMTR ;DATAI MTR, EBOX CNT
D 0752, 0001,1002 ; 7977 I, J/UUO ;BLKO MTR, UNDEFINED
D 0753, 0001,1002 ; 7978 I, J/UUO ;DATAO MTR, UNDEFINED
D 0754, 0400,1304 ; 7979 I, CONO, J/MTRCO ;CONO MTR, ACCT & TB CTL
D 0755, 0600,1306 ; 7980 I, CONI, J/MTRCI ;CONI MTR, SAME
D 0756, 0101,1306 ; 7981 I, CONSZ, J/MTRCI
D 0757, 0500,1306 ; 7982 I, CONSO, J/MTRCI
; 7983
; 7984 ;DEVICE 030
; 7985
D 0760, 6200,0410 ; 7986 760: RW, BLKI, J/BLKIO
D 0761, 3601,0416 ; 7987 W, DATAI, J/IO
D 0762, 6001,0410 ; 7988 RW, BLKO, J/BLKIO
D 0763, 4401,0416 ; 7989 R, DATAO, J/IO
D 0764, 0401,0412 ; 7990 I, CONO, J/CONO
D 0765, 3601,0416 ; 7991 W, CONI, J/IO
D 0766, 0101,0412 ; 7992 I, CONSZ, J/CONS
D 0767, 0500,0412 ; 7993 I, CONSO, J/CONS
; 7994
; 7995 ;DEVICES 034-774 (ALL OTHERS)
; 7996
D 0770, 6200,0410 ; 7997 770: RW, BLKI, J/BLKIO
D 0771, 3601,0416 ; 7998 W, DATAI, J/IO
D 0772, 6001,0410 ; 7999 RW, BLKO, J/BLKIO
D 0773, 4401,0416 ; 8000 R, DATAO, J/IO
D 0774, 0401,0412 ; 8001 I, CONO, J/CONO
D 0775, 3601,0416 ; 8002 W, CONI, J/IO
D 0776, 0101,0412 ; 8003 I, CONSZ, J/CONS
D 0777, 0500,0412 ; 8004 I, CONSO, J/CONS
; 8005
; 8006 .UCODE
; 8007
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; IO.MIC[10,5351] 14:31 29-Nov-83 EXTERNAL DEVICE I/O INSTRUCTIONS
; 8008 .TOC "EXTERNAL DEVICE I/O INSTRUCTIONS"
; 8009
; 8010 =0****00*000
U 0410, 3002,0001,0000,0000,0000,7350,0000 ; 8011 BLKIO: SKP IO LEGAL,CALL,J/IOCHK ;FIRST VERIFY INSTR VALIDITY
U 0411, 0243,0001,0000,0000,0020,0034,0000 ; 8012 BYTE DISP,J/BLK1 ;TEST FPD
; 8013 CONS: ;HERE FOR CONSO, CONSZ TO LOAD
; 8014 ; BR IN CASE OF UUO
U 0412, 0416,4001,0040,0000,3000,0610,0004 ; 8015 CONO: BR/AR,ARL_ARR,ARR_ARR ;CONDITIONS TO BOTH HALVES
; 8016 =10
U 0416, 0750,3200,0003,0000,0022,7350,0000 ; 8017 IO: AR_MEM,SKP IO LEGAL,CALL,J/GTEBUS;WAIT FOR MBOX IF BLKI/O
U 0417, 0022,0001,0000,0000,0005,2233,0000 ; 8018 RELEEB: REL ECL EBUS,B WRITE ;XFER DONE, WHAT TO DO?
; 8019 =
; 8020 =1*010
U 0022, 3056,0001,0003,0000,0002,0010,0000 ; 8021 IOTEND: FIN STORE,MB WAIT,J/BLK4 ;BLKI/BLKO
U 0023, 0075,3602,0004,0000,0246,0010,0203 ; 8022 TEST AR.BR,TEST FETCH,J/NOP ;CONSZ
U 0026, 0344,0001,0003,0000,0002,6510,0000 ; 8023 MEM_AR,SKP PI CYCLE,J/IOFET ;DATA/CON I/O
U 0027, 0075,3602,0004,0000,0246,0010,0203 ; 8024 TEST AR.BR,TEST FETCH,J/NOP ;CONSO
; 8025 ;BLKI/BLKO SCREWED AROUND WITH TO TRY TO STOP PI LOSSAGE
U 3056, 0020,5062,0000,0000,0246,6517,0203 ; 8026 BLK4: TEST BRL,TEST FETCH,SKP PI CYCLE,J/CLRFPD
; 8027
; 8028 =1****0
U 0344, 0075,4001,0000,0000,0217,0010,0000 ; 8029 IOFET: I FETCH,J/NOP ;HERE IF NOT PI CYCLE
U 0345, 0724,0001,0000,0000,0000,0024,0502 ; 8030 DISMISS,J/PIFET ;DISMISS INTRPT AFTER DATA/CON I/O
; 8031
; 8032 =1**010
U 0242, 0125,4001,0043,0000,0002,0633,0020 ; 8033 BLK2: MEM_AR,BR/AR,ARL_0.C,B DISP,J/BLK3
U 0243, 0242,4003,2000,0000,0036,0017,0000 ; 8034 BLK1: AR_AR+1,GEN CRY18,STORE,J/BLK2 ;UPDATE POINTER WORD
U 0247, 0242,0001,0000,0000,0000,6510,0000 ; 8035 =111 SKP PI CYCLE,J/BLK2 ;IF FPD & NOT PI, DON'T INCREMENT
; 8036 =1*101 ;DO DATAI OR DATAO
U 0125, 0416,3703,0000,0000,0312,1110,0100 ; 8037 BLK3: VMA_AR,LOAD AR,SET FPD,J/IO ;GET DATA TO OUTPUT
U 0127, 0416,3703,0000,0000,0300,1110,0100 ; 8038 VMA_AR,SET FPD,J/IO ;INPUT DO BEFORE MEM
; 8039
; 8040 ;;;NOTE NOTE NOTE SET FPD INHIBITED BY HARDWARE IF PI CYCLE (SCD5)
; 8041
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; IO.MIC[10,5351] 14:31 29-Nov-83 EXTERNAL DEVICE I/O INSTRUCTIONS
; 8042 ;SUBROUTINES TO HANDLE EBUS
; 8043 ;CALL WITH "SKP IO LEGAL"
; 8044 ;ENTER AFTER LOADING AR IF OUTPUT FUNCTION
; 8045
; 8046 =00
U 0750, 1002,3242,2000,0000,0000,0010,0000 ; 8047 GTEBUS: AR_BR,J/UUO ;HERE IF IO ILLEGAL IN THIS MODE
U 0751, 2402,0001,0000,0000,0000,2250,0200 ; 8048 REQ EBUS,CALL,J/WGRANT ;ASK PI SYSTEM FOR BUS
; 8049 =11 ;RETURN TO TRANSFER ROUTINE
; 8050
; 8051 ;SUBROUTINE TO PERFORM EBUS TRANSFER
; 8052 ;SETUP CONTROLLER SELECT AND FUNCTION LINES BEFORE CALL
; 8053 ;IF OUTPUT, ALSO PUT AR ONTO EBUS DATA LINES
; 8054
; 8055 EBUSX: GEN AR,TIME/5T, ;WAIT AFTER ASSERTING FUNCTION
U 0753, 2401,3703,0000,0000,0060,2210,0060 ; 8056 SET EBUS DEMAND,J/WXFER ; AFTER 300 NS, ASSERT DEMAND
; 8057 =0
; 8058 EBUSW: AR_EBUS,GEN AR,
U 2400, 3057,3701,3000,0000,0060,2210,0020 ; 8059 CLR EBUS DEMAND,J/RELEB ;STROBE DATA AND DROP DEMAND
U 2401, 2400,3703,0000,0000,0000,6710,0000 ; 8060 WXFER: GEN AR,SKP -EBUS XFER,J/EBUSW ;WAIT FOR TRANSFER
; 8061
; 8062 RELEB: GEN AR,REL EBUS,TIME/5T, ;DROP DATA, CS, AND FCN
U 3057, 0003,3701,0000,0000,0060,2203,0100 ; 8063 RETURN3 ;AFTER 150 NS, THEN RELEASE BUS
; 8064
; 8065
; 8066 ;SUBROUTINE TO WAIT FOR PI SYSTEM TO GRANT EBUS
; 8067 ; IT WILL EITHER SEND EBUS GRANT, OR PI READY
; 8068
; 8069 =0
U 2402, 2404,0001,0000,0000,0000,6610,0000 ; 8070 WGRANT: SKP -EBUS GRANT,J/WGRNT1 ;GOT IT?
U 2403, 0071,4001,0000,0000,0000,2210,0000 ; 8071 DROP EBUS REQ,J/TAKINT
; 8072 =0
U 2404, 3060,3701,0000,0000,0000,2210,0030 ; 8073 WGRNT1: IO INIT,GEN AR,J/WGRNT2 ;GOT IT, SETUP CS, FCN, AND DATA
U 2405, 2402,4001,0000,0000,0000,7010,0000 ; 8074 SKP INTRPT,J/WGRANT ;DIDN'T GET IT, TEST FOR INTERUPT
; 8075 WGRNT2: GEN AR,TIME/5T, ;JUST WAIT
U 3060, 0003,3703,0000,0000,0060,0003,0030 ; 8076 EBUS CTL/IO INIT,RETURN3
; 8077
; 8078 ;HERE TO START PI CYCLE TRANSFER. HOLD EBUS CTL SELECTION
; 8079
U 3061, 0753,0001,0000,0000,0060,0010,0027 ; 8080 EBUSI: TIME/5T,EBUS CTL/DATAI,J/EBUSX
U 3062, 0753,3701,0000,0000,0060,0010,0026 ; 8081 EBUSO: GEN AR,TIME/5T,EBUS CTL/DATAO,J/EBUSX
; 8082
; 8083 ;SUBROUTINES TO CHECK IO LEGALITY FOR INTERNAL I/O INSTRUCTIONS
; 8084
; 8085 .IF/MODEL.B
; 8086 3002:
;;8087 .IFNOT/MODEL.B
;;8088 2002: ;ACCESSIBLE ON EXTEND [0]
; 8089 .ENDIF/MODEL.B
U 3002, 1002,3242,2000,0000,0000,0010,0000 ; 8090 IOCHK: AR_BR,J/UUO ;NAUGHTY, MUST'NT DO
; 8091 .IF/MODEL.B
; 8092 3003:
;;8093 .IFNOT/MODEL.B
;;8094 2003:
; 8095 .ENDIF/MODEL.B
U 3003, 0001,4001,0000,0000,0000,0003,0000 ; 8096 RET1: RETURN1 ;ONE-CYCLE NULL ROUTINE
; 8097
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4-1
; IO.MIC[10,5351] 14:31 29-Nov-83 EXTERNAL DEVICE I/O INSTRUCTIONS
; 8098 =0
U 2406, 1002,3242,2000,0000,0000,0010,0000 ; 8099 GETEEB: AR_BR,J/UUO ;IO ILLEGAL IN THIS MODE
U 2407, 0001,0001,0000,0000,0000,2203,0400 ; 8100 GTEEB1: GET ECL EBUS,RETURN1
; 8101
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 8102 .TOC "INTERNAL DEVICE FUNCTIONS -- APR, CCA"
; 8103
; 8104 =0****00***0
; 8105 SWEEP: BR/AR,SC_#,#/9.,CALL,
U 1500, 3002,0001,0040,0302,0000,7350,0011 ; 8106 SKP IO LEGAL,J/IOCHK ;ALLOWED?
U 1501, 3063,0001,4000,0000,0000,0010,0000 ; 8107 AR_SHIFT ;MOVE PAGE # TO PLACE
U 3063, 3064,3701,0000,0000,0307,0010,0606 ; 8108 = VMA_AR,SWEEP CACHE ;START A SWEEP
U 3064, 0066,0001,0000,0000,0002,0010,0000 ; 8109 MBREL: MB WAIT,J/IFNOP ;COMPLETE REG FUNC BEFORE FETCH
; 8110
; 8111
; 8112 =0****00**00
U 1100, 2406,4001,0000,0000,0000,7350,0000 ; 8113 APRDO: CALL,SKP IO LEGAL,J/GETEEB ;SET ADDR BREAK
U 1101, 0417,3703,0000,0000,0060,2010,0417 ; 8114 DATAO APR,J/RELEEB
U 1102, 3002,4001,0040,0000,0000,7350,0000 ; 8115 APRBO: BR/AR,CALL,SKP IO LEGAL,J/IOCHK ;SET CACHE REFILL ALGORITHM
U 1103, 3064,4001,0000,0000,0007,0010,0505 ; 8116 WR REFILL RAM,J/MBREL ;INFO ALREADY IN VMA
; 8117 =
; 8118
; 8119 =0****00*000
U 0500, 2406,4001,0000,0000,0000,7350,0000 ; 8120 APRDI: CALL,SKP IO LEGAL,J/GETEEB ;READ ADDR BREAK
U 0501, 0417,0001,3000,0000,0060,2010,0513 ; 8121 DATAI APR(L),J/RELEEB
; 8122 =010
U 0502, 3002,0001,0000,0000,0000,7350,0000 ; 8123 APRBI: CALL,SKP IO LEGAL,J/IOCHK ;RETURN MICRO VERSION, SERIAL #
; 8124 AR_SERIAL,TIME/3T, ;READ SERIAL NUMBER
U 0503, 0137,4001,0000,0000,0020,0750,0100 ; 8125 CALL,J/UVERS ;GET MICRO-CODE VERSION IN AR
U 0507, 3065,3242,2000,0000,3000,0022,0004 ; 8126 =111 ARL_ARR.S,AR_BR ;COMB SERIAL WITH VERSION
; 8127 = AR0-8_#,STORE,OPTIONS, ;SET OPTION FLAGS
U 3065, 0066,0001,0000,0000,0016,0110,0640 ; 8128 J/STMEM
; 8129
; 8130 =0****00**00
; 8131 APRCO: BR/AR,ARL_ARR.M,ARR_ARR,CALL.M, ;SET APR FLAGS
U 1200, 2406,0001,0040,0000,3001,7350,0004 ; 8132 SKP IO LEGAL,J/GETEEB
U 1201, 3070,3703,0000,0000,0060,2010,0414 ; 8133 CONO APR, J/APRCO7 ;[272]
; 8134 APRCI: BR/AR,CALL,
U 1202, 2406,0001,0040,0000,0000,7350,0000 ; 8135 SKP IO LEGAL,J/GETEEB ;READ APR FLAGS
U 1203, 3066,4001,3000,0000,0060,2010,0510 ; 8136 CONI APR(R) ;GET RIGHT HALF OF APR CONDITIONS
U 3066, 3067,0001,3400,0000,3060,2010,0512 ; 8137 = ARX_AR SWAP,CONI APR(L) ;NOW LH COND TO AR LEFT
U 3067, 0417,0001,4000,0000,2000,0610,0000 ; 8138 AR_ARX,ARL_ARL,J/RELEEB ;COMBINE HALVES
U 3070, 0417,3703,0000,0000,0060,2010,0414 ; 8139 APRCO7: CONO APR,J/RELEEB ;[272]
; 8140
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- PI
; 8141 .TOC "INTERNAL DEVICE FUNCTIONS -- PI"
; 8142
; 8143 =0****00*000
; 8144 .IFNOT/INSTR.STAT
; 8145 PIDO:
U 0510, 1002,3242,2000,0000,0000,0010,0000 ; 8146 PIDI: AR_BR,J/UUO ;DATAI/O PI, UNASSIGNED
; 8147
;;8148 .IF/INSTR.STAT
;;8149 ;DATAO PI, SETS UP BUFFER POINTERS FOR TRACKS
;;8150 ;DATAI PI, READS CURRENT BUFFER POINTER
;;8151
;;8152 PIDI:
;;8153 PIDO: BR/AR,ARL+ARX_0.M,CALL.M, ;CHECK IO LEGALITY
;;8154 SKP IO LEGAL,J/IOCHK
;;8155 SC_#,#/9.,B DISP,SKP BR0,J/PIDX ;NOW, WHAT TO DO?
; 8156 .ENDIF/INSTR.STAT
; 8157
U 0511, 1254,0001,0000,0000,0007,0010,0504 ; 8158 PIBI: READ ERA,J/RDEBRG ;GET AND STORE
; 8159 =0
; 8160 PIBO: FE_#,#/7,CALL, ;NUMBER OF TIMES TO TRY
U 0512, 3002,0001,0000,0301,0000,7350,0007 ; 8161 SKP IO LEGAL,J/IOCHK ;SBUS DIAGNOSTIC
U 0513, 3071,4001,0040,0000,0007,0010,0407 ; 8162 DODIAG: SBUS DIAG,BR/AR ;SEND THE DIAG FUNCTION FROM AR
; 8163 =
; 8164 .DEFAULT/MOS=0
; 8165 .IFNOT/MOS
U 3071, 0066,4001,1000,0000,0016,3610,0000 ; 8166 AR/CACHE,VMA_VMA+1,STORE,J/STMEM ;STORE THE RESPONSE
;;8167 .IF/MOS
;;8168 AR/CACHE,MB WAIT ;[225]GET THE DATA.
;;8169 GEN AR+1,SKP AD NE ;IF MEMORY RETURNED -1 TRY AGAIN
;;8170 =0
;;8171 FE_FE-1,SKP SCAD0,J/SDTEST ;IT IS SEE IF TOO MANY TRIES
;;8172 SDONE: VMA_VMA+1,STORE,J/STMEM ;STORE THE RESPONSE
;;8173 =0
;;8174 SDTEST: AR_BR,J/DIAG1 ;[225]RECOVER THE FUNC AND RETRY.
;;8175 AR_0S,J/SDONE ;TOO MANY TRIES QUIT RETURNING 0
; 8176 .ENDIF/MOS
; 8177
; 8178 =0****00*000
; 8179 PICO: BR/AR,ARL_ARR.M,ARR_ARR,
U 0710, 2410,4001,0040,0000,3001,7350,0004 ; 8180 CALL.M,SKP IO LEGAL,J/PICOM1
U 0713, 3075,3701,0000,0000,0060,2010,0415 ; 8181 =11 CONO PI,J/PICOM2 ;SEND THE DATA
; 8182 =0****00*100
U 0714, 2410,4001,0040,0000,0000,7350,0000 ; 8183 PICI: BR/AR,CALL,SKP IO LEGAL,J/PICOM1
U 0717, 3072,0001,3000,0000,0060,2010,0500 ; 8184 =11 CONI PI(R) ;READ RH TO AR LEFT
; 8185 = ARX_AR SWAP, ;RH COND TO ARX RH
U 3072, 3073,0001,3400,0000,3060,2010,0530 ; 8186 CONI PI(PAR) ; AND PARITY ENABLES TO RH
; 8187 BRX/ARX,ARX_AR, ;READY TO COMB RH PARTS
U 3073, 3074,0001,3420,0000,1060,2010,0501 ; 8188 CONI PI(L) ; AND LH TO AR LEFT
U 3074, 3075,3302,6000,0000,0000,0610,0000 ; 8189 AR_ARX*BRX,AD/OR,ARL_ARL ;COMBINE THEM
U 3075, 0022,3701,0000,0000,0005,2233,0100 ; 8190 PICOM2: REL EBUS,GEN AR,B WRITE,J/IOTEND
; 8191
; 8192 =0
U 2410, 1002,3242,2000,0000,0000,0010,0000 ; 8193 PICOM1: AR_BR,J/UUO ;LOSE
U 2411, 2402,4001,0000,0000,0000,2210,0200 ; 8194 REQ EBUS,J/WGRANT ;OK, WAIT TO GET FULL EBUS
; 8195
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
; 8196 .TOC "TRACKS SUPPORT"
; 8197 ;
; 8198 ; According to the University of Essex, when TRACKS is used with
; 8199 ; address break enabled, the monitor cannot disable address break
; 8200 ; for the actual execution of the instruction unless we include
; 8201 ; "ABORT INSTR" as part of the TRACKS loop. Accordingly, this is
; 8202 ; now done for all the different flavors of TRACKS. Thanks, folks.
; 8203 ;
; 8204 ;[317] During an attempt to implement uncounting of doubly counted op
; 8205 ; codes for the OP.CNT conditional, we learned: (1) EA
; 8206 ; calculation requires that VMA be initialized to the instruction
; 8207 ; location (usually PC) for the local/global stuff to work properly.
; 8208 ; Beware! (This is important if you try to do something after
; 8209 ; fetching an instruction but before you EA calc it.) (2) NICOND
; 8210 ; clears the trap enable flag. If INSTR.STAT is on, this will force
; 8211 ; the dispatch to the statistics logic without taking the trap,
; 8212 ; which will thus be lost and gone forever. This is a hardware bug,
; 8213 ; but it's rather impossible to ECO it at this late date.
; 8214 ;
; 8215 ;[321] The solution to this is to ignore the statistics flag if a trap
; 8216 ; is ready. See the block at NEXT for details. (It's not really
; 8217 ; a hardware bug after all.)
; 8218 ;
;;8219 .IF/INSTR.STAT
;;8220 =00
;;8221 PIDX: CLR TRACKS EN,J/IFNOP ;TURN TRACKS OFF
;;8222 .IF/TRACKS
;;8223 ARX_SHIFT,ARL_BRL,ARR_0.S,J/PIDO2
;;8224 .IFNOT/TRACKS
;;8225 ARX_SHIFT,AR_2,J/PIDX1 ;[315] Turn statistics on
;;8226 .ENDIF/TRACKS
;;8227 =11 AR_TRX ;READ BACK POINTER
;;8228 ARL_0.M ;GET INDEX PART
;;8229 AR_AR+TRB,STORE,J/STMEM ;DONE WITH DATAI
;;8230
;;8231 .IFNOT/TRACKS
;;8232 PIDX1: AR_ARX+AR*4 ;SAVE PAGE NUMBERS IN TRX REGISTERS
;;8233 TRB_AR ;INITIAL GARBAGE HERE
;;8234 VMA_ARX,LOAD AR,PHYS REF
;;8235 AR_MEM
;;8236 VMA_ARX+1,LOAD AR,PHYS REF
;;8237 TRX_AR,ARX_ARX+1 ;[315] Must wait one cycle for
;;8238 AR_MEM ;parity check before writing AC
;;8239 VMA_ARX+1,LOAD AR,PHYS REF
;;8240 TRX1_AR,ARX_ARX+1 ;[315] Note that this will always
;;8241 AR_MEM ;make it before AR is smashed
;;8242 VMA_ARX+1,LOAD AR,PHYS REF
;;8243 TRX2_AR
;;8244 AR_MEM
;;8245 SET TRACKS EN ;[315] Might as well do this now
;;8246 TRX3_AR,I FETCH,J/NOP ;SAVE TABLE PAGE #, TURN ON
;;8247 .ENDIF/TRACKS
;;8248
;;8249 PIDO2: TRX_AR,AR_ARX ;SET UP INDEX
;;8250 TRB_AR ;AND BASE
;;8251 SET TRACKS EN,J/IFNOP ;TURN TRACKS ON
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7-1
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
;;8252
;;8253 .IF/TRACKS
;;8254 ;HERE WHEN NICOND FINDS TRACKS ENABLED
;;8255 =0
;;8256 TRK1: TRX_AR,J/TRK2 ;PUT BACK UPDATED INDEX
;;8257 AR_AR SWAP ;END OF BUFFER. RESET
;;8258 AR_-AR,J/TRK1 ; ORIGINAL INDEX
;;8259
;;8260 TRK2: ARL_0.M
;;8261 AR_AR+TRB ;ADDRESS TRACKS BUFFER
;;8262 VMA_AR,PHYS REF ;TO MAKE MODEL A WORK
;;8263 AR_PC,STORE,PHYS REF ; PUT PC THERE
;;8264 MEM_AR,VMA/PC,CLR TRACKS EN ;PREVENT NICOND SEEING TRACKS...
;;8265 ABORT INSTR ;[306] Make address break work by
;;8266 ; copying AD BRK CYC to AD FAIL INH
;;8267 SET TRACKS EN ;...UNTIL NEXT TIME
;;8268 DISP/NICOND,J/NEXT ;GO DO NEXT INSTR
;;8269 .ENDIF/TRACKS
;;8270
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
;;8271 .IF/OP.CNT
;;8272 ;HERE WHEN NICOND FINDS OPCODE COUNTING ENABLED
;;8273 ; SKIP IF USER MODE
;;8274 ;[316] Make this register usage compatible with timing version below by
;;8275 ; making it use TRX2 (for exec mode counts pointer) and TRX3 (for user mode
;;8276 ; counts pointer) instead of TRX and TRX+1.
;;8277 ;[317] A massive attempt to uncount doubly counted instructions when an
;;8278 ; interrupt was detected has been backed off. See INSTR.STAT dispatch logic
;;8279 ; above for commentary.
;;8280 ;
;;8281 =0
;;8282 OPCT1: AR_TRX2,SKP AC REF,J/OPCT2 ;[316] TRX HAS PAGE # FOR EXEC TABLE
;;8283 AR_TRX3,SKP AC REF ;[316] NEXT PAGE IS FOR USER
;;8284 =0
;;8285 OPCT2: AR_SHIFT,MQ_SHIFT, ;[317] Save VMA of increment
;;8286 CLR TRACKS EN,J/OPCT3 ;OPCODE INDEXES INTO TABLE
;;8287 ARX_FM(VMA),J/OPCT2 ;GET INSTR FROM FM
;;8288 ;
;;8289 OPCT3: VMA_AR,LOAD AR,PHYS REF ;GET TABLE ENTRY
;;8290 AR_MEM ;[306] Make address break work
;;8291 BR/AR,AR_AR+1,STORE ;ADD THIS OCCURANCE TO IT, keep old
;;8292 MEM_AR,VMA/PC
;;8293 SET TRACKS EN ;LET US GET BACK NEXT NICOND
;;8294 DISP/NICOND ;DO INSTR IN ARX
;;8295 ;
;;8296 ; In an attempt to prevent an interrupt after counting an instruction,
;;8297 ; we now fake the second NICOND in line.
;;8298 ;
;;8299 =0000 AR_BR,CLR TRACKS EN,J/OPFIX ;Some kind of odd condition.
;;8300 =0010 AR_BR,CLR TRACKS EN,J/OPFIX ; Uncount the instruction
;;8301 AR_BR,CLR TRACKS EN,J/OPFIX
;;8302 AR_BR,CLR TRACKS EN,J/OPFIX
;;8303 AR_BR,CLR TRACKS EN,J/OPFIX
;;8304 AR_BR,CLR TRACKS EN,J/OPFIX
;;8305 =1010 BRX/ARX,AR_ARX,SET ACCOUNT EN, ;The usual case
;;8306 XR,EA MOD DISP,J/COMPEA
;;8307 AR_BR,CLR TRACKS EN,J/OPFIX
;;8308 =1110 GEN ARX,LOAD IR,#/0,J/XCTGO ;Instruction in registers
;;8309 AR_BR,CLR TRACKS EN
;;8310 ;
;;8311 OPFIX: VMA_MQ,STORE,PHYS REF ;Restore old count
;;8312 MEM_AR,VMA/PC
;;8313 SET TRACKS EN ;Turn TRACKS back on
;;8314 DISP/NICOND,J/NEXT ; and do it yet again
;;8315 .ENDIF/OP.CNT
;;8316
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
;;8317 .IF/OP.TIME
;;8318 ;HERE TO ADD UP TIME SPENT IN INSTR'S
;;8319
;;8320 OPTM0: SC_#,#/9.,SKP USER,J/OPTM1
;;8321 =0
;;8322 OPTM1: BR_AR LONG,AR_TRX2,SKP AC REF, ;INSTR IN ARX PAGE IN AR
;;8323 J/OPTM2
;;8324 BR_AR LONG,AR_TRX3,SKP AC REF, ;INSTR IN ARX PAGE IN AR
;;8325 J/OPTM2
;;8326 =0
;;8327 OPTM2: AR_SHIFT,ABORT INSTR,J/OPTM3 ;[306] GENERATE ADDR TO INCREMENT
;;8328 ;NEXT GET ADDR FOR THIS
;;8329 ARX_FM(VMA),J/OPTM2 ;GET NEXT INSTR FROM FM
;;8330 OPTM3: VMA_AR,LOAD AR,UNCSH PHYS REF ;BUMP COUNT LOCATION
;;8331 AR_MEM
;;8332 AR_AR+1,STORE
;;8333 MEM_AR,SKP USER
;;8334 =0 AR_TRX,J/OPTM4
;;8335 AR_TRX1
;;8336 OPTM4: AR_SHIFT,ARX_TRB
;;8337 TRB_AR ;SAVE NEXT LOC TO BUMP
;;8338 RD+CLR PA ;TIME TO AR
;;8339 MTR CTL/CLR PERF
;;8340 VMA_ARX,LOAD ARX,UNCSH PHYS REF ;GET TABLE ENTRY
;;8341 AR_AR-BR,ARL_0.S ;COMPENSATE TIME FOR THIS CODE
;;8342 BR/AR,ARX_MEM,SKP AR18 ;IF THIS WAS AN ENABLED STATE,
;;8343 =0 AR_ARX+BR,STORE ;WRITE IT BACK
;;8344 MEM_AR,VMA/PC ;NOW SETUP NEXT INSTR AGAIN
;;8345 ARX_BRX,SET TRK+PA EN ;RESTORE STATISTICS FLAGS
;;8346 DISP/NICOND,J/NEXT
;;8347 .ENDIF/OP.TIME
;;8348
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
;;8349 ;THIS IS THE SECOND ORDER STATISTICS GATHERING CODE
;;8350 .IFNOT/SO2.CNT
;;8351 .IF/SO.CNT
;;8352 ;THIS IS NON DEBUGED CODE THAT IS IN A VERY PRIMATIVE STATE
;;8353 ;IT WAS ABANDONED BETWEEN EDITS AS THE MONITOR NEEDED SOMETHING
;;8354 ;SLIGHTLY DIFFERENT
;;8355 ;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
;;8356 ;EACH ENTRY IS A HALF WORD
;;8357 ;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
;;8358 ;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
;;8359 ;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
;;8360 ;AT LOCATION 400000
;;8361 ;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
;;8362
;;8363 ; THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
;;8364 ;TRK0: ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
;;8365
;;8366 =0
;;8367 TRK1: AR_1,SC_#,#/9.,J/TRK2 ;SHIFT IN FIRST OPCODE
;;8368 ARX_FM(VMA),AR_ARX ;GET THE INSTRUCTION FROM FM
;;8369 BRX/ARX,AR_1,SC_#,#/9.,ARX_AR ; WHEN IT HIDES THERE
;;8370 TRK2: AR_SHIFT,SC_#,#/8.,ARX_BRX ;SETUP TO DO THE NEXT OPCODE
;;8371 AR_SHIFT,CLR TRACKS EN ;CONVIENT TO SHUT OFF TRACKS
;;8372 VMA_AR,LOAD ARX,PHYS REF,AR_ARX ;LOW BIT OF INSTR WHERE CAN TEST
;;8373 ARX_SHIFT,TRB_AR ;LOW BIT OF INSTR TO HIGH BIT
;;8374 ARL_0.S,ARR_1S,SKP ARX0 ;SEE WHICH HALFWORD TO INC
;;8375 ; ALSO SETTING UP FOR TEST IN
;;8376 ; LOW INCREMENT
;;8377 =0 ARL_1.M,ARR_0.M,J/TRK3 ;INC HIGH
;;8378 ARX_MEM ;INC LOW
;;8379 BR/AR,ARX_ARX+1,AR/ADX,STORE ;INCREMENT LOW HALF AND STORE IT
;;8380 TEST AR.BR,SKP CRY0 ;USING AND-1 HACK TO TEST OVFLOW
;;8381 =0 AR_0S,J/TRKLOS ;OVERFLOWED FIXUP TO LOSE
;;8382 MEM_AR,ARX_BRX,VMA/PC,AR_BRX ;NO OVERFLOW GET OUT ALSO
;;8383 TRKN1: SET TRACKS EN ; SAVE AWAY THIS OPCODE
;;8384 TRKND: DISP/NICOND,J/NEXT ;AND DO NEXT INSTR
;;8385
;;8386 TRK3: ARX_MEM,BR/AR ;GET WORD TO INC
;;8387 AR_ARX+BR,STORE,SKP CRY0 ;COMPUTE AND CHECK FOR OVERFLOW
;;8388 =0 ARX_BRX,VMA/PC,MEM_AR,AR_BRX, ;SAVE AWAY THIS INSTR
;;8389 J/TRKN1 ; AND GET OUT
;;8390 AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS ;SHUT DOWN TRACKS ON OVERFLOW
;;8391
;;8392
;;8393 TRKLOS: AR_1,SC_#,#/17. ;WHEN LOSS PUT -1 IN 400000
;;8394 AR_SHIFT
;;8395 GEN AR,VMA/AD,PHYS REF ;SHUT OFF TRACKS AND QUIT
;;8396 AR_TRB,STORE
;;8397 MEM_AR,VMA/AD
;;8398 J/TRKND
;;8399
;;8400 .ENDIF/SO.CNT
;;8401
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; IO.MIC[10,5351] 14:31 29-Nov-83 TRACKS SUPPORT
;;8402
;;8403 .IF/SO2.CNT
;;8404 ;THIS ONE DOES THE COUNTING IN 128K STARTING AT AN ADDRESS PRESENTED IT
;;8405 ;THIS IS CODE TO DO A SECOND ORDER STATISTIC IN THE SECOND 128K
;;8406 ;EACH ENTRY IS A HALF WORD
;;8407 ;THE LOW ORDER BIT OF <LAST OPCODE><THIS OPCODE> CONCATENATION
;;8408 ;DETERMINES WHICH HALFWORD IS INCREMENTED. OFF IS HIGH
;;8409 ;IF A HALFWORD OVERFLOWS THE CODE TURNS ITSELF OFF AND WRITES -1
;;8410 ;AT LOCATION PRESENTED
;;8411 ;TRX HIDES THE LOCATION PRESENTED TRB THE LAST OPCODE
;;8412
;;8413 ; THIS IS IN THE NEXT LOOP COMMENTED HERE FOR DOCUMENTATION
;;8414 ;TRK0: ARX_TRB,BRX/ARX,SKP AC REF,J/TRK1;GET PREV INSTR HIDE THIS ONE
;;8415
;;8416 =0
;;8417 TRK1: AR_0S,SC_#,#/9.,J/TRK2 ;SHIFT IN FIRST OPCODE
;;8418 ARX_FM(VMA),AR_ARX ;GET THE INSTRUCTION FROM FM
;;8419 BRX/ARX,AR_0S,SC_#,#/9.,ARX_AR ; WHEN IT HIDES THERE
;;8420 TRK2: AR_SHIFT,SC_#,#/8.,ARX_BRX ;SETUP TO DO THE NEXT OPCODE
;;8421 AR_SHIFT,CLR TRACKS EN ;CONVIENT TO SHUT OFF TRACKS
;;8422 AR_AR+TRX ;BUMPS BY NUMBER FED IT
;;8423 VMA_AR,LOAD ARX,PHYS REF,AR_ARX ;LOW BIT OF INSTR WHERE CAN TEST
;;8424 ARX_SHIFT,TRB_AR ;LOW BIT OF INSTR TO HIGH BIT
;;8425 ARL_0.S,ARR_1S,SKP ARX0 ;SEE WHICH HALFWORD TO INC
;;8426 ; ALSO SETTING UP FOR TEST IN
;;8427 ; LOW INCREMENT
;;8428 =0 ARL_1.M,ARR_0.M,J/TRK3 ;INC HIGH
;;8429 ARX_MEM,ABORT INSTR ;[306] INC LOW
;;8430 BR/AR,ARX_ARX+1,AR/ADX,STORE ;INCREMENT LOW HALF AND STORE IT
;;8431 TEST AR.BR,SKP CRY0 ;USING AND-1 HACK TO TEST OVFLOW
;;8432 =0 AR_0S,J/TRKLOS ;OVERFLOWED FIXUP TO LOSE
;;8433 MEM_AR,ARX_BRX,VMA/PC,AR_BRX ;NO OVERFLOW GET OUT ALSO
;;8434 TRKN1: SET TRACKS EN ; SAVE AWAY THIS OPCODE
;;8435 TRKND: DISP/NICOND,J/NEXT ;AND DO NEXT INSTR
;;8436
;;8437 TRK3: ARX_MEM,BR/AR,ABORT INSTR ;[306] GET WORD TO INC
;;8438 AR_ARX+BR,STORE,SKP CRY0 ;COMPUTE AND CHECK FOR OVERFLOW
;;8439 =0 ARX_BRX,VMA/PC,MEM_AR,AR_BRX, ;SAVE AWAY THIS INSTR
;;8440 J/TRKN1 ; AND GET OUT
;;8441 AR_0.C,ARX_BRX,MEM_AR,J/TRKLOS ;SHUT DOWN TRACKS ON OVERFLOW
;;8442
;;8443
;;8444 TRKLOS: AR_TRX
;;8445 GEN AR,VMA/AD,PHYS REF ;WRITE -1 IN PRESENTED LOCATION
;;8446 AR_TRB,STORE
;;8447 MEM_AR,VMA/PC ;NEED AN INSTRUCTION TO GIVE
;;8448 J/TRKND ;TIME TO NICOND AFTER VMA/PC
;;8449
;;8450 .ENDIF/SO2.CNT
; 8451 .ENDIF/INSTR.STAT
; 8452
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- PAG
; 8453 .TOC "INTERNAL DEVICE FUNCTIONS -- PAG"
; 8454
; 8455 =0****00**00
;;8456 .IFNOT/KLPAGE
;;8457 PAGBO: BR/AR,CLR FE,CALL, ;INVALIDATE ONE PAGE TABLE LINE
;;8458 SKP IO LEGAL,J/IOCHK
;;8459 PAGBO1: PT SEL_INVAL,J/PTLOOP ;SETUP INITIAL PT WR SELECT
; 8460 .IF/KLPAGE
; 8461 PAGBO: AR_0S,BR/AR,CALL, ;CLEAR ONE PAGE TABLE ENTRY
U 1204, 3002,3441,2040,0000,0000,7350,0000 ; 8462 SKP IO LEGAL,J/IOCHK
U 1205, 0066,0001,0000,0000,0020,2310,0010 ; 8463 WR PT ENTRY,J/IFNOP
; 8464 .ENDIF/KLPAGE
; 8465 PAGDO: ARX_AR (AD),ARR_ARL,ARL_ARL.M, ;SETUP USER CONTEXT
U 1206, 2406,3703,4200,0000,3001,7350,0000 ; 8466 CALL.M,SKP IO LEGAL,J/GETEEB
U 1207, 3076,3703,4000,0000,2060,2010,0620 ; 8467 DATAO PAG(L),AR_ARX ;SETUP AC BLOCKS, PREV CTXT
U 3076, 2412,3243,0000,0302,0020,5510,0011 ; 8468 = SKP AR2,SC_#,#/9.
; 8469 =0
U 2412, 0417,4001,0000,0000,0000,0010,0007 ; 8470 TIMCO1: MTR CTL/CONO TIM,J/RELEEB ;DO NOT CHANGE UBR
;;8471 .IF/PAGCNT ;[327] Count DATAO PAG with bit 2
;;8472 MQ_AR,AR_TRX3+1 ;[327] Do the count
;;8473 TRX3_AR,AR_MQ
; 8474 .ENDIF/PAGCNT ;[327]
; 8475 FE_P AND #,#/4,MQ_SHIFT, ;[333] Save bit 3 for keep test
U 2413, 0550,3401,2010,7131,0000,4410,0004 ; 8476 SKP AR18,AR_0S ;STORE ACCT?
U 0550, 2414,0001,0000,0000,0000,0150,0100 ; 8477 =0*0 AR0-8_#,#/100,CALL,J/PAGD2 ;YES, START WITH EBOX CNT
U 0551, 3120,3721,0000,0000,0307,0050,0602 ; 8478 VMA_MQ,LOAD UBR,CALL [CLRPT] ;[333] No. Set for page table clear
;;8479 .IF/BIG.PT ;[333]
;;8480 =1*1 SKP SC NE,J/KEEPME ;[333] Might keep keep me bits
; 8481 .IFNOT/BIG.PT
U 0555, 1736,4001,0000,0000,0000,2310,0001 ; 8482 =1*1 PT SEL_INVAL,J/PTLOOP ;SETUP INITIAL PT WR SELECT
; 8483 .ENDIF/BIG.PT ;[333]
; 8484 ;
; 8485 ; PAGD2 is set up as a subroutine for addressing convenience only.
; 8486 ;
; 8487 =0
U 2414, 1742,0001,0400,0302,1000,0050,0015 ; 8488 PAGD2: ARX_AR,SC_#,#/13.,CALL,J/EMTR ;UPDATE THE EBOX ACCT
U 2415, 3100,0001,0000,0000,0002,0110,0140 ; 8489 MB WAIT,AR0-8_#,#/140 ;READY TO GET CACHE ACCT
U 3100, 1743,0001,0400,0302,1000,0010,0015 ; 8490 ARX_AR,SC_#,#/13.,J/CMTR ;RETURN ABOVE TO CLR PT
; 8491
; 8492
; 8493 =0****00**00
; 8494 PAGDI: SC_#,#/70,SKP IO LEGAL,
U 1210, 2406,4001,0000,0302,0000,7350,0070 ; 8495 CALL,J/GETEEB
;;8496 .IFNOT/MODEL.B
;;8497 DATAI PAG(L),CALL,J/PCTXT ;FIRST GET AC BLOCKS & CWSX
; 8498 .IF/MODEL.B
; 8499 DATAI PAG(L),ARX_1B17-1, ;PUT AC BLKS IN AR,
U 1211, 3101,1741,3200,0000,0060,2057,0511 ; 8500 CALL,J/PCTXT ; [0,,-1] IN ARX
; 8501 .ENDIF/MODEL.B
U 1212, 1002,3242,2000,0000,0000,0010,0000 ; 8502 PAGBI: AR_BR,J/UUO ;BLKI PAG, IS UNASSIGNED
U 1213, 0417,3242,4000,0000,0000,0610,0002 ; 8503 AR_SHIFT,ARL_BRL,J/RELEEB ;COMBINE UBR WITH AC BLKS, CWSX
; 8504 =
;;8505 .IFNOT/MODEL.B
;;8506 PCTXT: P_SC ;PLUG IN LOAD-ENABLE BITS
;;8507 =0* BR/AR,AR_0S,READ UBR, ;ASK MBOX FOR UBR LOC'N
;;8508 CALL,J/XFERW ;NOW READ IT
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12-1
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- PAG
;;8509 AR_EBUS REG
; 8510 .IF/MODEL.B
U 3101, 3102,3243,0500,2400,3001,0010,0200 ; 8511 PCTXT: P_SC,ARX_ARX*8 ;STUFF IN LOAD EN, ARX=7,,-10
U 3102, 3103,3243,0540,0000,2000,0210,0000 ; 8512 BR/AR,AR12-17_PREV SEC,ARX_ARX*8
U 3103, 0764,3012,2040,0000,0000,0010,0000 ; 8513 BR/AR,AR_ARX*BR,AD/ANDCA ;PCS TO BR, LD EN, AC BLKS TO AR
; 8514 =0* AR_AR*BR,AD/OR,READ UBR, ;LH READY IN AR. GET UBR
U 0764, 0736,3302,2000,0000,0007,0050,0502 ; 8515 CALL,J/XFERW
U 0766, 3114,4001,3040,0000,0060,2010,0567 ; 8516 BR/AR,AR_EBUS REG ;LH TO BR. READ UBR ADDRESS
; 8517 .ENDIF/MODEL.B
; 8518 ARX_AR,AR_0S,SC_#,#/27., ;READY TO MOVE INTO POSITION
U 3114, 0003,3441,2400,0302,1000,0003,0033 ; 8519 RETURN3
; 8520
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- PAG
; 8521 ;CONI/O PAG,
; 8522
; 8523 =0****00**00
; 8524 PAGCO: BR/AR,ARL_ARR.M,ARR_ARR,ARX_0S, ;SET EXEC CONTEXT
U 1214, 2406,3401,0240,0000,3001,7350,0004 ; 8525 SKP IO LEGAL,CALL.M,J/GETEEB
U 1215, 1721,3703,0000,0000,0060,2010,0416 ; 8526 CONO PAG,J/SETEBR ;SET CACHE, SEC, TRAP EN FLAGS
; 8527
; 8528 PAGCI: BR/AR,AR_0S,CALL,SKP IO LEGAL, ;READ EXEC CONTEXT
U 1216, 2406,3441,2040,0302,0000,7350,0011 ; 8529 SC_#,#/9.,J/GETEEB
U 1217, 0774,0001,3000,0000,0060,2010,0531 ; 8530 CONI PAG ;READ CACHE, SEC, TRAP EN
; 8531 =
; 8532 =0* ARX_AR SWAP,AR_0S,READ EBR, ;SETUP EPT LOC'N TO READ
U 0774, 0736,3441,2400,0000,3007,0050,0503 ; 8533 CALL,J/XFERW
; 8534 AR_EBUS REG, ;GET EBR IN AR
U 0776, 3115,3401,3220,0000,0060,2010,0567 ; 8535 BRX/ARX,ARX_0S ;SAVE FLAGS IN LH OF BRX
U 3115, 3116,0001,0400,0000,0000,2210,0000 ; 8536 ARX_SHIFT,REL ECL EBUS ;MOVE EBR LOC LEFT
U 3116, 3117,3302,0000,0000,0001,0010,0016 ; 8537 ARR_0.M,ADB/BR,ADA EN/EN,AD/OR,ARL/ADX ;COMBINE, THEN PUT IN RH
U 3117, 0022,4001,4000,0000,3005,0033,0000 ; 8538 AR_AR SWAP,B WRITE,J/IOTEND ;STORE THE RESULT
; 8539
; 8540 ;HERE TO FINISH CONO PAG,
; 8541
; 8542 =000
; 8543 =001
U 1721, 2264,0001,0000,0302,0000,0050,0011 ; 8544 SETEBR: SC_#,#/9.,CALL,J/SHIFT ;MOVE EBR LOC'N TO POSITION
U 1723, 3120,3701,0000,0000,0307,0050,0603 ; 8545 =011 VMA_AR,LOAD EBR,CALL [CLRPT] ;[333]SETUP EBR
;;8546 .IF/BIG.PT ;[333] Entry from DATAO
;;8547 =110 ;[333] If bit 3 of AR was set,
;;8548 KEEPME: PT SEL_INVAL (KEEP),J/KEEPCL ; hang on to KEEP pages
; 8549 .ENDIF/BIG.PT ;[333]
U 1727, 1736,4001,0000,0000,0000,2310,0001 ; 8550 =111 PT SEL_INVAL ;SETUP INITIAL PT WR SELECT
; 8551 ;FOR NON KLPAGE THIS CAN SEND
; 8552 ; THE USER TO PAGBO1 AND SAVE 1
; 8553 ; UCODE LOCATION
; 8554 =110
; 8555 PTLOOP: AR_AR+BR,VMA/AD,FE_FE-1, ;SELECT A LINE OF PT
; 8556 CLR PT LINE,TIME/3T, ;DO THE WORK
U 1736, 1736,0602,2004,3001,0320,2334,0021 ; 8557 BYTE DISP,J/PTLOOP ;LOOP TO CLEAR ALL
U 1737, 0066,0001,0000,0000,0000,2310,0000 ; 8558 PT SEL_NORMAL,J/IFNOP ;RESET PT WR SELECTION
;;8559 .IF/BIG.PT ;[333]
;;8560 =110
;;8561 KEEPCL: AR_AR+BR,VMA/AD,FE_FE-1,TIME/3T,;SELECT A LINE OF PT
;;8562 CLR PT LINE (KEEP), ;DO THE WORK
;;8563 BYTE DISP,J/KEEPCL ;Hang onto lines with KEEP ME set
;;8564 PT SEL_NORMAL,J/IFNOP ;RESET PT WR SELECTION
; 8565 .ENDIF/BIG.PT ;[333]
; 8566 ;
; 8567 ; [333] Set up to clear hardware page table after setting EBR or
; 8568 ; UBR. KEEP ME pages may or may not be cleared, depending upon the
; 8569 ; setting of DATAO PAG bit 3. (Clear everything for CONO PAG.)
; 8570 ;
U 3120, 2416,3441,2200,0000,0000,2210,0000 ; 8571 CLRPT: AR_0S,ARX_0S,REL ECL EBUS ;[334]DON'T HANG UP BUS FOR THIS
; 8572 =0 AR0-8_#,#/10,MB WAIT, ;WAIT FOR U/E BR LOAD
U 2416, 0635,4001,0000,0000,0002,0153,0010 ; 8573 SC_FE,CALL [ARSWAP] ;[334]GET 1B23
; 8574 BR/AR,AR_0S,VMA/AD, ;[333][334] START CLEARING AT ZERO
U 2417, 0004,3441,2040,0301,0300,0003,0077 ; 8575 FE_#,#/63.,RETURN4 ;SETUP LOOP COUNT
; 8576
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 8577 .TOC "INTERNAL DEVICE FUNCTIONS -- TIM & MTR"
; 8578
; 8579 =0****00***0
; 8580 RDMTR: AR_BR,CALL, ;GET E TO AR
U 1502, 2406,3242,2000,0000,0000,7350,0000 ; 8581 SKP IO LEGAL,J/GETEEB ;GRAB CONTROL OF EBUS
; 8582 MQ_AR,AR_0S, ;SAVE E IN MQ
U 1503, 0760,3441,2010,0302,1000,0033,0015 ; 8583 SC_#,#/13.,B DISP ;WHICH COUNTER?
; 8584 =
U 0760, 2420,0001,3000,0000,0060,2010,0510 ; 8585 =00 AR_TIME BASE,J/RDMTR1 ;DATAI TIM,
U 0761, 2420,4001,3000,0000,0060,2010,0511 ; 8586 AR_PERF CNT,J/RDMTR1 ;BLKI TIM,
U 0762, 2420,4001,3000,0000,0060,2010,0512 ; 8587 AR_EBOX CNT,J/RDMTR1 ;DATAI MTR,
U 0763, 2420,0001,3000,0000,0060,2010,0513 ; 8588 AR_CACHE CNT,J/RDMTR1 ;BLKI MTR,
; 8589
; 8590 =0
; 8591 RDMTR1: ARL+ARX_0.M,B DISP, ;SHIFT COUNT INTO POSITION
U 2420, 0770,0001,0000,0000,0001,0073,0060 ; 8592 CALL.M,J/MTRDBL ;ADD DOUBLE WORD FROM PT
U 2421, 3121,0602,2604,0000,0020,2227,0000 ; 8593 AR_AR+BR LONG,REL ECL EBUS
U 3121, 0256,3723,0000,0302,0316,0010,0043 ; 8594 VMA_MQ,STORE,SC_#,#/35.,J/DMVM1 ;STORE TOTAL AT E & E+1
; 8595
; 8596 =0****00**00
U 1300, 2406,0001,0040,0000,0000,7350,0000 ; 8597 TIMCO: BR/AR,CALL,SKP IO LEGAL,J/GETEEB
U 1301, 2412,3703,0000,0000,0060,2023,0407 ; 8598 CONO TIM,J/TIMCO1
; 8599 TIMCI: BR/AR,AR_0S,CALL,
U 1302, 2406,3401,2040,0000,0000,7350,0000 ; 8600 SKP IO LEGAL,J/GETEEB
U 1303, 3122,4001,3000,0000,0060,2010,0514 ; 8601 AR_INTERVAL ;INTERVAL GOES TO LH
U 3122, 3123,3401,2400,0000,3000,0010,0000 ; 8602 = ARX_AR SWAP,AR_0S
U 3123, 3124,0001,3000,0000,0060,2010,0515 ; 8603 AR_PERIOD ;PERIOD TO RH
; 8604 TIMBO1: MTR CTL/LD PA LH, ;KEEP MTR DECODE FOR TIMBO
U 3124, 0417,4001,0000,0000,2000,0022,0004 ; 8605 ARL_ARXL,J/RELEEB ;COMBINE PERIOD WITH INTERVAL
; 8606
; 8607 =0****00**00
; 8608 MTRCO: BR/AR,ARL_ARR.M,ARR_ARR,
U 1304, 2406,0001,0040,0000,3001,7350,0004 ; 8609 CALL.M,SKP IO LEGAL,J/GETEEB
U 1305, 3125,3701,0000,0000,0060,2023,0406 ; 8610 CONO MTR,J/MTRCO1
; 8611 MTRCI: BR/AR,AR_0S,CALL,
U 1306, 2406,3401,2040,0000,0000,7350,0000 ; 8612 SKP IO LEGAL,J/GETEEB
U 1307, 3125,4001,3000,0000,0060,2010,0516 ; 8613 CONI MTR ;READ BACK CONDITIONS
; 8614 =
U 3125, 0417,0001,0000,0000,0000,0022,0026 ; 8615 MTRCO1: ARL_0.S,MTR CTL/CONO MTR,J/RELEEB
; 8616
; 8617 =0****00**00
U 1310, 1002,3242,2000,0000,0000,0010,0000 ; 8618 TIMDO: AR_BR,J/UUO ;DATAO TIM, UNDEFINED
; 8619 =10
; 8620 TIMBO: ARX_AR,AR_0S,CALL, ;SAVE ENABLES, CLEAR AR
U 1312, 2406,3441,2400,0000,1000,7350,0000 ; 8621 SKP IO LEGAL,J/GETEEB ;CHECK LEGALITY, GET BUS
U 1313, 3126,3703,4000,0000,2060,2023,0404 ; 8622 BLKO TIM(L),AR_ARX ;TURN OFF BY CLEARING LH ENABLES
U 3126, 3127,3701,4000,0000,3060,2023,0405 ; 8623 = BLKO TIM(R),AR_AR SWAP ;SEND RH
U 3127, 3124,3701,0000,0000,0060,2023,0404 ; 8624 BLKO TIM(L),J/TIMBO1 ;SEND LH, TURNING ON AGAIN
; 8625
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; IO.MIC[10,5351] 14:31 29-Nov-83 INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 8626 ;HERE WHEN METER INCREMENT REQUEST DETECTED
; 8627
U 3130, 3131,0001,0000,0000,0000,2210,0400 ; 8628 MTRREQ: GET ECL EBUS ;TAKE CONTROL OF BUS
U 3131, 2422,0001,3000,0000,0060,2010,0517 ; 8629 AR_MTR REQ ;WHAT TYPE REQUEST?
; 8630 =0 MQ_AR,AR_AR*2,CALL, ;GET READY TO DISP
U 2422, 3133,3703,5010,0000,1100,3050,0514 ; 8631 VMA_#,#/514,J/MTRRQ0
U 2423, 3132,4001,0000,0000,0000,2210,0000 ; 8632 REL ECL EBUS ;DONE
U 3132, 0724,0001,0000,0000,0002,2110,0105 ; 8633 MB WAIT,SET ACCOUNT EN,J/PIFET ;FETCH NEXT INSTR
; 8634
; 8635 MTRRQ0: ARX_AR SWAP,DISP/SH0-3,AR_0S, ;DISPATCH ON REQUEST TYPE
U 3133, 1740,3401,2400,0302,3040,0007,0015 ; 8636 SC_#,#/13.
; 8637 =000
U 1740, 3136,0001,3000,0000,0060,2023,0510 ; 8638 RD+CLR TB,J/TMTR1 ;TIME BASE
U 1741, 3137,0001,3000,0000,0060,2023,0511 ; 8639 RD+CLR PA,J/PMTR1 ;PERF ANALYSIS CNT
U 1742, 3140,0001,3000,0000,0060,2023,0512 ; 8640 EMTR: RD+CLR E CNT,J/EMTR1 ;EBOX CNT
U 1743, 3141,0001,3000,0000,0060,2023,0513 ; 8641 CMTR: RD+CLR C CNT,J/CMTR1 ;CACHE CNT
U 1744, 3134,4001,0000,0000,0000,2210,0000 ; 8642 REL ECL EBUS ;INTERVAL -- VECTOR INTERRUPT
U 3134, 3135,0001,0000,0000,0000,1510,0714 ; 8643 = SET PI CYCLE
U 3135, 0643,4001,0000,0000,0000,2110,0105 ; 8644 SET ACCOUNT EN,J/PIINST
; 8645
U 3136, 3142,0001,0000,0000,0000,0010,0000 ; 8646 TMTR1: MTR CTL/CLR TIME,J/MTRRQ1 ;HOLD SELECTS FOR
U 3137, 3142,4001,0000,0000,0000,0010,0001 ; 8647 PMTR1: MTR CTL/CLR PERF,J/MTRRQ1 ;MTR CTL FUNCTION
U 3140, 3142,4001,0000,0000,0000,0010,0002 ; 8648 EMTR1: MTR CTL/CLR E CNT,J/MTRRQ1 ; TO PREVENT RACE
U 3141, 3142,0001,0000,0000,0000,0010,0003 ; 8649 CMTR1: MTR CTL/CLR M CNT,J/MTRRQ1 ; AND POSSIBLE GLITCHES
; 8650
; 8651 ;HERE WITH RELEVANT COUNT IN ARR, GARBAGE IN ARL
; 8652
U 3142, 2424,4001,0000,0000,0000,1510,0004 ; 8653 MTRRQ1: ABORT INSTR
; 8654 =0 ARL+ARX_0.M,ARX0-3 DISP, ;CLEAR GARBAGE & RE-DISPATCH
U 2424, 0770,4001,0000,0000,2041,0047,0060 ; 8655 CALL.M,J/MTRDBL ; TO ADD DOUBLE COUNTER FROM PT
; 8656 AR_AR+BR LONG,SC_#,#/35.,
U 2425, 3143,0602,2604,0302,0036,3527,0043 ; 8657 VMA_VMA-1,STORE ;STORE BACK IN PROCESS TABLE
U 3143, 3144,3441,2003,0000,0002,0010,0000 ; 8658 MEM_AR,AR_0S ;HI PART TO MEM
U 3144, 0001,4001,4000,0000,0016,3603,0000 ; 8659 AR_SHIFT,VMA_VMA+1,STORE,RETURN1
; 8660
; 8661 ;HERE TO PICK UP DOUBLEWORD FROM PROCESS TABLE
; 8662 ; AND ADD CURRENT CONTENTS OF APPROPRIATE METER
; 8663
; 8664 =00
; 8665 MTRDBL: AR_0S,ARX_SHIFT,
U 0770, 3145,3401,2400,0000,0100,3010,0510 ; 8666 VMA_#,#/510,J/RDEMTR ;TIME BASE IN EPT 510-511
; 8667 AR_0S,ARX_SHIFT,
U 0771, 3145,3441,2400,0000,0100,3010,0512 ; 8668 VMA_#,#/512,J/RDEMTR ;PERF CNT IN EPT 512-513
; 8669 AR_0S,ARX_SHIFT,
U 0772, 3146,3401,2400,0000,0100,3010,0504 ; 8670 VMA_#,#/504,J/RDUMTR ;EBOX ACCT IN UPT 504-505
; 8671 AR_0S,ARX_SHIFT,
U 0773, 3146,3441,2400,0000,0100,3010,0506 ; 8672 VMA_#,#/506,J/RDUMTR ;CACHE ACCT IN UPT 506-507
; 8673
; 8674 RDEMTR: BR_AR LONG, ;SAVE COUNT IN BR!BRX
U 3145, 1074,0001,0060,0000,0012,0026,0113 ; 8675 LOAD AR,EPT REF,J/RDMTR2;GET HIGH WORD FROM EPT
U 3146, 1074,0001,0060,0000,0012,0026,0223 ; 8676 RDUMTR: BR_AR LONG,LOAD AR,UPT REF ; OR UPT AS APPROP
; 8677 =0*
; 8678 RDMTR2: FIN XFER,VMA_VMA+1,LOAD ARX, ;NOW GET LOW WORD
U 1074, 0736,3240,0003,0000,0033,3650,0000 ; 8679 CALL,J/XFERW ;GO WAIT FOR IT
U 1076, 0001,3701,0500,0000,0000,0003,0000 ; 8680 ARX_ARX*2,RETURN1
; 8681
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; IO.MIC[10,5351] 14:31 29-Nov-83 PRIORITY INTERRUPT PROCESSING
; 8682 .TOC "PRIORITY INTERRUPT PROCESSING"
; 8683 ;HERE WHEN PRIORITY INTERRUPT REQUEST DETECTED
; 8684 ;PI LOGIC HAS DONE HANDSHAKE TO BRING FUNCTION WORD IN ON EBUS
; 8685 ; FUNCTION WORD IS NOW IN AR, SC=2
; 8686
; 8687 ;THE FORMAT OF THE FUNCTION WORD IS --
; 8688 ; 0-2 ADDRESS SPACE FOR THE FUNCTION
; 8689 ; 0=EPT
; 8690 ; 1=EXEC VIRTUAL
; 8691 ; 4=PHYSICAL
; 8692 ; OTHERS UNDEFINED
; 8693 ; 3-5 FUNCTION TO PERFORM (SEE LIST BELOW AT PIDISP)
; 8694 ; 6 FUNCTION QUALIFIER
; 8695 ; 7-10 PHYSICAL DEVICE # ON EBUS
; 8696 ; 11-12 UNDEFINED
; 8697 ; 13-35 ADDRESS FOR FUNCTION
; 8698
U 3147, 3150,0001,0010,0000,1000,1510,0714 ; 8699 PICYC1: SET PI CYCLE,MQ_AR ;START PI CYCLE
U 3150, 3151,0001,0007,0000,0000,1010,0163 ; 8700 FM[SV.IOP]_AR ;[234] save IOP function word
; 8701 ; in AC3.
U 3151, 0570,3600,0207,4000,0360,0007,0175 ; 8702 VMA_AR AND ADMSK,ARX/AD,SH DISP ;EXTRACT ADDR, DISP ON FCN
; 8703 =1000 ;3-5 IS FUNCTION TO PERFORM
U 0570, 0643,4001,0000,0000,0100,3410,0040 ; 8704 PIDISP: VMA_40+PI*2,J/PIINST ;(0) STANDARD INTERRUPT
U 0571, 0643,4001,0000,0000,0100,3410,0040 ; 8705 VMA_40+PI*2,J/PIINST ;(1) DITTO
U 0572, 3153,3203,2000,0302,0000,0010,0005 ; 8706 AR_AR*4,SC_#,#/5,J/PIVECT ;(2) VECTOR
U 0573, 0677,4001,0000,0000,0012,0010,0000 ; 8707 LOAD AR,J/PIINCR ;(3) INCREMENT
U 0574, 0720,0001,0000,7310,0020,5210,0040 ; 8708 SKP AR6,J/PIDATO ;(4) DATAO
U 0575, 0742,4001,0020,0000,0060,0010,0000 ; 8709 BRX/ARX,TIME/5T,J/PIDATI ;(5) DATAI
U 0576, 1750,3243,2000,7310,0020,5210,0040 ; 8710 AR_AR*4,SKP AR6,J/PIBYTE ;(6) BYTE TRANSFER
; 8711 .IFNOT/IPA20 ;[265]
U 0577, 0643,4001,0000,0000,0100,3410,0040 ; 8712 VMA_40+PI*2,J/PIINST ;(7) UNDEFINED
;;8713 .IF/IPA20 ;[265]
;;8714 VMA_AR AND ADMSK, J/PHYS0 ;(7) KLIPA [265]
; 8715 .ENDIF/IPA20
; 8716
U 3152, 0643,0001,0000,0000,0100,3410,0041 ; 8717 PICYC2: VMA_41+PI*2,J/PIINST ;2ND PART OF STD INT
; 8718
U 3153, 0643,3401,2000,7311,0040,0007,0030 ; 8719 PIVECT: FE_# AND S,#/30,AR_0S,SH DISP ;WHAT KIND OF DEVICE?
; 8720 =0011
U 0643, 0270,4001,0000,0000,0013,0026,0513 ; 8721 PIINST: EPT FETCH,J/XCTW ;CHAN 0-3
U 0647, 0270,4001,0000,0000,0013,0026,0513 ; 8722 EPT FETCH,J/XCTW ;CHAN 4-7
U 0653, 1134,0001,0000,2030,2000,0110,0142 ; 8723 AR0-8_FE+#,#/142,J/DTEVEC ;DTE 0-3
U 0657, 0270,0001,0000,0000,0013,0010,0000 ; 8724 LOAD ARX,J/XCTW ;EXTERNAL DEVICE
; 8725 =0*
U 1134, 2264,3401,2400,0302,1000,0050,0011 ; 8726 DTEVEC: ARX_AR,AR_0S,SC_#,#/9.,CALL,J/SHIFT
U 1136, 0270,3701,0000,0000,0313,0026,0513 ; 8727 VMA_AR,EPT FETCH,J/XCTW
; 8728
; 8729 =0101
U 0665, 0736,0001,0000,0000,0012,0026,0113 ; 8730 PILD: LOAD AR,EPT REF,J/XFERW ;GET DATUM FROM EPT
U 0667, 0736,0001,0000,0000,0012,0010,0000 ; 8731 LOAD AR,J/XFERW ; OR EXEC VIRTUAL ADDR SPACE
;;8732 .IFNOT/MODEL.B
;;8733 VMA_ARX,LOAD AR,
;;8734 PHYS REF,J/XFERW ; OR PHYSICAL MEMORY, AS REQUESTED
; 8735 .IF/MODEL.B
U 0675, 1050,3610,0207,4000,0320,0010,0175 ; 8736 VMA_ARX AND ADMSK,ARX/AD,J/PHYS2;FORCE AC'S FOR 0-17
; 8737 .ENDIF/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16-1
; IO.MIC[10,5351] 14:31 29-Nov-83 PRIORITY INTERRUPT PROCESSING
;;8738 .IFNOT/MODEL.B ;[224]
;;8739 IOPFIN: SET ACCOUNT EN,J/PIDONE ;IN CASE OF EBUS PROBLEMS
; 8740 .ENDIF/MODEL.B ;[224]
; 8741
; 8742 ;HERE TO PERFORM INCREMENT FUNCTION
; 8743
U 0677, 2426,3200,0003,7310,0042,5210,0040 ; 8744 PIINCR: AR_MEM,SKP AR6 ;GET WORD, INCR OR DECR?
U 2426, 0723,4003,2000,0000,0036,0010,0000 ; 8745 =0 AR_AR+1,STORE,J/PIDONE
U 2427, 0723,1701,2000,0000,0036,0010,0000 ; 8746 AR_AR-1,STORE,J/PIDONE
; 8747
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17
; IO.MIC[10,5351] 14:31 29-Nov-83 PRIORITY INTERRUPT PROCESSING
; 8748 ;HERE FOR DATAO (EXAMINE) FUNCTION
; 8749
; 8750 =0000
U 0720, 0665,0001,0000,0000,1040,0047,0000 ; 8751 PIDATO: AR0-3 DISP,CALL.M,J/PILD ;GET DATA FROM REQUESTED ADR SPC
U 0721, 3155,3203,2000,0000,0000,0050,0000 ; 8752 AR_AR*4,CALL,J/RDEX ;RESTRICTED EXAMINE
U 0722, 3062,3200,0003,0000,0022,2250,0026 ; 8753 PIOUT: AR_MEM,SET DATAO,CALL,J/EBUSO ;SEND DATA
U 0723, 0724,4001,0003,0000,0002,0024,0502 ; 8754 PIDONE: MEM_AR,DISMISS ;DONE, DISMISS & RESUME NORMAL
U 0724, 0075,4001,0000,0000,0117,0010,0000 ; 8755 PIFET: VMA/PC,FETCH,J/NOP ;RESUME AS BEFORE
U 0725, 1154,1701,0000,0000,0320,0050,0000 ; 8756 =0101 VMA_AR-1,CALL,J/DEXCHK ;GO PROT/RELOC THIS EXAM
;;8757 .IFNOT/MODEL.B
;;8758 =0111 VMA_ARX,LOAD AR,PHYS REF,J/PIOUT;PROTECTED PHYSICAL
; 8759 .IF/MODEL.B
U 0727, 1040,3610,0207,0000,0320,0010,0175 ; 8760 =0111 VMA_ARX AND ADMSK,ARX/AD,J/PHYS1;FORCE AC'S FOR 0-17
; 8761 .ENDIF/MODEL.B
U 0737, 0722,0001,0000,0000,0000,0010,0000 ; 8762 =1111 J/PIOUT ;PROT VIOLATION. SEND 0
; 8763
; 8764 ;HERE FOR DATAI (DEPOSIT) FUNCTION
; 8765
; 8766 =10
U 0742, 3061,3441,2000,0000,0060,2250,0027 ; 8767 PIDATI: SET DATAI,TIME/5T,CALL,J/EBUSI ;READ THE DATA
U 0743, 3154,3721,2400,0000,1000,0010,0000 ; 8768 ARX_AR,AR_MQ ;DATUM TO ARX, GET FCN WORD
U 3154, 0740,3202,0620,7310,0020,5210,0040 ; 8769 BRX/ARX,ARX_BRX,SKP AR6 ;RESTRICTED?
U 0740, 0765,3242,6000,0000,1040,0007,0000 ; 8770 =0000 AR0-3 DISP,AR_BRX,J/PIST ;NO, STORE AS REQUESTED
U 0741, 3155,3203,2000,0000,0000,0050,0000 ; 8771 AR_AR*4,CALL,J/RDEX ;YES, GET PROT/RELOC ADDR
U 0745, 1154,4003,0000,0000,0320,0050,0000 ; 8772 =0101 VMA_AR+1,CALL,J/DEXCHK ;VERIFY LEGALITY
U 0747, 0775,3202,6000,0000,0000,0010,0000 ; 8773 =0111 AR_BRX,J/PSTOR ;DATA IN AR, ADDR IN ARX. STORE PHYS
U 0757, 0723,4001,0000,0000,0000,0010,0000 ; 8774 =1111 J/PIDONE ;PROT VIOLATION, STORE NOTHING
; 8775
; 8776 =0101
U 0765, 0723,0001,0000,0000,0016,0026,0113 ; 8777 PIST: STORE,EPT REF,J/PIDONE
U 0767, 0723,0001,0000,0000,0016,0010,0000 ; 8778 STORE,J/PIDONE
;;8779 .IFNOT/MODEL.B
;;8780 PSTOR: VMA_ARX,STORE,PHYS REF,J/PIDONE
; 8781 .IF/MODEL.B
U 0775, 1070,3610,0207,0000,0320,0010,0175 ; 8782 PSTOR: VMA_ARX AND ADMSK,ARX/AD,J/PHYS3;FORCE AC'S FOR 0-17
; 8783 .ENDIF/MODEL.B
U 0777, 0723,4001,0000,0000,0000,0010,0000 ; 8784 J/PIDONE
; 8785
U 3155, 3156,4001,4000,7311,2000,0010,0030 ; 8786 RDEX: FE_# AND S,#/30,AR_ARX ;DTE# *8 TO FE, ADDR TO AR
U 3156, 3157,4001,0040,2030,2000,0110,0145 ; 8787 BR/AR,AR0-8_FE+#,#/145 ;SAVE ADDR TO BR, GET EPT LOC
U 3157, 3160,3441,2400,0302,1000,0010,0011 ; 8788 GTAR08: ARX_AR,AR_0S,SC_#,#/9.
U 3160, 0004,0001,4000,0000,0000,0003,0000 ; 8789 AR_SHIFT,RETURN4
; 8790
; 8791 =0*
U 1154, 0665,0001,0000,0000,0000,0050,0000 ; 8792 DEXCHK: CALL,J/PILD ;PROTECTION WORD FROM EPT
U 1156, 1030,3102,0004,0000,0020,5410,0000 ; 8793 SKP AR GT BR ;ALLOWED?
U 1030, 0012,3401,2000,0000,0000,0003,0000 ; 8794 =00 AR_0S,RETURN12 ;NO, SEND 0, STORE NOTHING
U 1031, 0665,0001,0000,0000,0000,3650,0000 ; 8795 VMA_VMA+1,CALL,J/PILD ;YES, GET RELOCATION WORD
U 1033, 3161,0602,2004,0000,0020,0010,0000 ; 8796 =11 AR_AR+BR ;RELOCATE TO PHYSICAL ADDR
U 3161, 0002,3600,0207,4000,0020,0003,0175 ; 8797 ARX_AR AND ADMSK,RETURN2 ;STRIP TO 23 BITS
; 8798
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 18
; IO.MIC[10,5351] 14:31 29-Nov-83 PRIORITY INTERRUPT PROCESSING
;;8799 .IF/IPA20
;;8800 ;BEGIN EDIT [265]
;;8801 PHYS0: LOAD AR, PHYS REF CACHE ;[311]START READ
;;8802 AR_MEM ;FINISH READ
;;8803 =10 AR_AR+1, SET DATAO, ;INCREMENT THE LOCATION
;;8804 CALL [EBUSO] ;AND SEND DATA OVER THE EBUS
;;8805 STORE, PHYS REF CACHE, ;[311]UPDATE MEMORY
;;8806 J/PIDONE ;FINISH MEMORY CYCLE
; 8807 .ENDIF/IPA20 ;END EDIT [265]
; 8808 ;FORCE AC'S FOR 0-17
; 8809
; 8810 .IF/MODEL.B
; 8811 =00
U 1040, 3162,0001,0000,0302,0000,0050,0040 ; 8812 PHYS1: SC_#,#/32.,CALL,J/CHKAC ;DATAO (EXAMINE)
U 1042, 0722,0001,0000,0000,0012,0010,0000 ; 8813 =10 LOAD AR,J/PIOUT ;AC REF DONT USE PHYS REF
U 1043, 0722,4001,0000,0000,0012,0026,0103 ; 8814 LOAD AR,PHYS REF,J/PIOUT ;NOT AC'S GET PHYSICAL MEMORY
; 8815
; 8816 =00
U 1050, 3162,0001,0000,0302,0000,0050,0040 ; 8817 PHYS2: SC_#,#/32.,CALL,J/CHKAC ;DATAO (EXAMINE)
U 1052, 0736,0001,0000,0000,0012,0010,0000 ; 8818 =10 LOAD AR,J/XFERW
U 1053, 0736,4001,0000,0000,0012,0026,0103 ; 8819 LOAD AR,PHYS REF,J/XFERW ;NOT AC'S GET PHYSICAL MEMORY
; 8820
; 8821 =00
U 1070, 3162,0001,0000,0302,0000,0050,0040 ; 8822 PHYS3: SC_#,#/32.,CALL,J/CHKAC
U 1072, 0723,0001,0000,0000,0016,0010,0000 ; 8823 =10 STORE,J/PIDONE
U 1073, 0723,4001,0000,0000,0016,0026,0103 ; 8824 STORE,PHYS REF,J/PIDONE
; 8825
U 3162, 3163,4001,0400,0000,0000,0010,0000 ; 8826 CHKAC: ARX_SHIFT ;GET ADDRESS WITHOUT 32-35
; 8827 ARX_ARX AND ADMSK, ;FLUSH GARBAGE IN 0-3
U 3163, 0002,3610,0207,0000,0020,5603,0175 ; 8828 SKP AD NE,RETURN2 ;AND MAKE THE TEST
; 8829 .ENDIF/MODEL.B
; 8830
; 8831
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 19
; IO.MIC[10,5351] 14:31 29-Nov-83 PRIORITY INTERRUPT PROCESSING
; 8832 ;HERE FOR BYTE TRANSFERS
; 8833
; 8834 =000
U 1750, 3164,4001,0000,7311,0000,0050,0030 ; 8835 PIBYTE: FE_# AND S,#/30,CALL,J/PIBPA ;OUT... GET BP ADDR
U 1751, 3061,3441,2000,0000,0000,2250,0027 ; 8836 SET DATAI,CALL,J/EBUSI ;IN ... FIRST READ THE DATA
U 1753, 1760,0323,5400,0000,1020,0010,0000 ; 8837 =011 ARX_AR,AR_MQ*4,J/PIDPB ;GOT IT, GO DEPOSIT IT
; 8838
U 1754, 0640,3701,0000,0000,0300,0050,0000 ; 8839 =100 VMA_AR,CALL,J/PIIBP ;GO INCREMENT OUTPUT BP
U 1755, 2260,0001,0000,2002,0000,0050,0000 ; 8840 SC_FE+SC,CALL,J/LDB1 ;GO LOAD BYTE FROM IT
U 1757, 0722,0001,0000,0000,0000,0010,0000 ; 8841 =111 J/PIOUT ;THEN SEND BYTE
; 8842
; 8843 =000
; 8844 PIDPB: BRX/ARX,FE_# AND S,#/30, ;HERE WITH INPUT DATA
U 1760, 3164,0001,0020,7311,0000,0050,0030 ; 8845 CALL,J/PIBPA
U 1764, 0640,4003,0000,0000,0320,0050,0000 ; 8846 =100 VMA_AR+1,CALL,J/PIIBP ;GO INCREMENT INPUT BYTE PTR
; 8847 AR_BRX,SC_#-SC,#/36., ;STORE BYTE WITH IT
U 1765, 2266,3202,6000,5302,0020,5150,0044 ; 8848 SKP SCAD0,CALL,J/DPB1
U 1767, 0723,4001,0000,0000,0000,0010,0000 ; 8849 =111 J/PIDONE
; 8850
U 3164, 3157,0001,0000,2030,2000,0110,0140 ; 8851 PIBPA: AR0-8_FE+#,#/140,J/GTAR08
; 8852
; 8853 =00*
U 0640, 0665,0001,0000,0000,0000,0050,0000 ; 8854 PIIBP: CALL,J/PILD ;GET POINTER FROM EPT
U 0642, 1420,4001,0000,5110,3021,5150,0200 ; 8855 P_P-S,SKP SCAD0,CALL.M,J/IBPS ;INCREMENT IT
U 0646, 1444,4001,0400,0102,1000,0010,0000 ; 8856 =11* ARX_AR,SC_P,J/BYTEA ;NOW EVALUATE ITS ADDR
; 8857
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 20
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 8858 .TOC "KL-MODE PAGE REFILL LOGIC"
; 8859
; 8860 .IF/KLPAGE
; 8861 ;HERE ON ANY PAGE FAILURE
; 8862 ;THE POSSIBLE CAUSES ARE --
; 8863 ; 1: A PARITY ERROR WAS DETECTED IN AR OR ARX FOLLOWING A READ
; 8864 ; REFERENCE. IN THIS CASE WE SAVE THE BAD WORD IN A RESERVED
; 8865 ; LOCATION IN FAST MEMORY BLOCK 7, AND RETURN A PAGE FAIL CODE
; 8866 ; INDICATING THE ERROR.
; 8867 ; 2: THE MBOX DETECTED A PROPRIETARY VIOLATION OR PAGE TABLE PARITY
; 8868 ; ERROR, OR THE EBOX FOUND THE SELECTED ADDRESS BREAK CONDITION.
; 8869 ; IN THIS CASE, WE RETURN THE PAGE FAIL CODE GENERATED BY THE
; 8870 ; MBOX (SEE PRINT PAG4).
; 8871 ; 3: A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE HARDWARE
; 8872 ; PAGE TABLE DIRECTORY HAD NO VALID MATCH. IN THIS CASE, WE
; 8873 ; WRITE THE PAGE TABLE DIRECTORY FROM THE VMA, AND CLEAR THE
; 8874 ; ACCESS BITS FOR ALL PAGE ENTRIES CONTROLLED BY THE SELECTED
; 8875 ; DIRECTORY ENTRY. WE THEN JOIN THE REFILL CODE, BELOW.
; 8876 ; 4: A REFERENCE OCCURRED FOR A VIRTUAL PAGE FOR WHICH THE ACCESS BIT
; 8877 ; IN THE HARDWARE PAGE TABLE WAS OFF, OR A WRITE OCCURRED TO A
; 8878 ; PAGE WHOSE WRITABLE BIT WAS OFF. IN THIS CASE, WE EVALUATE THE
; 8879 ; PAGING POINTERS IN CORE TO DETERMINE WHETHER THE ACCESS SHOULD
; 8880 ; BE ALLOWED, AND IF SO, THE PHYSICAL PAGE TO WHICH IT SHOULD BE
; 8881 ; TRANSLATED. WE THEN EITHER PAGE FAIL, OR WRITE A PAGE ENTRY
; 8882 ; INTO THE HARDWARE PAGE TABLE AND RESTART THE REFERENCE.
; 8883 ;
; 8884 ; [322] Note that in the latter case, if a page should be accessible
; 8885 ; but not writable, it is the microcode's responsibility to turn on
; 8886 ; bit 2 of the page fail word (the Accessible bit) if a write
; 8887 ; reference is attempted to such a page. Currently, this is done only
; 8888 ; if no CST is present (TOPS-10 operating mode), since TOPS-20
; 8889 ; retraces the page map from scratch and thus generates the correct
; 8890 ; information. The bit can be made correct for the CST present case
; 8891 ; (see code near NOTWR), but since we are now quite tight on control
; 8892 ; store, we have chosen not to implement this.
; 8893 ;
; 8894 ; If you are looking at this code for the first time, be aware that
; 8895 ; only AR, ARX, SC, and FE are saved and restored here; thus BRX and
; 8896 ; MQ are strictly off limits for this code.
; 8897 ;
;;8898 .IFNOT/MODEL.B
;;8899 2377: CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
; 8900 .IF/MODEL.B
U 3777, 3165,3203,7700,0000,0000,2110,0145 ; 8901 3777: CLR ACCOUNT EN,FORCE AR-ARX,J/PF1
; 8902 .ENDIF/MODEL.B
U 1777, 3165,3203,7700,0000,0000,2110,0145 ; 8903 1777: CLR ACCOUNT EN,FORCE AR-ARX
U 3165, 3166,3703,4207,0000,2000,1010,0156 ; 8904 PF1: SV.AR_AR,AR_ARX,ARX_AR (AD) ;SAVE CURRENT AR
U 3166, 3167,3703,4207,0000,2000,1010,0157 ; 8905 SV.ARX_AR,AR_ARX,ARX_AR (AD) ; AND ARX
;;8906 .IF/PAGCNT ;[327] Page fault counting
;;8907 AR_TRX2+1 ;[327] Count this page fault
;;8908 TRX2_AR
; 8909 .ENDIF/PAGCNT ;[327]
U 3167, 1034,0001,0000,0000,0000,2204,0400 ; 8910 GET ECL EBUS,PF DISP,J/PF2 ;PARITY ERROR?
; 8911 =1100
; 8912 PF2:
; 8913 .IFNOT/PAGCNT ;[327]
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 20-1
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
U 1035, 2430,4001,0000,0301,0000,6410,0036 ; 8914 =1101 FE_#,#/36,SKP RPW,J/PFPAR ;YES. AR PARITY ERROR, CODE 36
; 8915 ;CHECK FOR MIDDLE OF RPW CYCLE
;;8916 .IF/PAGCNT
;;8917 =1101 AR_SV.AR,J/ARPAR ;[327] AR parity error. Get back
; 8918 .ENDIF/PAGCNT ;[327] saved AR
U 1036, 2430,0001,4000,0301,2000,6410,0037 ; 8919 AR_ARX,FE_#,#/37,SKP RPW,J/PFPAR;[307] YES, ARX PARITY. COULD BE RPW
U 1037, 3170,0001,3000,0000,0062,2010,0567 ; 8920 AR_EBUS REG,MB WAIT ;NO. GET PAGE FAIL WORD
U 3170, 1047,0001,0000,0000,0000,2204,0000 ; 8921 REL ECL EBUS,PF DISP,J/PF4 ;EBOX HANDLING REQUIRED?
; 8922 ;
;;8923 .IF/PAGCNT ;[327]
;;8924 ARPAR: FE_#,#/36,SKP RPW,J/PFPAR ;Set code 36 and check for RPW
; 8925 .ENDIF/PAGCNT
; 8926
; 8927 ;HERE ON ANY PARITY ERROR
; 8928 ;SKIP IF MIDDLE OF READ-PAUSE-WRITE CYCLE, IN WHICH CASE WE
; 8929 ; MUST WRITEBACK THE DATA TO PREVENT INCOMPLETE CYCLE
; 8930 =0
U 2430, 3171,3733,0000,0000,0303,1710,0000 ; 8931 PFPAR: VMA_VMA HELD,J/PFPAR1 ;MAY HAVE CHANGED AT MBWAIT
U 2431, 3171,4001,0000,0000,0016,0010,0000 ; 8932 STORE ;WRITEBACK WITH GOOD PARITY
U 3171, 3172,0001,0000,0302,0007,0010,0140 ; 8933 PFPAR1: MAP,SC_#,#/140 ;GET MAP INFO ON REF
U 3172, 3173,4001,0007,0000,0002,1010,0160 ; 8934 PFPAR2: SV.PAR_AR,MB WAIT ;[234]SAVE WORD WITH BAD PARITY
U 3173, 3174,0001,3000,0000,0060,2010,0567 ; 8935 AR_EBUS REG ;READ MAP INFO
U 3174, 3175,0001,0000,7102,0000,2210,0000 ; 8936 REL ECL EBUS,SC_P AND SC ;GET USER BIT FROM MAP WORD
U 3175, 1047,0001,0000,6000,3000,0022,0200 ; 8937 P_FE OR SC,J/PF4 ;STUFF IN PARITY ERROR CODE
; 8938
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 21
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 8939 ;HERE WITH PAGE FAIL WORD IN AR
; 8940 ; TESTING FOR EBOX HANDLING REQUIRED.
; 8941
; 8942 =0111
U 1047, 0040,4001,0007,0000,0000,1005,0152 ; 8943 PF4: SV.PFW_AR,SR DISP,J/CLEAN ;NO, GO CLEAN UP
U 1057, 3176,3202,2047,0000,0000,1010,0152 ; 8944 SV.PFW_AR,AR_BR,BR/AR ;YES, GET BR TOO
U 3176, 3200,3441,2007,0000,0000,1010,0150 ; 8945 SV.BR_AR,AR_0S ;SAVE BR
U 3200, 3201,0001,0000,0000,2000,0022,0200 ; 8946 AR0-8_FE ;NOW SAVE 10-BIT REGS
U 3201, 3202,3701,0200,2400,2000,0022,0200 ; 8947 ARX_AR (AD),AR0-8_SC ;FE TO ARX, SC TO AR
; 8948 ARR_ARL,ARL_ARX (ADX), ;FE IN ARL, SC IN ARR
U 3202, 3203,3731,4200,0000,3001,1710,0006 ; 8949 ARX_VMA HELD ;GET VMA WHICH FAILED
; 8950 SV.SC_AR,AR_ARX, ;HOLD SC & FE
U 3203, 0636,3241,4007,0000,2020,1032,0151 ; 8951 GEN BR*2,SIGNS DISP ;TEST FOR PT DIR MATCH
; 8952 =1110
; 8953 PGRF1: SV.VMA_AR,ARX_AR SWAP,ARR_ARL, ;GET SEC # TO AR32-35
U 0636, 1075,0001,4407,0000,3000,1036,0145 ; 8954 DISP/EA MOD,J/PGRF2 ; SEC < 20?
; 8955
; 8956 ; HERE TO WRITE PT DIR, & CLR 4 PAGE ENTRIES. If the expanded
; 8957 ; page table ECO has been installed, this will only clear two entries
; 8958 ; (since they go in pairs for that case), but in either case the
; 8959 ; right thing will happen. [333]
; 8960 ;
; 8961 AR_0S,COND/MBOX CTL,MBOX CTL/2, ;READY TO CLEAR EVEN PAIR
U 0637, 3204,3441,2000,7133,0000,2310,0002 ; 8962 FE_P AND #,#/2,SC/SCAD ;GET WRITE REF BIT TO FE & SC
; 8963 COND/MBOX CTL,MBOX CTL/33, ;CLR EVEN, WR DIR, SEL ODD
U 3204, 3205,4001,0000,2003,0020,2310,0033 ; 8964 TIME/3T,FE_FE+SC,SC/SCAD; WR REF = 4 NOW
; 8965 COND/MBOX CTL,MBOX CTL/10, ;CLR ODD, RESET NORMAL SELECT
U 3205, 3206,3242,2000,2001,0020,2310,0010 ; 8966 TIME/3T,FE_FE+SC,AR_BR ;GET PFW BACK, WR REF = 10
U 3206, 3207,0001,0000,7322,0000,0010,0401 ; 8967 SC_# AND AR0-8,#/401 ;GET USER & PAGED REF BITS
U 3207, 3210,0001,0000,6000,2001,0010,0200 ; 8968 AR0-8_FE OR SC ;COMBINE WITH WR REF BIT
U 3210, 0636,0001,4047,0000,2000,1010,0152 ; 8969 SV.PFW_AR,BR/AR,AR_ARX,J/PGRF1 ;REJOIN MAIN PATH
; 8970
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 8971 ; HERE TO TRACE PAGE POINTERS FOR THIS ADDRESS
; 8972 ; VMA WHICH FAILED IS IN ARX AND AR WITH THE HALVES SWAPPED
; 8973 ; PAGE FAIL WORD IS IN BR
; 8974 ; [333] Bit 5 of all access pointers is implemented as "Keep" for
; 8975 ; pages which should not be swept from the page map on DATAO PAG
; 8976 ; UBR reload unless bit 3 is also set.
; 8977 ;
; 8978
;;8979 .IFNOT/EPT540
;;8980 =1101
;;8981 PGRF2: VMA_#+AR32-35,#/440, ;YES.
;;8982 SIGNS DISP,J/PGRF3 ; USER REF?
;;8983 VMA_#+AR32-35,#/460, ;NO
;;8984 SIGNS DISP,J/PGRF3
; 8985 .IF/EPT540
; 8986 =1101
; 8987 PGRF2: VMA_#+AR32-35,#/540, ;YES.
U 1075, 1135,0001,0000,0000,0120,3332,0540 ; 8988 SIGNS DISP,J/PGRF3 ; USER REF?
; 8989 VMA_#+AR32-35,#/560, ;NO
U 1077, 1135,4001,0000,0000,0120,3332,0560 ; 8990 SIGNS DISP,J/PGRF3
; 8991 .ENDIF/EPT540
; 8992 =1101
U 1135, 3211,0001,0000,3401,0012,0026,0113 ; 8993 PGRF3: LOAD AR,EPT REF,FE_-1,J/SECPTR ;Initialize APWKC bits, get section
U 1137, 3211,0001,0000,3401,0012,0026,0223 ; 8994 LOAD AR,UPT REF,FE_-1 ; pointer from EPT or UPT
; 8995
; 8996 ;HERE TO FIND PAGE MAP WITH SECTION POINTER
; 8997
U 3211, 1150,3240,0003,0302,0022,7010,0011 ; 8998 SECPTR: AR_MEM,SC_#,#/9,SKP INTRPT ;GET SECTION POINTER
; 8999 =1000 FE_FE AND AR0-8,BR/AR, ;COMBINE ACCESS BITS
U 1150, 1151,0001,0040,7021,1040,0007,0000 ; 9000 AR0-3 DISP ;SPT INDEX IN ARR, DISP ON TYPE
U 1151, 3250,3200,2007,0000,0020,0010,0150 ; 9001 =1001 AR_SV.BR,J/PFT ;NO ACCESS TO SECTION (OR INTRPT)
; 9002 =1011
U 1153, 3221,4001,0400,0000,0001,0010,0020 ; 9003 SECIMM: ARX_SHIFT,ARL_0.M,J/PGRF5 ;IMMEDIATE
U 1155, 2434,0001,0000,0000,0001,0010,0020 ; 9004 =1101 ARL_0.M,J/LDIND ;SHARED
U 1157, 3212,0001,0000,0000,0001,0010,0020 ; 9005 =1111 ARL_0.M ;INDIRECT SECTION POINTER
; 9006 ;
; 9007 ; WARNING: do not use the technique at LDIND to allow
; 9008 ; interrupts out of section pointer loops, as that will have
; 9009 ; adverse effects on byte transfers and console executes.
; 9010 ;
U 3212, 3213,0600,4007,0000,2320,0010,0143 ; 9011 VMA_AR+SBR,AR_ARX ;LOOK IN SPT
U 3213, 3214,3202,2040,0000,0012,0026,0103 ; 9012 BR/AR,AR_BR,LOAD AR,PHYS REF ;CALL FOR SPT ENTRY
U 3214, 3215,3200,0403,0000,0022,0010,0000 ; 9013 ARX_SHIFT,AR_MEM ;SEC PTR INDEX TO ARX0-8
U 3215, 3216,3202,4200,0000,0000,0010,0000 ; 9014 AR_SHIFT,ARX_BR ;NEW SEC PTR ADDR TO AR
; 9015 GEN # AND AR0-8,#/77,SKP SCAD NE,
U 3216, 2432,3703,0000,7320,0320,5210,0077 ; 9016 VMA_AR
U 2432, 3211,4001,0000,0000,0012,0026,0103 ; 9017 =0 LOAD AR,PHYS REF,J/SECPTR
U 2433, 3250,3200,2007,0000,0020,0010,0150 ; 9018 AR_SV.BR,J/PFT ;TRAP, SEC MAP NOT IN CORE
; 9019 ;
; 9020 ; We must turn off special cycle for indirect pointers so that
; 9021 ; we can take an interrupt. However, we can't do it if PXCT or
; 9022 ; SXCT might be active. Thus, a kernel mode program can get into
; 9023 ; a page fail loop that the microcode cannot exit.
; 9024 ;
; 9025 =0
U 2434, 3217,0600,0007,4000,0320,0010,0143 ; 9026 LDIND: VMA_AR+SBR,J/LDIND1 ;FOR INDIRECT PAGE POINTERS
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22-1
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
U 2435, 2434,4001,0000,0000,0000,1510,0000 ; 9027 CLR SPECIAL CYCLE,J/LDIND
; 9028 ;
; 9029 ; This fixes the glitch that INSTR FETCH (NICOND) doesn't
; 9030 ; clear 'CON4 INT DISABLE L' before fetching user's instruction.
; 9031 ; ;SHARED SEC = INDRCT PAG
U 3217, 3220,0001,0000,0000,0012,0026,0103 ; 9032 LDIND1: LOAD AR,PHYS REF ;GET PAGE MAP ADDR
U 3220, 1153,3240,0003,0000,0022,0010,0000 ; 9033 AR_MEM,J/SECIMM
; 9034
; 9035
; 9036 ;HERE WITH PAGE NO OF PAGE MAP IN AR,
; 9037 ; VIRTUAL PAGE NO WITHIN SECTION IN ARX0-8
; 9038
; 9039 .IF/NOCST
U 3221, 2436,3200,0007,0000,0020,5610,0142 ; 9040 PGRF5: TEST CBR ;[247] CBR = 0 MEANS NO CST UPDATE
; 9041 =0 AR_ARX, FE_FE AND #, #/174, ;[247][333] NO CST UPDATE
U 2436, 3226,0001,4000,7031,2000,0010,0174 ; 9042 J/NO.CST ;[247]
;;9043 .IFNOT/NOCST ;[247]
;;9044 PGRF5:
; 9045 .ENDIF/NOCST ;[247]
U 2437, 3222,0600,4007,0000,2320,0010,0142 ; 9046 VMA_AR+CBR,AR_ARX ;GENERATE CST ADDRESS
; 9047 GEN # AND AR0-8,#/77, ;IS PAGE MAP IN CORE?
U 3222, 2440,0001,0000,7320,0020,5210,0077 ; 9048 SKP SCAD NE
; 9049 =0 LOAD AR,PHYS REF, ;GET CST ENTRY FOR PAGE MAP
U 2440, 3223,4001,0040,0000,0012,0026,0103 ; 9050 BR/AR,J/PGRF6 ;SAVE PAGE PTR ADDR IN BR
U 2441, 3250,3200,2007,0000,0020,0010,0150 ; 9051 AR_SV.BR,J/PFT ;NOT IN CORE, PAGE FAIL TRAP
; 9052 ;
U 3223, 3224,3240,0003,7031,0022,0010,0174 ; 9053 PGRF6: AR_MEM,FE_FE AND #,#/174 ;[333]HERE IF CST FOR PAGE MAP
U 3224, 2442,3600,2007,0120,0040,5210,0140 ; 9054 AR_AR AND CSMSK,SKP P NE ;BEGIN CST UPDATE
U 2442, 3250,3200,2007,0000,0020,0010,0150 ; 9055 =0 AR_SV.BR,J/PFT ;AGE TRAP, MAP BEING SWAPPED
U 2443, 3225,3300,2007,4000,0036,0010,0141 ; 9056 AR_AR OR PUR,STORE ;PUT CST WORD BACK
;;9057 .IFNOT/NOCST ;[247]
;;9058 MEM_AR,VMA_BR,PHYS REF ;PHYS REF MAKES MODEL.A LOAD
;;9059 ;LONG VMA
;;9060 LOAD AR,PHYS REF ;GET PAGE MAP ENTRY
;;9061 AR_MEM,FE_FE OR #,#/100, ;PAGE POINTER
;;9062 SKP INTRPT ;CHECK FOR LONG INDIRECT
;;9063 ;POINTER
; 9064 .IF/NOCST ;[247]
U 3225, 2444,3202,0003,0000,0302,0026,0103 ; 9065 MEM_AR,VMA_BR,PHYS REF,J/NOCST0 ;PHYS REF MAKES MODEL.A LOAD
; 9066 ;LONG VMA
; 9067 NO.CST: GEN # AND AR0-8, #/77, ;[247] page map in core ?
U 3226, 2444,3701,0000,7320,0320,5210,0077 ; 9068 VMA_AR,SKP SCAD NE ;[247]
; 9069 =0
U 2444, 3227,4001,0000,0000,0012,0026,0103 ; 9070 NOCST0: LOAD AR,PHYS REF, J/NOCST1 ;[247] GET PAGE MAP ENTRY
U 2445, 3250,3200,2007,0000,0020,0010,0150 ; 9071 AR_SV.BR, J/PFT ;[247] not in core, pf trap
; 9072 NOCST1: AR_MEM,FE_FE OR #,#/100, ;[247] PAGE POINTER
U 3227, 1170,3240,0003,6031,0022,7010,0100 ; 9073 SKP INTRPT ;[247] CHECK FOR LONG INDIRECT
; 9074 .ENDIF/NOCST ;[247] POINTER
; 9075 ;
; 9076 ; HERE WITH PAGE MAP ENTRY IN AR
; 9077 ; FE HAS ACCUMULATED ACCESS BITS -- APWKC*4
; 9078 ; SC CONTAINS 9.
; 9079 ;
; 9080 =1000 FE_FE AND AR0-8,AR0-3 DISP, ;COMBINE PWKC, DISP ON TYPE
U 1170, 1171,3240,0207,7021,1060,0007,0145 ; 9081 ARX_SV.VMA ;GET BACK SAVED VMA
U 1171, 3250,3200,2007,0000,0020,0010,0150 ; 9082 =1001 AR_SV.BR,J/PFT ;0=NO ACCESS (OR HERE ON INTRPT)
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22-2
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 9083 =1011
; 9084 LDIMM: ARL_SHIFT,FE_FE SHRT, ;1=IMMEDIATE, LOAD PT
; 9085 ARX_ARX*2 COMP, ; GET -WR REF TO ARX03
U 1173, 3233,2001,0500,0302,0001,1210,0004 ; 9086 SC_#,#/4,J/LDPT ;[333] Set to move K bit
U 1175, 3230,0001,0000,0000,0001,0010,0020 ; 9087 =1101 ARL_0.M,J/LDSHR ;2=SHARED, GET SPT ENTRY
; 9088 =1111 ARL_0.M,ARX_SHIFT,SKP USER, ;3=INDIRECT, LOOP
U 1177, 2434,0001,0400,0000,0001,6210,0020 ; 9089 J/LDIND
; 9090 ;
; 9091 ; HERE TO GET SHARED PAGE POINTER OUT OF SPT
; 9092 ;
U 3230, 3231,0600,0007,0000,0320,0010,0143 ; 9093 LDSHR: VMA_AR+SBR ;ADDRESS OF SPT ENTRY
U 3231, 3232,0001,0000,0000,0012,0026,0103 ; 9094 LOAD AR,PHYS REF
U 3232, 1173,3200,0003,6031,0022,0010,0100 ; 9095 AR_MEM,FE_FE OR #,#/100,J/LDIMM ;TREAT SPT ENTRY AS IMMED
; 9096
; 9097 ;
; 9098 ; HERE WITH IMMEDIATE PAGE NO IN AR TO LOAD INTO PT
; 9099 ;
; 9100
U 3233, 2446,0001,0000,7320,0020,5210,0077 ; 9101 LDPT: GEN # AND AR0-8,#/77,SKP SCAD NE;Test storage medium
;;9102 .IF/BIG.PT ;[333]
;;9103 =0 ARL_0.M,GEN FE AND SC, ;[333]In core. Is Keep bit set?
;;9104 SKP SCAD NE,J/LDPT1
; 9105 .IFNOT/BIG.PT
U 2446, 3234,0001,0000,0000,0000,0610,0020 ; 9106 =0 ARL_0S,J/LDPT1
; 9107 .ENDIF/BIG.PT ;[333]
U 2447, 3250,3200,2007,0000,0020,0010,0150 ; 9108 AR_SV.BR,J/PFT ;PAGE NOT IN CORE
; 9109 ;
;;9110 .IF/BIG.PT ;[333]
;;9111 =0
; 9112 .ENDIF/BIG.PT
U 3234, 3235,3711,7400,4402,1000,0010,0000 ; 9113 LDPT1: ARX_AR,AR_ARX*.25,SC_1,J/KMOVED ;[333]No K. GET -WR REF TO AR05
;;9114 .IF/BIG.PT
;;9115 AR0-8_#,#/10,FE_FE-SC,J/LDPT1 ;[333]K set. Move to bit 5 for now
; 9116 .ENDIF/BIG.PT
; 9117 ;
; 9118 .IF/NOCST ;[247]
U 3235, 2450,3240,0007,7102,0020,5610,0142 ; 9119 KMOVED: TEST CBR, SC_P AND SC ;[247][333]CBR = 0? (-WR REF TO SC)
; 9120 =0 SC_-SC,AR_ARX,ARX_AR (AD),
U 2450, 3241,3701,4200,5402,2000,0010,0000 ; 9121 J/NOUPDT ;[247] YES, SKIP SOME
;;9122 .IFNOT/NOCST ;[333]
;;9123 KMOVED: ;[333]
; 9124 .ENDIF/NOCST ;[247]
U 2451, 3236,0610,4007,7102,2320,0010,0142 ; 9125 VMA_ARX+CBR,AR_ARX,SC_P AND SC ;PAGE IN CORE. SC_-WR REF
; 9126 ;
; 9127 ; NOW GET CST ENTRY FOR THIS PAGE.
; 9128 ;
; 9129 GTCST: LOAD AR,PHYS REF,ARX_AR SWAP, ;Shuffle K over to bit 23
U 3236, 3237,4061,2400,5402,3032,0026,0103 ; 9130 SC_-SC,AR_1 ;SC=0 IF WR REF, ELSE -1
; 9131 GEN FE AND #,#/10,SKP SCAD NE, ;SKIP IF WRITABLE
U 3237, 2452,0001,0040,7030,0022,5210,0010 ; 9132 BR/AR,MB WAIT ;GET CST ENTRY & BIT FOR TESTING
; 9133 =0 GEN P AND SC,SKP SCAD NE, ;FAIL IF WRITING OR AGE=0
U 2452, 2454,3600,2007,7100,2040,5210,0140 ; 9134 AR_AR AND CSMSK,J/NOTWR ;STRIP OLD AGE FROM CST
; 9135 ;
; 9136 ; [303] Looks like it's writable. Make one final check by looking
; 9137 ; at bit 18 of the CST entry, and abort if it's not set.
; 9138 ;
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22-3
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 9139 TEST AR.BR,SKP CRY0, ;POSSIBLY WRITABLE--SKIP IF CST
U 2453, 1746,3602,0004,5300,0040,5434,0777 ; 9140 GEN #-SC,#/-1,BYTE DISP ; WRITTEN OR THIS IS WRITE REF
U 1746, 3240,4001,0000,5031,0000,0010,0004 ; 9141 =110 FE_FE-#,#/4,J/STCST ;[305] TEMPORARILY UNWRITABLE, SET S
;;9142 .IF/CST.WRITE ;[314]
;;9143 AR_AR*BR,AD/OR,FE_FE OR #,#/4, ;SET CST WRITTEN AND SOFT BITS
;;9144 SKP AR18 ;IS IT REALLY WRITABLE? [303]
;;9145 =0 AR_SV.BR,J/PFT ;NOT REALLY. BAIL OUT
; 9146 .IFNOT/CST.WRITE ;[314]
U 1747, 3240,3302,2000,6031,0000,0010,0004 ; 9147 AR_AR*BR,AD/OR,FE_FE OR #,#/4 ;[314] Set CST written and soft bits
; 9148 .ENDIF/CST.WRITE ;[314]
U 3240, 2454,3600,2007,0100,0040,5210,0140 ; 9149 STCST: AR_AR AND CSMSK,SKP P NE ;[305] WRITABLE. CLEAR, TEST OLD AGE
; 9150 ;
; 9151 ; [322] At this point we should check whether we got here as a result
; 9152 ; of an age trap (in which case we just take the page failure) or not,
; 9153 ; in which case the failure was due to a write reference and we should
; 9154 ; set bit 2 (the A bit) in the PFW. This is not currently done
; 9155 ; because (1) nobody needs it now, and (2) we are very short on CRAM
; 9156 ; space.
; 9157 ;
; 9158 =0
U 2454, 3250,3200,2007,0000,0020,0010,0150 ; 9159 NOTWR: AR_SV.BR,J/PFT ;WRITE OR AGE TRAP
;;9160 .IFNOT/NOCST ;[247]
;;9161 AR_AR OR PUR,STORE ;SET USE BITS, STORE BACK CST
;;9162 MB WAIT,VMA_SV.VMA, ;RELOAD VMA FOR ORIGINAL REF
;;9163 AR_SV.VMA,SC_1 ;READY TO TEST VMA USER
;;9164 GEN P AND SC,SKP SCAD NE, ;TEST VMA USER, copy page # to ARL,
;;9165 AR_ARX, ;[333] K to AR bit 23, APMWC0 TO SC
;;9166 SC_FE,ARX_AR (AD) ; MAP BIT TO ARX
;;9167 =0 P_P OR SC#,EXEC REF,J/WRHPT ;BUILD PT ENTRY, CLEAR VMA USER
;;9168 P_P OR SC#,USER REF ; OR SET USER, AS NECESSARY
;;9169 WRHPT: WR PT ENTRY,FE_#,#/10,AR_ARX*4 ;UPDATE HARDWARE TABLE
; 9170 .IF/NOCST
U 2455, 2461,3300,2007,0000,0036,0010,0141 ; 9171 AR_AR OR PUR,STORE,J/WRHPT ;[247]SET USE BITS,
; 9172 ; STORE BACK CST
; 9173 ;
; 9174 NOUPDT: GEN FE AND #, #/10, ARX_AR SWAP,
U 3241, 2456,3713,2400,7030,3020,5210,0010 ; 9175 AR_ARX (AD),SKP SCAD NE ;[247] SKIP IF WRITABLE
; 9176 =0 AR_SV.PFW,GEN P AND SC, ;[322] Get saved PFW and
U 2456, 2460,3240,2007,7100,0040,5210,0152 ; 9177 SKP SCAD NE,J/NOT.WR ;[247]FAIL IF WRITING
U 2457, 2461,0001,0000,6031,0000,0010,0004 ; 9178 FE_FE OR #, #/4, J/WRHPT ;[247]SET WRITABLE BIT
; 9179 ;
U 3242, 2454,0001,0007,0000,0000,1010,0152 ; 9180 WRFAIL: SV.PFW_AR,J/NOTWR ;[322]Restore PFW and page fail
; 9181 ;
; 9182 =0 ;[323]
U 2460, 3242,0001,0000,6320,2000,0110,0100 ; 9183 NOT.WR: AR0-8_# OR AR0-8,#/100,J/WRFAIL ;[322]Write failure. Set A in PFW
U 2461, 3243,3200,4007,0000,2123,0013,0145 ; 9184 WRHPT: RSTR VMA_SV.VMA,AR_ARX,SC_FE ;RELOAD ORIGINAL VMA
U 3243, 3244,4001,0000,6100,3001,0010,0200 ; 9185 P_P OR SC ;[333]COMBINE APMWC WITH PAGE #, K
U 3244, 3245,0001,0000,0000,0020,2310,0010 ; 9186 WR PT ENTRY ;UPDATE HARDWARE PAGE TABLE
; 9187 .ENDIF/NOCST
; 9188
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 23
; IO.MIC[10,5351] 14:31 29-Nov-83 KL-MODE PAGE REFILL LOGIC
; 9189 ;HERE WHEN MAP INFO WRITTEN INTO HARDWARE PAGE TABLE
; 9190 ; WE NOW NEED ONLY RESTORE THE REGISTERS WE HAVE USED, AND RESTART THE
; 9191 ; MEMORY REFERENCE WHICH FAILED, RETURNING TO THE MICROINSTRUCTION
; 9192 ; WHICH WAITS FOR ITS COMPLETION. (EXCEPT FOR MAP)
; 9193
;;9194 .IFNOT/MODEL.B
;;9195 GEN FE AND S,SKP SCAD NE, ;TEST FOR MAP INSTR
;;9196 AR_SV.SC
; 9197 .IF/MODEL.B
U 3245, 2462,3240,2007,0000,0020,0010,0151 ; 9198 AR_SV.SC
; 9199 .ENDIF/MODEL.B
; 9200
; 9201 ;HERE TO RESTORE REGISTERS AND RESTART REFERENCE WHICH FAILED
; 9202
; 9203 =0 SC_EXP,FE_EXP,SKP AR0, ;RESTORE FE
U 2462, 2464,3240,4207,0203,3020,4510,0150 ; 9204 AR_AR SWAP,ARX_SV.BR,J/PGRST1
;;9205 .IFNOT/MODEL.B
;;9206 AR_SV.VMA,ARX_SV.VMA,J/COMPEA ;*MAP* RESTART FROM AREAD
; 9207 .IF/MODEL.B
; 9208 =
; 9209 .ENDIF/MODEL.B
; 9210 =0
; 9211 PGRST1: SC_EXP,SKP AR0, ;RESTORE SC
U 2464, 2466,3200,4207,0202,2020,4510,0156 ; 9212 AR_ARX,ARX_SV.AR,J/PGRST2
U 2465, 2464,4001,0000,1401,0000,0010,0000 ; 9213 FE_-SC-1,J/PGRST1 ;MAKE FE NEG
; 9214 =0
; 9215 PGRST2: BR/AR,AR_ARX, ;RESTORE BR AND AR
U 2466, 3246,3240,4247,0000,2020,0010,0157 ; 9216 ARX_SV.ARX,J/PGRST3 ; AND ARX
; 9217 SC_-SC-1,BR/AR,AR_ARX, ;NEGATE SC
U 2467, 3246,3200,4247,1402,2020,0010,0157 ; 9218 ARX_SV.ARX
; 9219
; 9220 ;HERE RETURN TO POINT OF FAULT. THERE MUST BE EXACTLY ONE MICRO-
; 9221 ; INSTRUCTION, OF 2 OR 3 TICKS, BETWEEN THE REQUEST AND THE RETURN.
; 9222 ; AT LEAST ONE IS REQUIRED TO GET NICOND LOGIC SET UP CORRECTLY IN
; 9223 ; CASE THIS IS A FETCH, BUT THERE MUST NOT BE TIME FOR A READ TO
; 9224 ; READ REFERENCE TO COMPLETE, BECAUSE THE MB WAIT INSTRUCTION TO WHICH
; 9225 ; WE RETURN MAY EXPECT TO GET SOMETHING OUT OF AR OR ARX BEFORE THE
; 9226 ; MBOX RESPONSE. SEE DPB1.
; 9227
U 3246, 3247,3200,0007,0000,0130,0010,0145 ; 9228 PGRST3: REQ SV.VMA ;RESTART FAULTED REQUEST
U 3247, 0000,4001,0000,0000,0000,2103,0105 ; 9229 SET ACCOUNT EN,RETURN0 ;RETURN TO POINT OF FAILURE
; 9230
; 9231
; 9232 ;HERE ON A TRAP CONDITION DETECTED BY REFILL LOGIC
; 9233 ;AR CONTAINS SAVED BR
; 9234
; 9235 PFT: BR/AR,VMA_SV.VMA, ;RESTORE BR & VMA
U 3250, 0040,3200,0047,0000,0320,0005,0145 ; 9236 SR DISP,J/CLEAN ;TAKE TRAP
; 9237
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 24
; IO.MIC[10,5351] 14:31 29-Nov-83 KI-MODE PAGE FAIL HANDLING
; 9238 .TOC "KI-MODE PAGE FAIL HANDLING"
; 9239
;;9240 .IFNOT/KLPAGE
;;9241 .IFNOT/MODEL.B
;;9242 2377: CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
;;9243 .IF/MODEL.B
;;9244 3777: CLR ACCOUNT EN,FORCE AR-ARX,J/PFSAVE
;;9245 .ENDIF/MODEL.B
;;9246 1777: CLR ACCOUNT EN,FORCE AR-ARX ;DON'T CHARGE PAGE FAIL TO USER
;;9247 PFSAVE: SV.AR_AR,AR_ARX ;PRESERVE AR, ARX
;;9248 SV.ARX_AR,SR DISP,J/CLEAN ;NOW CHECK FOR CLEANUP REQUIRED
;;9249
; 9250 .ENDIF/KLPAGE
; 9251 ;HERE ON PAGE FAIL OR INTERRUPT WHICH REQUIRES CLEANUP IN ORDER
; 9252 ; TO BE CORRECTLY RESTARTABLE AFTER SERVICE...
; 9253
; 9254 =1*0000
U 0040, 2470,4001,0000,0301,0000,7010,0037 ; 9255 CLEAN: FE_#,#/37,SKP INTRPT,J/PGF1 ;HERE FOR INTRPT OR PGF?
; 9256
; 9257 ;(1) HERE ON EDIT SOURCE FAIL
; 9258
U 0041, 3272,3200,2001,0000,0020,1610,0000 ; 9259 AR_SRCP,SR_0,J/BACKS ;BACK UP SRC POINTER
; 9260
; 9261 ;(2) HERE ON ANY FAILURE IN DECIMAL TO BINARY
; 9262
U 0042, 3277,3202,2600,0000,0000,1610,0001 ; 9263 AR_BR LONG,SR_1,J/D2BPF ;GET ACCUMULATED BINARY
; 9264
; 9265 ;(3) HERE ON DST FAIL IN BINARY TO DECIMAL FILL
; 9266
U 0043, 3303,2540,2005,0000,0020,1610,0004 ; 9267 AR_DLEN COMP,SR_#,#/4,J/B2DFPF
; 9268
; 9269 ;(4) HERE ON EDIT DST FAIL WITH NO SRC POINTER UPDATE
; 9270
U 0044, 3274,4001,0000,0000,0000,1610,0000 ; 9271 SR_0,J/BACKD ;BACK UP DST POINTER ONLY
; 9272
; 9273 ;(5) HERE ON EDIT DST FAIL AFTER UPDATING SRC POINTER
; 9274
U 0045, 3274,0001,0000,0000,0000,1610,0001 ; 9275 SR_1,J/BACKD ;BACK UP DST, THEN SRC
; 9276
; 9277 ;(6) HERE ON DESTINATION FAILURE IN BINARY TO DECIMAL
; 9278
U 0046, 3274,0001,0000,0000,0000,1610,0010 ; 9279 SR_BDT,J/BACKD ;BACK UP DST, THEN SAVE FRACTION
; 9280
; 9281 ;(7) HERE ON BLT FAILURE
; 9282 .IF/KLPAGE
U 0047, 3265,3240,0207,0000,0020,0010,0157 ; 9283 ARX_SV.ARX,J/BLTPF ;GET DEST ADDR AGAIN
;;9284 .IFNOT/KLPAGE
;;9285 BLTPF: AR_ARX+BR,SR_0,J/BLTPF1 ;CURRENT SRC ADDR
; 9286 .ENDIF/KLPAGE
; 9287
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 25
; IO.MIC[10,5351] 14:31 29-Nov-83 KI-MODE PAGE FAIL HANDLING
; 9288 ;(10) HERE ON TRANSLATION FAILURE IN BINARY TO DECIMAL
; 9289
U 0050, 3304,3242,2600,0000,0000,1610,0000 ; 9290 AR_BR LONG,SR_0,J/B2DPF ;GET BINARY FRACTION
; 9291
; 9292 ;(11) HERE ON SRC FAILURE IN COMPARE OR MOVE STRING
; 9293
U 0051, 3310,3200,2005,0000,0020,1610,0001 ; 9294 AR_DLEN,SR_1,J/STRPF ;PUT LENGTHS BACK, THEN BACK SRC
; 9295
; 9296 ;(12) HERE ON DST FAILURE IN COMPARE OR MOVE STRING
; 9297
U 0052, 3310,3200,2005,0000,0020,1610,0004 ; 9298 AR_DLEN,SR_#,#/4,J/STRPF
; 9299
; 9300 ;(13) HERE ON DST FAILURE AFTER UPDATING SRC IN COMPARE OR MOVE
; 9301
U 0053, 3274,0001,0000,0000,0000,1610,0111 ; 9302 SR_SRC,J/BACKD ;BACK DST, THEN HANDLE AS SRC FAIL
; 9303
; 9304 ;(14) HERE ON DST FILL FAILURE IN MOVRJ
; 9305
U 0054, 3314,3240,2005,0000,0020,1610,0004 ; 9306 AR_DLEN,SR_#,#/4,J/STRPF4
; 9307 .IF/KLPAGE
; 9308 ;(15) HERE ON PAGE FAILURE IN MAP INSTRUCTION. RETURN PAGE FAIL WORD
; 9309
U 0055, 1274,3240,2007,0000,0020,7310,0152 ; 9310 AR_SV.PFW,SKP IO LEGAL,J/MAP2 ;RETURN PFW IN AC
; 9311 .ENDIF/KLPAGE
; 9312 .IF/XADDR
; 9313 ;(16) HERE ON PAGE FAIL IN XBLT
; 9314
U 0056, 3270,3202,2600,0000,0000,1610,0000 ; 9315 AR_BR LONG,SR_0,J/XBLTPF
; 9316 .ENDIF/XADDR
; 9317 .IF/MODEL.B
; 9318 ;(17) HERE ON FAILURE IN WORD MOVE STRING
; 9319
U 0057, 3314,3200,2005,0000,0020,1610,0000 ; 9320 AR_DLEN,SR_0,J/STRPF4
; 9321 .ENDIF/MODEL.B
; 9322 =
; 9323
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 26
; IO.MIC[10,5351] 14:31 29-Nov-83 KI-MODE PAGE FAIL HANDLING
; 9324 ;HERE ON ANY PAGE FAILURE OR PI REQUEST IN LONG INSTRUCTIONS
; 9325 ; SKIP IF PI REQUEST, WHICH TAKES PRIORITY
; 9326
; 9327 .IF/KLPAGE
; 9328 =0
; 9329 .IFNOT/SHIFT.MUUO
U 2470, 3251,4001,0000,0000,0102,3010,0500 ; 9330 PGF1: MB WAIT,VMA_#,#/500,J/PGF2
;;9331 .IF/SHIFT.MUUO
;;9332 PGF1: MB WAIT,VMA_#,#/501,J/PGF2 ;SHIFT TO CLOSER MATCH XADDR FORM
; 9333 .ENDIF/SHIFT.MUUO
U 2471, 0071,0001,0000,0000,0000,2110,0105 ; 9334 SET ACCOUNT EN,J/TAKINT ;CLEANUP DONE, SERVE INTRPT
U 3251, 1130,3200,2007,0000,0020,6510,0152 ; 9335 PGF2: AR_SV.PFW,SKP PI CYCLE,J/PGF4 ;GET BACK PAGE FAIL WORD
;;9336 .IFNOT/KLPAGE
;;9337 =0
;;9338 PGF1: GET ECL EBUS,CLR SC,
;;9339 PF DISP,J/PGF2
;;9340 SET ACCOUNT EN,J/TAKINT ;HERE TO SERVE INTRPT, DO IT
;;9341 =1100
;;9342 PGF2:
;;9343 =01 AR_SV.AR,FE_FE-1, ;AR PARITY ERROR
;;9344 SKP RPW,J/PGF6 ;DO WE NEED TO RESTART RPW?
;;9345 =10 VMA_VMA HELD,MAP,SC_FE ;ARX PARITY ERROR, PF CODE 37
;;9346 PGF3: MB WAIT,VMA_#,#/500
;;9347 AR_EBUS REG ;READ PAGE FAIL WORD
;;9348 REL ECL EBUS
;;9349 P_P OR SC,SKP PI CYCLE ;STUFF ERROR CODE IF PARITY
; 9350 .ENDIF/KLPAGE
; 9351 =00
; 9352 PGF4: ARX_AR,AR_VMA HELD,SC_#,#/13., ;READY TO COMBINE PF WORD
U 1130, 1630,3733,2400,0302,1000,1750,0015 ; 9353 CALL,J/ROTS ; WITH ADDRESS
; 9354 ARX_AR,AR_VMA HELD,SC_#,#/13., ;READY TO COMBINE PF WORD
U 1131, 3261,3733,2400,0302,1000,1710,0015 ; 9355 J/IOPGF ; WITH ADDRESS
U 1133, 3252,0001,4000,0000,0000,1510,0004 ; 9356 =11 AR_SHIFT,ABORT INSTR ;RECOVER TRAP FLAGS, IF ANY
;;9357 .IFNOT/XADDR
;;9358 STORE,UPT REF ;PUT PAGE FAIL WORD AT 500
;;9359 FIN STORE,AR_PC,
;;9360 VMA_VMA+1,STORE ;STORE OLD PC AT 501 OR 502
;;9361 FIN STORE,AR_0S,
;;9362 VMA_VMA+1,LOAD AR ;GET NEW PC FROM 502 OR 503
;;9363 SET ACCOUNT EN,J/NEWPC
; 9364 .IF/XADDR
U 3252, 3253,3733,0200,0000,0016,0026,0223 ; 9365 STORE,UPT REF,ARX_PC ;PAGE FAULT WORD TO 500
; 9366 AR_ARX ANDC ADMSK,MB WAIT, ;GET PC FLAGS FOR STORING
U 3253, 3254,3510,2227,4000,0022,0010,0175 ; 9367 BRX/ARX,ARX/AD ;FULL PC IN BRX, FLAGS IN ARX
U 3254, 2472,4001,0000,0000,0000,6222,0030 ; 9368 AR_0.S,SKP USER
U 2472, 0635,0001,0000,0000,2000,0250,0000 ; 9369 =0 AR12-17_PREV SEC,CALL [ARSWAP] ;[334] GET PCS IF EXEC MODE
; 9370 ARL_ARXL,ARR_ARR, ;FLAGS WORD IN AR
U 2473, 3255,0001,0000,0000,2016,3622,0004 ; 9371 VMA_VMA+1,STORE ;STORE FLAGS WORD IN 501
; 9372 AR_ARX*BRX,AD/ANDCA, ;GET PC ADDRESS
U 3255, 3256,3002,6004,0000,0016,3610,0000 ; 9373 VMA_VMA+1,STORE ; STORE IT IN 502
U 3256, 3257,3441,2000,0000,0012,3610,0000 ; 9374 AR_0S,VMA_VMA+1,LOAD AR ;GET NEW PC ADDRESS FROM 503
U 3257, 3260,0001,0000,0000,0000,0024,0020 ; 9375 SET FLAGS_AR ;CLEAR ALL FLAGS
U 3260, 1045,3200,0003,0000,0022,2110,0105 ; 9376 AR_MEM,SET ACCOUNT EN,J/ARJMP ;NEW ADDRESS FOR PC
; 9377 .ENDIF/XADDR
; 9378
;;9379 .IFNOT/KLPAGE
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 26-1
; IO.MIC[10,5351] 14:31 29-Nov-83 KI-MODE PAGE FAIL HANDLING
;;9380
;;9381 ;HERE ON PARITY ERROR IN AR. SKIP IF READ-PAUSE-WRITE IN PROGRESS
;;9382 =0
;;9383 PGF6: VMA_VMA HELD,MAP, ;AR PARITY ERROR
;;9384 SC_FE,J/PGF3 ;PF CODE 36
;;9385 STORE,J/PGF6 ;COMPLETE CYCLE, WITH GOOD PAR
; 9386 .ENDIF/KLPAGE
; 9387
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 27
; IO.MIC[10,5351] 14:31 29-Nov-83 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 9388 .TOC "PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS"
; 9389
; 9390 ;HERE ON PAGE FAIL DURING PI CYCLE
; 9391
;;9392 .IFNOT/MODEL.B ;[224][274]
;;9393 IOPGF: AR_SHIFT,ARX_SHIFT,SC_#-SC, ;TROUBLE... CREATE PAGE FAIL WORD
;;9394 #/36.
;;9395 AR_SHIFT,SET IO PF
;;9396 SV.IOPF_AR,J/IOPFIN ;FINISH IOPF ROUTINE
; 9397 .IF/MODEL.B ;[224] DO FANCY STUFF FOR DTE.
U 3261, 3262,3240,2007,0000,0020,0010,0163 ; 9398 IOPGF: AR_FM[SV.IOP] ;[274] GET THE SAVED API WORD
U 3262, 3263,0001,0007,0000,0000,1010,0162 ; 9399 SV.IOPF_AR ;[224] SAVE IT IN AC BLK 7.
U 3263, 3264,3200,2047,0000,0020,0010,0156 ; 9400 BR/AR,AR_SV.AR ;[224] KEEP IOPF WORD AROUND,
U 3264, 1122,4001,0000,0000,0000,2310,0100 ; 9401 SET IO PF ;[224][274] HANDLE DTE.
; 9402
; 9403 ;[223] THIS RESTARTS THE DTE'S CLOCK TO PREVENT A DEX FAILURE.
U 1122, 3062,0001,0000,0000,0000,2250,0026 ; 9404 =10 SET DATAO,CALL,J/EBUSO ;[223] SEND THE DATA TO THE DTE.
U 1123, 0723,3202,2000,0000,0000,2110,0105 ; 9405 AR_BR,SET ACCOUNT EN,J/PIDONE ;[223] AND FINISH THE INTRPT.
; 9406 .ENDIF/MODEL.B ;[224]
; 9407
; 9408
; 9409 ;HERE ON BLT PAGE FAIL
; 9410
; 9411 .IF/KLPAGE
U 3265, 3266,0612,2000,0000,0020,1610,0000 ; 9412 BLTPF: AR_ARX+BR,SR_0 ;CURRENT SRC ADDR
; 9413 .ENDIF/KLPAGE
U 3266, 3267,3713,2000,0000,3000,0610,0004 ; 9414 BLTPF1: AR_ARX (AD),ARL_ARR
U 3267, 0040,0001,0000,0000,0000,1005,0000 ; 9415 PGFAC0: AC0_AR,SR DISP,J/CLEAN ;BEGIN NORMAL PF WORK
; 9416
; 9417 ;HERE ON XBLT PAGE FAIL OR INTERRUPT
; 9418 .IF/XADDR
; 9419
U 3270, 3271,0001,4001,0000,2000,1010,0000 ; 9420 XBLTPF: AC1_AR,AR_ARX
U 3271, 0040,0001,0004,0000,0000,1010,0000 ; 9421 AC2_AR,J/CLEAN
; 9422 .ENDIF/XADDR
; 9423
; 9424 ;HERE ON VARIOUS CASES OF STRING/EDIT FAILURE
; 9425
U 3272, 3273,0001,0000,2110,3000,0022,0200 ; 9426 BACKS: P_P+S
U 3273, 0040,4001,0001,0000,0000,1005,0000 ; 9427 SRCP_AR,SR DISP,J/CLEAN ;RE-DISPATCH FOR MORE
; 9428
U 3274, 3275,3200,2006,0000,0020,0010,0144 ; 9429 BACKD: AR_DSTP
; 9430 .IF/MODEL.B
U 3275, 3276,0001,0000,2110,3000,0110,0144 ; 9431 P_P+S.C,SEL DSTP ;PRESEL NUM FIELD FOR HARDW GLITCH
;;9432 .IFNOT/MODEL.B
;;9433 P_P+S
; 9434 .ENDIF/MODEL.B
U 3276, 0040,4001,0006,0000,0000,1005,0144 ; 9435 DSTP_AR,SR DISP,J/CLEAN
; 9436
U 3277, 3300,3401,2005,0302,0000,1010,0043 ; 9437 D2BPF: AC3_AR,AR_0S,SC_#,#/35. ;PUT AWAY HIGH BINARY
U 3300, 3301,5160,4207,0000,0020,0010,0170 ; 9438 AR_SHIFT,ARX_-SLEN ;LOW TO AR, REMAINING LEN TO ARX
; 9439 .IF/MODEL.B
U 3301, 3302,4001,0000,0000,0000,0010,0144 ; 9440 SEL DSTP ;PRESEL NUM FIELD FOR HARDW GLITCH
; 9441 .ENDIF/MODEL.B
U 3302, 3313,0001,4006,0000,2000,1010,0144 ; 9442 AC4_AR,AR_ARX,J/STRPF2 ;PUT LOW AWAY
; 9443
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 27-1
; IO.MIC[10,5351] 14:31 29-Nov-83 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
U 3303, 3307,3300,2007,4000,0020,0010,0166 ; 9444 B2DFPF: AR_AR*T0,AD/OR,J/B2DPF2
; 9445
U 3304, 3305,0001,4000,0000,2000,1010,0000 ; 9446 B2DPF: AC0_AR,AR_ARX ;HIGH FRACTION TO AC
U 3305, 3306,4001,0001,0000,0000,1010,0000 ; 9447 AC1_AR ;LOW TO AC1
U 3306, 3307,3200,2005,0000,0020,0010,0000 ; 9448 AR_AC3 ;GET FLAGS
U 3307, 3312,5100,2007,0000,0020,0010,0170 ; 9449 B2DPF2: AR_AR*SLEN,AD/A-B,J/STRPF3 ;REBUILD FLAGS+LEN
; 9450
U 3310, 2474,5160,2047,0000,0020,4510,0170 ; 9451 STRPF: BR/AR,AR_-SLEN,SKP AR0 ;WHICH IS LONGER?
; 9452 =0
U 2474, 3313,0602,2005,4000,0020,1010,0000 ; 9453 STRPF1: AC3_AR,AR_AR+BR,J/STRPF2 ;SRC LONGER
U 2475, 3311,3300,2400,0000,1020,0010,0000 ; 9454 ARX_AR,AR_AR*SFLGS,AD/OR ;DST. BUILD SRC LEN+FLAGS
U 3311, 3312,5112,2000,0000,0020,1010,0000 ; 9455 AC0_AR,AR_ARX-BR ;THAT'S AWAY, MAKE DST LEN
U 3312, 0040,0001,0005,0000,0000,1005,0000 ; 9456 STRPF3: AC3_AR,SR DISP,J/CLEAN ;OK, NOW BACK UP SRC IF REQ'D
; 9457
U 3313, 3267,3300,2000,0000,0020,0010,0000 ; 9458 STRPF2: AR_AR*SFLGS,AD/OR,J/PGFAC0
; 9459
U 3314, 2474,2500,2047,0000,0020,4510,0170 ; 9460 STRPF4: BR/AR,AR_SLEN COMP,SKP AR0,J/STRPF1
; 9461
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; EIS.MIC[10,5351] 18:59 19-May-83 EXTENDED INSTRUCTION SET DECODING
; 9462 .TOC "EXTENDED INSTRUCTION SET DECODING"
; 9463
; 9464 .IF/EXTEND
; 9465 ;GET HERE WITH E0 IN BR, (E0) IN AR
; 9466 ; (E0) IS THE OPERATION WORD, AND HAS THE NORMAL -10 INSTRUCTION
; 9467 ; FORMAT -- BITS 0-8 ARE OPCODE, 9-12 IGNORED, 13 @, 14-17 XR,
; 9468 ; AND 18-35 Y. THE AC USED COMES FROM THE EXTEND INSTRUCTION.
; 9469 ; COMPUTE E1 FROM 13-35
; 9470
;;9471 .IFNOT/XADDR
;;9472 ;EXTEND:FE_#+AR0-8,#/-32,SKP SCAD0, ;CHECK LEGAL OPERATION
;;9473 ; ARX_AR,AR_BRX ;OPR TO ARX, GET AC FROM BRX
;;9474 =0
;;9475 EXT1: AR_BR,J/UUO ;OPCODE > 17 or 31
;;9476 .IF/MODEL.B ;[246]
;;9477 AR0-8_FE+#,#/32 ;PLUG OPR INTO EXTEND AC
;;9478 GEN AR,LOAD IR,AR_ARX
;;9479 ARL_0.M,EA MOD DISP,J/EXT2
;;9480 =1100
;;9481 .IFNOT/MODEL.B ;[246]
;;9482 AR0-8_FE+#,#/20 ;PLUG OPR INTO EXTEND AC
;;9483 GEN AR,LOAD IR,AR_ARX,ARL_0.M,
;;9484 EA MOD DISP
;;9485 =00
;;9486 .ENDIF/MODEL.B
;;9487 EXT2: E1_AR,B DISP,J/EXT5 ;SAVE E1, READY TO SAVE E0
;;9488 ARL_0.M,AR_ARX+XR,J/EXT2
;;9489 GEN ARX,A INDRCT,SKP INTRPT,J/EXT3
;;9490 GEN ARX+XR,A INDRCT,
;;9491 SKP INTRPT,J/EXT3
;;9492 =0
;;9493 EXT3: AR_MEM,ARX_MEM,J/EXT4
;;9494 AR_MEM,TAKE INTRPT
;;9495 EXT4: ARL_0.M,EA MOD DISP,J/EXT2
;;9496
;;9497 =110
;;9498 EXT5: AR_BR,J/EXT6 ;TRANSLATE MODE, DO NOT EXTEND
;;9499 ARL_1S.M,SKP AR18 ;SIGN EXTEND E1 IF NEGATIVE
;;9500 =0 AR_BR,J/EXT6 ;POS, ALREADY OK
;;9501 E1_AR,AR_BR ;PUT NEG RESULT IN E1
;;9502 EXT6: E0_AR,VMA_AR+1,IR DISP,J/2000 ;ENTER EXTENDED INSTR HANDLER
;;9503
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; EIS.MIC[10,5351] 18:59 19-May-83 EXTENDED INSTRUCTION SET DECODING
;;9504 ;HERE FOR EXTENDED INSTRUCTION SET DECODING UNDER XADDR
; 9505 .IF/XADDR
; 9506 ;EXTEND: SC_#+AR0-8,#/-32,SKP SCAD0, ;VALID EXTENDED OPERATION?
; 9507 ; ARX_AR,AR_BR,J/EXTF1 ; OPR TO ARX, AC TO AR
; 9508 =0
U 2476, 1002,3242,2000,0000,0000,0010,0000 ; 9509 EXTF1: AR_BR,J/UUO ;Opcode is too large.
U 2477, 3315,3242,6017,0000,1000,1010,0176 ; 9510 E0_AR,MQ_AR,AR_BRX ;SAVE E0. GET AC FROM EXTEND
U 3315, 3316,4001,0000,2302,2000,0110,0032 ; 9511 AR0-8_#+SC,#/32,SC/SCAD ;COMBINE EXT OP <32 WITH AC
U 3316, 2500,0001,0000,2400,0020,5210,0000 ; 9512 GEN SC,SKP SCAD NE ;TEST OP CODE
U 2500, 1002,3242,2000,0000,0000,0010,0000 ; 9513 =0 AR_BR,J/UUO ;OP CODE = 0 (UUO) [217][251]
U 2501, 3317,3701,0000,0000,0000,1410,0000 ; 9514 GEN AR,LOAD IR ;MAP THIS OVER THE LUUO SPACE
U 3317, 1234,2301,4000,0000,2000,0036,0000 ; 9515 EXTF2: AR_ARX,EA MOD DISP,J/EXTLA ;GO EVALUATE E1
; 9516 =0000
U 1220, 2502,3713,0000,0000,1111,7010,0230 ; 9517 EXTXA: GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1221, 2502,0610,0002,4000,1131,7010,0230 ; 9518 GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1222, 2502,3713,0000,0000,1111,7010,0230 ; 9519 GEN ARX,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
U 1223, 2502,0610,0002,4000,1131,7010,0230 ; 9520 GEN ARX+XR,GLOBAL,EXT INDRCT,SKP INTRPT,J/EXTI
; 9521
U 1224, 3077,3711,0300,0000,1004,0002,0400 ; 9522 GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1225, 3077,0610,0302,0000,1024,0002,0400 ; 9523 GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1226, 3077,3711,0300,0000,1004,0002,0400 ; 9524 GEN ARX,GLOBAL,EXT INDEX,ARX/MQ,J/3077
U 1227, 3077,0610,0302,0000,1024,0002,0400 ; 9525 GEN ARX+XR,GLOBAL,EXT INDEX,ARX/MQ,J/3077
; 9526
U 1230, 0121,4001,0000,0000,0000,2210,0400 ; 9527 GET ECL EBUS,J/ILLIND ;[234] illegal indirect word
U 1231, 0121,4001,0000,0000,0000,2210,0400 ; 9528 GET ECL EBUS,J/ILLIND ;[234] illegal indirect word
U 1232, 0121,4001,0000,0000,0000,2210,0400 ; 9529 GET ECL EBUS,J/ILLIND ;[234] illegal indirect word
U 1233, 0121,4001,0000,0000,0000,2210,0400 ; 9530 GET ECL EBUS,J/ILLIND ;[234] illegal indirect word
; 9531 ;
; 9532 ; [325]
; 9533 ; The effective address dispatch logic is quite arcane. It appears
; 9534 ; that MEM/A RD,DISP/DRAM A RD, and SH/2 interact to get the section
; 9535 ; number from either AD (if the AC > 777777) or from VMA section, but
; 9536 ; in order for that to work, we must do something with the VMA, even
; 9537 ; though we don't actually use it here if the address computation
; 9538 ; is complete. Thus the VMA/LOAD has been added for the index case.
; 9539 ;
U 1234, 2002,3703,0300,0000,0004,0033,0400 ; 9540 EXTLA: GEN AR,EXT ADDR,ARX/MQ,J/EXT2
U 1235, 3077,0600,0302,0000,2124,0002,0400 ; 9541 GEN AR+XR,INDEXED,EXT INDEX,ARX/MQ,VMA/LOAD,J/3077 ;[325]
U 1236, 2502,3703,0000,0000,0111,7010,0230 ; 9542 GEN AR,EXT INDRCT,SKP INTRPT,J/EXTI
U 1237, 2502,0600,0002,0000,2131,7010,0230 ; 9543 GEN AR+XR,INDEXED,EXT INDRCT,SKP INTRPT,J/EXTI
; 9544
; 9545 =0
U 2502, 3320,3240,0003,0000,0022,2510,0000 ; 9546 EXTI: ARX_MEM,LONG EN,J/EXTI2
U 2503, 0144,3200,0003,0000,0022,7710,0000 ; 9547 ARX_MEM,TAKE INTRPT
; 9548 EXTI2: AR_ARX,XR,EA MOD DISP,
U 3320, 1220,2341,4002,0301,2020,0036,0024 ; 9549 FE_#,#/24,TIME/3T,J/EXTXA
; 9550
; 9551 =010
; 9552 EXT2: E1_AR,AR_ARX,VMA_ARX+1, ;ESTABLISH E1
U 2002, 2000,4011,4007,0000,2320,1001,0165 ; 9553 IR DISP,J/2000 ;GO TO SPECIFIC HANDLER
U 2003, 2504,4001,0000,0000,0001,4410,0020 ; 9554 ARL_0.M,SKP AR18,J/EXT3 ;OFFSET MODE. EXTEND E1
; 9555 E1_AR,AR_ARX,VMA_ARX+1, ;[301] Duplicate these to
U 2006, 2000,4011,4007,0000,2320,1001,0165 ; 9556 IR DISP,J/2000 ; distinguish GSNGL (B=5) from
; 9557 E1_AR,AR_ARX,VMA_ARX+1, ; offset instructions (B=1)
U 2007, 2000,4011,4007,0000,2320,1001,0165 ; 9558 IR DISP,J/2000
; 9559 =0
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2-1
; EIS.MIC[10,5351] 18:59 19-May-83 EXTENDED INSTRUCTION SET DECODING
; 9560 EXT3: E1_AR,AR_ARX,VMA_ARX+1, ;ESTABLISH E1
U 2504, 2000,4011,4007,0000,2320,1001,0165 ; 9561 IR DISP,J/2000 ;GO TO SPECIFIC HANDLER
U 2505, 2504,2341,0000,0000,0000,0610,0002 ; 9562 ARL_1S,J/EXT3 ;NEGATIVE OFFSET
; 9563 .ENDIF/XADDR
; 9564
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; EIS.MIC[10,5351] 18:59 19-May-83 EXTENDED INSTRUCTION SET DECODING
; 9565 ; By using "IR DISP,J/2000" we can use the same DRAM for LUUOs as
; 9566 ; for the EXTEND instructions with like opcodes. The LUUOs dispatch
; 9567 ; to addresses in the range 1000-1017; by dispatching with J/2000,
; 9568 ; the EXTEND ops go to 3000-3017 (model B) or 2000-20017 (model A).
;;9569 .IFNOT/MODEL.B
;;9570 2005: AR_AC3,J/CMPS ;HIDDEN BEHIND L-CMS
;;9571 2006: CLR AR,ARX_1S,SC_#,#/15.,J/EDIT ;HIDDEN BEHIND L-EDIT
;;9572 2010: AR_AC0 COMP,J/DBIN ;HIDDEN BEHIND L-DBIN
;;9573 2011: AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
;;9574 BYTE DISP,J/BDEC ;HIDDEN BEHIND L-BDEC
;;9575 2012: AR_AC3,LOAD AR,J/MVST ;HIDDEN BEHIND L-MVS
; 9576 .IF/MODEL.B
;;9577 .IFNOT/XADDR
;;9578 3005: AR_AC3,J/CMPS ;HIDDEN BEHIND L-CMS
;;9579 3006: CLR AR,ARX_1S,SC_#,#/15.,J/EDIT ;HIDDEN BEHIND L-EDIT
;;9580 3010: AR_AC0 COMP,J/DBIN ;HIDDEN BEHIND L-DBIN
;;9581 3011: AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
;;9582 BYTE DISP,J/BDEC ;HIDDEN BEHIND L-BDEC
;;9583 3012: AR_AC3,LOAD AR,J/MVST ;HIDDEN BEHIND L-MVS
; 9584 .IF/XADDR
; 9585 .IFNOT/OWGBP ;[265]
U 3005, 3337,3200,2005,0000,0020,0010,0000 ; 9586 3005: AR_AC3,J/CMPS ;HIDDEN BEHIND L-CMS
U 3006, 3417,2301,0200,0302,0000,0410,0017 ; 9587 3006: CLR AR,ARX_1S,SC_#,#/15.,J/EDIT ;HIDDEN BEHIND L-EDIT
U 3010, 3343,2500,2000,0000,0020,0010,0000 ; 9588 3010: AR_AC0 COMP,J/DBIN ;HIDDEN BEHIND L-DBIN
; 9589 3011: AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
U 3011, 1443,3200,2001,4402,0041,0034,0142 ; 9590 BYTE DISP,J/BDEC ;HIDDEN BEHIND L-BDEC
U 3012, 3321,3240,2005,0000,0032,0010,0000 ; 9591 3012: AR_AC3,LOAD AR,J/MVST ;HIDDEN BEHIND L-MVS
;;9592 .IF/OWGBP ;[265]
;;9593 3005: AR_ARX+1 (AD),J/CMPS ;[310] HIDDEN BEHIND L-CMS
;;9594 3006: J/EDIT ;HIDDEN BEHIND L-EDIT
;;9595 3010: J/DBIN ;HIDDEN BEHIND L-DBIN
;;9596 3011: J/BDEC ;HIDDEN BEHIND L-BDEC
;;9597 3012: LOAD AR,J/MVST ;HIDDEN BEHIND L-MVS
; 9598 .ENDIF/OWGBP ;[265]
; 9599 ;3042: AR_BR,J/UUO ;[217] INDEXING ON ILL. EXTEND OP.
; 9600 ;3044: B DISP, J/EXT2
; 9601 ;3045: B DISP, J/EXT2 ;THESE ARE INDEX CASES BECAUSE INDEX
; 9602 ;3046: B DISP, J/EXT2 ; MUST DO AREAD WITH THE DISP FUNCTION
; 9603 ;3050: B DISP, J/EXT2 ; IN ORDER TO GET THE CORRECT INDEX VALUE
; 9604 ;3051: B DISP, J/EXT2 ; FOR E1.
; 9605 ;3052: B DISP, J/EXT2
; 9606 ;3144: B DISP, J/EXT2 ;[234]
; 9607 ;3145: B DISP, J/EXT2 ;[234]
; 9608 ;3146: B DISP, J/EXT2 ;[234]
; 9609 ;3147: B DISP, J/EXT2 ;[234]
; 9610 ;3150: B DISP, J/EXT2 ;[234]
; 9611 ;3151: B DISP, J/EXT2 ;[234]
; 9612 ;3152: B DISP, J/EXT2 ;[234]
; 9613 ;3153: B DISP, J/EXT2 ;[234]
; 9614 ;3154: B DISP, J/EXT2 ;[234]
U 3077, 2002,0001,0000,0000,0000,0033,0000 ; 9615 3077: B DISP, J/EXT2 ;[251]
U 3177, 2002,0001,0000,0000,0000,0033,0000 ; 9616 3177: B DISP, J/EXT2 ;[251]
; 9617 .ENDIF/XADDR
; 9618 .ENDIF/MODEL.B
; 9619 .ENDIF/EXTEND
; 9620
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; EIS.MIC[10,5351] 18:59 19-May-83 ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND
; 9621 .TOC "ONE WORD GLOBAL BYTE POINTER SUBROUTINES FOR EXTEND"
; 9622 ;
; 9623 ; HERE FOR MVST, EDIT AND CMPS INSTRUCTIONS
; 9624 ; MUST CHECK BOTH AC1 AND AC4 FOR OWGBP
; 9625 ; AND CONVERT TO TWO WORD GLOBAL POINTERS.
; 9626 ; There is also a hack in here for the CMPSx instructions. In
; 9627 ; order to find their fill characters in the right place, we must
; 9628 ; fetch FILL (saved as E0+1) into ARX. [310]
; 9629 ; BDEC ENTERS AT EXT01 FOR AC4 ONLY
; 9630 .IF/EXTEND
;;9631 .IF/OWGBP ;[265]
;;9632 =000
;;9633 EXT2WD: AR_AC1,CALL [TST2WD] ;AC1 OWGBP ?
;;9634 CALL [STR2WD] ;YES, CONVERT DONE, STORE
;;9635 J/EXT01 ;NO, TRY AC4
;;9636 AC2_AR,AR_BR OR ARX,J/EXT02 ;ADDRESS STORE
;;9637 EXT01: AR_AC4,CALL [TST2WD] ;AC4 OWGBP ?
;;9638 ARX_FILL,CALL [STR2WD] ;[310] YES, CONVERT DONE, STORE
;;9639 ARX_FILL,RETURN1 ;[310] NO, CAN'T DO NO MORE
;;9640 SEL DSTP2 ;[310] DON'T GLITCH ON AC5 STORE
;;9641 AC5_AR,AR_BR OR ARX ; (See second edit #210)
;;9642 ARX_BRX,SEL AC4 ;[310] RESTORE ARX AND SELECT AC4
;;9643 AC4_AR,RETURN1 ;P,S,BIT 12 = 1 TO AC4
;;9644
;;9645 EXT02: AC1_AR,J/EXT01 ;P,S,BIT 12 = 1 TO AC1
;;9646
;;9647 ; HERE FOR DBIN
;;9648
;;9649 =00
;;9650 DB2WD: AR_AC1,CALL [TST2WD] ;AC1 OWGBP ?
;;9651 CALL [STR2WD] ;YES, CONVRT DONE, STORE
;;9652 RETURN1 ;NO, GET OUT
;;9653 AC1_AR,AR_BR OR ARX ;P,S,BIT 12 = 1 TO AC1
;;9654 AC2_AR,RETURN1 ;ADDRESS TO AC2, DONE
;;9655
;;9656 ; HERE TO TEST FOR OWGBP IN THE AR AND
;;9657 ; TO CONVERT IT IF IT'S OK
;;9658
;;9659 =00
;;9660 TST2WD: SKP PC SEC0,CALL,J/GTST ;TEST FOR NOT SEC 0 AND OWGBP [266]
;;9661 RET2: RETURN2 ;[260]NOT TODAY
;;9662 CALL [CNV2WD] ;YES, CONVERT
;;9663 MQ_BR,RETURN1 ;GET OUT
;;9664
;;9665 ; HERE TO GET P,S,BIT 12 = 1 AND A GOOD ADDRESS
;;9666 ; SOME VERY TRICKY STUFF GOING ON HERE
;;9667
;;9668 STR2WD: [AR]_FM[EXPMSK], BR/AR,BRX/ARX ;[310] P,S,JUNK TO BR, SAVE ARX
;;9669 ARX_AR ANDCA BR ;P,S,0 TO ARX
;;9670 [AR]_[AR]-FM[ADMSK] ;BIT 12 = 1 TO AR
;;9671 AR_[MQ] AND FM[ADMSK], ;0,ADDRESS TO AR
;;9672 BR/AR,RETURN2 ;BIT 12=1 TO BR
; 9673 .ENDIF/OWGBP ;[265]
; 9674 .ENDIF/EXTEND
; 9675
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 5
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- STRING MOVE
; 9676 .TOC "EIS -- STRING MOVE"
; 9677 .IF/EXTEND
; 9678 ; HERE FOR MOVE STRING, CHECK FOR OWGBP FIRST
; 9679 ;SLEN IS THE COMPLEMENT OF THE SHORTER STRING LENGTH
; 9680 ;DLEN IS <SRC LEN>-<DST LEN>
; 9681
;;9682 .IF/OWGBP
;;9683 =00
;;9684 MVST: AR_MEM,CALL [RET2] ;[260]GET FILL, WAIT FOR PARITY
;;9685 =10 FILL_AR,CALL [EXT2WD] ;SAVE FILL, CHECK FOR OWGBP
;;9686 AR_AC3 ;GET DLEN
;;9687 BR/AR,FE_AR0-8,SKP SCAD NE ;CHECK DLEN FLAGS
;;9688 =0 AR_AC0,J/MVST1 ;GET SRC LEN, FLAGS
;;9689 NOLENS: AR_E0,J/UUO ;NO FLAGS ALLOWED IN DST LEN
;;9690 MVST1: FE_AR0-8,AR0-8_#,#/0 ;SEPERATE FLAGS OFF
; 9691 .IFNOT/OWGBP
; 9692 MVST: BR/AR,AR_MEM, ;HOLD AC3, WAIT FOR FILLER
U 3321, 2506,3200,0043,2421,0042,5210,0000 ; 9693 FE_AR0-8,SKP SCAD NE ;CHECK FOR FLAGS IN DEST LEN
U 2506, 3322,3240,0200,0000,0020,0010,0000 ; 9694 =0 ARX_AC0,J/MVST1 ;GET SRC LEN, FLAGS
U 2507, 1002,3200,2007,0000,0020,0010,0176 ; 9695 NOLENS: AR_E0,J/UUO ;NO FLAGS ALLOWED IN DST LEN
U 3322, 3323,0001,4007,0000,2000,1010,0173 ; 9696 MVST1: FILL_AR,AR_ARX ;SAVE FILL CHAR
U 3323, 3324,0001,0000,2421,0000,0110,0000 ; 9697 FE_AR0-8,AR0-8_#,#/0 ;SEPARATE FLAGS OFF
; 9698 .ENDIF/OWGBP
U 3324, 2510,5102,2400,0000,1040,5510,0000 ; 9699 ARX_AR,AR_AR-BR,SKP AD0 ;COMPUTE SRC-DST LEN
U 2510, 3325,2542,2005,0000,0000,1010,0000 ; 9700 =0 DLEN_AR,AR_BR COMP,J/MVST2 ;SRC LONGER
U 2511, 3325,2001,6005,0000,0000,1010,0000 ; 9701 DLEN_AR,AR_ARX COMP ;DST LONGER
U 3325, 3326,3441,2417,0000,1000,1010,0170 ; 9702 MVST2: SLEN_AR,ARX_AR,MQ_AR,AR_0S ;-SHORT LEN -1 TO MQ
U 3326, 3327,4001,0020,0000,2000,0022,0200 ; 9703 AR0-8_FE,BRX/ARX ; AND BRX
U 3327, 2014,0001,0000,0000,0000,1033,0000 ; 9704 SFLGS_AR,B DISP
U 2014, 3331,2301,0200,0302,0000,0410,0014 ; 9705 =100 CLR AR,ARX_1S,SC_#,#/12.,J/MOVS2;[220]TRANSLATE, BUILD MASK
U 2015, 3330,3200,2006,0000,0020,0010,0144 ; 9706 AR_DSTP,J/MVSO3 ;OFFSET, MASK DEPENDS ON S
U 2016, 2030,4662,6600,0000,0020,1610,0111 ; 9707 ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1 ;LEFT JUSTIFY
U 2017, 1250,3240,2005,0000,0020,5510,0000 ; 9708 AR_DLEN,SKP AD0,J/MOVRJ ;RIGHT JUSTIFY
; 9709
U 3330, 3331,2301,2000,2412,0000,0510,0000 ; 9710 MVSO3: SC_S,CLR ARX,AR_1S ;PREPARE TO BUILD MASK
U 3331, 3332,4001,4000,0000,0000,1610,0111 ; 9711 MOVS2: AR_SHIFT,SR_SRC
U 3332, 2020,4001,0007,0000,0000,1010,0167 ; 9712 MSK_AR
; 9713 =000
U 2020, 2120,4660,2007,0000,0020,0050,0170 ; 9714 MOVELP: AR_SLEN+1,CALL,J/SRCMOD ;PICK UP SOURCE BYTE
U 2021, 2031,3240,2005,0000,0020,0010,0000 ; 9715 AR_DLEN,J/MOVSTX ;(1) LENGTH EXHAUSTED
; 9716 =100
U 2024, 1450,4001,0000,0000,0000,1650,0213 ; 9717 MOVPUT: SR_SRC+DST,CALL,J/PUTDST ;(4) NORMAL, STORE DST BYTE
U 2025, 3333,3200,2005,0000,0237,0010,0000 ; 9718 I FETCH,AR_DLEN,J/MVABT ;(5) ABORT
U 2026, 2020,4001,0000,0000,0000,1610,0111 ; 9719 =110 SR_SRC,J/MOVELP ;(6) DPB DONE
; 9720 =
; 9721 ;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE
; 9722
U 3333, 2512,5140,2047,0000,0020,4510,0170 ; 9723 MVABT: BR/AR,AR_-SLEN,SKP AR0 ;WHICH STRING LONGER?
; 9724 =0
U 2512, 3334,0001,0005,0000,0002,1010,0000 ; 9725 MVABT1: AC3_AR,FETCH WAIT,J/MVABT2 ;PUT AWAY DEST LEN
U 2513, 2512,5102,2004,0000,0020,0010,0000 ; 9726 AR_AR-BR,J/MVABT1 ;DEST LEN WAS GREATER
; 9727
U 3334, 2514,2540,2007,0000,0020,4210,0170 ; 9728 MVABT2: AR_SLEN COMP,SKP BR0 ;GET UNDECREMENTED SLEN
U 2514, 2515,0602,2004,0000,0020,0010,0000 ; 9729 =0 AR_AR+BR ;SRC LONGER BY (DLEN)
U 2515, 0065,3300,2000,4000,0020,1610,0000 ; 9730 MVEND: AR_AR*SFLGS,AD/OR,SR_0,J/STAC ;PUT BACK REMAINING LENGTH
; 9731
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- STRING MOVE
; 9732 ;HERE TO BEGIN RIGHT-JUSTIFIED MOVE
; 9733
; 9734 =00
U 1250, 2516,3200,2401,0000,1020,1610,0111 ; 9735 MOVRJ: ARX_AR,AR_SRCP,SR_SRC,J/MVSKP ;SRC LONGER, SKIP OVER SOME
U 1251, 0542,0001,0000,0000,0000,1650,0214 ; 9736 SR_DSTF,CALL,J/MOVF1 ;DST LONGER, FILL IT
U 1253, 2030,4662,6600,0000,0020,1610,0111 ; 9737 =11 ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1 ;DONE FILLING
; 9738
; 9739 =0
; 9740 MVSKP: ARX_ARX-1 (AD),FE_#,#/36.,
U 2516, 1256,1711,0200,0301,0040,7032,0044 ; 9741 SIGNS DISP,SKP INTRPT,J/MVSK1
U 2517, 2516,4001,2000,5010,3020,0610,0200 ; 9742 P_FE-S,AR_AR+1,J/MVSKP
; 9743 =1110
U 1256, 2516,4001,0000,5110,3021,5110,0200 ; 9744 MVSK1: P_P-S,SKP SCAD0,J/MVSKP ;BUMP POINTER
U 1257, 1276,3711,0001,0000,0021,1032,0030 ; 9745 SRCP_AR,GEN ARX,SIGNS DISP,AR_0.M
U 1276, 3335,2500,2227,0000,0020,0010,0170 ; 9746 =1110 BRX/ARX,AR_SLEN COMP,ARX/AD,J/MVSK3 ;INTERRUPTED
U 1277, 2036,4001,0005,0000,0000,1010,0000 ; 9747 DLEN_AR,J/MVSK4 ;DONE FILLING
; 9748
U 3335, 3336,4602,6005,0000,0020,1010,0000 ; 9749 MVSK3: AC3_AR,AR_ARX*BRX,AD/A+B+1 ;DEST HAS SHORT LEN
U 3336, 3313,4001,0000,0000,0000,1610,0000 ; 9750 SR_0,J/STRPF2 ;FIX UP AC0, SERVE INTRPT
; 9751
; 9752 ;HERE FOR NO-MODIFICATION STRING MOVES
; 9753
; 9754 ;[266] Remove edit 244
; 9755 ;;[244] THIS ADDRESS MUST REMAIN SET FOR THE PROBLEM
; 9756 ;; OF THE S FIELD OF THE SOURCE POINTER BEING > 36.
; 9757 ;;
; 9758 ;.IF/MODEL.B
; 9759 ;1300: ;[244]
; 9760 ;MOVST1: SLEN_AR,BRX/ARX, ;PUT UPDATED LEN AWAY
; 9761 ; AR+ARX+MQ_0.M,CALL.M,
; 9762 ; SIGNS DISP,J/GSRC
; 9763 ;1301:
; 9764 ;MOVSTX: SKP AR0,ARX_AR,AR_0S,J/MOVST2 ;SHORT LEN EXHAUSTED
; 9765 ;1302: SR_SRC+DST,CALL,J/PUTDST
; 9766 ;1306:
; 9767 ;MVSK4: ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
; 9768 ;.IFNOT/MODEL.B ;[244][266]
; 9769 =000
; 9770 MOVST1: SLEN_AR,BRX/ARX, ;PUT UPDATED LEN AWAY
; 9771 AR+ARX+MQ_0.M,CALL.M,
U 2030, 1633,0001,0027,0000,0021,1072,0170 ; 9772 SIGNS DISP,J/GSRC
U 2031, 1260,3401,2400,0000,1000,4510,0000 ; 9773 MOVSTX: SKP AR0,ARX_AR,AR_0S,J/MOVST2 ;SHORT LEN EXHAUSTED
U 2032, 1450,4001,0000,0000,0000,1650,0213 ; 9774 =010 SR_SRC+DST,CALL,J/PUTDST
; 9775 =110
U 2036, 2030,4662,6600,0000,0020,1610,0111 ; 9776 MVSK4: ARX_BRX+1,AR/ADX,SR_SRC,J/MOVST1
; 9777 =
; 9778 ;.ENDIF/MODEL.B ;[244][266]
; 9779 =00
; 9780 MOVST2: TEST ARX,TEST FETCH, ;SKIP IF BOTH LENGTHS =0
U 1260, 2515,3713,4005,0000,2246,1010,0203 ; 9781 AC3_AR,AR_ARX,J/MVEND ;CLEAR DEST LEN, REBUILD SRC
U 1261, 0542,0001,0000,0000,0000,1650,0212 ; 9782 SR_DST,CALL,J/MOVF1 ;SOURCE GONE, FILL OUT DST
U 1263, 3427,3240,2000,0000,0220,0010,0000 ; 9783 =11 AR_SFLGS,VMA_PC+1,J/SFET1 ;DONE FILLING
; 9784
; 9785 ;NOTE -- IT AIN'T AS EASY AS IT LOOKS TO BUM A CYCLE OUT OF THIS
; 9786 ; ROUTINE, BECAUSE AN INTERRUPT, IF ANY, HAS TO BE TAKEN AFTER THE
; 9787 ; POINTER UPDATE AND BEFORE THE LENGTH UPDATE. GOOD HUNTING!
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 6-1
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- STRING MOVE
; 9788 =01*
U 0542, 1450,3240,2007,0000,0020,0050,0173 ; 9789 MOVF1: AR_FILL,CALL,J/PUTDST
U 0546, 2520,4660,2005,0000,0020,7010,0000 ; 9790 AR_DLEN+1,SKP INTRPT,J/MOVF2
; 9791 =0
U 2520, 1333,0001,0005,0000,0020,1032,0000 ; 9792 MOVF2: DLEN_AR,SIGNS DISP,J/MOVF3 ;DONE?
U 2521, 0040,4001,0000,0000,0000,0005,0000 ; 9793 SR DISP,J/CLEAN ;BREAK OUT FOR INTERRUPT
; 9794 =1011
U 1333, 0002,4001,0000,0000,0000,0003,0000 ; 9795 MOVF3: RETURN2 ;YES, DONE
U 1337, 0542,4001,0000,0000,0000,0010,0000 ; 9796 J/MOVF1 ;NO, DO ANOTHER
; 9797 .ENDIF/EXTEND
; 9798
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- STRING COMPARE
; 9799 .TOC "EIS -- STRING COMPARE"
; 9800 .IF/EXTEND
; 9801
; 9802 ;HERE FOR CMPS, CHECK FOR OWGBP FIRST
; 9803 ; [310] E0+1 will be saved in FILL during OWG checking. We restore it
; 9804 ; from ARX to MQ here. This keeps us from fetching bogus fill characters.
; 9805
;;9806 .IF/OWGBP
;;9807 =0
;;9808 CMPS: FILL_AR,CALL [EXT2WD] ;[310] Save FILL ptr, convert OWGBP
;;9809 AR_AC3,MQ_ARX ;[310] GET AC3 IN PLACE
;;9810 BR/AR,ARX_AR,FE_AR0-8,AR_AC0 ;DEST LEN TO BR, GET SRC LEN
; 9811 .IFNOT/OWGBP
U 3337, 3340,3240,2440,2421,1020,0010,0000 ; 9812 CMPS: BR/AR,ARX_AR,FE_AR0-8,AR_AC0 ;DEST LEN TO BR, GET SRC LEN
; 9813 .ENDIF/OWGBP
; 9814 FE_FE OR AR0-8, ;GATHER HIGH BITS OF LEN'S
U 3340, 2522,3102,0004,6021,0020,5410,0000 ; 9815 SKP AR GT BR ;WHICH STRING LONGER?
; 9816 .IFNOT/OWGBP ;[310]
; 9817 =0
; 9818 CMPS1: LOAD AR,AR_ARX-1,ARX_AR-1, ;SRC SHORTER
U 2522, 2524,1703,6200,0000,0052,5210,0000 ; 9819 GEN FE,SKP SCAD NE,J/CMPS2 ;CHECK LEN'S PURE
U 2523, 2522,0001,0000,0000,0000,3610,0000 ; 9820 VMA_VMA+1,J/CMPS1 ;SRC LONGER, GET DST FILLER
;;9821 .IF/OWGBP
;;9822 =0 VMA_MQ,J/CMPS1 ;[310] Source shorter
;;9823 VMA_MQ+1 ;[310] SRC LONGER, GET DST FILLER
;;9824 CMPS1: LOAD AR,AR_ARX-1,ARX_AR-1, ;SRC SHORTER
;;9825 GEN FE,SKP SCAD NE ;CHECK LEN'S PURE
; 9826 .ENDIF/OWGBP
; 9827 =0
U 2524, 2527,3200,0063,0000,0022,0010,0000 ; 9828 CMPS2: AR_MEM,BR/AR,BRX/ARX,J/CMPS4 ;DECREMENTED LEN'S TO BR'S
U 2525, 2507,3240,0003,0000,0022,0010,0000 ; 9829 AR_MEM,J/NOLENS ;[275] ILLEGAL BITS IN LEN'S
; 9830
; 9831 ;HERE IS THE COMPARE LOOP.
; 9832 ; MQ CONTAINS THE FILL CHARACTER FOR THE SHORTER STRING,
; 9833 ; BR CONTAINS THE REMAINING DESTINATION LENGTH,
; 9834 ; BRX CONTAINS THE REMAINING SOURCE LENGTH
; 9835 =0
U 2526, 1356,4321,0700,0000,0020,0010,0000 ; 9836 CMPS3: ARX0_MQ35,J/CMPSX ;WE GOT INEQUALITY. GET SIGN
; 9837 CMPS4: MQ_AR,ARX_AR,FE_#,#/36., ;FILL TO MQ & ARX
U 2527, 1350,3242,2410,0301,1000,4310,0044 ; 9838 AR_BR,SKP ARX0 ;MORE CHARS IN SRC STRING?
; 9839 =1000 AR_SRCP,ARX_SRCP, ;READY WITH SRC POINTER
U 1350, 2556,3200,2201,0000,0040,1650,0101 ; 9840 SR_ED(S),CALL,J/GSRC1 ;GO GET SRC BYTE
U 1351, 1352,3441,4200,0000,2020,1632,0000 ; 9841 AR_ARX,ARX_0S,SR_0,SIGNS DISP ;SRC DONE. TEST DEST LEN
U 1352, 1355,3723,2007,0000,0020,1032,0166 ; 9842 =1010 T0_AR,AR_MQ,SIGNS DISP,J/CMPS5 ;SRC (OR SRC FILL) TO T0,
; 9843 =1110 ;TEST FOR END OF DEST STRING
U 1356, 0075,3711,0000,0000,0246,0010,0202 ; 9844 CMPSX: GEN ARX,CMS FETCH,J/NOP ;QUIT WITH COMPARE COND IN ARX
; 9845 =
; 9846 ;HERE TO GET DESTINATION BYTE. SRC IS IN T0, FILL CHAR IN AR
; 9847 ;HERE WITH SIGNS DISP, TO AVOID CALL ON CMPDST IF DST LEN EXHAUSTED
; 9848
; 9849 =1101
U 1355, 2532,0001,0000,0000,0000,1650,0224 ; 9850 CMPS5: SR_ED(+D),CALL,J/CMPDST ;GO FOR DESTINATION BYTE
; 9851 AR_AR*T0,AD/XOR, ;AR ZERO IF EQUAL
U 1357, 3341,3100,2307,0000,0020,0012,0166 ; 9852 ARX/MQ,MQ_MQ*2 ;FILL TO ARX, CRY TO MQ35
; 9853 BR/AR,BRX/ARX, ;EQUALITY TO BR, FILL TO BRX
U 3341, 2530,3202,2660,0000,0000,4210,0000 ; 9854 AR_BR,ARX_BRX,SKP BR0 ;LENGTHS TO AR, ARX
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 7-1
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- STRING COMPARE
; 9855 =0 AC3_AR,ARX_AR,AR_ARX (AD), ;UPDATE DEST LEN IN AC3
U 2530, 1376,3711,2405,0000,1020,1032,0000 ; 9856 SIGNS DISP,J/CMPS6 ;TEST SRC LEN
U 2531, 1376,3711,2400,0000,1000,0010,0000 ; 9857 ARX_AR,AR_ARX (AD) ;DEST LEN EXHAUSTED
; 9858 =1110
U 1376, 3342,1701,6200,0000,0040,1010,0000 ; 9859 CMPS6: AC0_AR,AR_ARX-1,ARX_AR-1,J/CMPS7 ;UPDATE SRC LEN IN AC0
U 1377, 3342,1703,6200,0000,0040,0010,0000 ; 9860 AR_ARX-1,ARX_AR-1 ;SRC EXHAUSTED PREVIOUSLY
; 9861
; 9862 CMPS7: BR/AR,BRX/ARX, ;LENGTHS TO BR'S
U 3342, 2526,7142,6060,0000,0040,5410,0000 ; 9863 SKP BR EQ,AR/ADX,J/CMPS3 ;CHECK FOR EQUALITY
; 9864
; 9865 =0
;;9866 .IFNOT/MODEL.B
;;9867 CMPDST: AR_DSTP,ARX_DSTP,FE_#,#/36., ;GET DEST BYTE FOR COMPARE
;;9868 CALL,J/IDST ;UPDATE DEST POINTER
; 9869 .IF/MODEL.B
; 9870 CMPDST: AR_DSTP,ARX_DSTP, ;GET DEST BYTE FOR COMPARE
U 2532, 3412,3240,2206,0000,0040,0050,0144 ; 9871 CALL,J/IDST ;UPDATE DEST POINTER
; 9872 .ENDIF/MODEL.B
U 2533, 2260,0001,0000,2002,0000,7010,0000 ; 9873 SC_FE+SC,SKP INTRPT,J/LDB1 ;GET DEST BYTE
; 9874 .ENDIF/EXTEND
; 9875
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- DECIMAL TO BINARY CONVERSION
; 9876 .TOC "EIS -- DECIMAL TO BINARY CONVERSION"
; 9877 .IF/EXTEND
; 9878 ; HERE WITH AC0 (SRC LEN) IN AR COMPLEMENTED
; 9879 ; IN THE LOOP, AC3 CONTAINS 10 (DECIMAL), BR'BRX HAS ACCUMULATED BINARY
; 9880
;;9881 .IF/OWGBP
;;9882 =0
;;9883 DBIN: CALL [DB2WD] ;CHECK FOR OWGBP
;;9884 AR_AC0 COMP ;FLAGS TO AR
;;9885 BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1 ;FORCE OUT FLAGS
; 9886 .IFNOT/OWGBP
U 3343, 3344,0001,0040,1421,0000,0110,0777 ; 9887 DBIN: BR/AR,FE_AR0-8 COMP,AR0-8_#,#/-1 ;FORCE OUT FLAGS
; 9888 .ENDIF/OWGBP
U 3344, 1435,3441,2207,0000,0020,1032,0170 ; 9889 SLEN_AR,AR_0S,ARX_0S,SIGNS DISP
U 1435, 3346,3200,0216,0000,2020,0110,0144 ; 9890 =1101 AR0-8_FE#,MQ_ARX,ARX_AC4,J/DBS1 ;BUILD SFLGS
U 1437, 2046,0001,0000,0000,0000,0033,0000 ; 9891 B DISP ;OFFSET OR TRANSLATE?
U 2046, 3345,4001,0000,0000,2000,0022,0200 ; 9892 =110 AR0-8_FE,J/DBST ;TRANSLATE, LET S FLAG SET LATER
U 2047, 3345,4001,0000,6030,2000,0110,0400 ; 9893 AR0-8_FE OR #,#/400 ;OFFSET, SET S FLAG
U 3345, 3350,3441,2200,0000,0000,1010,0000 ; 9894 DBST: SFLGS_AR,AR_0S,ARX_0S,J/DBS2 ;CLEAR BINARY
; 9895
U 3346, 3347,3721,0500,0000,0000,1010,0000 ; 9896 DBS1: SFLGS_AR,ARX_ARX*2 ;HERE WHEN SIG ALREADY ON
U 3347, 3350,3240,2005,0000,0020,0010,0000 ; 9897 AR_AC3 ;ACCUMULATED BINARY IN AR
U 3350, 3351,4041,2060,0000,0020,0510,0000 ; 9898 DBS2: BR_AR LONG,AR_1,CLR ARX
U 3351, 2056,0603,5004,0302,0020,0033,0004 ; 9899 AR_AR*10,B DISP,SC_#,#/4 ;GET CONSTANT 10 FOR COMPARE
U 2056, 3352,2341,4205,0000,2000,1010,0000 ; 9900 =110 AC3_AR,AR_ARX,ARX_1S,J/DBS3 ;PREPARE TO BUILD MASK
U 2057, 3352,2341,2005,0000,0000,1010,0000 ; 9901 AC3_AR,AR_1S ;OFFSET
U 3352, 3353,4001,4000,0000,0000,1610,0102 ; 9902 DBS3: AR_SHIFT,SR_DB
U 3353, 0650,3242,2607,0000,0000,1010,0167 ; 9903 MSK_AR,AR_BR LONG ;SAVE MASK, GET INITIAL INPUT
; 9904
; 9905 =0*0
; 9906 DBINLP: BR_AR LONG,AR_SLEN+1, ;BINARY BACK TO BR, COUNT LENGTH
U 0650, 2120,4660,2067,0000,0020,0050,0170 ; 9907 CALL,J/SRCMOD ;PICK UP A DIGIT
U 0651, 2536,3203,0000,0000,0220,5510,0000 ; 9908 SKP AR2,VMA_PC+1,J/DBXIT ;(1) DONE, TEST M FLAG
; 9909 ARX_AR,AR+MQ_0.M,GEN AR-AC3, ;(4) NORMAL, ADD IN DIGIT
U 0654, 2534,5100,0405,4000,1041,5410,0130 ; 9910 SKP CRY0,J/DBIN2 ;TEST FOR DIGIT >9
U 0655, 3356,2500,2007,0000,0020,0010,0170 ; 9911 AR_SLEN COMP,J/DBABT ;(5) ABORT
; 9912
; 9913 ;HERE TO ADD IN A DIGIT
; 9914
; 9915 =0
U 2534, 3354,3202,2660,0000,0000,0010,0000 ; 9916 DBIN2: BR_AR LONG,AR_BR LONG,J/DBIN3 ;DIGIT TO BR LONG, BINARY TO AR LONG
U 2535, 3356,2500,2007,0000,0020,0010,0170 ; 9917 AR_SLEN COMP,J/DBABT ;DIGIT >9, ABORT
; 9918
U 3354, 3355,0603,2604,0000,0020,0027,0000 ; 9919 DBIN3: AR_AR*5 LONG ;ALREADY HAVE BINARY *2
U 3355, 0650,0602,5504,0000,0020,0027,0000 ; 9920 AR_2(AR+BR) LONG,J/DBINLP ;ADD IN DIGIT, SHIFT LEFT
; 9921
; 9922 ;HERE ON ABORT
; 9923
U 3356, 3357,3300,2000,4000,0020,0010,0000 ; 9924 DBABT: AR_AR*SFLGS,AD/OR ;[230][221]FLAGS +LEN REMAINING
; 9925 AC0_AR,AR_BR LONG,SC_#,#/35., ;PUT BACK UNUSED LENGTH
U 3357, 3360,3242,2600,0302,0200,1010,0043 ; 9926 VMA_PC+1,J/STOR34 ;END WITH NO SKIP
; 9927
; 9928 ;HERE AT END
; 9929
; 9930 =0
; 9931 DBXIT: AR_BR LONG,VMA_VMA+1, ; M FLAG=0
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 8-1
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- DECIMAL TO BINARY CONVERSION
U 2536, 3360,3242,2600,0302,0000,3610,0043 ; 9932 SC_#,#/35.,J/STOR34 ;GO FOR NEXT INSTR
; 9933 AR_-BR LONG,VMA_VMA+1, ;NEGATE
U 2537, 3360,5142,2600,0302,0020,3627,0043 ; 9934 SC_#,#/35.
U 3360, 3361,5401,2005,0000,0037,1016,0000 ; 9935 STOR34: AC3_AR,AR_SIGN,FETCH ;STORE HIGH PART
U 3361, 3362,0001,4000,0000,0000,1610,0000 ; 9936 AR_SHIFT,SR_0 ;GET LOW READY
; 9937 .IF/MODEL.B
U 3362, 3363,0001,0000,0000,0000,0010,0144 ; 9938 SEL AC4 ;PRESEL NUMBER TO FIX HARDW GLITCH
; 9939 .ENDIF/MODEL.B
U 3363, 0222,0001,0006,0000,0000,1010,0144 ; 9940 STAC4: AC4_AR,FINISH
; 9941 .ENDIF/EXTEND
; 9942
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 9
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- BINARY TO DECIMAL CONVERSION
; 9943 .TOC "EIS -- BINARY TO DECIMAL CONVERSION"
; 9944 .IF/EXTEND
; 9945 ; AC0,AC1 = BINARY INTEGER INPUT
; 9946 ; AC3 = FLAGS, MAX LENGTH OF DECIMAL STRING
; 9947 ; AC4 = DESTINATION STRING POINTER
; 9948 ; TEMPS ARE USED AS FOLLOWS:
; 9949 ; SLEN= # OF SIGNIFICANT DIGITS
; 9950 ; T1,2= 10.**(SLEN) THE LOWEST POWER OF TEN LARGER THAN BINARY
; 9951
; 9952 ;FPD IS SET IF THE INSTRUCTION WAS INTERRUPTED AFTER
; 9953 ; CONVERSION OF THE BINARY INTEGER TO FRACTION FORM.
; 9954 ; (AND THUS BY IMPLICATION, AFTER STORING FILLERS)
; 9955
;;9956 .IF/OWGBP
;;9957 =0
;;9958 BDEC: CALL [EXT01] ;CHECK FOR OWGBP
;;9959 AR_AC1,ARL/AD,SC_1,ARX+MQ_0.M,
;;9960 BYTE DISP ;GET BIN INTEGER
;;9961 =011 ARX_SHIFT,AR_AC0,SKP AD0, ;BINARY INTEGER NOW IN AR LONG
;;9962 SC_#,#/20,J/BD1 ;IS IT NEGATIVE?
; 9963 .IFNOT/OWGBP
; 9964 =011
; 9965 BDEC: ARX_SHIFT,AR_AC0,SKP AD0, ;BINARY INTEGER NOW IN AR LONG
U 1443, 2540,3200,2400,0302,0020,5510,0020 ; 9966 SC_#,#/20,J/BD1 ;IS IT NEGATIVE?
; 9967 .ENDIF/OWGBP
U 1447, 3364,3200,2405,0000,1020,1610,0010 ; 9968 BDDR1: ARX_AR,AR_AC3,SR_BDT ;RESUME WITH FRACTION IN AR LONG
; 9969 BR/AR,CLR EXP, ;SEPARATE FLAGS & LENGTH
U 3364, 3365,3240,0260,0400,2021,0010,0200 ; 9970 BRX/ARX,ARX_AC0 ;LOW FRAC TO BRX, HI TO ARX
U 3365, 3366,3002,2044,0000,0000,0010,0000 ; 9971 AR_AR*BR,AD/ANDCA,BR/AR ;JUST FLAGS TO AR, JUST LEN TO BR
U 3366, 3367,4001,4005,0000,2000,1010,0000 ; 9972 AC3_AR,AR_ARX ;GET HI FRAC TO AR
; 9973 BR/AR,VMA_PC+1, ;FRAC TO BR LONG, GET VMA READY
U 3367, 2544,5162,2040,0000,0240,5410,0000 ; 9974 AR_-BR,SKP CRY0,J/BDDR4 ;CHECK FOR MORE TO GO
; 9975
; 9976 =0
U 2540, 1270,3701,0000,0000,0040,5427,0000 ; 9977 BD1: SKP AR NE,AD LONG,J/BD2 ;TEST FOR ZERO LONG
U 2541, 1271,5163,7700,0302,0020,0027,0030 ; 9978 AR_-AR LONG,SC_#,#/30,J/BD3 ;MAKE POSITIVE, SET N&M FLAGS
; 9979 =00
; 9980 BD2: BR_AR LONG,AR_1 LONG, ;BINARY RIGHT-ALIGNED IN BR,
U 1270, 2062,4061,7660,0303,0020,0010,0024 ; 9981 SC_#,FE_#,#/20.,J/BD4 ;LOOK FOR LARGER POWER OF TEN
; 9982 BD3: BR_AR LONG,AR_AC3, ;SAVE POS BINARY, GET AC FLAGS
U 1271, 3450,3240,2065,0000,0020,0050,0000 ; 9983 CALL,J/SETFLG ; SET FLAGS AS NEEDED
U 1273, 1270,3201,7705,0000,0000,1010,0000 ; 9984 =11 AC3_AR,AR_BR*.5 LONG,J/BD2 ;SAVE NEW FLAGS, SHIFT BINARY RIGHT
; 9985
; 9986 ;HERE TO FIND THE SMALLEST POWER OF TEN LARGER THAN THE BINARY INTEGER.
; 9987 ;BINARY IS IN BR LONG, AND POSITIVE UNLESS IT WAS 1B0. IN THIS CASE THE
; 9988 ;COMPARISON WILL NEVER FIND A LARGER POWER OF TEN, BUT THE COUNT IN FE
; 9989 ;WILL RUN OUT, AND WE WILL CORRECTLY COMPUTE 22 DIGITS REQUIRED.
; 9990
; 9991 =010 ;IGNORE BR SIGN
U 2062, 3370,0603,5500,3001,0020,0027,0000 ; 9992 BD4: AR_AR*10 LONG,FE_FE-1,J/BD6 ;THIS POWER IS TOO SMALL
U 2063, 1174,0001,4007,1002,2000,1010,0171 ; 9993 SC_FE-SC-1,T1_AR,AR_ARX,J/BD7 ;THIS POWER IS BIG ENOUGH
U 2066, 2067,0001,0000,3001,0000,0010,0000 ; 9994 FE_FE-1 ;10.**21 IS TOO SMALL, USE 22
U 2067, 1174,0001,4007,1002,2000,1010,0171 ; 9995 SC_FE-SC-1,T1_AR,AR_ARX,J/BD7 ;10.**21 IS BIG ENOUGH
; 9996
U 3370, 2062,1102,0000,0000,0020,0031,0000 ; 9997 BD6: GEN AR-BR-1,DISP/DIV,J/BD4 ;COMPARE BINARY TO 10**N
; 9998
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 10
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- BINARY TO DECIMAL CONVERSION
; 9999 ;HERE HAVING FOUND THE NUMBER OF DIGITS REQUIRED TO REPRESENT THE
; 10000 ; GIVEN INTEGER. THE ONE'S COMPLEMENT OF THE NUMBER OF DIGITS IS NOW
; 10001 ; IN SC, AND T1/T2 IS GETTING A POWER OF TEN LARGER THAN THE INPUT.
; 10002
; 10003 =0*
U 1174, 1325,2341,2007,0000,0000,1050,0172 ; 10004 BD7: T2_AR,AR_1S,CALL,J/GETSC ;SAVE (10**N), GET -# OF DIGITS
U 1176, 3371,2503,0207,0000,0000,1010,0170 ; 10005 SLEN_AR,ARX_AR*4 COMP ;-# OF SIGNIFICANT DIGITS-1
U 3371, 3372,3240,2005,0000,0020,0010,0000 ; 10006 AR_AC3 ;GET FLAGS, LENGTH
U 3372, 3373,4001,0000,2421,0000,0110,0000 ; 10007 FE_AR0-8,AR0-8_#,#/0 ;LEN IN AR, FLAGS IN FE
; 10008 AR_ARX*.25-AR-1,SKP CRY0, ;-# OF FILL CHARS -1
U 3373, 2542,1113,7004,5032,0040,5410,0400 ; 10009 SC_FE-#,#/400 ;SC0 SET IF S FLAG =0
U 2542, 3374,4003,0200,0000,0021,0010,0030 ; 10010 =0 ARX_AR+1,AR_0.M,J/BD8 ;ENOUGH SPACE. -FILL CNT TO ARX
U 2543, 0075,4001,0000,0000,0217,0010,0000 ; 10011 I FETCH,J/NOP ;OVERFLOW
; 10012 BD8: AR0-8_FE.M,SKP SC0, ;FLAGS TO AR. S FLAG =0?
U 3374, 1456,2013,0000,0000,2021,4732,0200 ; 10013 GEN ARX COMP,SIGNS DISP ; OR EXACT LENGTH?
U 1456, 1370,0001,0007,0000,0012,1010,0166 ; 10014 =1110 T0_AR,LOAD AR,J/BDF1 ;FLAGS TO T0, GET FILLER
U 1457, 3375,4001,0005,0000,0000,1010,0000 ; 10015 BD9: AC3_AR,J/BDDV1 ;NO FILL. FLAGS TO AC3
; 10016
; 10017 =00
U 1370, 3003,3200,0003,0000,0022,1650,0203 ; 10018 BDF1: AR_MEM,SR_BDF,CALL,J/RET1 ;GET FILLER, GO WAIT FOR PARITY
U 1371, 2520,0001,4007,0000,2000,1050,0173 ; 10019 FILL_AR,AR_ARX,CALL,J/MOVF2 ;FILL AS REQUIRED
U 1373, 1457,3200,2007,0000,0020,0010,0166 ; 10020 =11 AR_T0,J/BD9 ;GET FLAGS BACK
; 10021
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 11
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- BINARY TO DECIMAL CONVERSION
; 10022 ;SETUP FOR LONG DIVISION OF BINARY BY 10**N
; 10023 ;BR STILL HAS BINARY RIGHT ALIGNED (IE, LOW SIGN SQUEEZED OUT BY
; 10024 ; SHIFTING HIGH WORD RIGHT). BR IS POSITIVE UNLESS INPUT INTEGER WAS
; 10025 ; 1B0, IN WHICH CASE BR IS -1B1. T1,T2 HAS LARGER POWER OF TEN, UNLESS
; 10026 ; BINARY EXCEEDS 10**21, IN WHICH CASE T1,T2 CONTAINS 10**21. SINCE
; 10027 ; BINARY CANNOT BE AS LARGE AS 2 * 10**21, THE FIRST DIVIDE STEP
; 10028 ; IS GUARANTEED TO GENERATE A 1 IN THIS CASE ONLY, AND TO REDUCE THE
; 10029 ; BINARY TO LESS THAN 10**21.
; 10030
U 3375, 2076,3200,0207,0000,0020,0410,0172 ; 10031 BDDV1: ARX_T2,CLR AR ;FILL DONE. GET 10**N
; 10032 =110 AR_T1,MQ_AR, ;D'SOR SET IN AR, MQ CLR
U 2076, 2100,3200,2017,0000,1020,4250,0171 ; 10033 SKP BR0,CALL,J/BDDV2 ; CHK D'END SIGN
U 2077, 3376,3240,2400,0000,1020,1110,0100 ; 10034 ARX_AR,AR_AC0,SET FPD ;DONE, GET FULL QUO IN AR LONG
U 3376, 3377,4003,2600,0000,0020,1627,0010 ; 10035 AR_AR+1 LONG,SR_BDT,J/BDD1 ;PREVENT 9'S DISEASE
; 10036
; 10037 =000
; 10038 BDDV2: AR_BR LONG,BR_AR LONG, ;BEGIN LONG DIVISION
; 10039 SC_#,FE_#,#/34., ;STEP COUNTS FOR BOTH PARTS
U 2100, 1062,3202,2660,0303,0000,0050,0042 ; 10040 CALL,J/DDVSUB
; 10041 AR_-BR,ARX/ADX,BR_AR LONG, ;HERE IF BINARY WAS 1B0
; 10042 SC_#,FE_#,#/34., ; IT'S NOW 1B1
U 2101, 1062,5142,2660,0303,0020,0050,0042 ; 10043 CALL,J/DDVSUB
; 10044 =011 AC0_AR,AR_MQ,ARL/AD,MQ_0.M, ;HALF DONE WITH DIVISION
U 2103, 1060,3721,2000,2401,0001,1010,0102 ; 10045 FE_SC,J/DDVLP ;RESUME WITH ADD STEP
; 10046 =101 AC0_AR,AR_MQ,ARL/AD,MQ_0.M,
U 2105, 1062,3723,2000,2401,0001,1010,0102 ; 10047 FE_SC,J/DDVSUB ;RESUME WITH SUBTRACT STEP
; 10048 =
; 10049
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 12
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- BINARY TO DECIMAL CONVERSION
; 10050 ;HERE WITH QUOTIENT OF <INPUT INTEGER>/<10**N> IN AR LONG, WITH THE
; 10051 ; BINARY POINT BETWEEN BITS 0 AND 1 OF AR. THUS, BIT 0 WILL BE SET
; 10052 ; IFF THE INPUT INTEGER WAS GREATER THAN OR EQUAL TO 10**21.
; 10053 ; SINCE THIS IS A TRUNCATED FRACTION, IT IS NOT GREATER THAN THE TRUE
; 10054 ; QUOTIENT, AND THE ERROR IS LESS THAN 2**-71. WE ADD 2**-71, TO
; 10055 ; GUARANTEE THAT OUR FRACTION IS GREATER THAN THE TRUE QUOTIENT,
; 10056 ; WITH AN ERROR NO GREATER THAN 2**-71. WE WILL THEN MULTIPLY THIS
; 10057 ; FRACTION BY 10 N TIMES, REMOVING THE INTEGER PART AT EACH STEP
; 10058 ; TO EXTRACT THE N DIGITS. SINCE N IS AT MOST 21, THIS IS A MULTIPLI-
; 10059 ; CATION BY AT MOST 10**21, SO THE ERROR IS AT MOST (2**-71)*(10**21).
; 10060 ; SINCE THIS IS LESS THAN ONE, THE ERROR DOES NOT INTRUDE INTO THE
; 10061 ; OUTPUT DIGIT STRING.
; 10062
; 10063 ;HERE IS LOOP TO EXTRACT DIGITS FROM FRACTION IN AC0,AC1
; 10064
; 10065 BDD1: BR_AR LONG,VMA_PC+1, ;START NEXT LOOP ITERATION
U 3377, 2544,4640,2067,0000,0240,5410,0170 ; 10066 AR_SLEN+1,SKP CRY0 ;ANY MORE DIGITS?
; 10067 =0 ;HERE TO RESUME AFTER INTERRUPT
; 10068 BDDR4: SLEN_AR,MQ_AR,SC_1, ;YES, SAVE LENGTH REMAINING
; 10069 AR_BR LONG, ; AND GET FRACTION
U 2544, 1475,3202,2617,4402,1020,1032,0170 ; 10070 SIGNS DISP,J/BDD2 ;CHECK FOR 1ST DIGIT OF 10**21
; 10071 AR_0S,ARX_0S,CLR FPD, ;NO, DONE. CLEAR AC0 & AC1
U 2545, 3400,3401,2200,0000,0000,3614,0000 ; 10072 VMA_VMA+1
U 3400, 1656,4001,0000,0000,0017,1010,0000 ; 10073 AC0_AR,FETCH,J/STRAC1 ;MOVE FETCH WHEN TIMING FIXED
; 10074 =1101 ;LOOK AT BR0 ONLY
U 1475, 1477,0603,7700,0302,0020,0027,0004 ; 10075 BDD2: AR_AR*1.25 LONG,SC_#,#/4 ;NEXT DIGIT TO AR0-3
U 1477, 2546,3401,2400,0000,1000,7010,0000 ; 10076 ARX_AR,AR_0S,SKP INTRPT ;READY TO SHIFT IN DIGIT
U 2546, 2550,0001,4000,0000,0000,0033,0000 ; 10077 =0 AR_SHIFT,B DISP,J/BDD3 ;STORE IT
U 2547, 3304,3242,2600,0000,0000,1610,0000 ; 10078 AR_BR LONG,SR_0,J/B2DPF ;UPDATE REGS & QUIT
; 10079
; 10080 ;HERE TO STORE DIGIT IN AR FOR BDEC
; 10081 =0
U 2550, 3401,0600,0007,4000,0332,0010,0165 ; 10082 BDD3: VMA_AR+E1,LOAD AR,J/BDD4 ;TRANSLATE: GET TABLE ENTRY
U 2551, 2114,0600,2007,0000,0020,0010,0165 ; 10083 AR_AR+E1,J/BDD7 ;OFFSET AR AND STORE IT
; 10084
U 3401, 2552,6021,0000,0000,0021,5410,0040 ; 10085 BDD4: SKP MQ EQ -1,TIME/3T,ARX_0.M ;LAST DIGIT?
; 10086 =0
U 2552, 3402,3240,0003,0000,0022,0010,0000 ; 10087 BDD5: AR_MEM,J/BDD6 ;NO, STORE RH (POS DIGIT)
U 2553, 2552,3240,0205,0000,0020,0010,0000 ; 10088 ARX_AC3,J/BDD5 ;YES, LOOK AT M FLAG
U 3402, 2114,3243,0400,0000,3021,5310,0020 ; 10089 BDD6: SKP ARX2,ARX_AR SWAP,ARL_0.M
; 10090 =100
U 2114, 1450,0001,0000,0000,0000,1650,0206 ; 10091 BDD7: SR_BDD,CALL,J/PUTDST
U 2115, 2114,4001,4000,0000,2001,0010,0020 ; 10092 AR_ARX,ARL_0.M,J/BDD7 ;M SET ON LAST DIGIT, USE LH
; 10093
; 10094 AR_BR LONG,SR_BDT, ;GET FRACTION BACK
U 2116, 1535,3242,2600,0000,0020,1632,0010 ; 10095 SIGNS DISP ;CHECK BR0 FOR INTEGER PART
; 10096 =
U 1535, 1537,0603,5500,0000,0020,0027,0000 ; 10097 =1101 AR_AR*10 LONG ;DISCARD PREVIOUS DIGIT
U 1537, 3377,4001,0000,7130,3000,0110,0037 ; 10098 P_P AND #,#/37,J/BDD1 ;CLEAR AR0, GO FOR NEXT
; 10099 .ENDIF/EXTEND
; 10100
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 13
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10101 .TOC "EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE"
; 10102 .IF/EXTEND
; 10103
; 10104 ;SLEN = COMPLEMENT OF LENGTH
; 10105 ;MSK = MASK
; 10106 ;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET)
; 10107
; 10108 ;CALL WITH: AR_SLEN+1,CALL,J/SRCMOD
; 10109 ;RETURNS: 1 LENGTH EXHAUSTED: FLAGS IN AR
; 10110 ; 2 (EDIT ONLY) NO SIGNIFICANCE: FLAGS IN FE
; 10111 ; 3 (EDIT ONLY) SIGNIFICANCE START: BYTE IN AR, FLAGS IN FE
; 10112 ; 4 NORMAL: BYTE IN AR
; 10113 ; 5 ABORT: OUT OF RANGE OR TRANSLATE FAILURE
; 10114 ; BR, BRX, PRESERVED.
; 10115 ; B=0 IF TRANSLATE, =1 IF OFFSET MODE, =2 IF EDIT, =4 IF CVTDBT
; 10116
; 10117 ;[266] Remove edit 244
; 10118 ;;[244] THIS ADDRESS MUST REMAIN FOR THE PROBLEM OF THE
; 10119 ;; S FIELD OF THE SOURCE POINTER BEING GREATER THAT 36.
; 10120 ;
; 10121 ;.IF/MODEL.B
; 10122 ;1200: ;[244]
; 10123 ;SRCMOD: SLEN_AR,AR+ARX+MQ_0.M,CALL.M, ;PUT LENGTH AWAY, GET BYTE
; 10124 ; SIGNS DISP,J/GSRC ;CHECK FOR LENGTH EXHAUSTION
; 10125 ;1201: AR_SFLGS,SR_0,RETURN1 ;LEN =0, DONE
; 10126 ;1202: E1,TIME/2T,B DISP ;BYTE IN AR
; 10127 ;1206: AR_AR*.5 LONG,E1,J/XLATE ;LOW BIT TO ARX0, BYTE/2 TO AR LOW
; 10128 ;1207: AR_AR+E1,TIME/3T ;OFFSET, ADD OFFSET, TEST MASK
; 10129 ; TEST AR.MSK,SKP CRY0,RETURN4 ;RETURN 4 IF OK, 5 OUT OF RANGE
; 10130 ;.IFNOT/MODEL.B ;[244][266]
; 10131 =000
; 10132 SRCMOD: SLEN_AR,AR+ARX+MQ_0.M,CALL.M, ;PUT LENGTH AWAY, GET BYTE
U 2120, 1633,4001,0007,0000,0021,1072,0170 ; 10133 SIGNS DISP,J/GSRC ;CHECK FOR LENGTH EXHAUSTION
U 2121, 0001,3200,2000,0000,0020,1603,0000 ; 10134 AR_SFLGS,SR_0,RETURN1 ;LEN =0, DONE
U 2122, 2126,4001,0007,0000,0000,0033,0165 ; 10135 E1,TIME/2T,B DISP ;BYTE IN AR
U 2126, 3404,0303,7707,0000,0020,0027,0165 ; 10136 =110 AR_AR*.5 LONG,E1,J/XLATE ;LOW BIT TO ARX0, BYTE/2 TO AR LOW
U 2127, 3403,0600,2007,4000,0020,0010,0165 ; 10137 AR_AR+E1,TIME/3T ;OFFSET, ADD OFFSET, TEST MASK
U 3403, 0004,3600,0007,4000,0040,5403,0167 ; 10138 TEST AR.MSK,SKP CRY0,RETURN4 ;RETURN 4 IF OK, 5 OUT OF RANGE
; 10139 ;.ENDIF/MODEL.B ;[244][266]
; 10140
; 10141 ;HERE ON TRANSLATE-MODE OPERATIONS, WITH THE BYTE/2 IN AR, AND
; 10142 ; THE LEAST SIGNIFICANT BIT OF THE BYTE IN ARX0. PERFORM THE
; 10143 ; TABLE LOOKUP, AND OPERATE AS CONTROLLED BY THE HIGH THREE BITS
; 10144 ; OF THE TABLE ENTRY.
; 10145
U 3404, 3405,0600,0007,0000,0332,0010,0165 ; 10146 XLATE: VMA_AR+E1,LOAD AR ;GET FUNCTION FROM TABLE
; 10147
U 3405, 2554,3240,0003,0302,0022,4310,0022 ; 10148 TRNAR: AR_MEM,SKP ARX0,SC_#,#/18. ;WHICH HALF?
; 10149 =0 ARX_AR,AR0-3 DISP, ;LH, MOVE TO ARX LEFT
U 2554, 1541,3240,2400,0000,1060,0007,0000 ; 10150 AR_SFLGS,J/TRNFNC
; 10151 ARX_AR SWAP,AR18-21 DISP, ;RH, MOVE THAT TO ARX LEFT
U 2555, 1541,3200,2400,0000,3060,0007,0000 ; 10152 AR_SFLGS,J/TRNFNC
; 10153
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 14
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10154 ;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY
; 10155 ; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD.
; 10156 ; WE HAVE DISPATCHED ON THOSE THREE BITS, WITH THE FUNCTION
; 10157 ; HALFWORD IN LH(ARX), AND THE FLAGS FROM AC0 IN AR.
; 10158
; 10159 =0001
; 10160 TRNFNC: SFLGS_AR,FE_P,AR_SHIFT, ;SAVE FLAGS, GET FCN IN AR RIGHT
U 1541, 1573,0001,4000,0101,0020,1032,0000 ; 10161 SIGNS DISP,J/TRNRET ;WAS S FLAG ALREADY SET?
U 1543, 0005,0001,0000,7131,0000,1003,0003 ; 10162 TRNABT: SFLGS_AR,FE_P AND #,#/3,RETURN5 ;ABORT
U 1545, 1541,0001,0000,7130,3000,0110,0067 ; 10163 P_P AND #,#/67,J/TRNFNC ;CLEAR M FLAG
U 1547, 1541,4001,0000,6130,3000,0110,0010 ; 10164 P_P OR #,#/10,J/TRNFNC ;SET M FLAG
U 1551, 1541,4001,0000,6130,3000,0110,0020 ; 10165 TRNSIG: P_P OR #,#/20,J/TRNFNC ;SET N FLAG
U 1553, 1543,0001,0000,6130,3000,0110,0020 ; 10166 P_P OR #,#/20,J/TRNABT ;SET N AND ABORT
U 1555, 1551,4001,0000,7130,3000,0110,0067 ; 10167 P_P AND #,#/67,J/TRNSIG ;CLEAR M, THEN SET N
U 1557, 1541,0001,0000,6130,3000,0110,0030 ; 10168 P_P OR #,#/30,J/TRNFNC ;SET N AND M
; 10169
; 10170 =1011
; 10171 TRNRET: ARX_AR*MSK,AD/AND, ;S FLAG IS 0, GET BYTE IN AR
U 1573, 2134,3600,0207,4000,0020,4433,0167 ; 10172 SKP AR18,B DISP,J/TRNSS ;IS THIS EDIT?
U 1577, 0004,3600,2007,4000,0020,0003,0167 ; 10173 AR_AR*MSK,AD/AND,RETURN4 ;RETURN NORMAL SINCE S FLAG SET
; 10174
; 10175 =100
U 2134, 0150,3240,2005,0000,0020,0033,0000 ; 10176 TRNSS: AR_DLEN,B DISP,J/TRNNS1 ;NO SIG ON MOVE OR D2B
U 2135, 3407,3240,2000,0302,0020,0010,0040 ; 10177 AR_SFLGS,SC_#,#/40,J/TRNSS1 ;SIG START, SET FLAG
U 2136, 0002,4640,0007,0000,0332,0003,0176 ; 10178 VMA_E0+1,LOAD AR,RETURN2 ;EDIT NO SIG. GET FILL
;;10179 .IFNOT/MODEL.B
;;10180 AR_DSTP,FE_#,#/36.,RETURN3 ;EDIT SIG START
; 10181 .IF/MODEL.B
U 2137, 0003,3200,2006,0301,0020,0003,0144 ; 10182 AR_DSTP,FE_#,#/144,RETURN3 ;EDIT SIG START
; 10183 .ENDIF/MODEL.B
; 10184
; 10185 =0**
U 0150, 3406,1701,2000,0000,0020,0010,0000 ; 10186 TRNNS1: AR_AR-1,J/TRNNS2 ;COMPENSATE FOR IGNORING SRC
U 0154, 2120,4640,2007,0000,0020,0010,0170 ; 10187 AR_SLEN+1,J/SRCMOD ;D2B HAS NO DEST LENGTH
U 3406, 1613,4001,0005,0000,0020,1032,0000 ; 10188 TRNNS2: DLEN_AR,SIGNS DISP
U 1613, 2120,3240,2007,0000,0020,0010,0170 ; 10189 =1011 AR_SLEN,J/SRCMOD ;SLEN = DST LEN, DON'T CHANGE IT
U 1617, 2120,4640,2007,0000,0020,0010,0170 ; 10190 AR_SLEN+1,J/SRCMOD ;SLEN REFLECTS SRC LENGTH
; 10191 ; COUNT DOWN FOR BYTE SKIPPED
U 3407, 3410,0001,0000,6100,3001,0010,0200 ; 10192 TRNSS1: P_P OR SC
U 3410, 0004,0001,4000,0000,2000,1003,0000 ; 10193 SFLGS_AR,AR_ARX,RETURN4 ;RETURN WITH SIG SET
; 10194
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 15
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10195 ;SUBROUTINE TO GET BYTE FROM SOURCE STRING
; 10196 ; CALL GSRC WITH SIGNS DISP TO CHECK FOR LENGTH EXHAUSTION
; 10197 ; [TIME = 17 + 3(BP OVERFLOW)]
; 10198
; 10199 =1011
U 1633, 0001,3240,2005,0000,0020,0003,0000 ; 10200 GSRC: AR_DLEN,RETURN1 ;LEN RAN OUT
U 1637, 2556,3240,2201,0301,0040,0010,0044 ; 10201 GETSRC: AR_SRCP,ARX_SRCP,FE_#,#/36.
; 10202 ;[266] Remove edit 244
; 10203 ;.IF/MODEL.B
; 10204 ; GEN FE-S,SKP SCAD0 ;[244] IS S > 36 ?
; 10205 ;=0 J/GSRC1 ;[244] NO, GO BELOW
; 10206 ; DISP/RETURN,J/501 ;[244] YES, TRICKY WAY TO
; 10207 ; ;[244] GET OUT
; 10208 ;;[244] THIS IS DONE THIS WAY SO THAT WE CAN TAKE THE ERROR
; 10209 ;; RETURN OF THE EXTEND INSTRUCTION. THE TWO PLACES THAT
; 10210 ;; CALL GSRC ARE SET SO THAT A RETURN WITH J FIELD OF 500
; 10211 ;; WILL GO TO HERE.
; 10212 ;1701: RETURN5 ;[244] ERROR RETURN
; 10213 ;.ENDIF/MODEL.B ;[244][266]
; 10214 =0
; 10215 GSRC1: P_P-S,SC/SCAD,CALL.M, ;UPDATE POINTER
U 2556, 2144,0001,0000,5112,3021,0074,0200 ; 10216 BYTE DISP,J/GSRC2 ;TEST FOR WORD OVERFLOW
U 2557, 2260,0001,0000,2002,0000,7010,0000 ; 10217 SC_FE+SC,SKP INTRPT,J/LDB1 ;GET BYTE & RETURN TO CALLER
;;10218 .IFNOT/XADDR
;;10219 =110
; 10220 .IF/XADDR
; 10221 =100
; 10222 .ENDIF/XADDR
; 10223 GSRC2: SRCP_AR,ARX_AR,FE_S,VMA_PC, ;STORE POINTER,
U 2144, 0434,2301,0401,2411,1100,1036,0000 ; 10224 EA MOD DISP,J/BFETCH ; GO EVALUATE THE ADDRESS
U 2145, 2144,4003,2000,5012,3020,0610,0200 ; 10225 GSRC3: AR_AR+1,P_FE-S,SC/SCAD,J/GSRC2
; 10226 .IF/XADDR
U 2146, 1432,3240,0204,0000,0020,5010,0000 ; 10227 ARX_SRCP2,SKP PC SEC0,J/GSRC4 ;GET ADDR PART OF POINTER
U 2147, 2560,3240,2404,0000,1020,5010,0000 ; 10228 ARX_AR,AR_SRCP2,SKP PC SEC0
U 2560, 2562,4003,2000,0101,0020,4516,0000 ; 10229 =0 FE_P,AR_AR+1-AR0,SKP AR0,J/GSRC5
U 2561, 2145,0001,4000,0000,2000,0010,0000 ; 10230 AR_ARX,J/GSRC3 ;OOPS, SEC 0 IS COMPATABLE
; 10231 =0
U 2562, 1430,4001,0000,0000,3000,0022,0200 ; 10232 GSRC5: P_FE,J/GSRC6 ;EFIW, INCR ALL BUT 0-5
U 2563, 1430,4003,2000,0000,0020,0011,0000 ; 10233 AR_AR+1,INH CRY18 ;IFIW, INCR RIGHT HALF ONLY
; 10234 =00
; 10235 GSRC6: SRCP2_AR,AR_ARX,ARX_AR (AD), ;SAVE ADDR PART
U 1430, 3411,3703,4204,0000,2000,1050,0000 ; 10236 CALL,J/RESETP ;GO SET P TO 36-S
; 10237 =10
U 1432, 2254,4001,0001,2411,0100,1010,0000 ; 10238 GSRC4: SRCP_AR,FE_S,VMA_PC,J/BYTEI ;GO EVALUATE LONG POINTER
U 1433, 0434,2341,0401,2411,1000,1036,0000 ; 10239 SRCP_AR,ARX_AR,FE_S,EA MOD DISP,J/BFETCH
; 10240
; 10241 ;SUBROUTINE TO LOAD P FROM 36-S
; 10242
U 3411, 0002,0001,0000,5312,3000,0103,0044 ; 10243 RESETP: P_#-S,#/36.,SC/SCAD,RETURN2 ;START P BACK AT LEFT EDGE
; 10244 .ENDIF/XADDR
; 10245
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
; 10246 ;SUBR TO STORE AR IN DEST STRING
; 10247 ; [TIME = 24 + 3(BP OVERFLOW)]
; 10248
; 10249 =00
;;10250 .IFNOT/MODEL.B
;;10251 PUTDST: MQ_AR,AR_DSTP,ARX_DSTP,
;;10252 FE_#,#/36.,CALL,J/IDST
; 10253 .IF/MODEL.B
U 1450, 3412,3240,2216,0000,1040,0050,0144 ; 10254 PUTDST: MQ_AR,AR_DSTP,ARX_DSTP,CALL,J/IDST
; 10255 .ENDIF/MODEL.B
; 10256 AR_MQ,SC_#-SC,#/36.,SKP SCAD0,
U 1451, 2266,3721,2000,5302,0020,5150,0044 ; 10257 CALL,J/DPB1
U 1453, 0006,4001,0003,0000,0002,0003,0000 ; 10258 =11 MEM_AR,RETURN6
; 10259
; 10260 ;SUBROUTINES TO UPDATE STRING POINTERS
; 10261
; 10262 IDST: P_P-S,SC/SCAD,BYTE DISP, ;TEST FOR WORD OVERFLOW
U 3412, 2154,0001,0000,5112,3021,0034,0200 ; 10263 J/IDST2
;;10264 .IFNOT/XADDR
;;10265 .IFNOT/MODEL.B
;;10266 =110
;;10267 IDST2: DSTP_AR,ARX_AR,FE_S, ;STORE POINTER,
;;10268 EA MOD DISP,J/BFETCH ; GO GET THE WORD ADDRESSED
;;10269 AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
;;10270 .IF/MODEL.B
;;10271 =110
;;10272 IDST2: SEL DSTP,J/IDST2B ;PRESEL # TO FIX HARDW GLITCH
;;10273 IDST2A: FE_#,#/36. ;COULDN'T LOAD FE EARLIER
;;10274 AR_AR+1,P_FE-S,SC/SCAD,J/IDST2
;;10275 IDST2B: DSTP_AR,ARX_AR,FE_S,VMA_PC, ;STORE POINTER,
;;10276 EA MOD DISP,J/BFETCH ; GO GET THE WORD ADDRESSED
;;10277 .ENDIF/MODEL.B
; 10278 .IF/XADDR
; 10279 =100
U 2154, 3416,0001,0006,0000,0000,0010,0144 ; 10280 IDST2: DSTP,J/IDST2B ;PRESEL # TO FIX HARDW GLITCH
U 2155, 3413,4003,2000,0000,0020,0011,0000 ; 10281 AR_AR+1,INH CRY18,J/IDST3
U 2156, 1462,3200,0206,0000,0020,5010,0145 ; 10282 ARX_DSTP2,SKP PC SEC0,J/IDST4 ;GET ADDR PART OF POINTER
U 2157, 2564,3240,2406,0000,1020,5010,0145 ; 10283 ARX_AR,AR_DSTP2,SKP PC SEC0
U 2564, 2566,4001,2000,0101,0020,4516,0000 ; 10284 =0 FE_P,AR_AR+1-AR0,SKP AR0,J/IDST5
U 2565, 3413,4011,2000,0000,0020,0011,0000 ; 10285 AR_ARX+1 (AD),INH CRY18
U 3413, 2154,4001,0000,5312,3000,0110,0044 ; 10286 IDST3: P_#-S,#/36.,SC/SCAD,J/IDST2 ;GO STORE SHORT POINTER AWAY
; 10287 =0
U 2566, 1460,0001,0000,0000,3000,0110,0145 ; 10288 IDST5: P_FE.C,SEL DSTP2,J/IDST6 ;PRESEL # TO FIX HARDW GLITCH
U 2567, 1460,4003,2000,0000,0020,0011,0145 ; 10289 AR_AR+1,INH CRY18,SEL DSTP2
; 10290 =00
; 10291 IDST6: DSTP2_AR,AR_ARX,ARX_AR (AD), ;INCR ADDR PART
U 1460, 3411,3701,4206,0000,2000,1050,0145 ; 10292 CALL,J/RESETP ;GET P BACK TO 36-S
; 10293 =10
U 1462, 3414,4001,0000,0000,0000,0010,0144 ; 10294 IDST4: SEL DSTP,J/IDST7 ;PRESEL # TO PREVENT HARDW GLITCH
U 1463, 3415,0001,0000,0000,0000,0010,0144 ; 10295 SEL DSTP,J/IDST8 ;PRESEL # TO PREVENT HARDW GLITCH
; 10296
U 3414, 2254,0001,0006,2411,0000,1010,0144 ; 10297 IDST7: DSTP_AR,FE_S,J/BYTEI
; 10298 IDST8: DSTP_AR,ARX_AR,FE_S,VMA_PC, ;[300]
U 3415, 0434,2301,0406,2411,1100,1036,0144 ; 10299 EA MOD DISP,J/BFETCH
; 10300
; 10301 IDST2B: DSTP_AR,ARX_AR,FE_S,VMA_PC, ;[300]STORE POINTER,
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 16-1
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- SRCMOD SUBROUTINE TO GET MODIFIED SOURCE BYTE
U 3416, 0434,2301,0406,2411,1100,1036,0144 ; 10302 EA MOD DISP,J/BFETCH ; GO GET THE WORD ADDRESSED
; 10303 .ENDIF/XADDR
; 10304 .ENDIF/EXTEND
; 10305
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 17
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10306 .TOC "EIS -- EDIT FUNCTION"
; 10307 .IF/EXTEND
; 10308 ; HERE WITH E0, E1 SETUP, 0 IN AR, -1 IN ARX, AND 15 IN SC
; 10309
;;10310 .IF/OWGBP
;;10311 =0
;;10312 EDIT: CALL [EXT2WD] ;CHECK FOR OWGBP
;;10313 CLR AR,ARX_1S,SC_#,#/15. ;SETUP FOR SHIFT
;;10314 AR_SHIFT,ARX_AC0,SR_ED(PAT) ;MASK TO AR, FLAGS ETC TO ARX
; 10315 .IFNOT/OWGBP
U 3417, 3420,3240,4200,0000,0020,1610,0000 ; 10316 EDIT: AR_SHIFT,ARX_AC0,SR_ED(PAT) ;MASK TO AR, FLAGS ETC TO ARX
; 10317 .ENDIF/OWGBP
;;10318 .IFNOT/MODEL.B
;;10319 =1*0 MSK_AR,AR_ARX (AD), ;SAVE MASK, GET FLAGS IN AR
;;10320 VMA_ARX,LOAD AR, ;GET FIRST PATTERN OPERATOR
;;10321 CALL,J/TRNABT ;GET PBN INTO FE
; 10322 .IF/MODEL.B
U 3420, 3421,0001,0007,0000,0000,1010,0167 ; 10323 MSK_AR ;SAVE MASK FOR TRAN FUNC
U 3421, 2570,4001,4000,0000,2001,5010,0020 ; 10324 AR_ARX,ARL_0.M,SKP PC SEC0 ;DO WE ALLOW SECTION #?
U 2570, 3422,3711,4000,0000,2312,0010,0000 ; 10325 =0 VMA_ARX,LOAD AR,AR_ARX,J/EDIT1 ;YES. PROVIDE IT
U 2571, 3422,3703,4000,0000,2312,0010,0000 ; 10326 VMA_AR,LOAD AR,AR_ARX ;NO, GIVE 0
U 3422, 3423,0001,0000,7131,0000,0010,0003 ; 10327 EDIT1: FE_P AND #,#/3 ;GET PBN IN FE
; 10328 .ENDIF/MODEL.B
; 10329 EDITLP: SC_# AND AR0-8,#/30, ;PBN*8 IN SC
U 3423, 3424,0001,0400,7322,1000,1010,0030 ; 10330 SFLGS_AR,ARX_AR ;UPDATED AC NOW IN AC AND ARX
U 3424, 3425,3240,0003,2002,0022,0010,0000 ; 10331 AR_MEM,SC_FE+SC ;PATTERN IN AR, PBN*9 IN SC
U 3425, 1641,4001,4000,0302,0040,0007,0005 ; 10332 AR_SHIFT,SH DISP,SC_#,#/5 ;PATTERN BYTE TO AR0-8,
; 10333 =0001 ; DISP ON HIGH 3 BITS
; 10334 EDDISP: GEN #+AR0-8,#/-5,
U 1641, 2572,0001,0000,2320,0020,5110,0773 ; 10335 SKP SCAD0,J/EDOPR ;(0XX) OPERATE GROUP
U 1643, 1530,3243,5000,0000,0000,4310,0000 ; 10336 AR_AR*8,SKP ARX0,J/EDMSG ;(1XX) MESSAGE
U 1645, 2576,4001,0000,0000,0000,0010,0000 ; 10337 J/EDNOP ;(2XX) UNDEFINED
U 1647, 2576,4001,0000,0000,0000,0010,0000 ; 10338 J/EDNOP ;(3XX) UNDEFINED
U 1651, 2576,4001,0000,0000,0000,0010,0000 ; 10339 J/EDNOP ;(4XX) UNDEFINED
; 10340 MQ_ARX,ARX_ARX*4,
U 1653, 3430,3203,0610,4002,2000,0010,0000 ; 10341 SC_FE+1,J/EDSKPT ;(5XX) SKIP IF MINUS
; 10342 MQ_ARX,ARX_ARX*2,
U 1655, 3430,3721,0510,4002,2000,0010,0000 ; 10343 SC_FE+1,J/EDSKPT ;(6XX) SKIP IF NON-ZERO
U 1657, 2577,3203,5000,4002,0000,0010,0000 ; 10344 AR_AR*8,SC_FE+1,J/EDSKP ;(7XX) SKIP ALWAYS
; 10345
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 18
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10346 ;HERE TO DECODE OPERATE GROUP
; 10347 =0
U 2572, 2576,4001,0000,0000,0000,0010,0000 ; 10348 EDOPR: J/EDNOP ;OPR .GE. 005 UNDEFINED
U 2573, 2160,0001,0000,0000,0040,0007,0000 ; 10349 SH DISP,J/OPDISP ;(00X), DISP ON LOW 3 BITS
; 10350 =000
; 10351 OPDISP: AR_ARX,SC_#,#/-4, ;(000) STOP
U 2160, 3426,0001,4000,0302,2200,0010,0774 ; 10352 VMA_PC+1,J/EDSTOP
U 2161, 1344,4001,0000,0000,0000,1610,0101 ; 10353 SR_ED(S),J/EDSEL ;(001) SELECT
U 2162, 1470,3200,2006,0000,0020,4310,0144 ; 10354 AR_DSTP,SKP ARX0,J/EDSSIG ;(002) START SIGNIFICANCE
U 2163, 3434,4001,4000,0000,2000,0010,0000 ; 10355 AR_ARX,J/EDFLDS ;(003) FIELD SEPARATOR
;;10356 .IFNOT/MODEL.B
;;10357 VMA_AC3,LOAD ARX, ;(004) EXCH MARK AND DEST
;;10358 MQ_ARX,J/EDEXMD
; 10359 .IF/MODEL.B
;;10360 .IFNOT/XADDR
;;10361 AR_DSTP,MQ_ARX,J/EDEXMD ;(004) EXMD
; 10362 .IF/XADDR
; 10363 AR_DSTP,ARX/AD,MQ_ARX, ;(004) EXMD
U 2164, 2610,3240,2216,0000,2020,5010,0144 ; 10364 SKP PC SEC0,J/EDEX0
; 10365 .ENDIF/XADDR
; 10366 .ENDIF/MODEL.B
; 10367 =
; 10368 ;HERE TO TERMINATE EDIT INSTRUCTION
; 10369 ; SC HAS -4, FE HAS CURRENT PBN, VMA HAS PC IF ABORT, PC+1 IF DONE
; 10370
U 3426, 2574,4001,0000,5031,0020,5110,0003 ; 10371 EDSTOP: FE_FE-#,#/3,SKP SCAD0
; 10372 =0 AR_AR+1,INH CRY18,
U 2574, 3427,4001,2000,7100,3021,0011,0200 ; 10373 P_P AND SC,J/SFET1
U 2575, 3427,0001,0000,4100,3000,0022,0200 ; 10374 P_P+1
U 3427, 0074,4001,0000,0000,0017,3610,0000 ; 10375 SFET1: FETCH+1,J/STORAC
; 10376
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 19
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10377 ;HERE FOR SKPM & SKPN, WITH APPROPRIATE BIT IN ARX0
; 10378
U 3430, 2576,3203,5300,0000,0000,4310,0000 ; 10379 EDSKPT: AR_AR*8,SKP ARX0,ARX/MQ ;SKIP DISTANCE TO AR0-5
; 10380
; 10381 ;HERE AT END OF OPERATION TO UPDATE PBN
; 10382 =0
; 10383 EDNOP: FE_FE-#,#/3,SKP SCAD0, ;END OF PATTERN WORD?
U 2576, 2600,4001,4000,5031,2020,5110,0003 ; 10384 AR_ARX,J/EDNXT1
U 2577, 2576,0001,0000,2101,0000,0010,0000 ; 10385 EDSKP: FE_P+SC,J/EDNOP ;ADD SKIP DISTANCE
; 10386 =0
;;10387 .IFNOT/XADDR
;;10388 EDNXT1: AR_AR+1,INH CRY18, ;BUMP TO NEXT WORD
;;10389 FE_FE-#,#/4, ;REDUCE PBN
;;10390 SKP SCAD0,J/EDNXT1
;;10391 SR_ED(PAT)
;;10392 FE_FE+#,#/4 ;RESTORE PBN POS, INCR IT
;;10393 SC_P AND #,#/74,VMA_AR,LOAD AR, ;FLAGS & EDIT BIT TO SC, GET PATTERN
;;10394 SKP INTRPT,J/EDNXT3
; 10395 .IF/XADDR
U 2600, 2604,4001,0000,0000,0000,5010,0000 ; 10396 EDNXT1: SKP PC SEC0,J/EDNXT2
U 2601, 3431,0001,0000,0000,0000,1610,0000 ; 10397 SR_ED(PAT)
U 3431, 2602,0001,0000,2031,0000,5010,0004 ; 10398 FE_FE+#,#/4,SKP PC SEC0 ;RESTORE PBN POS, INCR IT
; 10399 =0 SC_P AND #,#/74,VMA_AR,LOAD AR, ;FLAGS & EDIT BIT TO SC,
U 2602, 2606,3703,0000,7132,0312,7010,0074 ; 10400 SKP INTRPT,J/EDNXT3 ; GET PATTERN
U 2603, 3432,0001,0000,7132,0000,0010,0074 ; 10401 SC_P AND #,#/74 ;IN SEC0, MUST NOT LOAD FULL SEC
U 3432, 3433,0001,0400,0000,1001,0010,0020 ; 10402 ARX_AR,ARL_0.M ;CLEAR SEC #
; 10403 VMA_AR,LOAD AR,AR_ARX, ;GET PATTERN
U 3433, 2606,3701,4000,0000,2312,7010,0000 ; 10404 SKP INTRPT,J/EDNXT3
; 10405
; 10406 =0
; 10407 EDNXT2: AR_AR+1,FE_FE-#,#/4, ;REDUCE PBN
U 2604, 2600,4001,2000,5031,0020,5110,0004 ; 10408 SKP SCAD0,J/EDNXT1
; 10409 AR_AR+1,INH CRY18, ;BUMP TO NEXT WORD
; 10410 FE_FE-#,#/4, ;REDUCE PBN
U 2605, 2600,4003,2000,5031,0020,5111,0004 ; 10411 SKP SCAD0,J/EDNXT1
; 10412 .ENDIF/XADDR
; 10413 =0
U 2606, 3423,4001,0000,6000,3000,0022,0200 ; 10414 EDNXT3: P_FE OR SC,J/EDITLP ;SET NEW PBN, GO DO NEXT PATTERN
U 2607, 3267,4001,0000,6000,3000,0022,0200 ; 10415 P_FE OR SC,J/PGFAC0 ;GO RESTORE THINGS AND TAKE
; 10416 ; THE INTERUPT
; 10417
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 20
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10418 ;HERE FOR FIELD SEPARATOR (CLEAR FLAGS IN AC 0-2)
; 10419
U 3434, 1473,0001,0000,7130,3000,0110,0007 ; 10420 EDFLDS: P_P AND #,#/7,J/EDSEND ;EASY ENOUGH
; 10421
; 10422 ;HERE FOR SIG START
; 10423
; 10424 =00
;;10425 .IFNOT/XADDR
;;10426 EDSSIG: VMA_AC3,STORE,CALL,J/EDFLT1 ;SAVE MARK, GET FLOAT
; 10427 .IF/XADDR
; 10428 EDSSIG: ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
; 10429 BYTE DISP,SCADA EN/0S,SCAD/A,
U 1470, 2224,3240,2405,0400,1341,5074,0020 ; 10430 CALL,SKP PC SEC0,J/EDFLT
; 10431 .ENDIF/XADDR
; 10432 FE_FE-#,#/3,SKP SCAD0, ;S FLAG ALREADY SET, NOP
U 1471, 2600,4001,4000,5031,2020,5110,0003 ; 10433 AR_ARX,J/EDNXT1
; 10434 =11
U 1473, 2576,0001,0400,7131,1000,0010,0003 ; 10435 EDSEND: FE_P AND #,#/3,ARX_AR,J/EDNOP ;READY TO DO NEXT OP
; 10436
; 10437 ;HERE FOR MESSAGE CHAR
; 10438
; 10439 =00
U 1530, 2212,4640,0007,0000,0332,0010,0176 ; 10440 EDMSG: VMA_E0+1,LOAD AR,J/EDSFIL ;NO SIG, PUT FILLER
U 1531, 1325,3401,2000,0102,0000,0050,0000 ; 10441 SC_P,AR_0S,CALL,J/GETSC ;GET MESSAGE SELECT IN AR
U 1533, 2217,4600,0007,4000,0332,0010,0176 ; 10442 =11 VMA_AR+E0+1,LOAD AR,J/EDMPUT ;STORE MESSAGE
; 10443
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 21
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10444 ;HERE TO EXCHANGE MARK AND DESTINATION POINTERS
; 10445
;;10446 .IFNOT/MODEL.B ;EASY CASE
;;10447 EDEXMD: AR_DSTP ;READY TO STORE DEST PTR
;;10448 FIN XFER,STORE ;WAIT FOR MARK, STORE DSTP
;;10449 MEM_AR,AR_ARX ;READY TO UPDATE DSTP
;;10450 DSTP_AR,ARX/MQ,J/EDNOP ;DONE, GET NEXT OPR
; 10451 .IF/MODEL.B
; 10452 .IF/XADDR
; 10453 =0
; 10454 EDEX0: VMA_AC3,LOAD AR (WR TST), ;GET MARK POINTER
U 2610, 3437,3200,0065,0000,0331,0010,0440 ; 10455 BR/AR,BRX/ARX,J/EDEX2 ;DSTP IN BR & BRX,
; 10456 .ENDIF/XADDR
U 2611, 3435,3240,2045,0000,0021,0010,0020 ; 10457 EDEXMD: BR/AR,AR_AC3,ARL_0.M
U 3435, 3436,3703,0000,0000,0311,0010,0440 ; 10458 VMA_AR,LOAD AR (WR TST) ;GET MARK FROM SECT 0
U 3436, 2035,3200,0003,0000,0022,0010,0000 ; 10459 AR_MEM
;;10460 .IFNOT/XADDR
;;10461 BR/AR,AR_BR,STORE ;STORE DEST POINTER
;;10462 MEM_AR,AR_BR,SEL DSTP ;DONE. GET MARK AGAIN
;;10463 ;PRESELECT # TO FIX HARDWARE GLITCH
;;10464 DSTP_AR,ARX/MQ,J/EDNOP ;MARK BECOMES DEST. GET NEXT PAT
; 10465 .IF/XADDR
; 10466 =101
U 2035, 3442,3202,2040,0000,0016,0010,0000 ; 10467 EDDSNG: BR/AR,AR_BR,STORE,J/EDEXX ;NEITHER POINTER IS DOUBLE
U 2037, 1002,4001,0000,0000,0000,0010,0000 ; 10468 J/UUO ;SHORT DSTP, LONG MARK ILLEGAL
; 10469 ;;;FLUSH WHEN SURE THIS IS RIGHT
; 10470 ; BR/AR,AR_BR, ;DSTP TO AR, MARK TO BR
; 10471 ; VMA_VMA+1,LOAD ARX ;GET MARK2
; 10472 ; FIN XFER,VMA_VMA-1,STORE,J/EDEXX;NOW STORE DSTP AS NEW MARK
; 10473
U 3437, 2165,3240,0003,0000,0042,0034,0000 ; 10474 EDEX2: AR_MEM,BYTE DISP ;WAIT FOR MARK, TEST DESTP
U 2165, 2035,4001,0000,0000,0020,0034,0000 ; 10475 =101 BYTE DISP,J/EDDSNG ;NO, CHECK MARK
U 2167, 2175,3200,0206,0000,0040,0034,0145 ; 10476 ARX_DSTP2,BYTE DISP ;YES, CHECK MARK
U 2175, 1002,4001,0000,0000,0000,0010,0000 ; 10477 =101 J/UUO ;LONG DSTP SHORT MARK ABORT
; 10478 ;;;FLUSH WHEN SURE THE UUO IS RIGHT
; 10479 ; BR/AR,AR_ARX, ;MARK TO BR, DSTP2 TO AR
; 10480 ; VMA_VMA+1,STORE,J/EDEXM4 ; STORE DSTP2
; 10481 BR/AR,AR_ARX,
U 2177, 3440,0001,4040,0000,2011,3610,0240 ; 10482 VMA_VMA+1,LOAD ARX (WR TST) ;GET MARK2
U 3440, 3441,3200,0003,0000,0036,0010,0000 ; 10483 FIN XFER,STORE ;PUT BACK DSTP2
; 10484 ;EDEXM4:
; 10485 FIN STORE,AR_BRX, ;GET DSTP FROM BRX
U 3441, 3442,3202,6003,0000,0016,3510,0000 ; 10486 VMA_VMA-1,STORE ;PUT THAT DOWN
; 10487 EDEXX: MEM_AR,AR_BR,SEL DSTP, ;PRESELECT # TO FIX HARDWARE GLITCH
U 3442, 2612,3202,2003,0000,0002,5010,0144 ; 10488 SKP PC SEC0 ;GET MARK FOR NEW DSTP
U 2612, 2205,0001,4006,0000,2020,1034,0144 ; 10489 =0 DSTP_AR,AR_ARX,BYTE DISP,J/EDEX1
U 2613, 2205,4001,0006,0000,0000,1010,0144 ; 10490 DSTP_AR
; 10491 =101
; 10492 EDEX1: FE_FE-#,#/3,SKP SCAD0,
U 2205, 2600,3721,2000,5031,0020,5110,0003 ; 10493 AR_MQ,J/EDNXT1
U 2207, 3443,4001,0000,0000,0000,0010,0145 ; 10494 SEL DSTP2 ;PRESELECT # TO FIX HARDWARE GLITCH
U 3443, 2205,0001,0006,0000,0000,1010,0145 ; 10495 DSTP2_AR,J/EDEX1 ;PUT OLD MARK2 AS DSTP2
; 10496 .ENDIF/XADDR
; 10497 .ENDIF/MODEL.B
; 10498
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10499 ;HERE FOR SELECT
; 10500
; 10501 =0*
; 10502 EDSEL: AR_SRCP,ARX_SRCP,FE_#,#/36.,
U 1344, 2556,3200,2201,0301,0040,0050,0044 ; 10503 CALL,J/GSRC1 ;GO GET SRC BYTE
U 1346, 2210,0301,7707,0000,0020,0027,0165 ; 10504 AR_AR*.5 LONG,E1 ;GOT IT, DIVIDE BY 2
U 2210, 3405,0600,0007,4000,0332,0050,0165 ; 10505 =000 VMA_AR+E1,LOAD AR,CALL,J/TRNAR ;GO TRANSLATE BY HALFWORDS
; 10506 =010
U 2212, 3444,3200,0003,0000,0022,0010,0000 ; 10507 EDSFIL: AR_MEM,J/EDSF1 ;(2) NO SIGNIFICANCE, STORE FILL
U 2213, 1560,4001,0020,5110,0020,5110,0000 ; 10508 GEN P-S,SKP SCAD0,BRX/ARX,J/EDSFLT ;(3) SIG START, DO FLOAT CHAR
U 2214, 1450,0001,0000,0000,0000,1650,0224 ; 10509 EDSPUT: SR_ED(+D),CALL,J/PUTDST ;(4) NORMAL, STORE AT DST
U 2215, 3426,0001,0000,0302,0100,0010,0774 ; 10510 VMA/PC,SC_#,#/-4,J/EDSTOP ;(5) ABORT
U 2216, 1473,3200,2000,0000,0020,0010,0000 ; 10511 EDFPUT: AR_SFLGS,J/EDSEND ;(6) BUMP PBN AND GO TO NEXT
U 2217, 2214,3240,0003,0000,0022,0010,0000 ; 10512 EDMPUT: AR_MEM,J/EDSPUT ;FILL OR MSG IN AR, STORE IT
; 10513
; 10514
; 10515 ;HERE WHEN TIME TO STORE FILL CHAR
; 10516
U 3444, 2216,3703,0000,0000,0040,5410,0000 ; 10517 EDSF1: SKP AR NE,J/EDFPUT ;IS THERE ONE?
; 10518
; 10519 ;HERE WHEN SELECT STARTS SIGNIFICANCE
; 10520
; 10521 =00
;;10522 .IFNOT/MODEL.B
;;10523 EDSFLT: VMA_AC3,STORE,CALL,J/EDFLT ;STORE DEST AT MARK ADDR
; 10524 .IF/MODEL.B
;;10525 .IFNOT/XADDR
;;10526 EDSFLT: ARX_AR,AR_AC3,ARL_0.M,CALL,J/EDFLT
; 10527 .IF/XADDR
; 10528 EDSFLT: ARX_AR,VMA_AC3,AR/AD,ARL_0.M,
; 10529 BYTE DISP,SCADA EN/0S,SCAD/A,
U 1560, 2224,3240,2405,0400,1341,5074,0020 ; 10530 CALL,SKP PC SEC0,J/EDFLT
; 10531 .ENDIF/XADDR
; 10532 .ENDIF/MODEL.B
U 1561, 1560,4003,2000,0000,3020,0022,0200 ; 10533 P_FE,AR_AR+1,J/EDSFLT ;FORCE STANDARD POINTER FORM
U 1563, 2214,3242,6000,0000,0000,1010,0000 ; 10534 =11 SFLGS_AR,AR_BRX,J/EDSPUT ;SET S FLAG, GET BYTE, STORE IT
; 10535
; 10536 ;HERE IS SUBROUTINE TO STORE FLOAT CHAR
; 10537
; 10538 .IF/MODEL.B
;;10539 .IFNOT/XADDR
;;10540 EDFLT: VMA_AR,AR_ARX,STORE,J/EDFLT1
; 10541 .IF/XADDR
; 10542 =100
U 2224, 3447,4001,4000,0000,2016,0010,0000 ; 10543 EDFLT: AR_ARX,STORE,J/EDFLT1 ;SHORT POINTER. STORE IT
U 2225, 3447,3701,4000,0000,2316,0010,0000 ; 10544 VMA_AR,AR_ARX,STORE,J/EDFLT1 ; LIKEWISE. FORCE SECTION 0
U 2226, 3445,0001,4000,0000,2016,0010,0000 ; 10545 AR_ARX,STORE,J/EDFLTX ;LONG POINTER, DO MORE
U 2227, 3447,3701,4000,0000,2316,0010,0000 ; 10546 VMA_AR,AR_ARX,STORE,J/EDFLT1 ; IN SECTION 0, KEEP THERE
; 10547
U 3445, 3446,0001,0003,0000,0002,0010,0000 ; 10548 EDFLTX: MEM_AR ;FINISH STORE OF 1ST PART
U 3446, 3447,3240,2006,0000,0036,3610,0145 ; 10549 AR_DSTP2,VMA_VMA+1,STORE ;NOW DO SECOND PART
; 10550 .ENDIF/XADDR
;;10551 .IFNOT/MODEL.B
;;10552
;;10553 EDFLT:
; 10554 .ENDIF/MODEL.B
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 22-1
; EIS.MIC[10,5351] 18:59 19-May-83 EIS -- EDIT FUNCTION
; 10555
U 3447, 1434,4041,5003,0000,0022,0010,0000 ; 10556 EDFLT1: MEM_AR,AR_2 ;MARK STORED, READY FOR FLOAT
U 1434, 0736,0600,0007,0000,0332,0050,0176 ; 10557 =0* VMA_AR+E0,LOAD AR,CALL,J/XFERW
U 1436, 2234,3703,0000,0000,0040,5410,0000 ; 10558 SKP AR NE
U 2234, 3450,3200,2000,0302,0020,0010,0040 ; 10559 =100 AR_SFLGS,SC_#,#/40,J/SETFLG ;NO FLOAT CHR, SET S FLAG
U 2235, 1450,0001,0000,0000,0000,1650,0224 ; 10560 SR_ED(+D),CALL,J/PUTDST ;STORE FLOAT CHR IN DST
U 2237, 3450,3200,2000,0302,0020,0010,0040 ; 10561 =111 AR_SFLGS,SC_#,#/40 ;SET S FLAG AND RETURN
U 3450, 0003,4001,0000,6100,3001,0003,0200 ; 10562 SETFLG: P_P OR SC,RETURN3 ;NO FLOAT CHR, SET S FLAG
; 10563
; 10564 .ENDIF/EXTEND
; 10565
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 1
; BLT.MIC[10,5351] 17:35 6-Jul-83 XBLT
; 10566 .TOC "XBLT"
; 10567
; 10568 ;HERE FROM EXTEND, ARX CONTAINS AC2
; 10569 .IF/XADDR
; 10570
U 3451, 3452,3240,2001,0000,0020,1610,0216 ; 10571 XBLT: AR_AC1,SR_XBLT(SRC) ;[262] IN CASE OF INTERRUPT
; 10572 BR/AR,BRX/ARX,MQ_AR, ;SRC ADDR TO BR, DST TO BRX
U 3452, 2614,3200,2070,0000,1020,5510,0000 ; 10573 AR_AC0,SKP AD0,J/XBLT3 ;GET LENGTH, TEST DIRECTION
; 10574 =0
U 2614, 2622,3703,0010,0000,1040,5410,0000 ; 10575 XBLT3: SKP AR NE,MQ_AR,J/XBLT4
; 10576 AR_MQ-1,ARX_ARX-1, ;DECR SRC & DST ADDR'S FOR DOWN
U 2615, 3453,1723,2600,0000,0352,0010,0000 ; 10577 VMA/AD,LOAD AR ;GET FIRST WORD
; 10578
; 10579 ;HERE IS MAIN LOOP FOR XBLT, DOWNWARDS
; 10580
U 3453, 3454,3240,0013,0000,1022,1610,0316 ; 10581 XBLTDN: MQ_AR,AR_MEM,SR_XBLT(DST) ;WAIT FOR SOURCE WORD
U 3454, 3455,3711,0000,0000,0316,1610,0216 ; 10582 VMA_ARX,STORE,SR_XBLT(SRC) ;STORE IT IN DESTINATION
U 3455, 2616,3721,2003,0000,0002,7010,0000 ; 10583 MEM_AR,AR_MQ,SKP INTRPT ;WAIT, CHECK FOR INTRPT
; 10584 =0 BR/AR,BRX/ARX, ;PUT DECREMENTED ADDR'S IN BR,X
U 2616, 2620,4660,2060,0000,0040,5410,0000 ; 10585 AR_AC0+1,SKP CRY0,J/XBLTD1 ;COUNT OFF LENGTH
U 2617, 3267,4640,2060,0000,0020,0010,0000 ; 10586 BR/AR,BRX/ARX,AR_AC0+1,J/PGFAC0 ;CLEANUP AND TAKE INTERRUPT
; 10587 =0
; 10588 XBLTD1: AC0_AR,AR_MQ-1,ARX_ARX-1, ;STORE NEW LENGTH, GET NEXT ADDR
U 2620, 3453,1721,2600,0000,0352,1010,0000 ; 10589 VMA/AD,LOAD AR,J/XBLTDN ; AND READ SRC WORD
; 10590 AC0_AR,AR_ARX,ARX/MQ, ;DONE! PUT ALL AWAY
U 2621, 3456,0001,4300,0000,2217,1010,0000 ; 10591 I FETCH
U 3456, 1656,0001,4004,0000,2000,1010,0000 ; 10592 XBLTX: AC2_AR,AR_ARX,J/STRAC1
; 10593
; 10594 ;HERE FOR UPWARD BLT, TESTING FOR NON-ZERO LENGTH
; 10595
; 10596 =0
U 2622, 0075,0001,0000,0000,0217,1610,0000 ; 10597 XBLT4: I FETCH,SR_0,J/NOP ;DO NOTHING IF AC =0
; 10598 VMA_BR,LOAD AR, ;ELSE START RIGHT IN
U 2623, 3461,3202,0000,0000,0312,1610,0316 ; 10599 SR_XBLT(DST),J/XBLTU1
; 10600
; 10601 ;HERE IS MAIN LOOP FOR XBLT, UPWARDS
; 10602
U 3457, 2624,1721,2003,0000,0042,5610,0000 ; 10603 XBLTUP: MEM_AR,AR_MQ-1,SKP AD NE ;COUNT EXHAUSTED?
; 10604 =0 AC0_AR,ARX_BR+1,AR_BRX+1, ;YES. GET FINAL ADDRESSES
U 2624, 3456,4642,6200,0000,0257,1010,0000 ; 10605 I FETCH,J/XBLTX ; READY TO STORE
; 10606 AC0_AR,MQ_AR,AR_BR+1,ARX_BRX+1,
U 2625, 3460,4662,2610,0000,1352,1010,0000 ; 10607 VMA/AD,LOAD AR ;GET SOURCE WORD
U 3460, 3461,4001,0060,0000,0000,1610,0316 ; 10608 BR/AR,BRX/ARX,SR_XBLT(DST) ;MUST BE SAVED PRIOR TO MBWAIT
U 3461, 2626,3200,0003,0000,0022,7010,0000 ; 10609 XBLTU1: AR_MEM,SKP INTRPT ;WAIT FOR SRC, TEST INTRPT
; 10610 =0 VMA_ARX,STORE, ;COPY TO DST
U 2626, 3457,3713,0000,0000,0316,1610,0216 ; 10611 SR_XBLT(SRC),J/XBLTUP ;LOOP
U 2627, 3270,3202,2600,0000,0000,1610,0000 ; 10612 AR_BR LONG,SR_0,J/XBLTPF ;TAKE INTERRUPT
; 10613
; 10614 .ENDIF/XADDR
; 10615
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 2
; BLT.MIC[10,5351] 17:35 6-Jul-83 BLT
; 10616 .TOC "BLT"
; 10617 ; ENTER WITH 0,E IN AR
; 10618
; 10619 ;IN THE LOOP, ARX CONTAINS THE CURRENT DESTINATION ADDRESS,
; 10620 ; BRX CONTAINS THE TERMINAL ADDRESS, AND BR CONTAINS THE DIFFERENCE
; 10621 ; BETWEEN THE SOURCE AND DESTINATION ADDRESSES.
; 10622
; 10623 ;UNLIKE EARLIER -10 PROCESSORS, THIS CODE CHECKS FOR THE CASE IN WHICH
; 10624 ; THE DESTINATION ADDRESS IN RH(AC) IS GREATER THAN E, AND RATHER THAN
; 10625 ; STOPPING AFTER ONE WORD, COPIES DOWNWARD (EFFECTIVELY DECREMENTING
; 10626 ; AC BY 1,,1 ON EACH STEP, RATHER THAN INCREMENTING).
; 10627
; 10628 ;THIS CODE ALSO PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF
; 10629 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD
; 10630 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION
; 10631 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING
; 10632 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST-
; 10633 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION
; 10634 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK.
; 10635
; 10636 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH
; 10637 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE,
; 10638 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH
; 10639 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP.
; 10640
; 10641 ;BLT: ARX_AR,MQ_AR,ARR_AC0,ARL_ARL ;END TO ARX & MQ, DEST TO AR
; 10642 BLT1: BR/AR,ARX_AR,BRX/ARX, ;DST TO BR & ARX, END TO BRX
U 3462, 3463,3200,2460,0000,1020,0010,0000 ; 10643 AR_AC0 ;SRC TO ARL
;;10644 .IFNOT/BLT.PXCT
;;10645 ARR_ARL,ARL_BRL ;SRC TO ARR (SAME SECTION AS E)
;;10646 AR_AR-BR ;SRC-DST TO ARR
; 10647 .IF/BLT.PXCT
U 3463, 2630,3202,4000,0000,3001,7410,0002 ; 10648 ARR_ARL,ARL_BRL.M,SKP P!S XCT ;SRC TO ARR (SAME SECTION AS E)
U 2630, 1474,5102,2000,0000,0020,0010,0000 ; 10649 =0 AR_AR-BR,J/BLT2 ;SRC-DST TO ARR
U 2631, 1534,5102,2000,0000,0020,0010,0000 ; 10650 AR_AR-BR,J/BLTPXCT ;TREAT PXCT OF BLT SPECIAL
; 10651 .ENDIF/BLT.PXCT
;;10652 .IF/BACK.BLT
;;10653 BR/AR,SKP ARX LE BRX ;SRC-DST TO BR. UP OR DOWN?
;;10654 =00 AR_MQ-1,CALL,J/BLTAC ;DOWN, READY WITH E-1
;;10655 AR_MQ+1,CALL,J/BLTAC ;UP, PUT E+1 IN AR FOR AC
;;10656 DOWN: LOAD VMA(EA)_ARX+BR,J/DN1 ;DOWN, START THE LOOP
; 10657 .IFNOT/BACK.BLT
; 10658 =0*
U 1474, 3464,4023,2040,0000,0020,0050,0000 ; 10659 BLT2: BR/AR,AR_MQ+1,CALL,J/BLTAC ;SRC-DST TO BR, E+1 IN AR
; 10660 .ENDIF/BACK.BLT
U 1476, 2632,4662,0000,0000,0040,5410,0000 ; 10661 SKP BR EQ -1,J/UP ;IS THIS CORE CLEARING CASE?
; 10662
; 10663
; 10664 ;HERE TO SETUP FINAL AC
; 10665
U 3464, 3465,0602,2004,0000,3020,0610,0004 ; 10666 BLTAC: ARL_ARR,AR_AR+BR ;FINAL DEST TO LH, SRC TO RH
U 3465, 3466,0001,4000,0000,3000,1610,0707 ; 10667 AR_AR SWAP,SR_BLT(SRC)
U 3466, 0002,0001,0000,0000,0000,1003,0000 ; 10668 ACSETU: AC0_AR,RETURN2 ;[334] Used below as well
; 10669
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 3
; BLT.MIC[10,5351] 17:35 6-Jul-83 BLT
; 10670 ;HERE FOR UPWARD BLT (AC RH .LE. E)
; 10671 =0
U 2632, 1731,0612,0004,0000,0131,0010,0402 ; 10672 UP: LOAD VMA(EA)_ARX+BR,J/UP1 ;NOT CLEAR CORE
U 2633, 1730,0612,0000,0000,0131,7410,0402 ; 10673 SKP P!S XCT,LOAD VMA(EA)_ARX+BR ;DO NOT OPTIMIZE UNDER EXT ADDR
; 10674
; 10675 ;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
; 10676
U 1730, 3467,3200,0003,0000,0022,1650,0507 ; 10677 =00 AR_MEM,CALL,SR_BLT(DST),J/UP2 ;GET THE WORD TO STORE IN ALL
U 1731, 3467,3200,0003,0000,0022,1650,0507 ; 10678 UP1: AR_MEM,CALL,SR_BLT(DST),J/UP2 ;GET SOURCE WORD
U 1732, 3467,0001,0000,0000,0000,1650,0507 ; 10679 CALL,SR_BLT(DST),J/UP2 ;HERE TO STORE SAME SRC AGAIN
U 1733, 1731,0612,0004,0000,0131,0010,0402 ; 10680 LOAD VMA(EA)_ARX+BR,J/UP1 ;HERE TO GET NEXT SRC
; 10681
U 3467, 2634,3713,0000,0000,0111,7010,0042 ; 10682 UP2: STORE VMA(EA)_ARX,SKP INTRPT ;OK, GET DST ADDRESS
; 10683 =0
U 2634, 2636,5102,0000,0000,0040,5310,0000 ; 10684 UP3: SKP ARX LT BRX,J/UP4 ;CHECK FOR LAST TRANSFER
U 2635, 3265,4001,0003,0000,0002,0010,0000 ; 10685 MEM_AR,J/BLTPF ;FINISH THIS, GO SERVE INTRPT
; 10686 =0
U 2636, 0075,4001,0003,0000,0217,0010,0000 ; 10687 UP4: FIN STORE,I FETCH,J/NOP ;THAT'S ALL, FOLKS
; 10688 MEM_AR,ARX_ARX+1, ;STORE DST,
U 2637, 0002,4021,0603,0000,0022,1603,0707 ; 10689 SR_BLT(SRC),RETURN2 ; CONTINUE
; 10690
; 10691 ;BLT CONTINUED - HERE FOR DOWNWARD BLT (AC RH .GT. E)
;;10692 .IF/BACK.BLT
;;10693
;;10694 DN1: AR_MEM,SR_BLT(DST) ;WAIT FOR SOURCE DATA
;;10695 VMA_ARX,STORE,SKP INTRPT ;OK, START DST REF
;;10696 =0 SKP ARX LE BRX,J/DN3 ;CHECK FOR END CONDITION
;;10697 MEM_AR,J/BLTPF ;FINISH STORE, TAKE INTRPT
;;10698 =0
;;10699 DN3: MEM_AR,ARX_ARX-1, ;NOT END, LOOP
;;10700 SR_BLT(SRC),J/DOWN
;;10701 FIN STORE,I FETCH,J/NOP ;END
; 10702 .ENDIF/BACK.BLT
; 10703
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page 4
; BLT.MIC[10,5351] 17:35 6-Jul-83 EXTENDED ADDRESSING CODE FOR PXCT OF BLT
; 10704 .TOC "EXTENDED ADDRESSING CODE FOR PXCT OF BLT"
; 10705
; 10706 ;THIS MUST BE SEPERATE CODE TO MAKE PXCT WORK NOTE THAT PXCT ONLY CAN
; 10707 ;BE USED IN SECTION 0 AND IN FACT WILL EVENTUALLY BE REMOVED FROM THERE
; 10708 ;HOPEFULLY THIS CODE CAN GO AWAY THE SPEC IS THAT PXCT OF BLT IS NOT DEFINED
; 10709 ;AND WILL NOT BE USED ON EXTENDED ADDRESSING MACHINES.
; 10710
; 10711 .IF/BLT.PXCT
; 10712 =0*
U 1534, 3470,4023,2040,0000,0020,0050,0000 ; 10713 BLTPXCT:BR/AR,AR_MQ+1,CALL,J/BLTPX1 ;SRC-DST TO BR, E+1 IN AR
U 1536, 1771,0612,0004,0000,0332,0010,0000 ; 10714 UPPX: VMA_ARX+BR,LOAD AR,J/UP1PX ;NOT CLEAR CORE
; 10715 ;CORE CLEARING NOT LEGAL
; 10716
; 10717
; 10718 ;HERE TO SETUP FINAL AC
; 10719
U 3470, 3471,0602,2004,0000,3020,0610,0004 ; 10720 BLTPX1: ARL_ARR,AR_AR+BR ;FINAL DEST TO LH, SRC TO RH
; 10721 AR_AR SWAP,SR_BLT(PXCT SRC),
U 3471, 3466,4001,4000,0000,3000,1610,0307 ; 10722 J/ACSETU ;[334] Use common return above
; 10723
; 10724 ;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
; 10725
; 10726 =00
; 10727 =01
U 1771, 3472,3200,0003,0000,0022,1650,0107 ; 10728 UP1PX: AR_MEM,CALL,SR_BLT(PXCT DST),J/UP2PX ;GET SOURCE WORD
U 1772, 3472,0001,0000,0000,0000,1650,0107 ; 10729 CALL,SR_BLT(PXCT DST),J/UP2PX ;HERE TO STORE SAME SRC AGAIN
U 1773, 1771,0612,0004,0000,0332,0010,0000 ; 10730 VMA_ARX+BR,LOAD AR,J/UP1PX ;HERE TO GET NEXT SRC
; 10731
U 3472, 2640,3713,0000,0000,0316,7010,0000 ; 10732 UP2PX: VMA_ARX,STORE,SKP INTRPT ;OK, GET DST ADDRESS
; 10733 =0
U 2640, 2642,5102,0000,0000,0040,5310,0000 ; 10734 UP3PX: SKP ARX LT BRX,J/UP4PX ;CHECK FOR LAST TRANSFER
U 2641, 3265,4001,0003,0000,0002,0010,0000 ; 10735 MEM_AR,J/BLTPF ;FINISH THIS, GO SERVE INTRPT
; 10736 =0
U 2642, 0075,4001,0003,0000,0217,0010,0000 ; 10737 UP4PX: FIN STORE,I FETCH,J/NOP ;THAT'S ALL, FOLKS
; 10738 MEM_AR,ARX_ARX+1, ;STORE DST,
U 2643, 0002,4001,0603,0000,0022,1603,0307 ; 10739 SR_BLT(PXCT SRC),RETURN2 ; CONTINUE
; 10740 .ENDIF/BLT.PXCT
; 10741
; Number of microwords used:
; D words= 512
; U words= 1852, Highest= 2047
END
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-1
; Cross Reference Listing
(D) A 2155 #
ADDR 2159 # 4021 4037 4252 4619 4817 4819 4915 4916 4973 4974 4975
4976 4978 4979 4980 4981 4983 4984 4985 4986 4988 4989 4990
4991 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5018
5019 5020 5021 5022 5023 5027 5028 5029 5030 5031 5032 5033
5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045
5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057
5058 5062 5063 5209 5322 5859 5860
IMMED 2156 # 3965 4222 4223 4317 4318 4368 4369 4380 4381 4382 4383
4384 4385 4396 4397 4398 4399 4400 4401 4402 4403 4414 4415
4416 4417 4418 4419 4420 4421 4432 4433 4434 4435 4436 4437
4438 4439 4488 4489 4490 4491 4492 4493 4494 4495 4563 4564
4565 4566 4567 4568 4569 4570 4578 4579 4580 4581 4582 4583
4584 4585 4593 4594 4595 4596 4597 4598 4599 4600 4608 4609
4620 4789 4820 4917 4918 5210 5315 5316 5317 5318 5319 5320
5321 5480 5512 5585 5590 5869 5879 5942 5971 6128 7920 7922
7923 7924 7925 7933 7934 7935 7936 7942 7944 7945 7946 7947
7951 7952 7953 7954 7955 7956 7957 7958 7968 7969 7970 7971
7977 7978 7979 7980 7981 7982 7990 7992 7993 8001 8003 8004
IMMED-PF 2157 # 3961 3970 3975 3980 4045 4050 4055 4060 4065 4070 4075
4082 4087 4092 4097 4102 4107 4112 4117 4220 4221 4231 4241
4260 4270 4276 4286 4296 4306 4315 4316 4327 4337 4347 4357
4366 4367 4378 4379 4387 4388 5455 5467
RD-P-WR 2165 # 3967 3972 3977 3982 4020 4041 4042 4046 4047 4052 4057
4062 4067 4072 4077 4083 4084 4088 4089 4094 4099 4104 4109
4114 4119 4232 4233 4242 4243 4256 4257 4261 4262 4277 4278
4287 4288 4297 4298 4307 4308 4328 4329 4338 4339 4348 4349
4358 4359 4531 4532 4533 4534 4535 4536 4537 4538 4546 4547
4548 4549 4550 4551 4552 4553 5456 5457 5468 5469
RD-WR 2164 # 5481 5482 5513 5514 5586 5587 5591 5592 5865 5866 5870
5871 5875 5876 5880 5881 5938 5939 5943 5944 5967 5968 5972
5973 6593 6595 7940 7986 7988 7997 7999
READ 2162 # 4182 4183 4389 4390 4391 4392 4393 4394 4405 4406 4407
4408 4409 4410 4411 4412 4423 4424 4425 4426 4427 4428 4429
4430 4441 4442 4443 4444 4445 4446 4447 4448 4497 4498 4499
4500 4501 4502 4503 4504 4515 4516 4517 4518 4519 4520 4521
4522 4788 4818 5479 5511 5584 5589 5738 5739 5740 5741 5863
5864 5868 5873 5874 5878 5936 5937 5941 5965 5966 5970 6129
6162 6163 6165 6166 6373 6374 6375 6376 6594 6596 7219 7220
7221 7222 7921 7931 7932 7943 7966 7967 7989 8000
READ-PF 2163 # 3960 3969 3974 3979 4035 4044 4049 4054 4059 4064 4069
4074 4081 4086 4091 4096 4101 4106 4111 4116 4230 4240 4250
4259 4269 4275 4285 4295 4305 4326 4336 4346 4356 5454 5466
WR-TST 2161 # 3971 3976 3981 4051 4056 4061 4066 4071 4076 4093 4098
4103 4108 4113 4118 4201 4202 4271 4272 7918 7919 7929 7930
7941 7964 7965 7975 7976 7987 7991 7998 8002
(U) AC# 1893 # 3719 3770 4679 4694 4841 4932 4937 5089 5170 5175 5179
5183 5802 5818 5820 5840 6958 6981 6982 6986 6988 6990 7017
7021 7043 7053 7061 7228 7233 7235 7241 7244 7248 7253 7257
7261 7262 7263 7268 7269 7270 7272 7273 7299 7301 7303 7304
7313 7315 7316 7319 7336 7343 7344 7353 7377 7390 7391 7407
7411 7450 7451 7453 7457 7459 7484 7523 7530 7660 7661 7667
7668 7711 7712 7724 7725 7726 7773 7780 7858 7860 7871 7873
7892 7895 7901 8700 8702 8736 8760 8782 8797 8827 8904 8905
8934 8943 8944 8945 8950 8953 8969 9001 9011 9018 9026 9040
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-2
; Cross Reference Listing
9046 9051 9054 9055 9056 9071 9081 9082 9093 9108 9119 9125
9134 9149 9159 9171 9176 9180 9184 9198 9204 9212 9216 9218
9228 9235 9283 9310 9335 9366 9398 9399 9400 9429 9431 9435
9438 9440 9442 9444 9449 9451 9460 9510 9552 9555 9557 9560
9695 9696 9702 9706 9712 9714 9723 9728 9746 9770 9789 9842
9851 9870 9870 9889 9890 9903 9906 9911 9917 9938 9940 9993
9995 10004 10005 10014 10019 10020 10031 10032 10066 10068 10082 10083
10132 10135 10136 10137 10138 10146 10171 10173 10178 10182 10187 10189
10190 10254 10254 10280 10282 10283 10288 10289 10291 10294 10295 10297
10298 10301 10323 10354 10363 10440 10442 10476 10487 10489 10490 10494
10495 10504 10505 10549 10557
(U) AC-OP 1903 #
AC+# 1904 # 9429 9431 9435 9440 9442 9706 9870 9870 9890 9938 9940
10182 10254 10254 10280 10282 10283 10288 10289 10291 10294 10295 10297
10298 10301 10354 10363 10476 10487 10489 10490 10494 10495 10549
OR 1906 #
# 1905 #
(U) ACB 1889 #
MICROB 1891 # 3719 3770 4679 4694 4841 4932 4937 5089 5170 5175 5179
5183 5802 5818 5820 5840 6958 6981 6982 6986 6988 6990 7017
7021 7043 7053 7061 7228 7233 7235 7241 7244 7248 7253 7257
7261 7262 7263 7268 7269 7270 7272 7273 7299 7301 7303 7304
7313 7315 7316 7319 7336 7343 7344 7353 7377 7390 7391 7407
7411 7450 7451 7453 7457 7459 7484 7523 7530 7660 7661 7667
7668 7711 7712 7724 7725 7726 7773 7780 7858 7860 7871 7873
7892 7895 7901 8700 8702 8736 8760 8782 8797 8827 8934 9366
9398 9399 9438 9444 9449 9451 9460 9510 9552 9555 9557 9560
9695 9696 9702 9712 9714 9723 9728 9746 9770 9789 9842 9851
9889 9903 9906 9911 9917 9993 9995 10004 10005 10014 10019 10020
10031 10032 10066 10068 10082 10083 10132 10135 10136 10137 10138 10146
10171 10173 10178 10187 10189 10190 10323 10440 10442 10504 10505 10557
PAGB 1890 # 8904 8905 8943 8944 8945 8950 8953 8969 9001 9011 9018
9026 9040 9046 9051 9054 9055 9056 9071 9081 9082 9093 9108
9119 9125 9134 9149 9159 9171 9176 9180 9184 9198 9204 9212
9216 9218 9228 9235 9283 9310 9335 9400
(U) AD 1478 #
A 1516 # 3719 3777 3781 3786 3788 3799 3801 3832 4215 4526 4728
4732 4737 4751 4845 4895 4896 5094 5159 5165 5245 5360 5360
5375 5376 5377 5377 5380 5382 5383 5391 5393 5396 5398 5545
5546 5547 5549 5551 5562 5563 5564 5566 5574 5724 5725 5726
5727 5753 5773 5779 5794 5841 5999 5999 6011 6217 6223 6226
6254 6257 6282 6284 6303 6383 6391 6415 6428 6434 6437 6486
6489 6506 6508 6532 6534 6539 6543 6563 6807 6811 6816 6818
6827 6829 6857 6861 6866 6868 6876 6878 6938 6990 7018 7072
7136 7160 7228 7237 7239 7317 7326 7356 7364 7365 7366 7373
7384 7386 7414 7467 7469 7474 7479 7494 7513 7559 7677 7729
7731 7761 7763 7766 7770 7776 7782 7852 7857 7863 7866 7901
7905 8037 8038 8055 8058 8060 8062 8073 8075 8081 8108 8114
8133 8139 8181 8190 8465 8467 8478 8526 8545 8594 8598 8610
8622 8623 8624 8630 8680 8727 8768 8839 8904 8905 8931 8947
8948 8949 9016 9068 9113 9120 9175 9352 9354 9365 9414 9514
9517 9519 9522 9524 9540 9542 9745 9842 9844 9855 9857 9896
10044 10046 10235 10256 10291 10325 10326 10342 10399 10403 10458 10493
10544 10546 10582 10583 10610 10682 10732
A*2 1483 # 6340 6536 6570 7471 7502 7516 7775 8837 10136 10504
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-3
; Cross Reference Listing
A*2+1 1484 # 9836
A+1 1479 # 3712 3769 4008 4542 4635 4646 4839 4928 4930 4960 5173
5182 5223 5344 5345 5600 6189 6537 6549 6572 6774 6777 6784
6788 7485 7499 7550 7680 8034 8745 8772 8846 9130 9552 9555
9557 9560 9742 9898 9980 10010 10035 10225 10229 10233 10281 10284
10285 10289 10372 10407 10409 10533 10556 10659 10688 10713 10738
A+B 1487 # 3779 3783 3787 3789 3800 3803 5226 5229 5461 5552 5568
5570 5659 5664 5689 5692 5693 5696 5706 5720 5723 5760 5772
5833 5930 6087 6227 6337 6431 6478 6809 6813 6817 6819 6828
6831 6859 6863 6867 6869 6877 6880 6986 6991 7017 7021 7038
7040 7053 7154 7156 7159 7323 7342 7350 7390 7501 7532 7779
7889 8555 8593 8656 8796 9011 9026 9046 9093 9125 9412 9453
9518 9520 9523 9525 9541 9543 9729 9899 9919 9920 9992 10075
10082 10083 10097 10137 10146 10505 10557 10666 10672 10673 10680 10714
10720 10730
A+B+1 1488 # 4589 4613 4837 4842 9707 9714 9737 9749 9776 9790 9906
10066 10178 10187 10190 10440 10442 10585 10586 10604 10604 10606 10606
10661
A+XCRY 1480 # 5503
A-1 1498 # 4557 4605 4886 4905 5163 5225 5340 5346 7029 7051 8499
8746 8756 9740 9818 9818 9859 9859 9860 9860 10186 10576 10576
10588 10588 10603
A-B 1492 # 3998 4193 4209 5342 5474 5554 5556 5572 5613 5619 5656
5658 5661 5668 5673 5678 5690 5691 5694 5695 5709 5721 5722
5762 5813 5816 5831 5847 5851 5907 6083 6085 6253 6355 6388
6555 7008 7155 7157 7234 7248 7255 7286 7339 7403 7407 7491
7557 7742 7747 9438 9449 9451 9455 9699 9723 9726 9909 9933
9974 9978 10041 10649 10650 10684 10734
A-B-1 1491 # 7738 9997 10008
AND 1515 # 4237 4841 4932 4937 5170 5183 5521 5781 7457 7525 7667
8702 8736 8760 8782 8797 8827 9054 9134 9149 10171 10173
ANDC 1504 # 4302
ANDCA 1509 # 4266 4480 4701 5232 6275 6582 7554 8513 9372 9971
ANDCB 1514 # 4247 4679 4694 4753 5089 5175 5179 5234 6342 7372 7660
7893 7896 9366
B 1511 # 3756 3767 3826 3827 3860 3871 3882 3893 3904 4014 4026
4029 4128 4130 4133 4136 4139 4143 4191 4192 4207 4208 4574
4604 4664 4675 4698 4706 4717 4718 4719 4722 4734 4748 4847
4860 4860 4883 4885 4888 4889 4891 4892 4897 4907 4908 4909
4943 4953 5086 5152 5156 5166 5169 5330 5333 5351 5351 5371
5372 5373 5388 5389 5406 5408 5416 5424 5426 5430 5436 5439
5448 5473 5496 5519 5597 5602 5615 5620 5622 5626 5711 5748
5750 5754 5778 5791 5792 5795 5802 5804 5806 5807 5809 5811
5811 5820 5821 5823 5840 5843 5844 5846 5850 5890 5913 5915
5956 5959 5986 6147 6206 6218 6259 6261 6280 6288 6290 6293
6336 6386 6407 6421 6421 6430 6436 6438 6439 6450 6450 6464
6465 6479 6499 6501 6511 6515 6544 6579 6679 6779 6780 6781
6782 6787 6790 6836 6837 6885 6886 6897 6899 6922 6922 6928
6966 6981 7027 7043 7061 7073 7243 7252 7253 7256 7257 7258
7260 7263 7267 7268 7272 7275 7297 7299 7303 7304 7311 7314
7315 7316 7320 7321 7322 7334 7338 7340 7344 7347 7351 7371
7378 7381 7382 7392 7396 7451 7454 7455 7480 7484 7500 7523
7530 7531 7552 7709 7711 7712 7724 7725 7726 7730 7741 7746
7748 7758 7771 7854 7860 7868 7873 7877 7879 7880 7888 7902
8017 8047 8090 8099 8126 8146 8193 8468 8502 8503 8511 8512
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-4
; Cross Reference Listing
8580 8618 8678 8706 8710 8744 8752 8753 8769 8770 8771 8773
8847 8901 8903 8944 8951 8966 8998 9001 9012 9013 9014 9018
9033 9040 9051 9053 9055 9065 9071 9072 9081 9082 9095 9108
9119 9159 9176 9184 9198 9204 9212 9216 9218 9228 9235 9259
9263 9283 9290 9294 9298 9306 9310 9315 9320 9335 9376 9398
9400 9405 9429 9448 9509 9510 9513 9546 9547 9586 9589 9591
9692 9694 9695 9706 9708 9715 9718 9735 9783 9789 9812 9828
9829 9838 9839 9839 9854 9854 9870 9870 9890 9897 9903 9908
9916 9925 9931 9965 9968 9970 9982 9984 10006 10018 10020 10031
10032 10034 10038 10069 10078 10087 10088 10089 10094 10134 10148 10150
10152 10176 10177 10182 10189 10200 10201 10201 10227 10228 10254 10254
10282 10283 10316 10331 10336 10340 10344 10354 10363 10379 10428 10454
10457 10459 10467 10474 10476 10483 10485 10487 10502 10502 10507 10511
10512 10528 10534 10549 10559 10561 10571 10573 10581 10598 10609 10612
10643 10648 10677 10678 10728
CRY A EQ -1 1518 # 10085
CRY A GE B 1521 # 5998 6978 9863
CRY A#0 1520 # 6251 6524 7010 7463 9780 9977 10517 10558 10575
CRY A.B#0 1519 # 4477 4752 8022 8024 9139 10138
EQV 1507 # 4312
NOR 1505 # 7661
OR 1512 # 4292 4482 5100 5178 7549 8189 8514 8537 9056 9147 9171
9444 9454 9458 9730 9924
ORC 1501 # 4363
ORCA 1502 # 4353
ORCB 1508 # 4333 7459 7668
ORCB+1 1490 # 4782 8026
SETCA 1500 # 4343 4469 4472 6526 7465 9085 9701 10013
SETCB 1506 # 4322 5708 5815 6550 6550 6553 6553 7486 7486 7489 7489
9267 9460 9588 9700 9728 9746 9911 9917 10005
XCRY-1 1495 # 3915 3948 5228 5411 5412 5423 5507 5633 5636 5783 5848
5921 5922 6172 6193 6220 6409 6412 7306 7308 7520 7862 7869
7883 9935
XOR 1510 # 4282 4481 4508 5428 6398 7379 8793 9815 9851
0S 1513 # 4160 4174 4195 4212 4227 4749 4764 4801 5161 5350 5434
5540 5540 5579 5764 5764 5771 5818 5904 5906 5954 6012 6225
6317 6435 6469 6469 6566 6566 6902 6903 6959 6982 6982 7042
7060 7137 7152 7241 7336 7348 7348 7359 7496 7496 8461 8476
8518 8524 8528 8532 8535 8571 8571 8574 8582 8599 8602 8611
8620 8635 8658 8665 8667 8669 8671 8719 8726 8767 8788 8794
8836 8945 8961 9374 9437 9702 9773 9841 9889 9889 9894 9894
10071 10071 10076 10441
1S 1503 # 3714 3754 3829 4154 4161 4168 4175 4373 4629 4676 6320
6802 6838 6852 6887 7368 9515 9548 9562 9587 9705 9710 9900
9901 10004 10224 10239 10299 10302
(U) ADA 1524 #
AR 1525 # 3719 3769 3799 3800 3801 3803 4237 4247 4266 4282 4292
4302 4312 4322 4333 4343 4353 4363 4477 4480 4481 4482 4508
4526 4542 4557 4605 4701 4728 4732 4752 4753 4841 4845 4886
4896 4905 4932 4937 5100 5170 5178 5226 5229 5232 5234 5245
5344 5360 5375 5377 5382 5393 5428 5461 5474 5503 5521 5545
5546 5547 5549 5551 5552 5554 5556 5562 5563 5564 5566 5568
5570 5572 5574 5619 5656 5659 5664 5673 5689 5690 5691 5692
5693 5694 5695 5696 5706 5709 5720 5721 5722 5723 5760 5762
5772 5781 5831 5833 5930 6011 6085 6087 6227 6254 6257 6303
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-5
; Cross Reference Listing
6337 6340 6342 6398 6431 6437 6478 6489 6532 6534 6536 6537
6539 6549 6563 6570 6582 6774 6777 6784 6788 6827 6828 6829
6831 6876 6877 6878 6880 6986 6991 7010 7017 7021 7053 7136
7154 7155 7156 7157 7159 7239 7248 7286 7323 7339 7342 7350
7364 7365 7366 7373 7379 7390 7407 7457 7459 7467 7469 7471
7474 7485 7494 7501 7502 7513 7516 7525 7554 7559 7660 7661
7667 7668 7680 7729 7731 7738 7742 7747 7766 7770 7775 7776
7779 7782 7852 7863 7866 7889 7892 7895 7905 8022 8024 8034
8037 8038 8055 8058 8060 8062 8073 8075 8081 8108 8114 8133
8139 8181 8189 8190 8465 8467 8514 8526 8545 8555 8593 8598
8610 8622 8623 8624 8630 8656 8702 8727 8745 8746 8756 8772
8793 8796 8797 8839 8846 8904 8905 8947 9011 9016 9026 9046
9054 9056 9068 9093 9120 9134 9139 9147 9149 9171 9372 9444
9449 9453 9454 9458 9514 9540 9541 9542 9543 9699 9726 9729
9730 9742 9749 9815 9818 9851 9859 9860 9899 9909 9919 9920
9924 9971 9977 9992 9997 10010 10035 10075 10082 10083 10097 10136
10137 10138 10146 10171 10173 10186 10225 10229 10233 10235 10281 10284
10289 10291 10326 10372 10399 10403 10407 10409 10442 10458 10504 10505
10517 10533 10544 10546 10557 10558 10575 10649 10650 10666 10720
ARX 1526 # 3777 3779 3781 3783 3786 3787 3788 3789 4679 4694 4737
4895 5089 5094 5175 5183 5225 5999 6251 6391 6807 6809 6811
6813 6816 6817 6818 6819 6857 6859 6861 6863 6866 6867 6868
6869 7038 7040 7072 7237 7317 7326 7532 7549 8513 8736 8760
8782 8827 9113 9125 9175 9366 9412 9414 9455 9517 9518 9519
9520 9522 9523 9524 9525 9552 9555 9557 9560 9740 9745 9780
9844 9855 9857 10008 10013 10285 10325 10582 10610 10672 10673 10680
10682 10714 10730 10732
MQ 1527 # 3712 5380 5396 5724 5725 5726 5727 5773 5779 5794 5841
6226 6284 6434 6486 6506 6508 6524 6526 6938 6990 7160 7356
7372 7384 7386 7414 7463 7465 7677 8478 8594 8768 8837 9836
9842 10044 10046 10085 10256 10493 10576 10583 10588 10603 10659 10713
PC 1528 # 3832 4635 4646 4751 4839 4928 4930 4960 5159 5165 5179
5182 8931 8949 9352 9354 9365
(U) ADA EN 1529 #
EN 1530 # 4215 5340 5342 5345 5346 5360 5376 5377 5383 5391 5398
5753 5999 6217 6223 6282 6383 6415 6428 6543 7018 7029 7051
7228 7479 7761 7763 7857 7901 8537 8680 8948 9085 9701 9818
9859 9860 9896 10342 10576 10588 10684 10688 10734 10738
0S 1531 # 3998 4008 4193 4209 4589 4613 4782 4837 4842 5163 5173
5223 5600 5613 5658 5661 5668 5678 5813 5816 5847 5851 5907
5998 6083 6189 6253 6275 6355 6388 6555 6572 6978 7008 7234
7253 7255 7257 7263 7268 7272 7299 7303 7304 7315 7316 7344
7403 7451 7491 7499 7523 7530 7550 7557 7711 7712 7724 7725
7726 8026 8499 9130 9438 9451 9707 9714 9723 9737 9776 9790
9863 9898 9906 9933 9974 9978 9980 10041 10066 10178 10187 10190
10440 10556 10585 10586 10604 10604 10606 10606 10661
(U) ADB 1533 #
AR*4 1537 # 4782 5342 5658 5661 5802 5907 5959 6083 6253 6259 6261
6275 6280 6293 6355 6388 7234 7258 7267 7403 7500 7557 7748
8468 8511 8512 8706 8710 8752 8771 8901 8903 9899 9908 9919
9978 9992 10005 10008 10075 10089 10097 10336 10340 10344 10379
BR 1536 # 3998 4193 4209 4675 4698 4701 4748 4752 4753 4847 4897
4909 5086 5100 5152 5166 5169 5178 5416 5426 5428 5430 5436
5439 5448 5474 5521 5552 5556 5568 5572 5613 5615 5619 5622
5656 5659 5664 5668 5673 5678 5689 5690 5691 5692 5693 5694
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-6
; Cross Reference Listing
5695 5696 5706 5709 5720 5721 5722 5723 5760 5762 5772 5781
5791 5795 5811 5811 5813 5815 5816 5821 5823 5831 5833 5846
5847 5850 5851 5890 5998 6206 6218 6227 6336 6337 6342 6421
6421 6431 6450 6450 6478 6544 6550 6550 6553 6553 6555 6579
6582 6779 6780 6781 6782 6790 6966 6978 7008 7154 7155 7156
7157 7159 7252 7255 7256 7286 7311 7323 7338 7339 7342 7350
7371 7372 7378 7480 7486 7486 7489 7489 7491 7501 7525 7531
7532 7549 7552 7554 7738 7741 7742 7746 7747 7779 7860 7873
7879 7889 8022 8024 8026 8047 8090 8099 8126 8146 8189 8193
8502 8503 8513 8514 8537 8555 8580 8593 8618 8656 8769 8770
8773 8793 8796 8847 8944 8966 9012 9014 9065 9139 9147 9263
9290 9315 9372 9405 9412 9453 9455 9509 9510 9513 9699 9700
9707 9726 9729 9737 9749 9776 9815 9838 9854 9854 9863 9903
9916 9920 9925 9931 9933 9971 9974 9997 10038 10041 10069 10078
10094 10467 10485 10487 10534 10598 10604 10604 10606 10606 10612 10648
10649 10650 10661 10666 10672 10673 10680 10684 10714 10720 10730 10734
BR*2 1535 # 5424 5554 5570 5807 5915 5930 6085 6087 6288 6290 8951
9984
FM 1534 # 3756 3767 3779 3783 3787 3789 3800 3803 3826 3827 3860
3871 3882 3893 3904 4014 4026 4029 4128 4130 4133 4136 4139
4143 4191 4192 4207 4208 4237 4247 4266 4282 4292 4302 4312
4322 4333 4353 4363 4477 4480 4481 4482 4508 4574 4589 4604
4613 4664 4679 4694 4706 4717 4718 4719 4722 4734 4837 4841
4842 4860 4860 4883 4885 4888 4889 4891 4892 4907 4908 4932
4937 4943 4953 5089 5156 5170 5175 5179 5183 5226 5229 5232
5234 5330 5333 5351 5351 5371 5372 5373 5388 5389 5406 5408
5461 5473 5496 5519 5597 5602 5620 5626 5708 5711 5748 5750
5754 5778 5792 5804 5806 5809 5820 5840 5843 5844 5913 5956
5986 6147 6386 6398 6407 6430 6436 6438 6439 6464 6465 6479
6499 6501 6511 6515 6679 6787 6809 6813 6817 6819 6828 6831
6836 6837 6859 6863 6867 6869 6877 6880 6885 6886 6897 6899
6922 6922 6928 6981 6986 6991 7017 7021 7027 7038 7040 7043
7053 7061 7073 7243 7248 7253 7257 7260 7263 7268 7272 7275
7297 7299 7303 7304 7314 7315 7316 7320 7321 7322 7334 7340
7344 7347 7351 7379 7381 7382 7390 7392 7396 7407 7451 7454
7455 7457 7459 7484 7523 7530 7660 7661 7667 7668 7709 7711
7712 7724 7725 7726 7730 7758 7771 7854 7868 7877 7880 7888
7892 7895 7902 8017 8678 8702 8736 8744 8753 8760 8782 8797
8827 8998 9001 9011 9013 9018 9026 9033 9040 9046 9051 9053
9054 9055 9056 9071 9072 9081 9082 9093 9095 9108 9119 9125
9134 9149 9159 9171 9176 9184 9198 9204 9212 9216 9218 9228
9235 9259 9267 9283 9294 9298 9306 9310 9320 9335 9366 9376
9398 9400 9429 9438 9444 9448 9449 9451 9454 9458 9460 9518
9520 9523 9525 9541 9543 9546 9547 9586 9588 9589 9591 9692
9694 9695 9706 9708 9714 9715 9718 9723 9728 9730 9735 9746
9783 9789 9790 9812 9828 9829 9839 9839 9851 9870 9870 9890
9897 9906 9909 9911 9917 9924 9965 9968 9970 9982 10006 10018
10020 10031 10032 10034 10066 10082 10083 10087 10088 10134 10137 10138
10146 10148 10150 10152 10171 10173 10176 10177 10178 10182 10187 10189
10190 10200 10201 10201 10227 10228 10254 10254 10282 10283 10316 10331
10354 10363 10428 10440 10442 10454 10457 10459 10474 10476 10483 10502
10502 10505 10507 10511 10512 10528 10549 10557 10559 10561 10571 10573
10581 10585 10586 10609 10643 10677 10678 10728
(U) AR 1545 #
AD 1549 # 3712 3769 3777 3779 3781 3783 3786 3787 3788 3789 3860
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-7
; Cross Reference Listing
3915 3948 3998 4014 4026 4029 4130 4133 4139 4160 4161 4174
4175 4193 4195 4209 4212 4227 4237 4247 4266 4282 4292 4302
4312 4322 4333 4343 4353 4363 4373 4480 4481 4482 4542 4557
4574 4589 4604 4605 4613 4664 4694 4751 4753 4764 4801 4839
4841 4883 4885 4886 4897 4928 4930 4932 4937 4943 4953 4960
5089 5100 5159 5161 5175 5178 5179 5183 5226 5229 5330 5333
5350 5351 5373 5380 5389 5396 5406 5408 5411 5412 5423 5424
5426 5439 5461 5473 5474 5496 5507 5519 5540 5600 5602 5620
5622 5626 5633 5636 5668 5678 5693 5694 5695 5696 5706 5709
5724 5725 5726 5727 5754 5760 5762 5764 5772 5773 5778 5779
5783 5791 5794 5795 5804 5809 5813 5815 5816 5820 5821 5823
5840 5841 5843 5844 5846 5847 5848 5850 5851 5890 5913 5915
5921 5922 5956 5986 6147 6172 6206 6218 6220 6225 6226 6227
6259 6288 6317 6336 6337 6407 6409 6412 6421 6430 6431 6434
6438 6439 6450 6464 6465 6469 6478 6479 6486 6506 6508 6511
6515 6526 6537 6544 6549 6550 6553 6555 6566 6679 6779 6780
6781 6782 6784 6788 6902 6903 6938 6959 6966 6981 6982 6986
6990 6991 7017 7021 7027 7038 7040 7043 7053 7060 7061 7073
7137 7152 7156 7157 7159 7160 7241 7243 7248 7252 7253 7255
7256 7257 7260 7263 7268 7272 7297 7299 7303 7304 7306 7308
7311 7314 7316 7317 7320 7321 7322 7323 7326 7336 7338 7339
7340 7342 7344 7347 7348 7350 7351 7356 7371 7378 7384 7386
7390 7392 7396 7407 7414 7451 7455 7457 7459 7465 7480 7485
7486 7489 7491 7496 7501 7520 7523 7525 7530 7531 7532 7549
7660 7661 7667 7668 7677 7711 7712 7724 7725 7726 7741 7746
7747 7779 7860 7862 7869 7873 7877 7879 7883 7889 7892 7895
7902 8034 8047 8090 8099 8126 8146 8193 8461 8476 8502 8513
8514 8518 8528 8532 8555 8571 8574 8580 8582 8593 8599 8602
8611 8618 8620 8635 8656 8658 8665 8667 8669 8671 8706 8710
8719 8726 8745 8746 8752 8767 8768 8771 8788 8794 8796 8836
8944 8945 8961 8966 9001 9012 9018 9051 9054 9055 9056 9071
9082 9108 9130 9134 9147 9149 9159 9171 9175 9176 9198 9259
9263 9267 9290 9294 9298 9306 9310 9315 9320 9335 9352 9354
9366 9374 9398 9400 9405 9412 9414 9429 9437 9444 9448 9449
9451 9453 9454 9455 9458 9460 9509 9513 9586 9588 9589 9591
9695 9699 9700 9702 9706 9708 9710 9714 9715 9718 9723 9726
9728 9729 9730 9735 9742 9746 9773 9783 9789 9790 9812 9838
9839 9842 9851 9854 9855 9857 9870 9889 9894 9897 9898 9901
9903 9906 9911 9916 9917 9919 9924 9925 9931 9933 9935 9965
9968 9971 9974 9982 10004 10006 10020 10032 10034 10035 10038 10041
10044 10046 10066 10069 10071 10076 10078 10083 10094 10134 10137 10150
10152 10173 10176 10177 10182 10186 10187 10189 10190 10200 10201 10225
10228 10229 10233 10254 10256 10281 10283 10284 10285 10289 10354 10363
10372 10407 10409 10428 10441 10457 10467 10487 10493 10502 10511 10528
10533 10549 10559 10561 10571 10573 10576 10583 10585 10586 10588 10603
10606 10612 10643 10649 10650 10659 10666 10713 10720
AD*.25 1554 # 5551 5552 5554 5556 5568 5570 5572 5574 5658 5661 5907
5930 5999 6011 6083 6253 6254 6284 6303 6340 6355 6388 6532
6534 6536 6563 6570 7234 7365 7403 7467 7469 7471 7494 7502
7513 7516 7557 7766 7775 7776 8901 8903 9113 9978 9980 9984
10008 10075 10136 10504
AD*2 1552 # 3719 5344 5371 5545 5546 5547 5549 5562 5563 5564 5566
5597 5656 5659 5664 5673 5689 5690 5691 5692 5720 5721 5722
5723 5750 5831 5833 6257 6261 6276 6280 6290 6293 6386 6499
6501 6539 7072 7154 7155 7258 7267 7275 7334 7364 7366 7381
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-8
; Cross Reference Listing
7382 7454 7474 7748 8630 8837 9899 9920 9992 10097 10336 10344
10379 10556
ADX 1553 # 4701 5169 5346 5360 5376 5377 5383 5391 5398 5436 5613
5615 5811 6223 6282 6415 6428 6543 7018 7051 7479 8189 8770
8773 8847 9372 9510 9701 9707 9737 9749 9776 9818 9859 9860
9863 10485 10534 10604
AR 1546 # 4008 4128 4140 4153 4154 4681 4698 5223 5228 8015 8131
8179 8524 8608 9370
ARMM 1547 # 3955 4680 4697 4951 4956 5177 5190 5191 5192 6341 6571
6789 7285 7337 7389 7524 7546 7737 7739 7745 7778 7859 7872
8124 8127 8477 8489 8512 8572 8723 8787 8851 9183 9369 9431
9511 9697 9887 9890 9893 10007 10098 10163 10164 10165 10166 10167
10168 10243 10286 10288 10420
CACHE 1548 # 8166
EBUS 1550 # 3723 3725 4803 5163 8058 8121 8136 8137 8184 8186 8188
8499 8516 8530 8534 8585 8586 8587 8588 8601 8603 8613 8629
8638 8639 8640 8641 8920 8935
SH 1551 # 3753 3829 3949 3987 4136 4143 4144 4167 4168 4213 4472
4475 4663 4745 4749 4848 4853 4855 4954 4955 5116 5166 5180
5185 5337 5339 5358 5363 5384 5399 5430 5434 5447 5448 5506
5789 5790 5792 5802 5805 5807 5849 5902 5927 5953 5982 5997
6251 6424 6426 6427 6435 6436 6540 6542 6567 6579 6791 6838
6887 6910 6941 6943 6988 7136 7264 7269 7315 7476 7478 7497
7551 7679 7681 7749 7780 7880 7885 7888 8107 8138 8465 8467
8503 8538 8622 8623 8659 8786 8789 8904 8905 8919 8948 8950
8953 8969 9011 9014 9041 9046 9120 9125 9184 9204 9212 9215
9217 9356 9420 9438 9442 9446 9515 9548 9552 9555 9557 9560
9696 9711 9781 9841 9900 9902 9936 9972 9993 9995 10019 10077
10092 10160 10193 10230 10235 10291 10316 10324 10325 10326 10332 10351
10355 10384 10403 10433 10481 10489 10543 10544 10545 10546 10590 10592
10648 10667 10721
(U) AR CTL 1944 #
AR0-8 LOAD 1945 # 6341 6571
AR9-17 LOAD 1946 #
ARL LOAD 1948 #
ARR LOAD 1947 # 8124
(U) AR0-8 1919 #
LOAD 1920 # 4009 5174 5341 5903 5906 5914 5954 5957 5983 6082 6148
6380 6449 6483 6487 6605 6660 6784 6786 6963 6980 6985 7041
7074 7127 7129 7774 7781 7886 8511 8855 8937 8946 8947 8968
9185 9426 9703 9742 9744 9892 9969 10012 10192 10215 10225 10232
10262 10373 10374 10414 10415 10533 10562
(U) ARL 1934 #
AD 1938 # 4008 4128 4136 4143 4154 4168 4698 5166 5173 5228 5330
5396 5602 6147 6421 6506 6508 6790 6991 7384 7386 8503 9562
9589 10044 10046 10648
AD*.25 1943 #
AD*2 1941 # 5597 5665 5674 5750
ADX 1942 # 8537 8948
ARL 1935 # 4014 4029 4130 4144 4174 4175 5180 7040 8138 8189 8465
ARMM 1936 # 4009 5174 5341 5903 5906 5914 5954 5957 5983 6082 6148
6380 6449 6483 6487 6605 6660 6784 6786 6963 6980 6985 7041
7074 7127 7129 7519 7774 7781 7886 8511 8855 8937 8946 8947
8968 9185 9426 9703 9742 9744 9892 9969 10012 10192 10215 10225
10232 10262 10373 10374 10414 10415 10533 10562
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-9
; Cross Reference Listing
CACHE 1937 #
EBUS 1939 #
SH 1940 # 4133 4139 4140 4160 4161 4681 4960 5223 5337 5927 6251
6424 8015 8126 8131 8179 8524 8605 8608 9084 9370 9414 10666
10720
(U) ARMM 1633 #
EXP_SIGN 1635 # 5903 5906 5914 5954 5957 5983 6082 6148 6380 6449 6483
7781 7886
SCAD EXP 1636 # 6341 6487 6571 7127 7129 7519 7774 8723 8787 8851 8946
8947 8968 9183 9511 9703 9890 9892 9893 9969 10012
SCAD POS 1637 # 4009 5174 5341 6605 6660 6784 6786 6789 6963 6980 6985
7041 7074 7546 8511 8855 8937 9185 9426 9431 9742 9744 10098
10163 10164 10165 10166 10167 10168 10192 10215 10225 10232 10243 10262
10286 10288 10373 10374 10414 10415 10420 10533 10562
# 1634 # 3955 5190 5191 5192 7285 7337 7389 7524 7737 7739 7745
7778 7859 7872 8127 8477 8489 8572 9697 9887 10007
(U) ARX 1555 #
AD 1558 # 3714 3756 4207 4208 4635 4646 4679 4695 4749 4837 4842
4905 5163 5182 5223 5227 5245 5351 5360 5372 5375 5377 5382
5388 5393 5416 5434 5540 5748 5764 5792 5806 5807 5811 5818
5904 5906 5954 6012 6193 6320 6435 6436 6469 6566 6572 6982
7042 7136 7315 7348 7368 7496 7550 7709 7861 7888 8465 8499
8524 8535 8571 8702 8736 8760 8782 8797 8827 8904 8905 8947
8949 9014 9081 9120 9204 9212 9216 9218 9283 9365 9367 9438
9587 9694 9705 9740 9746 9818 9839 9841 9859 9860 9870 9889
9890 9894 9900 9970 10005 10010 10031 10071 10088 10171 10201 10227
10235 10254 10282 10291 10316 10363 10476 10502 10604
ADX 1562 # 4193 4209 4748 5086 5152 5340 5345 5424 5430 5448 5693
5694 5695 5696 5706 5709 5760 5762 5772 5813 5815 5816 5821
5823 5846 5847 6259 6288 6342 6421 6431 6450 6478 6537 6550
6553 6555 6579 6582 7008 7029 7311 7323 7350 7371 7486 7489
7491 7500 7501 7552 7554 8593 8656 8769 9263 9290 9315 9707
9737 9776 9854 9903 9916 9919 9925 9931 9933 9980 10035 10038
10041 10069 10078 10094 10340 10576 10588 10606 10612 10688 10738
ADX*.25 1563 # 5551 5552 5554 5556 5568 5570 5572 5574 5658 5661 5930
5999 6011 6083 6189 6253 6254 6303 6388 6532 6534 6536 6563
6570 7234 7365 7403 7467 7469 7471 7494 7502 7513 7516 7557
7766 8901 8903 9836 9978 9984 10075 10136 10504
ADX*2 1561 # 4215 5342 5545 5546 5547 5549 5562 5563 5564 5566 5657
5660 5664 5673 5689 5690 5691 5692 5720 5721 5722 5723 5753
5802 5831 5833 5850 5851 6217 6257 6261 6276 6280 6290 6293
6383 6539 7154 7155 7228 7364 7366 7474 7499 7761 7763 7857
7901 8511 8512 8680 9085 9896 9920 9992 10097 10342
CACHE 1557 #
MQ 1559 # 5184 5392 5398 5439 5707 5710 5790 5921 5927 6416 6424
6427 6430 6511 6542 6544 7010 7392 7478 7480 9522 9523 9524
9525 9540 9541 9852 10379 10590
SH 1560 # 4026 4028 4720 4723 4772 4943 5116 5179 5380 5396 5406
5408 5411 5412 5426 5442 5613 5615 5626 5633 5636 5754 5791
5795 5803 5809 5820 5922 5924 5925 6171 6206 6220 6226 6284
6407 6409 6412 6515 6611 6674 6787 6902 6903 6938 6941 7132
7152 7160 7304 7306 7308 7310 7317 7322 7396 7455 7520 7522
7535 7537 7734 7772 7869 7883 8137 8185 8187 8488 8490 8518
8532 8536 8602 8620 8635 8665 8667 8669 8671 8726 8768 8788
8826 8837 8856 8953 9003 9013 9088 9113 9129 9174 9352 9354
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-10
; Cross Reference Listing
9454 9699 9702 9735 9773 9812 9837 9855 9857 9909 9965 9968
10034 10076 10089 10149 10151 10223 10228 10239 10283 10298 10301 10330
10402 10428 10435 10528 10642
(D) B 2167 # 3965 4020 4182 4183 4818 4819 4978 4983 4984 4985 4986
4988 4989 4990 4991 5000 5001 5002 5003 5210 5315 5316 5317
5319 5738 5739 5740 6129 6373 6374 6375 6376 7219 7220 7221
7222 7919 7921 7922 7923 7930 7932 7933 7934 7941 7943 7944
7945 7964 7965 7966 7967 7968 7969 7975 7976 7979 7980 7987
7989 7990 7991 7998 8000 8001 8002
AC 2171 # 3960 3961 3969 3970 3974 3975 3979 3980 4035 4037 4044
4045 4049 4050 4054 4055 4059 4060 4064 4065 4069 4070 4074
4075 4081 4082 4086 4087 4091 4092 4096 4097 4101 4102 4106
4107 4111 4112 4116 4117 4220 4221 4230 4231 4240 4241 4250
4252 4259 4260 4275 4276 4285 4286 4295 4296 4305 4306 4315
4316 4326 4327 4336 4337 4346 4347 4356 4357 4366 4367 4789
4998 5454 5455 5466 5467 5479 5480
BOTH 2173 # 4223 4233 4243 4257 4262 4278 4288 4298 4308 4318 4329
4339 4349 4359 4369 5457 5469 5482
DBL AC 2168 # 5511 5512 5584 5585 5589 5590
DBL BOTH 2169 # 5514 5587 5592
MEM 2172 # 3971 3976 3981 4041 4046 4051 4056 4061 4066 4071 4076
4083 4088 4093 4098 4103 4108 4113 4118 4222 4232 4242 4256
4261 4271 4272 4277 4287 4297 4307 4317 4328 4338 4348 4358
4368 5456 5468 5481 5513 5586 5591 7929
SELF 2170 # 3967 3972 3977 3982 4042 4047 4052 4057 4062 4067 4072
4077 4084 4089 4094 4099 4104 4109 4114 4119
SJC- 2175 # 4488 4497 4515 4531 4546 4563 4578 4593
SJCA 2179 # 4492 4501 4519 4535 4550 4567 4582 4597
SJCE 2177 # 4490 4499 4517 4533 4548 4565 4580 4595 4975
SJCG 2182 # 4495 4504 4522 4538 4553 4570 4585 4600 4981
SJCGE 2180 # 4493 4502 4520 4536 4551 4568 4583 4598 4608 4979
SJCL 2176 # 4489 4498 4516 4532 4547 4564 4579 4594 4609 4974
SJCLE 2178 # 4491 4500 4518 4534 4549 4566 4581 4596 4976
SJCN 2181 # 4494 4503 4521 4537 4552 4569 4584 4599 4980
(D) B0 2183 # 5863 5864 5865 5866 5869 5873 5874 5875 5876 5879
CRY0(0) 2184 # 4380 4381 4382 4383 4389 4390 4391 4392 4398 4399 4400
4401 4407 4408 4409 4410 4416 4417 4418 4419 4425 4426 4427
4428 4434 4435 4436 4437 4443 4444 4445 4446 7924 7935 7940
7946 7970 7981 7986 7988 7992 7997 7999 8003
CRY0(1) 2185 # 4384 4385 4393 4394 4396 4397 4402 4403 4405 4406 4411
4412 4414 4415 4420 4421 4423 4424 4429 4430 4432 4433 4438
4439 4441 4442 4447 4448 4620 7925 7936 7947 7971 7982 7993
8004
(D) B1-2 2186 # 4380 4381 4382 4383 4384 4385 4389 4390 4391 4392 4393
4394 4396 4397 4398 4399 4400 4401 4402 4403 4405 4406 4407
4408 4409 4410 4411 4412 4414 4415 4416 4417 4418 4419 4420
4421 4423 4424 4425 4426 4427 4428 4429 4430 4432 4433 4434
4435 4436 4437 4438 4439 4441 4442 4443 4444 4445 4446 4447
4448 4620 7924 7925 7935 7936 7940 7946 7947 7970 7971 7981
7982 7986 7988 7992 7993 7997 7999 8003 8004
AC 2187 # 5863 5868 5869 5873 5878 5879 5936 5941 5942 5965 5966
5970 5971 6128 6166
BOTH 2189 # 5866 5871 5876 5881 5939 5944 5968 5973
MEM 2188 # 5865 5870 5875 5880 5938 5943 5967 5972
(U) BR 1564 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-11
; Cross Reference Listing
AR 1565 # 3860 3871 3882 3893 3904 3955 3990 3993 4216 4627 4629
4672 4696 4751 4795 4839 4883 4888 4891 4953 5089 5176 5411
5423 5424 5473 5540 5596 5600 5601 5707 5710 5750 5789 5805
5807 5811 5813 5815 5816 5821 5823 5846 5847 5913 5915 5985
6217 6218 6280 6293 6317 6320 6386 6391 6399 6450 6526 6542
6605 6660 6788 6958 6963 6966 6988 7018 7027 7051 7237 7239
7244 7251 7284 7307 7311 7316 7321 7338 7340 7347 7368 7371
7380 7465 7472 7478 7518 7530 7531 7532 7736 7741 7743 7746
7777 7856 7870 7877 7879 8015 8033 8105 8115 8131 8134 8162
8179 8183 8461 8512 8513 8516 8524 8528 8574 8597 8599 8608
8611 8674 8676 8787 8944 8969 8999 9012 9050 9132 9215 9217
9235 9400 9451 9460 9692 9723 9812 9828 9853 9862 9887 9898
9906 9916 9969 9971 9973 9980 9982 10038 10041 10065 10455 10457
10467 10481 10572 10584 10586 10608 10642 10659 10713
(U) BRX 1566 #
ARX 1567 # 3753 4216 4694 5157 5416 5423 5426 5439 5540 5626 5633
5636 5668 5669 5677 5678 5707 5710 5754 5803 5811 5813 5815
5816 5821 5823 5846 5847 5913 5985 6218 6280 6293 6317 6320
6386 6391 6399 6450 6526 6572 6980 7043 7054 7307 7311 7318
7321 7347 7368 7371 7380 7465 7472 7518 8187 8535 8674 8676
8709 8769 8844 9367 9703 9746 9770 9828 9853 9862 9898 9906
9916 9970 9980 9982 10038 10041 10065 10455 10508 10572 10584 10586
10608 10642
(U) CALL 1777 #
CALL 1778 # 3715 4192 4208 4680 4697 4730 4750 4802 4845 5088 5093
5094 5153 5158 5162 5164 5427 5498 5520 5598 5602 5665 5674
5752 5771 5779 5796 5819 5835 5841 5958 5987 5989 6382 6407
6471 6486 6499 6501 6507 6509 6517 6606 6612 6614 6661 6675
6680 6959 6963 6980 6985 7007 7060 7062 7135 7227 7232 7236
7240 7243 7250 7255 7261 7270 7297 7300 7312 7318 7341 7345
7349 7352 7360 7370 7378 7381 7382 7385 7387 7397 7406 7414
7735 7765 7856 7878 7904 8011 8017 8048 8105 8113 8115 8120
8123 8125 8131 8134 8160 8180 8183 8461 8466 8477 8478 8488
8495 8500 8515 8525 8528 8533 8544 8545 8573 8580 8592 8597
8599 8609 8611 8620 8630 8655 8679 8726 8751 8752 8753 8756
8767 8771 8772 8792 8795 8812 8817 8822 8835 8836 8839 8840
8845 8846 8848 8854 8855 9353 9369 9404 9714 9717 9736 9771
9774 9782 9789 9840 9850 9871 9907 9983 10004 10018 10019 10033
10040 10043 10091 10132 10215 10236 10254 10257 10292 10430 10441 10503
10505 10509 10530 10557 10560 10659 10677 10678 10679 10713 10728 10729
(U) CLR 1921 #
AR 1926 # 4646 4696 5176 5393 7368 9368 9745 10010
AR+ARX 1927 #
AR+ARX+MQ 1930 # 6301 6977 7882 9771 10132
AR+MQ 1928 # 7472 9909
ARL 1924 # 4153 4167 4888 4891 4954 4955 8033 8615 9003 9004 9005
9087 9088 9106 9554 10089 10092 10324 10402 10428 10457 10528
ARL+ARX 1931 # 7019 7052 8591 8654
ARL+ARX+MQ 1932 #
ARR 1925 # 5341 8537
ARR+MQ 1933 #
ARX 1923 # 5330 6252 7781 10085
ARX+MQ 1929 # 5336 5596 5601 5983 6146 6992 9589
MQ 1922 # 4192 4208 5388 5396 5752 5924 5925 5928 6380 6422 6425
6507 6509 6985 7227 7385 7387 7415 7550 7730 7854 10044 10046
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-12
; Cross Reference Listing
(U) COND 1737 #
AD FLAGS 1751 # 3998 4193 4209 4542 4557 4589 4605 5461 5474 5760 5762
AR CLR 1743 # 3714 6217 6320 7284 7333 7335 7388 7518 7736 7743 7772
7777 7857 7870 9587 9705 10031
ARL IND 1745 # 4029 4128 4130 4133 4136 4139 4140 4143 4144 4153 4154
4160 4161 4167 4168 4174 4175 4646 4698 5180 5223 5228 6784
6790 7040 7368 7781 8015 8033 8138 8189 8503 9106 9414 9562
9742 10225 10666 10720
ARX CLR 1744 # 5436 5497 5518 5620 6218 6223 6283 6336 6337 6429 6543
7061 7318 7326 7479 9710 9898
DIAG FUNC 1756 # 4737 4803 5163 5165 8114 8121 8133 8136 8137 8139 8181
8184 8186 8188 8467 8499 8516 8526 8530 8534 8585 8586 8587
8588 8598 8601 8603 8610 8613 8622 8623 8624 8629 8638 8639
8640 8641 8920 8935
EBOX STATE 1757 # 3722 3753 4811 8633 8644 8901 8903 9229 9334 9376 9405
EBUS CTL 1758 # 3791 3792 3793 3794 4736 4738 4804 5168 8018 8048 8056
8059 8062 8071 8073 8100 8190 8194 8536 8571 8593 8628 8632
8642 8753 8767 8836 8910 8921 8936 9404 9527 9528 9529 9530
FE SHRT 1750 # 9084
FM WRITE 1748 # 3719 3770 3915 3920 3948 3950 4195 4938 5335 5365 5384
5399 5777 5783 5790 5794 5797 5802 5818 5837 5838 5848 5850
5851 6415 6427 6435 6506 6508 6579 6615 6958 6982 6988 6990
7007 7042 7060 7137 7228 7233 7235 7241 7244 7261 7262 7264
7265 7269 7270 7271 7273 7298 7301 7313 7319 7336 7343 7353
7377 7384 7386 7391 7411 7450 7453 7551 7683 7773 7780 7858
7860 7871 7873 7901 8700 8904 8905 8934 8943 8944 8945 8950
8953 8969 9180 9399 9415 9420 9421 9427 9435 9437 9442 9446
9447 9453 9455 9456 9510 9552 9555 9557 9560 9696 9700 9701
9702 9704 9712 9725 9745 9747 9749 9770 9781 9792 9842 9855
9859 9889 9894 9896 9900 9901 9903 9925 9935 9940 9972 9984
9993 9995 10004 10005 10014 10015 10019 10044 10046 10068 10073 10132
10160 10162 10188 10193 10223 10235 10238 10239 10291 10297 10298 10301
10323 10330 10489 10490 10495 10534 10588 10590 10592 10604 10606 10668
LD AR0-8 1740 # 3955 5190 5191 5192 6789 7285 7337 7389 7519 7524 7546
7737 7739 7745 7778 7859 7872 8127 8477 8489 8572 8723 8787
8851 9183 9431 9511 9697 9887 9890 9893 10007 10098 10163 10164
10165 10166 10167 10168 10243 10286 10288 10420
LD AR18-35 1742 #
LD AR9-17 1741 # 4680 4697 4951 4956 5177 8512 9369
LD VMA HELD 1773 #
LOAD IR 1752 # 3756 3767 5245 9514
LONG EN 1762 # 3826 6836 6885 9546
MBOX CTL 1759 # 8463 8482 8550 8556 8558 8961 8963 8965 9186 9401
PCF_# 1749 # 4849 4854 4902 4903 4907 5432 5507 5524 5611 5785 5990
6216 6519 6801 6834 6851 6883 7399 7539 7543 7544 7682 7740
7744 7898 7899 8037 8038 10034
REG CTL 1746 # 5545 5546 5547 5549 5562 5563 5564 5566 5748 6341 6341
6539 6563 6571 6571 6571 7364 7365 7366 7372 7474 7494 7771
7868 7889 8124
SEL VMA 1755 # 3832 8931 8949 9352 9354
SPEC INSTR 1753 # 3713 3762 4764 4775 4781 5244 8643 8653 8699 9027 9356
SR_# 1754 # 3932 3933 3937 3949 4734 4798 4807 5169 5823 5843 5887
5888 5889 6011 6253 6351 6355 6365 6438 6439 6467 6501 6527
6566 6582 7072 7136 7382 7410 7466 7496 7555 9259 9263 9267
9271 9275 9279 9290 9294 9298 9302 9306 9315 9320 9412 9707
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-13
; Cross Reference Listing
9711 9717 9719 9730 9735 9736 9737 9750 9774 9776 9782 9840
9841 9850 9902 9936 9968 10018 10035 10078 10091 10094 10134 10316
10353 10397 10509 10560 10571 10581 10582 10597 10599 10608 10611 10612
10667 10677 10678 10679 10689 10721 10728 10729 10739
VMA DEC 1771 # 6792 8657 10486
VMA INC 1772 # 4189 4212 4702 4706 4716 4717 4934 4959 5095 5103 5160
5184 5186 5751 5806 6381 6786 6803 6853 7134 7226 7733 7855
8166 8659 8678 8795 9371 9373 9374 9820 9931 9933 10072 10375
10482 10549
VMA_# 1766 # 5091 5100 5156 8631 8666 8668 8670 8672 9330
VMA_#+AR32-35 1769 # 8987 8989
VMA_#+MODE 1768 # 5154
VMA_#+PI*2 1770 # 8704 8705 8712 8717
VMA_#+TRAP 1767 # 3755 3757
(U) DIAG FUNC 2118 #
CONI APR(L) 2137 # 8137
CONI APR(R) 2133 # 8136
CONI MTR 2143 # 8613
CONI PAG 2146 # 8530
CONI PI(L) 2132 # 8188
CONI PI(PAR) 2145 # 8186
CONI PI(R) 2131 # 8184
CONO APR 2124 # 8133 8139
CONO MTR 2122 # 8610
CONO PAG 2126 # 8526
CONO PI 2125 # 8181
CONO TIM 2123 # 8598
DATAI APR 2139 # 8121
DATAI PAG(L) 2135 # 5163 8499
DATAO APR 2127 # 8114
DATAO PAG 2128 # 8467
LD AC BLKS 2129 #
LD PA LEFT 2120 # 8622 8624
LD PA RIGHT 2121 # 8623
LD PCS+CWSX 2130 # 4737 5165
RD CACHE CNT 2140 # 8588 8641
RD EBOX CNT 2138 # 8587 8640
RD EBUS REG 2147 # 4803 8516 8534 8920 8935
RD INTRVL 2141 # 8601
RD MTR REQ 2144 # 8629
RD PERF CNT 2136 # 8586 8639
RD PERIOD 2142 # 8603
RD TIME 2134 # 8585 8638
.5 USEC 2119 #
(U) DISP 1783 #
BYTE 1796 # 4775 6605 6611 6660 6674 6958 6964 8012 8557 9140 9590
10216 10262 10429 10474 10475 10476 10489 10529
DIAG 1784 #
DIV 1793 # 5656 5659 5664 5673 5689 5690 5691 5692 5693 5694 5695
5696 5720 5721 5722 5723 7154 7155 7156 7157 9997
DRAM A RD 1786 # 3786 3787 3788 3789 3799 3800 9522 9523 9524 9525 9541
DRAM B 1795 # 3987 3996 4128 4130 4133 4136 4140 4144 4153 4154 4160
4161 4167 4168 4174 4175 4189 4227 4237 4247 4266 4282 4292
4302 4312 4322 4333 4343 4353 4363 4373 4470 4473 4477 4804
4853 5362 5417 5437 5441 5461 5474 5506 5523 5614 5616 5621
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-14
; Cross Reference Listing
5755 5887 5902 6351 6355 6383 7228 8018 8033 8190 8538 8583
8591 9540 9615 9616 9704 9891 9899 10077 10135 10172 10176
DRAM J 1785 # 3861 3872 3883 3894 3905 4673 4699 4707 9553 9556 9558
9561
EA MOD 1798 # 3754 3829 4629 4676 6802 6838 6852 6887 8954 9515 9548
10224 10239 10299 10302
MUL 1792 # 5541 5551 5553 5555 5557 5569 5571 5573 5574 5579 5771
7359
NICOND 1790 # 3920 3942
NORM 1797 # 5931 5959 5999 6011 6253 6255 6281 6286 6294 6304 6337
6432 6489 6512 6537 6545 6551 6554 6555 7324 7374 7393 7458
7460 7482 7487 7490 7492 7501 7559 7768 7782 7863 7874 7905
PG FAIL 1788 # 8910 8921
RETURN 1787 # 4216 4739 4745 4860 5116 5180 5186 5545 5546 5547 5549
5562 5563 5564 5566 5666 5668 5669 5675 5677 5678 5708 5711
5724 5725 5726 5727 6086 6088 6453 6455 6773 6776 6779 6780
6781 6782 6785 6792 6816 6817 6818 6819 6827 6828 6866 6867
6868 6869 6876 6877 6910 6911 6943 7161 7275 7286 7660 7661
7667 7668 8063 8076 8096 8100 8519 8575 8659 8680 8789 8794
8797 8828 9229 9795 10134 10138 10162 10173 10178 10182 10193 10200
10243 10258 10562 10668 10689 10739
SH0-3 1791 # 5161 7534 7890 8635 8654 8702 8719 8751 8770 9000 9080
10149 10151 10332 10349
SIGNS 1794 # 5628 5822 5824 8951 8988 8990 9741 9745 9772 9792 9841
9842 9856 9889 10013 10070 10095 10133 10161 10188
SR 1789 # 5843 5844 5849 6256 6258 6260 6262 6289 6291 6292 6302
6321 6341 6548 6571 6899 7009 7011 7541 7550 8943 9236 9415
9427 9435 9456 9793
(U) EA CALC 2005 #
A IND 2015 # 3777 3779 3781 3783 3801 3803 9517 9518 9519 9520 9542
9543
BYTE IND 2023 # 6803 6807 6809 6811 6813 6829 6831 6853 6857 6859 6861
6863 6878 6880
BYTE LD 2019 #
BYTE RD 2020 # 6816 6817 6818 6819 6827 6828
BYTE RD PC 2021 #
BYTE RPW 2022 # 6866 6867 6868 6869 6876 6877
LD ARX+WR 2031 # 10482
LD AR(EA) 2029 # 10672 10673 10680
LD AR+WR 2030 # 10454 10458
POP AR 2025 # 4883
POP AR-ARX 2027 # 4885
POP ARX 2026 #
PUSH 2024 # 4837 4842
WRITE(E) 2028 # 4909 10682
(U) EBUS CTL 2102 # 4738 5168 8071
DATAI 2116 # 8080 8767 8836
DATAO 2115 # 8081 8753 9404
EBUS DEMAND 2106 # 8056
EBUS NODEMAND 2107 # 8059
GRAB EEBUS 2103 # 3791 3792 3793 3794 4736 8100 8628 8910 9527 9528 9529
9530
IO INIT 2112 # 8073 8076
REL EBUS 2105 # 8062 8190
REL EEBUS 2117 # 4804 8018 8536 8571 8593 8632 8642 8921 8936
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-15
; Cross Reference Listing
REQ EBUS 2104 # 8048 8194
(U) EXP TST 1949 #
AR_EXP 1950 # 6341 6571
(U) FE 1622 # 9084
SCAD 1623 # 3830 3832 3920 3942 4764 4772 4781 5336 5339 5389 5392
5497 5519 5541 5545 5546 5547 5549 5551 5553 5555 5557 5562
5563 5564 5566 5569 5571 5573 5574 5579 5627 5634 5637 5656
5659 5664 5673 5689 5690 5691 5692 5693 5694 5695 5696 5707
5710 5720 5721 5722 5723 5724 5725 5726 5727 5765 5771 5780
5808 5814 5835 5903 5906 5915 5924 5925 5928 5956 5959 5986
5997 6000 6148 6171 6188 6192 6254 6257 6259 6261 6281 6285
6288 6290 6294 6301 6303 6340 6380 6392 6451 6479 6506 6508
6516 6533 6535 6536 6539 6540 6567 6570 6774 6777 6801 6803
6821 6822 6823 6824 6851 6853 6871 6872 6873 6874 6932 6939
7008 7010 7152 7154 7155 7156 7157 7161 7253 7257 7259 7268
7322 7346 7351 7357 7359 7384 7386 7388 7396 7454 7468 7469
7471 7474 7476 7497 7502 7749 7760 7763 7767 7779 7853 7867
7885 8160 8475 8555 8575 8719 8786 8835 8844 8914 8919 8962
8964 8966 8993 8994 8999 9041 9053 9072 9080 9095 9141 9147
9178 9203 9213 9255 9549 9693 9697 9740 9812 9814 9837 9887
9981 9992 9994 10007 10039 10042 10045 10047 10160 10162 10182 10201
10223 10229 10238 10239 10284 10297 10298 10301 10327 10371 10383 10385
10398 10407 10410 10432 10435 10492 10502
(U) FETCH 1993 #
COMP 1996 # 4508
JFCL 2000 # 4752
JUMP 1999 # 4574 4589 4605 4613
SKIP 1997 # 4526 9844
TEST 1998 # 4469 4472 4477 8022 8024 8026 9780
UNCOND 1994 #
(U) FLAG CTL 1972 #
DISMISS 1976 # 4672 4724 4725 8030 8754
DISMISS+LD 1978 #
HALT 1979 # 4762
JFCL 1974 # 4751
JFCL+LD 1975 # 4754
PORTAL 1981 # 4627
RSTR FLAGS 1973 # 4668 4718 4719 4722
SET FLAGS 1980 # 3655 5189 9375
(U) FMADR 1578 #
AC+# 1589 # 9429 9435 9442 9706 9870 9870 9890 9940 10182 10254 10254
10280 10282 10283 10291 10297 10298 10301 10354 10363 10476 10489 10490
10495 10549
AC0 1579 # 3860 3915 3920 3948 4014 4026 4029 4128 4130 4133 4136
4139 4143 4195 4237 4247 4266 4282 4292 4302 4312 4322 4333
4353 4363 4477 4480 4481 4482 4508 4574 4589 4604 4613 4837
4842 4883 4885 4887 4905 4938 4943 4953 5224 5226 5229 5232
5234 5330 5333 5351 5351 5365 5373 5384 5389 5399 5406 5408
5461 5473 5496 5519 5602 5620 5626 5708 5711 5754 5778 5783
5809 5913 5956 5986 6147 6398 6407 6415 6427 6430 6438 6439
6479 6515 6579 6615 6679 6991 7007 7060 7073 7243 7260 7264
7297 7298 7322 7340 7351 7379 7396 7455 7551 7683 7877 7880
7902 9415 9446 9454 9455 9458 9588 9694 9704 9730 9783 9812
9859 9894 9896 9924 9925 9965 9970 10034 10044 10046 10073 10134
10150 10152 10160 10162 10177 10193 10316 10330 10511 10534 10559 10561
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-16
; Cross Reference Listing
10573 10585 10586 10588 10590 10604 10606 10643 10668
AC1 1580 # 3950 4207 4208 5335 5371 5372 5388 5597 5750 5790 5806
5837 5838 5843 5844 6386 6435 6436 6464 6465 6499 6501 6506
6508 6511 7027 7038 7040 7042 7137 7265 7271 7275 7314 7320
7321 7334 7347 7381 7382 7384 7386 7392 7454 7888 9259 9420
9427 9447 9589 9735 9745 9839 9839 10201 10201 10223 10238 10239
10502 10502 10571
AC2 1583 # 5794 5804 5848 7709 9421 10227 10228 10235 10592
AC3 1584 # 5748 5777 5792 5797 5850 5851 9267 9294 9298 9306 9320
9437 9448 9453 9456 9586 9591 9700 9701 9708 9715 9718 9725
9747 9749 9781 9790 9792 9855 9897 9900 9901 9909 9935 9968
9972 9982 9984 10006 10015 10088 10176 10188 10200 10428 10454 10457
10528
VMA 1582 # 3756 3767 3826 3827 3871 3882 3893 3904 3916 3917 3923
3925 4191 4192 4212 4526 4701 4704 4706 4716 4717 4718 4719
4722 4734 4847 4849 4852 4854 4860 4860 4888 4889 4891 4892
4907 4908 4934 4959 5095 5103 5156 5159 5169 5182 5185 6682
6787 6791 6801 6804 6836 6837 6851 6854 6885 6886 6897 6899
6922 6922 6928 6968 7730 7758 7771 7854 7868 8017 8021 8023
8033 8658 8678 8744 8753 8754 8998 9013 9033 9053 9065 9072
9095 9376 9546 9547 9692 9828 9829 10018 10087 10148 10258 10331
10459 10474 10483 10485 10487 10507 10512 10548 10556 10581 10583 10603
10609 10677 10678 10685 10687 10688 10728 10735 10737 10738
XR 1581 # 3754 3779 3783 3787 3789 3800 3803 3829 4664 6809 6813
6817 6819 6828 6831 6838 6859 6863 6867 6869 6877 6880 6887
9518 9520 9523 9525 9541 9543 9548
#B# 1591 # 3719 3770 4679 4694 4841 4932 4937 5089 5170 5175 5179
5183 5802 5818 5820 5840 6958 6981 6982 6986 6988 6990 7017
7021 7043 7053 7061 7228 7233 7235 7241 7244 7248 7253 7257
7261 7262 7263 7268 7269 7270 7272 7273 7299 7301 7303 7304
7313 7315 7316 7319 7336 7343 7344 7353 7377 7390 7391 7407
7411 7450 7451 7453 7457 7459 7484 7523 7530 7660 7661 7667
7668 7711 7712 7724 7725 7726 7773 7780 7858 7860 7871 7873
7892 7895 7901 8700 8702 8736 8760 8782 8797 8827 8904 8905
8934 8943 8944 8945 8950 8953 8969 9001 9011 9018 9026 9040
9046 9051 9054 9055 9056 9071 9081 9082 9093 9108 9119 9125
9134 9149 9159 9171 9176 9180 9184 9198 9204 9212 9216 9218
9228 9235 9283 9310 9335 9366 9398 9399 9400 9438 9444 9449
9451 9460 9510 9552 9555 9557 9560 9695 9696 9702 9712 9714
9723 9728 9746 9770 9789 9842 9851 9889 9903 9906 9911 9917
9993 9995 10004 10005 10014 10019 10020 10031 10032 10066 10068 10082
10083 10132 10135 10136 10137 10138 10146 10171 10173 10178 10187 10189
10190 10323 10440 10442 10504 10505 10557
(U) ISTAT 1881 #
OPTIONS 1886 # 8127
(U) J 1471 # 3786 3787 3788 3789 3799 3800 3861 3872 3883 3894 3905
4216 4634 4673 4699 4707 4739 4745 4860 5116 5180 5186 5545
5546 5547 5549 5562 5563 5564 5566 5666 5668 5669 5675 5677
5678 5708 5711 5724 5725 5726 5727 6086 6088 6453 6455 6773
6776 6779 6780 6781 6782 6785 6792 6816 6817 6818 6819 6827
6828 6866 6867 6868 6869 6876 6877 6910 6911 6943 7161 7275
7286 7660 7661 7667 7668 8063 8076 8096 8100 8519 8575 8659
8680 8789 8794 8797 8828 9229 9522 9523 9524 9525 9541 9553
9556 9558 9561 9795 10134 10138 10162 10173 10178 10182 10193 10200
10243 10258 10562 10668 10689 10739
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-17
; Cross Reference Listing
ACNORM 7453 # 7253
ACNRM1 7457 # 7451
ACSETU 10668 # 10722
ADD 5461 # 5454 5455 5456 5457
ADJBP 6977 # 6966
ADJD1 7017 # 7009
ADJD2 7051 # 7017
ADJD3 7053 # 7019
ADJD4 7060 # 7043 7054
ADJSP 5223 # 5210
ADJSP1 5232 # 5227
ADJX2 7029 # 7021
ADJX3 7027 # 7029
ADJX4 7038 # 7027
ADJX5 7041 # 7038
ADJX6 7042 # 7040
AND 4237 # 4230 4231 4232 4233
ANDCA 4247 # 4240 4241 4242 4243
ANDCB 4302 # 4295 4296 4297 4298
ANDCM 4266 # 4259 4260 4261 4262
AOBJ 4613 # 4608 4609
AOJ 4589 # 4578 4579 4580 4581 4582 4583 4584 4585
AOS 4542 # 4531 4532 4533 4534 4535 4536 4537 4538
APRBI 8123 # 7918
APRBO 8115 # 7920
APRCI 8134 # 7923 7924 7925
APRCO 8131 # 7922
APRCO7 8139 # 8133
APRDI 8120 # 7919
APRDO 8113 # 7921
ARJMP 4732 # 4718 4725 4734 9376
ARSWAP 4745 # 4680 4697 8573 9369
ASH 5349 # 5315
ASHC 5370 # 5319
ASHL 5406 # 5350 5371
ASHL1 5422 # 5407
ASHL2 5426 # 5435
ASHL3 5430 # 5432
ASHL4 5434 # 5431
ASHL5 5439 # 5442
ASHR1 5411 # 5414
ASHR2 5416 # 5411
ASHX 5447 # 5417 5441
B2DFPF 9444 # 9267
B2DPF 9446 # 9290 10078
B2DPF2 9449 # 9444
BACKD 9429 # 9271 9275 9279 9302
BACKS 9426 # 9259
BD1 9977 # 9966
BD2 9980 # 9977 9984
BD3 9982 # 9978
BD4 9992 # 9981 9997
BD6 9997 # 9992
BD7 10004 # 9993 9995
BD8 10012 # 10010
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-18
; Cross Reference Listing
BD9 10015 # 10020
BDD1 10065 # 10035 10098
BDD2 10075 # 10070
BDD3 10082 # 10077
BDD4 10085 # 10082
BDD5 10087 # 10088
BDD6 10089 # 10087
BDD7 10091 # 10083 10092
BDDR1 9968 #
BDDR4 10068 # 9974
BDDV1 10031 # 10015
BDDV2 10038 # 10033
BDEC 9965 # 9590
BDF1 10018 # 10014
BFETCH 6826 # 6802 10224 10239 10299 10302
BFETCHP 6876 # 6852
BFIN 6682 #
BLK1 8034 # 8012
BLK2 8033 # 8034 8035
BLK3 8037 # 8033
BLK4 8026 # 8021
BLKIO 8011 # 7986 7988 7997 7999
BLT 4028 # 4021
BLT1 10642 # 4029
BLT2 10659 # 10649
BLTAC 10666 # 10659
BLTPF 9412 # 9283 10685 10735
BLTPF1 9414 #
BLTPXCT 10713 # 10650
BLTPX1 10720 # 10713
BPART2 6834 # 6803
BPART2P 6883 # 6853
BRJMP 4675 # 4627 4668
BXA 6807 # 6838
BXAP 6857 # 6887
BYTEAP 6851 # 6675 6854
BYTEA 6801 # 6612 6804 8856
BYTEIP 6885 # 6858 6860 6862 6864 6879 6881
BYTEI 6836 # 6808 6810 6812 6814 6830 6832 10238 10297
BYTEI2 6838 # 6836
BYTEI2P 6887 # 6885
CAIM 4508 # 4488 4489 4490 4491 4492 4493 4494 4495 4497 4498 4499
4500 4501 4502 4503 4504
CDBLST 7557 # 6583 7555
CHALT 4764 # 3770
CHKAC 8826 # 8812 8817 8822
CLEAN 9255 # 6899 8943 9236 9415 9421 9427 9435 9456 9793
CLRFPD 3936 # 6682 8026
CLRPT 8571 # 8478 8545
CMPDST 9870 # 9850
CMPS 9812 # 9586
CMPS1 9818 # 9820
CMPS2 9828 # 9819
CMPS3 9836 # 9863
CMPS4 9837 # 9828
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-19
; Cross Reference Listing
CMPS5 9850 # 9842
CMPS6 9859 # 9856
CMPS7 9862 # 9859
CMPSX 9844 # 9836
CMTR 8641 # 8490
CMTR1 8649 # 8641
COMPEA 3799 # 3754
CONO 8015 # 7990 8001
CONS 8013 # 7992 7993 8003 8004
CONT 3658 #
D2BPF 9437 # 9263
DASMD 5750 # 5738 5739 5740
DBABT 9924 # 9911 9917
DBIN 9887 # 9588
DBIN2 9916 # 9910
DBIN3 9919 # 9916
DBINLP 9906 # 9920
DBLST 4195 # 6566 7496 7557
DBS1 9896 # 9890
DBS2 9898 # 9894
DBS3 9902 # 9900
DBST 9894 # 9892
DBXIT 9931 # 9908
DDIV 5748 # 5741
DDIV0 5802 # 5748
DDIV1 5811 # 5815 5816
DDIV2 5818 # 5812
DDIV3 5831 # 5822 5824
DDIV4 5835 # 5832
DDIV6 5840 # 5837
DDVLP 5720 # 5720 5721 5722 5723 5835 10045
DDVSUB 5722 # 6518 7398 10040 10043 10047
DDVX1 5846 # 5843
DDVX2 5848 # 5846 5847
DEXCHK 8792 # 8756 8772
DFAS 6386 # 6388
DFAS1 6407 # 6386
DFAS2 6409 #
DFAS3 6424 # 6411
DFAS4 6430 #
DFAS5 6431 # 6425 6438 6439
DFAS6 6434 # 6416
DFDV 6499 # 6400
DFDV1 6515 # 6499 6501
DFLOAT 6380 # 6373 6374 6375 6376
DFMP 6464 # 6392
DFMP1 6469 # 6464 6466
DFMP2 6486 # 6487
DISM 4671 # 4641 4643
DIV 5596 # 5589 5590 5591 5592
DIV+ 5692 # 6507 7385
DIV- 5691 # 5989 6509 7387
DIV1 5626 # 5598
DIV2 5633 # 5603 7007
DIVLP 5689 # 5665 5674 5689 5690 5691 5692 5842
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-20
; Cross Reference Listing
DIVS1 5656 # 5628 5635 5658
DIVS2 5659 # 5638 5661
DIVS3 5664 # 5657
DIVS4 5673 # 5660
DIVX 5706 # 5693 5694 5695 5696
DMOVEM 4207 # 4201
DMOVE 4189 # 4182
DMOVNM 4208 # 4202
DMOVN 4188 # 4183
DMUL1 5783 # 5785
DMUL2 5789 # 5784
DMULT 5771 # 5765
DMVM1 4212 # 4207 8594
DNHI 6563 # 6533
DNNEG 6548 # 6527
DNNEG1 6553 # 6549
DNORM 6524 # 6432 6489 6512 6545 6551 6554 6555
DNSHFT 6542 # 6567
DNTRY 6489 # 6422 6563
DNZERO 6566 # 6524
DODIAG 8162 #
DPB 6674 # 6596
DPB1 6922 # 6680 8848 10257
DPB2 6932 # 6924
DRND1 6570 # 6538
DROUND 6537 # 6535 6539
DSTAC 3948 #
DTEVEC 8726 # 8723
EBUSI 8080 # 8767 8836
EBUSO 8081 # 8753 9404
EBUSW 8058 # 8060
EBUSX 8055 # 8080 8081
EDDISP 10334 #
EDDSNG 10467 # 10475
EDEX0 10454 # 10364
EDEX1 10492 # 10489 10495
EDEX2 10474 # 10455
EDEXMD 10457 #
EDEXX 10487 # 10467
EDFL1 7232 # 7235
EDFLDS 10420 # 10355
EDFLOT 7226 # 7219 7220 7221 7222
EDFLTX 10548 # 10545
EDFLT 10543 # 10430 10530
EDFLT1 10556 # 10543 10544 10546
EDFPUT 10511 # 10517
EDIT 10316 # 9587
EDIT1 10327 # 10325
EDITLP 10329 # 10414
EDMPUT 10512 # 10442
EDMSG 10440 # 10336
EDNOP 10383 # 10337 10338 10339 10348 10385 10435
EDNXT1 10396 # 10384 10408 10411 10433 10493
EDNXT2 10407 # 10396
EDNXT3 10414 # 10400 10404
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-21
; Cross Reference Listing
EDOPR 10348 # 10335
EDSEL 10502 # 10353
EDSEND 10435 # 10420 10511
EDSF1 10517 # 10507
EDSFIL 10507 # 10440
EDSFLT 10528 # 10508 10533
EDSKPT 10379 # 10341 10343
EDSKP 10385 # 10344
EDSPUT 10509 # 10512 10534
EDSSIG 10428 # 10354
EDSTOP 10371 # 10352 10510
EDVCHK 7402 # 7397 7403
EDVCH1 7406 # 7402
EDVCH2 7411 #
EDVCH3 7414 #
EEOV 7546 # 7539 7543
EF1 7243 # 7233
EF10 7315 # 7306
EF11 7322 # 7314 7320
EF12 7326 # 7312 7318
EF3A 7255 # 7251
EF3B 7258 # 7256
EF5 7267 # 7252
EF5A 7297 # 7265 7273
EF5B 7275 # 7261 7270
EFDV0 7377 # 7241
EFDV1 7396 # 7381 7382
EFIW 3777 # 3830
EFMP 7333 # 7238
EFMP1 7336 # 7333
EFMPP1 7356 # 7357
EFMPP2 7359 # 7356
EFMPP3 7368 # 7364 7365
EMTR 8640 # 8488
EMTR1 8648 # 8640
ENFNL0 7537 # 7547
ENFNL1 7549 # 7536 7538
ENHI 7494 # 7468
ENNEG 7484 # 7466
ENNEG1 7489 # 7485
ENORM 7463 # 7324 7374 7393 7458 7482 7487 7490 7492 7559 7783 7863
7874 7905
ENSHFT 7478 # 7497
ENTRY 7559 # 7494
ENZERO 7496 # 7464
EQV 4312 # 4305 4306 4307 4308
ERND1 7499 # 7473
ERND2 7513 #
EROUND 7472 # 7470 7475
EXCH 4026 # 4020
EXMSK 3769 # 3719
EXPD 6449 # 6407
EXPD1 6454 # 6451
EXPDIF 7284 # 7250 7255
EXT2 9552 # 9540 9615 9616
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-22
; Cross Reference Listing
EXT3 9560 # 9554 9562
EXTEND 6205 # 6163
EXTF1 9509 # 6206
EXTF2 9515 #
EXTI 9546 # 9517 9518 9519 9520 9542 9543
EXTI2 9548 # 9546
EXTLA 9540 # 9515
EXTXA 9517 # 9549
FAD 5886 # 5863 5865 5866
FADR 5903 # 5868 5870 5871 5887
FADRI 5901 # 5869
FAS 5913 # 5904 5907
FAS1 5919 # 5915
FAS2 5921 # 5917
FAS3 5927 # 5921
FAS5 5930 # 5924 5925
FDV 5889 # 5965 5967 5968
FDVCHK 6082 # 5987 6083 6517
FDVCK1 6085 # 6082 7415
FDVNEG 6011 # 5998 6012
FDVR 5983 # 5889 5970 5972 5973
FDVRI 5982 # 5971
FINI 3942 # 3933 3936 3937 3950 4479 4626 4754 4938 5797 9940
FIX 6192 # 6162
FIX1 6216 # 6189 6193
FIX2 6226 # 6224
FIXR 6188 # 6165
FLTR 6171 # 6166
FMP 5888 # 5936 5938 5939
FMPR 5954 # 5888 5941 5943 5944
FMPRI 5953 # 5942
FPNO 5890 # 5864 5874 5937 5966
FSB 5887 # 5873 5875 5876
FSBR 5906 # 5878 5880 5881
FSBRI 5902 # 5879
FSC 6146 # 6128
GETEEB 8099 # 4802 8113 8120 8132 8135 8466 8495 8525 8529 8581 8597
8600 8609 8612 8621
GETEXP 7132 # 7127
GETSC 7127 # 6959 7060 10004 10441
GETSRC 10201 #
GSRC 10200 # 9772 10133
GSRC1 10215 # 9840 10503
GSRC2 10223 # 10216 10225
GSRC3 10225 # 10230
GSRC4 10238 # 10227
GSRC5 10232 # 10229
GSRC6 10235 # 10232
GTAR08 8788 # 3955 8851
GTCST 9129 #
GTDBR 4215 # 4192 4208
GTEBUS 8047 # 8017
GTEEB1 8100 # 5189
HALT1 4771 # 4776
HALT2 4775 # 4772
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-23
; Cross Reference Listing
HLL 4130 # 4035 4083
HLLE 4171 # 4069 4070 4071 4072
HLLO 4175 # 4059 4060 4061 4062
HLLZ 4174 # 4049 4050 4051 4052
HLR 4136 # 4086 4087
HLRE 4164 # 4116 4117 4118 4119
HLRM 4143 # 4088
HLRO 4168 # 4106 4107 4108 4109
HLRS 4144 # 4089
HLRZ 4167 # 4096 4097 4098 4099
HRL 4133 # 4044 4045
HRLE 4157 # 4074 4075 4076 4077
HRLM 4139 # 4046
HRLO 4161 # 4064 4065 4066 4067
HRLS 4140 # 4047
HRLZ 4160 # 4054 4055 4056 4057
HRR 4128 # 4041 4081 4082
HRRE 4150 # 4111 4112 4113 4114
HRRO 4154 # 4101 4102 4103 4104
HRRZ 4153 # 4091 4092 4093 4094
IBP 6136 # 6129
IBP1 6958 # 6136
IBP2 6963 #
IBPS 6773 # 6606 6661 6964 8855
IDIV 5600 # 5584 5585 5586 5587
IDIV1 5601 # 5622
IDIV2 5619 # 5600
IDPB 6660 # 6595
IDST 10262 # 9871 10254
IDST2B 10301 # 10280
IDST2 10280 # 10263 10286
IDST3 10286 # 10281
IDST4 10294 # 10282
IDST5 10288 # 10284
IDST6 10291 # 10288
IDST7 10297 # 10294
IDST8 10298 # 10295
IFNOP 3922 # 5990 6216 6519 7399 8109 8463 8558
IFSTAC 3924 # 4855 6981
IHALT 4761 # 4631
ILDB 6605 # 6593
ILLIND 3832 # 3791 3792 3793 3794 9527 9528 9529 9530
IMUL 5496 # 5479 5481 5482
IMUL2 5506 # 5507
IMULI 5487 # 5480
INDR1 3829 # 3826
INDRCT 3826 # 3778 3780 3782 3784 3802 3804
INTRPT 3725 #
IO 8017 # 7987 7989 7991 7998 8000 8002 8037 8038
IOCHK 8090 # 8011 8106 8115 8123 8161 8462
IOFET 8029 # 8023
IOPGF 9398 # 9355
IOR 4292 # 4285 4286 4287 4288
IOTEND 8021 # 8190 8538
ISOEXP 7660 # 7232 7236 7240 7243 7341 7406 7735 7878
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-24
; Cross Reference Listing
JFCL 4748 # 4620
JFFO 5333 # 5318
JFFO1 5339 # 5340
JFFO2 5344 # 5345
JRA 4945 # 4918
JRA1 4845 # 4955 4956
JRAB 4956 # 4954
JRST 4626 # 4619
JRST2 4629 #
JRSTF 4663 # 4629 4676
JSA 4943 # 4917
JSA1 4959 # 4943
JSP 4928 # 4916
JSP1 4937 # 4928
JSR 4930 # 4915
JSR1 4934 # 4932
JSTAC 4847 # 4842 4849
JUMP 4574 # 4563 4564 4565 4566 4567 4568 4569 4570
KMOVED 9119 # 9113
L-BDEC 5109 # 4985 4986
L-CMS 5076 # 4974 4975 4976 4979 4980 4981
L-DBIN 5107 # 4983 4984
L-DFLT 7866 # 7725
L-DFSC 7877 # 7726
L-DITE 7702 # 5004
L-EDBL 7770 # 7712
L-EDIT 5078 # 4978
L-EFSC 7706 # 5006
L-FLTR 7852 # 7724
L-FSC2 7892 # 7898 7899
L-FSC3 7901 # 7894 7897
L-GTDI 7694 # 5000
L-GTDR 7698 # 5002
L-GTPI 7690 # 4998
L-GTSI 7696 # 5001
L-GTSP 7729 # 7711
L-GTSR 7700 # 5003
L-GTS1 7741 # 7739
L-GTS6 7745 # 7743
L-GTS7 7765 # 7762
L-MVS 5111 # 4988 4989 4990 4991
L-SFTE 7692 # 4999
L-SITE 7704 # 5005
L-XBLT 7688 # 4997
LDB 6611 # 6594
LDB1 6897 # 6614 8840 9873 10217
LDB2 6902 # 6898
LDBRL 4216 #
LDIMM 9084 # 9095
LDIND 9026 # 9004 9027 9089
LDIND1 9032 # 9026
LDPCS 4736 # 4730
LDPT 9101 # 9086
LDPT1 9113 # 9106
LDSHR 9093 # 9087
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-25
; Cross Reference Listing
LSH 5330 # 5317
LSH1 5389 #
LSH2 5391 # 5394
LSH3 5396 # 5392 5398
LSHC 5388 # 5321
LUUO 5086 # 5018 5019 5020 5021 5022 5023 5076 5107 5109 5111 7688
7690 7692 7694 7696 7698 7700 7702 7704 7706
LUUO1 5088 # 5086
LUUO2 5100 # 5090
LUUO3 5103 # 5101
MAP 4795 # 4789
MAP2 4807 # 9310
MBREL 8109 # 8116
MEMNRM 7450 # 7257
MOVE 3996 # 3960 3961 3967 3990 3998 4042 4084 4250 4256 4257 4271
4272
MOVELP 9714 # 9719
MOVEM 4025 # 3965
MOVF1 9789 # 9736 9782 9796
MOVF2 9792 # 9790 10019
MOVF3 9795 # 9792
MOVM 3990 # 3979 3980 3981 3982
MOVN 3993 # 3974 3975 3976 3977
MOVNEG 3998 # 3993
MOVPUT 9717 #
MOVRJ 9735 # 9708
MOVS 3987 # 3969 3970 3971 3972 4139 4143
MOVS2 9711 # 9705
MOVSTX 9773 # 9715
MOVST1 9770 # 9707 9737 9776
MOVST2 9780 # 9773
MTRCI 8611 # 7980 7981 7982
MTRCO 8608 # 7979
MTRCO1 8615 # 8610
MTRDBL 8665 # 8592 8655
MTRINT 3722 # 3827 4773 5102 5117 5242 6837 6886 9547
MTRREQ 8628 # 3722
MTRRQ0 8635 # 8631
MTRRQ1 8653 # 8646 8647 8648 8649
MUL 5518 # 5511 5512 5513 5514
MUL1 5523 # 5524
MULM 5560 # 5555 5557 5573 5574
MULP 5543 # 5541 5551 5553 5569 5571 5579 5771 7360
MULREE 5579 # 5780 6471 6486 7062 7349
MULSUB 5540 # 5498 5520 5958
MUUO 5152 # 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037
5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049
5050 5051 5052 5053 5054 5055 5056 5057 5058 7714 7715 7716
7717
MUUOF 5189 # 5162 5190 5191 5192
MVABT 9723 # 9718
MVABT1 9725 # 9726
MVABT2 9728 # 9725
MVEND 9730 # 9781
MVSK1 9744 # 9741
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-26
; Cross Reference Listing
MVSK3 9749 # 9746
MVSK4 9776 # 9747
MVSKP 9740 # 9735 9742 9744
MVSO3 9710 # 9706
MVST 9692 # 9591
MVST1 9696 # 9694
MVST2 9702 # 9700
NEXT 3712 # 3920 3942
NO.CST 9067 # 9042
NOCST0 9070 # 9065
NOCST1 9072 # 9070
NODIVD 5611 # 5836 6987
NOLENS 9695 # 9829
NOP 3933 # 3923 4508 4574 4675 4704 4728 4732 4934 5170 5335 5365
5422 5611 6615 6968 7682 7683 7740 7744 8022 8024 8029 8755
9844 10011 10597 10687 10737
NOP2 3937 #
NOT.WR 9183 # 9177
NOTWR 9159 # 9134 9180
NOUPDT 9174 # 9121
NXTW2 6791 # 6789
NXTWRD 6784 # 6775 6778
OPDISP 10351 # 10349
ORCA 4333 # 4326 4327 4328 4329
ORCB 4363 # 4356 4357 4358 4359
ORCM 4353 # 4346 4347 4348 4349
OVTEST 7679 #
OVTST1 7677 #
OVTST2 7683 # 7679 7681
PAGBI 8502 # 7940
PAGBO 8461 # 7942
PAGCI 8528 # 7945 7946 7947
PAGCO 8524 # 7944
PAGD2 8488 # 8477
PAGDI 8494 # 7941
PAGDO 8465 # 7943
PCA 4734 # 4647 5096
PCTXT 8511 # 5164 8500
PF1 8904 # 8901
PF2 8912 # 8910
PF24 3791 # 6821 6822 6823 6824 6871 6872 6873 6874
PF4 8943 # 8921 8937
PFPAR 8931 # 8914 8919
PFPAR1 8933 # 8931
PFPAR2 8934 # 3835
PFT 9235 # 9001 9018 9051 9055 9071 9082 9108 9159
PGF1 9330 # 9255
PGF2 9335 # 9330
PGF4 9352 # 9335
PGFAC0 9415 # 9458 10415 10586
PGRF1 8953 # 8969
PGRF2 8987 # 8954
PGRF3 8993 # 8988 8990
PGRF5 9040 # 9003
PGRF6 9053 # 9050
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-27
; Cross Reference Listing
PGRST1 9211 # 9204 9213
PGRST2 9215 # 9212
PGRST3 9228 # 9216
PHYS1 8812 # 8760
PHYS2 8817 # 8736
PHYS3 8822 # 8782
PIBI 8158 # 7929
PIBO 8160 # 7931
PIBPA 8851 # 8835 8845
PIBYTE 8835 # 8710
PICI 8183 # 7934 7935 7936
PICO 8179 # 7933
PICOM1 8193 # 8180 8183
PICOM2 8190 # 8181
PICYC1 8699 # 3723 3725
PICYC2 8717 # 3713
PIDATI 8767 # 8709
PIDATO 8751 # 8708
PIDI 8146 # 7930
PIDISP 8704 #
PIDO 8145 # 7932
PIDONE 8754 # 8745 8746 8774 8777 8778 8784 8823 8824 8849 9405
PIDPB 8844 # 8837
PIFET 8755 # 8030 8633
PIIBP 8854 # 8839 8846
PIINCR 8744 # 8707
PIINST 8721 # 8644 8704 8705 8712 8717
PILD 8730 # 8751 8792 8795 8854
PIOUT 8753 # 8762 8813 8814 8841
PIST 8777 # 8770
PIVECT 8719 # 8706
PMTR1 8647 # 8639
POP 4883 # 4819
POP2 4905 # 4883
POP3 4909 # 4907
POPJ 4885 # 4820
POPJ2 4895 # 4902
POPJ3 4896 # 4903
POPJ4 4897 # 4895
POPJT 4902 # 4890
PSTOR 8782 # 8773
PTLOOP 8555 # 8482 8557
PUSH 4837 # 4818
PUSHJ 4839 # 4817
PUTDST 10254 # 9717 9774 9789 10091 10509 10560
PXCT 5244 # 5241
RDEBRG 4801 # 8158
RDEMTR 8674 # 8666 8668
RDEX 8786 # 8752 8771
RDMTR 8580 # 7964 7965 7975 7976
RDMTR1 8591 # 8585 8586 8587 8588
RDMTR2 8678 # 8675
RDUMTR 8676 # 8670 8672
RELEB 8062 # 8059
RELEEB 8018 # 8114 8121 8138 8139 8470 8503 8605 8615
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-28
; Cross Reference Listing
RELMEM 6943 # 6928
RESETP 10243 # 10236 10292
RET1 8096 # 10018
ROT 5351 # 5316
ROT3 5375 # 5378
ROT4 5380 # 5376 5383
ROTC 5372 # 5320
ROTS 5116 # 3715 9353
RSTF 4668 #
RSTF0 4666 # 4663
SDIV 7154 # 7154 7155
SDIV- 7155 # 7152
SDIVR 7159 # 7156
SECIMM 9003 # 9033
SECPTR 8998 # 8993 9017
SETCA 4322 # 4315 4316 4317 4318
SETCM 4343 # 4336 4337 4338 4339
SETEBR 8544 # 8526
SETFLG 10562 # 9983 10559
SETO 4373 # 4366 4367 4368 4369
SETPC 5170 # 3655
SETZ 4227 # 4220 4221 4222 4223
SFET1 10375 # 9783 10373
SGNEXT 7667 # 7297 7300 7345 7352 7378 7414 7765 7904
SHIFT 6910 # 4750 5427 5796 6902 7132 7137 7326 7370 8544 8726
SHR1 5358 # 5331 5362
SHR2 5363 # 5359 5364
SIXDIV 7152 # 6980 6985
SKIP 4526 # 4515 4516 4517 4518 4519 4520 4521 4522 4542 4557
SN1 6288 # 6281 6294
SNORM 6251 # 5931 5959 6000 6011 6172 6253 6255 6286 6304 7768
SNR2 6254 # 6148
SNZERO 6301 # 6252
SOJ 4604 # 4593 4594 4595 4596 4597 4598 4599 4600
SOS 4557 # 4546 4547 4548 4549 4550 4551 4552 4553
SRCMOD 10132 # 9714 9907 10187 10189 10190
SRND2 6337 # 6317
SRND3 6340 #
SRND4 6341 # 6336
SRND5 6351 # 6302
SROUND 6317 # 6256 6258 6260 6262 6289 6291 6292
ST0 3913 # 3987 3996 4128 4130 4133 4136 4140 4144 4153 4154 4160
4161 4167 4168 4174 4175 4227 4237 4247 4266 4282 4292 4302
4312 4322 4333 4343 4353 4363 4373 5461 5474 5523 5614 5616
5621
ST2AC 3915 # 3916 5449 5760 5762 5850 5852 7882
ST6 3921 # 4804 5506 6351 6355
STAC 3920 # 3932 4008 4009 4480 4481 4482 4897 4937 4960 5229 6227
7074 9730
STAC1 3950 # 6365
STAC4 9940 #
START 3655 # 4782
STBOTH 3925 #
STCST 9149 # 9141
STD1 3949 # 3915 4195 6580 7553
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-29
; Cross Reference Listing
STDAC 5384 # 4191
STMAC 4852 # 4026 4837 4909 5233 5235
STMEM 3923 # 4213 8128 8166
STOR34 9935 # 9926 9932
STORAC 3932 # 3925 4589 4605 4613 4810 4848 5447 6225 7732 10375
STRAC1 6365 # 5346 5384 5399 10073 10592
STRAC3 5797 #
STRNC 6336 # 6321
STRPF 9451 # 9294 9298
STRPF1 9453 # 9460
STRPF2 9458 # 9442 9453 9750
STRPF3 9456 # 9449
STRPF4 9460 # 9306 9320
STSELF 3931 # 3918 4527 4853
SUB 5473 # 5466 5467 5468 5469
SWEEP 8105 # 7951 7952 7953 7954 7955 7956 7957 7958
TAKINT 3827 # 4811 8071 9334
TDC 4481 #
TDN 4479 # 4269 4270 4378 4379 4387 4388 4470 4473
TDO 4482 #
TDX 4469 # 4382 4391 4396 4400 4405 4409 4414 4418 4423 4427 4432
4436 4441 4445
TDXX 4477 # 4380 4384 4389 4393 4398 4402 4407 4411 4416 4420 4425
4429 4434 4438 4443 4447
TDZ 4480 #
TIMBO 8620 # 7966
TIMBO1 8604 # 8624
TIMCI 8599 # 7969 7970 7971
TIMCO 8597 # 7968
TIMCO1 8470 # 8598
TIMDO 8618 # 7967
TMTR1 8646 # 8638
TRAP 3755 #
TRAPX 3761 # 3755 3757
TRNABT 10162 # 10166
TRNAR 10148 # 10505
TRNFNC 10160 # 10150 10152 10163 10164 10165 10168
TRNNS1 10186 # 10176
TRNNS2 10188 # 10186
TRNRET 10171 # 10161
TRNSIG 10165 # 10167
TRNSS 10176 # 10172
TRNSS1 10192 # 10177
TSX 4472 # 4383 4392 4397 4401 4406 4410 4415 4419 4424 4428 4433
4437 4442 4446
TSXX 4475 # 4381 4385 4390 4394 4399 4403 4408 4412 4417 4421 4426
4430 4435 4439 4444 4448
UNHALT 4781 # 4775
UP 10672 # 10661
UP1 10678 # 10672 10680
UP1PX 10728 # 10714 10730
UP2 10682 # 10677 10678 10679
UP2PX 10732 # 10728 10729
UP3 10684 #
UP3PX 10734 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-30
; Cross Reference Listing
UP4 10687 # 10684
UP4PX 10737 # 10734
UPPX 10714 #
UUO 5151 # 4630 4642 4644 4652 4653 4666 4671 4693 4761 4807 4973
5062 5063 5209 5322 5859 5860 5890 7977 7978 8047 8090 8099
8146 8193 8502 8618 9509 9513 9695 10468 10477
UUO107 4760 #
UUOC1 5175 # 5173
UUOC2 5182 # 5094 5158
UUOCOM 5173 # 5088 5153
UVERS 3955 # 8125
UXCT 5245 # 4781
WGRANT 8070 # 8048 8074 8194
WGRNT1 8073 # 8070
WGRNT2 8075 # 8073
WRFAIL 9180 # 9183
WRHPT 9184 # 9171 9178
WXFER 8060 # 8056
XBLT 10571 # 7709
XBLT3 10575 # 10573
XBLT4 10597 # 10575
XBLTDN 10581 # 10589
XBLTD1 10588 # 10585
XBLTPF 9420 # 9315 10612
XBLTUP 10603 # 10611
XBLTU1 10609 # 10599
XBLTX 10592 # 10605
XCT 4793 # 4788
XCT1 5241 # 4793
XCTGO 3753 # 3756 3767 5245
XCTW 3767 # 3658 5103 8721 8722 8724 8727
XFERW 4860 # 4845 5093 5752 5819 6382 7135 7227 7856 8515 8533 8679
8730 8731 8818 8819 10557
XHLLI 4013 # 4037
XJRSTF1 4706 # 4633
XJRSTF2 4727 # 4721 4724
XJRSTF3 4730 # 4727
XLATE 10146 # 10136
XMOVEI 4006 # 4252
XMOVEI1 4008 # 4014
XOR 4282 # 4275 4276 4277 4278
XPCW1 4693 # 4635
XPCW2 4716 # 4702
XSFM1 4679 # 4646
XSFM2 4704 # 4682
(D) J 2193 #
(U) KLPAGE 1847 #
OPTIONS 1850 # 8127
(U) LONGPC 1856 #
OPTIONS 1859 # 8127
(U) MACRO%
A INDRCT 2220 # 3777 3779 3781 3783 3801 3803
A READ 2221 # 3786 3787 3788 3789 3799 3800
ABORT INSTR 2226 # 8653 9356
AC0 2227 # 4887 4905 5224
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-31
; Cross Reference Listing
AC0_AR 2228 # 3915 3920 3948 4195 4938 5365 5384 5399 5783 6415 6427
6579 6615 7007 7060 7264 7298 7551 7683 9415 9446 9455 9859
9925 10044 10046 10073 10588 10590 10604 10606 10668
AC1_AR 2229 # 3950 5335 5790 5837 5838 6435 6506 6508 7042 7137 7265
7271 7384 7386 9420 9447
AC2_AR 2230 # 5794 5848 9421 10592
AC3_AR 2231 # 5777 5797 5850 5851 9437 9453 9456 9725 9749 9781 9855
9900 9901 9935 9972 9984 10015
AC4 2233 # 9442 9890 9940
AC4_AR 2237 # 9442 9940
AC5 2239 #
AC5_AR 2243 #
AD FLAGS 2244 # 3998 4193 4209 4542 4557 4589 4605 5461 5474 5760 5762
AD LONG 2245 # 5851 6227 9977
ADMSK 2246 # 3719 4679 4694 4841 4932 4937 5089 5170 5175 5179 5183
8702 8736 8760 8782 8797 8827 9366
AR+ARX+MQ_0.M 2473 # 6301 6977 7882 9771 10132
AR+MQ_0.M 2474 # 9909
AR+MQ_0.S 2475 # 7472
AR0-3 DISP 2477 # 8751 8770 9000 9080 10149
AR0-8_# 2478 # 3955 5190 5191 5192 7285 7337 7389 7524 7737 7739 7745
7778 7859 7872 8127 8477 8489 8572 9697 9887 10007
AR0-8_# AND AR0-8 2479 #
AR0-8_# OR AR0-8 2480 # 9183
AR0-8_#+SC 2481 # 9511
AR0-8_-SC-1 2482 #
AR0-8_FE 2483 # 8946 9703 9892
AR0-8_FE OR # 2484 # 9893
AR0-8_FE OR SC 2485 # 8968
AR0-8_FE# 2486 # 9890
AR0-8_FE+# 2487 # 8723 8787 8851
AR0-8_FE+1 2488 #
AR0-8_FE+SC 2489 #
AR0-8_FE-SC 2490 #
AR0-8_FE.M 2491 # 10012
AR0-8_FE.R 2492 #
AR0-8_SC 2493 # 7127 7129 8947
AR0-8_SCAD 2494 # 7127 7129 8946 8947 9703 9892
AR0-8_SCAD# 2495 # 8723 8787 8851 9183 9511 9893
AR0-8_SCAD.M 2496 # 8968 10012
AR0-8_SCAD.R 2497 #
AR12-17_PC SEC 2498 # 4951 4956
AR12-17_PREV SEC 2499 # 4680 4697 5177 8512 9369
AR18-21 DISP 2500 # 10151
ARL+ARX+MQ_0.M 2524 #
ARL+ARX_0.M 2525 # 7019 7052 8591 8654
ARL_0S 2505 # 4153 4167 9106
ARL_0.C 2502 # 8033
ARL_0.M 2503 # 4954 4955 9003 9004 9005 9087 9088 9554 10089 10092 10324
10402 10428 10457 10528
ARL_0.S 2504 # 4888 4891 8615
ARL_1S 2507 # 4154 4168 9562
ARL_1S.M 2508 #
ARL_1.M 2506 # 4008 5173
ARL_AC0 2509 # 4128 4136 4143
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-32
; Cross Reference Listing
ARL_ARL 2510 # 4029 4130 4144 4174 4175 5180 7040 8138 8189
ARL_ARL.M 2511 # 8465
ARL_ARL.S 2512 # 4014
ARL_ARR 2513 # 4133 4139 4140 4160 4161 5223 8015 9414 10666 10720
ARL_ARR.M 2514 # 8131 8179 8524 8608
ARL_ARR.S 2515 # 8126
ARL_ARX (ADX) 2516 # 8948
ARL_ARXL 2517 # 4681 4960 8605 9370
ARL_ARXL.M 2518 #
ARL_BRL 2519 # 4698 6790 8503
ARL_BRL.M 2520 # 10648
ARL_BRL.S 2521 # 5166
ARL_SHIFT 2522 # 9084
ARL_SIGN 2523 # 5228
ARR+MQ_0.S 2538 #
ARR_0S 2530 # 4160 4174
ARR_0.C 2527 #
ARR_0.M 2528 # 8537
ARR_0.S 2529 # 5341
ARR_1S 2531 # 4161 4175
ARR_AC0 2532 # 4029 4130 4133 4139
ARR_AC0.S 2533 # 4014
ARR_ARL 2534 # 4136 4143 4144 4167 4168 4954 4955 8465 8948 8953 10648
ARR_ARR 2535 # 4008 4128 4140 4153 4154 4681 4698 5223 5228 8015 8131
8179 8524 8608 9370
ARR_BR 2536 #
ARR_PC+1 2537 # 4960
ARX+MQ_0.M 2628 # 5336 5596 5601 6146 6992 9589
ARX+MQ_0.S 2629 # 5983
ARX0-3 DISP 2631 # 8654
ARX0_MQ35 2630 # 9836
ARX_-AC0 2542 #
ARX_-BRX 2543 # 7008
ARX_-SLEN 2544 # 9438
ARX_0S 2548 # 4749 5434 5540 5764 5818 5904 5906 5954 6012 6435 6469
6566 6982 7042 7348 7496 8524 8535 8571 9841 9889 9894 10071
ARX_0.C 2545 #
ARX_0.M 2546 # 5330 6252 7781 10085
ARX_0.S 2547 #
ARX_1B1 2550 # 6189
ARX_1B17-1 2551 # 5163 8499
ARX_1S 2552 # 3714 6320 7368 9587 9705 9900
ARX_1 2549 # 5223 6572 7550
ARX_2 2553 # 7499
ARX_AC0 2555 # 5351 9694 9970 10316
ARX_AC0 COMP 2556 #
ARX_AC0+1 2557 # 4837 4842
ARX_AC1 2558 # 4207 4208 5372 5388 5806 6436 7888
ARX_AC2 2559 # 7709
ARX_AC3 2560 # 5748 5792 10088
ARX_AC4 2561 # 9890
ARX_AR 2563 # 4026 4028 4772 5406 5408 5412 5426 5613 5615 5626 5754
5922 5925 6171 6206 6407 6409 6412 6515 6611 6674 6787 6903
7132 7152 7160 7304 7306 7308 7322 7396 7455 7520 7535 7537
7734 7772 7869 7883 8187 8488 8490 8518 8620 8726 8768 8788
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-33
; Cross Reference Listing
8837 8856 9113 9352 9354 9454 9699 9702 9735 9773 9812 9837
9855 9857 9909 9968 10034 10076 10149 10223 10228 10239 10283 10298
10301 10330 10402 10428 10435 10528 10642
ARX_AR (AD) 2564 # 5245 5360 5375 5377 5382 5393 7136 8465 8904 8905 8947
9120 10235 10291
ARX_AR ANDCA BR 2566 #
ARX_AR AND ADMSK 2565 # 8797
ARX_AR SIGN 2567 # 6193
ARX_AR SWAP 2568 # 4720 4723 4943 5179 8137 8185 8532 8602 8635 8953 9129
9174 10089 10151
ARX_AR*4 COMP 2569 # 10005
ARX_AR*MSK 2570 # 10171
ARX_AR+1 2571 # 10010
ARX_AR+CBR 2573 #
ARX_AR-1 2575 # 4905 9818 9859 9860
ARX_AR-BR 2576 #
ARX_ARX AND ADMSK 2578 # 8827
ARX_ARX ANDC ADMSK 2579 # 4679
ARX_ARX*-6 2580 # 5342
ARX_ARX*.25 2581 # 5999
ARX_ARX*.5 2582 #
ARX_ARX*2 2583 # 4215 5753 6217 6383 7228 7761 7763 7857 7901 8680 9896
10342
ARX_ARX*2 COMP 2584 # 9085
ARX_ARX*4 2585 # 7500 10340
ARX_ARX*4 COMP 2586 #
ARX_ARX*8 2587 # 5802 8511 8512
ARX_ARX*BRX 2588 # 6342 6582 7554
ARX_ARX*EXPMSK 2589 #
ARX_ARX+1 2590 # 5345 10688 10738
ARX_ARX+CBR 2592 #
ARX_ARX-1 2594 # 5340 7029 10576 10588
ARX_ARX-1 (AD) 2595 # 9740
ARX_BR 2597 # 5416 5811 9014
ARX_BR*2 2598 # 5807
ARX_BR+1 2599 # 10604
ARX_BRX 2600 # 4748 5086 5152 5430 5448 6421 6450 6579 7552 8769 9854
ARX_BRX COMP 2601 # 6550 6553 7486 7489
ARX_BRX+1 2602 # 9707 9737 9776 10606
ARX_DSTP 2603 # 9870 10254
ARX_DSTP2 2604 # 10282 10476
ARX_E1 2605 #
ARX_FILL 2606 #
ARX_FM 2607 # 9081 9204 9212 9216 9218 9283 9839 9870 10031 10201 10227
10254 10282 10476 10502
ARX_FM(VMA) 2608 # 3756
ARX_MEM 2609 # 3767 3826 3827 4191 4192 4860 4889 4892 5156 6836 6837
6885 6886 6922 7758 9546 9547
ARX_PC 2611 # 8949 9365
ARX_PC+1 2612 # 4635 4646 5182
ARX_SHIFT 2613 # 5116 5380 5396 5411 5442 5633 5636 5791 5795 5803 5809
5820 5924 6220 6226 6284 6902 6938 6941 7310 7317 7522 8536
8665 8667 8669 8671 8826 9003 9013 9088 9965
ARX_SRCP 2614 # 9839 10201 10502
ARX_SRCP2 2615 # 10227
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-34
; Cross Reference Listing
ARX_SV.AR 2617 # 9212
ARX_SV.ARX 2618 # 9216 9218 9283
ARX_SV.BR 2619 # 9204
ARX_SV.VMA 2620 # 9081
ARX_T0 2622 #
ARX_T2 2623 # 10031
ARX_VMA HELD 2627 # 8949
AR_(AR+2BR)*.25 2252 # 5570 5930
AR_(AR+BR)*.25 2253 # 5552 5568
AR_(AR-2BR)*.25 2254 # 5554
AR_(AR-BR)*.25 2255 # 5556 5572
AR_(ARX OR AR*4)*.25 2256 #
AR_-AC0 2257 #
AR_-AR 2258 # 5907 6355
AR_-AR LONG 2259 # 5658 5661 6083 6388 7234 7403 7557 9978
AR_-BR 2260 # 3998 5668 5678 5851 6555 7255 7491 9974 10041
AR_-BR LONG 2261 # 4193 4209 5813 5816 5847 9933
AR_-BR*2 LONG 2262 #
AR_-BRX 2263 # 5613
AR_-DLEN 2264 #
AR_-SLEN 2265 # 9451 9723
AR_0.C 2266 # 4646 7368
AR_0.M 2267 # 5393 9745 10010
AR_0.S 2268 # 4696 5176 9368
AR_0S 2269 # 4160 4174 4195 4212 4227 4764 4801 5161 5350 5540 5764
6225 6317 6469 6566 6902 6903 6959 6982 7060 7137 7152 7241
7336 7348 7496 8461 8476 8518 8528 8532 8571 8574 8582 8599
8602 8611 8620 8635 8658 8665 8667 8669 8671 8719 8726 8788
8794 8945 8961 9374 9437 9702 9773 9889 9894 10071 10076 10441
AR_1 2270 # 5600 9130 9898
AR_1 LONG 2271 # 9980
AR_1S 2272 # 4161 4175 4373 9710 9901 10004
AR_2 2273 # 10556
AR_2(AR*BR) 2274 # 5656 5659 5664 5673 5689 5690 5691 5692 5720 5721 5722
5723 5831 5833 7154 7155 9920
AR_2(AR+1) 2275 # 5344
AR_2(AR+BR) 2276 # 5659 5664 5689 5692 5720 5723 5833 7154
AR_2(AR+BR) LONG 2277 # 9920
AR_2(AR-BR) 2278 # 5656 5673 5690 5691 5721 5722 5831 7155
AR_AC0 2280 # 3860 4026 4029 4130 4133 4139 4574 4604 4883 4885 4943
4953 5330 5333 5351 5373 5389 5406 5408 5473 5496 5519 5602
5620 5626 5754 5778 5809 5913 5956 5986 6147 6407 6430 6438
6439 6479 6515 6679 7073 7243 7260 7297 7322 7340 7351 7396
7455 7877 7902 9812 9965 10034 10573 10643
AR_AC0 COMP 2281 # 9588
AR_AC0+1 2282 # 4589 4613 10585 10586
AR_AC1 2283 # 5843 5844 6464 6465 6511 7027 7314 7320 7321 7347 7392
9589 10571
AR_AC1 COMP 2284 #
AR_AC1*2 2285 # 5371 5597 5750 6386 6499 6501 7275 7334 7381 7382 7454
AR_AC2 2286 # 5804
AR_AC3 2287 # 9448 9586 9591 9897 9968 9982 10006 10457
AR_AC3*2 2288 #
AR_AC4 2289 #
AR_ADMSK AND VMA HEL 2291 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-35
; Cross Reference Listing
AR_AD*.25 LONG 2290 # 5658 5661 6083 6388 7234 7403 7557 9978 10075
AR_ARX 2346 # 3753 3829 4663 4848 4853 4855 5180 5185 5384 5399 5430
5434 5790 5802 5807 5997 6251 6424 6427 6435 6542 6791 6838
6887 6988 7136 7264 7269 7478 7749 7780 8138 8467 8622 8786
8904 8905 8919 8950 8969 9011 9041 9046 9120 9125 9184 9212
9215 9217 9420 9442 9446 9515 9548 9552 9555 9557 9560 9696
9781 9841 9900 9972 9993 9995 10019 10092 10193 10230 10235 10291
10324 10325 10326 10351 10355 10384 10403 10433 10481 10489 10543 10544
10545 10546 10590 10592
AR_ARX (ADX) 2348 # 5360 5376 5377 5383 5391 5398 6223 6282 6415 6428 6543
7018 7479
AR_ARX (AD) 2347 # 3777 3781 3786 3788 7317 7326 9175 9414 9855 9857
AR_ARX ANDC ADMSK 2350 # 4694 5089 5175 9366
AR_ARX AND ADMSK 2349 # 5183
AR_ARX COMP 2351 # 9701
AR_ARX OR PUR 2353 #
AR_ARX*.25 2355 # 5999 9113
AR_ARX*.25-AR-1 2356 # 10008
AR_ARX*2 2357 # 7072
AR_ARX*4 2358 #
AR_ARX*4 COMP 2359 #
AR_ARX*AC1 2360 # 7038 7040
AR_ARX*BR 2361 # 7549 8513
AR_ARX*BRX 2362 # 4701 8189 9372 9749
AR_ARX*E1 2363 #
AR_ARX+1 (AD) 2364 # 10285
AR_ARX+AR*4 2365 #
AR_ARX+BR 2366 # 7532 9412
AR_ARX+XR 2367 # 3779 3783 3787 3789
AR_ARX-1 2368 # 5346 7051 9818 9859 9860
AR_ARX-BR 2369 # 9455
AR_AR AND ADMSK 2293 # 4841 4932 4937
AR_AR AND CSMSK 2295 # 9054 9134 9149
AR_AR OR PUR 2296 # 9056 9171
AR_AR SWAP 2298 # 3987 4472 4475 4745 5902 5953 5982 7880 8538 8623 9204
10667 10721
AR_AR*.25 2300 # 7776
AR_AR*.25 LONG 2301 # 5551 5574 6011 6254 6303 6532 6534 7467 7469 7513 7766
AR_AR*.5 2302 # 6340 7775
AR_AR*.5 LONG 2303 # 6536 6570 7471 7502 7516 10136 10504
AR_AR*1.25 LONG 2304 # 10075
AR_AR*10 2305 # 9899
AR_AR*10 LONG 2306 # 9992 10097
AR_AR*2 2307 # 3719 8630
AR_AR*2 LONG 2308 # 6257
AR_AR*4 2309 # 8706 8710 8752 8771
AR_AR*4 LONG 2310 # 6259
AR_AR*5 LONG 2311 # 9919
AR_AR*8 2312 # 7258 7267 7748 10336 10344 10379
AR_AR*8 LONG 2313 # 6261 6280 6293
AR_AR*AC0 2314 # 4237 4247 4266 4282 4292 4302 4312 4322 4333 4353 4363
4480 4481 4482 5226 5229 5461 6991
AR_AR*AC1 2315 #
AR_AR*BR 2316 # 4753 5100 5178 7525 8514 9147 9971
AR_AR*EXPMSK 2317 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-36
; Cross Reference Listing
AR_AR*MSK 2318 # 10173
AR_AR*SFLGS 2319 # 9454 9458 9730 9924
AR_AR*SLEN 2320 # 9449
AR_AR*T0 2321 # 9444 9851
AR_AR+1 2323 # 3769 4542 6537 6549 6784 6788 7485 8034 8745 9742 10035
10225 10233 10281 10289 10372 10407 10409 10533
AR_AR+1 LONG 2324 # 10035
AR_AR+1-AR0 2325 # 10229 10284
AR_AR+BR 2326 # 5693 5696 5706 5760 5772 6227 6337 6431 6478 7156 7159
7323 7342 7350 7501 7779 7889 8555 8593 8656 8796 9453 9729
10666 10720
AR_AR+BR LONG 2327 # 5706 5760 5772 6478 7350 8593 8656
AR_AR+E1 2328 # 10083 10137
AR_AR+SBR 2330 #
AR_AR+T0 2332 # 7053
AR_AR+T1 2333 # 6986 7017 7021
AR_AR+XR 2338 #
AR_AR-1 2340 # 4557 4605 4886 8746 10186
AR_AR-BR 2341 # 5474 5694 5695 5709 5762 7157 7339 7747 9699 9726 10649
10650
AR_AR-BR LONG 2342 # 5709 5762
AR_AR-BR-1 2343 #
AR_AR-T0 2344 #
AR_BRX 2384 # 5169 5436 5615 5811 8770 8773 8847 9510 10485 10534
AR_BRX+1 2385 # 10604
AR_BR 2371 # 4897 5426 5439 5622 5791 5795 5850 5890 6206 6218 6336
6421 6450 6544 6779 6780 6781 6782 6966 7252 7256 7338 7378
7480 7531 7741 7746 7860 7873 7879 8047 8090 8099 8126 8146
8193 8502 8580 8618 8944 8966 9012 9405 9509 9513 9838 9854
10467 10487
AR_BR COMP 2372 # 6550 6553 7486 7489 9700
AR_BR COMP LONG 2373 # 5815
AR_BR LONG 2374 # 5821 5823 5846 7311 7371 9263 9290 9315 9903 9916 9925
9931 10038 10069 10078 10094 10612
AR_BR OR ARX 2375 #
AR_BR*.5 2376 #
AR_BR*.5 LONG 2377 # 9984
AR_BR*2 2378 # 5915
AR_BR*2 LONG 2379 # 5424 6288
AR_BR*4 2380 #
AR_BR*4 LONG 2381 # 6290
AR_BR+1 2382 # 10606
AR_BR+1 LONG 2383 #
AR_CACHE CNT 2387 # 8588 8641
AR_DLEN 2388 # 9294 9298 9306 9320 9708 9715 9718 10176 10200
AR_DLEN COMP 2389 # 9267
AR_DLEN+1 2390 # 9790
AR_DSTP 2391 # 9429 9706 9870 10182 10254 10354 10363
AR_DSTP+1 2392 #
AR_DSTP2 2393 # 10283 10549
AR_DSTP2+1 2394 #
AR_DSTW 2395 #
AR_E0 2396 # 9695
AR_E1 2397 #
AR_EBOX CNT 2398 # 8587 8640
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-37
; Cross Reference Listing
AR_EBUS 2399 # 3723 3725 8058
AR_EBUS REG 2400 # 4803 8516 8534 8920 8935
AR_FILL 2401 # 9789
AR_FM[] 2403 # 9398
AR_FM 2402 # 5820 5840 6981 7043 7061 9001 9018 9051 9055 9071 9082
9108 9159 9176 9198 9259 9294 9298 9306 9310 9320 9335 9400
9429 9695 9706 9708 9715 9718 9735 9783 9789 9839 9870 10020
10032 10134 10150 10152 10176 10177 10182 10189 10200 10201 10228 10254
10283 10354 10363 10502 10511 10549 10559 10561
AR_FM(#) 2405 #
AR_FM(VMA) 2407 #
AR_INTERVAL 2408 # 8601
AR_MEM 2410 # 3871 3893 3904 4718 4719 4722 4734 4860 4888 4891 4907
4908 6787 6897 6899 6922 6928 7730 7771 7854 7868 8017 8744
8753 8998 9013 9033 9053 9072 9095 9376 9692 9828 9829 10018
10087 10148 10331 10459 10474 10507 10512 10581 10609 10677 10678 10728
AR_MQ 2411 # 5380 5396 5724 5725 5726 5727 5773 5779 5794 5841 6226
6434 6486 6506 6508 6938 6990 7160 7356 7384 7386 7414 7677
8768 9842 10044 10046 10256 10493 10583
AR_MQ COMP 2412 # 6526 7465
AR_MQ*.25 2413 # 6284
AR_MQ*2 2414 #
AR_MQ*4 2415 # 8837
AR_MQ*AC1 2416 #
AR_MQ*AC2 2417 #
AR_MQ*AC3 2418 #
AR_MQ+1 2419 # 3712 10659 10713
AR_MQ+AC0 2420 #
AR_MQ-1 2421 # 10576 10588 10603
AR_MQ-BR 2422 #
AR_MTR REQ 2423 # 8629
AR_PC 2424 # 4751 5159 9352 9354
AR_PC FLAGS 2425 # 5179
AR_PC+1 2426 # 4839 4928 4930
AR_PERF CNT 2427 # 8586 8639
AR_PERIOD 2428 # 8603
AR_PUR+AR0 2430 #
AR_SERIAL 2433 # 8124
AR_SFLGS 2434 # 9783 10134 10150 10152 10177 10511 10559 10561
AR_SHIFT 2435 # 3949 4213 4749 5116 5166 5337 5339 5358 5363 5447 5448
5506 5789 5792 5805 5849 5927 6426 6436 6540 6567 6579 6910
6941 6943 7315 7476 7497 7551 7679 7681 7885 7888 8107 8503
8659 8789 9014 9356 9438 9711 9902 9936 10077 10160 10316 10332
AR_SIGN 2436 # 3915 3948 5411 5412 5423 5507 5633 5636 5783 5848 5921
5922 6172 6220 6409 6412 7306 7308 7520 7862 7869 7883 9935
AR_SLEN 2437 # 10189
AR_SLEN COMP 2438 # 9460 9728 9746 9911 9917
AR_SLEN+1 2439 # 9714 9906 10066 10187 10190
AR_SRCP 2440 # 9259 9735 9839 10201 10502
AR_SRCP+1 2441 #
AR_SRCP2 2442 # 10228
AR_SRCP2+1 2443 #
AR_SV.AR 2444 # 9400
AR_SV.ARX 2446 #
AR_SV.BR 2447 # 9001 9018 9051 9055 9071 9082 9108 9159
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-38
; Cross Reference Listing
AR_SV.PFW 2448 # 9176 9310 9335
AR_SV.SC 2449 # 9198
AR_SV.VMA 2450 #
AR_SWD 2452 #
AR_T0 2454 # 5820 6981 7043 10020
AR_T1 2455 # 5840 10032
AR_T2 2456 # 7061
AR_TIME BASE 2457 # 8585 8638
AR_VMA HELD 2468 # 9352 9354
AR_XR 2469 # 4664
AR_[] AND FM[] 2250 #
B DISP 2635 # 4189 4470 4473 4477 4853 5362 5417 5437 5441 5755 5887
5902 6383 7228 8033 8583 8591 9615 9616 9704 9891 9899 10077
10135 10172 10176
B WRITE 2636 # 4804 5506 6351 6355 8018 8190 8538
BLKO TIM(L) 2637 # 8622 8624
BLKO TIM(R) 2638 # 8623
BR_AR LONG 2639 # 4216 5423 5540 5707 5710 5811 5813 5815 5816 5821 5823
5846 5847 6218 6280 6293 6317 6320 6386 6391 6399 7368 7371
7380 7472 8674 8676 9898 9906 9916 9980 9982 10038 10041 10065
BYTE DISP 2640 # 4775 6605 6611 6660 6674 6958 6964 8012 8557 9140 9590
10216 10262 10429 10474 10475 10476 10489 10529
BYTE INDRCT 2644 # 6807 6809 6811 6813 6829 6831 6857 6859 6861 6863 6878
6880
BYTE PREV & CLR SR3 2646 #
BYTE PREV & SET SR2 2647 #
BYTE PREV & SET SR3 2648 #
BYTE READ 2650 # 6816 6817 6818 6819 6827 6828
BYTE READ PC 2651 #
BYTE RPW 2652 # 6866 6867 6868 6869 6876 6877
CALL 2659 # 3715 4680 4697 4730 4750 4802 4845 5088 5093 5094 5153
5158 5162 5164 5427 5498 5520 5779 5796 5819 5835 5841 5987
5989 6407 6471 6486 6499 6501 6517 6612 6614 6675 6680 6959
7007 7060 7062 7135 7227 7232 7236 7240 7243 7250 7255 7261
7270 7297 7300 7312 7318 7341 7345 7349 7352 7360 7370 7378
7381 7382 7385 7387 7397 7406 7414 7735 7765 7856 7878 7904
8011 8017 8048 8105 8113 8115 8120 8123 8125 8134 8160 8183
8461 8477 8478 8488 8495 8500 8515 8528 8533 8544 8545 8573
8580 8597 8599 8611 8620 8630 8679 8726 8752 8753 8756 8767
8771 8772 8792 8795 8812 8817 8822 8835 8836 8839 8840 8845
8846 8848 8854 9353 9369 9404 9714 9717 9736 9774 9782 9789
9840 9850 9871 9907 9983 10004 10018 10019 10033 10040 10043 10091
10236 10254 10257 10292 10430 10441 10503 10505 10509 10530 10557 10560
10659 10677 10678 10679 10713 10728 10729
CALL [] 2663 # 4680 4697 7227 7232 7236 7240 7243 7250 7255 7261 7270
7297 7300 7312 7318 7341 7345 7349 7352 7360 7370 7378 7381
7382 7385 7387 7397 7406 7414 7735 7765 7856 7878 7904 8478
8545 8573 9369
CALL.C 2666 #
CALL.M 2667 # 5598 5602 5665 5674 5771 6507 6509 6606 6661 6963 6980
6985 8131 8180 8466 8525 8592 8609 8655 8751 8855 9771 10132
10215
CALL.S 2668 # 4192 4208 5752 5958 6382
CALL[] 2664 #
CBR 2675 # 9040 9046 9119 9125
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-39
; Cross Reference Listing
CLR ACC+SET UCODE 2677 #
CLR ACCOUNT EN 2678 # 3722 8901 8903
CLR AR 2679 # 3714 6217 6320 7284 7333 7335 7388 7518 7736 7743 7772
7777 7857 7870 9587 9705 10031
CLR ARX 2680 # 5436 5497 5518 5620 6218 6223 6283 6336 6337 6429 6543
7061 7318 7326 7479 9710 9898
CLR EBUS DEMAND 2681 # 8059
CLR EXP 2682 # 9969
CLR FE 2683 # 3920 3942 4764 4781 6301 7253 7257 7388 7454 7885
CLR FPD 2684 # 3936 6615 10071
CLR MQ 2685 # 5748 6571 7771 7868 7889
CLR MTR PA EN 2686 #
CLR PT LINE 2688 # 8556
CLR PT LINE (KEEP) 2689 #
CLR P 2687 # 4009 5174
CLR SC 2690 # 3920 3942 4764 5837 7339
CLR SPECIAL CYCLE 2691 # 9027
CLR SR2 2692 #
CLR SR3 2693 # 6438
CLR TRACKS EN 2694 #
CLR TRK+PA EN 2695 #
CMS FETCH 2696 # 9844
COMP FETCH 2697 # 4508
CONI APR(L) 2698 # 8137
CONI APR(R) 2699 # 8136
CONI MTR 2700 # 8613
CONI PAG 2701 # 8530
CONI PI(L) 2702 # 8188
CONI PI(PAR) 2703 # 8186
CONI PI(R) 2704 # 8184
CONO APR 2705 # 8133 8139
CONO MTR 2706 # 8610
CONO PAG 2707 # 8526
CONO PI 2708 # 8181
CONO TIM 2709 # 8598
CONTINUE 2710 # 4775
CSMSK 2712 # 9054 9134 9149
DATAI APR(L) 2715 # 8121
DATAI PAG(L) 2716 # 5163 8499
DATAO APR 2717 # 8114
DATAO PAG(L) 2718 # 8467
DIAG IN 2719 # 4803 5163 8121 8136 8137 8184 8186 8188 8499 8516 8530
8534 8585 8586 8587 8588 8601 8603 8613 8629 8638 8639 8640
8641 8920 8935
DIAG OUT 2720 # 8114 8133 8139 8181 8467 8526 8598 8610 8622 8623 8624
DISMISS 2721 # 4672 4724 4725 8030 8754
DIVIDE 2722 # 5656 5659 5664 5673 5689 5690 5691 5692 5693 5694 5695
5696 5720 5721 5722 5723 7154 7155 7156 7157
DLEN 2723 # 9267 9294 9298 9306 9320 9700 9701 9708 9715 9718 9747
9790 9792 10176 10188 10200
DLEN_AR 2724 # 9700 9701 9747 9792 10188
DROP EBUS REQ 2725 # 8071
DSTP 2727 # 9429 9435 9706 9870 9870 10182 10254 10254 10280 10297 10298
10301 10354 10363 10489 10490
DSTP2_AR 2735 # 10291 10495
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-40
; Cross Reference Listing
DSTP2 2733 # 10282 10283 10291 10476 10495 10549
DSTP_AR 2731 # 9435 10297 10298 10301 10489 10490
DSTW 2736 #
DSTW_AR 2737 #
E0 2741 # 7228 7235 7263 7268 7344 7451 9510 9695 10178 10440 10442
10557
E0_AR 2742 # 9510
E1 2743 # 7244 7253 7272 7313 7319 7336 7377 7484 7711 7712 7724
7725 7726 7773 7858 7871 9552 9555 9557 9560 10082 10083 10135
10136 10137 10146 10504 10505
E1_AR 2744 # 9552 9555 9557 9560
EA MOD DISP 2746 # 3754 3829 4629 4676 6802 6838 6852 6887 9515 9548 10224
10239 10299 10302
EPT FETCH 2751 # 8721 8722 8727
EPT REF 2752 # 8675 8730 8777 8993
EPT REF CACHE 2753 #
EXEC REF 2754 #
EXIT 2755 # 3987 3996 4128 4130 4133 4136 4140 4144 4153 4154 4160
4161 4167 4168 4174 4175 4227 4237 4247 4266 4282 4292 4302
4312 4322 4333 4343 4353 4363 4373 5461 5474 5523 5614 5616
5621
EXIT DBL 2756 # 3916 5760 5762 5850 5852
EXP TEST 2757 #
EXP TST 2758 # 6341 6571
EXPMSK 2759 # 3770 7457 7459 7523 7660 7661 7667 7668 7892 7895
EXP_-SC-1 2760 #
EXP_-SC-1 TST 2761 #
EXP_1 2762 # 6487
EXP_FE TST 2763 # 6341 6571
EXP_SC 2764 # 7774
EXP_SC.MS 2765 # 7519
EXP_SCAD 2766 # 6487 7774 9969
EXP_SCAD.C 2767 # 6341 6571
EXP_SCAD.MS 2768 # 7519
EXP_SIGN 2769 # 5903 5906 5914 5954 5957 5983 6082 6148 6380 6449 7886
EXP_SIGN.C 2770 # 7781
EXP_SIGN.MS 2772 #
EXP_SIGN.M 2771 # 6483
EXT ADDR 2774 # 9540
EXT BYTE READ 2775 #
EXT INDEX 2776 # 9522 9523 9524 9525 9541
EXT INDRCT 2777 # 9517 9518 9519 9520 9542 9543
FETCH 2820 # 3658 4675 4728 4732 4847 4895 4896 4928 4934 4959 5170
5346 8755 9935 10073
FETCH WAIT 2826 # 3998 9725
FETCH+1 2821 # 10375
FE_# 2780 # 3830 3832 5389 5392 5497 5519 5627 5634 5637 5724 5725
5726 5727 5765 5780 5835 5956 5986 6171 6392 6479 6516 6774
6777 6821 6822 6823 6824 6871 6872 6873 6874 7008 7010 7152
7161 7322 7346 7351 7396 7779 7853 7867 8160 8575 8914 8919
9255 9549 9740 9837 9981 10039 10042 10182 10201 10502
FE_# AND S 2781 # 8719 8786 8835 8844
FE_#+AR0-8 2782 #
FE_#+SC 2783 # 5959
FE_#-SC 2784 # 6939
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-41
; Cross Reference Listing
FE_+# 2785 #
FE_-1 2786 # 5814 8993 8994
FE_-SC-1 2787 # 9213
FE_1 2788 # 5808
FE_AR0-8 2789 # 4772 7259 7268 7749 9693 9697 9812 10007
FE_AR0-8 AND # 2790 #
FE_AR0-8 COMP 2791 # 9887
FE_EXP 2792 # 5903 5906 6380 9203
FE_EXP+1 2793 #
FE_EXP+SC 2794 # 6148
FE_EXP-# 2795 # 6188 6192
FE_EXP-1 2796 #
FE_FE AND AR0-8 2798 # 8999 9080
FE_FE AND # 2797 # 9041 9053
FE_FE OR # 2799 # 9072 9095 9147 9178
FE_FE OR AR0-8 2800 # 9814
FE_FE SHRT 2801 # 9084
FE_FE+# 2802 # 5997 6000 6254 6288 6533 6535 7468 7469 7760 7767 10398
FE_FE+1 2803 # 5541 5551 5553 5555 5557 5569 5571 5573 5574 5579 5771
5924 5925 5928 6290 6340 6506 6508 6536 6570 7357 7359 7384
7386 7471 7502
FE_FE+S 2804 #
FE_FE+SC 2805 # 5915 6451 8964 8966
FE_FE-# 2806 # 6259 6261 6281 6285 6294 6303 9141 10371 10383 10407 10410
10432 10492
FE_FE-1 2807 # 5656 5659 5664 5673 5689 5690 5691 5692 5693 5694 5695
5696 5720 5721 5722 5723 6257 6539 7154 7155 7156 7157 7474
7763 8555 9992 9994
FE_FE-S 2808 #
FE_FE-SC 2809 # 6540 6567 7476 7497
FE_P 2810 # 5336 5339 10160 10229 10284
FE_P AND # 2811 # 8475 8962 10162 10327 10435
FE_P AND SC 2812 #
FE_P OR # 2813 #
FE_P+SC 2814 # 10385
FE_S 2815 # 6801 6803 6851 6853 10223 10238 10239 10297 10298 10301
FE_S+# 2816 #
FE_SC 2817 # 5545 5546 5547 5549 5562 5563 5564 5566 5707 5710 6932
10045 10047
FILL 2827 # 9696 9789 10019
FILL_AR 2828 # 9696 10019
FIN STORE 2829 # 3916 3917 3923 3925 4526 4701 4704 4716 4847 4852 4934
4959 5095 5103 5185 6682 6791 6968 8021 10485 10687 10737
FIN XFER 2830 # 3882 4706 4717 8678 10483
FINISH 2831 # 3950 5797 9940
FM(#)_AR 2835 #
FM[]_AR 2833 # 3719 3770 7228 7233 7235 7241 7244 7261 7262 7269 7270
7273 7301 7313 7319 7336 7343 7353 7377 7391 7411 7450 7453
7773 7780 7858 7860 7871 7873 7901 8700
FM_AR 2832 # 3719 3770 5802 5818 6958 6982 6988 6990 7228 7233 7235
7241 7244 7261 7262 7269 7270 7273 7301 7313 7319 7336 7343
7353 7377 7391 7411 7450 7453 7773 7780 7858 7860 7871 7873
7901 8700 9427 9435 9510 9552 9555 9557 9560 9696 9700 9701
9702 9704 9712 9745 9747 9770 9792 9842 9889 9894 9896 9903
9993 9995 10004 10005 10014 10019 10068 10132 10160 10162 10188 10193
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-42
; Cross Reference Listing
10223 10235 10238 10239 10291 10297 10298 10301 10323 10330 10489 10490
10495 10534
FORCE AR-ARX 2837 # 8901 8903
GEN # AND AR0-8 2841 # 9015 9047 9067 9101
GEN #+AR0-8 2842 # 10334
GEN #+SC 2843 # 5431 6410
GEN #-SC 2844 # 9140
GEN -AR LONG 2845 # 5658 5661 6083 6388 7234 7403 7557 9978
GEN -SC 2846 #
GEN -SC-1 2847 #
GEN 0S 2848 #
GEN 2AR 2849 #
GEN AC0 2851 # 7880
GEN AC0+1 2852 #
GEN AR 2853 # 3799 3801 6437 6489 6827 6829 6876 6878 7239 7373 7559
7731 7782 7863 7905 8055 8058 8060 8062 8073 8075 8081 8190
9514 9540 9542
GEN AR*AC0 2854 # 4508 5232 5234 6398 7379
GEN AR*BR 2855 # 5521 5781 7738 9997
GEN AR*T0 2856 #
GEN AR+1 2857 # 6774 6777 7680
GEN AR+2BR 2858 # 6087
GEN AR+BR 2859 #
GEN AR+E1 2860 #
GEN AR+XR 2861 # 3800 3803 6828 6831 6877 6880 9541 9543
GEN AR-2BR 2862 # 6085
GEN AR-AC3 2863 # 9909
GEN AR-BR 2864 # 5619 7286 7742
GEN AR-BR-1 2865 # 7738 9997
GEN AR0-8 2866 #
GEN ARX 2867 # 6391 6807 6811 6816 6818 6857 6861 6866 6868 7237 9517
9519 9522 9524 9745 9844
GEN ARX COMP 2868 # 10013
GEN ARX*BRX 2870 #
GEN ARX*BR 2869 #
GEN ARX+1 2871 #
GEN ARX+XR 2872 # 3779 3783 3787 3789 6809 6813 6817 6819 6859 6863 6867
6869 9518 9520 9523 9525
GEN ARX-1 2873 # 5225
GEN BR 2875 # 4909
GEN BR*2 2876 # 8951
GEN BR+ARX 2877 #
GEN BRX+1 2878 #
GEN CRY18 2879 # 4613 6278 8026 8034
GEN E1 2880 # 7484
GEN FE 2881 # 9819
GEN FE AND # 2882 # 9131 9174
GEN FE AND AR0-8 2883 #
GEN FE AND S 2884 #
GEN FE AND SC 2885 #
GEN FE+# 2886 #
GEN FE-# 2887 # 7758
GEN FE-1 2888 # 4775
GEN FE-S 2889 #
GEN FE-SC 2890 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-43
; Cross Reference Listing
GEN FE-SC-1 2891 # 6923
GEN MQ 2893 #
GEN MQ-AR 2894 #
GEN P AND SC 2896 # 9133 9176
GEN P AND # 2895 #
GEN P+SC 2897 #
GEN P-S 2898 # 10508
GEN P-SC 2899 #
GEN SC 2900 # 9512
GEN SCAD 0S 2901 #
GEN T1 2902 #
GEN T2 2903 #
GET ECL EBUS 2904 # 3791 3792 3793 3794 4736 8100 8628 8910 9527 9528 9529
9530
GLOBAL 2905 # 3777 3779 3781 3783 3786 3787 3788 3789 6807 6809 6811
6813 6816 6817 6818 6819 6857 6859 6861 6863 6866 6867 6868
6869 9517 9518 9519 9520 9522 9523 9524 9525
HALT 2907 # 4762
I FETCH 2910 # 3882 3915 3917 3923 3925 4006 4013 4195 4704 4810 4852
5228 5335 5365 5384 5399 5422 5447 5666 5675 5795 5836 6224
6225 6580 6615 6682 6968 6987 7072 7553 7679 7681 7682 7732
7740 7744 8029 9718 10011 10591 10597 10605 10687 10737
INDEXED 2914 # 3800 3803 6828 6831 6877 6880 9541 9543
INH CRY18 2915 # 5226 7053 10233 10281 10285 10289 10372 10409
IO INIT 2916 # 8073
IR DISP 2917 # 3861 3872 3883 3894 3905 4673 4699 4707 9553 9556 9558
9561
JFCL FETCH 2919 # 4752
JFCL S 2920 # 4754
JFCL T 2921 # 4751
JUMP FETCH 2922 # 4574 4589 4605 4613
LD PCS 2924 # 4737
LD PREV CTXT 2925 # 5165
LOAD AR 2926 # 4633 4647 4706 4716 4717 5095 5812 6786 7729 7770 7852
7866 8037 8675 8676 8707 8730 8731 8813 8814 8818 8819 8993
8994 9012 9017 9032 9049 9070 9094 9129 9374 9591 9818 10014
10082 10146 10178 10325 10326 10399 10403 10440 10442 10505 10557 10577
10589 10598 10607 10714 10730
LOAD AR (WR TST) 2928 # 10454 10458
LOAD ARX 2930 # 3761 4189 4845 5093 5103 5155 5751 6381 7134 7226 7750
7855 8678 8724
LOAD ARX (WR TST) 2932 # 10482
LOAD EBR 2934 # 8545
LOAD IR 2936 # 3756 3767 5245 9514
LOAD UBR 2940 # 8478
LOAD VMA(EA)_ARX+BR 2942 # 10672 10673 10680
LONG EN 2947 # 3826 6836 6885 9546
MAP 2952 # 3835 4795 8933
MB WAIT 2953 # 3860 3916 4801 5760 5762 5850 5852 8021 8109 8489 8572
8633 8920 8934 9132 9330 9366
MEM_AR 2954 # 4212 4849 4854 5159 5169 5182 6801 6804 6851 6854 8023
8033 8658 8754 9065 10258 10487 10548 10556 10583 10603 10685 10688
10735 10738
MQ_0.C 2956 #
MQ_0.M 2957 # 5388 5396 5924 5925 5928 6422 6425 6507 6509 6985 7385
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-44
; Cross Reference Listing
7387 7415 7550 10044 10046
MQ_0.S 2958 # 4192 4208 5752 6380 7227 7730 7854
MQ_1 2959 #
MQ_1S 2960 #
MQ_AD 2961 # 7372
MQ_ARX 2966 # 5393 5818 6452 6454 7861 9890 10340 10342 10363
MQ_ARX COMP 2967 #
MQ_AR 2962 # 4028 5175 5496 5518 5724 5725 5726 5727 5773 5779 5841
5916 5919 5956 6469 6479 6486 6550 6553 6555 6922 7061 7348
7351 7356 7402 7486 7489 7491 8582 8630 8699 9510 9702 9837
10032 10068 10254 10572 10575 10581 10606
MQ_AR (AD) 2963 #
MQ_AR COMP 2964 #
MQ_AR SWAP 2965 #
MQ_BR 2968 #
MQ_BR COMP 2969 #
MQ_MQ*.25 2970 # 5793 6532 7467 7514
MQ_MQ*2 2971 # 5791 5831 5833 9852
MQ_MQ*BR 2972 # 7372
MQ_SHIFT 2973 # 5375 5382 5391 5398 5436 5764 5921 6222 6282 6415 6428
6430 6434 6543 6544 7326 7479 7480 8475
MSK 2975 # 9712 9903 10138 10171 10173 10323
MSK_AR 2976 # 9712 9903 10323
MUL 2977 # 5541 5551 5553 5555 5557 5569 5571 5573 5574 5579 5771
NO CRY 2980 # 4469 4472
NORM 2981 # 5931 5999 6011 6255 6281 6286 6294 6304 6337 6432 6489
6512 6537 6545 6551 6554 6555 7324 7374 7393 7458 7460 7482
7487 7490 7492 7501 7559 7768 7782 7863 7874 7905
NORM AR 2983 # 5959
NORM -AR 2982 # 6253
NXT INSTR 2984 # 3920 3942
OPTIONS 2986 # 8127
P0 3015 # 9054 9134 9149
P1 3016 # 9056 9171
P10 3017 # 8945 9001 9018 9051 9055 9071 9082 9108 9159 9204
P11 3018 # 8950 9198
P12 3019 # 8943 8944 8969 9176 9180 9310 9335
P13 3020 #
P14 3021 #
P15 3022 #
P16 3023 # 8904 9212 9400
P17 3024 # 8905 9216 9218 9283
P2 3025 # 9040 9046 9119 9125
P3 3026 # 9011 9026 9093
P4 3027 #
P5 3028 # 8953 9081 9184 9228 9235
P6 3029 #
P7 3030 #
PC_VMA 3032 # 4765
PF DISP 3033 # 8910 8921
PFA 3035 #
PFA_AR 3036 #
PHYS REF 3038 # 8814 8819 8824 9012 9017 9032 9049 9065 9070 9094 9129
PHYS REF CACHE 3039 #
POP AR 3041 # 4883
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-45
; Cross Reference Listing
POP AR-ARX 3042 # 4885
POP ARX 3043 #
PORTAL 3045 # 4627
PT FETCH 3046 #
PT REF 3047 # 3761 5093
PT SEL_INVAL 3048 # 8482 8550
PT SEL_INVAL (KEEP) 3049 #
PT SEL_NORMAL 3050 # 8558
PUR 3052 # 9056 9171
PUSH 3055 # 4837 4842
P_# 2988 #
P_#-S 2989 # 10243 10286
P_-SC 2990 # 7074
P_1S 2991 #
P_FE 2992 # 5341 10232 10533
P_FE OR SC 2993 # 8937 10414 10415
P_FE+SC 2994 #
P_FE-S 2995 # 6784 9742 10225
P_FE-S.S 2996 # 6786
P_FE.C 2997 # 10288
P_P AND # 2998 # 7546 10098 10163 10167 10420
P_P AND SC 2999 # 10373
P_P OR # 3000 # 10164 10165 10166 10168
P_P OR SC 3001 # 9185 10192 10562
P_P OR SC# 3002 #
P_P+# 3003 #
P_P+1 3004 # 10374
P_P+S 3005 # 9426
P_P+S.C 3006 # 9431
P_P-S 3007 # 6605 6660 6963 8855 9744 10215 10262
P_SC 3008 # 6980 6985 7041 8511
P_SC# 3009 # 6789
P_SCAD 3010 # 4009 5174 5341 6786 8937 9426 10232 10374 10414 10415 10533
P_SCAD# 3011 # 6789 7546 9431 10098 10163 10164 10165 10166 10167 10168 10243
10286 10288 10420
P_SCAD.C 3012 # 6784 9742 10225
P_SCAD.M 3013 # 6605 6660 6963 6980 6985 7041 7074 8511 8855 9185 9744
10192 10215 10262 10373 10562
R0 3060 # 8934
R1 3061 #
R10 3062 # 9438 9449 9451 9460 9702 9714 9723 9728 9746 9770 9889
9906 9911 9917 10005 10066 10068 10132 10187 10189 10190
R11 3063 # 5818 5840 6982 6986 6988 7017 7021 7262 7270 7303 7315
9993 9995 10032
R12 3064 # 6990 7061 7233 7241 7248 7257 7273 7343 7390 7391 7407
7411 7450 7453 7530 7780 7860 7873 7901 10004 10031
R13 3065 # 9696 9789 10019
R14 3066 #
R15 3067 # 3719 4679 4694 4841 4932 4937 5089 5170 5175 5179 5183
8702 8736 8760 8782 8797 8827 9366
R16 3068 # 7228 7235 7263 7268 7344 7451 9510 9695 10178 10440 10442
10557
R17 3069 #
R2 3070 # 9399
R3 3071 # 8700 9398
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-46
; Cross Reference Listing
R4 3072 # 3770 7457 7459 7523 7660 7661 7667 7668 7892 7895
R5 3073 # 7244 7253 7272 7313 7319 7336 7377 7484 7711 7712 7724
7725 7726 7773 7858 7871 9552 9555 9557 9560 10082 10083 10135
10136 10137 10146 10504 10505
R6 3074 # 5802 5820 6958 6981 7043 7053 7261 7269 7299 7301 7304
7316 7353 9444 9842 9851 10014 10020
R7 3075 # 9712 9903 10138 10171 10173 10323
RD+CLR C CNT 3077 # 8641
RD+CLR E CNT 3078 # 8640
RD+CLR PA 3079 # 8639
RD+CLR TB 3080 # 8638
READ BP2 3082 # 6803 6853
READ EBR 3084 # 8532
READ ERA 3085 # 8158
READ UBR 3086 # 8514
REL EBUS 3087 # 8062 8190
REL ECL EBUS 3088 # 4804 8018 8536 8571 8593 8632 8642 8921 8936
REQ EBUS 3089 # 8048 8194
REQ SV.VMA 3091 # 9228
REQ VMA HELD 3092 #
RETURN0 3096 # 9229
RETURN1 3097 # 4739 4745 5186 6816 6817 6818 6819 6827 6828 6866 6867
6868 6869 6876 6877 7275 8096 8100 8659 8680 10134 10200
RETURN10 3098 #
RETURN12 3099 # 8794
RETURN2 3100 # 4860 6086 6088 6910 6911 7161 7286 8797 8828 9795 10178
10243 10668 10689 10739
RETURN20 3101 # 5180
RETURN3 3102 # 4216 5116 5666 5675 5724 5727 6943 8063 8076 8519 10182
10562
RETURN30 3103 #
RETURN37 3104 #
RETURN4 3105 # 5562 5563 5564 5566 6453 6455 6773 6776 6779 6780 6781
6782 6785 6792 8575 8789 10138 10173 10193
RETURN5 3106 # 5725 5726 10162
RETURN6 3107 # 5545 5546 5547 5549 5668 5677 5708 5711 10258
RETURN7 3108 # 5669 5678
RET[] 3095 # 7660 7661 7667 7668
RSTR FLAGS_AR 3109 # 4668 4718 4719 4722
RSTR VMA_ARX 3111 #
RSTR VMA_MQ 3112 #
RSTR VMA_SV.VMA 3113 # 9184
SBR 3118 # 9011 9026 9093
SBUS DIAG 3120 # 8162
SC_# 3122 # 3714 3723 3725 3833 4194 4207 4210 4748 4750 5159 5160
5333 5440 5449 5503 5523 5614 5616 5620 5755 5784 5804 5848
6219 6277 6283 6431 6489 6511 6524 6538 6544 7132 7134 7250
7255 7323 7369 7373 7392 7463 7481 7515 7521 7526 7533 7535
7537 7559 7782 7883 7887 7903 8105 8468 8488 8490 8494 8518
8529 8544 8583 8594 8636 8656 8706 8726 8788 8812 8817 8822
8933 8998 9086 9352 9354 9437 9587 9705 9899 9925 9932 9934
9966 9978 9981 10039 10042 10075 10148 10177 10332 10351 10510 10559
10561
SC_# AND AR0-8 3123 # 8967 10329
SC_# AND S 3124 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-47
; Cross Reference Listing
SC_# OR SC 3125 #
SC_#+AR0-8 3126 # 6205
SC_#+SC 3127 # 5358 5361 5363 5378 5381 5409 5413 5435 5437 5916 5923
6086 6088 6413 6452 6470
SC_#-SC 3128 # 5116 5919 6454 6679 6897 6940 7305 7309 8847 10256
SC_#-SC-1 3129 #
SC_-SC 3130 # 9120 9130
SC_-SC-1 3131 # 9217
SC_0 3132 # 6928
SC_1 3133 # 5601 5802 5808 7007 9113 9589 10068
SC_1S 3134 # 5838
SC_AR0-8 3135 #
SC_EA 3136 # 5330 5349 5351 5370 5373 5389 6146
SC_EXP 3137 # 5954 7772 9203 9211
SC_EXP+1 3138 # 5983
SC_EXP+SC 3139 # 5957 6483
SC_EXP-# 3140 #
SC_EXP-1 3141 #
SC_EXP-SC 3142 # 5914 6082 6449
SC_FE 3143 # 6902 6938 7304 7307 8573 9184
SC_FE AND # 3144 #
SC_FE+# 3145 # 6221
SC_FE+1 3146 # 10341 10343 10344
SC_FE+SC 3147 # 5394 5397 6614 6904 7517 8840 9873 10217 10331
SC_FE-# 3148 # 10009
SC_FE-1 3149 # 6400
SC_FE-SC 3150 # 6942 6983
SC_FE-SC-1 3151 # 9993 9995
SC_P 3152 # 6611 6674 6788 6977 7038 8856 10441
SC_P AND # 3153 # 10399 10401
SC_P AND SC 3154 # 8936 9119 9125
SC_P-# 3155 # 7073
SC_S 3156 # 6959 7060 9710
SC_SC AND # 3157 #
SEL AC4 3160 # 9938
SEL DSTP 3161 # 9431 9440 10294 10295 10487
SEL DSTP2 3162 # 10288 10289 10494
SET ACC+CLR UCODE 3164 #
SET ACCOUNT EN 3165 # 3753 4811 8633 8644 9229 9334 9376 9405
SET AROV 3166 # 5432 5507 5524 5785 6216 7682
SET CONS XCT 3167 # 4781
SET DATAI 3168 # 8767 8836
SET DATAO 3169 # 8753 9404
SET EBUS DEMAND 3170 # 8056
SET FL NO DIV 3171 # 5990 6519 7399
SET FLAGS_AR 3172 # 3655 5189 9375
SET FLOV 3173 # 7539 7544 7740 7898
SET FPD 3174 # 6801 6834 6851 6883 8037 8038 10034
SET FXU 3175 # 7543 7744 7899
SET HALTED 3176 # 4764
SET IO PF 3177 # 9401
SET MTR PA EN 3178 #
SET NO DIVIDE 3179 # 5611
SET PC+1 INH 3180 # 3762
SET PI CYCLE 3181 # 3713 8643 8699
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-48
; Cross Reference Listing
SET PXCT 3182 # 5244
SET SR1 3183 # 6011 6253
SET SR2 3184 # 5823 6501 6527 7410
SET SR3 3185 # 5843 6439 6467 7466
SET SXCT 3186 #
SET TRACKS EN 3187 #
SET TRK+PA EN 3188 #
SFLGS_AR 3190 # 9704 9894 9896 10160 10162 10193 10330 10534
SFLGS 3189 # 9454 9458 9704 9730 9783 9894 9896 9924 10134 10150 10152
10160 10162 10177 10193 10330 10511 10534 10559 10561
SH DISP 3191 # 5161 7534 8702 8719 10332 10349
SIGNS DISP 3192 # 5628 5822 5824 8951 8988 8990 9741 9745 9772 9792 9841
9842 9856 9889 10013 10070 10095 10133 10161 10188
SKIP FETCH 3193 # 4526
SKP -EBUS GRANT 3195 # 8070
SKP -EBUS XFER 3196 # 8060
SKP -LOCAL AC ADDR 3198 # 4006 4013 5088 5152
SKP -START 3200 # 4771
SKP -VMA SEC0 3202 # 6778 6804 6854 7129
SKP AC REF 3204 #
SKP AC#0 3205 # 3918 4527 6136
SKP AC0+ 3206 # 5708
SKP AC0- 3207 # 5711
SKP AD NE 3208 # 5333 5619 6391 6437 6465 6986 7237 7334 7484 7677 7680
7731 7881 8828 9040 9119 10603
SKP AD0 3209 # 5233 5235 5521 5781 5809 5987 6398 6515 7027 7239 7243
7249 7286 7297 7299 7340 7344 7352 7378 7379 7396 7408 7414
7451 7455 7738 7742 7877 7902 9699 9708 9965 10573
SKP ADX0 3210 #
SKP AR EQ 3211 # 4782
SKP AR EQ -1 3212 #
SKP AR GT BR 3213 # 8793 9815
SKP AR NE 3214 # 7010 9977 10517 10558 10575
SKP AR NE BR 3215 # 5428
SKP AR SIG 3216 # 5503
SKP AR0 3217 # 3990 4164 4171 5227 5344 5603 5635 5638 6171 6484 6788
7232 7236 7406 7734 7765 9203 9211 9451 9460 9723 9773 10229
10284
SKP AR1 3218 #
SKP AR18 3219 # 4150 4157 5331 5349 5351 5370 5373 5389 8476 9554 10172
SKP AR2 3220 # 8468 9908
SKP AR6 3221 # 8708 8710 8744 8769
SKP ARX LE BRX 3222 #
SKP ARX LT BRX 3223 # 10684 10734
SKP ARX NE 3224 # 6251
SKP ARX+MQ NE 3225 # 6524 7463
SKP ARX0 3226 # 9838 10148 10336 10354 10379
SKP ARX2 3227 # 10089
SKP BR EQ 3229 # 5998 6978 9863
SKP BR EQ -1 3230 # 10661
SKP BR0 3231 # 5835 5989 6082 6518 7398 7415 9728 9854 10033
SKP CRY0 3232 # 4837 4842 4887 4906 5225 5814 5832 5833 6085 6087 6278
6549 7485 9139 9910 9974 10008 10066 10138 10585
SKP EVEN PAR 3233 #
SKP EXP NE 3234 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-49
; Cross Reference Listing
SKP FE0 3235 # 5820
SKP FETCH 3236 #
SKP INTRPT 3237 # 3778 3780 3782 3784 3802 3804 4776 4793 4808 5090 6808
6810 6812 6814 6830 6832 6858 6860 6862 6864 6879 6881 8074
8998 9073 9255 9517 9518 9519 9520 9542 9543 9741 9790 9873
10076 10217 10400 10404 10583 10609 10682 10732
SKP IO LEGAL 3238 # 4634 4635 4641 4643 4801 8011 8017 8106 8113 8115 8120
8123 8132 8135 8161 8180 8183 8462 8466 8494 8525 8528 8581
8597 8600 8609 8612 8621 9310
SKP KERNEL 3239 # 4631
SKP MQ EQ -1 3240 # 10085
SKP MQ NE 3241 #
SKP PC SEC0 3245 # 4663 4664 4839 4890 4893 4928 4930 4953 5086 10227 10228
10282 10283 10324 10364 10396 10398 10430 10488 10530
SKP PI CYCLE 3247 # 8023 8026 8035 9335
SKP P NE 3242 # 9054 9149
SKP P!S XCT 3243 # 10648 10673
SKP RPW 3248 # 8914 8919
SKP RUN 3249 #
SKP SC NE 3253 # 5407
SKP SC0 3254 # 5842 10012
SKP SCAD NE 3255 # 5336 5339 9015 9048 9068 9101 9131 9133 9175 9177 9512
9693 9819
SKP SCAD0 3256 # 5359 5362 5364 5378 5381 5394 5397 5409 5414 5431 5914
5917 5919 5923 6188 6192 6205 6221 6411 6413 6449 6453 6455
6680 6897 6904 6924 7305 7759 8848 8855 9744 10256 10335 10371
10383 10408 10411 10432 10492 10508
SKP USER 3257 # 4679 4696 4721 4722 4727 5176 5241 9088 9368
SLEN 3259 # 9438 9449 9451 9460 9702 9714 9723 9728 9746 9770 9889
9906 9911 9917 10005 10066 10068 10132 10187 10189 10190
SLEN_AR 3260 # 9702 9770 9889 10005 10068 10132
SR DISP 3261 # 5843 5844 5849 6256 6258 6260 6262 6289 6291 6292 6302
6321 6341 6548 6571 6899 7009 7011 7541 7550 8943 9236 9415
9427 9435 9456 9793
SRCP 3312 # 9259 9427 9735 9745 9839 9839 10201 10201 10223 10238 10239
10502 10502
SRCP2_AR 3315 # 10235
SRCP2 3314 # 10227 10228 10235
SRCP_AR 3313 # 9427 9745 10223 10238 10239
SR_# 3262 # 5887 5888 5889 7136 9267 9298 9306
SR_0 3263 # 3932 3933 3937 3949 4734 4807 5169 6351 6355 6365 6566
6582 7072 7496 7555 9259 9271 9290 9315 9320 9412 9730 9750
9841 9936 10078 10134 10597 10612
SR_1 3264 # 7382 9263 9275 9294
SR_2 3265 #
SR_BDD 3267 # 10091
SR_BDF 3268 # 10018
SR_BDT 3269 # 9279 9968 10035 10094
SR_BLT(DST) 3270 # 10677 10678 10679
SR_BLT(PXCT DST) 3272 # 10728 10729
SR_BLT(PXCT SRC) 3273 # 10721 10739
SR_BLT(SRC) 3275 # 10667 10689
SR_DB 3276 # 9902
SR_DST 3277 # 9782
SR_DSTF 3278 # 9736
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-50
; Cross Reference Listing
SR_ED(+D) 3279 # 9850 10509 10560
SR_ED(PAT) 3280 # 10316 10397
SR_ED(S) 3281 # 9840 10353
SR_MAP 3296 # 4798
SR_SRC 3299 # 9302 9707 9711 9719 9735 9737 9776
SR_SRC+DST 3300 # 9717 9774
SR_WORD 3305 #
SR_XBLT(DST) 3308 # 10581 10599 10608
SR_XBLT(SRC) 3309 # 10571 10582 10611
STACK UPDATE 3318 # 4887 4905 5224
STORE 3320 # 4026 4207 4210 4213 4542 4557 4682 4698 4702 4932 4933
4943 5094 5101 5157 5167 5184 5186 6773 6776 6785 6789 6790
6792 6943 8034 8127 8166 8594 8657 8659 8745 8746 8777 8778
8823 8824 8932 9056 9171 9365 9371 9373 10467 10483 10486 10543
10544 10545 10546 10549 10582 10610 10732
STORE VMA(EA)_ARX 3322 # 10682
SV.ARX 3333 # 8905 9216 9218 9283
SV.ARX_AR 3337 # 8905
SV.AR_AR 3331 # 8904
SV.AR 3327 # 8904 9212 9400
SV.BR_AR 3340 # 8945
SV.BR 3339 # 8945 9001 9018 9051 9055 9071 9082 9108 9159 9204
SV.IOP 3342 # 8700 9398
SV.IOPF 3343 # 9399
SV.IOPF_AR 3344 # 9399
SV.PAR 3346 # 8934
SV.PAR_AR 3347 # 8934
SV.PFW 3348 # 8943 8944 8969 9176 9180 9310 9335
SV.PFW_AR 3349 # 8943 8944 8969 9180
SV.SC_AR 3351 # 8950
SV.SC 3350 # 8950 9198
SV.VMA 3352 # 8953 9081 9184 9228 9235
SV.VMA_AR 3353 # 8953
SWD 3355 #
SWD_AR 3356 #
SWEEP CACHE 3357 # 8108
T0 3361 # 5802 5820 6958 6981 7043 7053 7261 7269 7299 7301 7304
7316 7353 9444 9842 9851 10014 10020
T0_AR 3362 # 5802 6958 9842 10014
T1 3363 # 5818 5840 6982 6986 6988 7017 7021 7262 7270 7303 7315
9993 9995 10032
T1_AR 3364 # 5818 6982 6988 9993 9995
T2 3365 # 6990 7061 7233 7241 7248 7257 7273 7343 7390 7391 7407
7411 7450 7453 7530 7780 7860 7873 7901 10004 10031
T2_AR 3366 # 6990 10004
TAKE INTRPT 3367 # 3827 4773 5102 5117 5242 6837 6886 9547
TEST AR 3368 #
TEST AR.AC0 3369 # 4477
TEST AR.BR 3370 # 4752 8022 8024 9139
TEST AR.MSK 3371 # 10138
TEST ARX 3372 # 9780
TEST ARX.AR*4 3373 #
TEST BRL 3374 # 8026
TEST CBR 3376 # 9040 9119
TEST FETCH 3378 # 4469 4472 4477 8022 8024 8026 9780
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-51
; Cross Reference Listing
TRAP1 3379 #
TRAP2 3380 # 4849 4854 4902 4903 4907
TRAP3 3381 #
UNCSH PHYS REF 3395 #
UPT FETCH 3396 #
UPT REF 3397 # 5155 5157 8676 8994 9365
USER REF 3398 #
VMA_# 3400 # 5091 5100 5156 8631 8666 8668 8670 8672 9330
VMA_#+AR32-35 3401 # 8987 8989
VMA_40 3402 #
VMA_40+PI*2 3403 # 8704 8705 8712
VMA_41 3404 #
VMA_41+PI*2 3405 # 8717
VMA_420+TRAP 3406 # 3755 3757
VMA_430+MODE 3407 # 5154
VMA_AC3 3408 # 10428 10454 10528
VMA_AR 3409 # 4728 4732 4845 4896 7729 7770 7852 7866 8037 8038 8108
8545 8727 8839 9016 9068 10326 10399 10403 10458 10544 10546
VMA_AR AND ADMSK 3410 # 5170 8702
VMA_AR+1 3411 # 8772 8846
VMA_AR+BR 3412 #
VMA_AR+CBR 3414 # 9046
VMA_AR+E0 3416 # 10557
VMA_AR+E0+1 3417 # 10442
VMA_AR+E1 3418 # 10082 10146 10505
VMA_AR+SBR 3420 # 9011 9026 9093
VMA_AR+XR 3425 #
VMA_AR-1 3426 # 8756
VMA_ARX 3427 # 4895 5094 10325 10582 10610 10732
VMA_ARX AND ADMSK 3428 # 8736 8760 8782
VMA_ARX+1 3429 # 9552 9555 9557 9560
VMA_ARX+BR 3430 # 10714 10730
VMA_ARX+CBR 3432 # 9125
VMA_ARX+XR 3434 #
VMA_BR 3436 # 4675 4847 9065 10598
VMA_E0+1 3437 # 10178 10440
VMA_MQ 3438 # 8478 8594
VMA_MQ+1 3439 #
VMA_PC 3440 # 10223 10238 10298 10301
VMA_PC+1 3441 # 9783 9908 9926 9973 10065 10352
VMA_SV.VMA 3443 # 9235
VMA_VMA HELD 3454 # 3832 8931
VMA_VMA+1 3457 # 4189 4212 4702 4706 4716 4717 4934 4959 5095 5103 5160
5184 5186 5751 5806 6381 6786 7134 7226 7733 7855 8166 8659
8678 8795 9371 9373 9374 9820 9931 9933 10072 10482 10549
VMA_VMA-1 3458 # 6792 8657 10486
WR PT ENTRY 3460 # 8463 9186
WR REFILL RAM 3461 # 8116
WRITE (E) 3463 # 4909
XR 3466 # 3754 3829 6838 6887 9548
[]_#[] 2209 #
[]_ADA[] 2210 #
[]_ADB[] 2211 #
[]_FM[] 2212 # 7253 7257 7263 7268 7272 7299 7303 7304 7315 7316 7344
7451 7523 7530 7711 7712 7724 7725 7726
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-52
; Cross Reference Listing
[]_[]*FM[] 2207 # 7248 7390 7407 7457 7459 7660 7661 7667 7668 7892 7895
[]_[]*[] 2206 #
[]_[]-FM[] 2208 #
(AR+ARX+MQ)*.25 2214 # 6563 7365 7494
(AR+ARX+MQ)*2 2215 # 5545 5546 5547 5549 5562 5563 5564 5566 6539 7364 7366
7474
(MQ)*.25 2216 # 6563 7365 7494
(MQ)*2 2217 # 5545 5546 5547 5549 5562 5563 5564 5566 6539 7364 7366
7474
(D) MACRO%
AC 3505 # 3960 3961 3969 3970 3974 3975 3979 3980 4035 4037 4044
4045 4049 4050 4054 4055 4059 4060 4064 4065 4069 4070 4074
4075 4081 4082 4086 4087 4091 4092 4096 4097 4101 4102 4106
4107 4111 4112 4116 4117 4220 4221 4230 4231 4240 4241 4250
4252 4259 4260 4275 4276 4285 4286 4295 4296 4305 4306 4315
4316 4326 4327 4336 4337 4346 4347 4356 4357 4366 4367 4789
4998 5454 5455 5466 5467 5479 5480
B 3508 # 4223 4233 4243 4257 4262 4278 4288 4298 4308 4318 4329
4339 4349 4359 4369 5457 5469 5482
BLKI 3541 # 7940 7986 7997
BLKO 3542 # 7988 7999
CONI 3545 # 7923 7934 7945 7969 7980 7991 8002
CONO 3546 # 7922 7933 7944 7968 7979 7990 8001
CONSO 3547 # 7925 7936 7947 7971 7982 7993 8004
CONSZ 3548 # 7924 7935 7946 7970 7981 7992 8003
DATAI 3543 # 7919 7941 7987 7998
DATAO 3544 # 7921 7943 7966 7967 7989 8000
DBL AC 3509 # 5511 5512 5584 5585 5589 5590
DBL B 3510 # 5514 5587 5592
EA 3484 # 4021 4037 4252 4619 4817 4819 4915 4916 4973 4974 4975
4976 4978 4979 4980 4981 4983 4984 4985 4986 4988 4989 4990
4991 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5018
5019 5020 5021 5022 5023 5027 5028 5029 5030 5031 5032 5033
5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045
5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057
5058 5062 5063 5209 5322 5859 5860
FL-AC 3511 # 5863 5868 5869 5873 5878 5879 5936 5941 5942 5965 5966
5970 5971 6128 6166
FL-BOTH 3513 # 5866 5871 5876 5881 5939 5944 5968 5973
FL-MEM 3512 # 5865 5870 5875 5880 5938 5943 5967 5972
I 3479 # 3965 4380 4381 4382 4383 4384 4385 4396 4397 4398 4399
4400 4401 4402 4403 4414 4415 4416 4417 4418 4419 4420 4421
4432 4433 4434 4435 4436 4437 4438 4439 4488 4489 4490 4491
4492 4493 4494 4495 4563 4564 4565 4566 4567 4568 4569 4570
4578 4579 4580 4581 4582 4583 4584 4585 4593 4594 4595 4596
4597 4598 4599 4600 4608 4609 4620 4789 4820 4917 4918 5210
5315 5316 5317 5318 5319 5320 5321 5480 5512 5585 5590 5869
5879 5942 5971 6128 7920 7922 7923 7924 7925 7933 7934 7935
7936 7942 7944 7945 7946 7947 7951 7952 7953 7954 7955 7956
7957 7958 7968 7969 7970 7971 7977 7978 7979 7980 7981 7982
7990 7992 7993 8001 8003 8004
I-PF 3480 # 3961 3970 3975 3980 4045 4050 4055 4060 4065 4070 4075
4082 4087 4092 4097 4102 4107 4112 4117 4220 4221 4231 4241
4260 4270 4276 4286 4296 4306 4315 4316 4327 4337 4347 4357
4366 4367 4378 4379 4387 4388 5455 5467
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-53
; Cross Reference Listing
IW 3498 # 4222 4223 4317 4318 4368 4369
M 3506 # 3971 3976 3981 4041 4046 4051 4056 4061 4066 4071 4076
4083 4088 4093 4098 4103 4108 4113 4118 4222 4232 4242 4256
4261 4271 4272 4277 4287 4297 4307 4317 4328 4338 4348 4358
4368 5456 5468 5481 5513 5586 5591 7929
R 3487 # 4182 4183 4389 4390 4391 4392 4393 4394 4405 4406 4407
4408 4409 4410 4411 4412 4423 4424 4425 4426 4427 4428 4429
4430 4441 4442 4443 4444 4445 4446 4447 4448 4497 4498 4499
4500 4501 4502 4503 4504 4515 4516 4517 4518 4519 4520 4521
4522 4788 4818 5479 5511 5584 5589 5738 5739 5740 5741 5863
5864 5868 5873 5874 5878 5936 5937 5941 5965 5966 5970 6129
6162 6163 6165 6166 6373 6374 6375 6376 6594 6596 7219 7220
7221 7222 7921 7931 7932 7943 7966 7967 7989 8000
R-PF 3488 # 3960 3969 3974 3979 4035 4044 4049 4054 4059 4064 4069
4074 4081 4086 4091 4096 4101 4106 4111 4116 4230 4240 4250
4259 4269 4275 4285 4295 4305 4326 4336 4346 4356 5454 5466
RPW 3491 # 3967 3972 3977 3982 4020 4041 4042 4046 4047 4052 4057
4062 4067 4072 4077 4083 4084 4088 4089 4094 4099 4104 4109
4114 4119 4232 4233 4242 4243 4256 4257 4261 4262 4277 4278
4287 4288 4297 4298 4307 4308 4328 4329 4338 4339 4348 4349
4358 4359 4531 4532 4533 4534 4535 4536 4537 4538 4546 4547
4548 4549 4550 4551 4552 4553 5456 5457 5468 5469
RW 3489 # 5481 5482 5513 5514 5586 5587 5591 5592 5865 5866 5870
5871 5875 5876 5880 5881 5938 5939 5943 5944 5967 5968 5972
5973 6593 6595 7940 7986 7988 7997 7999
S 3507 # 3967 3972 3977 3982 4042 4047 4052 4057 4062 4067 4072
4077 4084 4089 4094 4099 4104 4109 4114 4119
SJC- 3532 # 4488 4497 4515 4531 4546 4563 4578 4593
SJCA 3536 # 4492 4501 4519 4535 4550 4567 4582 4597
SJCE 3534 # 4490 4499 4517 4533 4548 4565 4580 4595 4975
SJCG 3539 # 4495 4504 4522 4538 4553 4570 4585 4600 4981
SJCGE 3537 # 4493 4502 4520 4536 4551 4568 4583 4598 4608 4979
SJCL 3533 # 4489 4498 4516 4532 4547 4564 4579 4594 4609 4974
SJCLE 3535 # 4491 4500 4518 4534 4549 4566 4581 4596 4976
SJCN 3538 # 4494 4503 4521 4537 4552 4569 4584 4599 4980
TC- 3523 # 4414 4415 4423 4424
TCA 3525 # 4418 4419 4427 4428
TCE 3524 # 4416 4417 4425 4426
TCN 3526 # 4420 4421 4429 4430
TN- 3515 #
TNA 3517 # 4382 4383 4391 4392
TNE 3516 # 4380 4381 4389 4390
TNN 3518 # 4384 4385 4393 4394 4620
TO- 3527 # 4432 4433 4441 4442
TOA 3529 # 4436 4437 4445 4446
TOE 3528 # 4434 4435 4443 4444
TON 3530 # 4438 4439 4447 4448
TZ- 3519 # 4396 4397 4405 4406
TZA 3521 # 4400 4401 4409 4410
TZE 3520 # 4398 4399 4407 4408
TZN 3522 # 4402 4403 4411 4412
W 3486 # 3971 3976 3981 4051 4056 4061 4066 4071 4076 4093 4098
4103 4108 4113 4118 4201 4202 4271 4272 7918 7919 7929 7930
7941 7964 7965 7975 7976 7987 7991 7998 8002
(U) MARK 1831 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-54
; Cross Reference Listing
(U) MBOX CTL 2080 # 8961 8963 8965
CLR PT LINE 2085 # 8556
CLR PT LINE(NK) 2083 #
NORMAL 2089 # 8558
PT DIR CLR 2088 # 8482 8550
PT DIR CLR(NK) 2084 #
PT DIR WR 2086 #
PT WR 2087 # 8463 9186
SET IO PF ERR 2082 # 9401
SET PAGE FAIL 2081 #
(U) MEM 1662 #
A RD 1666 # 3786 3787 3788 3789 3799 3800 9522 9523 9524 9525 9540
9541
AD FUNC 1675 # 9228
ARL IND 1664 # 4008 4954 4955 5173 5330 5336 5388 5393 5396 5596 5601
5924 5925 5928 6146 6252 6301 6422 6425 6483 6487 6507 6509
6605 6660 6963 6977 6980 6985 6985 6992 7019 7041 7052 7074
7385 7387 7415 7519 7550 7774 7781 7882 8131 8179 8465 8511
8524 8537 8591 8608 8654 8855 8948 8968 9003 9004 9005 9084
9087 9088 9185 9554 9589 9744 9745 9771 9909 9969 10010 10012
10044 10046 10085 10089 10092 10132 10192 10215 10262 10324 10373 10402
10428 10457 10528 10562 10648
B WRITE 1667 # 3987 3996 4128 4130 4133 4136 4140 4144 4153 4154 4160
4161 4167 4168 4174 4175 4227 4237 4247 4266 4282 4292 4302
4312 4322 4333 4343 4353 4363 4373 4804 5461 5474 5506 5523
5614 5616 5621 6351 6355 8018 8190 8538
EA CALC 1676 # 3777 3779 3781 3783 3801 3803 4837 4842 4883 4885 4909
6803 6807 6809 6811 6813 6816 6817 6818 6819 6827 6828 6829
6831 6853 6857 6859 6861 6863 6866 6867 6868 6869 6876 6877
6878 6880 9517 9518 9519 9520 9542 9543 10454 10458 10482 10672
10673 10680 10682
FETCH 1668 # 4469 4472 4477 4508 4526 4574 4589 4605 4613 4752 8022
8024 8026 9780 9844
IFET 1679 # 3658 3882 3915 3917 3923 3925 4006 4013 4195 4675 4704
4728 4732 4810 4847 4852 4895 4896 4928 4934 4959 5170 5228
5335 5346 5365 5384 5399 5422 5447 5666 5675 5795 5836 6224
6225 6580 6615 6682 6968 6987 7072 7553 7679 7681 7682 7732
7740 7744 8029 8755 9718 9935 10011 10073 10375 10591 10597 10605
10687 10737
LOAD AR 1670 # 4633 4647 4706 4716 4717 5095 5812 6786 7729 7770 7852
7866 8037 8675 8676 8707 8730 8731 8813 8814 8818 8819 8993
8994 9012 9017 9032 9049 9070 9094 9129 9374 9591 9818 10014
10082 10146 10178 10325 10326 10399 10403 10440 10442 10505 10557 10577
10589 10598 10607 10714 10730
LOAD ARX 1671 # 3761 4189 4845 5093 5103 5155 5751 6381 7134 7226 7750
7855 8678 8721 8722 8724 8727
MB WAIT 1665 # 3767 3826 3827 3860 3871 3893 3904 3916 3920 3942 3998
4191 4192 4212 4718 4719 4722 4734 4801 4849 4854 4860 4860
4888 4889 4891 4892 4907 4908 5156 5159 5169 5182 5760 5762
5850 5852 6787 6801 6804 6836 6837 6851 6854 6885 6886 6897
6899 6922 6922 6928 7730 7758 7771 7854 7868 8017 8021 8023
8033 8109 8489 8572 8633 8658 8744 8753 8754 8920 8934 8998
9013 9033 9053 9065 9072 9095 9132 9330 9366 9376 9546 9547
9692 9725 9828 9829 10018 10087 10148 10258 10331 10459 10474 10487
10507 10512 10548 10556 10581 10583 10603 10609 10677 10678 10685 10688
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-55
; Cross Reference Listing
10728 10735 10738
REG FUNC 1669 # 3835 4795 8108 8116 8158 8162 8478 8514 8532 8545 8933
RESTORE VMA 1674 # 3832 8931 9184
RPW 1678 #
RW 1677 #
WRITE 1672 # 4026 4207 4210 4213 4542 4557 4682 4698 4702 4932 4933
4943 5094 5101 5157 5167 5184 5186 6773 6776 6785 6789 6790
6792 6943 8034 8127 8166 8594 8657 8659 8745 8746 8777 8778
8823 8824 8932 9056 9171 9365 9371 9373 10467 10483 10486 10543
10544 10545 10546 10549 10582 10610 10732
(U) MQ 1568 #
MQ SEL 1572 # 5545 5546 5547 5549 5562 5563 5564 5566 5748 6539 6571
7364 7366 7474 7771 7868 7889
MQ*.25 1571 # 5541 5551 5553 5555 5557 5569 5571 5573 5574 5579 5771
5793 6532 7360 7467 7514
MQ*2 1570 # 5656 5659 5664 5673 5689 5690 5691 5692 5693 5694 5695
5696 5720 5721 5722 5723 5791 5831 5833 7154 7155 7156 7157
9852
MQM SEL 1573 # 6563 7365 7372 7494
SH 1569 # 4028 5175 5375 5382 5391 5393 5398 5436 5496 5518 5724
5725 5726 5727 5764 5773 5779 5818 5841 5916 5919 5921 5956
6222 6282 6415 6428 6430 6434 6452 6454 6469 6479 6486 6543
6544 6550 6553 6555 6922 7061 7326 7348 7351 7356 7402 7479
7480 7486 7489 7491 7861 8475 8582 8630 8699 9510 9702 9837
9890 10032 10068 10254 10340 10342 10363 10572 10575 10581 10606
(U) MQ CTL 1951 #
AD 1959 # 7372
MQ*.25 1957 # 6563 7365 7494
MQ*2 1953 # 5545 5546 5547 5549 5562 5563 5564 5566 6539 7364 7366
7474
SH 1956 #
0S 1955 # 5748 6571 7771 7868 7889
1S 1958 #
(U) MREG FNC 2066 #
LOAD CCA 2073 # 8108
LOAD EBR 2078 # 8545
LOAD UBR 2077 # 8478
MAP 2079 # 3835 4795 8933
READ EBR 2069 # 8532
READ ERA 2070 # 8158
READ UBR 2068 # 8514
SBUS DIAG 2067 # 8162
WR REFILL RAM 2071 # 8116
(U) MTR CTL 2090 #
CLR E CNT 2093 # 8648
CLR M CNT 2094 # 8649
CLR PERF 2092 # 8647
CLR TIME 2091 # 8646
CONO MTR 2097 # 8615
CONO TIM 2098 # 8470
LD PA LH 2095 # 8604
LD PA RH 2096 #
(U) NONSTD 1865 #
OPTIONS 1870 # 8127
(U) PARITY 2149 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-56
; Cross Reference Listing
(D) PARITY 2191 #
(U) PC FLAGS 1963 #
AROV 1964 # 5432 5507 5524 5785 6216 7682
DIV CHK 1970 # 5611
FDV CHK 1971 # 5990 6519 7399
FLOV 1965 # 7539 7544 7740 7898
FPD 1966 # 6801 6834 6851 6883 8037 8038 10034
FXU 1969 # 7543 7744 7899
TRAP1 1968 #
TRAP2 1967 # 4849 4854 4902 4903 4907
(U) PV 1873 #
OPTIONS 1876 # 8127
(U) SC 1618 #
AR SHIFT 1621 # 5330 5349 5351 5370 5373 5389 6146
FE 1619 # 6902 6938 7304 7307 8573 9184
SCAD 1620 # 3714 3723 3725 3833 3920 3942 4194 4207 4210 4748 4750
4764 5116 5159 5160 5333 5358 5361 5363 5378 5381 5394 5397
5409 5413 5435 5437 5440 5449 5503 5523 5601 5614 5616 5620
5755 5784 5802 5804 5808 5837 5838 5848 5903 5906 5914 5916
5919 5923 5954 5957 5983 6082 6086 6088 6205 6219 6221 6277
6283 6380 6400 6413 6431 6449 6452 6454 6470 6483 6489 6511
6524 6538 6544 6611 6614 6674 6679 6788 6897 6904 6928 6940
6942 6959 6977 6983 7007 7038 7060 7073 7132 7134 7250 7255
7305 7309 7323 7339 7369 7373 7392 7463 7481 7515 7517 7521
7526 7533 7535 7537 7559 7772 7782 7883 7887 7903 8105 8468
8488 8490 8494 8518 8529 8544 8583 8594 8636 8656 8706 8726
8788 8812 8817 8822 8840 8847 8856 8933 8936 8962 8964 8967
8998 9086 9113 9119 9120 9125 9130 9203 9211 9217 9352 9354
9437 9511 9587 9589 9705 9710 9873 9899 9925 9932 9934 9966
9978 9981 9993 9995 10009 10039 10042 10068 10075 10148 10177 10215
10217 10225 10243 10256 10262 10286 10329 10331 10332 10341 10343 10344
10351 10399 10401 10441 10510 10559 10561
(U) SCAD 1595 #
A 1596 # 3714 3723 3725 3830 3832 3833 3920 3920 3942 3942 4009
4194 4207 4210 4748 4750 4764 4764 4781 5159 5160 5174 5333
5336 5339 5341 5389 5392 5440 5449 5497 5503 5519 5523 5614
5616 5620 5627 5634 5637 5724 5725 5726 5727 5755 5765 5780
5784 5804 5820 5835 5837 5848 5903 5906 5954 5956 5986 6171
6219 6277 6283 6301 6341 6380 6392 6431 6479 6489 6511 6516
6524 6538 6544 6571 6611 6674 6774 6777 6788 6821 6822 6823
6824 6871 6872 6873 6874 6928 6977 7008 7010 7038 7132 7134
7152 7161 7250 7253 7255 7257 7322 7323 7339 7346 7351 7369
7373 7388 7392 7396 7454 7463 7481 7515 7521 7526 7533 7535
7537 7559 7772 7779 7782 7853 7867 7883 7885 7887 7903 8105
8160 8468 8488 8490 8494 8518 8529 8544 8575 8583 8594 8636
8656 8706 8726 8788 8812 8817 8822 8856 8914 8919 8933 8946
8998 9054 9086 9149 9203 9203 9211 9255 9352 9354 9437 9549
9587 9703 9705 9740 9819 9837 9890 9892 9899 9925 9932 9934
9966 9969 9978 9981 9981 10012 10039 10039 10042 10042 10075 10148
10160 10177 10182 10201 10229 10232 10284 10288 10332 10351 10429 10441
10502 10510 10529 10533 10559 10561
A+1 1600 # 5541 5551 5553 5555 5557 5569 5571 5573 5574 5579 5601
5771 5802 5808 5808 5924 5925 5928 5983 6290 6340 6487 6506
6508 6536 6570 7007 7357 7359 7384 7386 7471 7502 9113 9589
10068 10341 10343 10344 10374
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-57
; Cross Reference Listing
A+B 1598 # 4772 5358 5361 5363 5378 5381 5394 5397 5407 5409 5413
5431 5435 5437 5545 5546 5547 5549 5562 5563 5564 5566 5707
5710 5915 5916 5923 5957 5959 5997 6000 6086 6088 6148 6205
6221 6254 6288 6410 6413 6451 6452 6470 6483 6533 6535 6614
6789 6801 6803 6851 6853 6904 6932 6959 6980 6985 7041 7060
7127 7129 7259 7268 7468 7469 7517 7519 7749 7760 7767 7774
8511 8723 8787 8840 8851 8947 8964 8966 9426 9431 9511 9512
9693 9697 9710 9812 9873 10007 10045 10047 10217 10223 10238 10239
10297 10298 10301 10331 10334 10385 10398
A-1 1599 # 4775 5656 5659 5664 5673 5689 5690 5691 5692 5693 5694
5695 5696 5720 5721 5722 5723 5814 5838 6257 6400 6539 7154
7155 7156 7157 7474 7763 8555 8993 8994 9992 9994
A-B 1601 # 5116 5914 5919 6082 6188 6192 6259 6261 6281 6285 6294
6303 6449 6454 6540 6567 6605 6660 6679 6784 6786 6897 6939
6940 6942 6963 6983 7073 7074 7305 7309 7476 7497 7758 8847
8855 9120 9130 9140 9141 9742 9744 10009 10215 10225 10243 10256
10262 10286 10371 10383 10407 10410 10432 10492 10508
A-B-1 1597 # 6923 9213 9217 9887 9993 9995
AND 1603 # 7546 8475 8708 8710 8719 8744 8769 8786 8835 8844 8936
8962 8967 8999 9015 9041 9047 9053 9067 9080 9101 9119 9125
9131 9133 9174 9176 10098 10162 10163 10167 10327 10329 10373 10399
10401 10420 10435
OR 1602 # 8937 8968 9072 9095 9147 9178 9183 9185 9814 9893 10164
10165 10166 10168 10192 10414 10415 10562
(U) SCADA 1604 #
AR EXP 1607 # 5903 5906 5914 5954 5957 5983 6082 6148 6188 6192 6380
6449 6483 7772 9203 9203 9211
AR0-5 1606 # 5336 5339 6605 6611 6660 6674 6788 6963 6977 7038 7073
7546 8475 8855 8856 8936 8962 9054 9119 9125 9133 9149 9176
9185 9426 9431 9744 10098 10160 10162 10163 10164 10165 10166 10167
10168 10192 10215 10229 10262 10284 10327 10373 10374 10385 10399 10401
10420 10435 10441 10508 10562
FE 1605 # 4775 5341 5394 5397 5541 5551 5553 5555 5557 5569 5571
5573 5574 5579 5656 5659 5664 5673 5689 5690 5691 5692 5693
5694 5695 5696 5720 5721 5722 5723 5771 5820 5915 5924 5925
5928 5997 6000 6221 6254 6257 6259 6261 6281 6285 6288 6290
6294 6303 6340 6341 6400 6451 6506 6508 6533 6535 6536 6539
6540 6567 6570 6571 6614 6784 6786 6904 6923 6942 6983 7154
7155 7156 7157 7357 7359 7384 7386 7468 7469 7471 7474 7476
7497 7502 7517 7758 7760 7763 7767 8555 8723 8787 8840 8851
8937 8946 8964 8966 8968 8999 9041 9053 9072 9080 9095 9131
9141 9147 9174 9178 9703 9742 9814 9819 9873 9890 9892 9893
9992 9993 9994 9995 10009 10012 10217 10225 10232 10288 10331 10341
10343 10344 10371 10383 10398 10407 10410 10414 10415 10432 10492 10533
# 1608 # 3714 3723 3725 3830 3832 3833 4194 4207 4210 4748 4750
5116 5159 5160 5333 5358 5361 5363 5378 5381 5389 5392 5409
5413 5431 5435 5437 5440 5449 5497 5503 5519 5523 5614 5616
5620 5627 5634 5637 5724 5725 5726 5727 5755 5765 5780 5784
5804 5835 5848 5916 5919 5923 5956 5959 5986 6086 6088 6171
6205 6219 6277 6283 6392 6410 6413 6431 6452 6454 6470 6479
6489 6511 6516 6524 6538 6544 6679 6774 6777 6821 6822 6823
6824 6871 6872 6873 6874 6897 6939 6940 7008 7010 7132 7134
7152 7161 7250 7255 7305 7309 7322 7323 7346 7351 7369 7373
7392 7396 7463 7481 7515 7521 7526 7533 7535 7537 7559 7779
7782 7853 7867 7883 7887 7903 8105 8160 8468 8488 8490 8494
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-58
; Cross Reference Listing
8518 8529 8544 8575 8583 8594 8636 8656 8706 8708 8710 8719
8726 8744 8769 8786 8788 8812 8817 8822 8835 8844 8847 8914
8919 8933 8967 8998 9015 9047 9067 9086 9101 9140 9183 9255
9352 9354 9437 9511 9549 9587 9705 9740 9837 9899 9925 9932
9934 9966 9978 9981 9981 10039 10039 10042 10042 10075 10148 10177
10182 10201 10243 10256 10286 10329 10332 10334 10351 10502 10510 10559
10561
(U) SCADA EN 1609 #
0S 1610 # 3920 3920 3942 3942 4009 4764 4764 4772 4781 5174 5407
5545 5546 5547 5549 5562 5563 5564 5566 5601 5707 5710 5802
5808 5808 5814 5837 5838 6301 6487 6789 6801 6803 6851 6853
6928 6932 6959 6980 6985 7007 7041 7060 7074 7127 7129 7253
7257 7259 7268 7339 7388 7454 7519 7749 7774 7885 8511 8947
8993 8994 9113 9120 9130 9213 9217 9512 9589 9693 9697 9710
9812 9887 9969 10007 10045 10047 10068 10223 10238 10239 10297 10298
10301 10429 10529
(U) SCADB 1612 #
AR0-8 1615 # 4772 6205 7259 7268 7749 8967 8999 9015 9047 9067 9080
9101 9183 9693 9697 9812 9814 9887 10007 10329 10334
AR6-11 1614 # 6605 6660 6784 6786 6801 6803 6851 6853 6959 6963 7060
8708 8710 8719 8744 8769 8786 8835 8844 8855 9426 9431 9710
9742 9744 10215 10223 10225 10238 10239 10243 10262 10286 10297 10298
10301 10508
SC 1613 # 5116 5358 5361 5363 5378 5381 5394 5397 5407 5409 5413
5431 5435 5437 5545 5546 5547 5549 5562 5563 5564 5566 5707
5710 5914 5915 5916 5919 5923 5957 5959 6082 6086 6088 6148
6410 6413 6449 6451 6452 6454 6470 6483 6540 6567 6614 6679
6789 6897 6904 6923 6932 6939 6940 6942 6980 6983 6985 7041
7074 7127 7129 7305 7309 7476 7497 7517 7519 7774 8511 8840
8847 8936 8937 8947 8964 8966 8968 9119 9120 9125 9130 9133
9140 9176 9185 9213 9217 9511 9512 9873 9993 9995 10045 10047
10192 10217 10256 10331 10373 10385 10414 10415 10562
# 1616 # 5997 6000 6188 6192 6221 6254 6259 6261 6281 6285 6288
6294 6303 6533 6535 7073 7468 7469 7546 7758 7760 7767 8475
8723 8787 8851 8962 9041 9053 9072 9095 9131 9141 9147 9174
9178 9893 10009 10098 10162 10163 10164 10165 10166 10167 10168 10327
10371 10383 10398 10399 10401 10407 10410 10420 10432 10435 10492
(U) SH 1628 # 3777 3779 3781 3783 3786 3787 3788 3789 3800 3803 6807
6809 6811 6813 6816 6817 6818 6819 6828 6831 6857 6859 6861
6863 6866 6867 6868 6869 6877 6880 9517 9518 9519 9520 9522
9523 9524 9525 9541 9543
AR 1630 # 4026 4028 4028 4772 5175 5406 5408 5412 5426 5496 5518
5613 5615 5626 5724 5725 5726 5727 5754 5773 5779 5841 5916
5919 5922 5925 5956 6171 6206 6407 6409 6412 6469 6479 6486
6515 6550 6553 6555 6611 6674 6787 6903 6922 7061 7132 7152
7160 7304 7306 7308 7322 7348 7351 7356 7396 7402 7455 7486
7489 7491 7520 7535 7537 7734 7772 7869 7883 7890 8187 8488
8490 8518 8582 8620 8630 8699 8726 8751 8768 8770 8788 8837
8856 9000 9080 9113 9352 9354 9454 9510 9699 9702 9702 9735
9773 9812 9837 9837 9855 9857 9909 9968 10032 10034 10068 10076
10149 10149 10223 10228 10239 10254 10283 10298 10301 10330 10402 10428
10435 10528 10572 10575 10581 10606 10642
AR SWAP 1632 # 3987 4133 4136 4139 4140 4143 4144 4160 4161 4167 4168
4472 4475 4720 4723 4745 4943 4954 4955 5179 5223 5902 5953
5982 7880 8015 8126 8131 8137 8179 8185 8465 8524 8532 8538
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-59
; Cross Reference Listing
8602 8608 8623 8635 8948 8953 8953 9129 9174 9204 9414 10089
10151 10151 10648 10666 10667 10720 10721
ARX 1631 # 3753 3829 4663 4681 4848 4853 4855 4960 5180 5185 5384
5393 5399 5430 5434 5790 5802 5807 5818 5997 6251 6424 6427
6435 6452 6454 6542 6791 6838 6887 6988 7136 7264 7269 7478
7749 7780 7861 8138 8467 8605 8622 8654 8786 8904 8905 8919
8950 8969 9011 9041 9046 9120 9125 9184 9212 9215 9217 9370
9420 9442 9446 9515 9548 9552 9555 9557 9560 9696 9781 9841
9890 9900 9972 9993 9995 10019 10092 10193 10230 10235 10291 10324
10325 10326 10340 10342 10351 10355 10363 10384 10403 10433 10481 10489
10543 10544 10545 10546 10590 10592
SHIFT AR!ARX 1629 # 3949 4213 4749 5116 5116 5161 5166 5337 5339 5358 5363
5375 5380 5382 5391 5396 5398 5411 5436 5442 5447 5448 5506
5633 5636 5764 5789 5791 5792 5795 5803 5805 5809 5820 5849
5921 5924 5927 6220 6222 6226 6282 6284 6415 6426 6428 6430
6434 6436 6540 6543 6544 6567 6579 6902 6910 6938 6941 6941
6943 7310 7315 7317 7326 7476 7479 7480 7497 7522 7534 7551
7679 7681 7885 7888 8107 8475 8503 8536 8659 8665 8667 8669
8671 8702 8719 8789 8826 9003 9013 9014 9084 9088 9356 9438
9711 9902 9936 9965 10077 10160 10316 10332 10332 10349
(U) SKIP 1691 #
AC REF 1732 #
AC#0 1699 # 3918 4527 6136
AD CRY0 1709 # 4782 4837 4842 4887 4906 5225 5814 5832 5833 5998 6085
6087 6251 6278 6524 6549 6978 7010 7463 7485 8793 9139 9815
9863 9910 9974 9977 10008 10066 10085 10138 10517 10558 10575 10585
10661
AD#0 1711 # 5333 5428 5503 5619 6391 6437 6465 6986 7237 7334 7484
7677 7680 7731 7881 8828 9040 9119 10603
AD0 1710 # 5233 5235 5521 5708 5711 5781 5809 5987 6398 6515 7027
7239 7243 7249 7286 7297 7299 7340 7344 7352 7378 7379 7396
7408 7414 7451 7455 7738 7742 7877 7902 8468 9699 9708 9908
9965 10573
ADX0 1708 # 10089 10684 10734
AR0 1698 # 3990 4164 4171 5227 5344 5603 5635 5638 6171 6484 6788
7232 7236 7406 7734 7765 9203 9211 9451 9460 9723 9773 10229
10284
AR18 1697 # 4150 4157 5331 5349 5351 5370 5373 5389 8476 9554 10172
ARX0 1696 # 9838 10148 10336 10354 10379
BR0 1695 # 5835 5989 6082 6518 7398 7415 9728 9854 10033
EVEN PAR 1694 #
FETCH 1716 #
INTRPT 1724 # 3778 3780 3782 3784 3802 3804 4776 4793 4808 5090 6808
6810 6812 6814 6830 6832 6858 6860 6862 6864 6879 6881 8074
8998 9073 9255 9517 9518 9519 9520 9542 9543 9741 9790 9873
10076 10217 10400 10404 10583 10609 10682 10732
IO LEGAL 1727 # 4634 4635 4641 4643 4801 8011 8017 8106 8113 8115 8120
8123 8132 8135 8161 8180 8183 8462 8466 8494 8525 8528 8581
8597 8600 8609 8612 8621 9310
KERNEL 1717 # 4631
P!S XCT 1728 # 10648 10673
PC SEC0 1704 # 4663 4664 4839 4890 4893 4928 4930 4953 5086 10227 10228
10282 10283 10324 10364 10396 10398 10430 10488 10530
PI CYCLE 1721 # 8023 8026 8035 9335
PUBLIC 1719 #
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-60
; Cross Reference Listing
RPW REF 1720 # 8914 8919
RUN 1726 #
SC0 1700 # 5842 10012
SCAD#0 1707 # 5336 5339 5407 8708 8710 8744 8769 9015 9048 9054 9068
9101 9131 9133 9149 9175 9177 9512 9693 9819
SCAD0 1706 # 5359 5362 5364 5378 5381 5394 5397 5409 5414 5431 5820
5914 5917 5919 5923 6188 6192 6205 6221 6411 6413 6449 6453
6455 6680 6897 6904 6924 7305 7759 8848 8855 9744 10256 10335
10371 10383 10408 10411 10432 10492 10508
USER 1718 # 4679 4696 4721 4722 4727 5176 5241 9088 9368
-EBUS GRANT 1722 # 8070
-EBUS XFER 1723 # 8060
-LOCAL AC ADDR 1713 # 4006 4013 5088 5152
-MTR REQ 1733 # 3827 4773 5102 5117 5242 6837 6886 9547
-START 1725 # 4771
-VMA SEC0 1730 # 6778 6804 6854 7129
(U) SP MEM 2034 #
CACHE INH 2041 #
EPT 2055 # 8675 8730 8777 8993
EPT CACHE 2056 #
EPT EN 2040 #
EPT FETCH 2057 # 8721 8722 8727
EXEC 2037 #
FETCH 2035 #
PT 2060 # 3761 5093
PT FETCH 2061 #
SEC 0 2038 #
UNCSH+UNPAGE 2042 #
UNPAGED 2054 # 8814 8819 8824 9012 9017 9032 9049 9065 9070 9094 9129
UNPAGED+CACHED 2043 #
UPT 2058 # 5155 5157 8676 8994 9365
UPT EN 2039 #
UPT FETCH 2059 #
USER 2036 #
(U) SPEC 1807 #
AD LONG 1827 # 4193 4209 5658 5658 5661 5661 5706 5709 5760 5762 5772
5813 5816 5847 5851 6083 6083 6227 6388 6388 6478 6524 6536
6570 7234 7234 7350 7403 7403 7463 7471 7502 7516 7557 7557
8593 8656 9919 9920 9933 9977 9978 9978 9992 10035 10075 10097
10136 10504
ARL IND 1822 # 4009 4014 4014 4192 4208 4681 4696 4888 4891 4960 5166
5174 5176 5341 5341 5752 5903 5906 5914 5954 5957 5983 5983
6082 6148 6380 6380 6449 6786 7127 7129 7227 7472 7730 7854
7886 8126 8605 8615 8937 8946 8947 9368 9370 9426 9703 9892
10232 10374 10414 10415 10533
CLR FPD 1812 # 3936 6615 10071
FLAG CTL 1824 # 3655 4627 4668 4672 4718 4719 4722 4724 4725 4751 4754
4762 5189 8030 8754 9375
GEN CRY18 1815 # 4008 4613 5163 5173 6278 8026 8034 8499
INH CRY18 1809 # 5226 7053 10233 10281 10285 10289 10372 10409
LOAD PC 1813 # 4765
MQ SHIFT 1810 # 5791 5793 5831 5833 6532 7467 7514 9852
MTR CTL 1823 # 8598 8610 8622 8623 8624 8638 8639 8640 8641
SAVE FLAGS 1825 # 4635 4646 4839 4928 4930 5182
SCM ALT 1811 # 5330 5349 5351 5370 5373 5389 6146 6902 6938 7304 7307
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-61
; Cross Reference Listing
8573 9184
SP MEM CYCLE 1826 # 3761 5093 5155 5157 8675 8676 8721 8722 8727 8730 8777
8814 8819 8824 8993 8994 9012 9017 9032 9049 9065 9070 9094
9129 9365
STACK UPDATE 1820 # 4837 4842 4887 4905 5224
XCRY AR0 1814 # 3915 3948 5228 5411 5412 5423 5503 5507 5633 5636 5783
5848 5921 5922 6172 6193 6220 6409 6412 7306 7308 7520 7862
7869 7883 9935 10229 10284
(U) SPEC INSTR 1982 # 9027
CONS XCT 1991 # 4781
CONT 1992 # 4775
HALTED 1990 # 4764
INH PC+1 1985 # 3762
INSTR ABORT 1989 # 8653 9356
INTRPT INH 1988 #
KERNEL CYCLE 1984 #
PXCT 1987 # 5244
SET PI CYCLE 1983 # 3713 8643 8699
SXCT 1986 #
(U) SWITCH%
ADJBP 1085 6132 6138 6140 6952 6961 6965 6967 6975 7118
BACK.BLT 1095 10652 10657 10660 10692 10702
BIG.PT 1153 8479 8481 8483 8546 8549 8559 8565 9102 9105 9107 9110
9112 9114 9116
BLT.PXCT 11 1042 2941 2943 2945 3271 3274 3321 3323 3325 10644 10647
10651 10711 10740
CST.WRITE 20 1152 9142 9146 9148
DBL.INT 1082 5732 5737 5853
DIAG.INST 1138 1140 1142 5196 5207 5212 5249 5259 5271
EPT540 6 1135 8979 8985 8991
EXTEND 1079 6195 6208 6210 9464 9619 9630 9674 9677 9797 9800 9874
9877 9941 9944 10099 10102 10304 10307 10564
EXTEXP 13 3716 3718 3720 3768 3771 4994 4996 5007 5017 5064 5067
5260 5270 7216 7907
FPLONG 10 1024 5858 5861 5884 5892 5898 5946 5951 5975 5980 6016
6074 6092 6125 6312 6314 6316 6322 6330 6346 6348 6350 6352
6354 6356 6364 6366 6368
GFTCNV 18 1154 7327 7329 7562 7651 7713 7718 7723 7785 7851
IMULI.OPT 1058 5485 5488 5495 5499 5502
INSTR.STAT 1119 1121 1124 1883 1885 1887 8144 8148 8156 8219 8451
IPA20 17 1150 8711 8713 8715 8799 8807
KLPAGE 9 1031 1048 1054 1056 1849 1851 1853 2294 2297 2329 2331
2352 2354 2429 2431 2445 2451 2572 2574 2591 2593 2616 2621
2674 2676 2711 2713 3034 3037 3051 3053 3090 3093 3110 3114
3117 3119 3295 3297 3326 3328 3330 3332 3334 3336 3338 3341
3345 3354 3375 3377 3413 3415 3419 3421 3431 3433 3442 3444
3451 3453 3455 4797 4799 4805 4812 8456 8460 8464 8860 9240
9250 9282 9284 9286 9307 9311 9327 9336 9350 9379 9386 9411
9413
LONG.PC 7 1133 1858 1860 1862 4632 4636 4640 4645 4648 4651 4678
4741
MODEL.B 8 1038 1049 1052 1061 1064 1073 1075 1585 1588 1590 1638
1644 1673 1680 1687 1701 1703 1705 1712 1714 1729 1731 1761
1763 1774 1776 1779 1803 1805 1816 1819 1821 1875 1877 1879
1895 1908 1915 1918 2004 2032 2072 2074 2076 2158 2160 2219
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-62
; Cross Reference Listing
2222 2225 2232 2234 2236 2238 2240 2242 2404 2406 2641 2643
2645 2649 2653 2656 2658 2660 2662 2665 2669 2673 2726 2728
2730 2732 2734 2773 2778 2819 2822 2825 2834 2836 2909 2911
2913 2927 2929 2931 2933 2935 2937 2939 2946 2948 3040 3044
3054 3056 3081 3083 3159 3163 3197 3199 3201 3203 3244 3246
3250 3252 3266 3282 3294 3298 3301 3304 3306 3311 3317 3319
3448 3450 3456 3462 3464 3651 3654 3656 3805 3816 3837 3855
3857 3859 3866 3868 3870 3877 3879 3881 3888 3890 3892 3899
3901 3903 4829 4836 4843 4865 4881 4910 5144 5146 5148 5544
5548 5561 5565 5599 5604 5609 5618 5623 6197 6200 6203 6390
6393 6396 6414 6417 6420 6433 6440 6462 6472 6477 6500 6502
6504 6525 6528 6531 6547 6556 6561 6574 6576 6578 6933 6937
7215 7908 8085 8087 8089 8091 8093 8095 8496 8498 8501 8505
8510 8517 8732 8735 8737 8738 8740 8757 8759 8761 8779 8781
8783 8810 8829 8898 8900 8902 9194 9197 9199 9205 9207 9209
9241 9243 9245 9317 9321 9392 9397 9406 9430 9432 9434 9439
9441 9476 9481 9486 9569 9576 9618 9866 9869 9872 9937 9939
10179 10181 10183 10250 10253 10255 10265 10270 10277 10318 10322 10328
10356 10359 10366 10446 10451 10497 10522 10524 10532 10538 10551 10554
MOS 8164 8165 8167 8176
MULTI 14 1028 2044 2053 2062
NOCST 15 1151 9039 9043 9045 9057 9064 9074 9118 9122 9124 9160
9170 9187
NONSTD 1144 1867 1869 1871
OP.CNT 1006 1103 1105 3734 3737 8271 8315
OP.TIME 1009 1107 1109 3738 3741 8317 8347
OWGBP 16 1149 6133 6135 6137 6150 6157 6604 6617 6654 6659 6683
6713 7022 7026 7028 7030 7033 7035 7037 7039 7044 7048 7064
7071 7075 7080 7119 7163 7211 9585 9592 9598 9631 9673 9682
9691 9698 9806 9811 9813 9816 9821 9826 9881 9886 9888 9956
9963 9967 10310 10315 10317
PAGCNT 1020 1126 1129 4766 4769 8471 8474 8906 8909 8913 8916 8918
8923 8925
PUSHM 1077 5261 5265 5269
RPW 1088 3490 3492 3494
SHIFT.MUUO 1033 5127 5129 5131 9329 9331 9333
SMP 12 1145 6664 6666 6668 6670 6673 6676 6702 6705 6708 6753
6766 6849 6888 6925 6927 6929 6934 6936
SNORM.OPT 4 1069 6263 6274 6295
SO.CNT 1012 1111 1113 3742 3746 8351 8400
SO2.CNT 1015 1115 1117 3747 3751 8350 8403 8450
SXCT 1062 1065 3811 3813 3815 5248 5273 5310
TRACKS 1002 1099 1101 3730 3733 8222 8224 8226 8231 8247 8253 8269
TRXDEF 1131 2334 2337 2458 2467 2624 2626 3382 3393 3422 3424 3445
3447
WRTST 1092 3495 3497 3499 3962 3964 3966
XADDR 5 2014 2016 2018 2745 2747 2750 3307 3310 3481 3483 3485
3775 3796 3817 3824 3836 4004 4015 4036 4038 4040 4251 4253
4255 4657 4661 4667 4685 4691 4700 4709 4715 4731 4733 4740
4922 4927 4939 4946 4950 4957 5079 5085 5104 5121 5149 5193
5218 5222 5230 6196 6204 6207 6581 6584 6587 6608 6610 6613
6663 6669 6677 6723 6767 6889 6954 6957 6960 7012 7014 7016
7020 7049 7128 7131 7133 7138 7708 7710 9312 9316 9357 9364
9377 9418 9422 9471 9505 9563 9577 9584 9617 10218 10220 10222
10226 10244 10264 10278 10303 10360 10362 10365 10387 10395 10412 10425
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-63
; Cross Reference Listing
10427 10431 10452 10456 10460 10465 10496 10525 10527 10531 10539 10541
10550 10569 10614
(U) TIME 1652 #
2T 1655 # 4480 4481 4482 4776 6774 6777 6784 10135
3T 1656 # 3756 3830 3861 3871 3883 3893 3904 4771 4860 4886 4889
4892 5627 6679 6838 6887 6898 6923 8124 8556 8964 8966 9549
10085 10137
4T 1657 #
5T 1658 # 3723 3725 4737 4803 5163 5165 8055 8058 8062 8075 8080
8081 8114 8121 8133 8136 8137 8139 8181 8184 8186 8188 8467
8499 8516 8526 8530 8534 8585 8586 8587 8588 8598 8601 8603
8610 8613 8622 8623 8624 8629 8638 8639 8640 8641 8709 8767
8920 8935
(U) U0 1470 #
(U) U21 1532 #
(U) U23 1538 #
(U) U42 1611 #
(U) U45 1617 #
(U) U48 1624 #
(U) U51 1645 #
(U) U73 1829 #
(U) VMA 1646 # 9228
AD 1651 # 3712 3832 4675 4728 4732 4845 4847 4895 4896 5094 5170
7729 7770 7852 7866 8037 8038 8108 8478 8545 8555 8574 8594
8702 8727 8736 8756 8760 8772 8782 8839 8846 8931 9011 9016
9026 9046 9065 9068 9093 9125 9235 9552 9555 9557 9560 10082
10146 10178 10325 10326 10399 10403 10428 10440 10442 10454 10458 10505
10528 10544 10546 10557 10577 10582 10589 10598 10607 10610 10714 10730
10732
LOAD 1649 # 3755 3757 3777 3779 3781 3783 3801 3803 4837 4842 4883
4885 4909 5091 5100 5154 5156 6807 6809 6811 6813 6816 6817
6818 6819 6827 6828 6829 6831 6857 6859 6861 6863 6866 6867
6868 6869 6876 6877 6878 6880 8631 8666 8668 8670 8672 8704
8705 8712 8717 8987 8989 9184 9330 9517 9518 9519 9520 9541
9542 9543 10672 10673 10680 10682
PC 1648 # 3658 4765 8755 10223 10238 10298 10301 10510
PC+1 1650 # 3786 3787 3788 3789 3799 3800 3882 3915 3917 3923 3925
4006 4013 4195 4469 4472 4477 4508 4526 4574 4589 4605 4613
4704 4752 4810 4852 5228 5335 5365 5384 5399 5422 5447 5666
5675 5795 5836 6224 6225 6580 6615 6682 6968 6987 7072 7553
7679 7681 7682 7732 7740 7744 8022 8024 8026 8029 9718 9780
9783 9844 9908 9926 9973 10011 10065 10352 10591 10597 10605 10687
10737
VMA 1647 # 4189 4212 4702 4706 4716 4717 4934 4959 5095 5103 5160
5184 5186 5751 5806 6381 6786 6792 6803 6853 7134 7226 7733
7855 8166 8657 8659 8678 8795 9371 9373 9374 9820 9931 9933
10072 10482 10486 10549
(U) VMAX 1639 #
AD12-17 1643 #
PC SEC 1641 # 4951 4956
PREV SEC 1642 # 4680 4697 5177 8512 9369
VMAX 1640 #
(U) # 1835 # 3714 3722 3723 3725 3753 3755 3756 3757 3767 3786 3787
3788 3789 3799 3800 3830 3832 3833 3920 3932 3933 3937 3942
3949 4194 4207 4210 4734 4748 4750 4798 4807 4811 5091 5100
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page CRF-64
; Cross Reference Listing
5116 5154 5156 5159 5160 5169 5190 5191 5192 5245 5245 5333
5358 5361 5363 5378 5381 5389 5392 5409 5413 5431 5435 5437
5440 5449 5497 5503 5519 5523 5614 5616 5620 5627 5634 5637
5724 5725 5726 5727 5755 5765 5780 5784 5804 5823 5835 5843
5848 5887 5888 5889 5916 5919 5923 5956 5959 5986 5997 6000
6011 6086 6088 6171 6188 6192 6205 6219 6221 6253 6254 6259
6261 6277 6281 6283 6285 6288 6294 6303 6351 6355 6365 6392
6410 6413 6431 6438 6439 6452 6454 6467 6470 6479 6489 6501
6511 6516 6524 6527 6533 6535 6538 6544 6566 6582 6679 6774
6777 6821 6822 6823 6824 6871 6872 6873 6874 6897 6939 6940
7008 7010 7072 7073 7132 7134 7136 7152 7161 7250 7255 7285
7305 7309 7322 7323 7337 7346 7351 7369 7373 7382 7389 7392
7397 7410 7463 7466 7468 7470 7481 7496 7515 7521 7524 7526
7533 7535 7537 7546 7555 7559 7737 7739 7745 7759 7760 7767
7778 7779 7782 7853 7859 7867 7872 7884 7887 7903 8105 8160
8468 8475 8477 8488 8489 8490 8494 8518 8529 8544 8572 8575
8583 8594 8631 8633 8636 8644 8656 8666 8668 8670 8672 8704
8705 8706 8708 8710 8712 8717 8719 8723 8726 8744 8769 8786
8787 8788 8812 8817 8822 8835 8844 8847 8851 8901 8903 8914
8919 8933 8962 8967 8987 8989 8998 9015 9041 9047 9053 9067
9072 9086 9095 9101 9131 9140 9141 9147 9174 9178 9183 9229
9255 9259 9263 9267 9271 9275 9279 9290 9294 9298 9302 9306
9315 9320 9330 9334 9352 9354 9376 9405 9412 9437 9511 9514
9522 9523 9524 9525 9540 9541 9549 9587 9697 9705 9707 9711
9717 9719 9730 9735 9736 9737 9740 9750 9774 9776 9782 9837
9840 9841 9850 9887 9893 9899 9902 9925 9932 9934 9936 9966
9968 9978 9981 10007 10009 10018 10035 10039 10042 10075 10078 10091
10094 10098 10134 10148 10162 10163 10164 10165 10166 10167 10168 10177
10182 10201 10243 10256 10286 10316 10327 10329 10332 10334 10351 10353
10371 10383 10397 10398 10399 10401 10407 10410 10420 10432 10435 10492
10502 10509 10510 10559 10560 10561 10571 10581 10582 10597 10599 10608
10611 10612 10667 10677 10678 10679 10689 10721 10728 10729 10739
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLD-1
; Location / Line Number Index
; Dcode Loc'n 0 1 2 3 4 5 6 7
D 0000 4973 4974 4975 4976 4978 4979 4980 4981
D 0010 4983 4984 4985 4986 4988 4989 4990 4991
D 0020 4997 4998 4999 5000 5001 5002 5003 5004
D 0030 5005 5006 5018 5019 5020 5021 5022 5023
D 0040 5027 5028 5029 5030 5031 5032 5033 5034
D 0050 5035 5036 5037 5038 5039 5040 5041 5042
D 0060 5043 5044 5045 5046 5047 5048 5049 5050
D 0070 5051 5052 5053 5054 5055 5056 5057 5058
D 0100 5062 5063 7219 7220 5209 5210 7221 7222
D 0110 6373 6374 6375 6376 5738 5739 5740 5741
D 0120 4182 4183 6162 6163 4201 4202 6165 6166
D 0130 5859 5860 6128 6129 6593 6594 6595 6596
D 0140 5863 5864 5865 5866 5868 5869 5870 5871
D 0150 5873 5874 5875 5876 5878 5879 5880 5881
D 0160 5936 5937 5938 5939 5941 5942 5943 5944
D 0170 5965 5966 5967 5968 5970 5971 5972 5973
D 0200 3960 3961 3965 3967 3969 3970 3971 3972
D 0210 3974 3975 3976 3977 3979 3980 3981 3982
D 0220 5479 5480 5481 5482 5511 5512 5513 5514
D 0230 5584 5585 5586 5587 5589 5590 5591 5592
D 0240 5315 5316 5317 5318 5319 5320 5321 5322
D 0250 4020 4021 4608 4609 4619 4620 4788 4789
D 0260 4817 4818 4819 4820 4915 4916 4917 4918
D 0270 5454 5455 5456 5457 5466 5467 5468 5469
D 0300 4488 4489 4490 4491 4492 4493 4494 4495
D 0310 4497 4498 4499 4500 4501 4502 4503 4504
D 0320 4563 4564 4565 4566 4567 4568 4569 4570
D 0330 4515 4516 4517 4518 4519 4520 4521 4522
D 0340 4578 4579 4580 4581 4582 4583 4584 4585
D 0350 4531 4532 4533 4534 4535 4536 4537 4538
D 0360 4593 4594 4595 4596 4597 4598 4599 4600
D 0370 4546 4547 4548 4549 4550 4551 4552 4553
D 0400 4220 4221 4222 4223 4230 4231 4232 4233
D 0410 4240 4241 4242 4243 4250 4252 4256 4257
D 0420 4259 4260 4261 4262 4269 4270 4271 4272
D 0430 4275 4276 4277 4278 4285 4286 4287 4288
D 0440 4295 4296 4297 4298 4305 4306 4307 4308
D 0450 4315 4316 4317 4318 4326 4327 4328 4329
D 0460 4336 4337 4338 4339 4346 4347 4348 4349
D 0470 4356 4357 4358 4359 4366 4367 4368 4369
D 0500 4035 4037 4041 4042 4044 4045 4046 4047
D 0510 4049 4050 4051 4052 4054 4055 4056 4057
D 0520 4059 4060 4061 4062 4064 4065 4066 4067
D 0530 4069 4070 4071 4072 4074 4075 4076 4077
D 0540 4081 4082 4083 4084 4086 4087 4088 4089
D 0550 4091 4092 4093 4094 4096 4097 4098 4099
D 0560 4101 4102 4103 4104 4106 4107 4108 4109
D 0570 4111 4112 4113 4114 4116 4117 4118 4119
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLD-2
; Location / Line Number Index
; Dcode Loc'n 0 1 2 3 4 5 6 7
D 0600 4378 4379 4380 4381 4382 4383 4384 4385
D 0610 4387 4388 4389 4390 4391 4392 4393 4394
D 0620 4396 4397 4398 4399 4400 4401 4402 4403
D 0630 4405 4406 4407 4408 4409 4410 4411 4412
D 0640 4414 4415 4416 4417 4418 4419 4420 4421
D 0650 4423 4424 4425 4426 4427 4428 4429 4430
D 0660 4432 4433 4434 4435 4436 4437 4438 4439
D 0670 4441 4442 4443 4444 4445 4446 4447 4448
D 0700 7918 7919 7920 7921 7922 7923 7924 7925
D 0710 7929 7930 7931 7932 7933 7934 7935 7936
D 0720 7940 7941 7942 7943 7944 7945 7946 7947
D 0730 7951 7952 7953 7954 7955 7956 7957 7958
D 0740 7964 7965 7966 7967 7968 7969 7970 7971
D 0750 7975 7976 7977 7978 7979 7980 7981 7982
D 0760 7986 7987 7988 7989 7990 7991 7992 7993
D 0770 7997 7998 7999 8000 8001 8002 8003 8004
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLU-1
; Location / Line Number Index
; Ucode Loc'n 0 1 2 3 4 5 6 7
U 0000 3655: 3658: 3987= 3861: 3872: 3883: 3894: 3905:
U 0010 4470= 4473= 4475= 4477= 4479= 4480= 4481= 4482=
U 0020 3936= 3937= 8021= 8022= 6317= 6321= 8023= 8024=
U 0030 4191= 4192= 3769 4194= 6340= 6342= 4663= 4664=
U 0040 9255= 9259= 9263= 9267= 9271= 9275= 9279= 9283=
U 0050 9290= 9294= 9298= 9302= 9306= 9310= 9315= 9320=
U 0060 3761= 3915= 3916= 3918= 3762= 3920= 3923= 3925=
U 0070 3826= 3827= 5189= 5190= 3932= 3933= 5191= 5192=
U 0100 3996: 3998: 4006: 4026: 4029: 4128: 4130: 4014:
U 0110 4207= 4208= 5498= 4210= 4139= 4140= 5503= 3770
U 0120 4845= 3832 4848= 4849= 4750= 8037= 4751= 8038=
U 0130 5093= 6336= 5094= 5096= 5427= 6337= 5428= 3955:
U 0140 3713= 3833 3715= 3719= 3722= 3723= 3725= 3835
U 0150 10186= 6351= 3754= 3755= 10187= 6355= 3756= 3757=
U 0160 3778= 3780= 3782= 3784= 3786= 3787= 3788= 3789=
U 0170 3791= 3792= 3793= 3794= 3799= 3800= 3802= 3804=
U 0200 5520= 3990= 4143= 4144= 5521= 3993= 5523= 5524=
U 0210 5598= 5600= 5603= 5611= 4153= 4154= 5614= 5616=
U 0220 5162= 5164= 3942 5165= 7159= 7161= 4781= 4782=
U 0230 5359= 5362= 5364= 5365= 5657= 5658= 5660= 5661=
U 0240 6407= 3948 8033= 8034= 6411= 6413= 3949 8035=
U 0250 5760= 3950 5762= 5832= 5765= 4195 4212 5833=
U 0260 5545= 5546= 5547= 5549= 5551= 5553= 5555= 5557=
U 0270 3767= 3830= 5958= 4213 4215 5846= 5959= 5847=
U 0300 4160= 4161= 5902= 5904= 4167= 4168= 4133= 5906=
U 0310 6606= 4136= 4174= 4175= 6612= 6614= 4150= 6615=
U 0320 5562= 5563= 5564= 5566= 5569= 5571= 5573= 5574=
U 0330 6517= 4216 6518= 6519= 4008= 4009= 5850= 5852=
U 0340 5088= 5090= 5665= 5666= 8029= 8030= 5668= 5669=
U 0350 6980= 6981= 6983= 4605 4666= 4668= 6549= 6551=
U 0360 5091= 4673 5674= 5675= 4671= 4672= 5677= 5678=
U 0370 5771= 7312= 4679 7313= 5772= 6580= 5773= 6583=
U 0400 6661= 4157= 4793= 4795= 6675= 6680= 4164= 6682=
U 0410 8011= 8012= 8015= 4171= 4837= 4839= 8017= 8018=
U 0420 6808= 6810= 6812= 6814= 6816= 6817= 6818= 6819=
U 0430 6821= 6822= 6823= 6824= 6827= 6828= 6830= 6832=
U 0440 6858= 6860= 6862= 6864= 6866= 6867= 6868= 6869=
U 0450 6871= 6872= 6873= 6874= 6876= 6877= 6879= 6881=
U 0460 6386= 4696 6388= 7536= 6392= 4707 6400= 7538=
U 0470 6471= 4716 4717 7539= 6478= 4718 6479= 7541=
U 0500 8120= 8121= 8123= 8125= 4883= 4885= 4189= 8126=
U 0510 8146= 8158= 8161= 8162= 5748= 5752= 4227= 5753=
U 0520 5689= 5690= 5691= 5692= 5693= 5694= 5695= 5696=
U 0530 7060= 7318= 7062= 7319= 4734 7543= 7072= 7544=
U 0540 7154= 7155= 9789= 7894= 7156= 7157= 9790= 7897=
U 0550 8477= 8478= 4736 7898= 5796= 8482= 5797= 7899=
U 0560 7132= 7135= 4737 7136= 5706= 5708= 5709= 5711=
U 0570 8704= 8705= 8706= 8707= 8708= 8709= 8710= 8712=
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLU-2
; Location / Line Number Index
; Ucode Loc'n 0 1 2 3 4 5 6 7
U 0600 4626: 4627: 4629: 4630: 4631: 4633: 4634: 4635:
U 0610 4641: 4642: 4643: 4644: 4646: 4647: 4652: 4653:
U 0620 7250= 7251= 7252= 7253= 4739 4721: 4723: 4702:
U 0630 4675: 7370= 4676: 7371= 4704: 4745 8954= 8962=
U 0640 8854= 4752 8855= 8721= 4680= 4682= 8856= 8722=
U 0650 9907= 9908= 4753 8723= 9910= 9911= 4754 8724=
U 0660 7255= 4765 7256= 7257= 5819= 8730= 5820= 8731=
U 0670 7397= 4798 7398= 7399= 6985= 8736= 6986= 8744=
U 0700 4748: 4237= 4928= 4930= 5887= 5888= 5889= 5890=
U 0710 8180= 4247= 4266= 8181= 8183= 4282= 4292= 8184=
U 0720 8751= 8752= 8753= 8754= 8755= 8756= 4804 8760=
U 0730 4693= 4695= 7553= 7555= 4697= 4699= 4860 8762=
U 0740 8770= 8771= 8767= 8768= 7856= 8772= 7857= 8773=
U 0750 8047= 8048= 4887 8056= 4724= 4725= 4897 8774=
U 0760 8585= 8586= 8587= 8588= 8515= 8777= 8516= 8778=
U 0770 8666= 8668= 8670= 8672= 8533= 8782= 8535= 8784=
U 1000 5223: 4302= 5153: 4906 5388: 5076: 5086: 4312=
U 1010 5107: 5109: 5111: 7688: 7690: 4322= 4761: 4762:
U 1020 4727= 4728= 5154: 4909 5842= 4934 5843= 5844=
U 1030 8794= 8795= 4953 8796= 4956 8914= 8919= 8920=
U 1040 8812= 4959 8813= 8814= 4730= 4732= 4960 8943=
U 1050 8817= 5103 8818= 8819= 4772= 4773= 5155 8944=
U 1060 5720= 5721= 5722= 5723= 5724= 5725= 5726= 5727=
U 1070 8822= 5156 8823= 8824= 8679= 8988= 8680= 8990=
U 1100 8113= 8114= 8115= 8116= 7692: 7694: 7696: 7698:
U 1110 7700: 7702: 7704: 7706: 4943= 4951= 4333= 5168
U 1120 5780= 5169 9404= 9405= 5781= 5170 5784= 5785=
U 1130 9353= 9355= 5175 9356= 8726= 8993= 8727= 8994=
U 1140 5835= 5836= 5176 5837= 5179 5838= 6570= 6572=
U 1150 9000= 9001= 5180 9003= 8792= 9004= 8793= 9005=
U 1160 5987= 5182 5989= 5990= 4775= 4776= 5998= 6000=
U 1170 9081= 9082= 5184 9086= 10004= 9087= 10005= 9089=
U 1200 8132= 8133= 8135= 8136= 8462= 8463= 8466= 8467=
U 1210 8495= 8500= 8502= 8503= 8525= 8526= 8529= 8530=
U 1220 9517= 9518= 9519= 9520= 9522= 9523= 9524= 9525=
U 1230 9527= 9528= 9529= 9530= 9540= 9541= 9542= 9543=
U 1240 6252= 6253= 6255= 6256= 6258= 6260= 6262= 6278=
U 1250 9735= 9736= 5186 9737= 4802= 4803= 9744= 9745=
U 1260 9781= 9782= 5225 9783= 6289= 6291= 6292= 6294=
U 1270 9981= 9983= 5229 9984= 4807= 4808= 9746= 9747=
U 1300 8597= 8598= 8600= 8601= 8609= 8610= 8612= 8613=
U 1310 8618= 4343= 8621= 8622= 5331= 5333= 5350= 5351=
U 1320 4810= 4811= 6486= 6487= 5373 7127= 6489= 7129=
U 1330 4841= 4842= 5381 9795= 4853= 4855= 5389 9796=
U 1340 6499= 6501= 5397 6507= 10503= 6509= 10504= 6512=
U 1350 9840= 9841= 9842= 5417 5424 9850= 9844= 9852=
U 1360 6524= 6527= 6533= 6535= 6536= 6538= 6539= 6540=
U 1370 10018= 10019= 5474 10020= 4890= 4893= 9859= 9860=
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLU-3
; Location / Line Number Index
; Ucode Loc'n 0 1 2 3 4 5 6 7
U 1400 5371= 5372= 5953= 5954= 5982= 5983= 6136= 6147=
U 1410 6172= 6189= 6193= 6206= 6382= 7227= 6383= 7228=
U 1420 6773= 6775= 6776= 6778= 6779= 6780= 6781= 6782=
U 1430 10236= 5541 10238= 10239= 10557= 9890= 10558= 9891=
U 1440 4895= 4896= 5579 9966= 6802= 6803= 6804= 9968=
U 1450 10254= 10257= 5619 10258= 4902= 4903= 10014= 10015=
U 1460 10292= 5628 10294= 10295= 6852= 6853= 6854= 5755
U 1470 10430= 10433= 5777 10435= 10659= 10075= 10661= 10076=
U 1500 8106= 8107= 8581= 8583= 4353= 4363= 4373= 4508=
U 1510 4527= 4542= 4557= 4574= 4589= 4604= 4613= 5461=
U 1520 6959= 6964= 6966= 5778 5789 6968= 7502= 7515=
U 1530 10440= 10441= 5790 10442= 10713= 10097= 10714= 10098=
U 1540 5791 10161= 5793 10162= 5794 10163= 5802 10164=
U 1550 5804 10165= 5806 10166= 5808 10167= 5809 10168=
U 1560 10530= 10533= 5840 10534= 7007= 5848 7009= 7011=
U 1570 4907= 4908= 5849 10172= 4932= 4933= 5907 10173=
U 1600 5473= 5913 4937= 4938= 7017= 7019= 7021= 7027=
U 1610 4954= 4955= 5914 10189= 5101= 5102= 5919 10190=
U 1620 7232= 7233= 7234= 7235= 7236= 7238= 7240= 7241=
U 1630 5116= 5117= 5928 10200= 5158= 5159= 5931 10201=
U 1640 5956 10335= 6148 10336= 6219 10337= 6221 10338=
U 1650 6226 10339= 6227 10341= 6286 10343= 6365 10344=
U 1660 7349= 6427 5173= 5174= 7350= 6429 7352= 7353=
U 1670 7360= 6430 5177= 5178= 7364= 7365= 7366= 6432
U 1700 7381= 7382= 6434 7385= 6435 7387= 6436 7388=
U 1710 7464= 7466= 7468= 7470= 7471= 7473= 7475= 7476=
U 1720 6437 8544= 6449 8545= 5227= 5228= 6455 8550=
U 1730 10677= 10678= 10679= 10680= 5233= 5235= 8557= 8558=
U 1740 8638= 8639= 8640= 8641= 8642= 6484 9141= 9147=
U 1750 8835= 8836= 6542 8837= 8839= 8840= 6543 8841=
U 1760 8845= 6545 5241= 5242= 8846= 8848= 6548 8849=
U 1770 6563 10728= 10729= 10730= 5244= 5245= 6787 8903:
U 2000 5335= 5337= 9553= 9554= 5340= 5342= 9556= 9558=
U 2010 5345= 5346= 5376= 5378= 9705= 9706= 9707= 9708=
U 2020 9714= 9715= 5383= 5384= 9717= 9718= 9719= 6788
U 2030 9772= 9773= 9774= 6792 6834 10467= 9776= 10468=
U 2040 5392= 5394= 5398= 5399= 5407= 5409= 9892= 9893=
U 2050 5411= 5414= 5422= 5423= 5431= 5432= 9900= 9901=
U 2060 5435= 5437= 9992= 9993= 5441= 5442= 9994= 9995=
U 2070 5447= 5449= 5506= 5507= 5621= 5622= 10033= 10034=
U 2100 10040= 10043= 6838 10045= 6883 10047= 5635= 5638=
U 2110 5812= 5814= 5815= 5816= 10091= 10092= 10095= 6887
U 2120 10133= 10134= 10135= 6940 5822= 5824= 10136= 10137=
U 2130 5915= 5917= 5921= 5923= 10176= 10177= 10178= 10182=
U 2140 5924= 5925= 6011= 6012= 10224= 10225= 10227= 10228=
U 2150 6082= 6083= 6086= 6088= 10280= 10281= 10282= 10283=
U 2160 10352= 10353= 10354= 10355= 10364= 10475= 6942 10476=
U 2170 6216= 6217= 6224= 6225= 6943 10477= 6978 10482=
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLU-4
; Location / Line Number Index
; Ucode Loc'n 0 1 2 3 4 5 6 7
U 2200 6281= 6283= 6302= 6304= 6990 10493= 6992 10494=
U 2210 10505= 7029 10507= 10508= 10509= 10510= 10511= 10512=
U 2220 6416= 6422= 6425= 6426= 10543= 10544= 10545= 10546=
U 2230 6438= 6439= 6451= 6453= 10559= 10560= 7041 10561=
U 2240 6464= 6465= 6466= 6467= 6554= 6555= 6566= 6567=
U 2250 6785= 6786= 6789= 6790= 6836= 6837= 6885= 6886=
U 2260 6898= 6899= 6902= 6904= 6910= 6911= 6924= 6928=
U 2270 6932= 6939= 6987= 6988= 7038= 7040= 7243= 7244=
U 2300 7261= 7262= 7270= 7271= 7297= 7298= 7300= 7301=
U 2310 7306= 7307= 7333= 7334= 7335= 7336= 7341= 7342=
U 2320 7345= 7346= 7356= 7357= 7378= 7380= 7402= 7403=
U 2330 7406= 7408= 7410= 7411= 7414= 7415= 7458= 7460=
U 2340 7485= 7487= 7490= 7492= 7496= 7497= 7660= 7661=
U 2350 7667= 7668= 7679= 7680= 7681= 7682= 7732= 7733=
U 2360 7735= 7736= 7739= 7740= 7743= 7744= 7762= 7763=
U 2370 7765= 7768= 7878= 7879= 7882= 7884= 7904= 7905=
U 2400 8059= 8060= 8070= 8071= 8073= 8074= 8099= 8100=
U 2410 8193= 8194= 8470= 8476= 8488= 8489= 8573= 8575=
U 2420 8592= 8593= 8631= 8632= 8655= 8657= 8745= 8746=
U 2430 8931= 8932= 9017= 9018= 9026= 9027= 9042= 9046=
U 2440 9050= 9051= 9055= 9056= 9070= 9071= 9106= 9108=
U 2450 9121= 9125= 9134= 9140= 9159= 9171= 9177= 9178=
U 2460 9183= 9184= 9204= 7042 9212= 9213= 9216= 9218=
U 2470 9330= 9334= 9369= 9371= 9453= 9454= 9509= 9510=
U 2500 9513= 9514= 9546= 9547= 9561= 9562= 9694= 9695=
U 2510 9700= 9701= 9725= 9726= 9729= 9730= 9741= 9742=
U 2520 9792= 9793= 9819= 9820= 9828= 9829= 9836= 9838=
U 2530 9856= 9857= 9871= 9873= 9916= 9917= 9932= 9934=
U 2540 9977= 9978= 10010= 10011= 10070= 10072= 10077= 10078=
U 2550 10082= 10083= 10087= 10088= 10150= 10152= 10216= 10217=
U 2560 10229= 10230= 10232= 10233= 10284= 10285= 10288= 10289=
U 2570 10325= 10326= 10348= 10349= 10373= 10374= 10384= 10385=
U 2600 10396= 10397= 10400= 10401= 10408= 10411= 10414= 10415=
U 2610 10455= 10457= 10489= 10490= 10575= 10577= 10585= 10586=
U 2620 10589= 10591= 10597= 10599= 10605= 10607= 10611= 10612=
U 2630 10649= 10650= 10672= 10673= 10684= 10685= 10687= 10689=
U 2640 10734= 10735= 10737= 10739= 7043 7052 7054 7073
U 2650 7074 7137 7152 7249 7258 7260 7263 7264
U 2660 7265 7267 7268 7269 7272 7273 7275 7284
U 2670 7285 7286 7303 7304 7305 7308 7309 7310
U 2700 7314 7315 7316 7317 7320 7321 7322 7324
U 2710 7326 7337 7338 7339 7343 7347 7368 7372
U 2720 7374 7377 7389 7390 7391 7393 7450 7451
U 2730 7453 7454 7455 7478 7479 7482 7484 7494
U 2740 7499 7500 7501 7517 7518 7519 7521 7523
U 2750 7524 7526 7530 7531 7533 7534 7547 7549
U 2760 7550 7557 7559 7677 7683 7729 7730 7731
U 2770 7737 7738 7741 7742 7745 7746 7747 7748
; KL10 Microcode for TOPS-10 and TOPS-20 -- 18 Nov 1983 COPYRIGHT (C) 1984 DIGITAL EQUIPMENT CORPORATION V1(336) MICRO %34(270) Page LLU-5
; Location / Line Number Index
; Ucode Loc'n 0 1 2 3 4 5 6 7
U 3000 7750 7759 8090: 8096: 7770 9586: 9587: 7771
U 3010 9588: 9590: 9591: 7709: 7711: 7772 7773 7774
U 3020 7775 7776 7777 7778 7779 7780 7781 7783
U 3030 7853 7854 7858 7859 7861 7862 7863 7867
U 3040 7868 7869 7870 7871 7872 7874 7881 7885
U 3050 7886 7887 7888 7889 7890 7901 8026 8063
U 3060 8076 8080 8081 8108 8109 8128 8137 8138
U 3070 8139 8166 8186 8188 8189 8190 8468 9615:
U 3100 8490 8511 8512 8513 7712: 7714: 7715: 7716:
U 3110 7717: 7724: 7725: 7726: 8519 8536 8537 8538
U 3120 8571 8594 8602 8603 8605 8615 8623 8624
U 3130 8628 8629 8633 8636 8643 8644 8646 8647
U 3140 8648 8649 8653 8658 8659 8675 8676 8699
U 3150 8700 8702 8717 8719 8769 8786 8787 8788
U 3160 8789 8797 8826 8828 8851 8904 8905 8910
U 3170 8921 8933 8934 8935 8936 8937 8945 9616:
U 3200 8946 8947 8949 8951 8964 8966 8967 8968
U 3210 8969 8998 9011 9012 9013 9014 9016 9032
U 3220 9033 9040 9048 9053 9054 9065 9068 9073
U 3230 9093 9094 9095 9101 9113 9119 9130 9132
U 3240 9149 9175 9180 9185 9186 9198 9228 9229
U 3250 9236 9335 9365 9367 9368 9373 9374 9375
U 3260 9376 9398 9399 9400 9401 9412 9414 9415
U 3270 9420 9421 9426 9427 9429 9431 9435 9437
U 3300 9438 9440 9442 9444 9446 9447 9448 9449
U 3310 9451 9455 9456 9458 9460 9511 9512 9515
U 3320 9549 9693 9696 9697 9699 9702 9703 9704
U 3330 9710 9711 9712 9723 9728 9749 9750 9812
U 3340 9815 9854 9863 9887 9889 9894 9896 9897
U 3350 9898 9899 9902 9903 9919 9920 9924 9926
U 3360 9935 9936 9938 9940 9970 9971 9972 9974
U 3370 9997 10006 10007 10009 10013 10031 10035 10066
U 3400 10073 10085 10089 10138 10146 10148 10188 10192
U 3410 10193 10243 10263 10286 10297 10299 10302 10316
U 3420 10323 10324 10327 10330 10331 10332 10371 10375
U 3430 10379 10398 10402 10404 10420 10458 10459 10474
U 3440 10483 10486 10488 10495 10517 10548 10549 10556
U 3450 10562 10571 10573 10581 10582 10583 10592 10603
U 3460 10608 10609 10643 10648 10666 10667 10668 10682
U 3470 10720 10722 10732
U 3500 - 3767 Unused
U 3770 8901:
No errors detected
End of microcode assembly
322 pages of listing
Used 48.91 in 02:19.55
Memory used: 120P
Symbol table: 40P
Text strings: 12P
Loc'n assignment: 17P
Cross reference: 45P