; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 1 ; Table of Contents ; 1 T10KI.MIC[7,3] 12:29 10-APR-1985 ; 11 KS10.MIC[7,3] 14:54 7-JAN-1986 ; 68 REVISION HISTORY ; 195 HOW TO READ THE MICROCODE ; 400 CONDITIONAL ASSEMBLY DEFINITIONS ; 446 2901 REGISTER USAGE ; 482 MICROCODE FIELDS -- LISTING FORMAT ; 530 MICROCODE FIELDS -- DATAPATH CHIP ; 682 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 716 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 739 MICROCODE FIELDS -- SPEC ; 842 MICROCODE FIELDS -- DISPATCH ; 886 MICROCODE FIELDS -- SKIP ; 937 MICROCODE FIELDS -- TIME CONTROL ; 957 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 979 MICROCODE FIELDS -- NUMBER FIELD ; 1323 DISPATCH ROM DEFINITIONS ; 1369 HOW TO READ MACROS ; 1528 MACROS -- DATA PATH CHIP -- GENERAL ; 1678 MACROS -- DATA PATH CHIP -- Q ; 1713 MACROS -- DATA PATH CHIP -- MISC. ; 1734 MACROS -- STORE IN AC ; 1766 MACROS -- MICROCODE WORK SPACE ; 1793 MACROS -- MEMORY CONTROL ; 1843 MACROS -- VMA ; 1860 MACROS -- TIME CONTROL ; 1873 MACROS -- SCAD, SC, FE LOGIC ; 1956 MACROS -- DATA PATH FIELD CONTROL ; 1972 MACROS -- SHIFT PATH CONTROL ; 1985 MACROS -- SPECIAL FUNCTIONS ; 2016 MACROS -- PC FLAGS ; 2045 MACROS -- PAGE FAIL FLAGS ; 2053 MACROS -- SINGLE SKIPS ; 2078 MACROS -- SPECIAL DISPATCH MACROS ; 2112 DISPATCH ROM MACROS ; 2153 SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ; 2155 POWER UP SEQUENCE ; 2237 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2361 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2473 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2557 MOVE GROUP ; 2594 EXCH ; 2609 HALFWORD GROUP ; 2776 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2807 BOOLEAN GROUP ; 2962 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3058 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3093 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3132 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3164 TEST GROUP ; 3316 COMPARE -- CAI, CAM ; 3385 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3435 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3526 AC DECODE JUMPS -- JRST, JFCL ; 3616 EXTENDED ADDRESSING INSTRUCTIONS ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 2 ; Table of Contents ; 3657 XCT ; 3679 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3776 STACK INSTRUCTIONS -- ADJSP ; 3809 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 3864 ILLEGAL INSTRUCTIONS AND UUO'S ; 4063 ARITHMETIC -- ADD, SUB ; 4092 ARITHMETIC -- DADD, DSUB ; 4125 ARITHMETIC -- MUL, IMUL ; 4176 ARITHMETIC -- DMUL ; 4317 ARITHMETIC -- DIV, IDIV ; 4394 ARITHMETIC -- DDIV ; 4515 ARITHMETIC -- DIVIDE SUBROUTINE ; 4580 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4620 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4666 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 4743 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 4756 BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR ; 4790 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4843 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 4931 BYTE GROUP -- ADJUST BYTE POINTER ; 5090 BLT ; 5198 UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT ; 5272 FLT.MIC[7,3] 01:46 20-MAR-1981 ; 5273 FLOATING POINT -- FAD, FSB ; 5318 FLAOTING POINT -- FMP ; 5347 FLOATING POINT -- FDV ; 5397 FLOATING POINT -- FLTR, FSC ; 5432 FLOATING POINT -- FIX AND FIXR ; 5469 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5536 FLOATING POINT -- ROUND ANSWER ; 5547 FLOATING POINT -- DFAD, DFSB ; 5636 FLOATING POINT -- DFMP ; 5697 FLOATING POINT -- DFDV ; 5751 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 5861 EXTEND.MIC[7,3] 11:35 26-JULY-1984 ; 5862 EXTEND -- DISPATCH ROM ENTRIES ; 5917 EXTEND -- INSTRUCTION SET DECODING ; 5959 EXTEND -- MOVE STRING -- SETUP ; 6004 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6035 EXTEND -- MOVE STRING -- MOVSRJ ; 6083 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6107 EXTEND -- COMPARE STRING ; 6168 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6300 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6458 EXTEND -- EDIT -- MAIN LOOP ; 6512 EXTEND -- EDIT -- DECODE OPERATE GROUP ; 6531 EXTEND -- EDIT -- STOP EDIT ; 6546 EXTEND -- EDIT -- START SIGNIFICANCE ; 6553 EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION ; 6564 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6627 EXTEND -- EDIT -- MESSAGE BYTE ; 6650 EXTEND -- EDIT -- SKIP ; 6664 EXTEND -- EDIT -- ADVANCE PATTERN POINTER ; 6697 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 6721 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 3 ; Table of Contents ; 6758 EXTEND SUBROUTINES -- TRANSLATE ; 6844 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; 6873 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 6894 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 6938 EXTEND -- PAGE FAIL CLEANUP ; 6977 INOUT.MIC[7,3] 13:32 7-JAN-1986 ; 6978 TRAPS ; 7009 IO -- INTERNAL DEVICES ; 7120 IO -- INTERNAL DEVICES -- EBR & UBR ; 7246 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7288 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7319 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7358 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7372 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7412 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7553 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 7568 EXTERNAL IO INSTRUCTIONS ; 7756 SMALL SUBROUTINES ; 7780 UNDEFINED IO INSTRUCTIONS ; 7861 UMOVE AND UMOVEM ; 7916 WRITE HALT STATUS BLOCK ; 8008 PAGEF.MIC[7,3] 12:15 10-APR-1985 ; 8010 PAGE FAIL REFIL LOGIC ; Cross Reference Index ; DCODE Location / Line Number Index ; UCODE Location / Line Number Index ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 4 ; T10KI.MIC[7,3] 12:29 10-APR-1985 T10KI.MIC[7,3] 12:29 10-APR-1985 ; 1 .NOBIN ; 2 ;KS10 MICROCODE PARAMETER FILE ; 3 ; 4 ;PARAMETER FILE DEFINITIONS FOR T10KI ; 5 ;TOPS-10 KI PAGING MICROCODE (V7.02) ; 6 ; 7 .SET/UBABLT=1 ;SUPPORT UBABLT INSTRUCTIONS ; 8 .SET/KLPAGE=0 ;REMOVE KL PAGING (REQUIRED FOR UBABLT) ; 9 ; 10 .BIN ; 11 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 5 ; KS10.MIC[7,3] 14:54 7-JAN-1986 T10KI.MIC[7,3] 12:29 10-APR-1985 ; 12 .NOBIN ; 13 .TITLE "KS10 MICROCODE V130, 7-JAN-86" ; 14 ; 15 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 16 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 18 ;;; ;;; ; 19 ;;; ;;; ; 20 ;;; COPYRIGHT (C) 1976,1977,1978,1979,1980,1981,1982, ;;; ; 21 ;;; 1984,1985,1986 ;;; ; 22 ;;; DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ;;; ; 23 ;;; ;;; ; 24 ;;; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ;;; ; 25 ;;; ONLY ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ;;; ; 26 ;;; ONLY WITH THE INCLUSION OF THE ABOVE COPYRIGHT ;;; ; 27 ;;; NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, ;;; ; 28 ;;; MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ;;; ; 29 ;;; ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND ;;; ; 30 ;;; TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO ;;; ; 31 ;;; AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES ;;; ; 32 ;;; REMAIN IN DEC. ;;; ; 33 ;;; ;;; ; 34 ;;; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO ;;; ; 35 ;;; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS ;;; ; 36 ;;; A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ;;; ; 37 ;;; ;;; ; 38 ;;; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR ;;; ; 39 ;;; RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS ;;; ; 40 ;;; NOT SUPPLIED BY DEC. ;;; ; 41 ;;; ;;; ; 42 ;;; DESIGNED AND WRITTEN BY: ;;; ; 43 ;;; DONALD A. LEWINE ;;; ; 44 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 45 ;;; MARLBORO, MASS. ;;; ; 46 ;;; MR1-2/E47 X6430 ;;; ; 47 ;;; ;;; ; 48 ;;; MAINTAINED AND ENHANCED BY: ;;; ; 49 ;;; DONALD D. DOSSA ;;; ; 50 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 51 ;;; MARLBORO, MASS. ;;; ; 52 ;;; MR1-2/E18 DTN 231-4138 ;;; ; 53 ;;; ;;; ; 54 ;;; SEAN KEENAN ;;; ; 55 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 56 ;;; MARLBORO, MASS. ;;; ; 57 ;;; MR1-2/E18 DTN 231-4463 ;;; ; 58 ;;; ;;; ; 59 ;;; TIMOTHE LITT ;;; ; 60 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 61 ;;; MARLBORO, MASS. ;;; ; 62 ;;; IND-3/C9 262-8374 ;;; ; 63 ;;; ;;; ; 64 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 65 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 66 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 67 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 6 ; KS10.MIC[7,3] 14:54 7-JAN-1986 REVISION HISTORY ; 68 .TOC "REVISION HISTORY" ; 69 ; 70 ;REV WHY ; 71 ;1 START KS10 MICROCODE BASED ON SM10 MICROCODE VERSION 510 ; 72 ;2 UPDATE TO KS10 VERSION 512 ; 73 ;3 FIX SOME DEFAULTS ; 74 ;4 CHANGE HARDWARE TO MATCH ECO #215 ; 75 ;5 START TO UPDATE IO MICROCODE ; 76 ;6 MORE WORK ON IO ; 77 ;7 MAKE INTERRUPT THE 8080 BE A PULSE. ; 78 ;10 ADD NEW RDIO AND WRIO ; 79 ;11 FIX PROBLEMS IN MUUO CODE & CORRECT T-FIELDS ; 80 ;12 FIX PROBLEMS IN DDIV ; 81 ;13 FIX UP PROBLEMS IN PI ; 82 ;14 TURN ON WRITE FOR FL-EXIT ; 83 ;15 FIX UP MAP INSTRUCTION ; 84 ;16 MORE WORK ON KI-STYLE MAP ; 85 ;17 INVERT HOLD RIGHT AND HOLD LEFT BITS ; 86 ;20 FIXUP WRIO & RDIO EFFECTIVE ADDRESS CALC. ; 87 ;21 FIX EDIT 15 ; 88 ;22 HAVE LSH USE FAST SHIFT HARDWARE ; 89 ;23 FIX T-FIELD VALUES FOR PRODUCTION HARDWARE ; 90 ;24 REMOVE WRITE TEST FROM IO READS & WRITES ; 91 ;25 REWRITE MUL & MULI TO BE FASTER AND SMALLER. ALSO MAKE ADJBP ; 92 ; USE NEW MULSUB ; 93 ;26 MAKE BYTES USE FAST SHIFT ECO. ; 94 ;27 MAKE SURE VMA FETCH IS CORRECT ; 95 ;30 MORE OF 25 (FORGOT FMP) ; 96 ;31 FIX SOME PROBLEMS WITH TRAPS ; 97 ;32 SPEED UP EFFECTIVE ADDRESS CALCULATION ; 98 ;33 MORE OF 32 ; 99 ;34 SPEED UP ASH & ROT ; 100 ;35 FIX UP RDTIM SO THAT TIME DOES NOT GO BACKWARDS ; 101 ;36 MORE OF 35 ; 102 ;37 FIX UP PROBLEMS WITH INTERRUPTS AND DOUBLE F.P. ; 103 ;40 IMPROVE LISTING FORMAT ; 104 ;41 SPEEDUP KL-MODE PAGE REFILL ; 105 ;42 FIX UP DDIV ; 106 ;43 STILL MORE DDIV STUFF ; 107 ;44 CORRECT PROBLEMS IN D.P. PARITY STUFF ; 108 ;45 CORRECT THE BLT CLEAR-CORE CASE TO INTERRUPT CORRECTLY ; 109 ;46 MORE OF 45 ; 110 ;47 DO NOT ALLOW SOFTWARE INTERRUPTS IF THE PI LEVEL IS NOT ; 111 ; ACTIVE. ; 112 ;50 MAKE FDV WORK THE SAME AS THE KL10 ; 113 ;51 FIX INTERRUPT IN CVTBDX. MAKE ABORT WORK LIKE SPEC. ; 114 ;52 FIX BUG IN HALT LOOP ; 115 ;53 FIX IOEA TO WORK IF NO @ OR INDEXING ; 116 ;54 EDIT 47 BROKE JEN ; 117 ;55 FIX FLAGS IN MULTIPLY. ALSO CODE BUMS ; 118 ;56 MORE CODE BUMS ; 119 ;57 CORRECT OVERFLOW TRAPS WHICH DO MUUOS TO NOT STORE ; 120 ; THE TRAP FLAGS. ; 121 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 7 ; KS10.MIC[7,3] 14:54 7-JAN-1986 REVISION HISTORY ; 122 ;60 CORRECT TRAPS SO THAT DSKEA RUNS RIGHT ; 123 ;61 MORE OF 60. NOTE: MICROCODE REQUIRES ECO #299!! ; 124 ;62 ONE MORE TRY AT EDIT 60. ; 125 ;63 CORRECT TOPS-10 STYLE PAGING SO THAT A WRITE VIOLATION SETS ; 126 ; BIT 2 IN THE PAGE FAIL WORD (ACCESS ALLOWED). ; 127 ;64 EDIT 63 BROKE HARD PAGE FAILS. (NXM, BAD DATA, AND IO NXM) ; 128 ;65 INTERRUPTS OUT OF MOVSRJ INSTRUCTIONS DO STRANGE THINGS. ; 129 ;66 IO NXM PAGE FAIL FOR MISSING UBA GIVES PC+1 IN PAGE FAIL BLOCK. ; 130 ;67 ON A BAD DATA ERROR, STORE THE BAD WORD IN AC BLOCK 7 WORD 0 AND ; 131 ; 1 ; 132 ;70 FIX A BUG WHICH CAUSED INTERRUPTS OUT OF CVTBDT TO GENERATE A BAD ; 133 ; ANSWER. ; 134 ;71 CLEANUP SOME THINGS TO MAKE LIFE EASIER FOR FIELD SERVICE ; 135 ;72 LOOK FOR 1-MS TRAP ON @ PAGE POINTERS AND ABORT REFILL IF ; 136 ; SET. ; 137 ;73 CORRECT EDIT 72. ; 138 ;74 EDIT 67 GENERATES A DATA PATH PARITY ERROR BECAUSE OF THE BAD ; 139 ; DATA. CORRECT TO NOT CHECK PARITY. ; 140 ; ALSO CHANGE POP TO TIE UP BUS LESS. ; 141 ;75 EDIT 60 BROKE TRAPS. MISSING =0 AT TRAP:. ; 142 ;76 CORRECT BUG IN DFAD AND DFSB ; 143 ;77 FIX PROBLEM SEEN IN SOME (ALL BUT ENGINEERING?) MACHINES CAUSED ; 144 ; BY EDIT 76 ; 145 ;100 CHANGE DFAD/DFSB TO HAVE 2 MORE GUARD BITS. THIS SHOULD PRODUCE ; 146 ; KL10 ANSWERS FOR ALL NORMALIZED INPUTS ; 147 ; ALSO FIX A BUG IN CVTBDX PAGE FAIL LOGIC. ; 148 ;101 DFDV OF 0.0 / -0.5 HANGS THE MACHINE ; 149 ;102 FIX CHOPPED FLOATING POINT INSTRUCTIONS ; 150 ;103 CORRECT DFDV ROUNDING BUG. ; 151 ;104 CORRECT PROBLEMS IN DFMP ; 152 ;105 RDTIME SOMETIMES GIVES WRONG ANSWER. CARRY BETWEEN ; 153 ; WORDS GETS LOST SOMETIME. ; 154 ;106 MOVEM (ALSO, SETZM, SETOM, ETC.) SOMETIMES DOES NOT GENERATE ; 155 ; A WRITE-TRAP IN 100% OF THE CASES THAT IT SHOULD. ; 156 ;107 PXCT 14, DOES NOT GET THE INDEX REGISTER IN THE PREVIOUS ; 157 ; CONTEXT ALL THE TIME. ; 158 ;110 FIX TYPO IN EDIT 103 ; 159 ;111 63. BIT BYTES DO NOT WORK CORRECTLY. DSKDA FAILS BECAUSE OF THIS ; 160 ; PROBLEM. ; 161 ;******* VERSION 111 WENT OUT WITH SYSTEM REV 2 ******* ; 162 ; 163 ;112 FIX COMMENT IN TEST INSTRUCTIONS ; 164 ;113 CORRECT IOEA TO COMPUTE CORRECT ADDRESS IF JUST LOCAL INDEXING ; 165 ; IS USED. ; 166 ;114 CORRECT INTERRUPT BUG IN DMUL ; 167 ;115 CORRECT COMMENTS HALT STATUS BLOCK ; 168 ;116 CORRECT PROBLEM WHERE CST MODIFIED BIT GETS SET BY MISTAKE. ; 169 ;117 RDINT INSTRUCTION DOES NOT WORK AT ALL. IT STORES RANDOM TRASH ; 170 ; IN THE WRONG PLACE. NEED TO LOAD BR NOT AR. ; 171 ;120 FLOATING POINT OPERATIONS SOMETIMES GET THE WRONG RESULT WITH ; 172 ; INPUTS OF UNNORMALIZED ZEROS. THIS SHOULD NEVER HAPPEN WITH ; 173 ; FORTRAN OR ANY OTHER DEC LANGUAGE. ; 174 ;121 PREVENT KEEP-ALIVE CRASHES FROM OCCURRING BECAUSE THE MOVSRJ ; 175 ; INSTRUCTION CAN LOCK OUT THE 1MS TIMER INTERRUPTS FROM BEING ; 176 ; HANDLED. THIS CAUSES THE OPERATING SYSTEM TO LOSE TRACK OF THE ; 177 ; PASSAGE OF TIME. ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 7-1 ; KS10.MIC[7,3] 14:54 7-JAN-1986 REVISION HISTORY ; 178 ;122 DFAD FOLLOWED BY A FSC OF -5 CAUSES THE FSC TO GET WRONG ; 179 ; ANSWER. HAD TO CLEAR FLAG WORD AT EXIT OF DFAD TO FIX PROBLEM ; 180 ;123 MORE CODE FOR EDIT 121. ADDED ANOTHER DISPATCH ADDRESS FOR ; 181 ; PAGE FAIL CODE AT PFD:. ; 182 ;124 ADD ASSEMBLY OPTIONS FOR NOCST AND INHIBIT CST UPDATE. ; 183 ; ADD BLTUB/BLTBU TO GET UBA STYLE BYTES SWAPPED TO/FROM ILDB FORM. ; 184 ; ADD ASSEMBLY OPTIONS FOR KI/KL PAGE. NEED THE SPACE FOR BLTUB/BU. ; 185 ;125 SUPPORT THE "MAJOR/MINOR VERSION IN 136" UCODE STANDARD. ; 186 ; FIX BAD CONSTRAINT FOR INHCST ASSEMBLIES (NOT CURRENTLY USED) ; 187 ;126 FIX NON-TRIVIAL CASES OF RDUBR,WRUBR, AND PROCESS CONTEXT WORD. ; 188 ;127 JSR IN A TRAP CYCLE STORES E+1 SOMETIMES. TRAP CYCLE WAS NOT BEING ; 189 ; CLEARED (BY NICOND) BEFORE STARTING THE NEXT MEMORY READ. ; 190 ;130 FIX UCODE HANG WITH STOPPPED CLOCKS ON WR (KL-PAGING REGISTER) IF ; 191 ; PAGING IS ON. IDEALLY, WE WOULD REMOVE WRITE TEST FROM THE DROM ; 192 ; FIELD, BUT IT'S TOO LATE TO ECO THE ROMS. ; 193 ; RESTRICTION: WRITE KLPAGE REGISTER LOCATION MUST BE WRITABLE. ; 194 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 8 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ THE MICROCODE ; 195 .TOC "HOW TO READ THE MICROCODE" ; 196 ; 197 ; ; 198 ; ; 199 ; 1.0 FIELD DEFINITIONS ; 200 ; ; 201 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE KS10.MIC ; 202 ; (CONTROL AND DISPATCH RAM DEFINITIONS). THEY HAVE THE FORM: ; 203 ; ; 204 ; SYMBOL/=M,J ; 205 ; ; 206 ; THE PARAMETER (J) IS MEANINGFUL WHEN "D" IS SPECIFIED AS THE DEFAULT MECHANISM, ; 207 ; AND IN THAT CASE, GIVES THE DEFAULT VALUE OF THE FIELD IN OCTAL. WHEN "F" IS ; 208 ; SPECIFIED AS THE DEFAULT MECHANISM, (J) IS THE NAME OF A FIELD WHICH CONTAINS ; 209 ; THE DEFAULT VALUE FOR THIS FIELD. ; 210 ; ; 211 ; THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT IN THE FIELD. THE ; 212 ; SAME METHOD IS USED AS FOR (R) BELOW. ; 213 ; ; 214 ; THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL AS THE BIT NUMBER OF THE ; 215 ; RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED FROM 0 ON THE LEFT. NOTE THAT ; 216 ; THE POSITION OF BITS IN THE MICROWORD SHOWN IN THE LISTING BEARS NO RELATION TO ; 217 ; THE ORDERING OF BITS IN THE HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP ; 218 ; AND SCATTERED. ; 219 ; ; 220 ; THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT MECHANISM FOR THE FIELD. ; 221 ; THE LEGAL VALUES OF THIS PARAMETER ARE THE CHARACTERS "D", "F", "T", "P", OR ; 222 ; "+". ; 223 ; ; 224 ; "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT VALUE IS ; 225 ; SPECIFIED. ; 226 ; ; 227 ; "F" IS USED TO CAUSE THIS FIELD TO DEFAULT TO SOME OTHER FIELD. ; 228 ; ; 229 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 230 ; DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS. "T" IS NOT ; 231 ; USED IN THE KS10. ; 232 ; ; 233 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 234 ; SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD IS ODD. "P" IS NOT ; 235 ; USED ON THE KS10. ; 236 ; ; 237 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT JUMP ; 238 ; ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT, IN ; 239 ; GENERAL, THE CURRENT LOCATION +1). ; 240 ; ; 241 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE SELECT INPUTS ; 242 ; FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S. ; 243 ; ; 244 ; ; 245 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 9 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ THE MICROCODE ; 246 ; 2.0 VALUE DEFINITIONS ; 247 ; ; 248 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT FIELD TO CORRESPOND ; 249 ; TO VALUES OF THE FIELD. THE FORM IS: ; 250 ; ; 251 ; SYMBOL=N ; 252 ; ; 253 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD. ; 254 ; ; 255 ; ; 256 ; ; 257 ; 3.0 LABEL DEFINITIONS ; 258 ; ; 259 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON PRECEDING THE ; 260 ; MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE MICROINSTRUCTION BECOMES THE ; 261 ; VALUE OF THE SYMBOL IN THE FIELD NAMED "J". EXAMPLE: ; 262 ; ; 263 ; FOO: J/FOO ; 264 ; ; 265 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS THE VALUE ; 266 ; "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS OF ITSELF. ; 267 ; THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD LOOP ON ITSELF. ; 268 ; ; 269 ; ; 270 ; ; 271 ; 4.0 COMMENTS ; 272 ; ; 273 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE TO BE IGNORED BY THE ; 274 ; ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS. ; 275 ; ; 276 ; ; 277 ; ; 278 ; 5.0 MICROINSTRUCTION DEFINITION ; 279 ; ; 280 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME, FOLLOWED BY SLASH ; 281 ; (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A SYMBOL DEFINED FOR THAT FIELD, AN ; 282 ; OCTAL DIGIT STRING, OR A DECIMAL DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT ; 283 ; CONTAINS "8" AND/OR "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY ; 284 ; BE SPECIFIED IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS ; 285 ; WITH COMMAS. EXAMPLE: ; 286 ; ; 287 ; AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/1,DBUS/DP ; 288 ; ; 289 ; ; 290 ; 6.0 CONTINUATION ; 291 ; ; 292 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR MORE LINES BY ; 293 ; BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE LAST NON-BLANK, NON-COMMENT ; 294 ; CHARACTER ON A LINE IS A COMMA, THE INSTRUCTION SPECIFICATION IS CONTINUED ON ; 295 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 10 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ THE MICROCODE ; 296 ; THE FOLLOWING LINE. EXAMPLE: ; 297 ; READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 298 ; SKIP DP18, ;SEE IF RIGHT OR LEFT SHIFT ; 299 ; SC_SHIFT-1, ;PUT NUMBER OF PLACE TO ; 300 ; ;SHIFT IN SC ; 301 ; LOAD FE, ; AND IN FE ; 302 ; INST DISP ;GO DO THE SHIFT ; 303 ; ; 304 ; ; 305 ; ; 306 ; 7.0 MACROS ; 307 ; ; 308 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE SPECIFICATIONS AND/OR ; 309 ; MACROS. A MACRO DEFINITION IS A LINE CONTAINING THE MACRO NAME FOLLOWED BY A ; 310 ; QUOTED STRING WHICH IS THE VALUE OF THE MACRO. EXAMPLE: ; 311 ; ; 312 ; LOAD VMA "MEM/1, LDVMA/1 ; 313 ; ; 314 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT TO THE ; 315 ; APPEARANCE OF ITS VALUE. ; 316 ; ; 317 ; MACRO MAY HAVE PARAMETERS ENCLOSED IN []. FOR EXAMPLE, ; 318 ; ; 319 ; []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 320 ; ; 321 ; THE @1 GETS REPLACED BY WHAT IS WRITTEN IN THE FIRST SET OF [] AND @2 IS ; 322 ; REPLACED BY WHAT IS WRITTEN IN THE SECOND SET OF []. THUS ; 323 ; ; 324 ; [AR]_[ARX] ; 325 ; ; 326 ; HAS THE SAME EFFECT AS SAYING ; 327 ; ; 328 ; AD/A,A/ARX,DEST/AD,B/AR ; 329 ; ; 330 ; ; 331 ; SEE DESCRIPTION OF RULES FOR MACRO NAMES. ; 332 ; ; 333 ; 8.0 PSEUDO OPS ; 334 ; ; 335 ; THE MICRO ASSEMBLER HAS 13 PSEUDO-OPERATORS: ; 336 ; ; 337 ; .DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL BE ; 338 ; LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE ; 339 ; MEANINGFUL IN SUBSEQUENT MICROCODE ; 340 ; .TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND ; 341 ; .TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING. ; 342 ; .SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER, ; 343 ; .CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER, ; 344 ; .DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER. ; 345 ; .IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO, ; 346 ; .IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND ; 347 ; .ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED. ; 348 ; .NOBIN TURNS OFF THE BINARY A GETS RID OF THE SPACE USED TO LIST IT, ; 349 ; .BIN TURN BINARY BACK ON AGAIN. ; 350 ; .WIDTH CONTROLS THE NUMBER OF BITS IN THE CRAM ; 351 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 11 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ THE MICROCODE ; 352 ; 9.0 LOCATION CONTROL ; 353 ; ; 354 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT ADDRESS. ; 355 ; ; 356 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY A STRING OF 0'S, 1'S, ; 357 ; AND/OR *'S, SPECIFIES A CONSTRAINT ON THE ADDRESS OF FOLLOWING ; 358 ; MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS IN THE CONSTRAINT STRING (EXCLUDING ; 359 ; THE "=") IS THE NUMBER OF LOW-ORDER BITS CONSTRAINED IN THE ADDRESS. THE ; 360 ; MICROASSEMBLER ATTEMPTS TO FIND AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN ; 361 ; THE POSITIONS CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE ; 362 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS. ; 363 ; ; 364 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT IMPLIES A BLOCK OF ; 365 ; <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S IN THE STRING. ALL LOCATIONS IN ; 366 ; THE BLOCK WILL HAVE 1'S IN THE ADDRESS BITS CORRESPONDING TO 1'S IN THE STRING, ; 367 ; AND BIT POSITIONS DENOTED BY *'S WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK. ; 368 ; ; 369 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS COUNTING IN THE ; 370 ; "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW CONSTRAINT STRING OCCURING ; 371 ; WITHIN A BLOCK MAY FORCE SKIPPING OVER SOME LOCATIONS OF THE BLOCK. WITHIN A ; 372 ; BLOCK, A NEW CONSTRAINT STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS ; 373 ; PROGRESSION, IT MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE ; 374 ; MICROASSEMBLER WILL LATER FILL THEM IN. ; 375 ; ; 376 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0", "1", OR "*") SERVES ; 377 ; TO TERMINATE A CONSTRAINT BLOCK. EXAMPLES: ; 378 ; ; 379 ; =0 ; 380 ; ; 381 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO-- THE MICROASSEMBLER ; 382 ; FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS THE NEXT TWO MICROINSTRUCTIONS ; 383 ; INTO THEM. ; 384 ; ; 385 ; =11 ; 386 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST BOTH BE ONES. ; 387 ; SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE ASSEMBLER FINDS ONLY ONE LOCATION ; 388 ; MEETING THE CONSTRAINT. ; 389 ; ; 390 ; =0***** ; 391 ; ; 392 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE TO THE ; 393 ; IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT ADDRESS PROGRESSION ; 394 ; APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS CONSTRAINT FINDS ONE WORD IN WHICH ; 395 ; THE "40" BIT IS ZERO, AND DOES NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ; 396 ; ONE. THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS. HOWEVER ; 397 ; NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE CONSTRAINT ; 398 ; MENTIONED ABOVE. ; 399 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 12 ; KS10.MIC[7,3] 14:54 7-JAN-1986 CONDITIONAL ASSEMBLY DEFINITIONS ; 400 .TOC "CONDITIONAL ASSEMBLY DEFINITIONS" ; 401 ; 402 .DEFAULT/SIM=0 ;0=RUN ON REAL HARDWARE ; 403 ;1=RUN UNDER SIMULATOR ; 404 ; 405 .DEFAULT/FULL=1 ;0=INCLUDE ONLY BASIC INSTRUCTIONS ; 406 ;1=INCLUDE FULL INSTRUCTION SET ; 407 ; 408 .DEFAULT/INHCST=0 ;0=NO CODE TO INHIBIT CST UPDATE IF CSB=0 ; 409 ;1=DON'T UPDATE CST IF CSB=0 ; 410 ; 411 .DEFAULT/NOCST=0 ;0=INCLUDE SUPPORT FOR WRITING THE CST ; 412 ;1=COMPLETELY DESUPPORT CST (FOR TOPS-10) ; 413 ; 414 .DEFAULT/UBABLT=0 ;0=NO UBABLT SUPPORT ; 415 ;1=SUPPORT UBA STYLE BLT INSTRUCTIONS. ; 416 ; 417 .DEFAULT/KIPAGE=1 ;0=DON'T SUPPORT KI PAGING ; 418 ;1=DO ; 419 ; 420 .DEFAULT/KLPAGE=1 ;0=DON'T SUPPORT KL PAGING ; 421 ;1=DO ; 422 ; 423 .IF/UBABLT ;THESE INSTRUCTIONS ;;424 .IF/KLPAGE ;;425 .CHANGE/KIPAGE=0 ; 426 .ENDIF/KLPAGE ; 427 .IF/KIPAGE ;ALLOW ONLY ONE PAGING MODE ; 428 .CHANGE/KLPAGE=0 ; 429 .ENDIF/KIPAGE ; 430 .ENDIF/UBABLT ;OTHERWISE, MAY HAVE EITHER OR BOTH ; 431 ;;432 .IF/NOCST ;;433 .CHANGE/INHCST=0 ; 434 .ENDIF/NOCST ; 435 ; 436 .DEFAULT/NONSTD=0 ;0=STANDARD MICROCODE ; 437 ;1=NON-STANDARD MICROCODE ; 438 ; 439 .WIDTH/108 ;ONLY FIELDS BETWEEN BITS 0 AND 107 EVER ; 440 ; GET LOADED INTO THE CRAM. OTHER FIELDS ; 441 ; ARE USED FOR DEFAULTING PROCESS. ; 442 ; 443 .REGION/0,1377/2000,3777/1400,1777 ; 444 ;TRY AND KEEP STUFF OUT OF DROM SPACE ; 445 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 13 ; KS10.MIC[7,3] 14:54 7-JAN-1986 2901 REGISTER USAGE ; 446 .TOC "2901 REGISTER USAGE" ; 447 ; 448 ; !=========================================================================! ; 449 ;0: ! MAG (ONES IN BITS 1-36, REST ZERO) ! ; 450 ; !-------------------------------------------------------------------------! ; 451 ;1: ! PC (ADDRESS OF CURRENT INSTRUCTION + 1) ! ; 452 ; !-------------------------------------------------------------------------! ; 453 ;2: ! HR (CURRENT INSTRUCTION) ! ; 454 ; !-------------------------------------------------------------------------! ; 455 ;3: ! AR (TEMP -- MEM OP AT INST START) ! ; 456 ; !-------------------------------------------------------------------------! ; 457 ;4: ! ARX (TEMP -- LOW ORDER HALF OF DOUBLE PREC) ! ; 458 ; !-------------------------------------------------------------------------! ; 459 ;5: ! BR (TEMP) ! ; 460 ; !-------------------------------------------------------------------------! ; 461 ;6: ! BRX (TEMP -- LOW ORDER HALF OF DOUBLE PREC BR!BRX) ! ; 462 ; !-------------------------------------------------------------------------! ; 463 ;7: ! ONE (THE CONSTANT 1) ! ; 464 ; !-------------------------------------------------------------------------! ; 465 ;10: ! EBR (EXEC BASE REGISTER) ! ; 466 ; !-------------------------------------------------------------------------! ; 467 ;11: ! UBR (USER BASE REGISTER) ! ; 468 ; !-------------------------------------------------------------------------! ; 469 ;12: ! MASK (ONES IN BITS 0-35, ZERO IN -1, -2, 36 AND 37) ! ; 470 ; !-------------------------------------------------------------------------! ; 471 ;13: ! FLG (FLAG BITS) ! PAGE FAIL CODE ! ; 472 ; !-------------------------------------------------------------------------! ; 473 ;14: ! PI (PI SYSTEM STATUS REGISTER [RDPI]) ! ; 474 ; !-------------------------------------------------------------------------! ; 475 ;15: ! XWD1 (1 IN EACH HALF WORD) ! ; 476 ; !-------------------------------------------------------------------------! ; 477 ;16: ! T0 (TEMP) ! ; 478 ; !-------------------------------------------------------------------------! ; 479 ;17: ! T1 (TEMP) ! ; 480 ; !=========================================================================! ; 481 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 14 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- LISTING FORMAT ; 482 .TOC "MICROCODE FIELDS -- LISTING FORMAT" ; 483 ; 484 ; ; 3633 1561: ; 485 ; ; 3634 SUB: [AR]_AC-[AR], ; 486 ; ; 3635 AD FLAGS, 3T, ; 487 ; U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 3636 EXIT ; 488 ; [--] [--] !!!! [][] !!![-][][-][]! !!! [----] ; 489 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ! ; 490 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! +---- # (MAGIC NUMBER) ; 491 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ; 492 ; ! ! !!!! ! ! !!!! ! ! ! ! !!+------------- MULTI PREC, MULTI SHIFT, CALL (4S, 2S, 1S) ; 493 ; ! ! !!!! ! ! !!!! ! ! ! ! !! ; 494 ; ! ! !!!! ! ! !!!! ! ! ! ! !+-------------- FM WRITE, MEM, DIVIDE (4S, 2S, 1S) ; 495 ; ! ! !!!! ! ! !!!! ! ! ! ! ! ; 496 ; ! ! !!!! ! ! !!!! ! ! ! ! +--------------- CRY38, LOAD SC, LOAD FE (4S, 2S, 1S) ; 497 ; ! ! !!!! ! ! !!!! ! ! ! ! ; 498 ; ! ! !!!! ! ! !!!! ! ! ! +----------------- T ; 499 ; ! ! !!!! ! ! !!!! ! ! ! ; 500 ; ! ! !!!! ! ! !!!! ! ! +------------------- SKIP ; 501 ; ! ! !!!! ! ! !!!! ! ! ; 502 ; ! ! !!!! ! ! !!!! ! +---------------------- DISP ; 503 ; ! ! !!!! ! ! !!!! ! ; 504 ; ! ! !!!! ! ! !!!! +------------------------ SPEC ; 505 ; ! ! !!!! ! ! !!!! ; 506 ; ! ! !!!! ! ! !!!+--------------------------- CLOCKS & PARITY (CLKR, GENR, CHKR, CLKL, GENL, CHKL) ; 507 ; ! ! !!!! ! ! !!! ; 508 ; ! ! !!!! ! ! !!+---------------------------- DBM ; 509 ; ! ! !!!! ! ! !! ; 510 ; ! ! !!!! ! ! !+----------------------------- DBUS ; 511 ; ! ! !!!! ! ! ! ; 512 ; ! ! !!!! ! ! +------------------------------ RAM ADDRESS ; 513 ; ! ! !!!! ! ! ; 514 ; ! ! !!!! ! +--------------------------------- B ; 515 ; ! ! !!!! ! ; 516 ; ! ! !!!! +----------------------------------- A ; 517 ; ! ! !!!! ; 518 ; ! ! !!!+------------------------------------- DEST ; 519 ; ! ! !!! ; 520 ; ! ! !!+-------------------------------------- RSRC ; 521 ; ! ! !! ; 522 ; ! ! !+--------------------------------------- LSRC ] ; 523 ; ! ! ! ] - AD ; 524 ; ! ! +---------------------------------------- ALU ] ; 525 ; ! ! ; 526 ; ! +--------------------------------------------- J ; 527 ; ! ; 528 ; LOCATION OF THIS MICRO WORD ; 529 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 15 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- DATAPATH CHIP ; 530 .TOC "MICROCODE FIELDS -- DATAPATH CHIP" ; 531 ; 532 J/=<0:11>+ ;CRA1 ; 533 ;NEXT MICROCODE ADDRESS ; 534 ; 535 ;ALU FUNCTIONS ; 536 ; 537 ;NOTE: THE AD FIELD IS A 2 DIGIT FIELD. THE LEFT DIGIT IS THE ; 538 ; 2901 ALU FUNCTION. THE RIGHT DIGIT IS THE 2901 SRC CODE FOR ; 539 ; THE LEFT HALF. NORMALY THE RIGHT HALF SRC CODE IS THE SAME AS ; 540 ; THE LEFT HALF. ; 541 AD/=<12:17>D,44 ;DPE1 & DPE2 ; 542 A+Q=00 ; 543 A+B=01 ; 544 0+Q=02 ; 545 0+B=03 ; 546 0+A=04 ; 547 D+A=05 ; 548 D+Q=06 ; 549 0+D=07 ; 550 Q-A-.25=10 ; 551 B-A-.25=11 ; 552 Q-.25=12 ; 553 B-.25=13 ; 554 A-.25=14 ; 555 A-D-.25=15 ; 556 Q-D-.25=16 ; 557 -D-.25=17 ; 558 A-Q-.25=20 ; 559 A-B-.25=21 ; 560 -Q-.25=22 ; 561 -B-.25=23 ; 562 -A-.25=24 ; 563 D-A-.25=25 ; 564 D-Q-.25=26 ; 565 D-.25=27 ; 566 A.OR.Q=30 ; 567 A.OR.B=31 ; 568 Q=32 ; 569 B=33 ; 570 A=34 ; 571 D.OR.A=35 ; 572 D.OR.Q=36 ; 573 D=37 ; 574 A.AND.Q=40 ; 575 A.AND.B=41 ; 576 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 16 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- DATAPATH CHIP ; 577 ;MORE ALU FUNCTIONS ; 578 ; 579 ZERO=42 ; 580 ; ZERO=43 ; 581 ; ZERO=44 ; 582 D.AND.A=45 ; 583 D.AND.Q=46 ; 584 ; ZERO=47 ; 585 .NOT.A.AND.Q=50 ; 586 .NOT.A.AND.B=51 ; 587 ; Q=52 ; 588 ; B=53 ; 589 ; A=54 ; 590 .NOT.D.AND.A=55 ; 591 .NOT.D.AND.Q=56 ; 592 ; ZERO=57 ; 593 A.XOR.Q=60 ; 594 A.XOR.B=61 ; 595 ; Q=62 ; 596 ; B=63 ; 597 ; A=64 ; 598 D.XOR.A=65 ; 599 D.XOR.Q=66 ; 600 ; D=67 ; 601 A.EQV.Q=70 ; 602 A.EQV.B=71 ; 603 .NOT.Q=72 ; 604 .NOT.B=73 ; 605 .NOT.A=74 ; 606 D.EQV.A=75 ; 607 D.EQV.Q=76 ; 608 .NOT.D=77 ; 609 ; 610 ;THIS FIELD IS THE RIGHTMOST 3 BITS OF THE ; 611 ; AD FIELD. IT IS USED ONLY TO DEFAULT THE RSRC ; 612 ; FIELD. ; 613 LSRC/=<15:17> ;DPE1 ; 614 ; 615 ;THIS IS THE SOURCE FOR THE RIGHT HALF OF THE ; 616 ; DATA PATH. IT LETS US MAKE THE RIGHT AND LEFT ; 617 ; HALF WORDS DO SLIGHTLY DIFFERENT THINGS. ; 618 RSRC/=<18:20>F,LSRC ;DPE2 ; 619 AQ=0 ;A Q ; 620 AB=1 ;A B ; 621 0Q=2 ;0 Q ; 622 0B=3 ;0 B ; 623 0A=4 ;0 A ; 624 DA=5 ;D A ; 625 DQ=6 ;D Q ; 626 D0=7 ;D 0 ; 627 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 17 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- DATAPATH CHIP ; 628 ;DESTINATION CONTROL ; 629 ;SEE DPE1 AND DPE2 (2'S WEIGHT IS INVERTED ON DPE5) ; 630 DEST/=<21:23>D,3 ;DPE1 & DPE2 ; 631 A=0 ;A REG IS CHIP OUTPUT, AD IS WRITTEN ; 632 ; INTO REG FILE ; 633 AD=1 ;REG FILE GETS AD ; 634 Q_AD=2 ;REG FILE IS NOT LOADED ; 635 PASS=3 ;AD OUTPUT IS CHIP OUTPUT ; 636 ; Q AND REG FILE LEFT ALONE ; 637 Q_Q*2=4 ;ALSO REG FILE GETS AD*2 ; 638 AD*2=5 ;AND Q IS LEFT ALONE ; 639 Q_Q*.5=6 ;ALSO REG FILE GETS AD*.5 ; 640 AD*.5=7 ;AND Q IS LEFT ALONE ; 641 ; 642 ; <24:25> ;UNUSED ; 643 ; 644 A/=<26:29> ;DPE1 & DPE2 ; 645 MAG=0 ; 646 PC=1 ; 647 HR=2 ; 648 AR=3 ; 649 ARX=4 ; 650 BR=5 ; 651 BRX=6 ; 652 ONE=7 ; 653 EBR=10 ; 654 UBR=11 ; 655 MASK=12 ; 656 FLG=13 ; 657 PI=14 ; 658 XWD1=15 ; 659 T0=16 ; 660 T1=17 ; 661 ; 662 ; <30:31> ;UNUSED ; 663 ; 664 B/=<32:35>D,0 ;DPE1 & DPE2 ; 665 MAG=0 ; 666 PC=1 ; 667 HR=2 ; 668 AR=3 ; 669 ARX=4 ; 670 BR=5 ; 671 BRX=6 ; 672 ONE=7 ; 673 EBR=10 ; 674 UBR=11 ; 675 MASK=12 ; 676 FLG=13 ; 677 PI=14 ; 678 XWD1=15 ; 679 T0=16 ; 680 T1=17 ; 681 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 18 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 682 .TOC "MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS" ; 683 ; 684 RAMADR/=<36:38>D,4 ;DPE6 ; 685 AC#=0 ;AC NUMBER ; 686 AC*#=1 ;AC .FN. # ; 687 XR#=2 ;INDEX REGISTER ; 688 VMA=4 ;VIRTUAL MEMORY REFERENCE ; 689 RAM=6 ;VMA SUPPLIES 10-BIT RAM ADDRESS ; 690 #=7 ;ABSOLUTE RAM FILE REFERENCE ; 691 ; 692 ; <39:39> ; 693 ; 694 ;LEFT HALF ON DPE3 AND RIGHT HALF ON DPE4 ; 695 DBUS/=<40:41>D,1 ;DPE3 & DPE4 ; 696 PC FLAGS=0 ;PC FLAGS IN LEFT HALF ; 697 PI NEW=0 ;NEW PI LEVEL IN BITS 19-21 ; 698 ; VMA=0 ;VMA IN BITS 27-35 ; 699 DP=1 ;DATA PATH ; 700 RAM=2 ;CACHE, AC'S AND WORKSPACE ; 701 DBM=3 ;DBM MIXER ; 702 ; 703 ;LEFT HALF ON DPM1 AND RIGHT HALF ON DPM2 ; 704 DBM/=<42:44>D,7 ;DPM1 & DPM2 ; 705 SCAD DIAG=0 ;(LH) SCAD DIAGNOSTIC ; 706 PF DISP=0 ;PAGE FAIL DISP IN BITS 18-21 ; 707 APR FLAGS=0 ;APR FLAGS IN BITS 22-35 ; 708 BYTES=1 ;5 COPIES OF SCAD 1-7 ; 709 EXP=2 ;LH=EXPONENT, RH=TIME FRACTION ; 710 DP=3 ;DATA PATH ; 711 DP SWAP=4 ;DATA PATH SWAPPED ; 712 VMA=5 ;VMA FLAGS,,VMA ; 713 MEM=6 ;MEMORY BUFFER ; 714 #=7 ;NUMBER FIELD IN BOTH HALVES ; 715 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 19 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 716 .TOC "MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL" ; 717 ; 718 AD PARITY OK/=<108>D,0 ;**NOT STORED IN CRAM** ; 719 ;THIS BIT IS A 1 IF THE ALU IS DOING ; 720 ; SOMETHING WHICH DOES NOT INVALIDATE ; 721 ; PARITY. IT DOES NOT APPEAR IN THE ; 722 ; REAL MACHINE. WE JUST USE IT TO SET ; 723 ; THE DEFAULT FOR GENR & GENL ; 724 ; 725 CLKL/=<45:45>D,1 ;DPE5 ; 726 ;CLOCK THE LEFT HALF OF THE MACHINE ; 727 GENL/=<46:46>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN LEFT H ; 728 ;STORE PARITY FOR 2901 LEFT ; 729 CHKL/=<47:47> ;DPE4 FROM CRM2 PARITY CHK LEFT H ; 730 ;CHECK LEFT HALF DBUS PARITY ; 731 ; 732 CLKR/=<48:48>D,1 ;DPE5 ; 733 ;CLOCK THE RIGHT HALF OF THE MACHINE ; 734 GENR/=<49:49>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN RIGHT H ; 735 ;STORE PARITY FOR 2901 RIGHT ; 736 CHKR/=<50:50> ;DPE4 FROM CRM2 PARITY CHK RIGHT H ; 737 ;CHECK RIGHT HALF DBUS PARITY ; 738 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 20 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- SPEC ; 739 .TOC "MICROCODE FIELDS -- SPEC" ; 740 ; 741 ; 742 ; ; 743 ;THE FOLLOWING SPECIAL FUNCTION ARE DECODED ON DPE1, DPE5, AND DPMA: ; 744 ; !=========================================================================! ; 745 ; !S! EFFECT ! CRA6 SPEC ! CRA6 SPEC ! CRA6 SPEC ! ; 746 ; !P! ON SHIFT ! EN 40 ! EN 20 ! EN 10 ! ; 747 ; !E! PATHS ! E102 ON DPE5 ! E101 ON DPE5 ! E410 ON DPMA ! ; 748 ; !C! (SEE DPE1) ! ! E411 ON DPMA ! E113 ON CRA2 ! ; 749 ; !=========================================================================! ; 750 ; !0! NORMAL ! CRY 18 INH ! PREVIOUS ! # ! ; 751 ; !-------------------------------------------------------------------------! ; 752 ; !1! ZERO ! IR LOAD ! XR LOAD ! CLR 1 MSEC ! ; 753 ; !-------------------------------------------------------------------------! ; 754 ; !2! ONES ! ! ! CLR IO LATCH ! ; 755 ; !-------------------------------------------------------------------------! ; 756 ; !3! ROT ! PI LOAD ! APR FLAGS ! CLR IO BUSY ! ; 757 ; !-------------------------------------------------------------------------! ; 758 ; !4! ASHC ! ASH TEST ! SET SWEEP ! PAGE WRITE ! ; 759 ; !-------------------------------------------------------------------------! ; 760 ; !5! LSHC ! EXP TEST ! APR EN ! NICOND ! ; 761 ; !-------------------------------------------------------------------------! ; 762 ; !6! DIV ! PC FLAGS ! PXCT OFF ! PXCT EN ! ; 763 ; !-------------------------------------------------------------------------! ; 764 ; !7! ROTC ! AC BLOCKS EN ! MEM CLR ! MEM WAIT ! ; 765 ; !=========================================================================! ; 766 ; THE DPM BOARD USES THE SPEC FIELD TO CONTROL THE ; 767 ; DBM MIXER, AS FOLLOWS: ; 768 ; ; 769 ; !=====================================! ; 770 ; ! S ! ! ; 771 ; ! P ! ACTION WHEN DBM ! ; 772 ; ! E ! SELECTS DP ! ; 773 ; ! C ! GET DP BITS ! GET SCAD 1-7 ! ; 774 ; !=====================================! ; 775 ; ! 0 ! ALL ! NONE ! ; 776 ; !-------------------------------------! ; 777 ; ! 1 ! 7-35 ! 0-6 ! ; 778 ; !-------------------------------------! ; 779 ; ! 2 !0-6 AND 14-35 ! 7-13 ! ; 780 ; !-------------------------------------! ; 781 ; ! 3 !0-13 AND 21-35! 14-20 ! ; 782 ; !-------------------------------------! ; 783 ; ! 4 !0-20 AND 28-35! 21-27 ! ; 784 ; !-------------------------------------! ; 785 ; ! 5 ! 0-27 AND 35 ! 28-34 ! ; 786 ; !-------------------------------------! ; 787 ; ! 6 ! SAME AS ZERO ! ; 788 ; !-------------------------------------! ; 789 ; ! 7 ! SAME AS ZERO ! ; 790 ; !=====================================! ; 791 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 21 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- SPEC ; 792 ;THE SPEC FIELD IS DEFINED AS A 6-BIT FIELD. THE TOP 3 BITS ; 793 ; ARE SPEC SEL A, SPEC SEL B, AND SPEC SEL C. THE LOW 3 BITS ARE ; 794 ; THE SELECT CODE. ; 795 ; 796 SPEC/=<51:56>D,0 ;DPE1 & DPE5 & DPM1 & DPMA ; 797 #=10 ;DECODE # BITS ; 798 CLRCLK=11 ;CLEAR 1MS NICOND FLAG ; 799 CLR IO LATCH=12 ;CLEAR IO LATCH ; 800 CLR IO BUSY=13 ;CLEAR IO BUSY ; 801 LDPAGE=14 ;WRITE PAGE TABLE ; 802 NICOND=15 ;DOING NICOND DISPATCH ; 803 LDPXCT=16 ;LOAD PXCT FLAGS ; 804 WAIT=17 ;MEM WAIT ; 805 PREV=20 ;FORCE PREVIOUS CONTEXT ; 806 LOADXR=21 ;LOAD XR #, USES PXCT FIELD TO SELECT ; 807 ; CORRECT AC BLOCK ; 808 APR FLAGS=23 ;LOAD APR FLAGS ; 809 CLRCSH=24 ;CLEAR CACHE ; 810 APR EN=25 ;SET APR ENABLES ; 811 MEMCLR=27 ;CLEAR PAGE FAULT CONDITION ; 812 SWEEP=34 ;SET SWEEP ; 813 PXCT OFF=36 ;TURN OFF THE EFFECT OF PXCT ; 814 INHCRY18=40 ;INHIBIT CARRY INTO LEFT HALF ; 815 LOADIR=41 ;LOAD THE IR ; 816 LDPI=43 ;LOAD PI SYSTEM ; 817 ASHOV=44 ;TEST RESULT OF ASH ; 818 EXPTST=45 ;TEST RESULT OF FLOATING POINT ; 819 FLAGS=46 ;CHANGE PC FLAGS ; 820 LDACBLK=47 ;LOAD AC BLOCK NUMBERS ; 821 LDINST=61 ;LOAD INSTRUCTION ; 822 ; 823 ;THE SPEC FIELD IS REDEFINED WHEN USED FOR BYTE MODE STUFF ; 824 BYTE/=<54:56> ;DPM1 (SPEC SEL) ; 825 BYTE1=1 ; 826 BYTE2=2 ; 827 BYTE3=3 ; 828 BYTE4=4 ; 829 BYTE5=5 ; 830 ; 831 ;THE SPEC FIELD IS REDEFINED WHEN USED TO CONTROL SHIFT PATHS ; 832 SHSTYLE/=<54:56> ;DPE1 (SPEC SEL) ; 833 NORM=0 ;2 40-BIT REGISTERS ; 834 ZERO=1 ;SHIFT ZERO INTO 36 BITS (ASH TOP 2901) ; 835 ONES=2 ;SHIFT IN ONES ; 836 ROT=3 ;ROTATE ; 837 ASHC=4 ;ASHC ; 838 LSHC=5 ;LSHC ; 839 DIV=6 ;SPECIAL DIVIDE ; 840 ROTC=7 ;ROTATE DOUBLE ; 841 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 22 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- DISPATCH ; 842 .TOC "MICROCODE FIELDS -- DISPATCH" ; 843 ; !=======================================================! ; 844 ; ! D ! CRA1 ! CRA1 ! DPEA ! ; 845 ; ! I ! DISP ! DISP ! DISP ! ; 846 ; ! S ! 10 ! 20 ! 40 ! ; 847 ; ! P ! ! ! ! ; 848 ; !=======================================================! ; 849 ; ! 0 ! DIAG ADR ! DIAG ADR ! 0 ! ; 850 ; !-------------------------------------------------------! ; 851 ; ! 1 ! RETURN ! RETURN ! DP 18-21 ! ; 852 ; !-------------------------------------------------------! ; 853 ; ! 2 ! MULTIPLY ! J ! J ! ; 854 ; !-------------------------------------------------------! ; 855 ; ! 3 ! PAGE FAIL ! AREAD ! AREAD ! ; 856 ; !-------------------------------------------------------! ; 857 ; ! 4 ! NICOND ! NOT USABLE ! NORM ! ; 858 ; !-------------------------------------------------------! ; 859 ; ! 5 ! BYTE ! NOT USABLE ! DP 32-35 ! ; 860 ; !-------------------------------------------------------! ; 861 ; ! 6 ! EA MODE ! NOT USABLE ! DROM A ! ; 862 ; !-------------------------------------------------------! ; 863 ; ! 7 ! SCAD ! NOT USABLE ! DROM B ! ; 864 ; !=======================================================! ; 865 ;NOTE: DISP EN 40 & DISP EN 10 ONLY CONTROL THE LOW 4 BITS OF THE ; 866 ; JUMP ADDRESS. DISP EN 20 ONLY CONTROLS THE HI 7 BITS. TO DO ; 867 ; SOMETHING TO ALL 11 BITS BOTH 20 & 40 OR 20 & 10 MUST BE ENABLED. ; 868 ; 869 DISP/=<57:62>D,70 ;CRA1 & DPEA ; 870 CONSOLE=00 ;CONSOLE DISPATCH ; 871 DROM=12 ;DROM ; 872 AREAD=13 ;AREAD ; 873 DP LEFT=31 ;DP 18-21 ; 874 NORM=34 ;NORMALIZE ; 875 DP=35 ;DP 32-35 ; 876 ADISP=36 ;DROM A FIELD ; 877 BDISP=37 ;DROM B FIELD ; 878 RETURN=41 ;RETURN ; 879 MUL=62 ;MULTIPLY ; 880 PAGE FAIL=63 ;PAGE FAIL ; 881 NICOND=64 ;NEXT INSTRUCTION DISPATCH ; 882 BYTE=65 ;BYTE SIZE AND POSITION ; 883 EAMODE=66 ;EFFECTIVE ADDRESS MODE ; 884 SCAD0=67 ;J!2 IF SCAD BIT 0 = 1 ; 885 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 23 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- SKIP ; 886 .TOC "MICROCODE FIELDS -- SKIP" ; 887 ; !=======================================================! ; 888 ; ! S ! CRA2 ! DPEA ! DPEA ! ; 889 ; ! K ! SKIP ! SKIP ! SKIP ! ; 890 ; ! I ! 10 ! 20 ! 40 ! ; 891 ; ! P ! ! ! ! ; 892 ; !=======================================================! ; 893 ; ! 0 ! 0 ! 0 ! 0 ! ; 894 ; !-------------------------------------------------------! ; 895 ; ! 1 ! TRAP CYCLE ! CRY 02 ! CARRY OUT ! ; 896 ; !-------------------------------------------------------! ; 897 ; ! 2 ! AD=0 ! ADL SIGN ! ADL=0 ! ; 898 ; !-------------------------------------------------------! ; 899 ; ! 3 ! SC SIGN ! ADR SIGN ! ADR=0 ! ; 900 ; !-------------------------------------------------------! ; 901 ; ! 4 ! EXECUTE ! USER IOT ! -USER ! ; 902 ; !-------------------------------------------------------! ; 903 ; ! 5 ! -BUS IO BUSY ! JFCL SKIP ! FPD FLAG ! ; 904 ; !-------------------------------------------------------! ; 905 ; ! 6 ! -CONTINUE ! CRY 01 ! AC # IS ZERO ! ; 906 ; !-------------------------------------------------------! ; 907 ; ! 7 ! -1 MSEC ! TXXX ! INTERRUPT REQ ! ; 908 ; !=======================================================! ; 909 ; 910 SKIP/=<63:68>D,70 ;CRA2 & DPEA ; 911 IOLGL=04 ;(.NOT.USER)!(USER IOT)!(CONSOLE EXECUTE MODE) ; 912 LLE=12 ;AD LEFT .LE. 0 ; 913 CRY0=31 ;AD CRY -2 ; 914 ADLEQ0=32 ;ADDER LEFT = 0 ; 915 ADREQ0=33 ;ADDER RIGHT = 0 ; 916 KERNEL=34 ;.NOT. USER ; 917 FPD=35 ;FIRST PART DONE ; 918 AC0=36 ;AC NUMBER IS ZERO ; 919 INT=37 ;INTERRUPT REQUEST ; 920 LE=42 ;(AD SIGN)!(AD.EQ.0) ; 921 CRY2=51 ;AD CRY 02 ; 922 DP0=52 ;AD SIGN ; 923 DP18=53 ;AD BIT 18 ; 924 IOT=54 ;USER IOT ; 925 JFCL=55 ;JFCL SKIP ; 926 CRY1=56 ;AD CRY 1 ; 927 TXXX=57 ;TEST INSTRUCTION SHOULD SKIP ; 928 TRAP CYCLE=61 ;THIS INSTRUCTION IS THE RESULT OF A ; 929 ; TRAP 1, 2, OR 3 ; 930 ADEQ0=62 ;AD.EQ.0 ; 931 SC=63 ;SC SIGN BIT ; 932 EXECUTE=64 ;CONSOLE EXECUTE MODE ; 933 -IO BUSY=65 ;.NOT. I/O LATCH ; 934 -CONTINUE=66 ;.NOT. CONTINUE ; 935 -1 MS=67 ;.NOT. 1 MS. TIMER ; 936 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 24 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- TIME CONTROL ; 937 .TOC "MICROCODE FIELDS -- TIME CONTROL" ; 938 ; 939 DT/=<109:111>D,0 ;**NOT STORED IN CRAM** ; 940 ;DEFAULT TIME FIELD (USED IN MACROS) ; 941 ; CAN BE OVERRIDDEN IN MACRO CALL ; 942 2T=0 ; 943 3T=1 ; 944 4T=2 ; 945 5T=3 ; 946 ; 947 ; 948 T/=<69:71>F,DT ;CSL5 (E601) ; 949 ;CLOCK TICKS MINUS TWO REQUIRED TO ; 950 ; DO A MICRO INSTRUCTION ; 951 2T=0 ;TWO TICKS ; 952 3T=1 ;THREE TICKS ; 953 4T=2 ;FOUR TICKS ; 954 5T=3 ;FIVE TICKS ; 955 ; 956 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 25 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 957 .TOC "MICROCODE FIELDS -- RANDOM CONTROL BITS" ; 958 ; 959 CRY38/=<72> ;DPE5 ; 960 ;INJECT A CARRY INTO THE 2901 ADDER ; 961 LOADSC/=<73> ;DPM4 ; 962 ;LOAD THE STEP COUNTER FROM THE SCAD ; 963 LOADFE/=<74> ;DPM4 ; 964 ;LOAD THE FE REGISTER FROM THE SCAD ; 965 FMWRITE/=<75> ;DPE5 (E302) ; 966 ;WRITE THE RAM FILE. ; 967 MEM/=<76> ;DPM5 (E612) & DPE5 (E205) ; 968 ;START (OR COMPLETE) A MEMORY OR I/O CYCLE UNDER ; 969 ; CONTROL OF THE NUMBER FIELD. ; 970 DIVIDE/=<77> ;DPE5 ; 971 ;THIS MICROINSTRUCTION IS DOING A DIVIDE ; 972 MULTI PREC/=<78> ;DPE5 ; 973 ;MULTIPRECISION STEP IN DIVIDE, DFAD, DFSB ; 974 MULTI SHIFT/=<79> ;CSL5 (HAS NOTHING TO DO WITH DPE5 MULTI SHIFT) ; 975 ;FAST SHIFT ; 976 CALL/=<80> ;CRA2 (STACK IS ON CRA3) ; 977 ;THIS IS A CALL ; 978 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 26 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 979 .TOC "MICROCODE FIELDS -- NUMBER FIELD" ; 980 ; 981 ;HERE IS THE GENERAL FIELD ; 982 #/=<90:107> ;MANY PLACES ; 983 ; 984 ;# REDEFINED WHEN USED AS SCAD CONTROL: ; 985 SCAD/=<90:92> ;DPM3 ; 986 A*2=0 ; 987 A.OR.B=1 ; 988 A-B-1=2 ; 989 A-B=3 ; 990 A+B=4 ; 991 A.AND.B=5 ; 992 A-1=6 ; 993 A=7 ; 994 SCADA/=<93:95> ;DPM3 ; 995 SC=0 ; 996 S#=1 ; 997 PTR44=2 ;44 AND BIT 6 (SEE DPM3) ; 998 BYTE1=3 ; 999 BYTE2=4 ; 1000 BYTE3=5 ; 1001 BYTE4=6 ; 1002 BYTE5=7 ; 1003 SCADB/=<96:97> ;DPM3 ; 1004 FE=0 ; 1005 EXP=1 ; 1006 SHIFT=2 ; 1007 SIZE=3 ; 1008 S#/=<98:107> ;DPM3 ; 1009 ; 1010 ;# REDEFINED WHEN USED AS STATE REGISTER CONTROL: ; 1011 STATE/=<90:107> ;NOT USED BY HARDWARE ; 1012 SIMPLE=0 ;SIMPLE INSTRUCTIONS ; 1013 BLT=1 ;BLT IN PROGRESS ; 1014 MAP=400002 ;MAP IN PROGRESS ; 1015 SRC=3 ;MOVE STRING SOURCE IN PROGRESS ; 1016 DST=4 ;MOVE STRING FILL IN PROGRESS ; 1017 SRC+DST=5 ;MOVE STRING DEST IN PROGRESS ; 1018 DSTF=6 ;FILLING DEST ; 1019 CVTDB=7 ;CONVERT DEC TO BIN ; 1020 COMP-DST=10 ;COMPARE DEST ; 1021 EDIT-SRC=11 ;EDIT SOURCE ; 1022 EDIT-DST=12 ;EDIT DEST ; 1023 EDIT-S+D=13 ;BOTH SRC AND DST POINTERS ; 1024 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 27 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1025 ;# REDEFINED WHEN USED AS WORSPACE ADDRESS ; 1026 ; 1027 WORK/=<98:107> ;DPE6 ; 1028 BADW0=160 ;AC BLK 7 WORD 0 (BAD DATA FROM MEMORY) ; 1029 BADW1=161 ;AC BLK 7 WORD 1 (BAD DATA FROM MEMORY) ; 1030 MUL=200 ;TEMP FOR MULTIPLY ; 1031 DIV=201 ;TEMP FOR DIVIDE ; 1032 SV.VMA=210 ;SAVE VMA ; 1033 SV.AR=211 ;SAVE AR ; 1034 SV.ARX=212 ;SAVE ARX ; 1035 SV.BR=213 ;SAVE BR ; 1036 SV.BRX=214 ;SAVE BRX ; 1037 SBR=215 ;SPT BASE REGISTER ; 1038 CBR=216 ;CST BASE ADDRESS ; 1039 CSTM=217 ;CST MASK ; 1040 PUR=220 ;PROCESS USE REGISTER ; 1041 ADJP=221 ;"P" FOR ADJBP ; 1042 ADJS=222 ;"S" FOR ADJBP ; 1043 ADJPTR=223 ;BYTE POINTER FOR ADJBP ; 1044 ADJQ1=224 ;TEMP FOR ADJBP ; 1045 ADJR2=225 ;TEMP FOR ADJBP ; 1046 ADJBPW=226 ;(BYTES/WORD) FOR ADJBP ; 1047 HSBADR=227 ;ADDRESS OF HALT STATUS BLOCK ; 1048 APR=230 ;APR ENABLES ; 1049 ;THE FOLLOWING WORDS ARE USED BY EXTEND INSTRUCTION ; 1050 E0=240 ;ORIGINAL EFFECTIVE ADDRESS ; 1051 E1=241 ;EFFECTIVE ADDRESS OF WORD AT E0 ; 1052 SLEN=242 ;SOURCE LENGTH ; 1053 MSK=243 ;BYTE MASK ; 1054 FILL=244 ;FILL BYTE ; 1055 CMS=245 ;SRC BYTE IN STRING COMPARE ; 1056 FSIG=246 ;PLACE TO SAVE ARX WHILE STORING ; 1057 ; THE FLOAT CHAR ; 1058 BDH=247 ;BINARY BEING CONVERTED TO ; 1059 BDL=250 ; DECIMAL ; 1060 ; 1061 ;TIMER STUFF ; 1062 TIME0=300 ;HIGH ORDER 36 BITS OF TIME ; 1063 TIME1=301 ;LOW ORDER 36 BITS OF TIME ; 1064 PERIOD=302 ;INTERRUPT PERIOD ; 1065 TTG=303 ;TIME TO GO TO NEXT INTERRUPT ; 1066 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 28 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1067 ;DDIV STUFF ; 1068 AC0=314 ; 1069 AC1=315 ; 1070 AC2=316 ; 1071 AC3=317 ; 1072 DDIV SGN=320 ; 1073 DVSOR H=321 ; 1074 DVSOR L=322 ; 1075 ;POWERS OF TEN ; 1076 DECLO=344 ;LOW WORD ; 1077 DECHI=373 ;HIGH WORD ; 1078 ; 1079 YSAVE=422 ;Y OF LAST INDIRECT POINTER ; 1080 PTA.E=423 ;ADDRESS OF EXEC PAGE MAP (NOT PROCESS TABLE) ; 1081 PTA.U=424 ;ADDRESS OF USER PAGE MAP ; 1082 TRAPPC=425 ;SAVED PC FROM TRAP CYCLE ; 1083 SV.AR1=426 ;ANOTHER PLACE TO SAVE AR ; 1084 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 29 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1085 ;# REDEFINED WHEN USED AS PC FLAG CONTROL (ALL ON DPE9) ; 1086 ; 1087 SETOV/=<90> ;DPE9 ; 1088 ;SET ARITHMETIC OVERFLOW ; 1089 SETFOV/=<91> ;SET FLOATING OVERFLOW ; 1090 SETNDV/=<92> ;SET NO DIVIDE ; 1091 ; 1092 ;--------------------------------------------------------------------- ; 1093 ; 1094 CLRFPD/=<93> ;CLEAR FIRST PART DONE ; 1095 SETFPD/=<94> ;SET FIRST PART DONE ; 1096 HOLD USER/=<95> ;WHEN THIS BIT IS SET IT: ; 1097 ; 1. PREVENTS SETTING USER IOT IN USER MODE ; 1098 ; 2. PREVENTS CLEARING USER IN USER MODE ; 1099 ; 1100 ;--------------------------------------------------------------------- ; 1101 ; 1102 ; <96> ;SPARE ; 1103 TRAP2/=<97> ;SET TRAP 2 ; 1104 TRAP1/=<98> ;SET TRAP 1 ; 1105 ; 1106 ;--------------------------------------------------------------------- ; 1107 ; 1108 LD PCU/=<99> ;LOAD PCU FROM USER ; 1109 ; <100> ;SPARE ; 1110 ; <101> ;SPARE ; 1111 ; 1112 ;--------------------------------------------------------------------- ; 1113 ; 1114 ; <102> ;SPARE ; 1115 ; <103> ;SPARE ; 1116 JFCLFLG/=<104> ;DO A JFCL INSTRUCTION ; 1117 ; 1118 ;--------------------------------------------------------------------- ; 1119 ; 1120 LD FLAGS/=<105> ;LOAD FLAGS FROM DP ; 1121 ; <106> ; 1122 ADFLGS/=<107> ;UPDATE CARRY FLAGS ; 1123 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 30 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1124 ;# REDEFINED WHEN USED AS MEMORY CYCLE CONTROL ; 1125 ; 1126 FORCE USER/=<90> ;FORCE USER MODE REFERENCE ; 1127 FORCE EXEC/=<91> ;FORCE EXEC MODE REFERENCE ; 1128 ; (DOES NOT WORK UNDER PXCT) ; 1129 FETCH/=<92> ;THIS IS AN INSTRUCTION FETCH ; 1130 ; 1131 ;--------------------------------------------------------------------- ; 1132 ; 1133 READ CYCLE/=<93> ;SELECT A READ CYCLE ; 1134 WRITE TEST/=<94> ;PAGE FAILE IF NOT WRITTEN ; 1135 WRITE CYCLE/=<95> ;SELECT A MEMORY WRITE CYCLE ; 1136 ; 1137 ;--------------------------------------------------------------------- ; 1138 ; 1139 ; <96> ;SPARE BIT ; 1140 DONT CACHE/=<97> ;DO NOT LOOK IN CACHE ; 1141 PHYSICAL/=<98> ;DO NOT INVOKE PAGING HARDWARE ; 1142 ; 1143 ;--------------------------------------------------------------------- ; 1144 ; 1145 PXCT/=<99:101> ;WHICH PXCT BITS TO LOOK AT ; 1146 CURRENT=0 ; 1147 E1=1 ; 1148 D1=3 ; 1149 BIS-SRC-EA=4 ; 1150 E2=5 ; 1151 BIS-DST-EA=6 ; 1152 D2=7 ; 1153 ; 1154 ;--------------------------------------------------------------------- ; 1155 ; 1156 AREAD/=<102> ;LET DROM SELECT SYSLE TYPE AND VMA LOAD ; 1157 DP FUNC/=<103> ;IGNORE # BITS 0-11 AND USE DP 0-13 INSTEAD ; 1158 ; DP9 MEANS "FORCE PREVIOUS" ; 1159 LDVMA/=<104> ;LOAD THE VMA ; 1160 ; 1161 ;--------------------------------------------------------------------- ; 1162 ; 1163 EXT ADR/=<105> ;PUT VMA BITS 14-17 ONTO BUS ; 1164 WAIT/=<106> ;START A MEMORY OR I/O CYCLE ; 1165 BWRITE/=<107> ;START A MEMORY CYCLE IF DROM ASKS FOR IT ; 1166 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 31 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1167 ;THESE BITS ARE USED ONLY TO SETUP DP FOR A DP FUNCTION ; 1168 ; 1169 ; <99> ;PREVIOUS ; 1170 IO CYCLE/=<100> ;THIS IS AN I/O CYCLE ; 1171 WRU CYCLE/=<101> ;WHO ARE YOU CYCLE ; 1172 ; 1173 ;--------------------------------------------------------------------- ; 1174 ; 1175 VECTOR CYCLE/=<102> ;READ INTERRUPT VECTOR ; 1176 IO BYTE/=<103> ;BYTE CYCLE ; 1177 ; <104> ; 1178 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 32 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1179 ;# REDEFINED WHEN USED AS PI RIGHT BITS ; 1180 PI.ZER/=<90:92> ;ZEROS ; 1181 PI.IP1/=<93> ;PI 1 IN PROG ; 1182 PI.IP2/=<94> ; 1183 PI.IP3/=<95> ; 1184 PI.IP4/=<96> ; 1185 PI.IP5/=<97> ; 1186 PI.IP6/=<98> ; 1187 PI.IP7/=<99> ; 1188 PI.ON/=<100> ;SYSTEM IS ON ; 1189 PI.CO1/=<101> ;CHAN 1 IS ON ; 1190 PI.CO2/=<102> ; 1191 I.CO3/=<103> ; 1192 I.CO4/=<104> ; 1193 I.CO5/=<105> ; 1194 I.CO6/=<106> ; 1195 I.CO7/=<107> ; 1196 ; 1197 ;# REDEFINED WHEN USED AS WRPI DATA ; 1198 PI.MBZ/=<90:93> ;MUST BE ZERO ; 1199 PI.DIR/=<94> ;DROP INTERRUPT REQUESTS ; 1200 PI.CLR/=<95> ;CLEAR SYSTEM ; 1201 PI.REQ/=<96> ;REQUEST INTERRUPT ; 1202 PI.TCN/=<97> ;TURN CHANNEL ON ; 1203 PI.TCF/=<98> ;TURN CHANNEL OFF ; 1204 PI.TSF/=<99> ;TURN SYSTEM OFF ; 1205 PI.TSN/=<100> ;TURN SYSTEM ON ; 1206 PI.SC1/=<101> ;SELECT CHANNEL 1 ; 1207 PI.SC2/=<102> ; 1208 PI.SC3/=<103> ; 1209 PI.SC4/=<104> ; 1210 PI.SC5/=<105> ; 1211 PI.SC6/=<106> ; 1212 PI.SC7/=<107> ; 1213 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 33 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1214 ;# REDEFINED WHEN USED AS AC CONTROL ; 1215 ; 1216 ; 1217 ;THIS FIELD CONTROLS THE INPUT TO A 74LS181 ON DPE6. THE NUMBER ; 1218 ; FIELD HAS THIS FORMAT IN <98:107>: ; 1219 ; ; 1220 ; !-----!-----!-----!-----!-----!-----!-----!-----!-----!-----! ; 1221 ; !CARRY! S8 ! S4 ! S2 ! S1 ! MODE! B8 ! B4 ! B2 ! B1 ! ; 1222 ; ! IN ! FUNCTION ! ! DATA INPUTS ! ; 1223 ; !-----!-----------------------!-----!-----------------------! ; 1224 ; ; 1225 ; 1226 ACALU/=<98:103> ; 1227 B=25 ; 1228 AC+N=62 ; 1229 ACN/=<104:107> ; 1230 ;AC NAMES FOR STRING INSTRUCTIONS ; 1231 SRCLEN=0 ;SOURCE LENGTH ; 1232 SRCP=1 ;SOURCE POINTER ; 1233 DLEN=3 ;DEST LENGTH ; 1234 DSTP=4 ;DEST POINTER ; 1235 MARK=3 ;POINTER TO MARK ; 1236 BIN0=3 ;HIGH WORD OF BINARY ; 1237 BIN1=4 ;LOW WORD OF BINARY ; 1238 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 34 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1239 ;# FIELD REDEFINED WHEN USE AS APRID DATA ; 1240 MICROCODE OPTIONS/=<90:98> ; 1241 ;100 - NON-STANDARD MICROCODE ; 1242 ;200 - NO CST AT ALL ; 1243 ;400 - INHIBIT CST UPDATE IS AVAILABLE ; 1244 ;040 - UBABLT INSTRUCTIONS ARE PRESENT ; 1245 ;020 - KI PAGING IS PRESENT ; 1246 ;010 - KL PAGING IS PRESENT ; 1247 MICROCODE OPTION(INHCST)/=<90> ;;1248 .IF/INHCST ;;1249 OPT=1 ; 1250 .IFNOT/INHCST ; 1251 OPT=0 ; 1252 .ENDIF/INHCST ; 1253 MICROCODE OPTION(NOCST)/=<91> ;;1254 .IF/NOCST ;;1255 OPT=1 ; 1256 .IFNOT/NOCST ; 1257 OPT=0 ; 1258 .ENDIF/NOCST ; 1259 MICROCODE OPTION(NONSTD)/=<92> ;;1260 .IF/NONSTD ;;1261 OPT=1 ; 1262 .IFNOT/NONSTD ; 1263 OPT=0 ; 1264 .ENDIF/NONSTD ; 1265 MICROCODE OPTION(UBABLT)/=<93> ; 1266 .IF/UBABLT ; 1267 OPT=1 ;;1268 .IFNOT/UBABLT ;;1269 OPT=0 ; 1270 .ENDIF/UBABLT ; 1271 MICROCODE OPTION(KIPAGE)/=<94> ; 1272 .IF/KIPAGE ; 1273 OPT=1 ;;1274 .IFNOT/KIPAGE ;;1275 OPT=0 ; 1276 .ENDIF/KIPAGE ; 1277 MICROCODE OPTION(KLPAGE)/=<95> ;;1278 .IF/KLPAGE ;;1279 OPT=1 ; 1280 .IFNOT/KLPAGE ; 1281 OPT=0 ; 1282 .ENDIF/KLPAGE ; 1283 ; 1284 MICROCODE VERSION/=<99:107> ; 1285 UCV=130 ; 1286 ; 1287 MICROCODE RELEASE(MAJOR)/=<99:104> ; 1288 UCR=2 ;MAJOR VERSION NUMBER (1,2,3,....) ; 1289 ; 1290 MICROCODE RELEASE(MINOR)/=<105:107> ; 1291 UCR=0 ;MINOR VERSION NUMBER (.1,.2,.3,...) ; 1292 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 35 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MICROCODE FIELDS -- NUMBER FIELD ; 1293 ;# FIELD REDEFINED WHEN USED AS A HALT CODE ; 1294 ; 1295 HALT/=<90:107> ; 1296 ;CODES 0 TO 77 ARE "NORMAL" HALTS ; 1297 POWER=0 ;POWER UP ; 1298 HALT=1 ;HALT INSTRUCTION ; 1299 CSL=2 ;CONSOLE HALT ; 1300 ;CODES 100 TO 777 ARE SOFTWARE ERRORS ; 1301 IOPF=100 ;I/O PAGE FAIL ; 1302 ILLII=101 ;ILLEGAL INTERRUPT INSTRUCTION ; 1303 ILLINT=102 ;BAD POINTER TO UNIBUS INTERRUPT VECTOR ; 1304 ;CODES 1000 TO 1777 ARE HARDWARE ERRORS ; 1305 BW14=1000 ;ILLEGAL BWRITE FUNCTION (BAD DROM) ; 1306 NICOND 5=1004 ;ILLEGAL NICOND DISPATCH ; 1307 MULERR=1005 ;VALUE COMPUTED FOR 10**21 WAS WRONG ;;1308 .IFNOT/FULL ;;1309 PAGEF=1777 ;PAGE FAIL IN SMALL MICROCODE ; 1310 .ENDIF/FULL ; 1311 ; 1312 ; 1313 ; 1314 ;# FIELD REDEFINED WHEN USED AS FLG BITS ; 1315 ; 1316 FLG.W/=<94> ;W BIT FROM PAGE MAP ; 1317 FLG.PI/=<95> ;PI CYCLE ; 1318 FLG.C/=<96> ;CACHE BIT FROM PAGE MAP ; 1319 FLG.SN/=<97> ;SPECIAL NEGATE IN FDV & DFDV ; 1320 ; 1321 ;RIGHT HALF OF FLG USED TO RECOVER FROM PAGE FAILS ; 1322 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 36 ; KS10.MIC[7,3] 14:54 7-JAN-1986 DISPATCH ROM DEFINITIONS ; 1323 .TOC "DISPATCH ROM DEFINITIONS" ; 1324 ; 1325 ;ALL ON DPEA ; 1326 ; 1327 .DCODE ; 1328 A/=<2:5> ;OPERAND FETCH MODE ; 1329 READ=0 ;READ ; 1330 WRITE=1 ;WRITE ; 1331 DREAD=2 ;DOUBLE READ ; 1332 DBLAC=3 ;DOUBLE AC ; 1333 SHIFT=4 ;SIMPLE SHIFT ; 1334 DSHIFT=5 ;DOUBLE SHIFT ; 1335 FPI=6 ;FLOATING POINT IMMEDIATE ; 1336 FP=7 ;FLOATING POINT ; 1337 RD-PF=10 ;READ, THEN START PREFETCH ; 1338 DFP=11 ;DOUBLE FLOATING POINT ; 1339 IOT=12 ;CHECK FOR IO LEGAL THEN SAME AS I ; 1340 ; 1341 B/=<8:11> ;STORE RESULTS AS ; 1342 SELF=4 ;SELF ; 1343 DBLAC=5 ;DOUBLE AC ; 1344 DBLB=6 ;DOUBLE BOTH ; 1345 AC=15 ;AC ; 1346 MEM=16 ;MEMORY ; 1347 BOTH=17 ;BOTH ; 1348 ; 1349 ;B-FIELD WHEN USED IN FLOATING POINT OPERATIONS ; 1350 ROUND/=<8> ;ROUND THE RESULT ; 1351 MODE/=<9> ;SEPARATE ADD/SUB & MUL/DIV ETC. ; 1352 FL-B/=<10:11> ;STORE RESULTS AS ; 1353 AC=1 ;AC ; 1354 MEM=2 ;MEMORY ; 1355 BOTH=3 ;BOTH ; 1356 ; 1357 J/=<12:23> ;DISPATCH ADDRESS (MUST BE 1400 TO 1777) ; 1358 ; 1359 ACDISP/=<24> ;DISPATCH ON AC FIELD ; 1360 I/=<25> ;IMMEDIATE DISPATCH. DISP/AREAD DOES A DISP/DROM ; 1361 ; IF THIS BIT IS SET. ; 1362 READ/=<26> ;START A READ AT AREAD ; 1363 TEST/=<27> ;START A WRITE TEST AT AREAD ; 1364 COND FUNC/=<28> ;START A MEMORY CYCLE ON BWRITE ; 1365 VMA/=<29>D,1 ;LOAD THE VMA ON AREAD ; 1366 WRITE/=<30> ;START A WRITE ON AREAD ; 1367 .UCODE ; 1368 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 37 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ MACROS ; 1369 .TOC "HOW TO READ MACROS" ; 1370 ; ; 1371 ; 1.0 REGISTER TRANSFER MACROS ; 1372 ; ; 1373 ; MOST MACROS USED IN THE KS10 ARE USED TO OPERATE ON DATA IN (OR FROM/TO) 2901 ; 1374 ; REGISTERS. THE NAMES OF THE 2901 REGISTERS ARE MACRO PARAMETERS AND ARE ; 1375 ; ENCLOSED IN []. A TYPICAL MACRO IS: ; 1376 ; ; 1377 ; [AR]_[AR]+[BR] ; 1378 ; ; 1379 ; THE SYMBOL _ IS PRONOUNCED "GETS". THE ABOVE MACRO WOULD BE READ "THE AR GETS ; 1380 ; THE AR PLUS THE BR". ; 1381 ; ; 1382 ; IF A MACRO DOES NOT HAVE A _ IN IT, THERE IS NO RESULT STORED. THUS, [AR]-[BR] ; 1383 ; JUST COMPARES THE AR AND THE BR AND ALLOWS FOR SKIPS ON THE VARIOUS ALU BITS. ; 1384 ; ; 1385 ; ; 1386 ; ; 1387 ; 1.1 SPECIAL SYMBOLS ; 1388 ; ; 1389 ; THERE ARE A BUNCH OF SYMBOLS USED IN THE MACROS WHICH ARE NOT 2901 REGISTERS. ; 1390 ; THEY ARE DEFINED HERE: ; 1391 ; ; 1392 ; 1. AC -- THE AC SELECTED BY THE CURRENT INSTRUCTION. SEE DPEA ; 1393 ; ; 1394 ; 2. AC[] -- AC+N. AC[1] IS AC+1, AC[2] IS AC+2, ETC. ; 1395 ; ; 1396 ; 3. APR -- THE APR FLAGS FROM DPMA ; 1397 ; ; 1398 ; 4. EA -- THE EFFECTIVE ADDRESS. THAT IS, 0 IN THE LEFT HALF AND THE ; 1399 ; CONTENTS OF THE HR IN THE RIGHT HALF. ; 1400 ; ; 1401 ; 5. EXP -- THE F.P. EXPONENT FROM THE SCAD. [AR]_EXP WILL TAKE THE ; 1402 ; EXPONENT OUT OF THE FE AND PUT IT BACK INTO THE NUMBER IN THE AR. ; 1403 ; ; 1404 ; 6. FE -- THE FE REGISTER ; 1405 ; ; 1406 ; 7. FLAGS -- THE PC FLAGS (FROM DPE9) IN THE LEFT HALF. ; 1407 ; ; 1408 ; 8. Q -- THE Q REGISTER ; 1409 ; ; 1410 ; 9. RAM -- THE RAM FILE, RAM ADDRESS IS IN THE VMA. ; 1411 ; ; 1412 ; 10. P -- THE P FIELD OF THE BYTE POINTER. SAME IDEA AS EXP. ; 1413 ; ; 1414 ; 11. TIME -- THE 1MS. TIMER ; 1415 ; ; 1416 ; 12. VMA -- THE VMA. WHEN READ IT INCLUDES THE VMA FLAGS ; 1417 ; ; 1418 ; 13. XR -- INDEX REGISTER ; 1419 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 38 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ MACROS ; 1420 ; 14. XWD -- HALF WORD. USED TO GENERATE CONSTANTS. FOR EXAMPLE, [AR]_0 XWD ; 1421 ; [40] WOULD LOAD THE CONSTANT 40 (OCTAL) INTO THE AR. ; 1422 ; ; 1423 ; 15. +SIGN AND -SIGN -- SIGN BITS USED TO SIGN SMEAR F.P. NUMBERS. FOR ; 1424 ; EXAMPLE, [AR]_+SIGN WOULD CLEAR AR BITS 0 TO 8. ; 1425 ; ; 1426 ; 16. WORK[] -- LOCATIONS IN THE WORKSPACE USED AS SCRATCH SPACE. FOR ; 1427 ; EXAMPLE, [AR]_WORK[CSTM] WOULD LOAD THE AR WITH THE CST MASK FROM THE ; 1428 ; RAM. CSTM IS A SYMBOL DEFINED IN THE WORK FIELD. ; 1429 ; ; 1430 ; ; 1431 ; ; 1432 ; ; 1433 ; 1.2 LONG ; 1434 ; ; 1435 ; LONG IS USED ON SHIFT OPERATIONS TO INDICATE THAT THE Q REGISTER IS ALSO ; 1436 ; SHIFTED. THIS SAYS NOTHING ABOUT HOW THE SHIFT PATHS ARE CONNECTED UP. ; 1437 ; ; 1438 ; ; 1439 ; ; 1440 ; 2.0 MEMORY MACROS ; 1441 ; ; 1442 ; MEMORY IS INDICATED BY THE SYMBOL "MEM". WHEN WE ARE WAITING FOR DATA FROM ; 1443 ; MEMORY THE "MEM READ" MACRO IS USED. WHEN WE ARE SENDING DATA TO MEMORY, THE ; 1444 ; "MEM WRITE" MACRO IS USED. EXAMPLE, ; 1445 ; MEM READ, ;WAIT FOR MEMORY ; 1446 ; [AR]_MEM ;LOAD DATA INTO AR ; 1447 ; VMA_ IS USED THE LOAD THE VMA. THUS, VMA_[PC] LOADS THE VMA FROM THE PC. ; 1448 ; ; 1449 ; ; 1450 ; ; 1451 ; 3.0 TIME CONTROL ; 1452 ; ; 1453 ; THERE ARE 2 SETS OF MACROS USED FOR TIME CONTROL. THE FIRST, SELECTS THE RAM ; 1454 ; ADDRESS TO SPEED UP THE NEXT INSTRUCTION. THESE MACROS ARE AC, AC[], XR, VMA, ; 1455 ; WORK[]. THE SECOND, SETS THE TIME FIELD. THESE ARE 2T, 3T, 4T, AND 5T TO ; 1456 ; SELECT 2, 3, 4, OR 5 TICKS. ; 1457 ; ; 1458 ; ; 1459 ; ; 1460 ; 4.0 SCAD MACROS ; 1461 ; ; 1462 ; THE SCAD MACROS LOOK LIKE THE 2901 MACROS EXECPT NO [] ARE REQUIRED. THERE ARE ; 1463 ; ONLY A FEW SYMBOLS USED. ; 1464 ; ; 1465 ; 1. FE -- THE FE REGISTER ; 1466 ; ; 1467 ; 2. SC -- THE SC REGISTER ; 1468 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 39 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ MACROS ; 1469 ; 3. EXP -- THE EXPONENT FROM A F.P. NUMBER. FOR EXAMPLE FE_EXP LOADS THE ; 1470 ; FE FROM DP BITS 1-8. ; 1471 ; ; 1472 ; 4. SHIFT -- THE SHIFT COUNT FROM SHIFT INSTRUCTIONS. THAT IS DP BITS 18 ; 1473 ; AND 28-35. ; 1474 ; ; 1475 ; 5. S# -- THE SMALL NUMBER. THE 10 BIT MAGIC NUMBER INPUT TO THE SCADA ; 1476 ; MIXER. ; 1477 ; ; 1478 ; ; 1479 ; ; 1480 ; ; 1481 ; 5.0 CONTROL MACROS ; 1482 ; ; 1483 ; ALL CONTROL MACROS LOOK LIKE ENGLISH COMMANDS. SOME EXAMPLES, ; 1484 ; HOLD LEFT ;DO NOT CLOCK LEFT HALF OF DP ; 1485 ; SET APR ENABLES ;LOAD APR ENABLES FROM DP ; 1486 ; SET NO DIVIDE ;SET NO DIVIDE PC FLAG ; 1487 ; ; 1488 ; ; 1489 ; ; 1490 ; 6.0 SKIPS ; 1491 ; ; 1492 ; ALL SKIPS CAUSE THE NEXT MICRO INSTRUCTION TO COME FROM THE ODD WORD OF AN ; 1493 ; EVEN/ODD PAIR. THE MACROS HAVE THE FORMAT OF SKIP COND. THEY SKIP IF CONDITION ; 1494 ; IS TRUE. SOME EXAMPLES, ; 1495 ; SKIP AD.EQ.0 ;SKIP IF ADDER OUTPUT IS ZERO ; 1496 ; SKIP IRPT ;SKIP IF INTERRUPT IS PENDING ; 1497 ; ; 1498 ; ; 1499 ; ; 1500 ; 7.0 DISPATCH MACROS ; 1501 ; ; 1502 ; DISPATCH MACROS CAUSE THE MACHINE TO GO TO ONE OF MANY PLACES. IN MOST CASES ; 1503 ; THEY HAVE THE WORD "DISP" IN THE NAME OF THE MACRO. FOR EXAMPLE, MUL DISP, BYTE ; 1504 ; DISP. ; 1505 ; ; 1506 ; ; 1507 ; ; 1508 ; 8.0 SUPER MACROS ; 1509 ; ; 1510 ; THERE ARE PLACES WHERE ONE MICRO INSTRUCTION IS USED IN MANY PLACES. FOR ; 1511 ; EXAMPLE, MANY PLACES DETECT ILLEGAL OPERATIONS AND WANT TO GENERATE A TRAP TO ; 1512 ; THE MONITOR. WE COULD WRITE ; 1513 ; J/UUO ; 1514 ; BUT THIS WASTES A MICRO STEP DOING A USELESS JUMP. INSTEAD WE WRITE, ; 1515 ; UUO ; 1516 ; THIS MACRO IS THE FIRST STEP OF THE UUO ROUTINE AND JUMPS TO THE SECOND ; 1517 ; INSTRUCTION. WE WRITE THE EXPANSION OF THE UUO MACRO AS THE FIRST INSTRUCTION ; 1518 ; OF THE UUO ROUTINE SO THAT THE READER CAN SEE WHAT IT DOES. SOME EXAMPLES OF ; 1519 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 40 ; KS10.MIC[7,3] 14:54 7-JAN-1986 HOW TO READ MACROS ; 1520 ; SUPER MACROS ARE: ; 1521 ; PAGE FAIL TRAP ;GENERATE A PAGE FAIL TRAP ; 1522 ; DONE ;THIS INSTRUCTION IS NOW COMPLETE ; 1523 ; ; USED WITH A SKIP OR DISP WHERE ; 1524 ; ; SOME PATHS ARE NOP'S ; 1525 ; HALT [] ;JUMP TO HALT LOOP. ARGUMENT IS A ; 1526 ; ; CODE ; 1527 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 41 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- GENERAL ; 1528 .TOC "MACROS -- DATA PATH CHIP -- GENERAL" ; 1529 ; 1530 .NOT.[] "AD/.NOT.A,A/@1" ; 1531 []+[] "AD/A+B,A/@1,B/@2" ; 1532 []-[] "AD/A-B-.25,A/@1,B/@2,ADD .25" ; 1533 []-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@1,ADD .25" ; 1534 [].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1" ; 1535 [].AND.Q "AD/A.AND.Q,A/@1,DEST/PASS" ; 1536 [].AND.[] "AD/A.AND.B,A/@2,B/@1,DEST/PASS" ; 1537 [].AND.NOT.[] "AD/.NOT.A.AND.B,A/@2,B/@1,DEST/PASS" ; 1538 [].OR.[] "AD/A.OR.B,A/@2,B/@1,DEST/PASS" ; 1539 [].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,A/@1" ; 1540 [].XOR.[] "AD/A.XOR.B,A/@2,B/@1,DEST/PASS" ; 1541 []_#-[] "AD/D-A-.25,DEST/AD,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1542 []_# "AD/D,DBUS/DBM,DBM/#,DEST/AD,B/@1" ; 1543 []_-1 "AD/-A-.25,A/ONE,DEST/AD,B/@1,ADD .25" ; 1544 []_-2 "AD/-A-.25,DEST/AD*2,A/ONE,B/@1,ADD .25" ; 1545 []_-Q "AD/-Q-.25,DEST/AD,B/@1,ADD .25" ; 1546 []_-Q*2 "AD/-Q-.25,DEST/AD*2,B/@1,ADD .25" ; 1547 []_-Q*.5 "AD/-Q-.25,DEST/AD*.5,B/@1,ADD .25" ; 1548 []_-[] "AD/-A-.25,A/@2,DEST/AD,B/@1,ADD .25" ; 1549 []_-[]-.25 "AD/-A-.25,A/@2,DEST/AD,B/@1" ; 1550 []_-[]*2 "AD/-A-.25,A/@2,DEST/AD*2,B/@1,ADD .25" ; 1551 []_.NOT.AC "AD/.NOT.D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1552 []_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1553 []_.NOT.Q "AD/.NOT.Q,DEST/AD,B/@1" ; 1554 []_.NOT.[] "AD/.NOT.A,A/@2,DEST/AD,B/@1" ; 1555 []_0 "AD/ZERO,DEST/AD,B/@1" ; 1556 []_0*.5 LONG "AD/ZERO,DEST/Q_Q*.5,B/@1" ; 1557 []_0 XWD [] "AD/47,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/DA,A/MASK" ; 1558 []_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1559 []_-AC "AD/-D-.25,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1560 []_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1561 []_AC*.5 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*.5,B/@1,DT/3T" ; 1562 []_AC*.5 LONG "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_Q*.5,B/@1,DT/3T" ; 1563 []_AC*2 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*2,B/@1,DT/3T" ; 1564 []_AC+1 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1" ; 1565 []_AC+1000001 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/XWD1,DEST/AD,B/@1" ; 1566 []_AC+[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,DT/3T" ; 1567 []_AC-1 "AD/D-A-.25,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1,ADD .25" ; 1568 []_AC-[] "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1569 []_AC-[]-.25 "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1570 []_AC[]-[] "AD/D-A-.25,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1571 []_AC[]-1 "AD/D-A-.25,A/ONE,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1572 []_AC[].AND.[] "AD/D.AND.A,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1573 []_AC.AND.MASK "AD/D.AND.A,A/MASK,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1574 []_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1575 []_AC[]*2 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*2,B/@1,AD PARITY,DT/3T" ; 1576 []_AC[]*.5 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*.5,B/@1,AD PARITY,DT/3T" ; 1577 []_APR "AD/D,DBUS/DBM,DBM/APR FLAGS,DEST/AD,B/@1,DT/3T" ; 1578 []_CURRENT AC [] "AD/D,DBUS/RAM,RAMADR/#,ACALU/B,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1579 []_EA FROM [] "AD/57,RSRC/0A,A/@2,DEST/AD,B/@1" ; 1580 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 42 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- GENERAL ; 1581 []_EA "AD/57,RSRC/0A,A/HR,DEST/AD,B/@1" ; 1582 []_EXP "AD/D,DBUS/DBM,DBM/EXP,A/@1,B/@1,DEST/A,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE,HOLD RIGHT,EXP TEST" ; 1583 []_FE "AD/D,DEST/AD*.5,B/@1,DBUS/DBM,DBM/DP,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE,BYTE/BYTE5" ; 1584 []_FLAGS "AD/D.AND.A,DBUS/PC FLAGS,A/MASK,DEST/AD,B/@1,RSRC/0Q" ; 1585 []_P "AD/D,DEST/A,A/@1,B/@1,DBUS/DBM,DBM/DP,BYTE/BYTE1,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE" ; 1586 []_PC WITH FLAGS "AD/D,DBUS/PC FLAGS,RSRC/0A,A/PC,DEST/AD,B/@1" ; 1587 []_Q "AD/Q,DEST/AD,B/@1" ; 1588 []_Q*.5 "AD/Q,DEST/AD*.5,B/@1" ; 1589 []_Q*2 "AD/Q,DEST/AD*2,B/@1" ; 1590 []_Q*2 LONG "AD/Q,DEST/Q_Q*2,B/@1" ; 1591 []_Q+1 "AD/A+Q,A/ONE,DEST/AD,B/@1" ; 1592 []_RAM "AD/D,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,AD PARITY" ; 1593 []_TIME "AD/44,RSRC/DA,A/MASK,DBUS/DBM,DBM/EXP,DEST/AD,B/@1" ; 1594 []_VMA "AD/D,DEST/AD,B/@1,DBUS/DBM,DBM/VMA" ; 1595 []_XR "AD/D,DBUS/RAM,RAMADR/XR#,DEST/AD,B/@1" ; 1596 []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 1597 []_[] SWAP "AD/D,DBUS/DBM,DBM/DP SWAP,DEST/A,A/@2,B/@1" ; 1598 []_[] XWD 0 "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/D0,A/MASK" ; 1599 []_[]*.5 "AD/A,A/@2,DEST/AD*.5,B/@1" ; 1600 []_[]*.5 LONG "AD/A,A/@2,DEST/Q_Q*.5,B/@1" ; 1601 []_[]*2 "AD/A,A/@2,DEST/AD*2,B/@1" ; 1602 []_[]*2 LONG "AD/A,A/@2,DEST/Q_Q*2,B/@1" ; 1603 []_[]*4 "AD/A+B,A/@2,B/@1,DEST/AD*2" ; 1604 []_[]+# "AD/D+A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1605 []_[]+.25 "AD/0+A,A/@2,DEST/AD,B/@1, ADD .25" ; 1606 []_[]+0 "AD/0+A,A/@2,DEST/AD,B/@1" ; 1607 []_[]+1 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD" ; 1608 []_[]+1000001 "AD/D+A,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1" ; 1609 []_[]+AC "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1610 []_[]+AC[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@3,DEST/AD,B/@1,DT/3T" ; 1611 []_[]+Q "AD/A+Q,A/@2,DEST/AD,B/@1" ; 1612 []_[]+RAM "AD/D+A,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1" ; 1613 []_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@2,DEST/AD,B/@1,HOLD LEFT" ; 1614 []_[]+[] "AD/A+B,A/@3,B/@1,B/@2,DEST/AD" ; 1615 []_[]+[]+.25 "AD/A+B,A/@3,B/@1,B/@2,DEST/AD, ADD .25" ; 1616 []_[]-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1, ADD .25" ; 1617 []_[]-1 "AD/B-A-.25,B/@1,A/ONE,DEST/AD,ADD .25" ; 1618 []_[]-1000001 "AD/A-D-.25,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1,ADD .25" ; 1619 []_[]-AC "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1620 []_[]-RAM "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,ADD .25" ; 1621 []_[]-[] "AD/B-A-.25,B/@1,B/@2,A/@3,DEST/AD,ADD .25" ; 1622 []_[]-[] REV "AD/A-B-.25,B/@1,B/@3,A/@2,DEST/AD,ADD .25" ; 1623 []_[].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1624 []_[].AND.# CLR LH "AD/ZERO,RSRC/DA,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1625 []_[].AND.# CLR RH "AD/D.AND.A,RSRC/0Q,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1626 []_(AC[].AND.[])*.5 "AD/D.AND.A,DEST/AD*.5,A/@3,B/@1,RAMADR/AC*#,DBUS/RAM,ACALU/AC+N,ACN/@2" ; 1627 []_(Q+1)*.5 "AD/A+Q,A/ONE,DEST/AD*.5,B/@1" ; 1628 []_(#-[])*2 "AD/D-A-.25,DEST/AD*2,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1629 []_(-[])*.5 "AD/-A-.25,A/@2,DEST/AD*.5,B/@1,ADD .25" ; 1630 []_(-[]-.25)*.5 LONG "AD/-A-.25,A/@2,DEST/Q_Q*.5,B/@1" ; 1631 []_(-[]-.25)*2 LONG "AD/-A-.25,A/@2,DEST/Q_Q*2,B/@1" ; 1632 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 43 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- GENERAL ; 1633 []_([].AND.#)*.5 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1634 []_([].AND.#)*2 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1635 []_([].AND.NOT.#)*.5 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1636 []_([].AND.NOT.#)*2 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1637 []_([].AND.[])*.5 "AD/A.AND.B,DEST/AD*.5,A/@3,B/@1,B/@2" ; 1638 []_([].AND.[])*2 "AD/A.AND.B,DEST/AD*2,A/@3,B/@1,B/@2" ; 1639 []_([].OR.#)*.5 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1640 []_([].OR.#)*2 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1641 []_([]+#)*2 "AD/D+A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1642 []_([]+1)*2 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD*2" ; 1643 []_([]+[])*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5" ; 1644 []_([]+[])*2 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*2" ; 1645 []_([]-[])*.5 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1646 []_([]-[])*2 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*2, ADD .25" ; 1647 []_([]+[]+.25)*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1648 []_[].AND.AC "AD/D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1649 []_[].AND.NOT.# "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1650 []_[].AND.NOT.[] "AD/.NOT.A.AND.B,DEST/AD,B/@1,B/@2,A/@3" ; 1651 []_[].AND.NOT.AC "AD/.NOT.D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1652 []_[].AND.Q "AD/A.AND.Q,A/@2,DEST/AD,B/@1" ; 1653 []_[].AND.[] "AD/A.AND.B,A/@3,B/@1,B/@2,DEST/AD" ; 1654 []_[].EQV.AC "AD/D.EQV.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1655 []_[].EQV.Q "AD/A.EQV.Q,A/@2,DEST/AD,B/@1" ; 1656 []_[].OR.# "AD/D.OR.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1657 []_[].OR.AC "AD/D.OR.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1658 []_[].OR.FLAGS "AD/D.OR.A,DBUS/PC FLAGS,RSRC/0A,A/@1,DEST/AD,B/@1" ; 1659 []_[].OR.[] "AD/A.OR.B,A/@3,B/@2,B/@1,DEST/AD" ; 1660 []_[].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1661 []_[].XOR.AC "AD/D.XOR.A,DBUS/RAM,RAMADR/AC#,A/@1,DEST/AD,B/@2" ; 1662 []_[].XOR.[] "AD/A.XOR.B,A/@3,B/@1,B/@2,DEST/AD" ; 1663 ; 1664 [] LEFT_0 "AD/57,RSRC/0B,DEST/AD,B/@1" ; 1665 [] RIGHT_0 "AD/53,RSRC/D0,DEST/AD,B/@1" ; 1666 [] LEFT_-1 "AD/54,RSRC/0B,DEST/AD,A/MASK,B/@1" ; 1667 [] RIGHT_-1 "AD/53,RSRC/0A,DEST/AD,A/MASK,B/@1" ; 1668 ; 1669 ; 1670 []_+SIGN "[@1]_[@1].AND.#, #/777, HOLD RIGHT" ; 1671 []_-SIGN "[@1]_[@1].OR.#, #/777000, HOLD RIGHT" ; 1672 ;THE FOLLOWING 2 MACROS ARE USED IN DOUBLE FLOATING STUFF ; 1673 ; THEY ASSUME THAT THE OPERAND HAS BEEN SHIFTED RIGHT 1 PLACE. ; 1674 ; THEY SHIFT 1 MORE PLACE ; 1675 []_+SIGN*.5 "AD/.NOT.D.AND.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1676 []_-SIGN*.5 "AD/D.OR.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1677 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 44 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- Q ; 1678 .TOC "MACROS -- DATA PATH CHIP -- Q" ; 1679 ; 1680 Q-[] "AD/Q-A-.25,A/@1,ADD .25" ; 1681 Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/PASS" ; 1682 Q_[] "AD/A,DEST/Q_AD,A/@1" ; 1683 Q_[]-[] "AD/A-B-.25,A/@1,B/@2,DEST/Q_AD,ADD .25" ; 1684 Q_[]+[] "AD/A+B,A/@1,B/@2,DEST/Q_AD" ; 1685 Q_[].AND.[] "AD/A.AND.B,A/@1,B/@2,DEST/Q_AD" ; 1686 Q_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,DT/3T" ; 1687 Q_-[] "AD/-A-.25,DEST/Q_AD,A/@1, ADD .25" ; 1688 Q_-1 "Q_-[ONE]" ; 1689 Q_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,ADD .25,DT/3T" ; 1690 Q_-Q "AD/-Q-.25,ADD .25,DEST/Q_AD" ; 1691 Q_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_AD,CHK PARITY" ; 1692 Q_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1693 Q_AC[].AND.MASK "AD/D.AND.A,A/MASK,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1694 Q_AC[].AND.[] "AD/D.AND.A,A/@2,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1695 Q_.NOT.Q "AD/.NOT.Q,DEST/Q_AD" ; 1696 Q_# "AD/D,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1697 Q_0 "AD/ZERO,DEST/Q_AD" ; 1698 Q_0 XWD [] "AD/47,DEST/Q_AD,DBM/#,DBUS/DBM,#/@1,RSRC/DA,A/MASK" ; 1699 Q_Q+.25 "AD/0+Q,DEST/Q_AD,ADD .25" ; 1700 Q_Q+1 "AD/A+Q,A/ONE,DEST/Q_AD" ; 1701 Q_Q-1 "AD/Q-A-.25,A/ONE,DEST/Q_AD, ADD .25" ; 1702 Q_Q+AC "AD/D+Q,DBUS/RAM,RAMADR/AC#,DEST/Q_AD" ; 1703 Q_Q*.5 "[MAG]_[MASK]*.5 LONG, SHSTYLE/NORM" ; 1704 Q_Q*2 "[MASK]_[MAG]*2 LONG, SHSTYLE/NORM" ; 1705 Q_Q.OR.# "AD/D.OR.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1706 Q_Q.AND.# "AD/D.AND.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1707 Q_Q.AND.[] "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1708 Q_Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/Q_AD" ; 1709 Q_Q+[] "AD/A+Q,A/@1,DEST/Q_AD" ; 1710 Q_[].AND.Q "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1711 Q_[].OR.Q "AD/A.OR.Q,A/@1,DEST/Q_AD" ; 1712 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 45 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH CHIP -- MISC. ; 1713 .TOC "MACROS -- DATA PATH CHIP -- MISC." ; 1714 ; 1715 CLEAR []0 "AD/D.AND.A,A/@1,DBUS/DBM,DBM/#,#/377777,DEST/AD,B/@1,HOLD RIGHT" ; 1716 CLEAR ARX0 "CLEAR [ARX]0" ; 1717 ; 1718 ;CYCLE CHIP REGISTERS THRU AD SO WE CAN TEST BITS ; 1719 READ XR "AD/D,DBUS/RAM,RAMADR/XR#" ; 1720 READ [] "AD/B,B/@1" ; 1721 READ Q "AD/Q" ; 1722 ; 1723 ;TEST BITS IN REGISTERS (SKIP IF ZERO) ; 1724 TR [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADR.EQ.0,DT/3T" ; 1725 TL [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADL.EQ.0,DT/3T" ; 1726 ; 1727 ; 1728 ;CAUSE BITS -2 AND -1 TO MATCH BIT 0. ; 1729 FIX [] SIGN "AD/D,DEST/A,A/@1,B/@1,DBUS/DP,HOLD RIGHT" ; 1730 ; 1731 ;GENERATE A MASK IN Q AND ZERO A 2901 REGISTER ; 1732 GEN MSK [] "AD/ZERO,DEST/Q_Q*2,B/@1,ONES" ; 1733 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 46 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- STORE IN AC ; 1734 .TOC "MACROS -- STORE IN AC" ; 1735 ; 1736 FM WRITE "FMWRITE/1" ; 1737 ; 1738 AC[]_[] VIA AD "AD/B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,CHK PARITY" ; 1739 AC_[] VIA AD "AD/B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE,CHK PARITY" ; 1740 AC[]_[] "AD/A,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1741 AC[]_[] TEST "AD/D,DBUS/DP,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1742 AC[]_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1743 AC[]_[]*2 "AD/A+B,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1744 AC_[] "AD/A,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1745 AC_[] TEST "AD/D,DBUS/DP,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1746 AC_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@1,RAMADR/AC#, FM WRITE" ; 1747 AC_[]+Q "AD/A+Q,DEST/PASS,A/@1,B/@1,RAMADR/AC#, FM WRITE" ; 1748 AC[]_[]+Q "AD/A+Q,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1, FM WRITE" ; 1749 AC[]_[]-[] "AD/A-B-.25,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1750 AC[]_[]+[] "AD/A+B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1751 AC_[]+[] "AD/A+B,DEST/PASS,B/@2,A/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1752 AC[]_[].AND.[] "AD/A.AND.B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1753 AC[]_Q.AND.[] "AD/A.AND.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1754 AC[]_[].EQV.Q "AD/A.EQV.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1755 AC[]_-[] "AD/-B-.25,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1756 AC_-[] "AD/-A-.25,DEST/PASS,A/@1,RAMADR/AC#,DBUS/DP, ADD .25,FM WRITE" ; 1757 AC_[].OR.[] "AD/A.OR.B,A/@1,B/@2,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1758 AC[]_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1759 AC_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1760 AC[]_-Q "AD/-Q-.25,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1761 AC_Q "AD/Q,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1762 AC[]_0 "AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1763 AC[]_1 "AD/B,DEST/PASS,B/ONE,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1764 AC[]_Q "AD/Q,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1765 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 47 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- MICROCODE WORK SPACE ; 1766 .TOC "MACROS -- MICROCODE WORK SPACE" ; 1767 ; 1768 ; 1769 WORK[]_Q "AD/Q,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1770 Q_WORK[] "AD/D,DEST/Q_AD,RAMADR/#,DBUS/RAM,WORK/@1,DT/3T" ; 1771 WORK[]_0 "AD/ZERO,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1772 WORK[]_1 "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/ONE,FM WRITE" ; 1773 WORK[]_[] "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1774 WORK[]_[] CLR LH "AD/47,RSRC/AB,DEST/PASS,RAMADR/#,WORK/@1,B/@2,A/MASK,FM WRITE" ; 1775 WORK[]_[]-1 "AD/A-B-.25,A/@2,B/ONE,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE, ADD .25" ; 1776 WORK[]_.NOT.[] "AD/.NOT.B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1777 WORK[]_[].AND.[] "AD/A.AND.B,DEST/PASS,RAMADR/#,WORK/@1,A/@2,B/@3,FM WRITE" ; 1778 [].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1779 [].AND.WORK[] "AD/D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1780 []_[]+WORK[] "AD/D+A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1781 []_[].AND.WORK[] "AD/D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1782 []_[].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1783 []_[].OR.WORK[] "AD/D.OR.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1784 []_WORK[] "AD/D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1785 []_.NOT.WORK[] "AD/.NOT.D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1786 []_-WORK[] "AD/-D-.25,ADD .25,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1787 []_WORK[]+1 "AD/D+A,A/ONE,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1788 Q_Q-WORK[] "AD/Q-D-.25,DEST/Q_AD,DBUS/RAM,RAMADR/#,WORK/@1,ADD .25,DT/3T" ; 1789 []_[]-WORK[] "AD/A-D-.25,DEST/AD,A/@2,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,ADD .25,DT/3T" ; 1790 ; 1791 RAM_[] "AD/B,DEST/PASS,RAMADR/RAM,B/@1,FM WRITE" ; 1792 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 48 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- MEMORY CONTROL ; 1793 .TOC "MACROS -- MEMORY CONTROL" ; 1794 ; 1795 MEM CYCLE "MEM/1" ; 1796 ; 1797 ;THE FOLLOWING MACROS CONTROL MEMORY ADDRESS ; 1798 LOAD VMA "MEM CYCLE,LDVMA/1" ; 1799 FORCE EXEC "FORCE EXEC/1" ; 1800 VMA PHYSICAL "PHYSICAL/1,FORCE EXEC/1,FORCE USER/0,EXT ADR/1,LOAD VMA" ; 1801 VMA PHYSICAL WRITE "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,WRITE CYCLE/1,WRITE TEST/0" ; 1802 VMA PHYSICAL READ "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,READ CYCLE/1,WRITE TEST/0" ; 1803 VMA EXTENDED "EXT ADR/1" ; 1804 ; 1805 PXCT EA "PXCT/E1" ; 1806 PXCT DATA "PXCT/D1" ; 1807 PXCT BLT DEST "PXCT/D1" ; 1808 PXCT BYTE PTR EA "PXCT/E2" ; 1809 PXCT BYTE DATA "PXCT/D2" ; 1810 PXCT STACK WORD "PXCT/D2" ; 1811 PXCT BLT SRC "PXCT/D2" ; 1812 PXCT EXTEND EA "PXCT/E2" ; 1813 ; 1814 ;THE FOLLOWING MACROS GET MEMORY CYCLES STARTED ; 1815 WRITE TEST "WRITE TEST/1,WAIT/1" ; 1816 START READ "MEM CYCLE,READ CYCLE/1,WAIT/1" ; 1817 START WRITE "MEM CYCLE,WRITE TEST,WRITE CYCLE/1,WAIT/1" ; 1818 START NO TEST WRITE "MEM CYCLE,WRITE CYCLE/1,WAIT/1" ; 1819 FETCH "START READ,FETCH/1,PXCT/CURRENT,WAIT/1" ; 1820 ; 1821 ;THE FOLLOWING MACROS COMPLETE MEMORY CYCLES ; 1822 MEM WAIT "MEM CYCLE,WAIT/1" ; 1823 MEM READ "MEM WAIT,DBUS/DBM,DBM/MEM" ; 1824 MEM WRITE "MEM WAIT,DT/3T" ; 1825 SPEC MEM READ "SPEC/WAIT,DBUS/DBM,DBM/MEM" ; 1826 SPEC MEM WRITE "SPEC/WAIT,DT/3T" ; 1827 ; 1828 ; 1829 ;THINGS WHICH WRITE MEMORY ; 1830 MEM_[] "AD/B,DEST/PASS,B/@1,DBUS/DP,RAMADR/VMA,CHK PARITY" ; 1831 MEM_Q "AD/Q,DBUS/DP,RAMADR/VMA" ; 1832 ; 1833 ; 1834 ;THINGS WHICH READ MEMORY ; 1835 []_IO DATA "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1" ; 1836 []_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1837 []_MEM THEN FETCH "AD/D,DBUS/DBM,RAMADR/VMA,DEST/A,A/PC,B/@1,CHK PARITY, FETCH, LOAD VMA" ; 1838 []_MEM*.5 "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1839 []_MEM.AND.MASK "AD/D.AND.A,A/MASK,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1840 []_(MEM.AND.[])*.5 "AD/D.AND.A,A/@2,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1841 Q_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/Q_AD,CHK PARITY" ; 1842 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 49 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- VMA ; 1843 .TOC "MACROS -- VMA" ; 1844 ; 1845 VMA_[] "AD/A,A/@1,DEST/PASS,LOAD VMA" ; 1846 VMA_[] WITH FLAGS "AD/A,A/@1,DEST/PASS,LOAD VMA,WAIT/1, MEM/1, EXT ADR/1, DP FUNC/1, DT/3T" ; 1847 VMA_[].OR.[] WITH FLAGS "AD/A.OR.B,A/@1,B/@2,DEST/PASS,LOAD VMA,WAIT/1, MEM/1, EXT ADR/1, DP FUNC/1, DT/3T" ; 1848 VMA_[]+1 "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA" ; 1849 VMA_[]-1 "AD/B-A-.25,A/ONE,B/@1,ADD .25,HOLD LEFT,LOAD VMA" ; 1850 VMA_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@1,LOAD VMA" ; 1851 VMA_[]+[] "AD/A+B,DEST/PASS,A/@1,B/@2,LOAD VMA" ; 1852 ; 1853 NEXT [] PHYSICAL WRITE "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA, VMA PHYSICAL, START WRITE" ; 1854 ; 1855 ;MACROS TO LOAD A 2901 REGISTER WITH VMA FLAG BITS ; 1856 []_VMA FLAGS "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,RSRC/D0,A/MASK" ; 1857 []_VMA IO READ "[@1]_VMA FLAGS,READ CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1858 []_VMA IO WRITE "[@1]_VMA FLAGS,WRITE CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1859 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 50 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- TIME CONTROL ; 1860 .TOC "MACROS -- TIME CONTROL" ; 1861 ; 1862 AC "RAMADR/AC#" ; 1863 AC[] "RAMADR/AC*#,ACALU/AC+N,ACN/@1" ; 1864 XR "RAMADR/XR#" ; 1865 VMA "RAMADR/VMA" ; 1866 WORK[] "RAMADR/#, WORK/@1" ; 1867 ; 1868 2T "T/2T" ; 1869 3T "T/3T" ; 1870 4T "T/4T" ; 1871 5T "T/5T" ; 1872 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 51 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SCAD, SC, FE LOGIC ; 1873 .TOC "MACROS -- SCAD, SC, FE LOGIC" ; 1874 ; 1875 LOAD SC "LOADSC/1" ; 1876 LOAD FE "LOADFE/1" ; 1877 STEP SC "SCAD/A-1,SCADA/SC,LOAD SC,SKIP/SC" ; 1878 SHIFT "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1, LOAD FE, MULTI SHIFT/1" ; 1879 ; 1880 SC_SC-1 "SCAD/A-1,SCADA/SC,LOAD SC" ; 1881 SC_SHIFT "SCAD/A+B,SCADA/S#,S#/0,SCADB/SHIFT,LOAD SC" ; 1882 SC_SHIFT-1 "SCAD/A+B,SCADA/S#,S#/1777,SCADB/SHIFT,LOAD SC" ; 1883 SC_SHIFT-2 "SCAD/A+B,SCADA/S#,S#/1776,SCADB/SHIFT,LOAD SC" ; 1884 SC_-SHIFT "SCAD/A-B,SCADA/S#,S#/0000,SCADB/SHIFT,LOAD SC" ; 1885 SC_-SHIFT-1 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1777,LOAD SC" ; 1886 SC_-SHIFT-2 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1776,LOAD SC" ; 1887 SC_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD SC" ; 1888 SC_SC-EXP-1 "SCAD/A-B-1,SCADA/SC,SCADB/EXP,LOAD SC" ; 1889 SC_SC-FE-1 "SCAD/A-B-1,SCADA/SC,SCADB/FE,LOAD SC" ; 1890 SC_SC-FE "SCAD/A-B,SCADA/SC,SCADB/FE,LOAD SC" ; 1891 SC_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD SC" ; 1892 SC_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD SC" ; 1893 SC_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD SC" ; 1894 SC_FE "SCAD/A.OR.B,SCADA/S#,S#/0,SCADB/FE,LOAD SC" ; 1895 SC_S# "SCAD/A,SCADA/S#,LOAD SC" ; 1896 ; 1897 ; 1898 SC_36. "SC_S#,S#/36." ; 1899 SC_35. "SC_S#,S#/35." ; 1900 SC_34. "SC_S#,S#/34." ; 1901 SC_28. "SC_S#,S#/28." ; 1902 SC_27. "SC_S#,S#/27." ; 1903 SC_26. "SC_S#,S#/26." ; 1904 SC_24. "SC_S#,S#/24." ; 1905 SC_22. "SC_S#,S#/22." ; 1906 SC_20. "SC_S#,S#/20." ; 1907 SC_19. "SC_S#,S#/19." ; 1908 SC_14. "SC_S#,S#/14." ; 1909 SC_11. "SC_S#,S#/11." ; 1910 SC_9. "SC_S#,S#/9." ; 1911 SC_8. "SC_S#,S#/8." ; 1912 SC_7 "SC_S#,S#/7" ; 1913 SC_6 "SC_S#,S#/6" ; 1914 SC_5 "SC_S#,S#/5" ; 1915 SC_4 "SC_S#,S#/4" ; 1916 SC_3 "SC_S#,S#/3" ; 1917 SC_2 "SC_S#,S#/2" ; 1918 SC_1 "SC_S#,S#/1" ; 1919 SC_0 "SC_S#,S#/0." ; 1920 SC_-1 "SC_S#,S#/1777" ; 1921 SC_-2 "SC_S#,S#/1776" ; 1922 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 52 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SCAD, SC, FE LOGIC ; 1923 FE_-FE "SCAD/A-B,SCADA/S#,S#/0,SCADB/FE,LOAD FE" ; 1924 FE_-FE-1 "SCAD/A-B,SCADA/S#,S#/1777,SCADB/FE,LOAD FE" ; 1925 FE_FE-19 "SCAD/A+B,SCADB/FE,SCADA/S#,S#/1550,LOAD FE" ; 1926 FE_-FE+S# "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1927 FE_FE+SC "SCAD/A+B,SCADA/SC,SCADB/FE, LOAD FE" ; 1928 FE_FE.AND.S# "SCAD/A.AND.B,SCADA/S#,SCADB/FE, LOAD FE" ; 1929 FE_P "SCAD/A,SCADA/BYTE1, LOAD FE" ; 1930 FE_S "SCAD/A+B, SCADA/S#, S#/0 ,SCADB/SIZE, LOAD FE" ; 1931 FE_S+2 "SCAD/A+B, SCADA/S#, S#/20, SCADB/SIZE, LOAD FE" ; 1932 FE_-S-20 "SCAD/A-B,SCADA/S#,S#/1760,SCADB/SIZE, LOAD FE" ; 1933 FE_-S-10 "SCAD/A-B,SCADA/S#,S#/1770,SCADB/SIZE, LOAD FE" ; 1934 FE_S# "SCAD/A,SCADA/S#,LOAD FE" ; 1935 FE_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1936 FE_-2 "FE_S#,S#/1776" ; 1937 FE_-12. "FE_S#,S#/1764" ; 1938 FE_0 "FE_S#,S#/0" ; 1939 FE_-1 "FE_S#,S#/1777" ; 1940 FE_FE+1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1,LOAD FE" ; 1941 FE_FE+2 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/2,LOAD FE" ; 1942 FE_FE+10 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/10,LOAD FE" ; 1943 FE_FE-1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1777,LOAD FE" ; 1944 FE_FE+4 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/4,LOAD FE" ; 1945 FE_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD FE" ; 1946 FE_SC+EXP "SCAD/A+B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1947 FE_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1948 FE_FE+P "SCAD/A+B,SCADA/BYTE1,SCADB/FE, LOAD FE" ; 1949 FE_FE-200 "SCAD/A+B,SCADA/S#,S#/1600,SCADB/FE,LOAD FE" ; 1950 FE_-FE+200 "SCAD/A-B,SCADA/S#,S#/200,SCADB/FE,LOAD FE" ; 1951 FE_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD FE" ; 1952 ; 1953 ; 1954 GEN 17-FE "SCAD/A-B,SCADA/S#,S#/210,SCADB/FE" ; 1955 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 53 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- DATA PATH FIELD CONTROL ; 1956 .TOC "MACROS -- DATA PATH FIELD CONTROL" ; 1957 ; 1958 HOLD LEFT "CLKL/0,GENL/0" ; 1959 ADL PARITY "GENL/1" ; 1960 CHK PARITY L "CHKL/1" ; 1961 ; 1962 HOLD RIGHT "CLKR/0,GENR/0" ; 1963 ADR PARITY "GENR/1" ; 1964 CHK PARITY R "CHKR/1" ; 1965 ; 1966 AD PARITY "AD PARITY OK/1" ; 1967 CHK PARITY "CHKL/1,CHKR/1" ; 1968 BAD PARITY "CHKL/0,CHKR/0" ; 1969 ; 1970 INH CRY18 "SPEC/INHCRY18" ; 1971 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 54 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SHIFT PATH CONTROL ; 1972 .TOC "MACROS -- SHIFT PATH CONTROL" ; 1973 ; 1974 ASH "SHSTYLE/NORM" ;ASH SHIFT ; 1975 LSH "SHSTYLE/NORM" ;LSH SHIFT (SAME HARDWARE AS ASH BUT ; 1976 ; BITS -2 AND -1 ARE PRESET TO ZERO) ; 1977 ROT "SHSTYLE/ROT" ; 1978 LSHC "SHSTYLE/LSHC" ; 1979 ASHC "SHSTYLE/ASHC" ; 1980 ROTC "SHSTYLE/ROTC" ; 1981 ONES "SHSTYLE/ONES" ;SHIFT IN 1 BITS ; 1982 DIV "SHSTYLE/DIV" ;SPECIAL PATH FOR DIVIDE (LIKE ROTC BUT ; 1983 ; COMPLEMENT BIT AS IT GOES AROUND) ; 1984 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 55 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SPECIAL FUNCTIONS ; 1985 .TOC "MACROS -- SPECIAL FUNCTIONS" ; 1986 ; 1987 LOAD IR "SPEC/LOADIR" ;LOAD INSTRUCTION REG FROM ; 1988 ; DBUS0-DBUS8, LOAD AC# FROM ; 1989 ; DBUS9-DBUS12 ; 1990 ; UPDATE LAST-INST-PUBLIC PC FLAG ; 1991 LOAD INST "SPEC/LDINST" ; 1992 LOAD INST EA "SPEC/LOADXR,PXCT/CURRENT" ; 1993 LOAD BYTE EA "SPEC/LOADXR,PXCT/E2" ; 1994 LOAD IND EA "SPEC/LOADXR,PXCT/E1" ; 1995 LOAD SRC EA "SPEC/LOADXR,PXCT/BIS-SRC-EA" ; 1996 LOAD DST EA "SPEC/LOADXR,PXCT/BIS-DST-EA" ; 1997 ADD .25 "CRY38/1" ;GENERATE CARRY IN TO BIT 37 ; 1998 CALL [] "CALL/1,J/@1" ;CALL A SUBROUTINE ; 1999 LOAD PXCT "SPEC/LDPXCT" ;LOAD PXCT FLAGS IF EXEC MODE ; 2000 TURN OFF PXCT "SPEC/PXCT OFF" ; 2001 LOAD PAGE TABLE "SPEC/LDPAGE" ; 2002 LOAD AC BLOCKS "SPEC/LDACBLK" ; 2003 SWEEP "SPEC/SWEEP,PHYSICAL/1" ; 2004 CLRCSH "SPEC/CLRCSH,PHYSICAL/1" ; 2005 LOAD PI "SPEC/LDPI" ; 2006 SET HALT "SPEC/#,#/74" ; 2007 CLEAR CONTINUE "SPEC/#,#/40" ; 2008 CLEAR EXECUTE "SPEC/#,#/20" ; 2009 CLEAR RUN "SPEC/#,#/10" ; 2010 UNHALT "SPEC/#,#/62" ; 2011 SET APR ENABLES "SPEC/APR EN" ; 2012 ABORT MEM CYCLE "DBUS/DBM,RAMADR/VMA,DBM/MEM,AD/ZERO,SPEC/MEMCLR,LOAD VMA" ; 2013 CLR IO BUSY "SPEC/CLR IO BUSY" ; 2014 CLR IO LATCH "SPEC/CLR IO LATCH" ; 2015 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 56 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- PC FLAGS ; 2016 .TOC "MACROS -- PC FLAGS" ; 2017 ; 2018 CHANGE FLAGS "SPEC/FLAGS" ; 2019 ; 2020 SET AROV "CHANGE FLAGS, HOLD USER/1, SETOV/1, TRAP1/1" ; 2021 SET FOV "CHANGE FLAGS, HOLD USER/1, SETFOV/1, TRAP1/1" ; 2022 SET NO DIVIDE "CHANGE FLAGS, HOLD USER/1, SETOV/1, SETNDV/1, TRAP1/1" ; 2023 SET FL NO DIVIDE "SET NO DIVIDE, SETFOV/1" ; 2024 ; 2025 ASH AROV "SPEC/ASHOV" ; 2026 SET FPD "CHANGE FLAGS, HOLD USER/1, SETFPD/1" ; 2027 CLR FPD "CHANGE FLAGS, HOLD USER/1, CLRFPD/1" ; 2028 ; 2029 SET PDL OV "CHANGE FLAGS, HOLD USER/1, TRAP2/1" ; 2030 SET TRAP1 "CHANGE FLAGS, HOLD USER/1, TRAP1/1" ; 2031 ; 2032 LOAD PCU "CHANGE FLAGS, LD PCU/1" ; 2033 UPDATE USER "CHANGE FLAGS, HOLD USER/1" ; 2034 LEAVE USER "CHANGE FLAGS, HOLD USER/0" ; 2035 ; 2036 JFCL FLAGS "CHANGE FLAGS, HOLD USER/1, JFCLFLG/1" ; 2037 ; 2038 LOAD FLAGS "CHANGE FLAGS, LD FLAGS/1" ; 2039 EXP TEST "SPEC/EXPTST" ; 2040 AD FLAGS "CHANGE FLAGS, ADFLGS/1, HOLD USER/1" ; 2041 ; 2042 NO DIVIDE "SET NO DIVIDE, J/NIDISP" ; 2043 FL NO DIVIDE "SET FL NO DIVIDE, J/NIDISP" ; 2044 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 57 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- PAGE FAIL FLAGS ; 2045 .TOC "MACROS -- PAGE FAIL FLAGS" ; 2046 ; 2047 STATE_[] "[FLG]_#,STATE/@1,HOLD LEFT" ; 2048 END STATE "[FLG]_0, HOLD LEFT" ; 2049 ; 2050 END BLT "END STATE" ; 2051 END MAP "END STATE" ; 2052 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 58 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SINGLE SKIPS ; 2053 .TOC "MACROS -- SINGLE SKIPS" ; 2054 ;SKIPS IF: ; 2055 SKIP IF AC0 "SKIP/AC0" ;THE AC NUMBER IS ZERO ; 2056 SKIP DP0 "SKIP/DP0" ;DP BIT 0=1 ; 2057 SKIP DP18 "SKIP/DP18" ;DP BIT 18=1 ; 2058 SKIP AD.EQ.0 "SKIP/ADEQ0,DT/3T" ;ADDER OUTPUT IS ZERO ; 2059 SKIP AD.LE.0 "SKIP/LE,DT/3T" ;ADDER OUTPUT IS LESS THAN OR EQUAL ; 2060 ; TO ZERO. ; 2061 SKIP ADL.LE.0 "SKIP/LLE,DT/3T" ;ADDER LEFT IS LESS THAN OR EQUAL ; 2062 ; TO ZERO. ; 2063 SKIP FPD "SKIP/FPD" ;FIRST-PART-DONE PC FLAG IS SET ; 2064 SKIP KERNEL "SKIP/KERNEL" ;USER=0 ; 2065 SKIP IO LEGAL "SKIP/IOLGL" ;USER=0 OR USER IOT=1 ; 2066 SKIP CRY0 "SKIP/CRY0" ;ADDER BIT CRY0=1 (NOT PC FLAG BIT) ; 2067 SKIP CRY1 "SKIP/CRY1" ;ADDER BIT CRY1=1 (NOT PC FLAG BIT) ; 2068 SKIP CRY2 "SKIP/CRY2,DT/3T" ;ADDER BIT CRY2=1 ; 2069 SKIP JFCL "SKIP/JFCL" ;IF JFCL SHOULD JUMP ; 2070 SKIP ADL.EQ.0 "SKIP/ADLEQ0" ;ALU BITS -2 TO 17 = 0 ; 2071 SKIP ADR.EQ.0 "SKIP/ADREQ0" ;ALU BITS 18-35 = 0 ; 2072 SKIP IRPT "SKIP/INT" ;INTERRUPT IS PENDING ; 2073 SKIP -1MS "SKIP/-1 MS" ;DON'T SKIP IF 1MS TIMER HAS EXPIRED. ; 2074 SKIP AC REF "SKIP/ACREF" ;VMA IS 0-17 ; 2075 SKIP EXECUTE "SKIP/EXECUTE" ;CONSOLE EXECUTE ; 2076 TXXX TEST "SKIP/TXXX" ;TEST INSTRUCTION SHOULD SKIP ; 2077 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 59 ; KS10.MIC[7,3] 14:54 7-JAN-1986 MACROS -- SPECIAL DISPATCH MACROS ; 2078 .TOC "MACROS -- SPECIAL DISPATCH MACROS" ; 2079 ; 2080 NEXT INST "DISP/NICOND,SPEC/NICOND,J/NICOND" ; 2081 NEXT INST FETCH "DISP/NICOND,SPEC/NICOND,J/NICOND-FETCH" ; 2082 EA MODE DISP "DISP/EAMODE,RAMADR/XR#" ; 2083 AREAD "DISP/AREAD,WAIT/1,AREAD/1,MEM/1,J/0" ; 2084 B DISP "DISP/BDISP" ; 2085 BWRITE DISP "B DISP,MEM/1,BWRITE/1,WRITE CYCLE/1,J/BWRITE" ; 2086 INST DISP "DISP/DROM,J/0" ; 2087 EXIT "BWRITE DISP,SPEC/0, WRITE TEST/1" ; 2088 AD FLAGS EXIT "BWRITE DISP, WRITE TEST/0, AD FLAGS" ; 2089 FL-EXIT "WRITE CYCLE/1,WRITE TEST/1,MEM/1,BWRITE/1,B DISP,J/FL-BWRITE" ; 2090 TEST DISP "B DISP,J/TEST-TABLE" ; 2091 SKIP-COMP DISP "B DISP,J/SKIP-COMP-TABLE" ; 2092 JUMP DISP "B DISP,J/JUMP-TABLE" ; 2093 DONE "VMA_[PC],LOAD VMA, FETCH, NEXT INST FETCH" ; 2094 JUMPA "[PC]_[AR],HOLD LEFT,LOAD VMA,FETCH,NEXT INST FETCH" ; 2095 UUO "[HR]_[HR].AND.#,#/777740,HOLD RIGHT,J/UUOGO" ; 2096 LUUO "[AR]_0 XWD [40], J/LUUO1" ; 2097 PAGE FAIL TRAP "TL [FLG], FLG.PI/1, J/PFT" ; 2098 TAKE INTERRUPT "[FLG]_[FLG].OR.#,FLG.PI/1,HOLD RIGHT,J/PI" ; 2099 INTERRUPT TRAP "WORK[SV.AR]_[AR], J/ITRAP" ; 2100 MUL DISP "DISP/MUL" ; 2101 DIV DISP "DISP/DIV" ; 2102 BYTE DISP "DISP/BYTE, DT/3T" ; 2103 SCAD DISP "DISP/SCAD0" ;SKIP (2'S WEIGHT) IS SCAD IS MINUS ; 2104 RETURN [] "DISP/RETURN,J/@1" ; 2105 PI DISP "DISP/PI" ; 2106 NORM DISP "DISP/NORM,DT/3T" ; 2107 DISMISS "TR [PI], #/077400, CALL [JEN1],DT/3T" ; 2108 CALL LOAD PI "[T0]_[PI] SWAP, CALL [LDPI2]" ; 2109 HALT [] "AD/47,DEST/AD,B/T1,DBM/#,DBUS/DBM,HALT/@1,RSRC/DA,A/MASK, J/HALTED" ; 2110 CLEANUP DISP "READ [FLG], DBUS/DP, DISP/DP, 3T, J/CLEANUP" ; 2111 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 60 ; KS10.MIC[7,3] 14:54 7-JAN-1986 DISPATCH ROM MACROS ; 2112 .TOC "DISPATCH ROM MACROS" ; 2113 .DCODE ; 2114 ; 2115 ;"A FIELD" MACROS SAY HOW TO FETCH ARGUMENTS ; 2116 ; 2117 I "I/1" ; 2118 I-PF "I/1,VMA/0,READ/1" ; 2119 R "A/READ,READ/1" ; 2120 R-PF "A/RD-PF,READ/1" ; 2121 W "A/WRITE,TEST/1" ; 2122 RW "A/READ,TEST/1,READ/1" ; 2123 IW "I/1,TEST/1" ;IMMED WHICH STORE IN E. (SETZM, ETC.) ; 2124 IR "I/1,READ/1" ;START READ A GO TO EXECUTE CODE ; 2125 DBL R "A/DREAD,READ/1" ;AR!ARX _ E!E+1 ; 2126 DBL AC "A/DBLAC" ; 2127 SH "A/SHIFT,VMA/0,READ/1" ; 2128 SHC "A/DSHIFT,VMA/0,READ/1" ; 2129 FL-R "A/FP,READ/1" ;FLOATING POINT READ ; 2130 FL-RW "A/FP,READ/1,TEST/1" ; 2131 FL-I "A/FPI,READ/0" ;FLOATING POINT IMMEDIATE ; 2132 DBL FL-R "A/DFP,READ/1" ; 2133 IOT "A/IOT" ;CHECK FOR IO LEGAL ; 2134 ; 2135 ;"B FIELD" MACROS SAY HOW TO STORE RESULTS ; 2136 ; 2137 AC "B/AC" ; 2138 M "B/MEM,TEST/1,COND FUNC/1" ; 2139 B "B/BOTH,TEST/1,COND FUNC/1" ; 2140 S "B/SELF,TEST/1,COND FUNC/1" ; 2141 DAC "B/DBLAC" ; 2142 DBL B "B/DBLB,TEST/1,COND FUNC/1" ; 2143 FL-AC "FL-B/AC" ;FLOATING POINT ; 2144 FL-MEM "FL-B/MEM,TEST/1,COND FUNC/1" ;FLOATING POINT TO MEMORY ; 2145 FL-BOTH "FL-B/BOTH,TEST/1,COND FUNC/1" ;FLOATING POINT TO BOTH ; 2146 ROUND "ROUND/1" ;FLOATING POINT ROUNDED ; 2147 ; 2148 ; 2149 ;CONTROL BITS ; 2150 W TEST "TEST/1" ; 2151 AC DISP "ACDISP/1" ; 2152 .UCODE ; 2153 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 61 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 DISPATCH ROM MACROS ; 2154 .BIN ; 2155 .TOC "POWER UP SEQUENCE" ; 2156 ; 2157 .UCODE ; 2158 ; 2159 ;HERE IS WHERE WE FIRE THE MACHINE UP DURING POWER ON ; 2160 ; 2161 U 0000, 0002,3771,0012,4374,4007,0700,0000,0037,7777 ; 2162 0: [MASK]_#, #/377777 ;BUILD A MASK WITH U 0002, 0013,3445,1212,4174,4007,0700,0000,0000,0000 ; 2163 [MASK]_[MASK]*2 ; A ONE IN 36-BITS AND 0 U 0013, 0021,3551,1212,4374,4007,0700,0000,0000,0001 ; 2164 [MASK]_[MASK].OR.#,#/1 ; IN BITS -2,-1,36,37 U 0021, 0026,3447,1200,4174,4007,0700,0000,0000,0000 ; 2165 [MAG]_[MASK]*.5 ;MAKE CONSTANT U 0026, 0053,3771,0015,4374,4007,0700,0000,0000,0001 ; 2166 [XWD1]_#, #/1 ;CONSTANT WITH 1 IN EACH ; 2167 ; HALF WORD ; 2168 [ONE]_0 XWD [1], ;THE CONSTANT 1 U 0053, 0003,4751,1207,4374,4007,0700,0010,0000,0001 ; 2169 CALL/1 ;RESET STACK (CAN NEVER RETURN ; 2170 ; TO WHERE MR LEFT US) U 0003, 0061,4751,1203,4374,4007,0700,0000,0037,6000 ; 2171 3: [AR]_0 XWD [376000] ;ADDRESS OF HALT STATUS ; 2172 ; BLOCK U 0061, 0071,3333,0003,7174,4007,0700,0400,0000,0227 ; 2173 WORK[HSBADR]_[AR] ;SAVE FOR HALT LOOP U 0071, 0100,4221,0011,4364,4277,0700,0200,0000,0010 ; 2174 [UBR]_0, ABORT MEM CYCLE ;CLEAR THE UBR AND RESET ; 2175 ; MEMORY CONTROL LOGIC U 0100, 0106,4221,0010,4174,4477,0700,0000,0000,0000 ; 2176 [EBR]_0, LOAD AC BLOCKS ;CLEAR THE EBR AND FORCE ; 2177 ; PREVIOUS AND CURRENT AC ; 2178 ; BLOCKS TO ZERO U 0106, 0110,4221,0013,4174,4257,0700,0000,0000,0000 ; 2179 [FLG]_0, SET APR ENABLES ;CLEAR THE STATUS FLAGS AND ; 2180 ; DISABLE ALL APR CONDITIONS U 0110, 0125,3333,0013,7174,4007,0700,0400,0000,0230 ; 2181 WORK[APR]_[FLG] ;ZERO REMEMBERED ENABLES ; 2182 U 0125, 0135,3333,0013,7174,4007,0700,0400,0000,0300 ; 2183 WORK[TIME0]_[FLG] ;CLEAR TIME BASE U 0135, 0162,3333,0013,7174,4007,0700,0400,0000,0301 ; 2184 WORK[TIME1]_[FLG] ; .. ; 2185 .IF/FULL U 0162, 0212,4223,0000,1174,4007,0700,0400,0000,1443 ; 2186 AC[BIN0]_0 ;COMPUTE A TABLE OF POWERS OF U 0212, 0214,3333,0007,1174,4007,0700,0400,0000,1444 ; 2187 AC[BIN1]_1 ; TEN U 0214, 0223,4221,0003,4174,4007,0700,2000,0071,0023 ; 2188 [AR]_0, SC_19. ;WE WANT TO GET 22 NUMBERS U 0223, 0225,3333,0007,7174,4007,0700,0400,0000,0344 ; 2189 WORK[DECLO]_1 ;STARTING WITH 1 U 0225, 0235,4223,0000,7174,4007,0700,0400,0000,0373 ; 2190 WORK[DECHI]_0 ; .. U 0235, 0242,3771,0002,4374,4007,0700,0000,0000,0344 ; 2191 [HR]_#, WORK/DECLO ;ADDRESS OF LOW WORD U 0242, 0244,3771,0006,4374,4007,0700,0000,0000,0373 ; 2192 [BRX]_#, WORK/DECHI ;ADDRESS OF HIGH WORD U 0244, 0010,0111,0706,4174,4007,0700,0200,0000,0010 ; 2193 TENLP: [BRX]_[BRX]+1, LOAD VMA ;ADDRESS THE HIGH WORD ; 2194 =0* [ARX]_AC[BIN1], ;LOW WORD TO ARX U 0010, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 2195 CALL [DBSLOW] ;MULTIPLY BY TEN U 0012, 0311,3333,0005,6174,4007,0700,0400,0000,0000 ; 2196 RAM_[BR] ;SAVE HIGH WORD U 0311, 0323,0111,0702,4174,4007,0700,0200,0000,0010 ; 2197 [HR]_[HR]+1, LOAD VMA ;WHERE TO STORE LOW WORD U 0323, 0260,3333,0004,6174,4007,0630,2400,0060,0000 ; 2198 RAM_[ARX], STEP SC ;STORE LOW WORD AND SEE IF ; 2199 ; WE ARE DONE U 0260, 0244,4443,0000,4174,4007,0700,0000,0000,0000 ; 2200 =0 J/TENLP ;NOT YET--KEEP GOING U 0261, 0140,6553,0500,4374,4007,0321,0000,0033,0656 ; 2201 [BR].XOR.#, 3T, SKIP ADL.EQ.0, #/330656 ; 2202 ;DID WE GET THE RIGHT ANSWER ; 2203 ; IN THE TOP 18 BITS? U 0140, 0104,4751,1217,4374,4007,0700,0000,0000,1005 ; 2204 =0**0 HALT [MULERR] ;NO--CPU IS BROKEN ; 2205 .ENDIF/FULL ; 2206 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 62 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 POWER UP SEQUENCE U 0141, 3510,4221,0014,4174,4007,0700,0010,0000,0000 ; 2207 =0**1 [PI]_0, CALL [LOADPI] ;CLEAR PI STATE ; 2208 =1**1 ;CLEAR REGISTERS SO NO ; 2209 ;PARITY ERROR HAPPEN ;;2210 .IFNOT/FULL ;;2211 [ARX]_0 ;WRITTEN WHILE COMPUTING POWERS ;;2212 [BR]_0 ;OF 10 ;;2213 [BRX]_0 ; 2214 .ENDIF/FULL U 0151, 0324,4751,1217,4374,4007,0700,0000,0000,0120 ; 2215 [T1]_0 XWD [120] ;RH OF 120 CONTAINS START ADDRESS ; 2216 ; FOR SIMULATOR. FOR THE REAL ; 2217 ; MACHINE IT IS JUST DATA WITH ; 2218 ; GOOD PARITY. ; 2219 = ; 2220 ;THE CODE UNDER .IF/SIM MUST USE THE SAME ADDRESS AS THE CODE ; 2221 ; UNDER .IFNOT/SIM SO THAT MICROCODE ADDRESSES DO NOT CHANGE BETWEEN ; 2222 ; VERSIONS ;;2223 .IF/SIM ;;2224 VMA_[T1], START READ ;READ THE WORD ;;2225 MEM READ, [PC]_MEM, HOLD LEFT, J/START ;;2226 ;GO FIRE UP SIMULATOR AT THE ;;2227 ; PROGRAMS STARTING ADDRESS ; 2228 .IFNOT/SIM ; 2229 [PC]_0, ;CLEAR LH OF PC ; 2230 LEAVE USER, ;ENTER EXEC MODE U 0324, 0334,4221,0001,4174,4467,0700,0000,0000,0004 ; 2231 LOAD FLAGS ;CLEAR TRAP FLAGS ; 2232 [T1]_#, HALT/POWER, ;LOAD T1 WITH POWER UP CODE U 0334, 0116,3771,0017,4374,4007,0700,0000,0000,0000 ; 2233 J/PWRON ;ENTER HALT LOOP. DO NOT STORE ; 2234 ; HALT STATUS BLOCK ; 2235 .ENDIF/SIM ; 2236 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 63 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2237 .TOC "THE INSTRUCTION LOOP -- START NEXT INSTRUCTION" ; 2238 ; 2239 ;ALL INSTRUCTIONS EXCEPT JUMP'S AND UUO'S END UP HERE ; 2240 1400: U 1400, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2241 DONE: DONE U 1401, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2242 1401: VMA_[PC]+1, NEXT INST FETCH, FETCH ; 2243 =0 U 0372, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2244 SKIP: VMA_[PC]+1, NEXT INST FETCH, FETCH U 0373, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2245 DONE ; 2246 ; 2247 ; 2248 ;16-WAY DISPATCH BASED ON NEXT INSTRUCTION ; 2249 =0000 ; 2250 NICOND: ; 2251 =0001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2252 ; GET ADDRESS OF TRAP INST ; 2253 TURN OFF PXCT, ;CLEAR PXCT U 0101, 3400,4751,1203,4374,4367,0700,0000,0000,0423 ; 2254 J/TRAP ;PROCESS TRAP (INOUT.MIC) ; 2255 =0010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2256 TURN OFF PXCT, ;CLEAR PXCT U 0102, 3400,4751,1203,4374,4367,0700,0000,0000,0422 ; 2257 J/TRAP ;GO TRAP ; 2258 =0011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2259 TURN OFF PXCT, ;TURN OF PXCT U 0103, 3400,4751,1203,4374,4367,0700,0000,0000,0421 ; 2260 J/TRAP ;GO TRAP U 0105, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2261 =0101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2262 =0111 ; 2263 VMA_[PC], ;LOAD VMA ; 2264 FETCH, ;INDICATE INSTRUCTION FETCH U 0107, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 2265 J/XCTGO ;GO GET INSTRUCTION ; 2266 ;THE NEXT SET OF CASES ARE USED WHEN THERE IS A FETCH ; 2267 ; IN PROGESS ; 2268 =1000 ; 2269 NICOND-FETCH: ; 2270 =1001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2271 TURN OFF PXCT, U 0111, 3400,4751,1203,4374,4367,0700,0000,0000,0423 ; 2272 J/TRAP ; 2273 =1010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2274 TURN OFF PXCT, U 0112, 3400,4751,1203,4374,4367,0700,0000,0000,0422 ; 2275 J/TRAP ; 2276 =1011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2277 TURN OFF PXCT, U 0113, 3400,4751,1203,4374,4367,0700,0000,0000,0421 ; 2278 J/TRAP U 0115, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2279 =1101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2280 =1111 ; 2281 XCTGO: MEM READ, ;WAIT FOR MEMORY ; 2282 [HR]_MEM, ;PUT DATA IN HR ; 2283 LOAD INST, ;LOAD IR & AC # U 0117, 0343,3771,0002,4365,5617,0700,0200,0000,0002 ; 2284 J/INCPC ;GO BUMP PC ; 2285 = ; 2286 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 64 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2287 ;HERE WE POINT PC TO NEXT INSTRUCTION WHILE WE WAIT FOR ; 2288 ; EFFECTIVE ADDRESS LOGIC TO SETTLE ; 2289 INCPC: VMA_[PC]+1, ;ADDRESS OF NEXT INSTRUCTION ; 2290 FETCH/1, ;INSTRUCTION FETCH ; 2291 TURN OFF PXCT, ;CLEAR EFFECT OF PXCT U 0343, 0201,0111,0701,2170,4366,6700,0200,0010,0010 ; 2292 EA MODE DISP ;DISPACTH OF INDEXING AND @ ; 2293 ; 2294 ;MAIN EFFECTIVE ADDRESS CALCULATION ; 2295 =0001 ; 2296 EACALC: ; 2297 ; ; 2298 ; THE FIRST 4 CASES ARE USED ONLY FOR JRST ; 2299 ; ; 2300 ; 2301 ;CASE 0 -- JRST 0,FOO(XR) ; 2302 [PC]_[HR]+XR, ;UPDATE PC ; 2303 HOLD LEFT, ;ONLY RH ; 2304 LOAD VMA, FETCH, ;START GETTING IT U 0201, 0110,0551,0201,2270,4156,4700,0200,0014,0012 ; 2305 NEXT INST FETCH ;START NEXT INST ; 2306 ; 2307 ;CASE 2 -- JRST 0,FOO ; 2308 [PC]_[HR], ;NEW PC ; 2309 HOLD LEFT, ;ONLY RH ; 2310 LOAD VMA, FETCH, ;START GETTING IT U 0203, 0110,3441,0201,4170,4156,4700,0200,0014,0012 ; 2311 NEXT INST FETCH ;START NEXT INST ; 2312 ; 2313 ;CASE 4 -- JRST 0,@FOO(XR) ; 2314 [HR]_[HR]+XR, ;ADD IN INDEX ; 2315 START READ, ;START TO FETCH @ WORD ; 2316 LOAD VMA, ;PUT ADDRESS IN VMA U 0205, 0346,0551,0202,2270,4007,0700,0200,0004,0012 ; 2317 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2318 ; 2319 ;CASE 6 -- JRST 0,@FOO ; 2320 VMA_[HR], ;LOAD UP ADDRESS ; 2321 START READ, ;START TO FETCH @ WORD U 0207, 0346,3443,0200,4174,4007,0700,0200,0004,0012 ; 2322 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2323 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 65 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2324 ; ; 2325 ;THESE 4 ARE FOR THE NON-JRST CASE ; 2326 ; ; 2327 ; 2328 ;CASE 10 -- JUST INDEXING ; 2329 INDEX: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER U 0211, 0213,0551,0202,2270,4007,0700,0000,0000,0000 ; 2330 HOLD LEFT ;JUST DO RIGHT HALF ; 2331 ; 2332 ;CASE 12 -- NO INDEXING OR INDIRECT ; 2333 NOMOD: [AR]_EA, ;PUT 0,,E IN AR U 0213, 0000,5741,0203,4174,4001,3700,0200,0000,0342 ; 2334 PXCT DATA, AREAD ;DO ONE OR MORE OF THE FOLLWING ; 2335 ; ACCORDING TO THE DROM: ; 2336 ;1. LOAD VMA ; 2337 ;2. START READ OR WRITE ; 2338 ;3. DISPATCH TO 40-57 ; 2339 ; OR DIRECTLY TO EXECUTE CODE ; 2340 ; 2341 ;CASE 14 -- BOTH INDEXING AND INDIRECT ; 2342 BOTH: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER ; 2343 LOAD VMA, PXCT EA, ;PUT ADDRESS IN VMA U 0215, 0346,0551,0202,2270,4007,0700,0200,0004,0112 ; 2344 START READ, J/FETIND ;START CYCLE AND GO WAIT FOR DATA ; 2345 ; 2346 ;CASE 16 -- JUST INDIRECT ; 2347 INDRCT: VMA_[HR], ;LOAD ADDRESS OF @ WORD U 0217, 0346,3443,0200,4174,4007,0700,0200,0004,0112 ; 2348 START READ, PXCT EA ;START CYCLE ; 2349 ; 2350 ; 2351 ;HERE TO FETCH INDIRECT WORD ; 2352 FETIND: MEM READ, [HR]_MEM, ;GET DATA WORD ; 2353 HOLD LEFT, ;JUST RIGHT HALF U 0346, 0363,3771,0002,4361,5217,0700,0200,0000,0102 ; 2354 LOAD IND EA ;RELOAD @ AND INDEX FLOPS ; 2355 ; 2356 XCT2: VMA_[PC], ;PUT PC BACK IN VMA ; 2357 FETCH/1, ;TURN ON FETCH FLAG ; 2358 EA MODE DISP, ;REDO CALCULATION FOR U 0363, 0201,3443,0100,2174,4006,6700,0200,0010,0010 ; 2359 J/EACALC ; NEW WORD ; 2360 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 66 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2361 .TOC "THE INSTRUCTION LOOP -- FETCH ARGUMENTS" ; 2362 ;HERE ON AREAD DISP TO HANDLE VARIOUS CASES OF ARGUMENT FETCH ; 2363 ; 2364 ;CASE 0 -- READ (E) ; 2365 40: MEM READ, ;WAIT FOR DATA ; 2366 [AR]_MEM, ;PUT WORD IN AR U 0040, 0000,3771,0003,4365,5001,2700,0200,0000,0002 ; 2367 INST DISP ;GO TO EXECUTE CODE ; 2368 ; 2369 ;CASE 1 -- WRITE (E) ; 2370 41: [AR]_AC, ;PUT AC IN AR U 0041, 0000,3771,0003,0276,6001,2700,0000,0000,0000 ; 2371 INST DISP ;GO TO EXECUTE CODE ; 2372 ; 2373 ;CASE 2 -- DOUBLE READ ; 2374 42: MEM READ, ;WAIT FOR DATA U 0042, 0366,3771,0003,4365,5007,0700,0200,0000,0002 ; 2375 [AR]_MEM ;PUT HI WORD IN AR ; 2376 VMA_[HR]+1, PXCT DATA, ;POINT TO E+1 U 0366, 0371,0111,0702,4170,4007,0700,0200,0004,0312 ; 2377 START READ ;START MEMORY CYCLE ; 2378 MEM READ, ;WAIT FOR DATA ; 2379 [ARX]_MEM, ;LOW WORD IN ARX U 0371, 0000,3771,0004,4365,5001,2700,0200,0000,0002 ; 2380 INST DISP ;GO TO EXECUTE CODE ; 2381 ; 2382 ;CASE 3 -- DOUBLE AC U 0043, 0401,3771,0003,0276,6007,0700,0000,0000,0000 ; 2383 43: [AR]_AC ;GET HIGH AC ; 2384 [ARX]_AC[1], ;PUT C(AC+1) IN ARX U 0401, 0000,3771,0004,1276,6001,2701,0000,0000,1441 ; 2385 INST DISP ;GO TO EXECUTE CODE ; 2386 ; 2387 ;CASE 4 -- SHIFT ; 2388 44: ; 2389 SHIFT: READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 2390 SKIP DP18, ;SEE IF LEFT OR RIGHT ; 2391 SC_SHIFT-1, ;PUT NUMBER OF PLACES TO SHIFT IN ; 2392 LOAD FE, ; SC AND FE U 0044, 0000,3333,0003,4174,4001,2530,3000,0041,5777 ; 2393 INST DISP ;GO DO THE SHIFT ; 2394 ; 2395 ;CASE 5 -- SHIFT COMBINED U 0045, 0406,3772,0000,1275,5007,0701,0000,0000,1441 ; 2396 45: Q_AC[1] ;PUT LOW WORD IN Q U 0406, 0416,3776,0005,0274,4007,0701,0000,0000,0000 ; 2397 [BR]_AC*.5 LONG ;PUT AC IN BR & SHIFT BR!Q RIGHT ; 2398 [BR]_[BR]*.5 LONG, ;SHIFT BR!Q 1 MORE PLACE RIGHT U 0416, 0044,3446,0505,4174,4007,0700,0000,0000,0000 ; 2399 J/SHIFT ;GO DO SHIFT SETUP ; 2400 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 67 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2401 ;CASE 6 -- FLOATING POINT IMMEDIATE ; 2402 46: [AR]_[AR] SWAP, ;FLIP BITS TO LEFT HALF U 0046, 0402,3770,0303,4344,4007,0700,0000,0000,0000 ; 2403 J/FPR0 ;JOIN COMMON F.P. CODE ; 2404 ; 2405 ;CASE 7 -- FLOATING POINT ; 2406 47: MEM READ, ;WAIT FOR MEMORY (SPEC/MEM WAIT) U 0047, 0402,3771,0003,4365,5007,0700,0200,0000,0002 ; 2407 [AR]_MEM ;DATA INTO AR ; 2408 =0 ; 2409 FPR0: READ [AR], ;LOOK AT NUMBER ; 2410 SC_EXP, FE_EXP, ;PUT EXPONENT IN SC & FE ; 2411 SKIP DP0, ;SEE IF NEGATIVE U 0402, 0434,3333,0003,4174,4007,0520,3010,0041,2000 ; 2412 CALL [ARSIGN] ;EXTEND AR SIGN ; 2413 FPR1: [ARX]_0, ;ZERO ARX U 0403, 0000,4221,0004,4174,4001,2700,0000,0000,0000 ; 2414 INST DISP ;GO TO EXECUTE CODE ; 2415 ; 2416 ;CASE 10 -- READ THEN PREFETCH ; 2417 50: MEM READ, ;WAIT FOR DATA ; 2418 [AR]_MEM THEN FETCH, ;PUT DATA IN AR AND START A READ ; 2419 ; VMA HAS PC+1. U 0050, 0000,3770,0103,4365,5001,2700,0200,0014,0012 ; 2420 INST DISP ;GO DO IT ; 2421 ; 2422 ;CASE 11 -- DOUBLE FLOATING READ ; 2423 51: SPEC MEM READ, ;WAIT FOR DATA ; 2424 [BR]_MEM, ;HOLD IN BR ; 2425 SC_EXP, FE_EXP, ;SAVE EXPONENT U 0051, 0404,3771,0005,4365,5177,0521,3000,0041,2000 ; 2426 SKIP DP0, 3T ;SEE IF MINUS ; 2427 =0 [AR]_[AR]+1, ;POINT TO E+1 ; 2428 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0404, 0432,0111,0703,4174,4007,0700,0200,0004,0312 ; 2429 START READ, J/DFPR1 ;GO GET POSITIVE DATA ; 2430 [AR]_[AR]+1, ;POINT TO E+1 ; 2431 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0405, 0431,0111,0703,4174,4007,0700,0200,0004,0312 ; 2432 START READ ;GO GET NEGATIVE DATA ; 2433 [BR]_-SIGN, ;SMEAR MINUS SIGN U 0431, 0445,3551,0505,4374,0007,0700,0000,0077,7000 ; 2434 J/DFPR2 ;CONTINUE BELOW U 0432, 0445,4551,0505,4374,0007,0700,0000,0000,0777 ; 2435 DFPR1: [BR]_+SIGN ;SMEAR PLUS SIGN ; 2436 DFPR2: MEM READ, 3T, ;WAIT FOR MEMORY ; 2437 [ARX]_(MEM.AND.[MAG])*.5, U 0445, 0451,4557,0004,4365,5007,0701,0200,0000,0002 ; 2438 ASH ;SET SHIFT PATHS U 0451, 0452,3447,0503,4174,4007,0700,0000,0000,0000 ; 2439 [AR]_[BR]*.5 ;SHIFT AR ; 2440 [AR]_[AR]*.5, ;COMPLETE SHIFTING U 0452, 0467,3447,0303,4174,4007,0700,2000,0011,0000 ; 2441 SC_FE ;PAGE FAIL MAY HAVE ZAPPED ; 2442 ; THE SC. ; 2443 VMA_[PC], FETCH, ;GET NEXT INST U 0467, 0000,3443,0100,4174,4001,2700,0200,0014,0012 ; 2444 INST DISP ;DO THIS ONE ; 2445 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 68 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2446 ;CASE 12 -- TEST FOR IO LEGAL U 0052, 0414,4443,0000,4174,4007,0040,0000,0000,0000 ; 2447 52: SKIP IO LEGAL ;IS IO LEGAL? U 0414, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 2448 =0 UUO ;NO U 0415, 0000,4443,0000,4174,4001,2700,0000,0000,0000 ; 2449 INST DISP ;YES--DO THE INSTRUCTION ; 2450 ; 2451 ; 2452 ;CASE 13 -- RESERVED ; 2453 ;53: ; 2454 ; 2455 ;CASE 14 -- RESERVED ; 2456 ;54: ; 2457 ; 2458 ;CASE 15 -- RESERVED ; 2459 ;55: ; 2460 ; 2461 ;CASE 16 -- RESERVED ; 2462 ;56: ; 2463 ; 2464 ;CASE 17 -- RESERVED ; 2465 ;57: ; 2466 ; 2467 ;EXTEND AR SIGN. ; 2468 ;CALL WITH SKIP ON AR0, RETURNS 1 ALWAYS ; 2469 =0 U 0434, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 2470 ARSIGN: [AR]_+SIGN, RETURN [1] ;EXTEND + SIGN U 0435, 0001,3551,0303,4374,0004,1700,0000,0077,7000 ; 2471 [AR]_-SIGN, RETURN [1] ;EXTEND - SIGN ; 2472 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 69 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2473 .TOC "THE INSTRUCTION LOOP -- STORE ANSWERS" ; 2474 ; 2475 ;NOTE: INSTRUCTIONS WHICH STORE IN BOTH AC AND MEMORY ; 2476 ; (E.G. ADDB, AOS) MUST STORE IN MEMORY FIRST ; 2477 ; SO THAT IF A PAGE FAIL HAPPENS THE AC IS ; 2478 ; STILL INTACT. ; 2479 ; 2480 1500: ; 2481 BWRITE: ;BASE ADDRESS OF BWRITE DISPATCH ; 2482 ; 2483 ;CASE 0 -- RESERVED ; 2484 ;1500: ; 2485 ; 2486 ;CASE 1 -- RESERVED ; 2487 ;1501: ; 2488 ; 2489 ;CASE 2 -- RESERVED ; 2490 ;1502: ; 2491 ; 2492 ;CASE 3 -- RESERVED ; 2493 ;1503: ; 2494 ; 2495 ;CASE 4 -- STORE SELF ; 2496 1504: ; 2497 STSELF: SKIP IF AC0, ;IS AC # ZERO? U 1504, 0454,4443,0000,4174,4007,0360,0000,0000,0000 ; 2498 J/STBTH1 ;GO TO STORE BOTH CASE ; 2499 ; 2500 ;CASE 5 -- STORE DOUBLE AC ; 2501 1505: ; 2502 DAC: AC[1]_[ARX], ;STORE AC 1 U 1505, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2503 J/STAC ;GO STORE AC ; 2504 ; 2505 ;CASE 6 -- STORE DOUBLE BOTH (KA10 STYLE MEM_AR ONLY) ; 2506 1506: ; 2507 STDBTH: MEM WRITE, ;WAIT FOR MEMORY ; 2508 MEM_[AR], ;STORE AR U 1506, 1505,3333,0003,4175,5007,0701,0200,0000,0002 ; 2509 J/DAC ;NOW STORE AC & AC+1 ; 2510 ; 2511 ;CASE 7 -- RESERVED ; 2512 ;1507: ; 2513 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 70 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2514 ;CASE 10 -- RESERVED ; 2515 ;1510: ; 2516 ; 2517 ;CASE 11 -- RESERVED ; 2518 ;1511: ; 2519 ; 2520 ;CASE 12 -- RESERVED ; 2521 ;1512: ; 2522 ; 2523 ;CASE 13 -- RESERVED ; 2524 ;1513: ; 2525 ; 2526 ;CASE 14 -- RESERVED ; 2527 1514: ; 2528 FL-BWRITE: ;THE NEXT 4 CASES ARE ALSO ; 2529 ;USED IN FLOATING POINT U 1514, 0104,4751,1217,4374,4007,0700,0000,0000,1000 ; 2530 HALT [BW14] ; 2531 ; 2532 ;CASE 15 -- STORE AC ; 2533 1515: ; 2534 STAC: AC_[AR], ;STORE AC U 1515, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 2535 NEXT INST ;DO NEXT INSTRUCTION ; 2536 ; 2537 ;CASE 16 -- STORE IN MEMORY ; 2538 1516: ; 2539 STMEM: MEM WRITE, ;WAIT FOR MEMORY ; 2540 MEM_[AR], ;STORE AR U 1516, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2541 J/DONE ;START FETCH OF NEXT ; 2542 ; 2543 ;CASE 17 -- STORE BOTH ; 2544 1517: ; 2545 STBOTH: MEM WRITE, ;WAIT FOR MEMORY ; 2546 MEM_[AR], ;STORE AR U 1517, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2547 J/STAC ;NOW STORE AC ; 2548 ; 2549 =0 ; 2550 STBTH1: MEM WRITE, ;WAIT FOR MEMORY ; 2551 MEM_[AR], ;STORE AR U 0454, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2552 J/STAC ;NOW STORE AC ; 2553 STORE: MEM WRITE, ;WAIT FOR MEMORY ; 2554 MEM_[AR], ;STORE AC U 0455, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2555 J/DONE ;START NEXT INST ; 2556 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 71 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 MOVE GROUP ; 2557 .TOC "MOVE GROUP" ; 2558 ; 2559 .DCODE D 0200, 1015,1515,1100 ; 2560 200: R-PF, AC, J/STAC ;MOVE D 0201, 0015,1515,3000 ; 2561 I-PF, AC, J/STAC ;MOVEI D 0202, 0116,1404,0700 ; 2562 W, M, J/MOVE ;MOVEM D 0203, 0004,1504,1700 ; 2563 RW, S, J/STSELF ;MOVES ; 2564 D 0204, 1015,1402,1100 ; 2565 204: R-PF, AC, J/MOVS ;MOVS D 0205, 0015,1402,3000 ; 2566 I-PF, AC, J/MOVS ;MOVSI D 0206, 0116,1402,0700 ; 2567 W, M, J/MOVS ;MOVSM D 0207, 0004,1402,1700 ; 2568 RW, S, J/MOVS ;MOVSS ; 2569 D 0210, 1015,1405,1100 ; 2570 210: R-PF, AC, J/MOVN ;MOVN D 0211, 0015,1405,3000 ; 2571 I-PF, AC, J/MOVN ;MOVNI D 0212, 0116,1405,0700 ; 2572 W, M, J/MOVN ;MOVNM D 0213, 0004,1405,1700 ; 2573 RW, S, J/MOVN ;MOVNS ; 2574 D 0214, 1015,1403,1100 ; 2575 214: R-PF, AC, J/MOVM ;MOVM D 0215, 0015,1515,3000 ; 2576 I-PF, AC, J/STAC ;MOVMI D 0216, 0116,1403,0700 ; 2577 W, M, J/MOVM ;MOVMM D 0217, 0004,1403,1700 ; 2578 RW, S, J/MOVM ;MOVNS ; 2579 .UCODE ; 2580 ; 2581 1402: U 1402, 1500,3770,0303,4344,4003,7700,0200,0003,0001 ; 2582 MOVS: [AR]_[AR] SWAP,EXIT ; 2583 ; 2584 1403: U 1403, 1404,3333,0003,4174,4007,0520,0000,0000,0000 ; 2585 MOVM: READ [AR], SKIP DP0, J/MOVE ; 2586 ; 2587 1404: U 1404, 1500,4443,0000,4174,4003,7700,0200,0003,0001 ; 2588 MOVE: EXIT ; 2589 1405: ; 2590 MOVN: [AR]_-[AR], ;NEGATE NUMBER ; 2591 AD FLAGS, 3T, ;UPDATE FLAGS U 1405, 1404,2441,0303,4174,4467,0701,4000,0001,0001 ; 2592 J/MOVE ;STORE ANSWER ; 2593 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 72 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 EXCH ; 2594 .TOC "EXCH" ; 2595 ; 2596 .DCODE D 0250, 0015,1406,1500 ; 2597 250: R,W TEST, AC, J/EXCH ; 2598 .UCODE ; 2599 ; 2600 1406: ; 2601 EXCH: [BR]_AC, ;COPY AC TO THE BR U 1406, 0471,3771,0005,0276,6007,0700,0200,0003,0002 ; 2602 START WRITE ;START A WRITE CYCLE ; 2603 MEM WRITE, ;COMPLETE WRITE CYCLE ; 2604 MEM_[BR], ;STORE BR (AC) IN MEMORY U 0471, 1515,3333,0005,4175,5007,0701,0200,0000,0002 ; 2605 J/STAC ;STORE THE AR IN AC. NOTE: AR ; 2606 ; WAS LOADED WITH MEMORY OPERAND ; 2607 ; AS PART OF INSTRUCTION DISPATCH ; 2608 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 73 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 HALFWORD GROUP ; 2609 .TOC "HALFWORD GROUP" ; 2610 ; DESTINATION LEFT HALF ; 2611 ; 2612 .DCODE D 0500, 1015,1410,1100 ; 2613 500: R-PF, AC, J/HLL D 0501, 0015,1410,3000 ; 2614 I-PF, AC, J/HLL D 0502, 0016,1407,1700 ; 2615 RW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE D 0503, 0004,1404,1700 ; 2616 RW, S, J/MOVE ;HLLS = MOVES ; 2617 D 0504, 1015,1411,1100 ; 2618 R-PF, AC, J/HRL D 0505, 0015,1411,3000 ; 2619 I-PF, AC, J/HRL D 0506, 0016,1413,1700 ; 2620 RW, M, J/HRLM D 0507, 0004,1414,1700 ; 2621 RW, S, J/HRLS ; 2622 D 0510, 1015,1432,1100 ; 2623 510: R-PF, AC, J/HLLZ D 0511, 0015,1432,3000 ; 2624 I-PF, AC, J/HLLZ D 0512, 0116,1432,0700 ; 2625 W, M, J/HLLZ D 0513, 0004,1432,1700 ; 2626 RW, S, J/HLLZ ; 2627 D 0514, 1015,1424,1100 ; 2628 R-PF, AC, J/HRLZ D 0515, 0015,1424,3000 ; 2629 I-PF, AC, J/HRLZ D 0516, 0116,1424,0700 ; 2630 W, M, J/HRLZ D 0517, 0004,1424,1700 ; 2631 RW, S, J/HRLZ ; 2632 D 0520, 1015,1433,1100 ; 2633 520: R-PF, AC, J/HLLO D 0521, 0015,1433,3000 ; 2634 I-PF, AC, J/HLLO D 0522, 0116,1433,0700 ; 2635 W, M, J/HLLO D 0523, 0004,1433,1700 ; 2636 RW, S, J/HLLO ; 2637 D 0524, 1015,1425,1100 ; 2638 R-PF, AC, J/HRLO D 0525, 0015,1425,3000 ; 2639 I-PF, AC, J/HRLO D 0526, 0116,1425,0700 ; 2640 W, M, J/HRLO D 0527, 0004,1425,1700 ; 2641 RW, S, J/HRLO ; 2642 D 0530, 1015,1430,1100 ; 2643 530: R-PF, AC, J/HLLE D 0531, 0015,1430,3000 ; 2644 I-PF, AC, J/HLLE D 0532, 0116,1430,0700 ; 2645 W, M, J/HLLE D 0533, 0004,1430,1700 ; 2646 RW, S, J/HLLE ; 2647 D 0534, 1015,1422,1100 ; 2648 R-PF, AC, J/HRLE D 0535, 0015,1422,3000 ; 2649 I-PF, AC, J/HRLE D 0536, 0116,1422,0700 ; 2650 W, M, J/HRLE D 0537, 0004,1422,1700 ; 2651 RW, S, J/HRLE ; 2652 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 74 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 HALFWORD GROUP ; 2653 ; DESTINATION RIGHT HALF ; 2654 D 0540, 1015,1407,1100 ; 2655 540: R-PF, AC, J/HRR D 0541, 0015,1407,3000 ; 2656 I-PF, AC, J/HRR D 0542, 0016,1410,1700 ; 2657 RW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE D 0543, 0004,1404,1700 ; 2658 RW, S, J/MOVE ;HRRS = MOVES ; 2659 D 0544, 1015,1412,1100 ; 2660 R-PF, AC, J/HLR D 0545, 0015,1412,3000 ; 2661 I-PF, AC, J/HLR D 0546, 0016,1415,1700 ; 2662 RW, M, J/HLRM D 0547, 0004,1416,1700 ; 2663 RW, S, J/HLRS ; 2664 D 0550, 1015,1420,1100 ; 2665 550: R-PF, AC, J/HRRZ D 0551, 0015,1420,3000 ; 2666 I-PF, AC, J/HRRZ D 0552, 0116,1420,0700 ; 2667 W, M, J/HRRZ D 0553, 0004,1420,1700 ; 2668 RW, S, J/HRRZ ; 2669 D 0554, 1015,1426,1100 ; 2670 R-PF, AC, J/HLRZ D 0555, 0015,1426,3000 ; 2671 I-PF, AC, J/HLRZ D 0556, 0116,1426,0700 ; 2672 W, M, J/HLRZ D 0557, 0004,1426,1700 ; 2673 RW, S, J/HLRZ ; 2674 D 0560, 1015,1421,1100 ; 2675 560: R-PF, AC, J/HRRO D 0561, 0015,1421,3000 ; 2676 I-PF, AC, J/HRRO D 0562, 0116,1421,0700 ; 2677 W, M, J/HRRO D 0563, 0004,1421,1700 ; 2678 RW, S, J/HRRO ; 2679 D 0564, 1015,1427,1100 ; 2680 R-PF, AC, J/HLRO D 0565, 0015,1427,3000 ; 2681 I-PF, AC, J/HLRO D 0566, 0116,1427,0700 ; 2682 W, M, J/HLRO D 0567, 0004,1427,1700 ; 2683 RW, S, J/HLRO ; 2684 D 0570, 1015,1417,1100 ; 2685 570: R-PF, AC, J/HRRE D 0571, 0015,1417,3000 ; 2686 I-PF, AC, J/HRRE D 0572, 0116,1417,0700 ; 2687 W, M, J/HRRE D 0573, 0004,1417,1700 ; 2688 RW, S, J/HRRE ; 2689 D 0574, 1015,1423,1100 ; 2690 R-PF, AC, J/HLRE D 0575, 0015,1423,3000 ; 2691 I-PF, AC, J/HLRE D 0576, 0116,1423,0700 ; 2692 W, M, J/HLRE D 0577, 0004,1423,1700 ; 2693 RW, S, J/HLRE ; 2694 ; 2695 .UCODE ; 2696 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 75 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 HALFWORD GROUP ; 2697 ;FIRST THE GUYS THAT LEAVE THE OTHER HALF ALONE ; 2698 ; 2699 ;THE AR CONTAINS THE MEMORY OPERAND. SO WE WANT TO PUT THE LH OF ; 2700 ; AC INTO AR TO DO A HRR. OBVIOUS THING FOR HLL. ; 2701 1407: U 1407, 1500,3771,0003,0276,0003,7700,0200,0003,0001 ; 2702 HRR: [AR]_AC,HOLD RIGHT,EXIT ; 2703 1410: U 1410, 1500,3771,0003,0270,6003,7700,0200,0003,0001 ; 2704 HLL: [AR]_AC,HOLD LEFT,EXIT ; 2705 ; 2706 ;HRL FLOW: ; 2707 ;AT HRL AR CONTAINS: ; 2708 ; ; 2709 ; !------------------!------------------! ; 2710 ; ! LH OF (E) ! RH OF (E) ! ; 2711 ; !------------------!------------------! ; 2712 ; ; 2713 ;AR_AR SWAP GIVES: ; 2714 ; ; 2715 ; !------------------!------------------! ; 2716 ; ! RH OF (E) ! LH OF (E) ! ; 2717 ; !------------------!------------------! ; 2718 ; ; 2719 ;AT HLL, AR_AC,HOLD LEFT GIVES: ; 2720 ; ; 2721 ; !------------------!------------------! ; 2722 ; ! RH OF (E) ! RH OF AC ! ; 2723 ; !------------------!------------------! ; 2724 ; ; 2725 ;THE EXIT MACRO CAUSES THE AR TO BE STORED IN AC (AT STAC). ; 2726 ; THE REST OF THE HALF WORD IN THIS GROUP ARE VERY SIMILAR. ; 2727 ; 2728 1411: U 1411, 1410,3770,0303,4344,4007,0700,0000,0000,0000 ; 2729 HRL: [AR]_[AR] SWAP,J/HLL ; 2730 1412: U 1412, 1407,3770,0303,4344,4007,0700,0000,0000,0000 ; 2731 HLR: [AR]_[AR] SWAP,J/HRR ; 2732 ; 2733 1413: U 1413, 0506,3770,0303,4344,4007,0700,0000,0000,0000 ; 2734 HRLM: [AR]_[AR] SWAP U 0506, 1402,3771,0003,0270,6007,0700,0000,0000,0000 ; 2735 [AR]_AC,HOLD LEFT,J/MOVS ; 2736 1414: U 1414, 1500,3770,0303,4344,0003,7700,0200,0003,0001 ; 2737 HRLS: [AR]_[AR] SWAP,HOLD RIGHT,EXIT ; 2738 ; 2739 1415: U 1415, 0511,3770,0303,4344,4007,0700,0000,0000,0000 ; 2740 HLRM: [AR]_[AR] SWAP U 0511, 1402,3771,0003,0276,0007,0700,0000,0000,0000 ; 2741 [AR]_AC,HOLD RIGHT,J/MOVS ; 2742 1416: U 1416, 1500,3770,0303,4340,4003,7700,0200,0003,0001 ; 2743 HLRS: [AR]_[AR] SWAP,HOLD LEFT,EXIT ; 2744 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 76 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 HALFWORD GROUP ; 2745 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF. ; 2746 ; ENTER WITH 0,,E (E) OR (AC) IN AR ; 2747 ; 2748 1417: U 1417, 1420,3333,0003,4174,4007,0530,0000,0000,0000 ; 2749 HRRE: READ [AR],SKIP DP18 ; 2750 1420: U 1420, 1500,5731,0003,4174,4003,7700,0200,0003,0001 ; 2751 HRRZ: [AR] LEFT_0, EXIT ; 2752 1421: U 1421, 1500,5431,1203,4174,4003,7700,0200,0003,0001 ; 2753 HRRO: [AR] LEFT_-1, EXIT ; 2754 ; 2755 1422: U 1422, 1424,3333,0003,4174,4007,0530,0000,0000,0000 ; 2756 HRLE: READ [AR],SKIP DP18 ; 2757 1424: U 1424, 1402,3771,0003,4374,0007,0700,0000,0000,0000 ; 2758 HRLZ: [AR]_#,#/0,HOLD RIGHT,J/MOVS ; 2759 1425: U 1425, 1402,3771,0003,4374,0007,0700,0000,0077,7777 ; 2760 HRLO: [AR]_#,#/777777,HOLD RIGHT,J/MOVS ; 2761 ; 2762 1423: U 1423, 1426,3333,0003,4174,4007,0520,0000,0000,0000 ; 2763 HLRE: READ [AR],SKIP DP0 ; 2764 1426: U 1426, 1402,3771,0003,4370,4007,0700,0000,0000,0000 ; 2765 HLRZ: [AR]_#,#/0,HOLD LEFT,J/MOVS ; 2766 1427: U 1427, 1402,3771,0003,4370,4007,0700,0000,0077,7777 ; 2767 HLRO: [AR]_#,#/777777,HOLD LEFT,J/MOVS ; 2768 ; 2769 1430: U 1430, 1432,3333,0003,4174,4007,0520,0000,0000,0000 ; 2770 HLLE: READ [AR],SKIP DP0 ; 2771 1432: U 1432, 1500,5371,0003,4174,4003,7700,0200,0003,0001 ; 2772 HLLZ: [AR] RIGHT_0, EXIT ; 2773 1433: U 1433, 1500,5341,1203,4174,4003,7700,0200,0003,0001 ; 2774 HLLO: [AR] RIGHT_-1, EXIT ; 2775 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 77 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2776 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM" ; 2777 ; 2778 .DCODE D 0120, 0205,1505,1100 ; 2779 120: DBL R, DAC, J/DAC D 0121, 0215,1434,1100 ; 2780 DBL R, AC, J/DMOVN ; 2781 .UCODE ; 2782 ; 2783 1434: U 1434, 2753,4551,0404,4374,0007,0700,0010,0037,7777 ; 2784 DMOVN: CLEAR ARX0, CALL [DBLNGA] U 1436, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2785 1436: AC[1]_[ARX], J/STAC ; 2786 ; 2787 .DCODE D 0124, 0300,1567,0100 ; 2788 124: DBL AC, J/DMOVN1 D 0125, 0100,1565,0500 ; 2789 W, J/DMOVNM ; 2790 .UCODE ; 2791 ; 2792 ; 2793 1565: U 1565, 2752,3771,0004,1276,6007,0701,0010,0000,1441 ; 2794 DMOVNM: [ARX]_AC[1],CALL [DBLNEG] ; 2795 1567: ; 2796 DMOVN1: [HR]+[ONE], ;GET E+1 ; 2797 LOAD VMA, ;PUT THAT IN VMA ; 2798 START WRITE, ;STORE IN E+1 U 1567, 0512,0113,0207,4174,4007,0700,0200,0003,0312 ; 2799 PXCT DATA ;DATA CYCLE U 0512, 0531,3333,0004,4175,5007,0701,0200,0000,0002 ; 2800 MEM WRITE, MEM_[ARX] ;STORE LOW WORD ; 2801 VMA_[HR], ;GET E ; 2802 LOAD VMA, ;SAVE IN VMA ; 2803 PXCT DATA, ;OPERAND STORE ; 2804 START WRITE, ;START MEM CYCLE U 0531, 0455,3443,0200,4174,4007,0700,0200,0003,0312 ; 2805 J/STORE ;GO STORE AR ; 2806 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 78 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BOOLEAN GROUP ; 2807 .TOC "BOOLEAN GROUP" ; 2808 ; 2809 .DCODE D 0400, 0015,1441,3000 ; 2810 400: I-PF, AC, J/SETZ D 0401, 0015,1441,3000 ; 2811 I-PF, AC, J/SETZ D 0402, 0016,1441,2700 ; 2812 IW, M, J/SETZ D 0403, 0017,1441,2700 ; 2813 IW, B, J/SETZ ; 2814 .UCODE ; 2815 ; 2816 1441: U 1441, 1500,4221,0003,4174,4003,7700,0200,0003,0001 ; 2817 SETZ: [AR]_0, EXIT ; 2818 ; 2819 .DCODE D 0404, 1015,1442,1100 ; 2820 404: R-PF, AC, J/AND D 0405, 0015,1442,3000 ; 2821 I-PF, AC, J/AND D 0406, 0016,1442,1700 ; 2822 RW, M, J/AND D 0407, 0017,1442,1700 ; 2823 RW, B, J/AND ; 2824 .UCODE ; 2825 ; 2826 1442: U 1442, 1500,4551,0303,0274,4003,7700,0200,0003,0001 ; 2827 AND: [AR]_[AR].AND.AC,EXIT ; 2828 ; 2829 .DCODE D 0410, 1015,1443,1100 ; 2830 410: R-PF, AC, J/ANDCA D 0411, 0015,1443,3000 ; 2831 I-PF, AC, J/ANDCA D 0412, 0016,1443,1700 ; 2832 RW, M, J/ANDCA D 0413, 0017,1443,1700 ; 2833 RW, B, J/ANDCA ; 2834 .UCODE ; 2835 ; 2836 1443: U 1443, 1500,5551,0303,0274,4003,7700,0200,0003,0001 ; 2837 ANDCA: [AR]_[AR].AND.NOT.AC,EXIT ; 2838 ; 2839 .DCODE D 0414, 1015,1404,1100 ; 2840 414: R-PF, AC, J/MOVE ;SETM = MOVE D 0415, 0015,1404,3000 ; 2841 I-PF, AC, J/MOVE D 0416, 0016,1404,1700 ; 2842 RW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY D 0417, 0017,1404,1700 ; 2843 RW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY ; 2844 D 0420, 1015,1444,1100 ; 2845 420: R-PF, AC, J/ANDCM D 0421, 0015,1444,3000 ; 2846 I-PF, AC, J/ANDCM D 0422, 0016,1444,1700 ; 2847 RW, M, J/ANDCM D 0423, 0017,1444,1700 ; 2848 RW, B, J/ANDCM ; 2849 .UCODE ; 2850 ; 2851 1444: U 1444, 1442,7441,0303,4174,4007,0700,0000,0000,0000 ; 2852 ANDCM: [AR]_.NOT.[AR],J/AND ; 2853 ; 2854 .DCODE D 0424, 0000,1400,1100 ; 2855 424: R, J/DONE D 0425, 0000,1400,2100 ; 2856 I, J/DONE D 0426, 0116,1404,0700 ; 2857 W, M, J/MOVE ;SETAM = MOVEM D 0427, 0116,1404,0700 ; 2858 W, M, J/MOVE ;SETAB, TOO ; 2859 .UCODE ; 2860 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 79 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BOOLEAN GROUP ; 2861 .DCODE D 0430, 1015,1445,1100 ; 2862 430: R-PF, AC, J/XOR D 0431, 0015,1445,3000 ; 2863 I-PF, AC, J/XOR D 0432, 0016,1445,1700 ; 2864 RW, M, J/XOR D 0433, 0017,1445,1700 ; 2865 RW, B, J/XOR ; 2866 .UCODE ; 2867 ; 2868 1445: U 1445, 1500,6551,0303,0274,4003,7700,0200,0003,0001 ; 2869 XOR: [AR]_[AR].XOR.AC,EXIT ; 2870 ; 2871 .DCODE D 0434, 1015,1446,1100 ; 2872 434: R-PF, AC, J/IOR D 0435, 0015,1446,3000 ; 2873 I-PF, AC, J/IOR D 0436, 0016,1446,1700 ; 2874 RW, M, J/IOR D 0437, 0017,1446,1700 ; 2875 RW, B, J/IOR ; 2876 .UCODE ; 2877 ; 2878 1446: U 1446, 1500,3551,0303,0274,4003,7700,0200,0003,0001 ; 2879 IOR: [AR]_[AR].OR.AC,EXIT ; 2880 ; 2881 .DCODE D 0440, 1015,1447,1100 ; 2882 440: R-PF, AC, J/ANDCB D 0441, 0015,1447,3000 ; 2883 I-PF, AC, J/ANDCB D 0442, 0016,1447,1700 ; 2884 RW, M, J/ANDCB D 0443, 0017,1447,1700 ; 2885 RW, B, J/ANDCB ; 2886 .UCODE ; 2887 ; 2888 1447: U 1447, 1443,7441,0303,4174,4007,0700,0000,0000,0000 ; 2889 ANDCB: [AR]_.NOT.[AR],J/ANDCA ; 2890 ; 2891 .DCODE D 0444, 1015,1450,1100 ; 2892 444: R-PF, AC, J/EQV D 0445, 0015,1450,3000 ; 2893 I-PF, AC, J/EQV D 0446, 0016,1450,1700 ; 2894 RW, M, J/EQV D 0447, 0017,1450,1700 ; 2895 RW, B, J/EQV ; 2896 .UCODE ; 2897 ; 2898 1450: U 1450, 1500,7551,0303,0274,4003,7700,0200,0003,0001 ; 2899 EQV: [AR]_[AR].EQV.AC,EXIT ; 2900 ; 2901 .DCODE D 0450, 0015,1451,3000 ; 2902 450: I-PF, AC, J/SETCA D 0451, 0015,1451,3000 ; 2903 I-PF, AC, J/SETCA D 0452, 0016,1451,2700 ; 2904 IW, M, J/SETCA D 0453, 0017,1451,2700 ; 2905 IW, B, J/SETCA ; 2906 .UCODE ; 2907 ; 2908 1451: U 1451, 1500,7771,0003,0274,4003,7700,0200,0003,0001 ; 2909 SETCA: [AR]_.NOT.AC,EXIT ; 2910 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 80 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BOOLEAN GROUP ; 2911 .DCODE D 0454, 1015,1452,1100 ; 2912 454: R-PF, AC, J/ORCA D 0455, 0015,1452,3000 ; 2913 I-PF, AC, J/ORCA D 0456, 0016,1452,1700 ; 2914 RW, M, J/ORCA D 0457, 0017,1452,1700 ; 2915 RW, B, J/ORCA ; 2916 .UCODE ; 2917 ; 2918 1452: U 1452, 0532,7771,0005,0274,4007,0700,0000,0000,0000 ; 2919 ORCA: [BR]_.NOT.AC U 0532, 1500,3111,0503,4174,4003,7700,0200,0003,0001 ; 2920 [AR]_[AR].OR.[BR],EXIT ; 2921 ; 2922 .DCODE D 0460, 1015,1453,1100 ; 2923 460: R-PF, AC, J/SETCM D 0461, 0015,1453,3000 ; 2924 I-PF, AC, J/SETCM D 0462, 0016,1453,1700 ; 2925 RW, M, J/SETCM D 0463, 0017,1453,1700 ; 2926 RW, B, J/SETCM ; 2927 .UCODE ; 2928 ; 2929 1453: U 1453, 1500,7441,0303,4174,4003,7700,0200,0003,0001 ; 2930 SETCM: [AR]_.NOT.[AR],EXIT ; 2931 ; 2932 .DCODE D 0464, 1015,1454,1100 ; 2933 464: R-PF, AC, J/ORCM D 0465, 0015,1454,3000 ; 2934 I-PF, AC, J/ORCM D 0466, 0016,1454,1700 ; 2935 RW, M, J/ORCM D 0467, 0017,1454,1700 ; 2936 RW, B, J/ORCM ; 2937 .UCODE ; 2938 ; 2939 1454: U 1454, 1446,7441,0303,4174,4007,0700,0000,0000,0000 ; 2940 ORCM: [AR]_.NOT.[AR],J/IOR ; 2941 ; 2942 .DCODE D 0470, 1015,1455,1100 ; 2943 470: R-PF, AC, J/ORCB D 0471, 0015,1455,3000 ; 2944 I-PF, AC, J/ORCB D 0472, 0016,1455,1700 ; 2945 RW, M, J/ORCB D 0473, 0017,1455,1700 ; 2946 RW, B, J/ORCB ; 2947 .UCODE ; 2948 ; 2949 1455: U 1455, 1453,4551,0303,0274,4007,0700,0000,0000,0000 ; 2950 ORCB: [AR]_[AR].AND.AC,J/SETCM ; 2951 ; 2952 .DCODE D 0474, 0015,1456,3000 ; 2953 474: I-PF, AC, J/SETO D 0475, 0015,1456,3000 ; 2954 I-PF, AC, J/SETO D 0476, 0016,1456,2700 ; 2955 IW, M, J/SETO D 0477, 0017,1456,2700 ; 2956 IW, B, J/SETO ; 2957 .UCODE ; 2958 ; 2959 1456: U 1456, 1500,2441,0703,4174,4003,7700,4200,0003,0001 ; 2960 SETO: [AR]_-[ONE], EXIT ; 2961 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 81 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 2962 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO" ; 2963 ; 2964 .DCODE D 0240, 0400,1622,1000 ; 2965 240: SH, J/ASH D 0241, 0400,1632,1000 ; 2966 SH, J/ROT D 0242, 0400,1612,1000 ; 2967 SH, J/LSH D 0243, 0000,1462,2100 ; 2968 I, J/JFFO D 0244, 0000,1466,3000 ; 2969 I-PF, J/ASHC D 0245, 0500,1470,1000 ; 2970 245: SHC, J/ROTC D 0246, 0500,1464,1000 ; 2971 SHC, J/LSHC ; 2972 .UCODE ; 2973 ; 2974 ; 2975 ;HERE IS THE CODE FOR LOGICAL SHIFT. THE EFFECTIVE ADDRESS IS ; 2976 ; IN AR. ; 2977 1612: ; 2978 LSH: [AR]_AC, ;PICK UP AC ; 2979 FE_-FE-1, ;NEGATIVE SHIFT U 1612, 0552,3771,0003,0276,6007,0700,1000,0031,1777 ; 2980 J/LSHL ;SHIFT LEFT ; 2981 1613: [AR]_AC.AND.MASK, ;MAKE IT LOOK POSITIVE ; 2982 FE_FE+1, ;UNDO -1 AT SHIFT U 1613, 0564,4551,1203,0276,6007,0700,1000,0041,0001 ; 2983 J/ASHR ;GO SHIFT RIGHT ; 2984 ; 2985 LSHL: [AR]_[AR]*2, ;SHIFT LEFT U 0552, 1515,3445,0303,4174,4007,0700,1020,0041,0001 ; 2986 SHIFT, J/STAC ;FAST SHIFT & GO STORE AC ; 2987 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 82 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 2988 ;HERE IS THE CODE FOR ARITHMETIC SHIFT. THE EFFECTIVE ADDRESS IS ; 2989 ; IN AR. ; 2990 ; 2991 ASH36 LEFT "[AR]_[AR]*2 LONG, ASHC, STEP SC, ASH AROV" ; 2992 ; 2993 1622: U 1622, 0572,4222,0000,4174,4007,0700,0000,0000,0000 ; 2994 ASH: Q_0, J/ASHL0 ;HARDWARE ONLY DOES ASHC ; 2995 1623: [AR]_AC, ;GET THE ARGUMENT U 1623, 0564,3771,0003,0276,6007,0700,1000,0041,0001 ; 2996 FE_FE+1 ;FE HAS NEGATIVE SHIFT COUNT ; 2997 ASHR: [AR]_[AR]*.5, ;SHIFT RIGHT ; 2998 ASH, SHIFT, ;FAST SHIFT U 0564, 1515,3447,0303,4174,4007,0700,1020,0041,0001 ; 2999 J/STAC ;STORE AC WHEN DONE ; 3000 ; 3001 ASHL0: [AR]_AC*.5, ;GET INTO 9 CHIPS U 0572, 0502,3777,0003,0274,4007,0631,2000,0060,0000 ; 3002 STEP SC ;SEE IF NULL SHIFT ; 3003 =0 U 0502, 0502,3444,0303,4174,4447,0630,2000,0060,0000 ; 3004 ASHL: ASH36 LEFT, J/ASHL ;SHIFT LEFT ; 3005 ;SLOW BECAUSE WE HAVE TO ; 3006 ; TEST FOR OVERFLOW ; 3007 U 0503, 1515,3445,0303,4174,4007,0700,0000,0000,0000 ; 3008 ASHX: [AR]_[AR]*2, J/STAC ;SHIFT BACK INTO 10 CHIPS ; 3009 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 83 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3010 ;HERE IS THE CODE FOR ROTATE. THE EFFECTIVE ADDRESS IS ; 3011 ; IN AR. ; 3012 1632: ; 3013 ROT: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) ; 3014 FE_-FE-1, ;NEGATIVE SHIFT COUNT U 1632, 0646,3777,0003,0274,4007,0701,1000,0031,1777 ; 3015 J/ROTL ;ROTATE LEFT ; 3016 1633: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) U 1633, 0604,3777,0003,0274,4007,0701,1000,0041,0001 ; 3017 FE_FE+1 ;NEGATIVE SHIFT COUNT U 0604, 0612,3447,0303,4174,4007,0700,0000,0000,0000 ; 3018 [AR]_[AR]*.5 ;PUT IN 9 DIPS ; 3019 [AR]_[AR]*.5, ;SHIFT RIGHT U 0612, 0631,3447,0303,4174,4037,0700,1020,0041,0001 ; 3020 ROT, SHIFT ;FAST SHIFT U 0631, 0503,3445,0303,4174,4007,0700,0000,0000,0000 ; 3021 ASHXX: [AR]_[AR]*2,J/ASHX ;SHIFT TO STD PLACE ; 3022 U 0646, 0652,3447,0303,4174,4007,0700,0000,0000,0000 ; 3023 ROTL: [AR]_[AR]*.5 ;PUT IN RIGHT 36-BITS ; 3024 [AR]_[AR]*2, ;ROTATE LEFT ; 3025 ROT, SHIFT, ;FAST SHIFT U 0652, 0631,3445,0303,4174,4037,0700,1020,0041,0001 ; 3026 J/ASHXX ;ALL DONE--SHIFT BACK ; 3027 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 84 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3028 1462: ; 3029 JFFO: [BR]_AC.AND.MASK, 4T, ;GET AC WITH NO SIGN U 1462, 0514,4551,1205,0276,6007,0622,0000,0000,0000 ; 3030 SKIP AD.EQ.0 ; EXTENSION. SKIP IF ; 3031 ; ZERO. ; 3032 =0 [PC]_[AR], ;NOT ZERO--JUMP ; 3033 LOAD VMA, FETCH, ;GET NEXT INST U 0514, 0701,3441,0301,4174,4007,0700,0200,0014,0012 ; 3034 J/JFFO1 ;ENTER LOOP U 0515, 1400,4223,0000,1174,4007,0700,0400,0000,1441 ; 3035 AC[1]_0, J/DONE ;ZERO--DONE ; 3036 U 0701, 0534,4443,0000,4174,4007,0700,1000,0071,1764 ; 3037 JFFO1: FE_-12. ;WHY -12.? WELL THE ; 3038 ; HARDWARE LOOKS AT ; 3039 ; BIT -2 SO THE FIRST ; 3040 ; 2 STEPS MOVE THE BR ; 3041 ; OVER. WE ALSO LOOK AT ; 3042 ; THE DATA BEFORE THE SHIFT ; 3043 ; SO WE END UP GOING 1 PLACE ; 3044 ; TOO MANY. THAT MEANS THE ; 3045 ; FE SHOULD START AT -3. ; 3046 ; HOWEVER, WE COUNT THE FE BY ; 3047 ; 4 (BECAUSE THE 2 LOW ORDER ; 3048 ; BITS DO NOT COME BACK) SO ; 3049 ; FE_-12. ; 3050 =0 ; 3051 JFFOL: [BR]_[BR]*2, ;SHIFT LEFT ; 3052 FE_FE+4, ;COUNT UP BIT NUMBER U 0534, 0534,3445,0505,4174,4007,0520,1000,0041,0004 ; 3053 SKIP DP0, J/JFFOL ;LOOP TILL WE FIND THE BIT U 0535, 0706,3777,0003,4334,4057,0700,0000,0041,0000 ; 3054 [AR]_FE ;GET ANSWER BACK U 0706, 0747,4251,0303,4374,4007,0700,0000,0000,0077 ; 3055 [AR]_[AR].AND.# CLR LH,#/77 ;MASK TO 1 COPY U 0747, 0100,3440,0303,1174,4156,4700,0400,0000,1441 ; 3056 AC[1]_[AR], NEXT INST ;STORE AND EXIT ; 3057 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 85 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3058 .TOC "ROTATES AND LOGICAL SHIFTS -- LSHC" ; 3059 ; 3060 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "LSHC" IS DONE: ; 3061 ; ; 3062 ; !-! !----!------------------------------------! ; 3063 ; !0!-->!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3064 ; !-! !----!------------------------------------! ; 3065 ; ^ ; 3066 ; : ; 3067 ; .................................... ; 3068 ; : ; 3069 ; !----!------------------------------------! ; 3070 ; !0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3071 ; !----!------------------------------------! ; 3072 ; ^ ; 3073 ; : ; 3074 ; !-! ; 3075 ; !0! ; 3076 ; !-! ; 3077 ; ; 3078 ; 3079 1464: U 1464, 0554,4443,0000,4174,4007,0630,2000,0060,0000 ; 3080 LSHC: STEP SC, J/LSHCL U 1465, 0767,3333,0003,4174,4007,0700,2000,0031,5777 ; 3081 1465: READ [AR], SC_-SHIFT-1 U 0767, 0544,4443,0000,4174,4007,0630,2000,0060,0000 ; 3082 STEP SC ; 3083 =0 U 0544, 0544,3446,0505,4174,4057,0630,2000,0060,0000 ; 3084 LSHCR: [BR]_[BR]*.5 LONG,STEP SC,LSHC,J/LSHCR U 0545, 1002,3444,0505,4174,4007,0700,0000,0000,0000 ; 3085 [BR]_[BR]*2 LONG,J/LSHCX ; 3086 ; 3087 =0 U 0554, 0554,3444,0505,4174,4057,0630,2000,0060,0000 ; 3088 LSHCL: [BR]_[BR]*2 LONG,LSHC,STEP SC,J/LSHCL U 0555, 1002,3444,0505,4174,4007,0700,0000,0000,0000 ; 3089 [BR]_[BR]*2 LONG U 1002, 1007,3444,0505,4174,4007,0700,0000,0000,0000 ; 3090 LSHCX: [BR]_[BR]*2 LONG U 1007, 1033,3440,0505,0174,4007,0700,0400,0000,0000 ; 3091 AC_[BR], J/ASHCQ1 ; 3092 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 86 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3093 .TOC "ROTATES AND LOGICAL SHIFTS -- ASHC" ; 3094 ; 3095 ; 3096 1466: ; 3097 ASHC: READ [AR], ;PUT AR ON DP ; 3098 SC_SHIFT, LOAD FE, ;PUT SHIFT IN BOTH SC AND FE U 1466, 0602,3333,0003,4174,4007,0330,3000,0041,4000 ; 3099 SKIP ADR.EQ.0 ;SEE IF NULL SHIFT ; 3100 =0 Q_AC[1], ;NOT NULL--GET LOW WORD U 0602, 1023,3772,0000,1275,5007,0701,0000,0000,1441 ; 3101 J/ASHC1 ;CONTINUE BELOW U 0603, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3102 NIDISP: NEXT INST ;NULL--ALL DONE ; 3103 ASHC1: [BR]_AC*.5 LONG, ;GET HIGH WORD ; 3104 ;AND SHIFT Q U 1023, 0614,3776,0005,0274,4007,0631,0000,0000,0000 ; 3105 SKIP/SC ;SEE WHICH DIRECTION ; 3106 =0 [BR]_[BR]*.5, ;ADJUST POSITION ; 3107 SC_FE+S#, S#/1776, ;SUBRTACT 2 FROM FE U 0614, 0634,3447,0505,4174,4007,0700,2000,0041,1776 ; 3108 J/ASHCL ;GO LEFT ; 3109 [BR]_[BR]*.5, ;ADJUST POSITION U 0615, 0624,3447,0505,4174,4007,0700,2000,0031,1776 ; 3110 SC_S#-FE, S#/1776 ;SC_-2-FE, SC_+# OF STEPS ; 3111 =0 ;HERE TO GO RIGHT ; 3112 ASHCR: [BR]_[BR]*.5 LONG, ;GO RIGHT ; 3113 ASHC, ;SET DATA PATHS FOR ASHC (SEE DPE1) U 0624, 0624,3446,0505,4174,4047,0630,2000,0060,0000 ; 3114 STEP SC, J/ASHCR ;COUNT THE STEP AND KEEP LOOPING ; 3115 [BR]_[BR]*2 LONG, ;PUT BACK WHERE IT GOES U 0625, 1026,3444,0505,4174,4047,0700,0000,0000,0000 ; 3116 ASHC, J/ASHCX ;COMPLETE INSTRUCTION ; 3117 ; 3118 =0 ; 3119 ASHCL: [BR]_[BR]*2 LONG, ;GO LEFT ; 3120 ASHC, ASH AROV, ;SEE IF OVERFLOW U 0634, 0634,3444,0505,4174,4447,0630,2000,0060,0000 ; 3121 STEP SC, J/ASHCL ;LOOP OVER ALL PLACES ; 3122 [BR]_[BR]*2 LONG, ;SHIFT BACK WHERE IT GOES U 0635, 1026,3444,0505,4174,4447,0700,0000,0000,0000 ; 3123 ASHC, ASH AROV ;CAN STILL OVERFLOW ; 3124 ASHCX: AC_[BR]+[BR], 3T, ;PUT BACK HIGH WORD U 1026, 0642,0113,0505,0174,4007,0521,0400,0000,0000 ; 3125 SKIP DP0 ;SEE HOW TO FIX LOW SIGN ; 3126 =0 Q_Q.AND.#, #/377777, ;POSITIVE, CLEAR LOW SIGN U 0642, 1033,4662,0000,4374,0007,0700,0000,0037,7777 ; 3127 HOLD RIGHT, J/ASHCQ1 ;GO STORE ANSWER ; 3128 Q_Q.OR.#, #/400000, ;NEGATIVE, SET LOW SIGN U 0643, 1033,3662,0000,4374,0007,0700,0000,0040,0000 ; 3129 HOLD RIGHT ;IN LEFT HALF U 1033, 0100,3223,0000,1174,4156,4700,0400,0000,1441 ; 3130 ASHCQ1: AC[1]_Q, NEXT INST ;PUT BACK Q AND EXIT ; 3131 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 87 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3132 .TOC "ROTATES AND LOGICAL SHIFTS -- ROTC" ; 3133 ; 3134 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "ROTC" IS DONE: ; 3135 ; ; 3136 ; !----!------------------------------------! ; 3137 ; .....>!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3138 ; : !----!------------------------------------! ; 3139 ; : ^ ; 3140 ; : : ; 3141 ; : ............................................ ; 3142 ; : : ; 3143 ; : : !----!------------------------------------! ; 3144 ; : ..!0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3145 ; : !----!------------------------------------! ; 3146 ; : ^ ; 3147 ; : : ; 3148 ; :..............................................: ; 3149 ; ; 3150 ; 3151 1470: U 1470, 0742,4443,0000,4174,4007,0630,2000,0060,0000 ; 3152 ROTC: STEP SC, J/ROTCL U 1471, 1036,3333,0003,4174,4007,0700,2000,0031,5777 ; 3153 1471: READ [AR], SC_-SHIFT-1 U 1036, 0644,4443,0000,4174,4007,0630,2000,0060,0000 ; 3154 STEP SC ; 3155 =0 U 0644, 0644,3446,0505,4174,4077,0630,2000,0060,0000 ; 3156 ROTCR: [BR]_[BR]*.5 LONG,STEP SC,ROTC,J/ROTCR U 0645, 1002,3444,0505,4174,4007,0700,0000,0000,0000 ; 3157 [BR]_[BR]*2 LONG,J/LSHCX ; 3158 ; 3159 =0 U 0742, 0742,3444,0505,4174,4077,0630,2000,0060,0000 ; 3160 ROTCL: [BR]_[BR]*2 LONG,ROTC,STEP SC,J/ROTCL ; 3161 [BR]_[BR]*2 LONG, U 0743, 1002,3444,0505,4174,4007,0700,0000,0000,0000 ; 3162 J/LSHCX ; 3163 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 88 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 TEST GROUP ; 3164 .TOC "TEST GROUP" ; 3165 ; 3166 .DCODE ; 3167 ; 3168 ;SPECIAL MACROS USED ONLY IN B-FIELD OF TEST INSTRUCTIONS ; 3169 TN- "B/4" ; 3170 TNE "B/0" ; 3171 WORD-TNE "B/10" ;USED IN TIOE ; 3172 TNA "B/0" ; 3173 TNN "B/4" ; 3174 WORD-TNN "B/14" ;USED IN TION ; 3175 TZ- "B/5" ; 3176 TZE "B/1" ; 3177 TZA "B/1" ; 3178 TZN "B/5" ; 3179 TC- "B/6" ; 3180 TCE "B/2" ; 3181 TCA "B/2" ; 3182 TCN "B/6" ; 3183 TO- "B/7" ; 3184 TOE "B/3" ; 3185 TOA "B/3" ; 3186 TON "B/7" ; 3187 D 0600, 0000,1400,2100 ; 3188 600: I, J/DONE ;TRN- IS NOP D 0601, 0000,1400,2100 ; 3189 I, J/DONE ;SO IS TLN- D 0602, 0000,1475,2100 ; 3190 I, TNE, J/TDXX D 0603, 0000,1474,2100 ; 3191 I, TNE, J/TSXX D 0604, 0000,1473,2100 ; 3192 I, TNA, J/TDX D 0605, 0000,1472,2100 ; 3193 I, TNA, J/TSX D 0606, 0004,1475,2100 ; 3194 I, TNN, J/TDXX D 0607, 0004,1474,2100 ; 3195 I, TNN, J/TSXX ; 3196 D 0610, 0000,1400,2100 ; 3197 610: I, J/DONE ;TDN- IS A NOP D 0611, 0000,1400,2100 ; 3198 I, J/DONE ;TSN- ALSO D 0612, 0000,1475,1100 ; 3199 R, TNE, J/TDXX D 0613, 0000,1474,1100 ; 3200 R, TNE, J/TSXX D 0614, 0000,1473,1100 ; 3201 R, TNA, J/TDX D 0615, 0000,1472,1100 ; 3202 R, TNA, J/TSX D 0616, 0004,1475,1100 ; 3203 R, TNN, J/TDXX D 0617, 0004,1474,1100 ; 3204 R, TNN, J/TSXX ; 3205 D 0620, 0005,1473,2100 ; 3206 620: I, TZ-, J/TDX D 0621, 0005,1472,2100 ; 3207 I, TZ-, J/TSX D 0622, 0001,1475,2100 ; 3208 I, TZE, J/TDXX D 0623, 0001,1474,2100 ; 3209 I, TZE, J/TSXX D 0624, 0001,1473,2100 ; 3210 I, TZA, J/TDX D 0625, 0001,1472,2100 ; 3211 I, TZA, J/TSX D 0626, 0005,1475,2100 ; 3212 I, TZN, J/TDXX D 0627, 0005,1474,2100 ; 3213 I, TZN, J/TSXX ; 3214 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 89 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 TEST GROUP D 0630, 0005,1473,1100 ; 3215 630: R, TZ-, J/TDX D 0631, 0005,1472,1100 ; 3216 R, TZ-, J/TSX D 0632, 0001,1475,1100 ; 3217 R, TZE, J/TDXX D 0633, 0001,1474,1100 ; 3218 R, TZE, J/TSXX D 0634, 0001,1473,1100 ; 3219 R, TZA, J/TDX D 0635, 0001,1472,1100 ; 3220 R, TZA, J/TSX D 0636, 0005,1475,1100 ; 3221 R, TZN, J/TDXX D 0637, 0005,1474,1100 ; 3222 R, TZN, J/TSXX ; 3223 D 0640, 0006,1473,2100 ; 3224 640: I, TC-, J/TDX D 0641, 0006,1472,2100 ; 3225 I, TC-, J/TSX D 0642, 0002,1475,2100 ; 3226 I, TCE, J/TDXX D 0643, 0002,1474,2100 ; 3227 I, TCE, J/TSXX D 0644, 0002,1473,2100 ; 3228 I, TCA, J/TDX D 0645, 0002,1472,2100 ; 3229 I, TCA, J/TSX D 0646, 0006,1475,2100 ; 3230 I, TCN, J/TDXX D 0647, 0006,1474,2100 ; 3231 I, TCN, J/TSXX ; 3232 D 0650, 0006,1473,1100 ; 3233 650: R, TC-, J/TDX D 0651, 0006,1472,1100 ; 3234 R, TC-, J/TSX D 0652, 0002,1475,1100 ; 3235 R, TCE, J/TDXX D 0653, 0002,1474,1100 ; 3236 R, TCE, J/TSXX D 0654, 0002,1473,1100 ; 3237 R, TCA, J/TDX D 0655, 0002,1472,1100 ; 3238 R, TCA, J/TSX D 0656, 0006,1475,1100 ; 3239 R, TCN, J/TDXX D 0657, 0006,1474,1100 ; 3240 R, TCN, J/TSXX D 0660, 0007,1473,2100 ; 3241 660: I, TO-, J/TDX D 0661, 0007,1472,2100 ; 3242 I, TO-, J/TSX D 0662, 0003,1475,2100 ; 3243 I, TOE, J/TDXX D 0663, 0003,1474,2100 ; 3244 I, TOE, J/TSXX D 0664, 0003,1473,2100 ; 3245 I, TOA, J/TDX D 0665, 0003,1472,2100 ; 3246 I, TOA, J/TSX D 0666, 0007,1475,2100 ; 3247 I, TON, J/TDXX D 0667, 0007,1474,2100 ; 3248 I, TON, J/TSXX ; 3249 D 0670, 0007,1473,1100 ; 3250 670: R, TO-, J/TDX D 0671, 0007,1472,1100 ; 3251 R, TO-, J/TSX D 0672, 0003,1475,1100 ; 3252 R, TOE, J/TDXX D 0673, 0003,1474,1100 ; 3253 R, TOE, J/TSXX D 0674, 0003,1473,1100 ; 3254 R, TOA, J/TDX D 0675, 0003,1472,1100 ; 3255 R, TOA, J/TSX D 0676, 0007,1475,1100 ; 3256 R, TON, J/TDXX D 0677, 0007,1474,1100 ; 3257 R, TON, J/TSXX ; 3258 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 90 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 TEST GROUP ; 3259 .UCODE ; 3260 ; 3261 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE(IMMEDIATE OR MEMORY) ; 3262 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH ; 3263 ; FOR THE MODIFICATION ON THE B FIELD. ; 3264 ; 3265 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 2 AND 3 AS FOLLOWS: ; 3266 ; 0 0 NO MODIFICATION ; 3267 ; 0 1 0S ; 3268 ; 1 0 COMPLEMENT ; 3269 ; 1 1 ONES ; 3270 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE ; 3271 ; ORDER OF INSTRUCTIONS AT TGROUP. ; 3272 ; 3273 ;THE BIT 1 OF THE B FIELD IS USED TO DETERMINE THE SENSE ; 3274 ; OF THE SKIP ; 3275 ; 1 SKIP IF AC.AND.MASK .NE. 0 (TXX- AND TXXN) ; 3276 ; 0 SKIP IF AC.AND.MASK .EQ. 0 (TXXA AND TXXE) ; 3277 ; 3278 ;BIT 0 IS UNUSED AND MUST BE ZERO ; 3279 ; 3280 ; 3281 1472: U 1472, 1473,3770,0303,4344,4007,0700,0000,0000,0000 ; 3282 TSX: [AR]_[AR] SWAP ;TSXX AND TLXX ; 3283 1473: U 1473, 0014,4221,0005,4174,4003,7700,0000,0000,0000 ; 3284 TDX: [BR]_0,TEST DISP ; ALWAYS AND NEVER SKIP CASES ; 3285 ; 3286 1474: U 1474, 1475,3770,0303,4344,4007,0700,0000,0000,0000 ; 3287 TSXX: [AR]_[AR] SWAP ;TSXE, TSXN, TLXE, TLXN ; 3288 1475: ; 3289 TDXX: [BR]_[AR].AND.AC, ;TDXE, TDXN, TRXE, TRXN U 1475, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 3290 TEST DISP ; 3291 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 91 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 TEST GROUP ; 3292 ;TEST DISP DOES AN 8 WAY BRANCH BASED ON THE B-FIELD OF DROM ; 3293 ; 3294 =1100 ; 3295 TEST-TABLE: ; 3296 ; 3297 ;CASE 0 & 4 -- TXNX U 0014, 1400,3333,0005,4174,4007,0571,0000,0000,0000 ; 3298 TXXX: READ [BR], TXXX TEST, 3T, J/DONE ; 3299 ; 3300 ;CASE 1 & 5 -- TXZ AND TXZX U 0015, 1043,7441,0303,4174,4007,0700,0000,0000,0000 ; 3301 [AR]_.NOT.[AR],J/TXZX ; 3302 ; 3303 ;CASE 2 & 6 -- TXC AND TXCX U 0016, 1046,6551,0303,0274,4007,0700,0000,0000,0000 ; 3304 [AR]_[AR].XOR.AC,J/TDONE ; 3305 ; 3306 ;CASE 3 & 7 -- TXO AND TXOX U 0017, 1046,3551,0303,0274,4007,0700,0000,0000,0000 ; 3307 [AR]_[AR].OR.AC,J/TDONE ; 3308 ; 3309 ;THE SPECIAL FUNCTION TXXX TEST CAUSES A MICROCODE SKIP IF ; 3310 ; AD.EQ.0 AND DROM B IS 0-3 OR AD.NE.0 AND DROM B IS 4-7. ; 3311 U 1043, 1046,4551,0303,0274,4007,0700,0000,0000,0000 ; 3312 TXZX: [AR]_[AR].AND.AC U 1046, 0014,3440,0303,0174,4007,0700,0400,0000,0000 ; 3313 TDONE: AC_[AR],J/TXXX ; 3314 ; READ BR,TXXX TEST,J/DONE ; 3315 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 92 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 COMPARE -- CAI, CAM ; 3316 .TOC "COMPARE -- CAI, CAM" ; 3317 ; 3318 .DCODE ; 3319 ; 3320 ;SPECIAL B-FIELD ENCODING USED BY SKIP-JUMP-COMPARE CLASS ; 3321 ; INSTRUCTIONS: ; 3322 ; 3323 SJC- "B/0" ;NEVER ; 3324 SJCL "B/1" ;LESS ; 3325 SJCE "B/2" ;EQUAL ; 3326 SJCLE "B/3" ;LESS EQUAL ; 3327 SJCA "B/4" ;ALWAYS ; 3328 SJCGE "B/5" ;GREATER THAN OR EQUAL ; 3329 SJCN "B/6" ;NOT EQUAL ; 3330 SJCG "B/7" ;GREATER ; 3331 ; 3332 .UCODE ; 3333 ; 3334 ;COMPARE TABLE ; 3335 =1000 ; 3336 SKIP-COMP-TABLE: ; 3337 ; 3338 ;CASE 0 -- NEVER U 0250, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3339 DONE ; 3340 ; 3341 ;CASE 1 -- LESS U 0251, 1400,3333,0003,4174,4007,0520,0000,0000,0000 ; 3342 READ [AR], SKIP DP0,J/DONE ; 3343 ; 3344 ;CASE 2 -- EQUAL U 0252, 1400,3333,0003,4174,4007,0621,0000,0000,0000 ; 3345 SKIPE: READ [AR], SKIP AD.EQ.0,J/DONE ; 3346 ; 3347 ;CASE 3 -- LESS OR EQUAL U 0253, 1400,3333,0003,4174,4007,0421,0000,0000,0000 ; 3348 READ [AR], SKIP AD.LE.0,J/DONE ; 3349 ; 3350 ;CASE 4 -- ALWAYS U 0254, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 3351 VMA_[PC]+1, NEXT INST FETCH, FETCH ; 3352 ; 3353 ;CASE 5 -- GREATER THAN OR EQUAL U 0255, 0372,3333,0003,4174,4007,0520,0000,0000,0000 ; 3354 READ [AR], SKIP DP0,J/SKIP ; 3355 ; 3356 ;CASE 6 -- NOT EQUAL U 0256, 0372,3333,0003,4174,4007,0621,0000,0000,0000 ; 3357 READ [AR], SKIP AD.EQ.0,J/SKIP ; 3358 ; 3359 ;CASE 7 -- GREATER U 0257, 0372,3333,0003,4174,4007,0421,0000,0000,0000 ; 3360 READ [AR], SKIP AD.LE.0,J/SKIP ; 3361 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 93 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 COMPARE -- CAI, CAM ; 3362 .DCODE D 0300, 0000,1400,2100 ; 3363 300: I, SJC-, J/DONE ;CAI D 0301, 0001,1476,2100 ; 3364 I, SJCL, J/CAIM D 0302, 0002,1476,2100 ; 3365 I, SJCE, J/CAIM D 0303, 0003,1476,2100 ; 3366 I, SJCLE, J/CAIM D 0304, 0004,1476,2100 ; 3367 I, SJCA, J/CAIM D 0305, 0005,1476,2100 ; 3368 I, SJCGE, J/CAIM D 0306, 0006,1476,2100 ; 3369 I, SJCN, J/CAIM D 0307, 0007,1476,2100 ; 3370 I, SJCG, J/CAIM ; 3371 D 0310, 0000,1476,1100 ; 3372 310: R, SJC-, J/CAIM ;CAM D 0311, 0001,1476,1100 ; 3373 R, SJCL, J/CAIM D 0312, 0002,1476,1100 ; 3374 R, SJCE, J/CAIM D 0313, 0003,1476,1100 ; 3375 R, SJCLE, J/CAIM D 0314, 0004,1476,1100 ; 3376 R, SJCA, J/CAIM D 0315, 0005,1476,1100 ; 3377 R, SJCGE, J/CAIM D 0316, 0006,1476,1100 ; 3378 R, SJCN, J/CAIM D 0317, 0007,1476,1100 ; 3379 R, SJCG, J/CAIM ; 3380 .UCODE ; 3381 ; 3382 1476: U 1476, 0250,2551,0303,0274,4003,7701,4000,0000,0000 ; 3383 CAIM: [AR]_AC-[AR], 3T, SKIP-COMP DISP ; 3384 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 94 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3385 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP" ; 3386 ;ENTER WITH (E) IN AR ; 3387 ; 3388 .DCODE D 0330, 0000,1477,1100 ; 3389 330: R, SJC-, J/SKIPS ;NOT A NOP IF AC .NE. 0 D 0331, 0001,1477,1100 ; 3390 R, SJCL, J/SKIPS D 0332, 0002,1477,1100 ; 3391 R, SJCE, J/SKIPS D 0333, 0003,1477,1100 ; 3392 R, SJCLE, J/SKIPS D 0334, 0004,1477,1100 ; 3393 R, SJCA, J/SKIPS D 0335, 0005,1477,1100 ; 3394 R, SJCGE, J/SKIPS D 0336, 0006,1477,1100 ; 3395 R, SJCN, J/SKIPS D 0337, 0007,1477,1100 ; 3396 R, SJCG, J/SKIPS ; 3397 .UCODE ; 3398 ; 3399 1477: ; 3400 SKIPS: FIX [AR] SIGN, U 1477, 0744,3770,0303,4174,0007,0360,0000,0000,0000 ; 3401 SKIP IF AC0 U 0744, 0250,3440,0303,0174,4003,7700,0400,0000,0000 ; 3402 =0 AC_[AR],SKIP-COMP DISP U 0745, 0250,4443,0000,4174,4003,7700,0000,0000,0000 ; 3403 SKIP-COMP DISP ; 3404 ; 3405 .DCODE D 0350, 0000,1431,1500 ; 3406 350: RW, SJC-, J/AOS D 0351, 0001,1431,1500 ; 3407 RW, SJCL, J/AOS D 0352, 0002,1431,1500 ; 3408 RW, SJCE, J/AOS D 0353, 0003,1431,1500 ; 3409 RW, SJCLE, J/AOS D 0354, 0004,1431,1500 ; 3410 RW, SJCA, J/AOS D 0355, 0005,1431,1500 ; 3411 RW, SJCGE, J/AOS D 0356, 0006,1431,1500 ; 3412 RW, SJCN, J/AOS D 0357, 0007,1431,1500 ; 3413 RW, SJCG, J/AOS ; 3414 .UCODE ; 3415 ; 3416 1431: U 1431, 1053,0111,0703,4174,4467,0701,0000,0001,0001 ; 3417 AOS: [AR]_[AR]+1, 3T, AD FLAGS U 1053, 1064,4443,0000,4174,4007,0700,0200,0003,0002 ; 3418 XOS: START WRITE U 1064, 1477,3333,0003,4175,5007,0701,0200,0000,0002 ; 3419 MEM WRITE,MEM_[AR],J/SKIPS ; 3420 ; 3421 .DCODE D 0370, 0000,1437,1500 ; 3422 370: RW, SJC-, J/SOS D 0371, 0001,1437,1500 ; 3423 RW, SJCL, J/SOS D 0372, 0002,1437,1500 ; 3424 RW, SJCE, J/SOS D 0373, 0003,1437,1500 ; 3425 RW, SJCLE, J/SOS D 0374, 0004,1437,1500 ; 3426 RW, SJCA, J/SOS D 0375, 0005,1437,1500 ; 3427 RW, SJCGE, J/SOS D 0376, 0006,1437,1500 ; 3428 RW, SJCN, J/SOS D 0377, 0007,1437,1500 ; 3429 RW, SJCG, J/SOS ; 3430 .UCODE ; 3431 ; 3432 1437: U 1437, 1053,1111,0703,4174,4467,0701,4000,0001,0001 ; 3433 SOS: [AR]_[AR]-1, 3T, AD FLAGS, J/XOS ; 3434 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 95 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3435 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ" ; 3436 ; ENTER WITH E IN AR ; 3437 ; 3438 =1000 ; 3439 JUMP-TABLE: ; 3440 ; 3441 ;CASE 0 -- NEVER U 0270, 0100,3440,0505,0174,4156,4700,0400,0000,0000 ; 3442 AC_[BR], NEXT INST ; 3443 ; 3444 ;CASE 1 -- LESS U 0271, 0762,3770,0505,0174,4007,0520,0400,0000,0000 ; 3445 AC_[BR] TEST, SKIP DP0, J/JUMP- ; 3446 ; 3447 ;CASE 2 -- EQUAL U 0272, 0762,3770,0505,0174,4007,0621,0400,0000,0000 ; 3448 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMP- ; 3449 ; 3450 ;CASE 3 -- LESS THAN OR EQUAL U 0273, 0762,3770,0505,0174,4007,0421,0400,0000,0000 ; 3451 AC_[BR] TEST, SKIP AD.LE.0, J/JUMP- ; 3452 ; 3453 ;CASE 4 -- ALWAYS U 0274, 0764,3440,0505,0174,4007,0700,0400,0000,0000 ; 3454 JMPA: AC_[BR], J/JUMPA ; 3455 ; 3456 ;CASE 5 -- GREATER THAN OR EQUAL TO U 0275, 0764,3770,0505,0174,4007,0520,0400,0000,0000 ; 3457 AC_[BR] TEST, SKIP DP0, J/JUMPA ; 3458 ; 3459 ;CASE 6 -- NOT EQUAL U 0276, 0764,3770,0505,0174,4007,0621,0400,0000,0000 ; 3460 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMPA ; 3461 ; 3462 ;CASE 7 -- GREATER U 0277, 0764,3770,0505,0174,4007,0421,0400,0000,0000 ; 3463 AC_[BR] TEST, SKIP AD.LE.0, J/JUMPA ; 3464 ; 3465 =0 U 0762, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3466 JUMP-: DONE U 0763, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3467 JUMPA ; 3468 ; 3469 =0 U 0764, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3470 JUMPA: JUMPA U 0765, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3471 DONE ; 3472 ; 3473 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 96 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3474 .DCODE D 0320, 0000,1400,2100 ; 3475 320: I, SJC-, J/DONE D 0321, 0001,1440,2100 ; 3476 I, SJCL, J/JUMP D 0322, 0002,1440,2100 ; 3477 I, SJCE, J/JUMP D 0323, 0003,1440,2100 ; 3478 I, SJCLE, J/JUMP D 0324, 0004,1520,2100 ; 3479 I, SJCA, J/JRST D 0325, 0005,1440,2100 ; 3480 I, SJCGE, J/JUMP D 0326, 0006,1440,2100 ; 3481 I, SJCN, J/JUMP D 0327, 0007,1440,2100 ; 3482 I, SJCG, J/JUMP ; 3483 .UCODE ; 3484 ; 3485 1440: U 1440, 0270,3771,0005,0276,6003,7700,0000,0000,0000 ; 3486 JUMP: [BR]_AC,JUMP DISP ; 3487 ; 3488 .DCODE D 0340, 0000,1611,3000 ; 3489 340: I-PF, SJC-, J/AOJ D 0341, 0001,1611,2100 ; 3490 I, SJCL, J/AOJ D 0342, 0002,1611,2100 ; 3491 I, SJCE, J/AOJ D 0343, 0003,1611,2100 ; 3492 I, SJCLE, J/AOJ D 0344, 0004,1611,2100 ; 3493 I, SJCA, J/AOJ D 0345, 0005,1611,2100 ; 3494 I, SJCGE, J/AOJ D 0346, 0006,1611,2100 ; 3495 I, SJCN, J/AOJ D 0347, 0007,1611,2100 ; 3496 I, SJCG, J/AOJ ; 3497 .UCODE ; 3498 ; 3499 1611: U 1611, 0270,0551,0705,0274,4463,7702,0000,0001,0001 ; 3500 AOJ: [BR]_AC+1, AD FLAGS, 4T, JUMP DISP ; 3501 ; 3502 .DCODE D 0360, 0000,1542,3000 ; 3503 360: I-PF, SJC-, J/SOJ D 0361, 0001,1542,2100 ; 3504 I, SJCL, J/SOJ D 0362, 0002,1542,2100 ; 3505 I, SJCE, J/SOJ D 0363, 0003,1542,2100 ; 3506 I, SJCLE, J/SOJ D 0364, 0004,1542,2100 ; 3507 I, SJCA, J/SOJ D 0365, 0005,1542,2100 ; 3508 I, SJCGE, J/SOJ D 0366, 0006,1542,2100 ; 3509 I, SJCN, J/SOJ D 0367, 0007,1542,2100 ; 3510 I, SJCG, J/SOJ ; 3511 .UCODE ; 3512 ; 3513 1542: U 1542, 0270,2551,0705,0274,4463,7702,4000,0001,0001 ; 3514 SOJ: [BR]_AC-1, AD FLAGS, 4T, JUMP DISP ; 3515 ; 3516 .DCODE D 0252, 0005,1547,2100 ; 3517 252: I, SJCGE, J/AOBJ D 0253, 0001,1547,2100 ; 3518 I, SJCL, J/AOBJ ; 3519 .UCODE ; 3520 ; 3521 1547: ; 3522 AOBJ: [BR]_AC+1000001, ;ADD 1 TO BOTH HALF WORDS ; 3523 INH CRY18, 3T, ;NO CARRY INTO LEFT HALF U 1547, 0270,0551,1505,0274,4403,7701,0000,0000,0000 ; 3524 JUMP DISP ;HANDLE EITHER AOBJP OR AOBJN ; 3525 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 97 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 AC DECODE JUMPS -- JRST, JFCL ; 3526 .TOC "AC DECODE JUMPS -- JRST, JFCL" ; 3527 ; 3528 .DCODE D 0254, 0000,1520,6000 ; 3529 254: I,VMA/0, AC DISP, J/JRST ;DISPATCHES TO 1 OF 16 ; 3530 ; PLACES ON AC BITS D 0255, 0000,1540,2100 ; 3531 I, J/JFCL ; 3532 .UCODE ; 3533 ; 3534 ;JRST DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS ; 3535 ; 3536 =0000 ; 3537 1520: U 1520, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3538 JRST: JUMPA ;(0) JRST 0, U 1521, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3539 1521: JUMPA ;(1) PORTAL IS SAME AS JRST ; 3540 1522: VMA_[PC]-1, START READ, ;(2) JRSTF U 1522, 0150,1113,0701,4170,4007,0700,4200,0004,0012 ; 3541 J/JRSTF U 1523, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3542 1523: UUO ;(3) U 1524, 1010,4443,0000,4174,4007,0340,0000,0000,0000 ; 3543 1524: SKIP KERNEL, J/HALT ;(4) HALT ; 3544 1525: ; 3545 XJRSTF0: VMA_[AR], START READ, ;(5) XJRSTF U 1525, 2511,3443,0300,4174,4007,0700,0200,0004,0012 ; 3546 J/XJRSTF U 1526, 0320,4443,0000,4174,4007,0340,0000,0000,0000 ; 3547 1526: SKIP KERNEL, J/XJEN ;(6) XJEN U 1527, 1024,4443,0000,4174,4007,0340,0000,0000,0000 ; 3548 1527: SKIP KERNEL, J/XPCW ;(7) XPCW ; 3549 1530: VMA_[PC]-1, START READ, ;(10) U 1530, 1014,1113,0701,4170,4007,0040,4200,0004,0012 ; 3550 SKIP IO LEGAL, J/JRST10 U 1531, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3551 1531: UUO ;(11) ; 3552 1532: VMA_[PC]-1, START READ, ;(12) JEN U 1532, 0300,1113,0701,4170,4007,0040,4200,0004,0012 ; 3553 SKIP IO LEGAL, J/JEN U 1533, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3554 1533: UUO ;(13) U 1534, 1034,4443,0000,4174,4007,0340,0000,0000,0000 ; 3555 1534: SKIP KERNEL, J/SFM ;(14) SFM U 1535, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3556 1535: UUO ;(15) U 1536, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3557 1536: UUO ;(16) U 1537, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3558 1537: UUO ;(17) ; 3559 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 98 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 AC DECODE JUMPS -- JRST, JFCL ; 3560 =0* ; 3561 JRSTF: MEM READ, ;WAIT FOR DATA ; 3562 [HR]_MEM, ;STICK IN HR ; 3563 LOAD INST EA, ;LOAD @ AND XR U 0150, 1117,3771,0002,4365,5217,0700,0210,0000,0002 ; 3564 CALL [JRST0] ;COMPUTE EA AGAIN U 0152, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3565 JUMPA ;JUMP ; 3566 U 1117, 0030,4443,0000,2174,4006,6700,0000,0000,0000 ; 3567 JRST0: EA MODE DISP ;WHAT TYPE OF EA? ; 3568 =100* ; 3569 READ XR, ;INDEXED ; 3570 LOAD FLAGS, ;GET FLAGS FROM XR ; 3571 UPDATE USER, ;ALLOW USER TO SET U 0030, 0002,3773,0000,2274,4464,1700,0000,0001,0004 ; 3572 RETURN [2] ;ALL DONE ; 3573 READ [HR], ;PLAIN ; 3574 LOAD FLAGS, ;LOAD FLAGS FROM INST ; 3575 UPDATE USER, ;ALLOW USER TO SET U 0032, 0002,3333,0002,4174,4464,1700,0000,0001,0004 ; 3576 RETURN [2] ;RETURN ; 3577 [HR]_[HR]+XR, ;BOTH ; 3578 LOAD VMA, ;FETCH IND WORD ; 3579 START READ, ;START MEM CYCLE U 0034, 2211,0551,0202,2270,4007,0700,0200,0004,0012 ; 3580 J/JRST1 ;CONTINUE BELOW ; 3581 VMA_[HR], ;INDIRECT ; 3582 START READ, ;FETCH IND WORD ; 3583 PXCT EA, ;SETUP PXCT STUFF U 0036, 2211,3443,0200,4174,4007,0700,0200,0004,0112 ; 3584 J/JRST1 ;CONTINUE BELOW ; 3585 JRST1: MEM READ, ;WAIT FOR DATA ; 3586 [HR]_MEM, ;LOAD THE HR ; 3587 LOAD INST EA, ;LOAD @ AND XR U 2211, 1117,3771,0002,4365,5217,0700,0200,0000,0002 ; 3588 J/JRST0 ;LOOP BACK ; 3589 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 99 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 AC DECODE JUMPS -- JRST, JFCL ; 3590 =0 U 1010, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3591 HALT: UUO ;USER MODE U 1011, 2215,3441,0301,4174,4007,0700,0000,0000,0000 ; 3592 [PC]_[AR] ;EXEC MODE--CHANGE PC U 2215, 0104,4751,1217,4374,4007,0700,0000,0000,0001 ; 3593 HALT [HALT] ;HALT INSTRUCTION ; 3594 ; 3595 =0 U 1014, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3596 JRST10: UUO U 1015, 0303,4443,0000,4174,4007,0700,0000,0000,0000 ; 3597 J/JEN2 ;DISMISS INTERRUPT ; 3598 =0000 U 0300, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3599 JEN: UUO ; FLAGS ; 3600 MEM READ, ; 3601 [HR]_MEM, ;GET INST ; 3602 LOAD INST EA, ;LOAD XR & @ U 0301, 1117,3771,0002,4365,5217,0700,0210,0000,0002 ; 3603 CALL [JRST0] ;COMPUTE FLAGS ; 3604 =0011 U 0303, 2416,4553,1400,4374,4007,0331,0010,0007,7400 ; 3605 JEN2: DISMISS ;DISMISS INTERRUPT U 0307, 3511,3770,1416,4344,4007,0700,0010,0000,0000 ; 3606 =0111 CALL LOAD PI ;RELOAD PI HARDWARE U 0317, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3607 =1111 JUMPA ;GO JUMP ; 3608 = ; 3609 ; 3610 1540: ; 3611 JFCL: JFCL FLAGS, ;ALL DONE IN HARDWARE ; 3612 SKIP JFCL, ;SEE IF SKIPS ; 3613 3T, ;ALLOW TIME U 1540, 0762,4443,0000,4174,4467,0551,0000,0001,0010 ; 3614 J/JUMP- ;JUMP IF WE SHOULD ; 3615 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 100 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 EXTENDED ADDRESSING INSTRUCTIONS ; 3616 .TOC "EXTENDED ADDRESSING INSTRUCTIONS" ; 3617 ; 3618 =0000 U 0320, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3619 XJEN: UUO ;HERE IF USER MODE U 0321, 2416,4553,1400,4374,4007,0331,0010,0007,7400 ; 3620 DISMISS ;CLEAR HIGHEST INTERRUPT U 0325, 0335,3333,0012,4174,4437,0700,0000,0000,0000 ; 3621 =0101 READ [MASK], LOAD PI ;NO MORE INTERRUPTS ; 3622 =1101 ABORT MEM CYCLE, ;AVOID INTERRUPT PAGE FAIL U 0335, 1525,4223,0000,4364,4277,0700,0200,0000,0010 ; 3623 J/XJRSTF0 ;START READING FLAG WORD ; 3624 = ; 3625 U 2511, 2513,3771,0005,4365,5007,0700,0200,0000,0002 ; 3626 XJRSTF: MEM READ, [BR]_MEM ;PUT FLAGS IN BR ; 3627 [AR]_[AR]+1, ;INCREMENT ADDRESS ; 3628 LOAD VMA, ;PUT RESULT IN VMA U 2513, 2567,0111,0703,4174,4007,0700,0200,0004,0012 ; 3629 START READ ;START MEMORY ; 3630 MEM READ, [PC]_MEM, ;PUT DATA IN PC U 2567, 2576,3771,0001,4361,5007,0700,0200,0000,0002 ; 3631 HOLD LEFT ;IGNORE SECTION NUMBER ; 3632 READ [BR], LOAD FLAGS, ;LOAD NEW FLAGS U 2576, 2577,3333,0005,4174,4467,0700,0000,0001,0004 ; 3633 UPDATE USER ;BUT HOLD USER FLAG ; 3634 PISET: [FLG]_[FLG].AND.NOT.#, ;CLEAR PI CYCLE U 2577, 0305,5551,1313,4374,4007,0700,0000,0001,0000 ; 3635 FLG.PI/1, J/PIEXIT ;RELOAD PI HARDWARE ; 3636 ; INCASE THIS IS AN ; 3637 ; INTERRUPT INSTRUCTION ; 3638 ; 3639 =0 U 1024, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3640 XPCW: UUO ;USER MODE U 1025, 0020,4521,1205,4074,4007,0700,0000,0000,0000 ; 3641 [BR]_FLAGS ;PUT FLAGS IN BR ; 3642 =0*0 ; 3643 PIXPCW: VMA_[AR], START WRITE, ;STORE FLAGS U 0020, 3572,3443,0300,4174,4007,0700,0210,0003,0012 ; 3644 CALL [STOBR] ;PUT BR IN MEMORY ; 3645 =1*0 VMA_[AR]+1, LOAD VMA, ; 3646 START WRITE, ;PREPEARE TO STORE PC U 0024, 3573,0111,0703,4170,4007,0700,0210,0003,0012 ; 3647 CALL [STOPC] ;PUT PC IN MEMORY ; 3648 =1*1 [AR]_[AR]+1, ;DO NEW PC PART U 0025, 2511,0111,0703,4174,4007,0700,0200,0004,0002 ; 3649 START READ, J/XJRSTF ; 3650 = ; 3651 ; 3652 =0 U 1034, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3653 SFM: UUO U 1035, 2600,3443,0300,4174,4007,0700,0200,0003,0012 ; 3654 VMA_[AR], START WRITE ;STORE FLAGS U 2600, 0455,4521,1203,4074,4007,0700,0000,0000,0000 ; 3655 [AR]_FLAGS, J/STORE ;STORE AND EXIT ; 3656 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 101 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 XCT ; 3657 .TOC "XCT" ; 3658 ; 3659 .DCODE D 0256, 0000,1541,1100 ; 3660 256: R, J/XCT ;OPERAND FETCHED AS DATA ; 3661 .UCODE ; 3662 ; 3663 1541: U 1541, 1120,4443,0000,4174,4007,0340,0000,0000,0000 ; 3664 XCT: SKIP KERNEL ;SEE IF MAY BE PXCT ; 3665 =0 ; 3666 XCT1A: [HR]_[AR], ;STUFF INTO HR ; 3667 DBUS/DP, ;PLACE ON DBUS FOR IR ; 3668 LOAD INST, ;LOAD IR, AC, XR, ETC. ; 3669 PXCT/E1, ;ALLOW XR TO BE PREVIOUS U 1120, 2601,3441,0302,4174,4617,0700,0000,0000,0100 ; 3670 J/XCT1 ;CONTINUE BELOW ; 3671 ; 3672 READ [HR], ;LOAD PXCT FLAGS ; 3673 LOAD PXCT, ; .. U 1121, 1120,3333,0002,4174,4167,0700,0000,0000,0000 ; 3674 J/XCT1A ;CONTINUE WITH NORMAL FLOW ; 3675 ; 3676 XCT1: WORK[YSAVE]_[HR] CLR LH,;SAVE FOR IO INSTRUCTIONS U 2601, 0363,4713,1202,7174,4007,0700,0400,0000,0422 ; 3677 J/XCT2 ;GO EXECUTE IT ; 3678 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 102 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3679 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ" ; 3680 ; 3681 .DCODE D 0260, 0000,1544,2100 ; 3682 260: I, B/0, J/PUSHJ D 0261, 0002,1543,3100 ; 3683 IR, B/2, J/PUSH D 0262, 0002,1545,2100 ; 3684 I, B/2, J/POP D 0263, 0000,1546,2100 ; 3685 I, J/POPJ ; 3686 .UCODE ; 3687 ; 3688 ;ALL START WITH E IN AR ; 3689 1543: ; 3690 PUSH: MEM READ, ;PUT MEMOP IN BR U 1543, 2602,3771,0005,4365,5007,0700,0200,0000,0002 ; 3691 [BR]_MEM ; .. ; 3692 PUSH1: [ARX]_AC+1000001, ;BUMP BOTH HALVES OF AC ; 3693 INH CRY18, ;NO CARRY ; 3694 LOAD VMA, ;START TO STORE ITEM ; 3695 START WRITE, ;START MEM CYCLE ; 3696 PXCT STACK WORD, ;THIS IS THE STACK DATA WORD ; 3697 3T, ;ALLOW TIME ; 3698 SKIP CRY0, ;GO TO STMAC, SKIP IF PDL OV U 2602, 1122,0551,1504,0274,4407,0311,0200,0003,0712 ; 3699 J/STMAC ; .. ; 3700 ; 3701 1544: ; 3702 PUSHJ: [BR]_PC WITH FLAGS, ;COMPUTE UPDATED FLAGS ; 3703 CLR FPD, ;CLEAR FIRST-PART-DONE U 1544, 2602,3741,0105,4074,4467,0700,0000,0005,0000 ; 3704 J/PUSH1 ; AND JOIN PUSH CODE ; 3705 ; 3706 =0 ; 3707 STMAC: MEM WRITE, ;WAIT FOR MEMORY ; 3708 MEM_[BR], ;STORE BR ON STACK ; 3709 B DISP, ;SEE IF PUSH OR PUSHJ U 1122, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3710 J/JSTAC ;BELOW ; 3711 ;WE MUST STORE THE STACK WORD PRIOR TO SETTING PDL OV IN CASE OF ; 3712 ; PAGE FAIL. ; 3713 MEM WRITE, ;WAIT FOR MEMORY U 1123, 2603,3333,0005,4175,5007,0701,0200,0000,0002 ; 3714 MEM_[BR] ;STORE BR ; 3715 SETPDL: SET PDL OV, ;OVERFLOW ; 3716 B DISP, ;SEE IF PUSH OR PUSHJ U 2603, 0220,4443,0000,4174,4463,7700,0000,0001,2000 ; 3717 J/JSTAC ;BELOW ; 3718 ; 3719 =00 ; 3720 JSTAC: [PC]_[AR], ;PUSHJ--LOAD PC ; 3721 LOAD VMA, ;LOAD ADDRESS U 0220, 0221,3441,0301,4174,4007,0700,0200,0014,0012 ; 3722 FETCH ;GET NEXT INST ; 3723 JSTAC1: AC_[ARX], ;STORE BACK STACK PTR U 0221, 0100,3440,0404,0174,4156,4700,0400,0000,0000 ; 3724 NEXT INST ;DO NEXT INST ; 3725 AC_[ARX], ;UPDATE STACK POINTER U 0222, 1400,3440,0404,0174,4007,0700,0400,0000,0000 ; 3726 J/DONE ;DO NEXT INST ; 3727 = ; 3728 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 103 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3729 1545: ; 3730 POP: [ARX]_AC, ;GET POINTER ; 3731 LOAD VMA, ;ADDRESS OF STACK WORD ; 3732 START READ, 3T, ;START CYCLE U 1545, 2604,3771,0004,0276,6007,0701,0200,0004,0712 ; 3733 PXCT STACK WORD ;FOR PXCT ; 3734 ; 3735 MEM READ, ;LOAD BR (QUIT IF PAGE FAIL) U 2604, 2605,3771,0005,4365,5007,0700,0200,0000,0002 ; 3736 [BR]_MEM ;STACK WORD TO BR ; 3737 ; 3738 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3739 #/777777, ;-1 IN EACH HALF ; 3740 INH CRY18, 3T, ;BUT NO CARRY U 2605, 1124,0551,0404,4374,4407,0311,0000,0077,7777 ; 3741 SKIP CRY0 ;SEE IF OVERFLOW ; 3742 ; 3743 =0 VMA_[AR], ;EFFECTIVE ADDRESS ; 3744 PXCT DATA, ;FOR PXCT ; 3745 START WRITE, ;WHERE TO STORE RESULT U 1124, 2607,3443,0300,4174,4007,0700,0200,0003,0312 ; 3746 J/POPX1 ;OVERFLOW ; 3747 ; 3748 VMA_[AR], ;EFFECTIVE ADDRESS ; 3749 PXCT DATA, ;FOR PXCT U 1125, 2606,3443,0300,4174,4007,0700,0200,0003,0312 ; 3750 START WRITE ;WHERE TO STORE RESULT ; 3751 ; 3752 MEM WRITE, ;WAIT FOR MEM ; 3753 MEM_[BR], ;STORE BR ; 3754 B DISP, ;POP OR POPJ? U 2606, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3755 J/JSTAC ;STORE POINTER ; 3756 ; 3757 ; 3758 POPX1: MEM WRITE, ;WAIT FOR MEMORY ; 3759 MEM_[BR], ;STORE BR U 2607, 2603,3333,0005,4175,5007,0701,0200,0000,0002 ; 3760 J/SETPDL ;GO SET PDL OV ; 3761 ; 3762 1546: ; 3763 POPJ: [ARX]_AC, ;GET POINTER ; 3764 LOAD VMA, ;POINT TO STACK WORD ; 3765 PXCT STACK WORD, 3T, ;FOR PXCT U 1546, 2610,3771,0004,0276,6007,0701,0200,0004,0712 ; 3766 START READ ;START READ ; 3767 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3768 #/777777, ;-1 IN BOTH HALFS ; 3769 INH CRY18, 3T, ;INHIBIT CARRY 18 U 2610, 1126,0551,0404,4374,4407,0311,0000,0077,7777 ; 3770 SKIP CRY0 ;SEE IF OVERFLOW U 1126, 1127,4443,0000,4174,4467,0700,0000,0001,2000 ; 3771 =0 SET PDL OV ;SET OVERFLOW ; 3772 MEM READ, [PC]_MEM, ;STICK DATA IN PC ; 3773 HOLD LEFT, ;NO FLAGS U 1127, 0221,3771,0001,4361,5007,0700,0200,0000,0002 ; 3774 J/JSTAC1 ;STORE POINTER ; 3775 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 104 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 STACK INSTRUCTIONS -- ADJSP ; 3776 .TOC "STACK INSTRUCTIONS -- ADJSP" ; 3777 ; 3778 .DCODE D 0105, 0000,1551,3000 ; 3779 105: I-PF, B/0, J/ADJSP ; 3780 .UCODE ; 3781 ; 3782 1551: ; 3783 ADJSP: [AR]_[AR] SWAP, ;MAKE 2 COPIES OF RH U 1551, 2611,3770,0303,4344,0007,0700,0000,0000,0000 ; 3784 HOLD RIGHT ; 3785 [BR]_AC, ;READ AC, SEE IF MINUS ; 3786 3T, U 2611, 1130,3771,0005,0276,6007,0521,0000,0000,0000 ; 3787 SKIP DP0 ; 3788 =0 AC_[BR]+[AR], ;UPDATE AC ; 3789 INH CRY18, ;NO CARRY ; 3790 SKIP DP0, ;SEE IF STILL OK ; 3791 3T, ;ALLOW TIME U 1130, 1132,0113,0503,0174,4407,0521,0400,0000,0000 ; 3792 J/ADJSP1 ;TEST FOR OFLO ; 3793 AC_[BR]+[AR], ;UPDATE AC ; 3794 INH CRY18, ;NO CARRY ; 3795 SKIP DP0, ;SEE IF STILL MINUS ; 3796 3T, ;ALLOW TIME FOR SKIP U 1131, 1134,0113,0503,0174,4407,0521,0400,0000,0000 ; 3797 J/ADJSP2 ;CONTINUE BELOW ; 3798 ; 3799 =0 U 1132, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3800 ADJSP1: NEXT INST ;NO OVERFLOW ; 3801 SET PDL OV, ;SET PDL OV U 1133, 0603,4443,0000,4174,4467,0700,0000,0001,2000 ; 3802 J/NIDISP ;GO DO NICOND DISP ; 3803 ; 3804 =0 ; 3805 ADJSP2: SET PDL OV, ;SET PDL OV U 1134, 0603,4443,0000,4174,4467,0700,0000,0001,2000 ; 3806 J/NIDISP ;GO DO NICOND DISP U 1135, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3807 NEXT INST ;NO OVERFLOW ; 3808 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 105 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 3809 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA" ; 3810 ; 3811 .DCODE D 0264, 0000,1552,2100 ; 3812 264: I, J/JSR D 0265, 0000,1550,2100 ; 3813 I, J/JSP D 0266, 0000,1554,2100 ; 3814 I, J/JSA D 0267, 0000,1555,2100 ; 3815 I, J/JRA ; 3816 .UCODE ; 3817 ; 3818 1550: U 1550, 2612,3741,0105,4074,4007,0700,0000,0000,0000 ; 3819 JSP: [BR]_PC WITH FLAGS ;GET PC WITH FLAGS ; 3820 CLR FPD, ;CLEAR FIRST-PART-DONE ; 3821 AC_[BR], ;STORE FLAGS U 2612, 0764,3440,0505,0174,4467,0700,0400,0005,0000 ; 3822 J/JUMPA ;GO JUMP ; 3823 ; 3824 1552: ; 3825 JSR: [BR]_PC WITH FLAGS, ;GET PC WITH FLAGS U 1552, 2613,3741,0105,4074,4467,0700,0000,0005,0000 ; 3826 CLR FPD ;CLEAR FIRST-PART-DONE ; 3827 VMA_[AR], ;EFFECTIVE ADDRESS U 2613, 2614,3443,0300,4174,4007,0700,0200,0003,0012 ; 3828 START WRITE ;STORE OLD PC WORD ; 3829 MEM WRITE, ;WAIT FOR MEMORY U 2614, 2615,3333,0005,4175,5007,0701,0200,0000,0002 ; 3830 MEM_[BR] ;STORE ; 3831 [PC]_[AR]+1000001, ;PC _ E+1 ; 3832 HOLD LEFT, ;NO JUNK IN LEFT ; 3833 3T, ;ALLOW TIME FOR DBM U 2615, 1400,0551,0301,4370,4007,0701,0000,0000,0001 ; 3834 J/DONE ;[127] START AT E+1 ; 3835 ;[127] MUST NICOND TO CLEAR TRAP CYCLE ; 3836 ; 3837 ; 3838 ; 3839 1554: ; 3840 JSA: [BR]_[AR], ;SAVE E U 1554, 2616,3441,0305,4174,4007,0700,0200,0003,0002 ; 3841 START WRITE ;START TO STORE U 2616, 0060,3770,0304,4344,4007,0700,0000,0000,0000 ; 3842 [ARX]_[AR] SWAP ;ARX LEFT _ E ; 3843 =0*0 [AR]_AC, ;GET OLD AC U 0060, 2760,3771,0003,0276,6007,0700,0010,0000,0000 ; 3844 CALL [IBPX] ;SAVE AR IN MEMORY ; 3845 =1*0 [ARX]_[PC], ;ARX NOW HAS E,,PC ; 3846 HOLD LEFT, ; .. U 0064, 3574,3441,0104,4170,4007,0700,0010,0000,0000 ; 3847 CALL [AC_ARX] ;GO PUT ARX IN AC ; 3848 =1*1 [PC]_[BR]+1000001, ;NEW PC ; 3849 3T, ;ALLOW TIME ; 3850 HOLD LEFT, ;NO JUNK IN PC LEFT U 0065, 1400,0551,0501,4370,4007,0701,0000,0000,0001 ; 3851 J/DONE ;[127] START AT E+1 ; 3852 ;[127] NICOND MUST CLEAR TRAP CYCLE ; 3853 = ; 3854 ; 3855 1555: U 1555, 2617,3771,0005,0276,6007,0700,0000,0000,0000 ; 3856 JRA: [BR]_AC ;GET AC U 2617, 2620,3770,0505,4344,4007,0700,0000,0000,0000 ; 3857 [BR]_[BR] SWAP ;OLD E IN BR RIGHT ; 3858 VMA_[BR], ;LOAD VMA U 2620, 2621,3443,0500,4174,4007,0700,0200,0004,0012 ; 3859 START READ ;FETCH SAVED AC ; 3860 MEM READ, ;WAIT FOR MEMORY ; 3861 [BR]_MEM, ;LOAD BR WITH SAVE AC U 2621, 0274,3771,0005,4365,5007,0700,0200,0000,0002 ; 3862 J/JMPA ;GO JUMP ; 3863 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 106 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 3864 .TOC "ILLEGAL INSTRUCTIONS AND UUO'S" ; 3865 ;LUUO'S TRAP TO CURRENT CONTEXT ; 3866 ; 3867 .DCODE D 0030, 0000,1557,2100 ; 3868 030: I, B/0, J/LUUO D 0031, 0001,1557,2100 ; 3869 I, B/1, J/LUUO D 0032, 0002,1557,2100 ; 3870 I, B/2, J/LUUO D 0033, 0003,1557,2100 ; 3871 I, B/3, J/LUUO D 0034, 0004,1557,2100 ; 3872 I, B/4, J/LUUO D 0035, 0005,1557,2100 ; 3873 I, B/5, J/LUUO D 0036, 0006,1557,2100 ; 3874 I, B/6, J/LUUO D 0037, 0007,1557,2100 ; 3875 I, B/7, J/LUUO ; 3876 ; 3877 ;MONITOR UUO'S -- TRAP TO EXEC ; 3878 D 0040, 0000,1556,2100 ; 3879 040: I, J/MUUO ;CALL D 0041, 0000,1556,2100 ; 3880 I, J/MUUO ;INIT D 0042, 0000,1556,2100 ; 3881 I, J/MUUO D 0043, 0000,1556,2100 ; 3882 I, J/MUUO D 0044, 0000,1556,2100 ; 3883 I, J/MUUO D 0045, 0000,1556,2100 ; 3884 I, J/MUUO D 0046, 0000,1556,2100 ; 3885 I, J/MUUO D 0047, 0000,1556,2100 ; 3886 I, J/MUUO ;CALLI D 0050, 0000,1556,2100 ; 3887 I, J/MUUO ;OPEN D 0051, 0000,1556,2100 ; 3888 I, J/MUUO ;TTCALL D 0052, 0000,1556,2100 ; 3889 I, J/MUUO D 0053, 0000,1556,2100 ; 3890 I, J/MUUO D 0054, 0000,1556,2100 ; 3891 I, J/MUUO D 0055, 0000,1556,2100 ; 3892 I, J/MUUO ;RENAME D 0056, 0000,1556,2100 ; 3893 I, J/MUUO ;IN D 0057, 0000,1556,2100 ; 3894 I, J/MUUO ;OUT D 0060, 0000,1556,2100 ; 3895 I, J/MUUO ;SETSTS D 0061, 0000,1556,2100 ; 3896 I, J/MUUO ;STATO D 0062, 0000,1556,2100 ; 3897 I, J/MUUO ;GETSTS D 0063, 0000,1556,2100 ; 3898 I, J/MUUO ;STATZ D 0064, 0000,1556,2100 ; 3899 I, J/MUUO ;INBUF D 0065, 0000,1556,2100 ; 3900 I, J/MUUO ;OUTBUF D 0066, 0000,1556,2100 ; 3901 I, J/MUUO ;INPUT D 0067, 0000,1556,2100 ; 3902 I, J/MUUO ;OUTPUT D 0070, 0000,1556,2100 ; 3903 I, J/MUUO ;CLOSE D 0071, 0000,1556,2100 ; 3904 I, J/MUUO ;RELEAS D 0072, 0000,1556,2100 ; 3905 I, J/MUUO ;MTAPE D 0073, 0000,1556,2100 ; 3906 I, J/MUUO ;UGETF D 0074, 0000,1556,2100 ; 3907 I, J/MUUO ;USETI D 0075, 0000,1556,2100 ; 3908 I, J/MUUO ;USETO D 0076, 0000,1556,2100 ; 3909 I, J/MUUO ;LOOKUP D 0077, 0000,1556,2100 ; 3910 I, J/MUUO ;ENTER ; 3911 ; 3912 ;EXPANSION OPCODES ; 3913 D 0100, 0000,1556,2100 ; 3914 100: I, J/UUO ;UJEN D 0101, 0000,1661,2100 ; 3915 I, J/UUO101 D 0102, 0000,1662,2100 ; 3916 I, J/UUO102 ;GFAD D 0103, 0000,1663,2100 ; 3917 I, J/UUO103 ;GFSB ; 3918 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 107 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 3919 ;RESERVED OPCODES ; 3920 D 0000, 0000,1556,2100 ; 3921 000: I, J/UUO D 0104, 0000,1664,2100 ; 3922 104: I, J/JSYS ;JSYS D 0106, 0000,1666,2100 ; 3923 106: I, J/UUO106 ;GFMP D 0107, 0000,1667,2100 ; 3924 I, J/UUO107 ;GFDV D 0130, 0000,1660,2100 ; 3925 130: I, B/0, J/FP-LONG ;UFA D 0131, 0001,1660,2100 ; 3926 I, B/1, J/FP-LONG ;DFN D 0141, 0002,1660,2100 ; 3927 141: I, B/2, J/FP-LONG ;FADL D 0151, 0003,1660,2100 ; 3928 151: I, B/3, J/FP-LONG ;FSBL D 0161, 0004,1660,2100 ; 3929 161: I, B/4, J/FP-LONG ;FMPL D 0171, 0005,1660,2100 ; 3930 171: I, B/5, J/FP-LONG ;FDVL D 0247, 0000,1665,2100 ; 3931 247: I, J/UUO247 ;RESERVED ; 3932 .UCODE ; 3933 ; 3934 1661: U 1661, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3935 UUO101: UUO ; 3936 1662: U 1662, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3937 UUO102: UUO ; 3938 1663: U 1663, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3939 UUO103: UUO ; 3940 1664: U 1664, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3941 JSYS: UUO ; 3942 1666: U 1666, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3943 UUO106: UUO ; 3944 1667: U 1667, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3945 UUO107: UUO ; 3946 1660: U 1660, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3947 FP-LONG:UUO ; 3948 1665: U 1665, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3949 UUO247: UUO ; 3950 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 108 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 3951 ;HERE FOR UUO'S WHICH TRAP TO EXEC ; 3952 1556: ; 3953 UUO: ;THIS TAG IS USED FOR ILLEGAL THINGS WHICH DO UUO TRAPS ; 3954 MUUO: ;THIS TAG IS USED FOR MONITOR CALL INSTRUCTIONS ; 3955 [HR]_[HR].AND.#, ;MASK OUT @ AND XR ; 3956 #/777740, ;MASK U 1556, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 3957 HOLD RIGHT ;KEEP RIGHT ; 3958 ;THE UUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO UUOGO U 2622, 1136,4751,1204,4374,4007,0700,0000,0000,0424 ; 3959 UUOGO: [ARX]_0 XWD [424] ;HERE FROM UUO MACRO ; 3960 ;GET OFFSET TO UPT ; 3961 =0 [ARX]_[ARX]+[UBR], ;ADDRESS OF MUUO WORD U 1136, 3671,0111,1104,4174,4007,0700,0010,0000,0000 ; 3962 CALL [ABORT] ;STOP MEMORY ; 3963 .IF/KIPAGE ;;3964 .IF/KLPAGE ;;3965 READ [EBR], ;IF BOTH POSSIBLE, SEE WHICH IS ENABLED ;;3966 SKIP DP0 ;KL PAGING ?? ;;3967 =0 ; 3968 .ENDIF/KLPAGE ; 3969 READ [ARX], ;GET THE ADDRESS ; 3970 LOAD VMA, ;START WRITE ; 3971 VMA PHYSICAL WRITE, ;ABSOLUTE ADDRESS U 1137, 0310,3333,0004,4174,4007,0700,0200,0021,1016 ; 3972 J/KIMUUO ;GO STORE KI STYLE ; 3973 .ENDIF/KIPAGE ;;3974 .IF/KLPAGE ;;3975 [AR]_[HR] SWAP ;PUT IN RIGHT HALF ;;3976 =0 [AR]_FLAGS, ;FLAGS IN LEFT HALF ;;3977 HOLD RIGHT, ;JUST WANT FLAGS ;;3978 CALL [UUOFLG] ;CLEAR TRAP FLAGS ;;3979 READ [ARX], ;LOOK AT ADDRESS ;;3980 LOAD VMA, ;LOAD THE VMA ;;3981 VMA PHYSICAL WRITE ;STORE FLAG WORD ;;3982 =0* MEM WRITE, ;WAIT FOR MEMORY ;;3983 MEM_[AR], CALL [NEXT] ;STORE ;;3984 MEM WRITE, ;WAIT FOR MEMORY ;;3985 MEM_[PC] ;STORE FULL WORD PC ;;3986 =000 [HR]_0, ;SAVE E ;;3987 HOLD RIGHT, CALL [NEXT] ;BUT CLEAR OPCODE ; 3988 .ENDIF/KLPAGE ; 3989 =010 ; 3990 UUOPCW: MEM WRITE, ;WAIT FOR MEMORY ; 3991 MEM_[HR], ;STORE INSTRUCTION IN KI ; 3992 ; OR FULL WORD E IN KL U 0022, 3444,3333,0002,4175,5007,0701,0210,0000,0002 ; 3993 CALL [GETPCW] ;GET PROCESS-CONTEXT-WORD ; 3994 ; 3995 =011 NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 0023, 3572,0111,0704,4170,4007,0700,0210,0023,1016 ; 3996 CALL [STOBR] ;STORE PROCESS CONTEXT WORD ; 3997 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 109 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 3998 ;NOW WE MUST PICK ONE OF 8 NEW PC WORDS BASED ON PC FLAGS U 0027, 2623,4751,1205,4374,4007,0700,0000,0000,0430 ; 3999 =111 [BR]_0 XWD [430] ;OFFSET INTO UPT ; 4000 = U 2623, 2624,0111,1105,4174,4007,0700,0000,0000,0000 ; 4001 [BR]_[BR]+[UBR] ;ADDRESS OF WORD U 2624, 2625,4521,1203,4074,4007,0700,0000,0000,0000 ; 4002 [AR]_FLAGS ;GET FLAGS ; 4003 TL [AR], ;LOOK AT FLAGS U 2625, 1140,4553,0300,4374,4007,0321,0000,0000,0600 ; 4004 #/600 ;TRAP SET? ; 4005 =0 [BR]_[BR].OR.#, ;YES--POINT TO TRAP CASE ; 4006 #/1, ; .. U 1140, 1141,3551,0505,4370,4007,0700,0000,0000,0001 ; 4007 HOLD LEFT ;LEAVE LEFT ALONE ; 4008 TL [AR], ;USER OR EXEC U 1141, 1142,4553,0300,4374,4007,0321,0000,0001,0000 ; 4009 #/10000 ; .. ; 4010 =0 [BR]_[BR].OR.#, ;USER ; 4011 #/4, ;POINT TO USER WORDS U 1142, 1143,3551,0505,4370,4007,0700,0000,0000,0004 ; 4012 HOLD LEFT ; 4013 READ [BR], ;LOOK AT ADDRESS ; 4014 LOAD VMA, ;PLACE IN VMA ; 4015 VMA PHYSICAL, ;PHYSICAL ADDRESS U 1143, 2626,3333,0005,4174,4007,0700,0200,0024,1016 ; 4016 START READ ;GET NEW PC WORD ; 4017 GOEXEC: MEM READ, ;WAIT FOR DATA U 2626, 2627,3771,0003,4365,5007,0700,0200,0000,0002 ; 4018 [AR]_MEM ;STICK IN AR ; 4019 READ [AR], ;LOOK AT DATA ; 4020 LOAD FLAGS, ;LOAD NEW FLAGS ; 4021 LEAVE USER, ;ALLOW USER TO LOAD ; 4022 LOAD PCU, ;SET PCU FROM USER U 2627, 0764,3333,0003,4174,4467,0700,0000,0000,0404 ; 4023 J/JUMPA ;JUMP ; 4024 ; 4025 .IF/KIPAGE ; 4026 ;HERE FOR TOPS-10 STYLE PAGING ; 4027 ; 4028 =00 ; 4029 KIMUUO: MEM WRITE, ;STORE INSTRUCTION U 0310, 2631,3333,0002,4175,5007,0701,0210,0000,0002 ; 4030 MEM_[HR], CALL [NEXT] ;IN MEMORY ; 4031 =10 [AR]_PC WITH FLAGS, ;GET PC WORD U 0312, 2630,3741,0103,4074,4007,0700,0010,0000,0000 ; 4032 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 4033 =11 MEM WRITE, ;STORE PC WORD ; 4034 MEM_[AR], ; .. U 0313, 0022,3333,0003,4175,5007,0701,0200,0000,0002 ; 4035 J/UUOPCW ;GO STORE PROCESS CONTEXT ; 4036 .ENDIF/KIPAGE ; 4037 ; 4038 UUOFLG: [AR]_[AR].AND.NOT.#, ;CLEAR TRAP FLAGS ; 4039 #/600, HOLD RIGHT, ; IN WORD TO SAVE U 2630, 0001,5551,0303,4374,0004,1700,0000,0000,0600 ; 4040 RETURN [1] ; BACK TO CALLER ; 4041 ; 4042 NEXT: NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 2631, 0002,0111,0704,4170,4004,1700,0200,0023,1016 ; 4043 RETURN [2] ; 4044 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 110 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ILLEGAL INSTRUCTIONS AND UUO'S ; 4045 ;HERE FOR LUUO'S ; 4046 1557: U 1557, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 4047 LUUO: [AR]_0 XWD [40] ;AR GET CONSTANT 40 ; 4048 ;THE LUUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO LUUO1 ; 4049 400: ;FOR SIMULATOR ; 4050 LUUO1: READ [AR], ;LOAD 40 INTO ; 4051 LOAD VMA, ; THE VMA AND U 0400, 2632,3333,0003,4174,4007,0700,0200,0003,0012 ; 4052 START WRITE ; PREPARE TO STORE ; 4053 [HR]_[HR].AND.#, ;CLEAR OUT INDEX AND @ ; 4054 #/777740, ; .. U 2632, 2633,4551,0202,4374,0007,0700,0000,0077,7740 ; 4055 HOLD RIGHT ; 4056 MEM WRITE, ;STORE LUUO IN 40 U 2633, 2634,3333,0002,4175,5007,0701,0200,0000,0002 ; 4057 MEM_[HR] ; 4058 VMA_[AR]+1, ;POINT TO 41 ; 4059 LOAD VMA, ;PUT 41 IN VMA ; 4060 START READ, ;START FETCH U 2634, 2465,0111,0703,4170,4007,0700,0200,0004,0012 ; 4061 J/CONT1 ;GO EXECUTE THE INSTRUCTION ; 4062 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 111 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- ADD, SUB ; 4063 .TOC "ARITHMETIC -- ADD, SUB" ; 4064 ; 4065 .DCODE D 0270, 1015,1560,1100 ; 4066 270: R-PF, AC, J/ADD D 0271, 0015,1560,3000 ; 4067 I-PF, AC, J/ADD D 0272, 0016,1560,1700 ; 4068 RW, M, J/ADD D 0273, 0017,1560,1700 ; 4069 RW, B, J/ADD ; 4070 .UCODE ; 4071 ; 4072 1560: ; 4073 ADD: [AR]_[AR]+AC, ;DO THE ADD U 1560, 1500,0551,0303,0274,4463,7701,0200,0001,0001 ; 4074 AD FLAGS EXIT, 3T ;UPDATE CARRY FLAGS ; 4075 ;STORE ANSWER ; 4076 ;MISSES 3-TICKS BY 3 NS. ; 4077 ; 4078 ; 4079 .DCODE D 0274, 1015,1561,1100 ; 4080 274: R-PF, AC, J/SUB D 0275, 0015,1561,3000 ; 4081 I-PF, AC, J/SUB D 0276, 0016,1561,1700 ; 4082 RW, M, J/SUB D 0277, 0017,1561,1700 ; 4083 RW, B, J/SUB ; 4084 .UCODE ; 4085 ; 4086 1561: ; 4087 SUB: [AR]_AC-[AR], ;DO THE SUBTRACT U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 4088 AD FLAGS EXIT, 3T ;UPDATE PC CARRY FLAGS ; 4089 ;ALL DONE ; 4090 ;MISSES 3-TICKS BY 3 NS. ; 4091 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 112 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DADD, DSUB ; 4092 .TOC "ARITHMETIC -- DADD, DSUB" ; 4093 ; 4094 .DCODE D 0114, 0205,1457,1100 ; 4095 114: DBL R, DAC, J/DADD D 0115, 0205,1615,1100 ; 4096 DBL R, DAC, J/DSUB ; 4097 .UCODE ; 4098 ; 4099 1457: ; 4100 DADD: [ARX]_[ARX]+AC[1], 4T, ;ADD LOW WORDS U 1457, 1144,0551,0404,1274,4007,0562,0000,0000,1441 ; 4101 SKIP CRY1 ;SEE IF CARRY TO HIGH WORD ; 4102 =0 ; 4103 DADD1: [AR]_[AR]+AC, ;ADD HIGH WORDS ; 4104 ADD .25, ;ADD IN ANY CARRY FROM LOW WORD ; 4105 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1144, 2636,0551,0303,0274,4467,0702,4000,0001,0001 ; 4106 J/CPYSGN ;COPY SIGN TO LOW WORD U 1145, 2635,7441,1205,4174,4007,0700,0000,0000,0000 ; 4107 [BR]_.NOT.[MASK] ;SET BITS 35 AND 36 IN ; 4108 [AR]_[AR].OR.[BR], ; AR SO THAT ADD .25 WILL U 2635, 1144,3111,0503,4170,4007,0700,0000,0000,0000 ; 4109 HOLD LEFT, J/DADD1 ; ADD 1. ; 4110 ; 4111 1615: ; 4112 DSUB: [ARX]_AC[1]-[ARX], 4T, ;SUBTRACT LOW WORD U 1615, 1146,2551,0404,1274,4007,0562,4000,0000,1441 ; 4113 SKIP CRY1 ;SEE IF CARRY ; 4114 =0 [AR]_AC-[AR]-.25, ;NO CARRY ; 4115 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1146, 2636,2551,0303,0274,4467,0702,0000,0001,0001 ; 4116 J/CPYSGN ;GO COPY SIGN ; 4117 [AR]_AC-[AR], 4T, ;THERE WAS A CARRY U 1147, 2636,2551,0303,0274,4467,0702,4000,0001,0001 ; 4118 AD FLAGS ;UPDATE CARRY FLAGS ; 4119 U 2636, 1150,3770,0303,4174,0007,0520,0000,0000,0000 ; 4120 CPYSGN: FIX [AR] SIGN, SKIP DP0 U 1150, 1404,4551,0404,4374,0007,0700,0000,0037,7777 ; 4121 =0 [ARX]_[ARX].AND.#, #/377777, HOLD RIGHT, J/MOVE U 1151, 1404,3551,0404,4374,0007,0700,0000,0040,0000 ; 4122 [ARX]_[ARX].OR.#, #/400000, HOLD RIGHT, J/MOVE ; 4123 ; 4124 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 113 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- MUL, IMUL ; 4125 .TOC "ARITHMETIC -- MUL, IMUL" ; 4126 ; 4127 .DCODE D 0220, 1015,1641,1100 ; 4128 220: R-PF, AC, J/IMUL D 0221, 0015,1641,3000 ; 4129 I-PF, AC, J/IMUL D 0222, 0016,1641,1700 ; 4130 RW, M, J/IMUL D 0223, 0017,1641,1700 ; 4131 RW, B, J/IMUL ; 4132 .UCODE ; 4133 1641: U 1641, 2637,3441,0306,0174,4007,0700,0000,0000,0000 ; 4134 IMUL: [BRX]_[AR], AC ;COPY C(E) U 2637, 0031,3772,0000,0275,5007,0700,2000,0071,0043 ; 4135 Q_AC, SC_35. ;GET THE AC ; 4136 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0031, 2663,3446,0606,4174,4007,0700,0010,0000,0000 ; 4137 CALL [MULSUB] ;MULTIPLY U 0035, 1152,3333,0004,4174,4007,0621,0000,0000,0000 ; 4138 READ [ARX], SKIP AD.EQ.0 ;SEE IF FITS U 1152, 2640,3445,0404,4174,4007,0700,0000,0000,0000 ; 4139 =0 [ARX]_[ARX]*2, J/IMUL2 ;NOT ZERO--SHIFT LEFT U 1153, 1500,3221,0003,4174,4003,7700,0200,0003,0001 ; 4140 IMUL1: [AR]_Q, EXIT ;POSITIVE ; 4141 ; 4142 IMUL2: [MASK].AND.NOT.[ARX], ;SEE IF ALL SIGN BITS U 2640, 1154,5113,0412,4174,4007,0621,0000,0000,0000 ; 4143 SKIP AD.EQ.0 ; .. ; 4144 =0 FIX [ARX] SIGN, ;NOT ALL SIGN BITS U 1154, 1156,3770,0404,4174,0007,0520,0000,0000,0000 ; 4145 SKIP DP0, J/IMUL3 ;GIVE + OR - OVERFLOW U 1155, 1500,7001,0003,4174,4003,7700,0200,0003,0001 ; 4146 [AR]_[MAG].EQV.Q, EXIT ;NEGATIVE ; 4147 =0 U 1156, 1404,3221,0003,4174,4467,0700,0000,0041,1000 ; 4148 IMUL3: [AR]_Q, SET AROV, J/MOVE U 1157, 1404,7001,0003,4174,4467,0700,0000,0041,1000 ; 4149 [AR]_[MAG].EQV.Q, SET AROV, J/MOVE ; 4150 ; 4151 ; 4152 .DCODE D 0224, 1005,1571,1100 ; 4153 224: R-PF, DAC, J/MUL D 0225, 0005,1571,3000 ; 4154 I-PF, DAC, J/MUL D 0226, 0016,1571,1700 ; 4155 RW, M, J/MUL D 0227, 0006,1571,1700 ; 4156 RW, DBL B, J/MUL ; 4157 .UCODE ; 4158 ; 4159 ; 4160 1571: U 1571, 2641,3442,0300,0174,4007,0700,0000,0000,0000 ; 4161 MUL: Q_[AR], AC ;COPY C(E) U 2641, 2642,3441,0316,4174,4007,0700,0000,0000,0000 ; 4162 [T0]_[AR] ;SAVE FOR OVERFLOW TEST U 2642, 0171,3771,0006,0276,6007,0700,2000,0071,0043 ; 4163 [BRX]_AC, SC_35. ;GET THE AC ; 4164 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0171, 2663,3446,0606,4174,4007,0700,0010,0000,0000 ; 4165 CALL [MULSUB] ;MULTIPLY U 0175, 2643,3445,0403,4174,4007,0700,0000,0000,0000 ; 4166 [AR]_[ARX]*2 ;SHIFT OVER U 2643, 1160,3770,0303,4174,0007,0520,0000,0000,0000 ; 4167 FIX [AR] SIGN, SKIP DP0 ;SEE IF NEGATIVE ; 4168 =0 [ARX]_[MAG].AND.Q, ;POSITIVE U 1160, 1500,4001,0004,4174,4003,7700,0200,0003,0001 ; 4169 EXIT U 1161, 1162,4113,0616,4174,4007,0520,0000,0000,0000 ; 4170 [T0].AND.[BRX], SKIP DP0 ;TRIED TO SQUARE 1B0? U 1162, 1500,7001,0004,4174,4003,7700,0200,0003,0001 ; 4171 =0 [ARX]_[MAG].EQV.Q, EXIT ;NO ; 4172 [ARX]_[MAG].EQV.Q, ;YES U 1163, 1404,7001,0004,4174,4467,0700,0000,0041,1000 ; 4173 SET AROV, J/MOVE ; 4174 ; 4175 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 114 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DMUL ; 4176 .TOC "ARITHMETIC -- DMUL" ; 4177 ; 4178 .DCODE D 0116, 0205,1566,1100 ; 4179 116: DBL R, DAC, J/DMUL ; 4180 .UCODE ; 4181 ; 4182 .IF/FULL ; 4183 1566: U 1566, 2644,3447,0303,4174,4007,0700,0000,0000,0000 ; 4184 DMUL: [AR]_[AR]*.5 ;SHIFT MEM OPERAND RIGHT U 2644, 2645,4117,0004,4174,4007,0700,0000,0000,0000 ; 4185 [ARX]_([ARX].AND.[MAG])*.5 ; 4186 [BR]_[ARX], ;COPY LOW WORD U 2645, 0120,3441,0405,4174,4007,0350,0000,0000,0000 ; 4187 SKIP FPD ;SEE IF FIRST PART DONE ; 4188 ; ; 4189 ; BRX * BR ==> C(E+1) * C(AC+1) ; 4190 ; ; 4191 =000 [BRX]_(AC[1].AND.[MAG])*.5, 3T, ;GET LOW AC U 0120, 2657,4557,0006,1274,4007,0701,0010,0000,1441 ; 4192 CALL [DMULGO] ;START MULTIPLY ; 4193 [ARX]_(AC[2].AND.[MAG])*.5, 3T, ;FIRST PART DONE U 0121, 2647,4557,0004,1274,4007,0701,0000,0000,1442 ; 4194 J/DMUL1 ;GO DO SECOND PART U 0124, 0543,3223,0000,1174,4007,0700,0400,0000,1443 ; 4195 =100 AC[3]_Q ;SALT AWAY 1 WORD OF PRODUCT ; 4196 = ; 4197 ; ; 4198 ; BRX * Q ==> C(E) * C(AC+1) ; 4199 ; ; 4200 =0** Q_[AR], SC_35., ;GO MULT NEXT HUNK U 0543, 0623,3442,0300,4174,4007,0700,2010,0071,0043 ; 4201 CALL [QMULT] ; .. U 0547, 2646,3441,0416,4174,4007,0700,0000,0000,0000 ; 4202 [T0]_[ARX] ;SAVE PRODUCT ; 4203 AC[2]_Q, [ARX]_Q*.5, ;SAVE PRODUCT U 2646, 0130,3227,0004,1174,4007,0700,0400,0000,1442 ; 4204 J/DMUL2 ;GO DO HIGH HALF U 2647, 0130,3777,0016,1276,6007,0701,0000,0000,1441 ; 4205 DMUL1: [T0]_AC[1]*.5 ;RESTORE T0 ; 4206 =0*0 ; 4207 ; ; 4208 ; BRX * BR ==> C(AC) * C(E+1) ; 4209 ; ; 4210 DMUL2: [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF U 0130, 2660,3777,0006,0274,4007,0701,0010,0000,0000 ; 4211 CALL [DBLMUL] ; GO DO IT ; 4212 AC[1]_[T0]*2, 3T, ;INTERRUPT, SAVE T0 U 0131, 2662,0113,1616,1174,4007,0701,0400,0000,1441 ; 4213 J/DMLINT ;SET FPD AND INTERRUPT U 0134, 2650,3223,0000,1174,4007,0700,0400,0000,1442 ; 4214 AC[2]_Q ;SAVE PRODUCT ; 4215 = U 2650, 0563,0111,1604,4174,4007,0700,0000,0000,0000 ; 4216 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 4217 ; ; 4218 ; BRX * Q ==> C(AC) * C(E) ; 4219 ; ; 4220 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 0563, 0623,3442,0300,4174,4007,0700,2010,0071,0043 ; 4221 CALL [QMULT] ; GO DO IT ; 4222 [ARX]_[ARX]*2, ;SHIFT BACK U 0567, 2651,3445,0404,4174,4467,0700,0000,0005,0000 ; 4223 CLR FPD ;CLEAR FPD ; 4224 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 115 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DMUL U 2651, 1164,3770,0404,0174,4007,0520,0400,0000,0000 ; 4225 AC_[ARX] TEST, SKIP DP0 ;PUT BACK INTO AC U 1164, 2656,3223,0000,1174,4007,0700,0400,0000,1441 ; 4226 =0 AC[1]_Q, J/DMTRAP ;POSITIVE U 1165, 2652,7003,0000,1174,4007,0700,0400,0000,1441 ; 4227 AC[1]_[MAG].EQV.Q ;NEGATIVE U 2652, 2653,3772,0000,1275,5007,0701,0000,0000,1442 ; 4228 Q_AC[2] U 2653, 2654,7003,0000,1174,4007,0700,0400,0000,1442 ; 4229 AC[2]_[MAG].EQV.Q U 2654, 2655,3772,0000,1275,5007,0701,0000,0000,1443 ; 4230 Q_AC[3] U 2655, 2656,7003,0000,1174,4007,0700,0400,0000,1443 ; 4231 AC[3]_[MAG].EQV.Q ; 4232 DMTRAP: [AR]_PC WITH FLAGS, ;LOOK AT FLAGS U 2656, 1166,3741,0103,4074,4007,0520,0000,0000,0000 ; 4233 SKIP DP0 ;SEE IF AROV SET? U 1166, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4234 =0 DONE ;NO--ALL DONE U 1167, 1400,4443,0000,4174,4467,0700,0000,0041,1000 ; 4235 SET AROV, J/DONE ;YES--FORCE TRAP 1 ALSO ; 4236 ; 4237 ; 4238 ;WAYS TO CALL MULTIPLY U 2657, 2660,4221,0004,4174,4007,0700,0000,0000,0000 ; 4239 DMULGO: [ARX]_0 ;CLEAR ARX U 2660, 2661,3442,0500,4174,4007,0700,2000,0071,0043 ; 4240 DBLMUL: Q_[BR], SC_35. U 2661, 0623,3447,0606,4174,4007,0700,0000,0000,0000 ; 4241 [BRX]_[BRX]*.5 ; 4242 =0** ; 4243 QMULT: Q_Q*.5, U 0623, 2665,3446,1200,4174,4007,0700,0010,0000,0000 ; 4244 CALL [MULTIPLY] ; 4245 [ARX]+[ARX], AD FLAGS, ;TEST FOR OVERFLOW U 0627, 0004,0113,0404,4174,4464,1701,0000,0001,0001 ; 4246 3T, RETURN [4] ;AND RETURN ; 4247 U 2662, 2565,4443,0000,4174,4467,0700,0000,0003,0000 ; 4248 DMLINT: SET FPD, J/FIXPC ;SET FPD, BACKUP PC ; 4249 ; INTERRUPT ;;4250 .IFNOT/FULL ;;4251 1566: ;;4252 DMUL: UUO ; 4253 .ENDIF/FULL ; 4254 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 116 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DMUL ; 4255 ;MULTIPLY SUBROUTINE ; 4256 ;ENTERED WITH: ; 4257 ; MULTIPLIER IN Q ; 4258 ; MULTIPLICAND IN BRX ; 4259 ;RETURNS 4 WITH PRODUCT IN ARX!Q ; 4260 ; 4261 MUL STEP "A/BRX,B/ARX,DEST/Q_Q*.5,ASHC,STEP SC,MUL DISP" ; 4262 MUL FINAL "A/BRX,B/ARX,DEST/Q_Q*2" ; 4263 U 2663, 2664,3446,0606,4174,4007,0700,0000,0000,0000 ; 4264 MULSUB: [BRX]_[BRX]*.5 LONG ; 4265 MULSB1: [ARX]_0*.5 LONG, ;CLEAR ARX AND SHIFT Q ; 4266 STEP SC, ;COUNT FIRST STEP U 2664, 0122,4226,0004,4174,4007,0630,2000,0060,0000 ; 4267 J/MUL+ ;ENTER LOOP ; 4268 ; 4269 ;MULTIPLY SUBROUTINE ; 4270 ;ENTERED WITH: ; 4271 ; MULTIPLIER IN Q ; 4272 ; MULTIPLICAND IN BRX ; 4273 ; PARTIAL PRODUCT IN ARX ; 4274 ;RETURNS 4 WITH Q*BRX+ARX IN ARX!Q ; 4275 ; 4276 MULTIPLY: ; 4277 Q_Q*.5, ;SHIFT Q ; 4278 STEP SC, ;COUNT FIRST STEP U 2665, 0122,3446,1200,4174,4007,0630,2000,0060,0000 ; 4279 J/MUL+ ;ENTER LOOP ; 4280 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 117 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DMUL ; 4281 ;HERE FOR POSITIVE STEPS ; 4282 =010 ;0 IN A POSITIVE STEP ; 4283 MUL+: AD/B, ;DON'T ADD ; 4284 MUL STEP, ;SHIFT U 0122, 0122,3336,0604,4174,4046,2630,2000,0060,0000 ; 4285 J/MUL+ ;KEEP POSITIVE ; 4286 =011 ;DONE ; 4287 AD/B, ;DON'T ADD ; 4288 MUL FINAL, ;SHIFT U 0123, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4289 RETURN [4] ;SHIFT Q AND RETURN ; 4290 =110 ;1 IN A POSITIVE STEP ; 4291 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4292 MUL STEP, ;SHIFT AND COUNT U 0126, 0142,1116,0604,4174,4046,2630,6000,0060,0000 ; 4293 J/MUL- ;NEGATIVE NOW ; 4294 =111 ;DONE ; 4295 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4296 MUL FINAL, ;SHIFT U 0127, 0004,1114,0604,4174,4004,1700,4000,0000,0000 ; 4297 RETURN [4] ; AND RETURN ; 4298 ; 4299 ;HERE FOR NEGATIVE STEPS ; 4300 =010 ;0 IN NEGATIVE STEP ; 4301 MUL-: AD/A+B, ;ADD ; 4302 MUL STEP, ;SHIFT AND COUNT U 0142, 0122,0116,0604,4174,4046,2630,2000,0060,0000 ; 4303 J/MUL+ ;POSITIVE NOW ; 4304 =011 ;DONE ; 4305 AD/A+B, ;ADD ; 4306 MUL FINAL, ;SHIFT U 0143, 0004,0114,0604,4174,4004,1700,0000,0000,0000 ; 4307 RETURN [4] ;FIX Q AND RETURN ; 4308 =110 ;1 IN NEGATIVE STEP ; 4309 AD/B, ;DON'T ADD ; 4310 MUL STEP, ;SHIFT AND COUNT U 0146, 0142,3336,0604,4174,4046,2630,2000,0060,0000 ; 4311 J/MUL- ;STILL NEGATIVE ; 4312 =111 ;DONE ; 4313 AD/B, ;DON'T ADD ; 4314 MUL FINAL, ;SHIFT U 0147, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4315 RETURN [4] ;FIX Q AND RETURN ; 4316 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 118 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIV, IDIV ; 4317 .TOC "ARITHMETIC -- DIV, IDIV" ; 4318 ; 4319 .DCODE D 0230, 1005,1600,1100 ; 4320 230: R-PF, DAC, J/IDIV D 0231, 0005,1600,3000 ; 4321 I-PF, DAC, J/IDIV D 0232, 0016,1600,1700 ; 4322 RW, M, J/IDIV D 0233, 0006,1600,1700 ; 4323 RW, DBL B, J/IDIV ; 4324 D 0234, 1005,1601,1100 ; 4325 234: R-PF, DAC, J/DIV D 0235, 0005,1601,3000 ; 4326 I-PF, DAC, J/DIV D 0236, 0016,1601,1700 ; 4327 RW, M, J/DIV D 0237, 0006,1601,1700 ; 4328 RW, DBL B, J/DIV ; 4329 .UCODE ; 4330 ; 4331 1600: U 1600, 2666,3441,0305,0174,4007,0700,0000,0000,0000 ; 4332 IDIV: [BR]_[AR], AC ;COPY MEMORY OPERAND ; 4333 Q_AC, ;LOAD Q U 2666, 1170,3772,0000,0275,5007,0520,0000,0000,0000 ; 4334 SKIP DP0 ;SEE IF MINUS ; 4335 =0 [AR]_0, ;EXTEND + SIGN U 1170, 0161,4221,0003,4174,4007,0700,0000,0000,0000 ; 4336 J/DIV1 ;NOW SAME AS DIV ; 4337 [AR]_-1, ;EXTEND - SIGN U 1171, 0161,2441,0703,4174,4007,0700,4000,0000,0000 ; 4338 J/DIV1 ;SAME AS DIV ; 4339 ; 4340 1601: U 1601, 2667,3441,0305,4174,4007,0700,0000,0000,0000 ; 4341 DIV: [BR]_[AR] ;COPY MEM OPERAND U 2667, 2670,3771,0003,0276,6007,0700,0000,0000,0000 ; 4342 [AR]_AC ;GET AC U 2670, 2671,3772,0000,1275,5007,0701,0000,0000,1441 ; 4343 Q_AC[1] ;AND AC+1 ; 4344 READ [AR], ;TEST FOR NO DIVIDE U 2671, 0160,3333,0003,4174,4007,0621,0000,0000,0000 ; 4345 SKIP AD.EQ.0 ; 4346 =000 .NOT.[AR], ;SEE IF ALL SIGN BITS IN AR ; 4347 SKIP AD.EQ.0, ; .. U 0160, 1172,7443,0300,4174,4007,0621,0000,0000,0000 ; 4348 J/DIVA ;CONTINUE BELOW ; 4349 =001 ; 4350 DIV1: READ [BR], ;SEE IF DIVIDE BY U 0161, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4351 SKIP AD.EQ.0 ; ZERO ; 4352 =100 ; 4353 DIV2: SC_34., ;NOT ZERO--LOAD STEP COUNT U 0164, 0370,4443,0000,4174,4007,0700,2010,0071,0042 ; 4354 CALL [DIVSUB] ;DIVIDE U 0165, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4355 =101 NO DIVIDE ;DIVIDE BY ZERO ; 4356 =110 [ARX]_[AR], ;COPY REMAINDER U 0166, 1153,3441,0304,4174,4007,0700,0000,0000,0000 ; 4357 J/IMUL1 ;STORE ANSWER ; 4358 = ; 4359 ; 4360 ; 4361 =0 ; 4362 DIVA: [BRX]_[AR], ;HIGH WORD IS NOT SIGNS U 1172, 2672,3441,0306,4174,4007,0700,0000,0000,0000 ; 4363 J/DIVB ;GO TEST FOR NO DIVIDE ; 4364 READ [BR], ;ALL SIGN BITS ; 4365 SKIP AD.EQ.0, ;SEE IF ZERO DIVIDE U 1173, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4366 J/DIV2 ;BACK TO MAIN FLOW ; 4367 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 119 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIV, IDIV U 2672, 2673,3221,0004,4174,4007,0700,0000,0000,0000 ; 4368 DIVB: [ARX]_Q ;MAKE ABS VALUES ; 4369 READ [AR], ;SEE IF + U 2673, 0330,3333,0003,4174,4007,0520,0000,0000,0000 ; 4370 SKIP DP0 ; 4371 =00 READ [BR], ;SEE IF + ; 4372 SKIP DP0, U 0330, 1174,3333,0005,4174,4007,0520,0000,0000,0000 ; 4373 J/DIVC ;CONTINUE BELOW ; 4374 CLEAR [ARX]0, ;FLUSH DUPLICATE SIGN U 0331, 2754,4551,0404,4374,0007,0700,0010,0037,7777 ; 4375 CALL [DBLNG1] ;NEGATE AR!ARX ; 4376 =11 READ [BR], ;SEE IF TOO BIG ; 4377 SKIP DP0, U 0333, 1174,3333,0005,4174,4007,0520,0000,0000,0000 ; 4378 J/DIVC ; 4379 = ; 4380 =0 ; 4381 DIVC: [AR]-[BR], ;COMPUTE DIFFERENCE ; 4382 SKIP DP0, ;SEE IF IT GOES ; 4383 3T, ;ALLOW TIME U 1174, 1176,2113,0305,4174,4007,0521,4000,0000,0000 ; 4384 J/NODIV ;TEST ; 4385 [AR]+[BR], ; 4386 SKIP DP0, ;SAME TEST FOR -VE BR ; 4387 3T, U 1175, 1176,0113,0305,4174,4007,0521,0000,0000,0000 ; 4388 J/NODIV ; 4389 =0 U 1176, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4390 NODIV: NO DIVIDE ;TOO BIG ; 4391 [AR]_[BRX], ;FITS U 1177, 0161,3441,0603,4174,4007,0700,0000,0000,0000 ; 4392 J/DIV1 ;GO BACK AND DIVIDE ; 4393 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 120 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DDIV ; 4394 .TOC "ARITHMETIC -- DDIV" ; 4395 ; 4396 .DCODE D 0117, 0205,1627,1100 ; 4397 117: DBL R, DAC, J/DDIV ; 4398 .UCODE ; 4399 ; 4400 .IF/FULL ; 4401 1627: U 1627, 2674,4112,0400,4174,4007,0700,0000,0000,0000 ; 4402 DDIV: Q_[ARX].AND.[MAG] ;COPY LOW WORD ; 4403 [BR]_[AR]*.5, ;COPY MEMORY OPERAND U 2674, 1200,3447,0305,4174,4007,0421,0000,0000,0000 ; 4404 SKIP AD.LE.0 ;SEE IF POSITIVE ; 4405 =0 [BR]_[BR]*.5 LONG, ;POSITIVE U 1200, 1204,3446,0505,4174,4007,0700,0000,0000,0000 ; 4406 J/DDIV1 ;CONTINUE BELOW ; 4407 [BR]_[BR]*.5 LONG, ;NEGATIVE OR ZERO U 1201, 1202,3446,0505,4174,4007,0520,0000,0000,0000 ; 4408 SKIP DP0 ;SEE WHICH? ; 4409 =0 [MAG].AND.Q, ;SEE IF ALL ZERO U 1202, 1204,4003,0000,4174,4007,0621,0000,0000,0000 ; 4410 SKIP AD.EQ.0, J/DDIV1 ;CONTINUE BELOW U 1203, 2675,4751,1217,4374,4007,0700,0000,0000,0005 ; 4411 [T1]_0 XWD [5] ;NEGATE MEM OP ; 4412 Q_Q.OR.#, #/600000, ;SIGN EXTEND THE LOW U 2675, 2676,3662,0000,4374,0007,0700,0000,0060,0000 ; 4413 HOLD RIGHT ; WORD U 2676, 2677,2222,0000,4174,4007,0700,4000,0000,0000 ; 4414 Q_-Q ;MAKE Q POSITIVE ; 4415 [BR]_(-[BR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 4416 ASHC, MULTI PREC/1, ;USE CARRY FROM LOW WORD U 2677, 2701,2446,0505,4174,4047,0700,0040,0000,0000 ; 4417 J/DDIV3 ;CONTINUE BELOW ; 4418 =0 ; 4419 DDIV1: [BR]_[BR]*.5 LONG, ;SHIFT OVER 1 PLACE U 1204, 2700,3446,0505,4174,4047,0700,0000,0000,0000 ; 4420 ASHC, J/DDIV2 ;CONTINUE BELOW U 1205, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4421 NO DIVIDE ;DIVIDE BY ZERO U 2700, 2701,4751,1217,4374,4007,0700,0000,0000,0004 ; 4422 DDIV2: [T1]_0 XWD [4] ;MEM OPERAND IS POSITIVE U 2701, 2702,3221,0006,0174,4007,0700,0000,0000,0000 ; 4423 DDIV3: [BRX]_Q, AC ;COPY Q ; 4424 U 2702, 0054,3777,0003,0274,4007,0520,0000,0000,0000 ; 4425 [AR]_AC*.5, 2T, SKIP DP0 ;GET AC--SEE IF NEGATIVE ; 4426 =0*1*0 ; 4427 DDIV3A: Q_AC[1].AND.[MAG], ;POSITIVE (OR ZERO) U 0054, 1206,4552,0000,1275,5007,0701,0000,0000,1441 ; 4428 J/DDIV4 ;CONTINUE BELOW ; 4429 [T1]_[T1].XOR.#, ;NEGATIVE U 0055, 2743,6551,1717,4374,4007,0700,0010,0000,0007 ; 4430 #/7, CALL [QDNEG] ;UPDATE SAVED FLAGS ; 4431 =1*1*1 [AR]_[AR]*.5, ;SHIFT AR OVER U 0075, 0054,3447,0303,4174,4007,0700,0000,0000,0000 ; 4432 J/DDIV3A ;GO BACK AND LOAD Q ; 4433 = ; 4434 =0 ; 4435 DDIV4: [AR]_[AR]*.5 LONG, ;SHIFT AR OVER U 1206, 2725,3446,0303,4174,4007,0700,0010,0000,0000 ; 4436 CALL [DDIVS] ;SHIFT 1 MORE PLACE U 1207, 1210,2113,0305,4174,4007,0521,4000,0000,0000 ; 4437 [AR]-[BR], 3T, SKIP DP0 ;TEST MAGNITUDE ; 4438 =0 [AR]-[BR], 2T, U 1210, 1212,2113,0305,4174,4007,0620,4000,0000,0000 ; 4439 SKIP AD.EQ.0, J/DDIV5 U 1211, 2703,3221,0004,4174,4007,0700,0000,0000,0000 ; 4440 [ARX]_Q, J/DDIV5A ;ANSWER FITS ; 4441 ; 4442 =0 U 1212, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4443 DDIV5: READ [T1], 3T, DISP/DP, J/NODDIV U 1213, 1214,1003,0600,4174,4007,0521,4000,0000,0000 ; 4444 Q-[BRX], 3T, SKIP DP0 U 1214, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4445 =0 READ [T1], 3T, DISP/DP, J/NODDIV U 1215, 2703,3221,0004,4174,4007,0700,0000,0000,0000 ; 4446 [ARX]_Q ;COPY LOW WORD ; 4447 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 121 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DDIV ; 4448 ;HERE WITH EVERYTHING SETUP AND READY TO GO U 2703, 0314,4552,0000,1275,5007,0701,0000,0000,1442 ; 4449 DDIV5A: Q_AC[2].AND.[MAG] U 0314, 1240,3446,1200,4174,4007,0700,2010,0071,0042 ; 4450 =0* Q_Q*.5, SC_34., CALL [DBLDIV] U 0316, 2704,3224,0016,4174,4007,0700,0000,0000,0000 ; 4451 [T0]_Q*2 LONG U 2704, 2705,0002,1600,4174,4007,0700,0000,0000,0000 ; 4452 Q_Q+[T0] U 2705, 1216,4003,0000,1174,4007,0700,0400,0000,1440 ; 4453 AC[0]_Q.AND.[MAG] ;STORE ANSWER U 1216, 2725,3442,0400,4174,4007,0700,0010,0000,0000 ; 4454 =0 Q_[ARX], CALL [DDIVS] ;SHIFT OUT EXTRA ZERO BIT U 1217, 2706,3221,0004,4174,4007,0700,0000,0000,0000 ; 4455 [ARX]_Q ; .. U 2706, 0354,4552,0000,1275,5007,0701,0000,0000,1443 ; 4456 Q_AC[3].AND.[MAG] ; 4457 =0* [T0]_[AR]*.5 LONG, ;SHIFT Q, PUT AR ON DP ; 4458 SC_34., ;LOAD SHIFT COUNT ; 4459 SKIP DP0, ;LOOK AT AR SIGN U 0354, 1240,3446,0316,4174,4007,0520,2010,0071,0042 ; 4460 CALL [DBLDIV] ;GO DIVIDE U 0356, 2707,3224,0016,4174,4007,0700,0000,0000,0000 ; 4461 [T0]_Q*2 LONG U 2707, 0056,3333,0017,4174,4003,5701,0000,0000,0000 ; 4462 READ [T1], 3T, DISP/DP ;WHAT SIGN IS QUO ; 4463 =1110 [T0]_[T0]+Q, ;POSITIVE QUO U 0056, 2712,0001,1616,4174,4007,0700,0000,0000,0000 ; 4464 J/DDIV5B ;CONTINUE BELOW U 0057, 2710,2225,0016,4174,4007,0700,4000,0000,0000 ; 4465 [T0]_-Q*2 ;NEGATIVE QUO ; 4466 AD/-D-.25, DBUS/RAM, 3T, ; 4467 RAMADR/AC#, DEST/Q_AD, U 2710, 2711,1772,0000,0274,4007,0701,0040,0000,0000 ; 4468 MULTI PREC/1 U 2711, 1220,3223,0000,0174,4007,0621,0400,0000,0000 ; 4469 AC_Q, SKIP AD.EQ.0 U 1220, 2713,3440,1616,1174,4007,0700,0400,0000,1441 ; 4470 =0 AC[1]_[T0], J/DDIV5C U 1221, 2715,4223,0000,1174,4007,0700,0400,0000,1441 ; 4471 AC[1]_0, J/DDIV6 ; 4472 U 2712, 2715,4113,1600,1174,4007,0700,0400,0000,1441 ; 4473 DDIV5B: AC[1]_[T0].AND.[MAG], J/DDIV6 ;STORE LOW WORD IN + CASE ; 4474 U 2713, 2714,3551,1616,4374,0007,0700,0000,0040,0000 ; 4475 DDIV5C: [T0]_[T0].OR.#, #/400000, HOLD RIGHT U 2714, 2715,3440,1616,1174,4007,0700,0400,0000,1441 ; 4476 AC[1]_[T0] ; 4477 U 2715, 1222,3333,0003,4174,4007,0520,0000,0000,0000 ; 4478 DDIV6: READ [AR], SKIP DP0 ;LOOK AT AR SIGN ; 4479 =0 U 1222, 2721,3442,0400,4174,4007,0700,0000,0000,0000 ; 4480 DDIV7: Q_[ARX], J/DDIV8 U 1223, 2716,0112,0406,4174,4007,0700,0000,0000,0000 ; 4481 Q_[ARX]+[BRX] ; 4482 [AR]_[AR]+[BR], U 2716, 2717,0111,0503,4174,4007,0700,0040,0000,0000 ; 4483 MULTI PREC/1 U 2717, 2720,0002,0600,4174,4007,0700,0000,0000,0000 ; 4484 Q_Q+[BRX] ; 4485 [AR]_[AR]+[BR], U 2720, 2721,0111,0503,4174,4007,0700,0040,0000,0000 ; 4486 MULTI PREC/1 U 2721, 0355,3333,0017,4174,4003,5701,0000,0000,0000 ; 4487 DDIV8: READ [T1], 3T, DISP/DP ; 4488 =1101 ; 4489 DDIV8A: [AR]_[AR]*2 LONG, ASHC, ;POSITIVE REMAINDER U 0355, 2723,3444,0303,4174,4047,0700,0000,0000,0000 ; 4490 J/DDIV9 ;CONTINUE BELOW U 0357, 2722,2222,0000,4174,4007,0700,4000,0000,0000 ; 4491 Q_-Q ;NEGATE REMAINDER IN AR!Q ; 4492 [AR]_(-[AR]-.25)*2 LONG, U 2722, 2723,2444,0303,4174,4047,0700,0040,0000,0000 ; 4493 MULTI PREC/1, ASHC ; 4494 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 122 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DDIV ; 4495 DDIV9: AC[2]_[AR]+[AR], 3T, U 2723, 1224,0113,0303,1174,4007,0521,0400,0000,1442 ; 4496 SKIP DP0 ; 4497 =0 AC[3]_Q.AND.[MAG], U 1224, 0100,4003,0000,1174,4156,4700,0400,0000,1443 ; 4498 NEXT INST U 1225, 2724,4002,0000,1174,4007,0700,0000,0000,1443 ; 4499 Q_Q.AND.[MAG], AC[3] ; 4500 AC[3]_[MAG].EQV.Q, U 2724, 0100,7003,0000,1174,4156,4700,0400,0000,1443 ; 4501 NEXT INST ; 4502 ; 4503 ; 4504 ;HERE IF WE WANT TO SET NO DIVIDE ; 4505 =11011 U 0033, 2743,4443,0000,4174,4007,0700,0010,0000,0000 ; 4506 NODDIV: CALL [QDNEG] ;FIXUP AC TO AC+3 U 0037, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4507 NO DIVIDE ;ABORT DIVIDE ; 4508 U 2725, 0001,3446,0303,4174,4044,1700,0000,0000,0000 ; 4509 DDIVS: [AR]_[AR]*.5 LONG, ASHC, RETURN [1] ;;4510 .IFNOT/FULL ;;4511 1627: ;;4512 DDIV: UUO ; 4513 .ENDIF/FULL ; 4514 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 123 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIVIDE SUBROUTINE ; 4515 .TOC "ARITHMETIC -- DIVIDE SUBROUTINE" ; 4516 ; 4517 ;HERE IS THE SUBROUTINE TO DO DIVIDE ; 4518 ;ENTER WITH: ; 4519 ; AR!Q = D'END ; 4520 ; BR = D'SOR ; 4521 ;RETURN 2 WITH: ; 4522 ; AR = REMAINDER ; 4523 ; Q = QUOTIENT ; 4524 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4525 ; ; 4526 =1000 ; 4527 DIVSUB: Q_Q.AND.#, ;CLEAR SIGN BIT IN ; 4528 #/377777, ;MASK ; 4529 HOLD RIGHT, ;JUST CLEAR BIT 0 U 0370, 2726,4662,0000,4374,0007,0700,0010,0037,7777 ; 4530 CALL [DIVSGN] ;DO REAL DIVIDE U 0374, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 4531 =1100 RETURN [2] ;ALL POSITIVE U 0375, 0002,2222,0000,4174,4004,1700,4000,0000,0000 ; 4532 =1101 Q_-Q, RETURN [2] ;-QUO +REM U 0376, 0377,2222,0000,4174,4007,0700,4000,0000,0000 ; 4533 =1110 Q_-Q ;ALL NEGATIVE U 0377, 0002,2441,0303,4174,4004,1700,4000,0000,0000 ; 4534 =1111 [AR]_-[AR], RETURN [2] ;NEGATIVE REMAINDER ; 4535 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 124 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DIVIDE SUBROUTINE ; 4536 ;HERE IS THE INNER DIVIDE SUBROUTINE ; 4537 ;SAME SETUP AS DIVSUB ; 4538 ;RETURNS WITH AR AND Q POSITIVE AND ; 4539 ; 14 IF ALL POSITIVE ; 4540 ; 15 IF -QUO ; 4541 ; 16 IF ALL NEGATIVE ; 4542 ; 17 IF NEGATIVE REMAINDER ; 4543 ; 4544 BASIC DIV STEP "DEST/Q_Q*2, DIV, A/BR, B/AR, STEP SC" ; 4545 DIV STEP "BASIC DIV STEP, AD/A+B, DIVIDE/1" ; 4546 FIRST DIV STEP "BASIC DIV STEP, AD/B-A-.25, ADD .25" ; 4547 U 2726, 1226,3333,0003,4174,4007,0520,0000,0000,0000 ; 4548 DIVSGN: READ [AR], SKIP DP0 U 1226, 2730,4221,0004,4174,4007,0700,0000,0000,0000 ; 4549 =0 [ARX]_0, J/DVSUB2 ;REMAINDER IS POSITIVE U 1227, 1230,2222,0000,4174,4007,0621,4000,0000,0000 ; 4550 Q_-Q, SKIP AD.EQ.0 ;COMPLEMENT LOW WORD U 1230, 2727,7441,0303,4174,4007,0700,0000,0000,0000 ; 4551 =0 [AR]_.NOT.[AR], J/DVSUB1 ;COMPLEMENT HI WORD U 1231, 2727,2441,0303,4174,4007,0700,4000,0000,0000 ; 4552 [AR]_-[AR] ;TWO'S COMPLEMENT HI WORD SINCE ; 4553 ; LOW WORD WAS ZERO U 2727, 2730,3771,0004,4374,4007,0700,0000,0010,0000 ; 4554 DVSUB1: [ARX]_#, #/100000 ;REMAINDER IS NEGATIVE U 2730, 1232,3333,0005,4174,4007,0520,0000,0000,0000 ; 4555 DVSUB2: READ [BR], SKIP DP0 ;IS THE DIVISOR NEGATIVE ; 4556 =0 ; 4557 DVSUB3: [AR]_[AR]*.5 LONG, ;START TO PUT IN 9-CHIPS U 1232, 2732,3446,0303,4174,4007,0700,0000,0000,0000 ; 4558 J/DIVSET ;JOIN MAIN STREAM U 1233, 2731,2441,0505,4174,4007,0700,4000,0000,0000 ; 4559 [BR]_-[BR] ;COMPLEMENT DIVISOR ; 4560 [ARX]_[ARX].OR.#, ;ADJUST SIGN OF QUOTIENT U 2731, 1232,3551,0404,4374,4007,0700,0000,0004,0000 ; 4561 #/40000, J/DVSUB3 ;USE 9 CHIPS U 2732, 2733,3447,0303,4174,4007,0700,0000,0000,0000 ; 4562 DIVSET: [AR]_[AR]*.5 U 2733, 2734,3447,0505,4174,4007,0700,0000,0000,0000 ; 4563 [BR]_[BR]*.5 U 2734, 2735,3447,0505,4174,4007,0700,0000,0000,0000 ; 4564 [BR]_[BR]*.5 U 2735, 1234,1114,0503,4174,4067,0630,6000,0060,0000 ; 4565 FIRST DIV STEP ; 4566 ;HERE IS THE MAIN DIVIDE LOOP ; 4567 =0 U 1234, 1234,0114,0503,4174,4067,0630,2100,0060,0000 ; 4568 DIVIDE: DIV STEP, J/DIVIDE U 1235, 2736,3444,1717,4174,4067,0700,0100,0000,0000 ; 4569 [T1]_[T1]*2 LONG, DIVIDE/1, DIV U 2736, 1236,3447,0303,4174,4007,0520,0000,0000,0000 ; 4570 [AR]_[AR]*.5, SKIP DP0 ; 4571 =0 U 1236, 2737,3444,0303,4174,4007,0700,0000,0000,0000 ; 4572 FIX++: [AR]_[AR]*2 LONG, J/FIX1++ U 1237, 1236,0111,0503,4174,4007,0700,0000,0000,0000 ; 4573 [AR]_[AR]+[BR], J/FIX++ U 2737, 2740,3444,0303,4174,4007,0700,0000,0000,0000 ; 4574 FIX1++: [AR]_[AR]*2 LONG U 2740, 2741,4002,1200,4174,4007,0700,0000,0000,0000 ; 4575 Q_[MASK].AND.Q ; 4576 READ [ARX], 3T, ;RETURN TO 1 OF 4 PLACES ; 4577 DISP/1, ;BASED ON SIGN OF RESULT U 2741, 0014,3333,0004,4174,4000,1701,0000,0000,0000 ; 4578 J/14 ;RETURN ; 4579 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 125 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4580 .TOC "ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE" ; 4581 .IF/FULL ; 4582 ;CALL WITH: ; 4583 ; AR!ARX!Q = 3 WORD DV'END ; 4584 ; BR!BRX = 2 WORD DV'SOR ; 4585 ;RETURN 2 WITH: ; 4586 ; AR!ARX = 2 WORD REMAINDER ; 4587 ; CORRECT IF POSITIVE (Q IS ODD) ; 4588 ; WRONG (BY BR!BRX) IF NEGATIVE (Q IS EVEN) ; 4589 ; Q = 1 WORD QUOTIENT ; 4590 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4591 ; ; 4592 ;NOTE: THIS SUBROUTINE ONLY WORKS FOR POSITIVE NUMBERS ; 4593 ; ; 4594 =0 ; 4595 ;HERE FOR NORMAL STARTUP ; 4596 DBLDIV: [ARX]_([ARX]-[BRX])*2 LONG, ;SUBTRACT LOW WORD U 1240, 2742,1114,0604,4174,4057,0700,4000,0000,0000 ; 4597 LSHC, J/DIVHI ;GO ENTER LOOP ; 4598 ;SKIP ENTRY POINT IF FINAL STEP IN PREVIOUS ENTRY WAS IN ERROR ; 4599 [ARX]_([ARX]+[BRX])*2 LONG, ;CORRECTION STEP U 1241, 2742,0114,0604,4174,4057,0700,0000,0000,0000 ; 4600 LSHC, J/DIVHI ;GO ENTER LOOP ; 4601 ; 4602 ;HERE IS DOUBLE DIVIDE LOOP ; 4603 DIVHI: AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4604 A/BR, B/AR, ;OPERANDS ARE AR AND BR ; 4605 DEST/AD*2, ;SHIFT LEFT ; 4606 SHSTYLE/NORM, ;SET SHIFT PATHS (SEE DPE1) ; 4607 MULTI PREC/1, ;INJECT SAVED BITS U 2742, 1242,0115,0503,4174,4007,0630,2040,0060,0000 ; 4608 STEP SC ;COUNT DOWN LOOP ; 4609 =0 AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4610 A/BRX, B/ARX, ;LOW WORDS ; 4611 DEST/Q_Q*2, ;SHIFT WHOLE MESS LEFT ; 4612 SHSTYLE/DIV, ;SET SHIFT PATHS (SEE DPE1) ; 4613 DIVIDE/1, ;SAVE BITS U 1242, 2742,0114,0604,4174,4067,0700,0100,0000,0000 ; 4614 J/DIVHI ;KEEP LOOPING ; 4615 ;HERE WHEN ALL DONE ; 4616 DEST/Q_Q*2, DIV, ;SHIFT IN LAST Q BIT ; 4617 DIVIDE/1, ;GENERATE BIT U 1243, 0002,4444,0002,4174,4064,1700,0100,0000,0000 ; 4618 B/HR, RETURN [2] ;ZERO HR AND RETURN ; 4619 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 126 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4620 .TOC "ARITHMETIC -- SUBROUTINES FOR ARITHMETIC" ; 4621 ; 4622 ;QUAD WORD NEGATE ; 4623 ;ARGUMENT IN AC!AC1!AC2!AC3 ; 4624 ;LEAVES COPY OF AC!AC1 IN AR!Q ; 4625 ;RETURNS TO CALL!24 U 2743, 2744,1772,0000,1274,4007,0701,4000,0000,1443 ; 4626 QDNEG: Q_-AC[3] ; 4627 AC[3]_Q.AND.[MAG], ;PUT BACK LOW WORD U 2744, 1244,4003,0000,1174,4007,0621,0400,0000,1443 ; 4628 SKIP AD.EQ.0 ;SEE IF ANY CARRY ; 4629 =0 U 1244, 2747,7772,0000,1274,4007,0701,0000,0000,1442 ; 4630 COM2A: Q_.NOT.AC[2], J/COM2 ;CARRY--DO 1'S COMPLEMENT U 1245, 2745,1772,0000,1274,4007,0701,4000,0000,1442 ; 4631 Q_-AC[2] ;NEXT WORD ; 4632 AC[2]_Q.AND.[MAG], ;PUT BACK WORD U 2745, 1246,4003,0000,1174,4007,0621,0400,0000,1442 ; 4633 SKIP AD.EQ.0 ; 4634 =0 U 1246, 2750,7772,0000,1274,4007,0701,0000,0000,1441 ; 4635 COM1A: Q_.NOT.AC[1], J/COM1 U 1247, 2746,1772,0000,1274,4007,0701,4000,0000,1441 ; 4636 Q_-AC[1] ; 4637 AC[1]_Q.AND.[MAG], U 2746, 1250,4003,0000,1174,4007,0621,0400,0000,1441 ; 4638 SKIP AD.EQ.0 ; 4639 =0 U 1250, 2751,7771,0003,0274,4007,0700,0000,0000,0000 ; 4640 COM0A: [AR]_.NOT.AC, J/COM0 U 1251, 2751,1771,0003,0274,4007,0701,4000,0000,0000 ; 4641 [AR]_-AC, 3T, J/COM0 ; 4642 U 2747, 1246,4003,0000,1174,4007,0700,0400,0000,1442 ; 4643 COM2: AC[2]_Q.AND.[MAG], J/COM1A U 2750, 1250,4003,0000,1174,4007,0700,0400,0000,1441 ; 4644 COM1: AC[1]_Q.AND.[MAG], J/COM0A U 2751, 0024,3440,0303,0174,4004,1700,0400,0000,0000 ; 4645 COM0: AC_[AR], RETURN [24] ; 4646 .ENDIF/FULL ; 4647 ; 4648 ;DOUBLE WORD NEGATE ; 4649 ;ARGUMENT IN AR AND ARX ; 4650 ;RETURNS TO CALL!2 ; 4651 U 2752, 2753,4551,0404,4374,0007,0700,0000,0037,7777 ; 4652 DBLNEG: CLEAR ARX0 ;FLUSH DUPLICATE SIGN ; 4653 DBLNGA: [ARX]_-[ARX], ;FLIP LOW WORD U 2753, 1252,2441,0404,4174,4007,0621,4000,0000,0000 ; 4654 SKIP AD.EQ.0 ;SEE IF CARRY ; 4655 =0 [AR]_.NOT.[AR], ;NO CARRY-- 1 COMP U 1252, 2202,7441,0303,4174,4467,0700,0000,0001,0001 ; 4656 AD FLAGS, J/CLARX0 ;CLEAR LOW SIGN ; 4657 [AR]_-[AR], ;CARRY U 1253, 2202,2441,0303,4174,4467,0701,4000,0001,0001 ; 4658 AD FLAGS, 3T, J/CLARX0 ; 4659 ; 4660 ;SAME THING BUT DOES NOT SET PC FLAGS U 2754, 1254,2441,0404,4174,4007,0621,4000,0000,0000 ; 4661 DBLNG1: [ARX]_-[ARX], SKIP AD.EQ.0 U 1254, 2202,7441,0303,4174,4007,0700,0000,0000,0000 ; 4662 =0 [AR]_.NOT.[AR], J/CLARX0 U 1255, 2202,2441,0303,4174,4007,0700,4000,0000,0000 ; 4663 [AR]_-[AR], J/CLARX0 ; 4664 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 127 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4665 .NOBIN ; 4666 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB" ; 4667 ; 4668 ; 4669 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER ; 4670 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES. ; 4671 ; 4672 ;IBP OR ADJBP ; 4673 ;IBP IF AC#0, ADJBP OTHERWISE ; 4674 ; HERE WITH THE BASE POINTER IN AR ; 4675 ; 4676 ;HERE IS A MACRO TO DO IBP. WHAT HAPPENS IS: ; 4677 ; THE AR IS PUT ON THE DP. ; 4678 ; THE BR IS LOADED FROM THE DP WITH BITS 0-5 FROM SCAD ; 4679 ; THE SCAD COMPUTES P-S ; 4680 ; IBPS IS CALLED WITH A 4-WAY DISPATCH ON SCAD0 AND FIRST-PART-DONE ; 4681 ;THE MACRO IS WRITTEN WITH SEVERAL SUB-MACROS BECAUSE OF RESTRICTIONS ; 4682 ; IN THE MICRO ASSEMBLER ; 4683 ; 4684 IBP DP "AD/D, DEST/A, A/AR, B/BR, DBUS/DBM, DBM/DP, BYTE/BYTE1" ; 4685 IBP SCAD "SCAD/A-B, SCADA/BYTE1, SCADB/SIZE" ; 4686 IBP SPEC "SCAD DISP, SKIP FPD" ; 4687 CALL IBP "IBP DP, IBP SCAD, IBP SPEC, CALL [IBPS], DT/3T" ; 4688 ; 4689 SET P TO 36-S "AD/D,DEST/A,A/BR,B/AR,DBUS/DBM,DBM/DP,SCAD/A-B,SCADB/SIZE,BYTE/BYTE1,SCADA/PTR44" ; 4690 ; 4691 ;THE FOLLOWING MACRO IS USED FOR COUNTING SHIFTS IN THE BYTE ROUTINES. IT ; 4692 ; USES THE FE AND COUNTS BY 8. NOTE: BYTE STEP IS A 2S WEIGHT SKIP NOT 1S. ; 4693 BYTE STEP "SCAD/A+B,SCADA/S#,S#/1770,SCADB/FE,LOAD FE, 3T,SCAD DISP" ; 4694 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 128 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 4695 .BIN ; 4696 ; 4697 .DCODE D 0133, 0015,1610,1100 ; 4698 133: R, AC, J/IBP ;OR ADJBP D 0134, 0000,1620,1500 ; 4699 134: R,W TEST, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD D 0135, 0000,1624,1100 ; 4700 R, J/LDB D 0136, 0000,1630,1500 ; 4701 R,W TEST, J/IDPB D 0137, 0000,1634,1100 ; 4702 R, J/DPB ; 4703 .UCODE ; 4704 1610: U 1610, 0240,4443,0000,4174,4007,0360,0000,0000,0000 ; 4705 IBP: SKIP IF AC0 ;SEE IF ADJBP ; 4706 =000 WORK[ADJPTR]_[AR], ;SAVE POINTER U 0240, 3012,3333,0003,7174,4007,0700,0400,0000,0223 ; 4707 J/ADJBP ;GO ADJUST BYTE POINTER U 0241, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4708 =001 CALL IBP ;BUMP BYTE POINTER U 0245, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4709 =101 DONE ;POINTER STORED ; 4710 = ; 4711 ; 4712 1620: U 1620, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4713 ILDB: CALL IBP ;BUMP BYTE POINTER ; 4714 1624: ; 4715 LDB: READ [AR], ;LOOK AT POINTER ; 4716 LOAD BYTE EA, FE_P, 3T, ;GET STUFF OUT OF POINTER U 1624, 2762,3333,0003,4174,4217,0701,1010,0073,0500 ; 4717 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS U 1625, 0411,3443,0100,4174,4007,0700,0200,0014,0012 ; 4718 1625: VMA_[PC], FETCH ;START FETCH OF NEXT INST ; 4719 =0* READ [AR], ;LOOK AT POINTER ; 4720 FE_FE.AND.S#, S#/0770, ;MASK OUT JUNK IN FE ; 4721 BYTE DISP, ;DISPATCH ON BYTE SIZE U 0411, 0340,3333,0003,4174,4006,5701,1010,0051,0770 ; 4722 CALL [LDB1] ;GET BYTE ; 4723 AC_[AR], CLR FPD, ;STORE AC U 0413, 0603,3440,0303,0174,4467,0700,0400,0005,0000 ; 4724 J/NIDISP ;GO DO NEXT INST ; 4725 ; 4726 1630: U 1630, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4727 IDPB: CALL IBP ;BUMP BYTE POINTER ; 4728 1634: U 1634, 2755,3775,0004,0274,4007,0701,0000,0000,0000 ; 4729 DPB: [ARX]_AC*2 ;PUT 7 BIT BYTE IN 28-34 ; 4730 AD/A, A/ARX, SCAD/A, ;PUT THE BYTE INTO ; 4731 SCADA/BYTE5, 3T, ; INTO THE FE REGISTER U 2755, 2756,3443,0400,4174,4007,0701,1000,0077,0000 ; 4732 LOAD FE ; FE REGISTER U 2756, 0264,3771,0004,0276,6007,0700,0000,0000,0000 ; 4733 [ARX]_AC ;PUT BYTE IN ARX ; 4734 =100 READ [AR], ;LOOK AT BYTE POINTER ; 4735 LOAD BYTE EA, ;LOAD UP EFFECTIVE ADDRESS U 0264, 2762,3333,0003,4174,4217,0700,0010,0000,0500 ; 4736 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS ; 4737 READ [AR], ;LOOK AT POINTER AGAIN ; 4738 BYTE DISP, ;DISPATCH ON SIZE U 0265, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 4739 CALL [DPB1] ;GO STORE BYTE U 0267, 1400,4443,0000,4174,4467,0700,0000,0005,0000 ; 4740 =111 CLR FPD, J/DONE ;ALL DONE ; 4741 = ; 4742 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 129 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 4743 .TOC "BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE" ; 4744 ; 4745 =00 U 0350, 2760,3441,0503,4174,4007,0700,0200,0003,0002 ; 4746 IBPS: [AR]_[BR], START WRITE, J/IBPX ;NO OVERFLOW, BR HAS ANSWER U 0351, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4747 RETURN [4] ;FIRST PART DONE SET U 0352, 2757,3770,0503,4334,4017,0700,0000,0032,6000 ; 4748 SET P TO 36-S, J/NXTWRD ;WORD OVERFLOW U 0353, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4749 RETURN [4] ;FPD WAS SET IGNORE OVERFLOW ; 4750 ; AND RETURN ; 4751 U 2757, 2760,0111,0703,4170,4007,0700,0200,0003,0002 ; 4752 NXTWRD: [AR]_[AR]+1, HOLD LEFT, START WRITE ;BUMP Y AND RETURN U 2760, 0004,3333,0003,4175,5004,1701,0200,0000,0002 ; 4753 IBPX: MEM WRITE, MEM_[AR], RETURN [4] ; 4754 ; 4755 ; 4756 .TOC "BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR" ; 4757 ; 4758 ;ENTER WITH POINTER IN AR ; 4759 ;RETURN1 WITH (EA) IN VMA AND WORD IN BR ; 4760 BYTEAS: EA MODE DISP, ;HERE TO AVOID FPD U 2761, 0070,4443,0000,2174,4006,6700,0000,0000,0000 ; 4761 J/BYTEA0 ;GO COMPUTE EA ; 4762 BYTEA: SET FPD, ;SET FIRST-PART-DONE U 2762, 0070,4443,0000,2174,4466,6700,0000,0003,0000 ; 4763 EA MODE DISP ;DISPATCH ; 4764 =100* ; 4765 BYTEA0: VMA_[AR]+XR, ;INDEXING ; 4766 START READ, ;FETCH DATA WORD ; 4767 PXCT BYTE DATA, ;FOR PXCT U 0070, 2764,0553,0300,2274,4007,0700,0200,0004,0712 ; 4768 J/BYTFET ;GO WAIT ; 4769 VMA_[AR], ;PLAIN ; 4770 START READ, ;START CYCLE ; 4771 PXCT BYTE DATA, ;FOR PXCT U 0072, 2764,3443,0300,4174,4007,0700,0200,0004,0712 ; 4772 J/BYTFET ;GO WAIT ; 4773 VMA_[AR]+XR, ;BOTH ; 4774 START READ, ;START CYCLE ; 4775 PXCT BYTE PTR EA, ;FOR PXCT U 0074, 2763,0553,0300,2274,4007,0700,0200,0004,0512 ; 4776 J/BYTIND ;GO DO INDIRECT ; 4777 VMA_[AR], ;JUST @ ; 4778 START READ, ;START READ U 0076, 2763,3443,0300,4174,4007,0700,0200,0004,0512 ; 4779 PXCT BYTE PTR EA ;FOR PXCT ; 4780 BYTIND: MEM READ, ;WAIT FOR @ WORD ; 4781 [AR]_MEM, ;PUT IN AR ; 4782 HOLD LEFT, ;JUST IN RH (SAVE P & S) ; 4783 LOAD BYTE EA, ;LOOP BACK U 2763, 2761,3771,0003,4361,5217,0700,0200,0000,0502 ; 4784 J/BYTEAS ; .. ; 4785 ; 4786 BYTFET: MEM READ, ;WAIT FOR BYTE DATA ; 4787 [BR]_MEM.AND.MASK, ; WORD. UNSIGNED U 2764, 0001,4551,1205,4365,5004,1700,0200,0000,0002 ; 4788 RETURN [1] ;RETURN TO CALLER ; 4789 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 130 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4790 .TOC "BYTE GROUP -- LOAD BYTE SUBROUTINE" ; 4791 ; 4792 ;CALL WITH: ; 4793 ; WORD IN BR ; 4794 ; POINTER IN AR ; 4795 ; P IN FE ; 4796 ; BYTE DISPATCH ; 4797 ;RETURN2 WITH BYTE IN AR ; 4798 LDB SCAD "SCAD/A,BYTE/BYTE5" ; 4799 7-BIT LDB "AD/D,DBUS/DBM,DBM/DP,DEST/A,A/BR,B/BR, LDB SCAD" ; 4800 ; 4801 =000 ; 4802 LDB1: GEN 17-FE, 3T, ;GO SEE IF ALL THE BITS ; 4803 SCAD DISP, ; ARE IN THE LEFT HALF U 0340, 0410,4443,0000,4174,4006,7701,0000,0031,0210 ; 4804 J/LDBSWP ;GO TO LDBSWP & SKIP IF LH ; 4805 ; 4806 ;HERE ARE THE 7-BIT BYTES U 0341, 2765,3770,0505,4334,4057,0700,0000,0073,0000 ; 4807 =001 7-BIT LDB, SCADA/BYTE1, J/LDB7 U 0342, 2765,3770,0505,4334,4057,0700,0000,0074,0000 ; 4808 =010 7-BIT LDB, SCADA/BYTE2, J/LDB7 U 0344, 2765,3770,0505,4334,4057,0700,0000,0075,0000 ; 4809 =100 7-BIT LDB, SCADA/BYTE3, J/LDB7 U 0345, 2765,3770,0505,4334,4057,0700,0000,0076,0000 ; 4810 =101 7-BIT LDB, SCADA/BYTE4, J/LDB7 U 0347, 2765,3770,0505,4334,4057,0700,0000,0077,0000 ; 4811 =111 7-BIT LDB, SCADA/BYTE5, J/LDB7 ; 4812 = ; 4813 ; 4814 ;FOR 7-BIT BYTES WE HAVE BYTE IN BR 28-35 AND JUNK IN REST OF BR. ; 4815 ; WE JUST MASK THE SELECTED BYTE AND SHIFT ONE PLACE RIGHT. ; 4816 LDB7: AD/ZERO,RSRC/DA, ;LH_ZERO, RH_D.AND.A ; 4817 DBUS/DBM,DBM/#,#/376, ;D INPUT IS 376 ; 4818 A/BR, ;A IS BR ; 4819 B/AR, ;PUT RESULT IN AR ; 4820 DEST/AD*.5, 3T, ;SHIFT RESULT 1 PLACE U 2765, 0002,4257,0503,4374,4004,1701,0000,0000,0376 ; 4821 RETURN [2] ;RETURN TO CALLER ; 4822 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 131 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4823 ;HERE FOR NORMAL BYTES ; 4824 =00 ; 4825 LDBSWP: FE_-FE, ;MAKE P NEGATIVE U 0410, 2767,4443,0000,4174,4007,0700,1000,0031,0000 ; 4826 J/LDBSH ;JOIN MAIN LDB LOOP U 0412, 2766,3770,0505,4344,4007,0700,0000,0000,0000 ; 4827 =10 [BR]_[BR] SWAP ;SHIFT 18 STEPS ; 4828 = ; 4829 [BR]_0, HOLD RIGHT, ;PUT ZERO IN LH U 2766, 2767,4221,0005,4174,0007,0700,1000,0031,0220 ; 4830 FE_-FE+S#, S#/220 ;UPDATE FE ; 4831 LDBSH: [BR]_[BR]*.5, ;SHIFT RIGHT ; 4832 FE_FE+10, ;UPDATE THE FE U 2767, 2770,3447,0505,4174,4007,0700,1020,0041,0010 ; 4833 MULTI SHIFT/1 ;FAST SHIFT U 2770, 2771,3333,0003,4174,4007,0700,1000,0031,7770 ; 4834 READ [AR], FE_-S-10 ;GET SIZE U 2771, 2772,4222,0000,4174,4007,0700,0000,0000,0000 ; 4835 Q_0 ;CLEAR Q ; 4836 GEN MSK [AR], ;PUT MASK IN Q (WIPEOUT AR) ; 4837 FE_FE+10, ;COUNT UP ALL STEPS U 2772, 2773,4224,0003,4174,4027,0700,1020,0041,0010 ; 4838 MULTI SHIFT/1 ;FAST SHIFT U 2773, 2774,4224,0003,4174,4027,0700,0000,0000,0000 ; 4839 GEN MSK [AR] ;ONE MORE BIT U 2774, 0002,4001,0503,4174,4004,1700,0000,0000,0000 ; 4840 [AR]_[BR].AND.Q, RETURN [2] ; 4841 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 132 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4842 .NOBIN ; 4843 .TOC "BYTE GROUP -- DEPOSIT BYTE IN MEMORY" ; 4844 ; 4845 ;FLOW FOR DPB (NOT 7-BIT BYTE) ; 4846 ; ; 4847 ;FIRST SET ARX TO -1 AND Q TO ZERO AND ROTATE LEFT ; 4848 ; S PLACES GIVING: ; 4849 ; 4850 ; ARX Q ; 4851 ; +------------------!------------------+ ; 4852 ; !111111111111000000!000000000000111111! ; 4853 ; +------------------!------------------+ ; 4854 ; !<--->! ; 4855 ; S BITS ; 4856 ; ; 4857 ; 4858 ;NOW THE AC IS LOAD INTO THE ARX AND BOTH THE ARX AND Q ; 4859 ; ARE SHIFTED LEFT P BITS GIVING: ; 4860 ; 4861 ; +------------------!------------------+ ; 4862 ; !??????BBBBBB000000!000000111111000000! ; 4863 ; +------------------!------------------+ ; 4864 ; <----><----> <----><----> ; 4865 ; JUNK BYTE MASK P BITS ; 4866 ; ; 4867 ; 4868 ;AT THIS POINT WE ARE ALMOST DONE. WE NEED TO AND ; 4869 ; THE BR WITH .NOT. Q TO ZERO THE BITS FOR THE BYTE ; 4870 ; AND AND ARX WITH Q TO MASK OUT THE JUNK THIS GIVES: ; 4871 ; ; 4872 ; ARX ; 4873 ; +------------------+ ; 4874 ; !000000BBBBBB000000! ; 4875 ; +------------------! ; 4876 ; ; 4877 ; AR ; 4878 ; +------------------+ ; 4879 ; !DDDDDD000000DDDDDD! ; 4880 ; +------------------+ ; 4881 ; ; 4882 ;WE NOW OR THE AR WITH ARX TO GENERATE THE ANSWER. ; 4883 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 133 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 4884 .BIN ; 4885 ; 4886 ;DEPOSIT BYTE SUBROUTINE ; 4887 ;CALL WITH: ; 4888 ; BYTE POINTER IN AR ; 4889 ; BYTE TO STORE IN ARX ; 4890 ; WORD TO MERGE WITH IN BR ; 4891 ; (E) OF BYTE POINTER IN VMA ; 4892 ; 7-BIT BYTE IN FE ; 4893 ; BYTE DISPATCH ; 4894 ;RETURN2 WITH BYTE IN MEMORY ; 4895 ; ; 4896 DPB SCAD "SCAD/A+B,SCADA/S#,SCADB/FE,S#/0" ; 4897 7-BIT DPB "AD/D,DEST/A,A/BR,DBUS/DBM,DBM/DP,B/AR, DPB SCAD" ; 4898 ; 4899 =000 U 0360, 2777,3333,0003,4174,4007,0700,1000,0031,7770 ; 4900 DPB1: READ [AR], FE_-S-10, J/DPBSLO ;NOT SPECIAL U 0361, 2775,3770,0503,4334,4017,0700,0000,0041,0000 ; 4901 =001 7-BIT DPB, BYTE/BYTE1, J/DPB7 U 0362, 2775,3770,0503,4334,4027,0700,0000,0041,0000 ; 4902 =010 7-BIT DPB, BYTE/BYTE2, J/DPB7 U 0364, 2775,3770,0503,4334,4037,0700,0000,0041,0000 ; 4903 =100 7-BIT DPB, BYTE/BYTE3, J/DPB7 U 0365, 2775,3770,0503,4334,4047,0700,0000,0041,0000 ; 4904 =101 7-BIT DPB, BYTE/BYTE4, J/DPB7 U 0367, 2775,3770,0503,4334,4057,0700,0000,0041,0000 ; 4905 =111 7-BIT DPB, BYTE/BYTE5, J/DPB7 ; 4906 = U 2775, 2776,3447,1200,4174,4007,0700,0200,0003,0002 ; 4907 DPB7: [MAG]_[MASK]*.5, START WRITE U 2776, 0002,3333,0003,4175,5004,1701,0200,0000,0002 ; 4908 MEM WRITE, MEM_[AR], RETURN [2] ; 4909 ; 4910 U 2777, 3000,4222,0000,4174,4007,0700,0000,0000,0000 ; 4911 DPBSLO: Q_0 ;CLEAR Q ; 4912 GEN MSK [MAG], ;GENERATE MASK IN Q (ZAP MAG) ; 4913 FE_FE+10, ;COUNT STEPS U 3000, 3001,4224,0000,4174,4027,0700,1020,0041,0010 ; 4914 MULTI SHIFT/1 ;FAST SHIFT U 3001, 3002,4224,0000,4174,4027,0700,0000,0000,0000 ; 4915 GEN MSK [MAG] ;ONE MORE BITS U 3002, 3003,3333,0003,4174,4007,0701,1000,0073,0000 ; 4916 READ [AR], 3T, FE_P ;AMOUNT TO SHIFT U 3003, 3004,4443,0000,4174,4007,0700,1000,0051,0770 ; 4917 FE_FE.AND.S#, S#/0770 ;MASK OUT JUNK ; 4918 Q_Q.AND.[MASK], ;CLEAR BITS 36 AND 37 U 3004, 3005,4002,1200,4174,4007,0700,1000,0031,0000 ; 4919 FE_-FE ;MINUS NUMBER OF STEPS ; 4920 [ARX]_[ARX]*2 LONG, ;SHIFT BYTE AND MASK ; 4921 FE_FE+10, ;COUNT OUT STEPS U 3005, 3006,3444,0404,4174,4007,0700,1020,0041,0010 ; 4922 MULTI SHIFT/1 ;FAST SHIFT ; 4923 ;AT THIS POINT WE HAVE DONE ALL THE SHIFTING WE NEED. THE BYTE IS ; 4924 ; IN ARX AND THE MASK IS IN Q. U 3006, 3007,7221,0003,4174,4007,0700,0000,0000,0000 ; 4925 [AR]_.NOT.Q U 3007, 3010,4111,0503,4174,4007,0700,0000,0000,0000 ; 4926 [AR]_[AR].AND.[BR] U 3010, 3011,4001,0404,4174,4007,0700,0000,0000,0000 ; 4927 [ARX]_[ARX].AND.Q ; 4928 [AR]_[AR].OR.[ARX], U 3011, 2775,3111,0403,4174,4007,0700,0000,0000,0000 ; 4929 J/DPB7 ; 4930 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 134 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- ADJUST BYTE POINTER ; 4931 .TOC "BYTE GROUP -- ADJUST BYTE POINTER" ; 4932 .IF/FULL ; 4933 ;FIRST THE NUMBER OF BYTES PER WORD IS COMPUTED FROM THE ; 4934 ; FOLLOWING FORMULA: ; 4935 ; ; 4936 ; ( P ) ( 36-P ) ; 4937 ; BYTES PER WORD = INT( --- ) + INT( ---- ) ; 4938 ; ( S ) ( S ) ; 4939 ; ; 4940 ;THIS GIVES 2 BYTES PER WORD FOR THE FOLLOWING 12 BIT BYTE: ; 4941 ; !=====================================! ; 4942 ; ! 6 !////////////! 12 ! 6 ! ; 4943 ; !=====================================! ; 4944 ; P=18 AND S=12 ; 4945 ; ; 4946 ;WE GET 3 BYTES/WORD IF THE BYTES FALL IN THE NATURAL PLACE: ; 4947 ; !=====================================! ; 4948 ; ! 12 !\\\\\\\\\\\\! 12 ! ; 4949 ; !=====================================! ; 4950 ; P=12 AND S=12 ; 4951 ; 4952 ;WE COME HERE WITH THE BYTE POINTER IN AR, AND ADJPTR ; 4953 ADJBP: [ARX]_[AR] SWAP, ;MOVE SIZE OVER U 3012, 1256,3770,0304,4344,4007,0700,2000,0071,0011 ; 4954 SC_9. ;READY TO SHIFT ; 4955 =0 ; 4956 ADJBP0: [ARX]_[ARX]*.5, ;SHIFT P OVER ; 4957 STEP SC, ; .. U 1256, 1256,3447,0404,4174,4007,0630,2000,0060,0000 ; 4958 J/ADJBP0 ; .. ; 4959 [ARX]_([ARX].AND.#)*.5, ;SHIFT AND MASK ; 4960 3T, ;WAIT U 1257, 3013,4557,0404,4374,4007,0701,0000,0000,0176 ; 4961 #/176 ;6 BIT MASK ; 4962 [ARX]_#, ;CLEAR LH ; 4963 #/0, ; .. U 3013, 3014,3771,0004,4374,0007,0700,0000,0000,0000 ; 4964 HOLD RIGHT ; .. U 3014, 3015,3333,0004,7174,4007,0700,0400,0000,0221 ; 4965 WORK[ADJP]_[ARX] ;SAVE P ; 4966 [BR]_([AR].AND.#)*.5, ;START ON S ; 4967 3T, ;EXTRACT S U 3015, 3016,4557,0305,4374,4007,0701,0000,0000,7700 ; 4968 #/007700 ; .. ; 4969 [BR]_[BR] SWAP, ;SHIFT 18 PLACES U 3016, 3017,3770,0505,4344,4007,0700,2000,0071,0003 ; 4970 SC_3 ; .. ; 4971 [BR]_0, ;CLEAR LH U 3017, 1260,4221,0005,4174,0007,0700,0000,0000,0000 ; 4972 HOLD RIGHT ; .. ; 4973 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 135 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- ADJUST BYTE POINTER ; 4974 =0 ; 4975 ADJBP1: [BR]_[BR]*.5, ;SHIFT S OVER ; 4976 STEP SC, ; .. U 1260, 1260,3447,0505,4174,4007,0630,2000,0060,0000 ; 4977 J/ADJBP1 ; .. ; 4978 WORK[ADJS]_[BR], ;SALT S AWAY U 1261, 1262,3333,0005,7174,4007,0621,0400,0000,0222 ; 4979 SKIP AD.EQ.0 ;SEE IF ZERO ; 4980 =0 Q_[ARX], ;DIVIDE P BY S ; 4981 SC_34., ;STEP COUNT U 1262, 0660,3442,0400,4174,4007,0700,2000,0071,0042 ; 4982 J/ADJBP2 ;SKIP NEXT WORD U 1263, 1404,3771,0003,7274,4007,0701,0000,0000,0223 ; 4983 [AR]_WORK[ADJPTR], J/MOVE ;S=0 -- SAME AS MOVE ; 4984 =0* ; 4985 ADJBP2: [AR]_#, ;FILL AR WITH SIGN BITS ; 4986 #/0, ;POSITIVE U 0660, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4987 CALL [DIVSUB] ;GO DIVIDE U 0662, 3020,3223,0000,7174,4007,0700,0400,0000,0224 ; 4988 WORK[ADJQ1]_Q ;SAVE QUOTIENT ; 4989 Q_#, ;COMPUTE (36-P)/S ; 4990 #/36., ; .. U 3020, 3021,3772,0000,4370,4007,0700,0000,0000,0044 ; 4991 HOLD LEFT ;SMALL ANSWER U 3021, 3022,1662,0000,7274,4007,0701,4000,0000,0221 ; 4992 Q_Q-WORK[ADJP] ;SUBTRACT P U 3022, 3023,3771,0005,7274,4007,0701,0000,0000,0222 ; 4993 [BR]_WORK[ADJS] ;DIVIDE BY S U 3023, 0664,4443,0000,4174,4007,0700,2000,0071,0042 ; 4994 SC_34. ;STEP COUNT ; 4995 =0* [AR]_#, ;MORE SIGN BITS ; 4996 #/0, ; .. U 0664, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4997 CALL [DIVSUB] ;GO DIVIDE U 0666, 3024,3333,0003,7174,4007,0700,0400,0000,0225 ; 4998 WORK[ADJR2]_[AR] ;SAVE REMAINDER ; 4999 [AR]_#, ;ASSUME NEGATIVE ADJ U 3024, 3025,3771,0003,4374,4007,0700,0000,0077,7777 ; 5000 #/777777 ;EXTEND SIGN ; 5001 AD/D+Q, ;BR_(P/S)+((36-P)/S) ; 5002 DEST/AD, ; .. ; 5003 B/BR, ; .. ; 5004 RAMADR/#, ; .. ; 5005 DBUS/RAM, ; .. ; 5006 WORK/ADJQ1, ; .. ; 5007 4T, ; .. U 3025, 1264,0661,0005,7274,4007,0622,0000,0000,0224 ; 5008 SKIP AD.EQ.0 ;SEE IF ZERO ; 5009 =0 Q_Q+AC, ;GET ADJUSTMENT ; 5010 SC_34., ;STEP COUNT ; 5011 SKIP DP0, ;GO DO DIVIDE ; 5012 4T, ;WAIT FOR DP U 1264, 0550,0662,0000,0274,4007,0522,2000,0071,0042 ; 5013 J/ADJBP3 ;BELOW U 1265, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 5014 NO DIVIDE ;0 BYTES/WORD ; 5015 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 136 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- ADJUST BYTE POINTER ; 5016 ;WE NOW DIVIDE THE ADJUSTMENT BY THE BYTES PER WORD AND FORCE THE ; 5017 ; REMAINDER (R) TO BE A POSITIVE NUMBER (MUST NOT BE ZERO). THE ; 5018 ; QUOTIENT IS ADDED TO THE Y FIELD IN THE BYTE POINTER AND THE NEW ; 5019 ; P FIELD IS COMPUTED BY: ; 5020 ; ; 5021 ; ( ( 36-P )) ; 5022 ; NEW P = 36-((R * S) + RMDR( ---- )) ; 5023 ; ( ( S )) ; 5024 ; ; 5025 ;WE NOW HAVE BYTES/WORD IN BR AND ADJUSTMENT IN Q. DIVIDE TO GET ; 5026 ; WORDS TO ADJUST BY. ; 5027 =00 ; 5028 ADJBP3: [AR]_#, ;POSITIVE ADJUSTMENT U 0550, 0551,3771,0003,4374,4007,0700,0000,0000,0000 ; 5029 #/0. ; 5030 WORK[ADJBPW]_[BR], ;SAVE BYTES/WORD & COMPUTE U 0551, 0370,3333,0005,7174,4007,0700,0410,0000,0226 ; 5031 CALL [DIVSUB] ; ADJ/(BYTES/WORD) ; 5032 ;WE NOW WANT TO ADJUST THE REMAINDER SO THAT IT IS POSITIVE ; 5033 =11 Q_#, ;ONLY RIGHT HALF ; 5034 #/0, ; .. U 0553, 3026,3772,0000,4374,0007,0700,0000,0000,0000 ; 5035 HOLD RIGHT ; .. ; 5036 = ; 5037 READ [AR], ;ALREADY + U 3026, 1266,3333,0003,4174,4007,0421,0000,0000,0000 ; 5038 SKIP AD.LE.0 ; .. ; 5039 =0 ; 5040 ADJBP4: AD/D+Q, ;ADD Q TO POINTER AND STORE ; 5041 DEST/AD, ; .. ; 5042 B/BR, ;RESULT TO BR ; 5043 RAMADR/#, ;PTR IS IN RAM ; 5044 DBUS/RAM, ; .. ; 5045 WORK/ADJPTR, ; .. ; 5046 INH CRY18, ;JUST RH ; 5047 3T, ;WAIT FOR RAM U 1266, 3030,0661,0005,7274,4407,0701,0000,0000,0223 ; 5048 J/ADJBP5 ;CONTINUE BELOW ; 5049 Q_Q-1, ;NO--MAKE Q SMALLER U 1267, 3027,1002,0700,4170,4007,0700,4000,0000,0000 ; 5050 HOLD LEFT ; .. ; 5051 [AR]_[AR]+WORK[ADJBPW], ;MAKE REM BIGGER U 3027, 1266,0551,0303,7274,4007,0701,0000,0000,0226 ; 5052 J/ADJBP4 ;NOW HAVE + REMAINDER ; 5053 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 137 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- ADJUST BYTE POINTER ; 5054 ADJBP5: [BRX]_[AR], ;COMPUTE R*S U 3030, 3031,3441,0306,4174,4007,0700,2000,0071,0043 ; 5055 SC_35. ;STEP COUNT U 3031, 0062,3772,0000,7274,4007,0701,0000,0000,0222 ; 5056 Q_WORK[ADJS] ;GET S ; 5057 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0062, 2663,3446,0606,4174,4007,0700,0010,0000,0000 ; 5058 CALL [MULSUB] ; .. ; 5059 AD/D+Q, ;AR_(R*S)+RMDR(36-P)/S ; 5060 DEST/AD, ; .. ; 5061 B/AR, ; .. ; 5062 RAMADR/#, ; .. ; 5063 3T, ; .. ; 5064 DBUS/RAM, ; .. U 0066, 3032,0661,0003,7274,4007,0701,0000,0000,0225 ; 5065 WORK/ADJR2 ; .. ; 5066 [AR]_(#-[AR])*2, ;COMPUTE 36-AR ; 5067 3T, ;AND START LEFT U 3032, 3033,2555,0303,4374,4007,0701,4000,0000,0044 ; 5068 #/36. ; .. ; 5069 [AR]_[AR] SWAP, ;PUT THE POSITION BACK U 3033, 3034,3770,0303,4344,4007,0700,2000,0071,0011 ; 5070 SC_9. ; .. ; 5071 [AR]_#, ;CLEAR JUNK FROM RH ; 5072 #/0, ; .. U 3034, 1270,3771,0003,4370,4007,0700,0000,0000,0000 ; 5073 HOLD LEFT ; .. ; 5074 =0 ; 5075 ADJBP6: [AR]_[AR]*2, ;LOOP OVER ALL BITS ; 5076 STEP SC, ; .. U 1270, 1270,3445,0303,4174,4007,0630,2000,0060,0000 ; 5077 J/ADJBP6 ; .. ; 5078 [BR]_[BR].AND.#, ; .. ; 5079 #/007777, ; .. U 1271, 3035,4551,0505,4374,0007,0700,0000,0000,7777 ; 5080 HOLD RIGHT ; .. ; 5081 AC_[AR].OR.[BR], ;ALL DONE U 3035, 1400,3113,0305,0174,4007,0700,0400,0000,0000 ; 5082 J/DONE ;;5083 .IFNOT/FULL ;;5084 ;;5085 ADJBP: UUO ;NO ADJBP IN SMALL ;;5086 ; MICROCODE ; 5087 .ENDIF/FULL ; 5088 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 138 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BYTE GROUP -- ADJUST BYTE POINTER ; 5089 .NOBIN ; 5090 .TOC "BLT" ; 5091 ; 5092 ;THIS CODE PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF ; 5093 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD ; 5094 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION ; 5095 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING ; 5096 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST- ; 5097 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION ; 5098 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK. ; 5099 ; 5100 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH ; 5101 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE, ; 5102 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH ; 5103 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP. ; 5104 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 139 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5105 .BIN ; 5106 ; 5107 ;HERE TO SETUP FOR A BLT/UBABLT ; 5108 U 3036, 1272,3770,0604,4344,4007,0700,0000,0000,0000 ; 5109 SETBLT: [ARX]_[BRX] SWAP ;COPY TO ARX (SRC IN RH) ; 5110 =0 VMA_[ARX], ;ADDRESS OF FIRST WORD ; 5111 START READ, ; 5112 PXCT BLT SRC, U 1272, 3566,3443,0400,4174,4007,0700,0210,0004,0712 ; 5113 CALL [CLARXL] ;CLEAR THE LEFT HALF OF ; 5114 [BRX]_0, ; BOTH SRC AND DEST U 1273, 3037,4221,0006,4174,0007,0700,0000,0000,0000 ; 5115 HOLD RIGHT U 3037, 3040,2112,0306,4174,4007,0700,4000,0000,0000 ; 5116 Q_[AR]-[BRX] ;NUMBER OF WORDS TO MOVE U 3040, 3041,0001,0705,4174,4007,0700,0000,0000,0000 ; 5117 [BR]_Q+1 ;LENGTH +1 ; 5118 [BR]_[BR] SWAP, ;COPY TO BOTH HALFS U 3041, 3042,3770,0505,4344,0007,0700,0000,0000,0000 ; 5119 HOLD RIGHT ; 5120 [BR]_AC+[BR], ;FINAL AC U 3042, 3043,0551,0505,0274,4407,0701,0000,0000,0000 ; 5121 INH CRY18 ;KEEP AC CORRECT IF DEST IS 777777 U 3043, 0002,3771,0013,4370,4004,1700,0000,0000,0001 ; 5122 STATE_[BLT],RETURN [2] ;SET PAGE FAIL FLAGS ; 5123 ; 5124 .DCODE D 0251, 0000,1640,2100 ; 5125 251: I, J/BLT ; 5126 .UCODE ; 5127 ; 5128 1640: U 1640, 3036,3771,0006,0276,6007,0700,0010,0000,0000 ; 5129 BLT: [BRX]_AC,CALL [SETBLT] ;FETCH THE AC (DEST IN RH) ; 5130 1642: AC_[BR], ;STORE BACK IN AC U 1642, 3565,3440,0505,0174,4007,0700,0410,0000,0000 ; 5131 CALL [LOADQ] ;LOAD FIRST WORD INTO Q ; 5132 1643: [BR]_[ARX]+1000001, ;SRC+1 ; 5133 3T, U 1643, 3044,0551,0405,4370,4007,0701,0000,0000,0001 ; 5134 HOLD LEFT ; 5135 [BR]-[BRX], 3T, ;IS THIS THE CORE CLEAR CASE U 3044, 1274,2113,0506,4174,4007,0331,4000,0000,0000 ; 5136 SKIP ADR.EQ.0 ; 5137 =0 ; 5138 BLTLP1: VMA_[BRX], ;NO, GET DEST ADR ; 5139 START WRITE, ;START TO STORE NEXT WORD ; 5140 PXCT BLT DEST, ;WHERE TO STORE U 1274, 3047,3443,0600,4174,4007,0700,0200,0003,0312 ; 5141 J/BLTGO ; 5142 ; 5143 ;SKIP TO NEXT PAGE IF CLEARING CORE ; 5144 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 140 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5145 ;CLEAR CORE CASE ; 5146 VMA_[BRX], ; 5147 START WRITE, U 1275, 3045,3443,0600,4174,4007,0700,0200,0003,0312 ; 5148 PXCT BLT DEST ; 5149 BLTCLR: MEM WRITE, ;STORE WORD ; 5150 MEM_Q, U 3045, 1276,3223,0000,4174,4007,0671,0200,0000,0002 ; 5151 SKIP/-1 MS ;1 MS TIMER UP U 1276, 3050,4443,0000,4174,4007,0700,0000,0000,0000 ; 5152 =0 J/BLTGOT ;GO TAKE INTERRUPT ; 5153 [BRX]-[AR], ;BELOW E? ; 5154 3T, U 1277, 1300,2113,0603,4174,4007,0521,4000,0000,0000 ; 5155 SKIP DP0 ; 5156 =0 END BLT, ;NO--STOP BLT U 1300, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5157 J/DONE ; 5158 [ARX]_[ARX]+1, ;FOR PAGE FAIL LOGIC U 1301, 1302,0111,0704,4174,4007,0370,0000,0000,0000 ; 5159 SKIP IRPT ; 5160 =0 VMA_[BRX]+1, ; 5161 LOAD VMA, ; 5162 PXCT BLT DEST, ; 5163 START WRITE, ;YES--KEEP STORING U 1302, 3045,0111,0706,4170,4007,0700,0200,0003,0312 ; 5164 J/BLTCLR ; 5165 VMA_[BRX]+1, ;INTERRUPT ; 5166 LOAD VMA, ; 5167 PXCT BLT DEST, ; 5168 START WRITE, U 1303, 3047,0111,0706,4170,4007,0700,0200,0003,0312 ; 5169 J/BLTGO ; 5170 ; 5171 ;HERE FOR NORMAL BLT ; 5172 BLTLP: MEM READ, ;FETCH ; 5173 Q_MEM, U 3046, 1274,3772,0000,4365,5007,0700,0200,0000,0002 ; 5174 J/BLTLP1 ; 5175 BLTGO: MEM WRITE, ;STORE U 3047, 3050,3223,0000,4174,4007,0701,0200,0000,0002 ; 5176 MEM_Q ; 5177 BLTGOT: [BRX]-[AR], ;BELOW E? ; 5178 3T, U 3050, 1304,2113,0603,4174,4007,0521,4000,0000,0000 ; 5179 SKIP DP0 ; 5180 =0 END BLT, ;NO--STOP BLT U 1304, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5181 J/DONE U 1305, 3051,0111,0706,4174,4007,0700,0000,0000,0000 ; 5182 [BRX]_[BRX]+1 ;UPDATE DEST ADDRESS ; 5183 VMA_[ARX]+1, ; 5184 LOAD VMA, ; 5185 PXCT BLT SRC, ; 5186 START READ, ;YES--MOVE 1 MORE WORD U 3051, 3046,0111,0704,4170,4007,0700,0200,0004,0712 ; 5187 J/BLTLP ; 5188 ; 5189 ;HERE TO CLEAN UP AFTER BLT PAGE FAILS ; 5190 BLT-CLEANUP: U 3052, 3053,3770,0303,4344,4007,0700,0000,0000,0000 ; 5191 [AR]_[AR] SWAP ;PUT SRC IN LEFT HALF ; 5192 [AR]_WORK[SV.BRX], U 3053, 3054,3771,0003,7270,4007,0701,0000,0000,0214 ; 5193 HOLD LEFT ; 5194 AC_[AR], ;STORE THE AC AND RETURN U 3054, 1100,3440,0303,0174,4007,0700,0400,0000,0000 ; 5195 J/CLEANED ; 5196 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 141 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5197 .IF/UBABLT ; 5198 .TOC "UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT" ; 5199 ; 5200 ;THESE INSTRUCTION MOVE WORDS FROM BYTE TO UNIBUS AND UNIBUS TO BYTE ; 5201 ;FORMAT. FORMATS ARE: ; 5202 ; ; 5203 ;BYTE FORMAT: ; 5204 ; ; 5205 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5206 ; ;; BYTE 0 ;; BYTE 1 ;; BYTE 2 ;; BYTE 3 ;; 4 BITS ;; ; 5207 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5208 ; ; 5209 ;UNIBUS FORMAT: ; 5210 ; ; 5211 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5212 ; ;; 2 BITS ;; BYTE 1 ;; BYTE 0 ;; 2 BITS ;; BYTE 3 ;; BYTE 2 ;; ; 5213 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5214 ; ; 5215 ; 5216 =0* ; 5217 BLTX: [BRX]_AC, ;FETCH THE AC (DEST IN RH) U 0670, 3036,3771,0006,0276,6007,0700,0010,0000,0000 ; 5218 CALL [SETBLT] ;DO THE REST OF THE SETUP U 0672, 3055,3440,0505,0174,4007,0700,0400,0000,0000 ; 5219 AC_[BR] ;STORE THE FINAL AC IN AC ; 5220 ; 5221 BLTXLP: MEM READ, ;READ THE SOURCE WORD ; 5222 Q_MEM, ;FROM MEMORY U 3055, 0006,3772,0000,4365,5003,7700,0200,0000,0002 ; 5223 B DISP ;SKIP IF BLTUB (OPCODE 717) ; 5224 =110 Q_Q*.5, ;BLTBU (OPCODE 716) - SHIFT RIGHT 1 BIT U 0006, 3063,3446,1200,4174,4007,0700,0000,0000,0000 ; 5225 J/BLTBU1 ;CONTINUE INSTRUCTION ; 5226 ; 5227 AD/D.AND.Q,DBUS/DBM, ;BLTUB - MASK LOW BYTES, SHIFT LEFT U 0007, 0570,4665,0017,4374,4007,0700,0000,0000,0377 ; 5228 DBM/#,#/377,DEST/AD*2,B/T1 ;AND STORE RESULT ; 5229 =00 FE_S#,S#/1767, ;-9 MORE BITS TO PUT LOW BYTE OF LH U 0570, 3070,4443,0000,4174,4007,0700,1010,0071,1767 ; 5230 CALL [T1LSH] ; IN TOP OF LH SHIFT LEFT ; 5231 =01 FE_S#,S#/1772, ;-6 BITS TO PUT HI BYTE TO RIGHT U 0571, 3071,4443,0000,4174,4007,0700,1010,0071,1772 ; 5232 CALL [Q_RSH] ; OF LOW BYTE. U 0573, 3056,4662,0000,4374,4007,0700,0000,0000,1774 ; 5233 =11 Q_Q.AND.#,#/001774 ;KEEP ONLY HI BYTES ; 5234 = ; 5235 AD/A.OR.Q,A/T1,DEST/AD, ;MERGE PAIRS OF BYTES. NOW SWAPPED, U 3056, 3057,3001,1717,4174,4007,0700,0000,0000,0000 ; 5236 B/T1 ;BUT STILL IN HALF-WORDS ; 5237 AD/57,RSRC/0A,A/T1, ;CLEAR LH OF Q WHILE LOADING U 3057, 3060,5742,1700,4174,4007,0700,0000,0000,0000 ; 5238 DEST/Q_AD ;RH WITH LOW WORD U 3060, 3061,3444,0012,4174,4007,0700,0000,0000,0000 ; 5239 Q_Q*2 ;SHIFT LOW WORD ACROSS 1/2 WORD U 3061, 3062,3444,0012,4174,4007,0700,0000,0000,0000 ; 5240 Q_Q*2 ;AND INTO FINAL POSITION ; 5241 [T1]_[T1].AND.# CLR RH, ;CLEAR ALL BUT HIGH 16-BIT WORD U 3062, 3067,4521,1717,4374,4007,0700,0000,0077,7774 ; 5242 #/777774,J/BLTXV ;FROM T1 AND CONTINUE ; 5243 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 142 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT U 3063, 3064,3446,1200,4174,4007,0700,0000,0000,0000 ; 5244 BLTBU1: Q_Q*.5 ;NOW IN 1/2 WORDS U 3064, 3065,3446,1200,4170,4007,0700,0000,0000,0000 ; 5245 Q_Q*.5,HOLD LEFT ;INSERT A NULL BIT IN RH U 3065, 3066,3446,1200,4170,4007,0700,0000,0000,0000 ; 5246 Q_Q*.5,HOLD LEFT ;ONE MORE - NOW IN HALF WORDS ; 5247 AD/D.AND.Q,DBUS/DBM, ;BUT NOT SWAPPED. COPY RIGHT BYTE U 3066, 0610,4665,0017,4374,4007,0700,0000,0000,0377 ; 5248 DBM/#,#/377,DEST/AD*2,B/T1 ;TO T1 AND SHIFT LEFT 1 POSITION ; 5249 =00 FE_S#,S#/1771, ;-7 BITS MORE U 0610, 3070,4443,0000,4174,4007,0700,1010,0071,1771 ; 5250 CALL [T1LSH] ;TO FINAL RESTING PLACE ; 5251 =01 FE_S#,S#/1770, ;-8. LEFT BYTES MOVE RIGHT U 0611, 3071,4443,0000,4174,4007,0700,1010,0071,1770 ; 5252 CALL [Q_RSH] ;TO FINAL RESTING PLACE U 0613, 3067,4662,0000,4374,4007,0700,0000,0000,0377 ; 5253 =11 Q_Q.AND.#,#/377 ;WANT ONLY THE NEW BYTES ; 5254 = ; 5255 ; 5256 BLTXV: Q_[T1].OR.Q, ;MERGE RESULTS U 3067, 3072,3002,1700,4174,4007,0700,0000,0000,0000 ; 5257 J/BLTXW ;AND STUFF IN MEMORY ; 5258 U 3070, 0001,3445,1717,4174,4004,1700,1020,0041,0001 ; 5259 T1LSH: [T1]_[T1]*2,SHIFT,RETURN [1] U 3071, 0002,3446,1200,4174,4004,1700,1020,0041,0001 ; 5260 Q_RSH: Q_Q*.5,SHIFT,RETURN [2] ; 5261 ; 5262 BLTXW: VMA_[BRX],START WRITE, ;DEST TO VMA U 3072, 3073,3443,0600,4174,4007,0700,0200,0003,0312 ; 5263 PXCT BLT DEST U 3073, 3074,3223,0000,4174,4007,0701,0200,0000,0002 ; 5264 MEM WRITE,MEM_Q ;STORE U 3074, 1306,2113,0603,4174,4007,0521,4000,0000,0000 ; 5265 [BRX]-[AR],3T,SKIP DP0 ;DONE? U 1306, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5266 =0 END BLT,J/DONE ;YES U 1307, 3075,0111,0706,4174,4007,0700,0000,0000,0000 ; 5267 [BRX]_[BRX]+1 ;NO, INC DEST ; 5268 VMA_[ARX]+1,LOAD VMA, ; AND SOURCE (LOADING VMA) ; 5269 PXCT BLT SRC,START READ,;START UP MEMORY U 3075, 3055,0111,0704,4170,4007,0700,0200,0004,0712 ; 5270 J/BLTXLP ;AND CONTINUE WITH NEXT WORD ; 5271 .ENDIF/UBABLT ; 5272 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 143 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FAD, FSB ; 5273 .TOC "FLOATING POINT -- FAD, FSB" ; 5274 ; 5275 .DCODE D 0140, 0701,1577,1100 ; 5276 140: FL-R, FL-AC, J/FAD D 0142, 0702,1577,1700 ; 5277 142: FL-RW, FL-MEM, J/FAD D 0143, 0703,1577,1700 ; 5278 FL-RW, FL-BOTH, J/FAD D 0144, 0711,1577,1100 ; 5279 FL-R, FL-AC, ROUND, J/FAD D 0145, 0611,1577,0100 ; 5280 FL-I, FL-AC, ROUND, J/FAD D 0146, 0712,1577,1700 ; 5281 FL-RW, FL-MEM, ROUND, J/FAD D 0147, 0713,1577,1700 ; 5282 FL-RW, FL-BOTH, ROUND, J/FAD ; 5283 D 0150, 0701,1576,1100 ; 5284 150: FL-R, FL-AC, J/FSB D 0152, 0702,1576,1700 ; 5285 152: FL-RW, FL-MEM, J/FSB D 0153, 0703,1576,1700 ; 5286 FL-RW, FL-BOTH, J/FSB D 0154, 0711,1576,1100 ; 5287 FL-R, FL-AC, ROUND, J/FSB D 0155, 0611,1576,0100 ; 5288 FL-I, FL-AC, ROUND, J/FSB D 0156, 0712,1576,1700 ; 5289 FL-RW, FL-MEM, ROUND, J/FSB D 0157, 0713,1576,1700 ; 5290 FL-RW, FL-BOTH, ROUND, J/FSB ; 5291 .UCODE ; 5292 ; 5293 ;BOTH FAD & FSB ARE ENTERED WITH THE MEMORY OPERAND IN AR ; 5294 ; SIGN SMEARED. THE EXPONENT IN BOTH SC AND FE. ; 5295 1576: U 1576, 1577,2441,0303,4174,4007,0700,4000,0000,0000 ; 5296 FSB: [AR]_-[AR] ;MAKE MEMOP NEGATIVE ; 5297 ; 5298 1577: U 1577, 0674,3771,0005,0276,6006,7701,2000,0020,2000 ; 5299 FAD: [BR]_AC, SC_SC-EXP-1, 3T, SCAD DISP ; 5300 =0* U 0674, 1312,3333,0005,4174,4007,0520,0000,0000,0000 ; 5301 FAS1: READ [BR], SKIP DP0, J/FAS2 ;BR .LE. AR U 0676, 3076,3441,0304,4174,4007,0700,0000,0000,0000 ; 5302 [ARX]_[AR] ;SWAP AR AND BR U 3076, 3077,3441,0503,4174,4007,0700,2000,0041,2000 ; 5303 [AR]_[BR], SC_EXP U 3077, 3100,3441,0405,4174,4007,0700,2000,0020,0000 ; 5304 [BR]_[ARX], SC_SC-FE-1 ;NUMBER OF SHIFT STEPS U 3100, 1310,3333,0003,4174,4007,0520,1000,0041,2000 ; 5305 READ [AR], FE_EXP, 2T, SKIP DP0 U 1310, 3101,4551,0303,4374,0007,0700,0000,0000,0777 ; 5306 =0 [AR]_+SIGN, J/FAS3 U 1311, 3101,3551,0303,4374,0007,0700,0000,0077,7000 ; 5307 [AR]_-SIGN, J/FAS3 ; 5308 ; 5309 =0 ;SIGN SMEAR BR AND UNNORMALIZE U 1312, 3101,4551,0505,4374,0007,0700,0000,0000,0777 ; 5310 FAS2: [BR]_+SIGN, J/FAS3 U 1313, 3101,3551,0505,4374,0007,0700,0000,0077,7000 ; 5311 [BR]_-SIGN, J/FAS3 ; 5312 U 3101, 1314,4222,0000,4174,4007,0630,2000,0060,0000 ; 5313 FAS3: Q_0, STEP SC ; 5314 =0 U 1314, 1314,3446,0505,4174,4047,0630,2000,0060,0000 ; 5315 FAS4: [BR]_[BR]*.5 LONG, STEP SC, ASHC, J/FAS4 U 1315, 0420,0111,0503,4174,4003,4701,0000,0000,0000 ; 5316 [AR]_[AR]+[BR], NORM DISP, J/SNORM ; 5317 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 144 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLAOTING POINT -- FMP ; 5318 .TOC "FLAOTING POINT -- FMP" ; 5319 ; 5320 .DCODE D 0160, 0701,1570,1100 ; 5321 160: FL-R, FL-AC, J/FMP D 0162, 0702,1570,1700 ; 5322 162: FL-RW, FL-MEM, J/FMP D 0163, 0703,1570,1700 ; 5323 FL-RW, FL-BOTH, J/FMP ; 5324 D 0164, 0711,1570,1100 ; 5325 FL-R, FL-AC, ROUND, J/FMP D 0165, 0611,1570,0100 ; 5326 FL-I, FL-AC, ROUND, J/FMP D 0166, 0712,1570,1700 ; 5327 FL-RW, FL-MEM, ROUND, J/FMP D 0167, 0713,1570,1700 ; 5328 FL-RW, FL-BOTH, ROUND, J/FMP ; 5329 .UCODE ; 5330 ; 5331 1570: ; 5332 FMP: [BRX]_AC, ;GET AC ; 5333 FE_SC+EXP, 3T, ;EXPONENT OF ANSWER U 1570, 1316,3771,0006,0276,6007,0521,1000,0040,2000 ; 5334 SKIP DP0 ;GET READY TO SMEAR SIGN U 1316, 3102,4551,0606,4374,0007,0700,0000,0000,0777 ; 5335 =0 [BRX]_+SIGN, J/FMP1 ;POSITIVE U 1317, 3102,3551,0606,4374,0007,0700,0000,0077,7000 ; 5336 [BRX]_-SIGN, J/FMP1 ;NEGATIVE U 3102, 0163,3442,0300,4174,4007,0700,2000,0071,0033 ; 5337 FMP1: Q_[AR], SC_27. ;GET MEMORY OPERAND ; 5338 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0163, 2663,3446,0606,4174,4007,0700,0010,0000,0000 ; 5339 CALL [MULSUB] ;MULTIPLY ; 5340 Q_Q.AND.#, #/777000, ;WE ONLY COMPUTED U 0167, 3103,4662,0000,4370,4007,0700,0000,0077,7000 ; 5341 HOLD LEFT ; 27 BITS U 3103, 3104,3441,0403,4174,4007,0700,1000,0041,0002 ; 5342 [AR]_[ARX], FE_FE+2 ;SET SHIFT PATHS ; 5343 [AR]_[AR]*.5 LONG, ;SHIFT OVER ; 5344 FE_FE-200, ;ADJUST EXPONENT U 3104, 0420,3446,0303,4174,4003,4701,1000,0041,1600 ; 5345 NORM DISP, J/SNORM ;NORMALIZE & EXIT ; 5346 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 145 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FDV ; 5347 .TOC "FLOATING POINT -- FDV" ; 5348 ; 5349 .DCODE D 0170, 0701,1574,1100 ; 5350 170: FL-R, FL-AC, J/FDV D 0172, 0702,1574,1700 ; 5351 172: FL-RW, FL-MEM, J/FDV D 0173, 0703,1574,1700 ; 5352 FL-RW, FL-BOTH, J/FDV ; 5353 D 0174, 0711,1574,1100 ; 5354 FL-R, FL-AC, ROUND, J/FDV D 0175, 0611,1574,0100 ; 5355 FL-I, FL-AC, ROUND, J/FDV D 0176, 0712,1574,1700 ; 5356 FL-RW, FL-MEM, ROUND, J/FDV D 0177, 0713,1574,1700 ; 5357 FL-RW, FL-BOTH, ROUND, J/FDV ; 5358 .UCODE ; 5359 ; 5360 ; 5361 1574: U 1574, 1320,3441,0305,0174,4007,0621,0000,0000,0000 ; 5362 FDV: [BR]_[AR], SKIP AD.EQ.0, AC ;COPY DIVSOR SEE IF 0 ; 5363 =0 ; 5364 [AR]_AC, FE_SC-EXP, SKIP DP0, ;GET AC & COMPUTE NEW U 1320, 1322,3771,0003,0276,6007,0520,1000,0030,2000 ; 5365 J/FDV0 ; EXPONENT U 1321, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5366 FL NO DIVIDE ;DIVIDE BY ZERO ; 5367 =0 U 1322, 3105,4551,0303,4374,0007,0700,0000,0000,0777 ; 5368 FDV0: [AR]_+SIGN, J/FDV1 U 1323, 3106,3551,0303,4374,0007,0700,0000,0077,7000 ; 5369 [AR]_-SIGN, J/FDV2 U 3105, 3107,3441,0304,4174,4007,0700,1000,0031,0200 ; 5370 FDV1: [ARX]_[AR],FE_-FE+200,J/FDV3 ;COMPUTE 2*DVND U 3106, 3107,2441,0304,4174,4007,0700,5000,0031,0200 ; 5371 FDV2: [ARX]_-[AR],FE_-FE+200,J/FDV3 ;ABSOLUTE VALUE U 3107, 1324,3445,0506,4174,4007,0520,0000,0000,0000 ; 5372 FDV3: [BRX]_[BR]*2, SKIP DP0 ;ABSOLUTE VALUE ; 5373 =0 U 1324, 1326,2113,0406,4174,4007,0311,4000,0000,0000 ; 5374 FDV4: [ARX]-[BRX], SKIP CRY0, 3T, J/FDV5 ;FLOATING NO DIV? U 1325, 1324,2445,0506,4174,4007,0700,4000,0000,0000 ; 5375 [BRX]_-[BR]*2, J/FDV4 ;FORCE ABSOLUTE VALUE ; 5376 =0 U 1326, 1330,3447,0606,4174,4007,0700,0000,0000,0000 ; 5377 FDV5: [BRX]_[BRX]*.5, J/FDV6 ;SHIFT BACK ARX U 1327, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5378 FL NO DIVIDE ;UNNORMALIZED INPUT ; 5379 =0 ; 5380 FDV6: [AR]_[AR]*2, ;DO NOT DROP A BIT U 1330, 3570,3445,0303,4174,4007,0700,0010,0000,0000 ; 5381 CALL [SBRL] ;AT FDV7+1 U 1331, 0144,2113,0604,4174,4007,0421,4000,0000,0000 ; 5382 [BRX]-[ARX], SKIP AD.LE.0 ;IS ANSWER .LE. 1? ; 5383 =00100 U 0144, 2726,4222,0000,4174,4007,0700,2010,0071,0033 ; 5384 FDV7: Q_0, SC_27., CALL [DIVSGN] ;DIVIDE U 0145, 0144,3447,0303,4174,4007,0700,1000,0041,0001 ; 5385 =00101 [AR]_[AR]*.5, FE_FE+1, J/FDV7 ;SCALE DV'END ; 5386 =01100 U 0154, 3110,3227,0003,4174,4007,0700,0000,0000,0000 ; 5387 FDV8: [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR ; 5388 =01101 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0155, 2036,3333,0003,4174,4007,0621,0010,0000,0000 ; 5389 CALL [SETSN] ; SEE HOW TO NEGATE ; 5390 =01110 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0156, 2036,3333,0003,4174,4007,0621,0010,0000,0000 ; 5391 CALL [SETSN] ; SEE HOW TO NEGATE U 0157, 3110,3227,0003,4174,4007,0700,0000,0000,0000 ; 5392 =01111 [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR U 0177, 3110,2227,0003,4174,4007,0700,4000,0000,0000 ; 5393 =11111 [AR]_-Q*.5, J/FDV9 ;ZERO RMDR ; 5394 U 3110, 1341,4222,0000,4174,4007,0700,0000,0000,0000 ; 5395 FDV9: Q_0, J/SNORM0 ;GO NORMALIZE ; 5396 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 146 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FLTR, FSC ; 5397 .TOC "FLOATING POINT -- FLTR, FSC" ; 5398 ; 5399 .DCODE D 0127, 0011,1616,1100 ; 5400 127: R, FL-AC,ROUND, J/FLTR D 0132, 0001,1621,2100 ; 5401 132: I, FL-AC, J/FSC ; 5402 .UCODE ; 5403 ; 5404 1616: U 1616, 1332,4553,0300,4374,4007,0321,0000,0077,7000 ; 5405 FLTR: [AR].AND.#, #/777000, 3T, SKIP ADL.EQ.0 ;SMALL POS NUMBER? U 1332, 1334,2441,0305,4174,4007,0521,4000,0000,0000 ; 5406 =0 [BR]_-[AR], SKIP DP0, 3T, J/FLTR1 ;NO--SEE IF MINUS U 1333, 1341,4222,0000,4174,4007,0700,1000,0071,0233 ; 5407 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5408 =0 ; 5409 FLTR1: [BR].AND.#, #/777000, 3T, U 1334, 1336,4553,0500,4374,4007,0321,0000,0077,7000 ; 5410 SKIP ADL.EQ.0, J/FLTR1A ;SMALL NEGATIVE NUMBER U 1335, 3111,4222,0000,4174,4007,0700,1000,0071,0244 ; 5411 Q_0, FE_S#, S#/244, J/FLTR2 ;LARGE POS NUMBER ; 5412 =0 U 1336, 3111,4222,0000,4174,4007,0700,1000,0071,0244 ; 5413 FLTR1A: Q_0, FE_S#, S#/244, J/FLTR2 ;BIG NUMBER U 1337, 1341,4222,0000,4174,4007,0700,1000,0071,0233 ; 5414 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5415 ;AT THIS POINT WE KNOW THE NUMBER TAKES MORE THAN 27 BITS. WE JUST ; 5416 ; SHIFT 8 PLACES RIGHT AND NORMALIZE. WE COULD BE MORE CLEVER BUT ; 5417 ; THIS IS THE RARE CASE ANYWAY. U 3111, 1340,3446,0303,4174,4047,0700,2000,0071,0006 ; 5418 FLTR2: [AR]_[AR]*.5 LONG, ASHC, SC_6 ;SHOVE OVER TO THE RIGHT ; 5419 =0 ; 5420 FLTR3: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT RIGHT 9 PLACES U 1340, 1340,3446,0303,4174,4047,0630,2000,0060,0000 ; 5421 STEP SC, J/FLTR3 ; SO IT WILL FIT U 1341, 0420,3333,0003,4174,4003,4701,0000,0000,0000 ; 5422 SNORM0: READ [AR], NORM DISP, J/SNORM ;NORMALIZE ANSWER ; 5423 ; 5424 ; 5425 1621: U 1621, 3112,3333,0003,4174,4007,0700,2000,0041,4000 ; 5426 FSC: READ [AR], SC_SHIFT U 3112, 3113,4222,0000,0174,4007,0700,0000,0000,0000 ; 5427 Q_0, AC ;DON'T SHIFT IN JUNK U 3113, 1342,3771,0003,0276,6007,0520,1000,0040,2000 ; 5428 [AR]_AC, FE_SC+EXP, SKIP DP0 ;SIGN SMEAR U 1342, 1341,4551,0303,4374,0007,0700,0000,0000,0777 ; 5429 =0 [AR]_+SIGN, J/SNORM0 U 1343, 1341,3551,0303,4374,0007,0700,0000,0077,7000 ; 5430 [AR]_-SIGN, J/SNORM0 ; 5431 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 147 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- FIX AND FIXR ; 5432 .TOC "FLOATING POINT -- FIX AND FIXR" ; 5433 ; 5434 .DCODE D 0122, 0701,1626,1100 ; 5435 122: FL-R, FL-AC, J/FIX D 0126, 0711,1626,1100 ; 5436 126: FL-R, FL-AC,ROUND, J/FIX ; 5437 .UCODE ; 5438 ; 5439 1626: ; 5440 FIX: Q_0, SCAD/A+B, SCADA/S#, ;CLEAR Q, SEE IF ; 5441 S#/1534, SCADB/FE, 3T, ; ANSWER FITS IN U 1626, 0720,4222,0000,4174,4006,7701,0000,0041,1534 ; 5442 SCAD DISP ; 35 BITS. U 0720, 0603,4443,0000,4174,4467,0700,0000,0041,1000 ; 5443 =0* SET AROV, J/NIDISP ;TOO BIG U 0722, 0724,4443,0000,4174,4006,7701,2000,0041,1544 ; 5444 SC_FE+S#, S#/1544, 3T, SCAD DISP ;NEED TO MOVE LEFT? U 0724, 1346,4443,0000,4174,4007,0630,2000,0060,0000 ; 5445 =0* STEP SC, J/FIXL U 0726, 3114,4443,0000,4174,4007,0700,2000,0031,0232 ; 5446 SC_S#-FE, S#/232 ;NUMBER OF PLACES TO SHIFT ; 5447 ; RIGHT U 3114, 1344,4443,0000,4174,4007,0630,2000,0060,0000 ; 5448 STEP SC ;ALREADY THERE ; 5449 =0 ; 5450 FIXR: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT BINARY POINT U 1344, 1344,3446,0303,4174,4047,0630,2000,0060,0000 ; 5451 STEP SC, J/FIXR ; TO BIT 35.5 U 1345, 0063,3447,0705,4174,4003,7700,0000,0000,0000 ; 5452 [BR]_[ONE]*.5, B DISP, J/FIXX ;WHICH KIND OF FIX? ; 5453 ; 5454 =0 U 1346, 1346,3445,0303,4174,4007,0630,2000,0060,0000 ; 5455 FIXL: [AR]_[AR]*2, STEP SC, J/FIXL ;SHIFT LEFT U 1347, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5456 AC_[AR], NEXT INST ;WE ARE NOW DONE ; 5457 ; 5458 =0*11 U 0063, 1350,3333,0003,4174,4007,0520,0000,0000,0000 ; 5459 FIXX: READ [AR], SKIP DP0, J/FIXT ;FIX--SEE IF MINUS U 0073, 1514,0111,0503,4174,4003,7700,0200,0003,0001 ; 5460 FIXX1: [AR]_[AR]+[BR], FL-EXIT ;FIXR--ROUND UP ; 5461 =0 U 1350, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5462 FIXT: AC_[AR], NEXT INST ;FIX & +, TRUNCATE U 1351, 1352,3223,0000,4174,4007,0621,0000,0000,0000 ; 5463 READ Q, SKIP AD.EQ.0 ;NEGATIVE--ANY FRACTION? U 1352, 1514,0111,0703,4174,4003,7700,0200,0003,0001 ; 5464 =0 [AR]_[AR]+1, FL-EXIT ;YES--ROUND UP ; 5465 [BR]_.NOT.[MASK], ;MAYBE--GENERATE .75 U 1353, 0073,7441,1205,4174,4007,0700,0000,0000,0000 ; 5466 J/FIXX1 ;ROUND UP IF BIT 36 OR ; 5467 ; 37 SET ; 5468 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 148 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5469 .TOC "FLOATING POINT -- SINGLE PRECISION NORMALIZE" ; 5470 ; 5471 ;NORMALIZE DISPATCH IS A 9-WAY DISPATCH. THE HARDWARE LOOKS AT ; 5472 ; 4 SIGNALS: DP=0, DP BIT 8, DP BIT 9, DP BIT -2. THE 9 CASES ; 5473 ; ARE: ; 5474 ; 5475 ; DP=0 DP08 DP09 DP00 ACTION TO TAKE ; 5476 ; 0 0 0 0 SHIFT LEFT ; 5477 ; ; 5478 ; 0 0 0 1 NEGATE AND RETRY ; 5479 ; ; 5480 ; 0 0 1 0 ALL DONE ; 5481 ; ; 5482 ; 0 0 1 1 NEGATE AND RETRY ; 5483 ; ; 5484 ; 0 1 0 0 SHIFT RIGHT ; 5485 ; ; 5486 ; 0 1 0 1 NEGATE AND RETRY ; 5487 ; ; 5488 ; 0 1 1 0 SHIFT RIGHT ; 5489 ; ; 5490 ; 0 1 1 1 NEGATE AND RETRY ; 5491 ; ; 5492 ; 1 - - - LOOK AT Q BITS ; 5493 ; 5494 ;ENTER HERE WITH UNNORMALIZED NUMBER IN AR!Q. FE HOLDS THE NEW ; 5495 ; EXPONENT. CALL WITH NORM DISP ; 5496 =0000 ;9-WAY DISPATCH U 0420, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5497 SNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 0421, 1356,2222,0000,4174,4007,0311,4000,0000,0000 ; 5498 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0422, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5499 READ [AR], NORM DISP, CALL [SROUND] U 0423, 1356,2222,0000,4174,4007,0311,4000,0000,0000 ; 5500 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0424, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5501 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0425, 1356,2222,0000,4174,4007,0311,4000,0000,0000 ; 5502 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0426, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5503 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0427, 1356,2222,0000,4174,4007,0311,4000,0000,0000 ; 5504 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0430, 1354,3223,0000,4174,4007,0621,0000,0000,0000 ; 5505 READ Q, SKIP AD.EQ.0, J/SNORM1 U 0436, 1355,3770,0303,4324,0457,0700,0000,0041,0000 ; 5506 =1110 [AR]_EXP, J/FLEX ; 5507 = ; 5508 =0 U 1354, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5509 SNORM1: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 1355, 1514,4443,0000,4174,4003,7700,0200,0003,0001 ; 5510 FLEX: FL-EXIT ; 5511 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 149 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5512 =0 U 1356, 0440,7441,0303,4174,4003,4701,0000,0000,0000 ; 5513 SNNEG: [AR]_.NOT.[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD ; 5514 ; (NO CARRY) U 1357, 0440,2441,0303,4174,4003,4701,4000,0000,0000 ; 5515 [AR]_-[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD (W/CARRY) ; 5516 =0000 U 0440, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5517 SNNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0442, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5518 =0010 READ [AR], NORM DISP, CALL [SROUND] U 0444, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5519 =0100 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0446, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5520 =0110 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0450, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5521 =1000 [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0456, 0327,3770,0303,4324,0453,7700,0000,0041,0000 ; 5522 =1110 [AR]_EXP, B DISP ; 5523 = U 0327, 1360,4553,1300,4374,4007,0321,0000,0000,2000 ; 5524 =0111 TL [FLG], FLG.SN/1, J/SNNOT ; 5525 [AR]_[AR].AND.[MASK], ;CLEAR ANY LEFT OVER BITS U 0337, 1363,4111,1203,4174,4007,0700,0000,0000,0000 ; 5526 J/SNNOT1 ; 5527 =0 U 1360, 3115,7441,0303,4174,4007,0700,0000,0000,0000 ; 5528 SNNOT: [AR]_.NOT.[AR], J/SNNOT2 U 1361, 1362,3223,0000,4174,4007,0621,0000,0000,0000 ; 5529 READ Q, SKIP AD.EQ.0 U 1362, 3115,7441,0303,4174,4007,0700,0000,0000,0000 ; 5530 =0 [AR]_.NOT.[AR], J/SNNOT2 U 1363, 3115,2441,0303,4174,4007,0700,4000,0000,0000 ; 5531 SNNOT1: [AR]_-[AR], J/SNNOT2 ;NORMAL NEGATE AND EXIT U 3115, 1514,4221,0013,4174,4003,7700,0200,0003,0001 ; 5532 SNNOT2: [FLG]_0, FL-EXIT ; 5533 ; 5534 ; 5535 ; 5536 .TOC "FLOATING POINT -- ROUND ANSWER" ; 5537 ; 5538 =*01* U 0262, 0407,3447,0705,4174,4003,7700,0000,0000,0000 ; 5539 SROUND: [BR]_[ONE]*.5, B DISP, J/SRND1 U 0266, 0262,3447,0303,4174,4007,0700,1000,0041,0001 ; 5540 [AR]_[AR]*.5, FE_FE+1, J/SROUND ;WE WENT TOO FAR ; 5541 =0111 U 0407, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5542 SRND1: RETURN [16] ;NOT ROUNDING INSTRUCTION U 0417, 0302,0111,0503,4174,4003,4701,0000,0000,0000 ; 5543 [AR]_[AR]+[BR], NORM DISP U 0302, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5544 =*01* RETURN [16] U 0306, 0016,3447,0303,4174,4004,1700,1000,0041,0001 ; 5545 [AR]_[AR]*.5, FE_FE+1, RETURN [16] ; 5546 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 150 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFAD, DFSB ; 5547 .TOC "FLOATING POINT -- DFAD, DFSB" ; 5548 ; 5549 .DCODE D 0110, 1100,1637,1100 ; 5550 110: DBL FL-R, J/DFAD D 0111, 1100,1635,1100 ; 5551 111: DBL FL-R, J/DFSB ; 5552 .UCODE ; 5553 ; 5554 ;ENTER FROM A-READ CODE WITH: ; 5555 ;FE/ EXP ; 5556 ;SC/ EXP ; 5557 ;AR/ C(E) SHIFT RIGHT 2 PLACES ; 5558 ;ARX/ C(E+1) SHIFTED RIGHT 1 PLACE ; 5559 1635: U 1635, 3116,2441,0404,4174,4007,0700,4000,0000,0000 ; 5560 DFSB: [ARX]_-[ARX] ;NEGATE LOW WORD U 3116, 1637,2441,0303,4174,4007,0700,0040,0000,0000 ; 5561 [AR]_-[AR]-.25, MULTI PREC/1 ; 5562 1637: U 1637, 3117,4557,0006,1274,4007,0701,0000,0000,1441 ; 5563 DFAD: [BRX]_(AC[1].AND.[MAG])*.5, 3T ;GET LOW WORD ; 5564 [BR]_AC*.5, 3T, ;GET AC AND START TO SHIFT ; 5565 SC_SC-EXP-1, ;NUMBER OF PLACES TO SHIFT U 3117, 1364,3777,0005,0274,4007,0521,2000,0020,2000 ; 5566 SKIP DP0 ;SEE WHAT SIGN ; 5567 =0 [BR]_+SIGN*.5, 3T, ;SIGN SMEAR U 1364, 1366,5547,0505,0374,4007,0631,0000,0077,7400 ; 5568 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5569 [BR]_-SIGN*.5, 3T, ;SIGN SMEAR U 1365, 1366,3547,0505,0374,4007,0631,0000,0077,7400 ; 5570 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5571 =0 ; 5572 DFAS1: Q_[BRX], ;AR IS BIGGER U 1366, 1370,3442,0600,4174,4007,0700,0000,0000,0000 ; 5573 J/DFAS2 ;ADJUST BR!Q ; 5574 [T0]_AC, ;BR IS BIGGER OR EQUAL U 1367, 3121,3771,0016,0276,6007,0700,2000,0041,2000 ; 5575 SC_EXP, 2T, J/DFAS3 ;SET SC TO THAT EXPONENT ; 5576 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 151 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFAD, DFSB ; 5577 ;HERE IF AR!ARX IS GREATER THAN BR!BRX ; 5578 =0 U 1370, 0153,3441,0516,4174,4007,0700,0010,0000,0000 ; 5579 DFAS2: [T0]_[BR], CALL [DFADJ] ;ADJUST BR!Q U 1371, 3120,3441,1605,4174,4007,0700,0000,0000,0000 ; 5580 [BR]_[T0] ;PUT ANSWER BACK U 3120, 3124,0002,0400,4174,4007,0700,0000,0000,0000 ; 5581 Q_Q+[ARX], J/DFAS5 ;ADD LOW WORDS ; 5582 ; 5583 ;HERE IS BR!BRX IF GREATER THAN OR EQUAL TO AR!ARX ; 5584 DFAS3: Q_[ARX], ;SETUP TO SHIFT AR!ARX U 3121, 3122,3442,0400,4174,4007,0700,2000,0020,0000 ; 5585 SC_SC-FE-1 ;COMPUTE # OF PLACES U 3122, 1372,3333,0016,4174,4007,0700,1000,0041,2000 ; 5586 READ [T0], FE_EXP ;EXPONENT OF ANSWER U 1372, 0153,3441,0316,4174,4007,0700,0010,0000,0000 ; 5587 =0 [T0]_[AR], CALL [DFADJ] ;ADJUST AR!Q U 1373, 3123,3441,1603,4174,4007,0700,0000,0000,0000 ; 5588 [AR]_[T0] ;PUT ANSWER BACK U 3123, 3124,0002,0600,4174,4007,0700,0000,0000,0000 ; 5589 Q_Q+[BRX], J/DFAS5 ;ADD LOW WORDS ; 5590 ; 5591 ;BIT DIDDLE TO GET THE ANSWER (INCLUDING 2 GUARD BITS) INTO ; 5592 ; AR!Q ; 5593 DFAS5: [AR]_([AR]+[BR])*.5 LONG, ;ADD HIGH WORDS U 3124, 3125,0116,0503,4174,4047,0700,0040,0000,0000 ; 5594 MULTI PREC/1, ASHC ;INJECT SAVED CRY2 ; 5595 [AR]_[AR]*2 LONG, ;SHIFT BACK LEFT U 3125, 0433,3444,0303,4174,4046,2700,0000,0000,0000 ; 5596 ASHC, MUL DISP ;SEE IF WE LOST A 1 ; 5597 =1011 U 0433, 3126,5111,1217,4174,4007,0700,0000,0000,0000 ; 5598 DFAS6: [T1]_[T1].AND.NOT.[MASK], J/DFAS7 U 0437, 0433,0222,0000,4174,4007,0700,4000,0000,0000 ; 5599 Q_Q+.25, J/DFAS6 ; 5600 DFAS7: [AR]_[AR]*2 LONG, ASHC, ;PUT IN GUARD BITS U 3126, 3127,3444,0303,4174,4047,0700,1000,0041,1777 ; 5601 FE_FE-1 ; 5602 [AR]_[AR]*2 LONG, ASHC, U 3127, 3130,3444,0303,4174,4047,0700,1000,0041,1777 ; 5603 FE_FE-1 U 3130, 2005,3002,1700,4170,4007,0700,0000,0000,0000 ; 5604 Q_[T1].OR.Q, HOLD LEFT, J/DNORM0 ; 5605 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 152 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFAD, DFSB ; 5606 ;SUBROUTINE TO ADJUST NUMBER IN T0!Q ; 5607 ;RETURNS 1 WITH ; 5608 ; T0!Q ADJUSTED ; 5609 ; FLG.SN=1 IF WE SHIFTED OUT ANY 1 BITS (STICKY BIT) ; 5610 ; T1 HAS Q TWO STEPS PRIOR TO BEING DONE ; 5611 DFADJ "STEP SC, ASHC, MUL DISP" ; 5612 ; 5613 =0**11 ; 5614 DFADJ: [T0]_[T0]*2 LONG, DIV, ;MOVE EVERYTHING 2 PLACES U 0153, 2037,3444,1616,4174,4067,0700,0010,0000,0000 ; 5615 CALL [CLRSN] U 0173, 3131,3444,1616,4174,4067,0700,0000,0000,0000 ; 5616 [T0]_[T0]*2 LONG, DIV U 3131, 3132,3444,1616,4174,4067,0700,0000,0000,0000 ; 5617 [T0]_[T0]*2 LONG, DIV ; 5618 [T0]_[T0]*.5 LONG, ASHC, ;SHIFT AT LEAST 1 PLACE U 3132, 0472,3446,1616,4174,4047,0630,2000,0060,0000 ; 5619 STEP SC ; 5620 =1010 ; 5621 DFADJ1: [T0]_[T0]*.5 LONG, ;UNNORMALIZE T0!Q U 0472, 0472,3446,1616,4174,4046,2630,2000,0060,0000 ; 5622 DFADJ, J/DFADJ1 ;LOOP TILL DONE ; 5623 DFADJ2: [T1]_Q, ;SAVE GUARD BITS U 0473, 0453,3221,0017,4174,4006,2700,0000,0000,0000 ; 5624 MUL DISP, J/DFADJ5 ;LOOK AT LAST BIT U 0476, 1374,3551,1313,4374,0007,0700,0000,0000,2000 ; 5625 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ3 U 0477, 1375,3551,1313,4374,0007,0700,0000,0000,2000 ; 5626 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ4 ; 5627 ; 5628 =0 U 1374, 1374,3446,1616,4174,4047,0630,2000,0060,0000 ; 5629 DFADJ3: [T0]_[T0]*.5 LONG, ASHC, STEP SC, J/DFADJ3 U 1375, 0453,3221,0017,4174,4007,0700,0000,0000,0000 ; 5630 DFADJ4: [T1]_Q ;SAVE 2 GUARD BITS ; 5631 =1011 U 0453, 3133,3446,1616,4174,4047,0700,0000,0000,0000 ; 5632 DFADJ5: [T0]_[T0]*.5 LONG, ASHC, J/DFADJ6 U 0457, 0453,3551,1313,4374,0007,0700,0000,0000,2000 ; 5633 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ5 U 3133, 0001,3446,1616,4174,4044,1700,0000,0000,0000 ; 5634 DFADJ6: [T0]_[T0]*.5 LONG, ASHC, RETURN [1] ; 5635 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 153 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFMP ; 5636 .TOC "FLOATING POINT -- DFMP" ; 5637 ; 5638 .DCODE D 0112, 1105,1631,1100 ; 5639 112: DBL FL-R, DAC, J/DFMP ; 5640 .UCODE ; 5641 ; 5642 ;SAME ENTRY CONDITIONS AS DFAD/DFSB ; 5643 1631: U 1631, 1376,3442,0400,4174,4007,0700,2000,0071,0006 ; 5644 DFMP: Q_[ARX], SC_6 ;SHIFT MEM OP 8 PLACES ; 5645 =0 ; 5646 DFMP1: [AR]_[AR]*2 LONG, ASHC, ;SHIFT U 1376, 1376,3444,0303,4174,4047,0630,2000,0060,0000 ; 5647 STEP SC, J/DFMP1 U 1377, 3134,3446,1200,4174,4007,0700,0000,0000,0000 ; 5648 Q_Q*.5 U 3134, 3135,4662,0000,4374,0007,0700,0000,0007,7777 ; 5649 Q_Q.AND.#, #/077777, HOLD RIGHT U 3135, 3136,3221,0005,4174,4007,0700,0000,0000,0000 ; 5650 [BR]_Q ;COPY LOW WORD ; 5651 ; ; 5652 ; BRX * BR ==> C(E+1) * C(AC+1) ; 5653 ; U 3136, 0730,4557,0006,1274,4007,0700,0000,0000,1441 ; 5654 [BRX]_(AC[1].AND.[MAG])*.5 ;GET LOW AC U 0730, 2664,3447,0606,4174,4007,0700,2010,0071,0043 ; 5655 =0** [BRX]_[BRX]*.5, SC_35., CALL [MULSB1] ; 5656 ; ; 5657 ; BRX * Q ==> C(E) * C(AC+1) ; 5658 ; U 0734, 0732,3442,0300,4174,4007,0700,2000,0071,0043 ; 5659 Q_[AR], SC_35. ;GO MULT NEXT HUNK U 0732, 2665,4443,0000,4174,4007,0700,0010,0000,0000 ; 5660 =0** CALL [MULTIPLY] U 0736, 3137,3441,0416,4174,4007,0700,0000,0000,0000 ; 5661 [T0]_[ARX] ;SAVE PRODUCT U 3137, 3140,3227,0004,4174,4007,0700,2000,0011,0000 ; 5662 [ARX]_Q*.5, SC_FE ;PUT IN NEXT STEP ; 5663 ; ; 5664 ; BRX * BR ==> C(AC) * C(E+1) ; 5665 ; ; 5666 [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF ; 5667 FE_SC+EXP, ;EXPONENT ON ANSWER U 3140, 2000,3777,0006,0274,4007,0521,1000,0040,2000 ; 5668 SKIP DP0, 3T U 2000, 1012,5547,0606,4374,4007,0701,0000,0077,7400 ; 5669 =0 [BRX]_+SIGN*.5, 3T, J/DFMP2 U 2001, 1012,3547,0606,4374,4007,0701,0000,0077,7400 ; 5670 [BRX]_-SIGN*.5, 3T ; 5671 =0** U 1012, 2665,3442,0500,4174,4007,0700,2010,0071,0043 ; 5672 DFMP2: Q_[BR], SC_35., CALL [MULTIPLY] ;GO MULTIPLY U 1016, 3141,3221,0017,4174,4007,0700,0000,0000,0000 ; 5673 [T1]_Q ;SAVE FOR ROUNDING U 3141, 1062,0111,1604,4174,4007,0700,0000,0000,0000 ; 5674 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 5675 ; ; 5676 ; BRX * Q ==> C(AC) * C(E) ; 5677 ; ; 5678 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 1062, 2665,3442,0300,4174,4007,0700,2010,0071,0043 ; 5679 CALL [MULTIPLY] ; .. ; 5680 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 154 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFMP ; 5681 ;OK, WE NOW HAVE THE PRODUCT IN ARX!Q!T1. ALL WE NEED TO DO ; 5682 ; IS SOME BIT DIDDLES TO GET EVERYTHING IN THE RIGHT PLACE ; 5683 [AR]_[ARX]*.5 LONG, ;SHIFT THE ANSWER U 1066, 0243,3446,0403,4174,4007,0700,1000,0041,1576 ; 5684 FE_FE+S#, S#/1576 ;CORRECT EXPONENT ; 5685 =0**11 READ [T1], SKIP AD.EQ.0, ;SEE IF LOW ORDER 1 U 0243, 2036,3333,0017,4174,4007,0621,0010,0000,0000 ; 5686 CALL [SETSN] ; BITS AROUND SOMEPLACE U 0263, 3142,3444,0303,4174,4047,0700,0000,0000,0000 ; 5687 [AR]_[AR]*2 LONG, ASHC ;SHIFT LEFT U 3142, 3143,3447,0705,4174,4007,0700,0000,0000,0000 ; 5688 [BR]_[ONE]*.5 ;PLACE TO INSTERT BITS U 3143, 2002,4553,1700,4374,4007,0321,0000,0020,0000 ; 5689 TL [T1], #/200000 ;ANYTHING TO INJECT? U 2002, 2003,0002,0500,4174,4007,0700,0000,0000,0000 ; 5690 =0 Q_Q+[BR] ;YES--PUT IT IN U 2003, 3144,3444,0303,4174,4047,0700,0000,0000,0000 ; 5691 [AR]_[AR]*2 LONG, ASHC ;MAKE ROOM FOR MORE U 3144, 2004,4553,1700,4374,4007,0321,0000,0010,0000 ; 5692 TL [T1], #/100000 ;ANOTHER BIT NEEDED U 2004, 2005,0002,0500,4174,4007,0700,0000,0000,0000 ; 5693 =0 Q_Q+[BR] ;YES--PUT IN LAST BIT ; 5694 DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO U 2005, 0520,3333,0003,4174,4003,4701,1000,0041,0002 ; 5695 FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5696 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 155 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DFDV ; 5697 .TOC "FLOATING POINT -- DFDV" ; 5698 ; 5699 .DCODE D 0113, 1105,1636,1100 ; 5700 113: DBL FL-R, DAC, J/DFDV ; 5701 .UCODE ; 5702 1636: U 1636, 0132,3441,0406,4174,4007,0700,0000,0000,0000 ; 5703 DFDV: [BRX]_[ARX] ;COPY OPERAND (COULD SAVE TIME ; 5704 ; WITH SEPERATE A-READ FOR DFDV) U 0132, 2037,4221,0017,4174,4007,0700,0010,0000,0000 ; 5705 =1**10 [T1]_0, CALL [CLRSN] ;CLEAR FLAG ; 5706 [BR]_[AR], SKIP AD.LE.0, ;SEE IF POSITIVE U 0133, 2006,3441,0305,1174,4007,0421,0000,0000,1441 ; 5707 AC[1] ;WARM UP RAM ; 5708 =0 ; 5709 DFDV1: [ARX]_(AC[1].AND.[MAG])*.5, ;POSITIVE--GET AC U 2006, 3147,4557,0004,1274,4007,0700,0000,0000,1441 ; 5710 J/DFDV2 ; AND CONTINUE BELOW U 2007, 3145,7441,1717,4174,4007,0700,0000,0000,0000 ; 5711 [T1]_.NOT.[T1] ;DV'SOR NEGATIVE (OR ZERO) U 3145, 3146,2441,0606,4174,4007,0700,4000,0000,0000 ; 5712 [BRX]_-[BRX] ;NEGATE LOW WORD ; 5713 AD/-B-.25, B/BR, DEST/AD, ;NEGATE HIGH WORD ; 5714 MULTI PREC/1, 3T, ;ADDING IN CRY02 ; 5715 SKIP DP0, AC[1], ;SEE IF STILL NEGATIVE U 3146, 2006,2331,0005,1174,4007,0521,0040,0000,1441 ; 5716 J/DFDV1 ; .. ; 5717 DFDV2: [AR]_AC*.5, ;GET AC AND SHIFT ; 5718 FE_SC-EXP, 3T, ;COMPUTE NEW EXPONENT U 3147, 2010,3777,0003,0274,4007,0521,1000,0030,2000 ; 5719 SKIP DP0 ;SEE IF NEGATIVE U 2010, 2012,5547,0303,4374,4007,0701,0000,0077,7400 ; 5720 =0 [AR]_+SIGN*.5, 3T, J/DFDV3 ;POSITIVE U 2011, 3150,7441,1717,4174,4007,0700,0000,0000,0000 ; 5721 [T1]_.NOT.[T1] ;NEGATIVE OR ZERO U 3150, 3151,3547,0303,4374,4007,0701,0000,0077,7400 ; 5722 [AR]_-SIGN*.5, 3T ;SIGN SMEAR U 3151, 3152,2442,0400,4174,4007,0700,4000,0000,0000 ; 5723 Q_-[ARX] ;NEGATE OPERAND ; 5724 [AR]_(-[AR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 5725 MULTI PREC/1, ;USE SAVED CARRY U 3152, 2013,2446,0303,4174,4047,0700,0040,0000,0000 ; 5726 ASHC, J/DFDV4 ;CONTINUE BELOW ; 5727 =0 ; 5728 DFDV3: Q_[ARX], ;COPY OPERAND U 2012, 2725,3442,0400,4174,4007,0700,0010,0000,0000 ; 5729 CALL [DDIVS] ;SHIFT OVER U 2013, 2014,2113,0305,4174,4007,0521,4000,0000,0000 ; 5730 DFDV4: [AR]-[BR], 3T, SKIP DP0 ;SEE IF OVERFLOW U 2014, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5731 =0 FL NO DIVIDE U 2015, 1054,3221,0004,4174,4007,0700,0000,0000,0000 ; 5732 [ARX]_Q ;START DIVISION U 1054, 1240,4222,0000,4174,4007,0700,2010,0071,0032 ; 5733 =0* Q_0, SC_26., CALL [DBLDIV] U 1056, 2020,3221,0016,4174,4007,0700,2000,0071,0043 ; 5734 [T0]_Q, SC_35. ; 5735 =0* Q_Q.AND.NOT.[MAG], ;SEE IF ODD ; 5736 SKIP AD.EQ.0, ;SKIP IF EVEN U 2020, 1240,5002,0000,4174,4007,0621,0010,0000,0000 ; 5737 CALL [DBLDIV] ;GO DIVIDE U 2022, 3153,3446,1200,4174,4007,0700,0000,0000,0000 ; 5738 Q_Q*.5 ;MOVE ANSWER OVER ; 5739 = ; 5740 [T0]_[T0]*2 LONG, ASHC, ;DO FIRST NORM STEP U 3153, 0513,3444,1616,4174,4046,2700,0000,0000,0000 ; 5741 MUL DISP ; SEE IF A 1 FELL OUT ; 5742 =1011 ; 5743 DFDV4A: READ [T1], SKIP DP0, ;SHOULD RESULT BE NEGATIVE ; 5744 FE_S#-FE, S#/202, ;CORRECT EXPONENT U 0513, 2016,3333,0017,4174,4007,0520,1000,0031,0202 ; 5745 J/DFDV4B ;LOOK BELOW U 0517, 0513,0222,0000,4174,4007,0700,4000,0000,0000 ; 5746 Q_Q+.25, J/DFDV4A ;PUT BACK THE BIT ; 5747 =0 U 2016, 0520,3441,1603,4174,4003,4701,0000,0000,0000 ; 5748 DFDV4B: [AR]_[T0], NORM DISP, J/DNORM ;PLUS U 2017, 0200,3441,1603,4174,4003,4701,0000,0000,0000 ; 5749 [AR]_[T0], NORM DISP, J/DNNORM ;MINUS ; 5750 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 156 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 5751 .TOC "FLOATING POINT -- DOUBLE PRECISION NORMALIZE" ; 5752 ; 5753 ;NORMALIZE AR!Q ; 5754 ;DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO ; 5755 ; FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5756 =0000 ; 5757 DNORM: [AR]_[AR]*2 LONG, ;SHIFT LEFT ; 5758 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0520, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5759 NORM DISP, J/DNORM ;TRY AGAIN U 0521, 2026,4553,1300,4374,4007,0321,0000,0000,2000 ; 5760 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5761 READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0522, 0322,3333,0003,4174,4003,4701,0010,0000,0000 ; 5762 CALL [DROUND] ; AND ROUND ANSWER U 0523, 2026,4553,1300,4374,4007,0321,0000,0000,2000 ; 5763 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5764 [AR]_[AR]*.5 LONG, ASHC, U 0524, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5765 FE_FE+1, CALL [DROUND] U 0525, 2026,4553,1300,4374,4007,0321,0000,0000,2000 ; 5766 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5767 [AR]_[AR]*.5 LONG, ASHC, U 0526, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5768 FE_FE+1, CALL [DROUND] U 0527, 2026,4553,1300,4374,4007,0321,0000,0000,2000 ; 5769 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5770 Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0530, 3155,4002,0000,4174,0007,0700,0000,0000,0000 ; 5771 HOLD RIGHT, J/DNORM1 ;GO TEST LOW WORD U 0536, 3154,4221,0013,4174,4007,0700,0000,0000,0000 ; 5772 =1110 [FLG]_0 ;[122] CLEAR FLAG WORD ; 5773 = ; 5774 AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3154, 1515,4113,0400,1174,4007,0700,0400,0000,1441 ; 5775 J/STAC ;GO DO HIGH WORD ; 5776 ; 5777 U 3155, 2024,3223,0000,4174,4007,0621,0000,0000,0000 ; 5778 DNORM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5779 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5780 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2024, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5781 NORM DISP, J/DNORM ;KEEP LOOKING U 2025, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5782 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5783 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 157 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 5784 ;HERE TO NORMALIZE NEGATIVE D.P. RESULTS ; 5785 =0 U 2026, 3156,7222,0000,4174,4007,0700,0000,0000,0000 ; 5786 DNEG: Q_.NOT.Q, J/DNEG1 ;ONES COMP U 2027, 2030,2222,0000,4174,4007,0511,4000,0000,0000 ; 5787 Q_-Q, SKIP CRY2, J/DNEG2 U 3156, 2030,4221,0013,4174,4007,0700,0000,0000,0000 ; 5788 DNEG1: [FLG]_0 ; 5789 =0 ; 5790 DNEG2: [AR]_.NOT.[AR], ;NO CARRY U 2030, 0200,7441,0303,4174,4003,4701,0000,0000,0000 ; 5791 NORM DISP, J/DNNORM ;GO NORMALIZE ; 5792 [AR]_-[AR], ;CARRY U 2031, 0200,2441,0303,4174,4003,4701,4000,0000,0000 ; 5793 NORM DISP, J/DNNORM ;NORMALIZE ; 5794 ; 5795 =000* ; 5796 DNNORM: [AR]_[AR]*2 LONG, ;SHIFT 1 PLACE ; 5797 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0200, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5798 NORM DISP, J/DNNORM ;LOOP TILL DONE ; 5799 =001* READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0202, 0322,3333,0003,4174,4003,4701,0010,0000,0000 ; 5800 CALL [DROUND] ; AND ROUND ANSWER ; 5801 =010* [AR]_[AR]*.5 LONG, ASHC, U 0204, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5802 FE_FE+1, CALL [DROUND] ; 5803 =011* [AR]_[AR]*.5 LONG, ASHC, U 0206, 0322,3446,0303,4174,4047,0700,1010,0041,0001 ; 5804 FE_FE+1, CALL [DROUND] ; 5805 =100* Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0210, 3161,4002,0000,4174,0007,0700,0000,0000,0000 ; 5806 HOLD RIGHT, J/DNNRM1 ;GO TEST LOW WORD U 0216, 0630,4111,1204,4174,4007,0700,0000,0000,0000 ; 5807 =111* [ARX]_[ARX].AND.[MASK] ;REMOVE ROUNDING BIT ; 5808 = ; 5809 =00 [ARX]_[ARX].AND.[MAG], ;ALSO CLEAR SIGN U 0630, 3162,4111,0004,4174,4007,0700,0010,0000,0000 ; 5810 CALL [CHKSN] ;ONES COMP? ; 5811 =10 [ARX]_[ARX].XOR.[MAG], ;YES--ONES COMP U 0632, 3157,6111,0004,4174,4007,0700,0000,0000,0000 ; 5812 J/DNN1 ;CONTINUE BELOW ; 5813 =11 [ARX]_-[ARX], 3T, ;NEGATE RESULT U 0633, 2032,2441,0404,4174,4007,0561,4000,0000,0000 ; 5814 SKIP CRY1, J/DNN2 ; 5815 = U 3157, 2032,4221,0013,4174,4007,0700,0000,0000,0000 ; 5816 DNN1: [FLG]_0 ;CLEAR FLAG ; 5817 =0 U 2032, 3160,7333,0003,0174,4007,0700,0400,0000,0000 ; 5818 DNN2: AC_.NOT.[AR], J/DNORM2 U 2033, 3160,2443,0300,0174,4007,0701,4400,0000,0000 ; 5819 AC_-[AR], 3T ; 5820 DNORM2: AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3160, 0100,4113,0400,1174,4156,4700,0400,0000,1441 ; 5821 NEXT INST ;ALL DONE ; 5822 U 3161, 2034,3223,0000,4174,4007,0621,0000,0000,0000 ; 5823 DNNRM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5824 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5825 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2034, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5826 NORM DISP, J/DNNORM ;KEEP LOOKING U 2035, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5827 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5828 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 158 ; FLT.MIC[7,3] 01:46 20-MAR-1981 FLOATING POINT -- DOUBLE PRECISION NORMALIZE U 3162, 0002,4553,1300,4374,4004,1321,0000,0000,2000 ; 5829 CHKSN: TL [FLG], FLG.SN/1, RETURN [2] ; 5830 ; 5831 ;SUBROUTINE TO SET/CLEAR FLG.SN ; 5832 ;CALL WITH: ; 5833 ; CALL [SETSN], SKIP IF WE SHOULD CLEAR ; 5834 ;RETURNS 23 ; 5835 =0 U 2036, 0023,3551,1313,4374,0004,1700,0000,0000,2000 ; 5836 SETSN: [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, RETURN [23] U 2037, 0023,5551,1313,4374,0004,1700,0000,0000,2000 ; 5837 CLRSN: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT, RETURN [23] ; 5838 ; 5839 ; 5840 ;SUBROUTINE TO ROUND A FLOATING POINT NUMBER ; 5841 ;CALL WITH: ; 5842 ; NUMBER IN AR!Q AND NORM DISP ; 5843 ;RETURNS 16 WITH ROUNDED NUMBER IN AR!ARX ; 5844 ; ; 5845 =*01* ; 5846 DROUND: [ARX]_(Q+1)*.5, ;ROUND AND SHIFT ; 5847 SKIP CRY2, ;SEE IF OVERFLOW U 0322, 0462,0007,0704,4174,4007,0511,0000,0000,0000 ; 5848 J/DRND1 ;COMPLETE ROUNDING ; 5849 [AR]_[AR]*.5 LONG, ;WE WENT TOO FAR U 0326, 0322,3446,0303,4174,4047,0700,1000,0041,0001 ; 5850 FE_FE+1, ASHC, J/DROUND ;SHIFT BACK AND ROUND ; 5851 =*010 U 0462, 0016,3770,0303,4324,0454,1700,0000,0041,0000 ; 5852 DRND1: [AR]_EXP, RETURN [16] ;NO OVERFLOW ; 5853 =011 [AR]_[AR]+.25, ;ADD CARRY (BITS 36 AND 37 ; 5854 ; ARE COPIES OF Q BITS) ; 5855 NORM DISP, ;SEE IF OVERFLOW U 0463, 0462,0441,0303,4174,4003,4701,4000,0000,0000 ; 5856 J/DRND1 ; .. ; 5857 =110 [AR]_[AR]*.5, ;SHIFT RIGHT ; 5858 FE_FE+1, ;KEEP EXP RIGHT U 0466, 0462,3447,0303,4174,4007,0700,1000,0041,0001 ; 5859 J/DRND1 ;ALL SET NOW ; 5860 = ; 5861 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 159 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DISPATCH ROM ENTRIES ; 5862 .TOC "EXTEND -- DISPATCH ROM ENTRIES" ; 5863 ; 5864 .DCODE D 0001, 0001,1740,2100 ; 5865 001: I, SJCL, J/L-CMS D 0002, 0002,1740,2100 ; 5866 I, SJCE, J/L-CMS D 0003, 0003,1740,2100 ; 5867 I, SJCLE, J/L-CMS D 0004, 0002,1741,2100 ; 5868 I, B/2, J/L-EDIT D 0005, 0005,1740,2100 ; 5869 I, SJCGE, J/L-CMS D 0006, 0006,1740,2100 ; 5870 I, SJCN, J/L-CMS D 0007, 0007,1740,2100 ; 5871 I, SJCG, J/L-CMS ; 5872 D 0010, 0001,1742,2100 ; 5873 010: I, B/1, J/L-DBIN ;CVTDBO D 0011, 0004,1742,2100 ; 5874 I, B/4, J/L-DBIN ;CVTDBT D 0012, 0001,1743,2100 ; 5875 I, B/1, J/L-BDEC ;CVTBDO D 0013, 0000,1743,2100 ; 5876 I, B/0, J/L-BDEC ;CVTBDT ; 5877 D 0014, 0001,1744,2100 ; 5878 014: I, B/1, J/L-MVS ;MOVSO D 0015, 0000,1744,2100 ; 5879 I, B/0, J/L-MVS ;MOVST D 0016, 0002,1744,2100 ; 5880 I, B/2, J/L-MVS ;MOVSLJ D 0017, 0003,1744,2100 ; 5881 I, B/3, J/L-MVS ;MOVSRJ ; 5882 D 0020, 0000,1746,2100 ; 5883 020: I, J/L-XBLT ;XBLT D 0021, 0000,1747,2100 ; 5884 I, J/L-SPARE-A ;GSNGL D 0022, 0000,1750,2100 ; 5885 I, J/L-SPARE-B ;GDBLE D 0023, 0000,1751,2100 ; 5886 I, B/0, J/L-SPARE-C ;GDFIX D 0024, 0001,1751,2100 ; 5887 I, B/1, J/L-SPARE-C ;GFIX D 0025, 0002,1751,2100 ; 5888 I, B/2, J/L-SPARE-C ;GDFIXR D 0026, 0004,1751,2100 ; 5889 I, B/4, J/L-SPARE-C ;GFIXR D 0027, 0010,1751,2100 ; 5890 I, B/10, J/L-SPARE-C ;DGFLTR ; 5891 ;30: ;GFLTR ; 5892 ;GFSC ; 5893 .UCODE ; 5894 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 160 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DISPATCH ROM ENTRIES ; 5895 1740: U 1740, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5896 L-CMS: LUUO ; 5897 1741: U 1741, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5898 L-EDIT: LUUO ; 5899 1742: U 1742, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5900 L-DBIN: LUUO ; 5901 1743: U 1743, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5902 L-BDEC: LUUO ; 5903 1744: U 1744, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5904 L-MVS: LUUO ; 5905 1746: U 1746, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5906 L-XBLT: LUUO ; 5907 1747: U 1747, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5908 L-SPARE-A: LUUO ; 5909 1750: U 1750, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5910 L-SPARE-B: LUUO ; 5911 1751: U 1751, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5912 L-SPARE-C: LUUO ; 5913 ; 5914 ;NOTE: WE DO NOT NEED TO RESERVE 3746 TO 3751 BECAUSE THE CODE ; 5915 ; AT EXTEND DOES A RANGE CHECK. ; 5916 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 161 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- INSTRUCTION SET DECODING ; 5917 .TOC "EXTEND -- INSTRUCTION SET DECODING" ; 5918 ; 5919 ;EACH INSTRUCTION IN THE RANGE 1-23 GOES TO 1 OF 2 PLACES ; 5920 ; 1740-1747 IF NOT UNDER EXTEND ; 5921 ; 3740-3747 IF UNDER EXTEND ; 5922 ; 5923 .DCODE D 0123, 0000,1467,3100 ; 5924 123: I,READ/1, J/EXTEND ; 5925 .UCODE ; 5926 ; 5927 1467: U 1467, 2040,3771,0005,4365,5007,0700,0200,0000,0002 ; 5928 EXTEND: MEM READ, [BR]_MEM ;FETCH INSTRUCTION ; 5929 =0** TL [BR], #/760740, ;IN RANGE 0-17 (AND AC#=0) U 2040, 3556,4553,0500,4374,4007,0321,0010,0076,0740 ; 5930 CALL [BITCHK] ;TRAP IF NON-ZERO BITS FOUND ; 5931 [BRX]_[HR].AND.# CLR RH, ;SPLIT OUT AC NUMBER U 2044, 3163,4521,0206,4374,4007,0700,0000,0000,0740 ; 5932 #/000740 ; FROM EXTEND INSTRUCTION ; 5933 [BR]_[BR].OR.[BRX], ;LOAD IR AND AC # U 3163, 3164,3111,0605,4174,0417,0700,0000,0000,0000 ; 5934 HOLD RIGHT, LOAD IR ; .. ; 5935 READ [BR], LOAD BYTE EA, ;LOAD XR # U 3164, 3165,3333,0005,4174,4217,0700,0000,0000,0500 ; 5936 J/EXTEA0 ;COMPUTE E1 ; 5937 U 3165, 3166,3333,0003,7174,4007,0700,0400,0000,0240 ; 5938 EXTEA0: WORK[E0]_[AR] U 3166, 0170,4443,0000,2174,4006,6700,0000,0000,0000 ; 5939 EXTEA1: EA MODE DISP ; 5940 =100* U 0170, 0172,0551,0505,2270,4007,0700,0000,0000,0000 ; 5941 EXTEA: [BR]_[BR]+XR ; 5942 EXTDSP: [BR]_EA FROM [BR], LOAD VMA, U 0172, 0556,5741,0505,4174,4003,7700,0200,0000,0010 ; 5943 B DISP, J/EXTEXT U 0174, 3167,0551,0505,2270,4007,0700,0200,0004,0512 ; 5944 [BR]_[BR]+XR, START READ, PXCT EXTEND EA, LOAD VMA, J/EXTIND U 0176, 3167,3443,0500,4174,4007,0700,0200,0004,0512 ; 5945 VMA_[BR], START READ, PXCT EXTEND EA ; 5946 U 3167, 3166,3771,0005,4361,5217,0700,0200,0000,0502 ; 5947 EXTIND: MEM READ, [BR]_MEM, HOLD LEFT, LOAD BYTE EA, J/EXTEA1 ; 5948 ; 5949 ;HERE TO EXTEND SIGN FOR OFFSET MODES ; 5950 =1110 ; 5951 EXTEXT: WORK[E1]_[BR], ;SAVE E1 U 0556, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5952 DISP/DROM, J/3400 ;GO TO EXTENDED EXECUTE CODE U 0557, 2042,3333,0005,4174,4007,0530,0000,0000,0000 ; 5953 READ [BR], SKIP DP18 ;NEED TO EXTEND SIGN ; 5954 =0 WORK[E1]_[BR], ;POSITIVE U 2042, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5955 DISP/DROM, J/3400 ; 5956 [BR]_#, #/777777, HOLD RIGHT, ;NEGATIVE U 2043, 0556,3771,0005,4374,0007,0700,0000,0077,7777 ; 5957 J/EXTEXT ; 5958 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 162 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- MOVE STRING -- SETUP ; 5959 .TOC "EXTEND -- MOVE STRING -- SETUP" ; 5960 ; 5961 ;HERE TO MOVE A STRING ; 5962 ;COME HERE WITH: ; 5963 ; AR/ E0 ; 5964 ; BR/ E1 ; 5965 ; ; 5966 3744: ; 5967 MVS: [AR]_[AR]+1, ;GO FETCH FILL ; 5968 LOAD VMA, ; BYTE ; 5969 START READ, ; .. U 3744, 3362,0111,0703,4174,4007,0700,0210,0004,0012 ; 5970 CALL [GTFILL] ;SUBROUTINE TO COMPLETE U 3754, 2041,3771,0005,1276,6007,0701,0000,0000,1443 ; 5971 3754: [BR]_AC[DLEN] ;GET DEST LENGTH AND FLAGS ; 5972 =0** TL [BR], #/777000, ;ANY FLAGS SET? U 2041, 3556,4553,0500,4374,4007,0321,0010,0077,7000 ; 5973 CALL [BITCHK] ;SEE IF ILLEGAL U 2045, 2046,3771,0003,0276,6007,0700,0000,0000,0000 ; 5974 [AR]_AC ;GET SRC LENGTH AND FLAGS ; 5975 =0 [BRX]_[AR].AND.# CLR RH, ;COPY FLAGS TO BRX ; 5976 #/777000, ; .. U 2046, 3364,4521,0306,4374,4007,0700,0010,0077,7000 ; 5977 CALL [CLRFLG] ;CLEAR FLAGS IN AR ; 5978 ;NEW DLEN IS - ; 5979 AC[DLEN]_[AR]-[BR], 3T, ;COMPUTE DIFFERENCE U 2047, 2050,2113,0305,1174,4007,0521,4400,0000,1443 ; 5980 SKIP DP0 ;WHICH IS SHORTER? ; 5981 =0 [AR]_.NOT.[BR], ;DESTINATION U 2050, 3170,7441,0503,4174,4007,0700,0000,0000,0000 ; 5982 J/MVS1 ;GET NEGATIVE LENGTH U 2051, 3170,7441,0303,4174,4007,0700,0000,0000,0000 ; 5983 [AR]_.NOT.[AR] ;SOURCE ; 5984 MVS1: WORK[SLEN]_[AR], ; .. U 3170, 0574,3333,0003,7174,4003,7700,0400,0000,0242 ; 5985 B DISP ;SEE WHAT TYPE OF MOVE ; 5986 ;SLEN NOW HAS --1 ; 5987 =1100 U 0574, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 5988 STATE_[SRC], J/MOVELP ;TRANSLATE--ALL SET U 0575, 3171,3771,0005,1276,6007,0701,0000,0000,1444 ; 5989 [BR]_AC[DSTP], J/MVSO ;OFFSET BUILD MASK ; 5990 [ARX]_[AR], ;LEFT JUSTIFY U 0576, 3211,3441,0304,4174,4007,0700,0000,0000,0000 ; 5991 J/MOVST0 ; .. ; 5992 [ARX]_AC[DLEN], ;RIGHT JUSTIFY ; 5993 SKIP DP0, 4T, ;WHICH IS SHORTER? U 0577, 0650,3771,0004,1276,6007,0522,0000,0000,1443 ; 5994 J/MOVRJ ; 5995 U 3171, 3172,3333,0005,4174,4007,0700,1000,0041,6020 ; 5996 MVSO: READ [BR], FE_S+2 ;GET DST BYTE SIZE U 3172, 2021,4222,0000,4174,4006,7701,1000,0041,1770 ; 5997 Q_0, BYTE STEP ;BUILD AN S BIT MASK ; 5998 =0* U 2021, 2021,4224,0003,4174,4026,7701,1000,0041,1770 ; 5999 MVSO1: GEN MSK [AR], BYTE STEP, J/MVSO1 U 2023, 3173,7221,0003,4174,4007,0700,0000,0000,0000 ; 6000 [AR]_.NOT.Q ;BITS WHICH MUST NOT BE SET ; 6001 WORK[MSK]_[AR].AND.[MASK], ;SAVE FOR SRCMOD U 3173, 0507,4113,0312,7174,4007,0700,0400,0000,0243 ; 6002 J/MOVLP0 ;GO ENTER LOOP ; 6003 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 163 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6004 .TOC "EXTEND -- MOVE STRING -- OFFSET/TRANSLATE" ; 6005 ; 6006 ;HERE IS THE LOOP FOR OFFSET AND TRANSLATED MOVES ; 6007 =000 ; 6008 MOVELP: [AR]_WORK[SLEN]+1, ;UPDATE STRING LENGTH U 0500, 1040,0551,0703,7274,4007,0701,0010,0000,0242 ; 6009 CALL [SRCMOD] ;GET A SOURCE BYTE ; 6010 =001 [ARX]_[AR], SKIP DP0, ;(1) LENGTH EXHAUSTED U 0501, 1000,3441,0304,4174,4007,0520,0000,0000,0000 ; 6011 J/MOVST2 ; SEE IF FILL IS NEEDED ; 6012 =100 [AR]_-WORK[SLEN], ;(4) ABORT U 0504, 3174,1771,0003,7274,4007,0701,4000,0000,0242 ; 6013 J/MVABT ; .. ; 6014 STATE_[SRC+DST], ;(5) NORMAL--STORE DST BYTE U 0505, 3354,3771,0013,4370,4007,0700,0010,0000,0005 ; 6015 CALL [PUTDST] ; .. ; 6016 =111 U 0507, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 6017 MOVLP0: STATE_[SRC], J/MOVELP ;(7) DPB DONE ; 6018 = ; 6019 ; 6020 ;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE ; 6021 ; 6022 MVABT: [BR]_AC[DLEN], ;WHICH STRING IS LONGER U 3174, 2052,3771,0005,1276,6007,0522,0000,0000,1443 ; 6023 SKIP DP0, 4T ; 6024 =0 U 2052, 3175,3440,0303,1174,4007,0700,0400,0000,1443 ; 6025 MVABT1: AC[DLEN]_[AR], J/MVABT2 ;PUT AWAY DEST LEN ; 6026 [AR]_[AR]-[BR], ;DEST LEN WAS GREATER U 2053, 2052,1111,0503,4174,4007,0700,4000,0000,0000 ; 6027 J/MVABT1 ;STICK BACK IN AC ; 6028 U 3175, 3176,7771,0003,7274,4007,0701,0000,0000,0242 ; 6029 MVABT2: [AR]_.NOT.WORK[SLEN] ;GET UNDECREMENTED SLEN U 3176, 2054,3333,0005,4174,4007,0520,0000,0000,0000 ; 6030 READ [BR], SKIP DP0 ;NEED TO FIXUP SRC? U 2054, 2055,0111,0503,4174,4007,0700,0000,0000,0000 ; 6031 =0 [AR]_[AR]+[BR] ;SRC LONGER BY (DLEN) U 2055, 3177,3111,0603,4174,4007,0700,0000,0000,0000 ; 6032 MVEND: [AR]_[AR].OR.[BRX] ;PUT BACK SRC FLAGS U 3177, 1515,4221,0013,4170,4007,0700,0000,0000,0000 ; 6033 END STATE, J/STAC ;ALL DONE ; 6034 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 164 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- MOVE STRING -- MOVSRJ ; 6035 .TOC "EXTEND -- MOVE STRING -- MOVSRJ" ; 6036 ; 6037 =00 U 0650, 3200,3771,0003,1276,6007,0701,0000,0000,1441 ; 6038 MOVRJ: [AR]_AC[SRCP], J/MVSKP ;SRC LONGER, SKIP OVER SOME ; 6039 STATE_[DSTF], ;DST LONGER, FILL IT U 0651, 2245,3771,0013,4370,4007,0700,0010,0000,0006 ; 6040 CALL [MOVFIL] ; .. ; 6041 =11 [ARX]_WORK[SLEN]+1, ;DONE FILLING U 0653, 3212,0551,0704,7274,4007,0701,0000,0000,0242 ; 6042 J/MOVST1 ;GO MOVE STRING ; 6043 ; 6044 ;HERE TO SKIP OVER EXTRA SOURCE BYTES U 3200, 2056,3440,0303,1174,4007,0670,0400,0000,1441 ; 6045 MVSKP: AC[SRCP]_[AR], SKIP -1MS ;[121] Is there a timer interrupt? U 2056, 3203,3333,0003,7174,4007,0700,0400,0000,0211 ; 6046 =0 WORK[SV.AR]_[AR], J/MVSK2 ;[121][123] Yes, save regs for interrupt. ; 6047 [ARX]_[ARX]-1, 3T, ;DONE SKIPPING? U 2057, 2060,1111,0704,4174,4007,0521,4000,0000,0000 ; 6048 SKIP DP0 ; 6049 =0 IBP DP, IBP SCAD, ;NO--START THE IBP ; 6050 SCAD DISP, SKIP IRPT, ;4-WAY DISPATCH U 2060, 0750,3770,0305,4334,4016,7371,0000,0033,6000 ; 6051 3T, J/MVSKP1 ;GO BUMP POINTER ; 6052 AC[DLEN]_0, ;LENGTHS ARE NOW EQUAL U 2061, 0546,4223,0000,1174,4007,0700,0400,0000,1443 ; 6053 J/MOVST4 ;GO MOVE STRING ; 6054 ; 6055 =00 U 0750, 3200,3441,0503,4174,4007,0700,0000,0000,0000 ; 6056 MVSKP1: [AR]_[BR], J/MVSKP ;NO OVERFLOW ; 6057 [AR]_.NOT.WORK[SLEN], ;INTERRUPT U 0751, 3201,7771,0003,7274,4007,0701,0000,0000,0242 ; 6058 J/MVSK3 ; .. ; 6059 SET P TO 36-S, ;WORD OVERFLOW U 0752, 3202,3770,0503,4334,4017,0700,0000,0032,6000 ; 6060 J/MVSKP2 ;FIXUP Y U 0753, 3201,7771,0003,7274,4007,0701,0000,0000,0242 ; 6061 [AR]_.NOT.WORK[SLEN] ;[121] INTERRUPT or timer. U 3201, 2062,3440,0303,1174,4007,0700,0400,0000,1443 ; 6062 MVSK3: AC[DLEN]_[AR] ;RESET DLEN ; 6063 =0 [AR]_[AR]+[ARX], U 2062, 3567,0111,0403,4174,4007,0700,0010,0000,0000 ; 6064 CALL [INCAR] ;ADD 1 TO AR ; 6065 AC_[AR].OR.[BRX], ;PUT BACK FLAGS U 2063, 3623,3113,0306,0174,4007,0700,0400,0000,0000 ; 6066 J/ITRAP ;DO INTERRUPT TRAP ; 6067 ; 6068 MVSKP2: [AR]_[AR]+1, HOLD LEFT, ;BUMP Y U 3202, 3200,0111,0703,4170,4007,0700,0000,0000,0000 ; 6069 J/MVSKP ;KEEP GOING ; 6070 ; 6071 ;BEGIN EDIT [123] U 3203, 3204,3333,0005,7174,4007,0700,0400,0000,0213 ; 6072 MVSK2: WORK[SV.BR]_[BR] ;SAVE ALL U 3204, 3205,3333,0004,7174,4007,0700,0400,0000,0212 ; 6073 WORK[SV.ARX]_[ARX] ;THE REGISTERS U 3205, 2064,3333,0006,7174,4007,0700,0400,0000,0214 ; 6074 WORK[SV.BRX]_[BRX] ;FOR THE TICK U 2064, 3461,4443,0000,4174,4007,0700,0010,0000,0000 ; 6075 =0* CALL [TICK] ;UPDATE CLOCK AND SET INTERUPT U 2066, 3206,3771,0003,7274,4007,0701,0000,0000,0211 ; 6076 [AR]_WORK[SV.AR] ;NOW PUT U 3206, 3207,3771,0005,7274,4007,0701,0000,0000,0213 ; 6077 [BR]_WORK[SV.BR] ;THEM ALL U 3207, 3210,3771,0004,7274,4007,0701,0000,0000,0212 ; 6078 [ARX]_WORK[SV.ARX] ;BACK SO WE ; 6079 [BRX]_WORK[SV.BRX], ;CAN CONTINUE U 3210, 3200,3771,0006,7274,4007,0701,0000,0000,0214 ; 6080 J/MVSKP ; 6081 ;END EDIT [123] ; 6082 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 165 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6083 .TOC "EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP" ; 6084 ; 6085 ;HERE FOR NO-MODIFICATION STRING MOVES U 3211, 3212,0111,0704,4174,4007,0700,0000,0000,0000 ; 6086 MOVST0: [ARX]_[ARX]+1 ;CANT DO [ARX]_[AR]+1 U 3212, 0540,3771,0013,4370,4007,0700,0000,0000,0003 ; 6087 MOVST1: STATE_[SRC] ;PREPARE FOR PAGE FAIL ; 6088 =000 ; 6089 WORK[SLEN]_[ARX], ;GO GET A SOURCE BYTE U 0540, 2256,3333,0004,7174,4007,0520,0410,0000,0242 ; 6090 SKIP DP0, CALL [GSRC] ; .. ; 6091 MOVSTX: [ARX]_[AR], ;SHORT STRING RAN OUT U 0541, 1000,3441,0304,4174,4007,0520,0000,0000,0000 ; 6092 SKIP DP0, J/MOVST2 ;GO SEE IF FILL NEEDED ; 6093 =010 STATE_[SRC+DST], ;WILL NEED TO BACK UP BOTH POINTERS U 0542, 3354,3771,0013,4370,4007,0700,0010,0000,0005 ; 6094 CALL [PUTDST] ;STORE BYTE ; 6095 =110 ; 6096 MOVST4: [ARX]_WORK[SLEN]+1, ;COUNT DOWN LENGTH U 0546, 3212,0551,0704,7274,4007,0701,0000,0000,0242 ; 6097 J/MOVST1 ;LOOP OVER STRING ; 6098 = ; 6099 =00 U 1000, 3213,4223,0000,1174,4007,0700,0400,0000,1443 ; 6100 MOVST2: AC[DLEN]_0, J/MOVST3 ;CLEAR DEST LEN, REBUILD SRC U 1001, 2245,3771,0013,4370,4007,0700,0010,0000,0004 ; 6101 STATE_[DST], CALL [MOVFIL] ;FILL OUT DEST U 1003, 2125,3440,0606,0174,4007,0700,0400,0000,0000 ; 6102 =11 AC_[BRX], J/ENDSKP ;ALL DONE ; 6103 U 3213, 3214,3113,0406,0174,4007,0700,0400,0000,0000 ; 6104 MOVST3: AC_[ARX].OR.[BRX] ;REBUILD SRC U 3214, 0252,4221,0013,4170,4007,0700,0000,0000,0000 ; 6105 END STATE, J/SKIPE ; .. ; 6106 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 166 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- COMPARE STRING ; 6107 .TOC "EXTEND -- COMPARE STRING" ; 6108 ; 6109 3740: U 3740, 2070,3771,0004,1276,6007,0701,0000,0000,1443 ; 6110 CMS: [ARX]_AC[DLEN] ;GET DEST LEN U 2070, 3556,4553,0400,4374,4007,0321,0010,0077,7000 ; 6111 =0** TL [ARX], #/777000, CALL [BITCHK] U 2074, 2071,3771,0006,0276,6007,0700,0000,0000,0000 ; 6112 [BRX]_AC ;GET SRC LEN U 2071, 3556,4553,0600,4374,4007,0321,0010,0077,7000 ; 6113 =0** TL [BRX], #/777000, CALL [BITCHK] U 2075, 2072,2113,0604,4174,4007,0521,4000,0000,0000 ; 6114 [BRX]-[ARX], 3T, SKIP DP0 ;WHICH STRING IS LONGER? U 2072, 2073,0111,0703,4174,4007,0700,0000,0000,0000 ; 6115 =0 [AR]_[AR]+1 ;SRC STRING IS LONGER U 2073, 2076,0111,0703,4170,4007,0700,0200,0004,0012 ; 6116 VMA_[AR]+1, START READ ;DST STRING ; 6117 =0 [AR]_0, ;FORCE FIRST COMPARE TO BE ; 6118 ;EQUAL U 2076, 3565,4221,0003,4174,4007,0700,0010,0000,0000 ; 6119 CALL [LOADQ] ;PUT FILL INTO Q ; 6120 WORK[FILL]_Q, ;SAVE FILLER U 2077, 3224,3223,0000,7174,4007,0700,0400,0000,0244 ; 6121 J/CMS2 ;ENTER LOOP ; 6122 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 167 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- COMPARE STRING ; 6123 ;HERE IS THE COMPARE LOOP. ; 6124 ; ARX/ CONATINS REMAINING DEST LENGTH ; 6125 ; BRX/ CONTAINS REMAINING SOURCE LENGTH ; 6126 =0 ; 6127 CMS3: ;BYTES ARE NOT EQUAL ; 6128 END STATE, ;NO MORE SPECIAL PAGE FAIL ACTION U 2100, 0250,4221,0013,4170,4003,7700,0000,0000,0000 ; 6129 SKIP-COMP DISP ;SEE SKIP-COMP-TABLE U 2101, 3215,3771,0003,1276,6007,0701,0000,0000,1441 ; 6130 CMS4: [AR]_AC[SRCP] ;GET BYTE POINTER U 3215, 1004,3333,0006,4174,4007,0520,0000,0000,0000 ; 6131 READ [BRX], SKIP DP0 ;MORE IN SOURCE STRING? ; 6132 =00 STATE_[EDIT-SRC], ;PREPARE FOR PAGE FAIL U 1004, 2257,3771,0013,4370,4007,0700,0010,0000,0011 ; 6133 CALL [GETSRC] ; GO GET BYTE ; 6134 READ [ARX], SKIP DP0, ;NO MORE SRC--SEE IF MORE DEST U 1005, 2102,3333,0004,4174,4007,0520,0000,0000,0000 ; 6135 J/CMS5 ; .. U 1006, 3216,3333,0003,7174,4007,0700,0400,0000,0245 ; 6136 WORK[CMS]_[AR] ;SAVE SRC BYTE ; 6137 = U 3216, 3217,3440,0606,0174,4007,0700,0400,0000,0000 ; 6138 AC_[BRX] ;PUT BACK SRC LEN U 3217, 3220,3771,0013,4370,4007,0700,0000,0000,0010 ; 6139 STATE_[COMP-DST] ;HAVE TO BACK UP IF DST FAILS U 3220, 1020,3333,0004,4174,4007,0520,0000,0000,0000 ; 6140 READ [ARX], SKIP DP0 ;ANY MORE DEST? ; 6141 =00 U 1020, 2104,4443,0000,4174,4007,0700,0010,0000,0000 ; 6142 CMS6: CALL [CMPDST] ;MORE DEST BYTES ; 6143 [AR]_WORK[FILL], ;OUT OF DEST BYTES U 1021, 3221,3771,0003,7274,4007,0701,0000,0000,0244 ; 6144 J/CMS7 ;GO DO COMPARE U 1022, 3221,3440,0404,1174,4007,0700,0400,0000,1443 ; 6145 AC[DLEN]_[ARX] ;GOT A BYTE, UPDATE LENGTH ; 6146 = ; 6147 CMS7: [AR]_[AR].AND.[MASK], ;MAKE MAGNITUDES U 3221, 3222,4111,1203,7174,4007,0700,0000,0000,0245 ; 6148 WORK[CMS] ;WARM UP RAM U 3222, 3223,4551,1205,7274,4007,0700,0000,0000,0245 ; 6149 [BR]_[MASK].AND.WORK[CMS], 2T ;GET SRC MAGNITUDE U 3223, 3224,2111,0503,4174,4007,0700,4000,0000,0000 ; 6150 [AR]_[BR]-[AR] REV ;UNSIGNED COMPARE U 3224, 3225,1111,0704,4174,4007,0700,4000,0000,0000 ; 6151 CMS2: [ARX]_[ARX]-1 ;UPDATE LENGTHS U 3225, 3226,1111,0706,4174,4007,0700,4000,0000,0000 ; 6152 [BRX]_[BRX]-1 ; .. U 3226, 2100,3333,0003,4174,4007,0621,0000,0000,0000 ; 6153 READ [AR], SKIP AD.EQ.0, J/CMS3 ;SEE IF EQUAL ; 6154 ; 6155 =0 U 2102, 3227,3772,0000,7274,4007,0701,0000,0000,0244 ; 6156 CMS5: Q_WORK[FILL], J/CMS8 ;MORE DST--GET SRC FILL U 2103, 2100,4221,0003,4174,4007,0700,0000,0000,0000 ; 6157 [AR]_0, J/CMS3 ;STRINGS ARE EQUAL U 3227, 3230,3771,0013,4370,4007,0700,0000,0000,0012 ; 6158 CMS8: STATE_[EDIT-DST] ;JUST DST POINTER ON PAGE FAIL U 3230, 1020,3223,0000,7174,4007,0700,0400,0000,0245 ; 6159 WORK[CMS]_Q, J/CMS6 ;MORE DST--SAVE SRC FILL ; 6160 ; 6161 =0 ; 6162 CMPDST: [AR]_AC[DSTP], ;GET DEST POINTER U 2104, 3355,3771,0003,1276,6007,0701,0010,0000,1444 ; 6163 CALL [IDST] ;UPDATE IT ; 6164 READ [AR], ;LOOK AT BYTE POINTER ; 6165 FE_FE.AND.S#, S#/0770, ;MASK OUT BIT 6 U 2105, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6166 BYTE DISP, J/LDB1 ;GO LOAD BYTE ; 6167 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 168 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6168 .TOC "EXTEND -- DECIMAL TO BINARY CONVERSION" ; 6169 ; 6170 3742: U 3742, 3231,4571,1203,4374,4007,0700,0000,0077,7777 ; 6171 DBIN: [AR]_[777777] XWD 0 ;IF WE ARE IN OFFSET MODE U 3231, 3232,3333,0003,7174,4007,0700,0400,0000,0243 ; 6172 WORK[MSK]_[AR] ; ONLY ALLOW 18 BITS ; 6173 ;RANGE CHECKED (0-10) LATER U 3232, 3233,3771,0003,0276,6007,0700,0000,0000,0000 ; 6174 [AR]_AC ;GET SRC LENGTH ; 6175 [BRX]_[AR].AND.# CLR RH, ;SPLIT OUT FLAGS U 3233, 2065,4521,0306,4374,4007,0700,0000,0077,7000 ; 6176 #/777000 ; .. ; 6177 =0* [ARX]_AC[BIN1], ;GET LOW WORD U 2065, 2202,3771,0004,1276,6007,0701,0010,0000,1444 ; 6178 CALL [CLARX0] ;CLEAR BIT 0 OF ARX U 2067, 2106,3440,0404,1174,4007,0700,0400,0000,1444 ; 6179 AC[BIN1]_[ARX] ;STORE BACK ; 6180 =0 READ [BRX], SKIP DP0, ;IS S ALREADY SET? U 2106, 2132,3333,0006,4174,4007,0520,0010,0000,0000 ; 6181 CALL [CLRBIN] ;GO CLEAR BIN IF NOT ; 6182 [AR]_[AR].AND.#, ;CLEAR FLAGS FROM LENGTH ; 6183 #/000777, HOLD RIGHT, ; .. U 2107, 0616,4551,0303,4374,0003,7700,0000,0000,0777 ; 6184 B DISP ;SEE IF OFFSET OR TRANSLATE ; 6185 =1110 U 0616, 3234,3771,0013,4370,4007,0700,0000,0000,0007 ; 6186 DBIN1: STATE_[CVTDB], J/DBIN2 ;TRANSLATE--LEAVE S ALONE ; 6187 [BRX]_[BRX].OR.#, ;OFFSET--FORCE S TO 1 ; 6188 #/400000, HOLD RIGHT, U 0617, 0616,3551,0606,4374,0007,0700,0000,0040,0000 ; 6189 J/DBIN1 U 3234, 0460,7333,0003,7174,4007,0700,0400,0000,0242 ; 6190 DBIN2: WORK[SLEN]_.NOT.[AR] ;STORE -SLEN-1 ; 6191 ; 6192 ;HERE IS THE MAIN LOOP ; 6193 =0*0 U 0460, 1040,0551,0703,7274,4007,0701,0010,0000,0242 ; 6194 DBINLP: [AR]_WORK[SLEN]+1, CALL [SRCMOD] ;(0) GET MODIFIED SRC BYTE ; 6195 TL [BRX], #/100000, ;(1) DONE, IS M SET? U 0461, 2120,4553,0600,4374,4007,0321,0000,0010,0000 ; 6196 J/DBXIT ; 6197 [AR]_.NOT.WORK[SLEN], ;(4) ABORT U 0464, 3241,7771,0003,7274,4007,0701,0000,0000,0242 ; 6198 J/DBABT ; .. ; 6199 [AR]-#, #/10., ;(5) NORMAL--SEE IF 0-9 U 0465, 2110,1553,0300,4374,4007,0532,4000,0000,0012 ; 6200 4T, SKIP DP18 ; .. ; 6201 =0 [AR]_.NOT.WORK[SLEN], ;DIGIT TOO BIG U 2110, 3241,7771,0003,7274,4007,0701,0000,0000,0242 ; 6202 J/DBABT ;GO ABORT CVT ; 6203 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 169 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6204 ;HERE TO ADD IN A DIGIT ; 6205 [BR]_AC[BIN0], 4T, ;GET HIGH BINARY U 2111, 1030,3771,0005,1276,6007,0622,0000,0000,1443 ; 6206 SKIP AD.EQ.0 ;SEE IF SMALL ; 6207 =00 ; 6208 DBSLO: [ARX]_AC[BIN1], ;TOO BIG U 1030, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 6209 CALL [DBSLOW] ;GO USE DOUBLE PRECISION PATHS ; 6210 [BR]_AC[BIN1], ;GET LOW WORD U 1031, 3235,3771,0005,1276,6007,0701,0000,0000,1444 ; 6211 J/DBFAST ;MIGHT FIT IN 1 WORD U 1032, 0460,4443,0000,4174,4007,0700,0000,0000,0000 ; 6212 J/DBINLP ;RETURN FROM DBSLOW ; 6213 ;GO DO NEXT DIGIT ; 6214 = U 3235, 2112,4553,0500,4374,4007,0321,0000,0076,0000 ; 6215 DBFAST: TL [BR], #/760000 ;WILL RESULT FIT IN 36 BITS? U 2112, 1030,4443,0000,4174,4007,0700,0000,0000,0000 ; 6216 =0 J/DBSLO ;MAY NOT FIT--USE DOUBLE WORD U 2113, 3236,3775,0005,1276,6007,0701,0000,0000,1444 ; 6217 [BR]_AC[BIN1]*2 ;COMPUTE AC*2 U 3236, 2114,3445,0505,1174,4007,0700,0000,0000,1444 ; 6218 [BR]_[BR]*2, AC[BIN1] ;COMPUTE AC*4 ; 6219 =0 [BR]_[BR]+AC[BIN1], 2T, ;COMPUTE AC*5 U 2114, 3570,0551,0505,1274,4007,0700,0010,0000,1444 ; 6220 CALL [SBRL] ;COMPUTE AC*10 ; 6221 AC[BIN1]_[AR]+[BR], 3T, ;NEW BINARY RESULT U 2115, 0460,0113,0305,1174,4007,0701,0400,0000,1444 ; 6222 J/DBINLP ;DO NEXT DIGIT ; 6223 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 170 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6224 ;HERE IF NUMBER DOES NOT FIT IN ONE WORD ; 6225 ; 6226 =000 ; 6227 DBSLOW: [BR]_AC[BIN0], ;FETCH HIGH WORD U 0560, 0620,3771,0005,1276,6007,0701,0010,0000,1443 ; 6228 CALL [MULBY4] ;MULTIPLY BY 4 ; 6229 [ARX]_[ARX]+AC[BIN1], ;COMPUTE VALUE * 5 ; 6230 SKIP CRY1, 4T, ;SEE IF OVERFLOW U 0561, 2116,0551,0404,1274,4007,0562,0010,0000,1444 ; 6231 CALL [ADDCRY] ;GO ADD CARRY U 0565, 0600,0551,0505,1274,4007,0701,0000,0000,1443 ; 6232 =101 [BR]_[BR]+AC[BIN0] ;ADD IN HIGH WORD ; 6233 = U 0600, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6234 =000 CALL [DBLDBL] ;MAKE * 10 ; 6235 [ARX]_[ARX]+[AR], 3T, ;ADD IN NEW DIGIT ; 6236 SKIP CRY1, ;SEE IF OVERFLOW U 0601, 2116,0111,0304,4174,4007,0561,0010,0000,0000 ; 6237 CALL [ADDCRY] ;ADD IN THE CARRY U 0605, 3237,3440,0404,1174,4007,0700,0400,0000,1444 ; 6238 =101 AC[BIN1]_[ARX] ;PUT BACK ANSWER ; 6239 = ; 6240 AC[BIN0]_[BR], ; .. U 3237, 0002,3440,0505,1174,4004,1700,0400,0000,1443 ; 6241 RETURN [2] ;GO DO NEXT BYTE ; 6242 ; 6243 ;HERE TO DOUBLE BR!ARX ; 6244 =000 U 0620, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6245 MULBY4: CALL [DBLDBL] ;DOUBLE TWICE U 0621, 0622,0111,0505,4174,4007,0700,0000,0000,0000 ; 6246 DBLDBL: [BR]_[BR]+[BR] ;DOUBLE HIGH WORD FIRST ; 6247 ;(SO WE DON'T DOUBLE CARRY) ; 6248 [ARX]_[ARX]+[ARX], ;DOUBLE LOW WORD ; 6249 SKIP CRY1, 3T, ;SEE IF CARRY U 0622, 2116,0111,0404,4174,4007,0561,0010,0000,0000 ; 6250 CALL [ADDCRY] ;ADD IN CARRY U 0626, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6251 =110 RETURN [1] ;ALL DONE ; 6252 = ; 6253 ; 6254 ;HERE TO ADD THE CARRY ; 6255 =0 U 2116, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6256 ADDCRY: RETURN [4] ;NO CARRY U 2117, 3240,4551,0404,4374,0007,0700,0000,0037,7777 ; 6257 CLEAR [ARX]0 ;KEEP LOW WORD POSITIVE ; 6258 [BR]_[BR]+1, ;ADD CARRY U 3240, 0004,0111,0705,4174,4004,1700,0000,0000,0000 ; 6259 RETURN [4] ;ALL DONE ; 6260 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 171 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6261 ;HERE TO ABORT CONVERSION U 3241, 3242,3111,0306,4174,4007,0700,0000,0000,0000 ; 6262 DBABT: [BRX]_[BRX].OR.[AR] ;PUT BACK UNUSED LENGTH ; 6263 [PC]_[PC]-1, HOLD LEFT, ;DO NOT SKIP U 3242, 2121,1111,0701,4170,4007,0700,4000,0000,0000 ; 6264 J/DBDONE ;GO FIX UP SIGN COPY ; 6265 ; 6266 ;HERE AT END ; 6267 =0 ; 6268 DBXIT: [ARX]_AC[BIN1], ;GET LOW WORD U 2120, 3245,3771,0004,1276,6007,0701,0000,0000,1444 ; 6269 J/DBNEG ;GO NEGATE U 2121, 3243,3771,0003,1276,6007,0701,0000,0000,1444 ; 6270 DBDONE: [AR]_AC[BIN1] ;FETCH LOW WORD ; 6271 [BR]_AC[BIN0], 4T, ;GET HIGH WORD U 3243, 2122,3771,0005,1276,6007,0522,0000,0000,1443 ; 6272 SKIP DP0 ;WHAT SIGN U 2122, 3244,4551,0303,4374,0007,0700,0000,0037,7777 ; 6273 =0 CLEAR [AR]0, J/DBDN1 ;POSITIVE U 2123, 3244,3551,0303,4374,0007,0700,0000,0040,0000 ; 6274 [AR]_[AR].OR.#, #/400000, HOLD RIGHT U 3244, 2124,3440,0303,1174,4007,0700,0400,0000,1444 ; 6275 DBDN1: AC[BIN1]_[AR] ;STORE AC BACK ; 6276 =0 AC_[BRX] TEST, ;RETURN FLAGS U 2124, 2132,3770,0606,0174,4007,0520,0410,0000,0000 ; 6277 SKIP DP0, CALL [CLRBIN] ;CLEAR BIN IS S=0 U 2125, 0372,4221,0013,4170,4007,0700,0000,0000,0000 ; 6278 ENDSKP: END STATE, J/SKIP ;NO--ALL DONE ; 6279 U 3245, 3246,4551,0404,4374,0007,0700,0000,0037,7777 ; 6280 DBNEG: CLEAR ARX0 ;CLEAR EXTRA SIGN BIT ; 6281 [ARX]_-[ARX], 3T, ;NEGATE AND SEE IF U 3246, 2126,2441,0404,1174,4007,0621,4000,0000,1443 ; 6282 SKIP AD.EQ.0, AC[BIN0] ; ANY CARRY U 2126, 2131,7771,0003,1274,4007,0700,0000,0000,1443 ; 6283 =0 [AR]_.NOT.AC[BIN0], 2T, J/STAC34 ;NO CARRY ; 6284 [AR]_-AC[BIN0], 3T, ;CARRY U 2127, 2130,1771,0003,1274,4007,0621,4000,0000,1443 ; 6285 SKIP AD.EQ.0 ;SEE IF ALL ZERO U 2130, 2131,4571,1204,4374,4007,0700,0000,0040,0000 ; 6286 =0 [ARX]_[400000] XWD 0 ;MAKE COPY OF SIGN ; 6287 ; UNLESS HIGH WORD IS ZERO U 2131, 3247,3440,0303,1174,4007,0700,0400,0000,1443 ; 6288 STAC34: AC[BIN0]_[AR] ;PUT BACK ANSWER U 3247, 2121,3440,0404,1174,4007,0700,0400,0000,1444 ; 6289 AC[BIN1]_[ARX], J/DBDONE ; .. ; 6290 ; 6291 ;HELPER SUBROUTINE TO CLEAR AC[BIN0] AND AC[BIN1] IF S=0 ; 6292 ;CALL WITH: ; 6293 ; READ [BRX], SKIP DP0, CALL [CLRBIN] ; 6294 ;RETURNS 1 ALWAYS ; 6295 =0 U 2132, 3250,4223,0000,1174,4007,0700,0400,0000,1443 ; 6296 CLRBIN: AC[BIN0]_0, J/CLRB1 U 2133, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6297 RETURN [1] U 3250, 0001,4223,0000,1174,4004,1700,0400,0000,1444 ; 6298 CLRB1: AC[BIN1]_0, RETURN [1] ; 6299 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 172 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6300 .TOC "EXTEND -- BINARY TO DECIMAL CONVERSION" ; 6301 ; 6302 3743: ; 6303 BDEC: [BRX]_AC[DLEN], ;GET LENGTH AND FLAGS U 3743, 2134,3771,0006,1276,6007,0351,0000,0000,1443 ; 6304 SKIP FPD ;CONTINUE FROM INTERUPT? ; 6305 =0 [BRX]_[BRX].AND.#, ;JUST KEEP THE FLAGS ; 6306 #/777000, ; .. U 2134, 3251,4551,0606,4374,4007,0700,0000,0077,7000 ; 6307 J/BDEC0 ;COMPUTE NEW FLAGS U 2135, 3267,3771,0003,0276,6007,0700,0000,0000,0000 ; 6308 DOCVT: [AR]_AC, J/DOCVT1 ;ALL SET PRIOR TO TRAP U 3251, 3252,3771,0004,1276,6007,0701,0000,0000,1441 ; 6309 BDEC0: [ARX]_AC[1] ;GET LOW BINARY U 3252, 2140,3771,0003,0276,6007,0700,2000,0071,0024 ; 6310 [AR]_AC, SC_20. ;GET HIGH WORD, SET STEP COUNT ; 6311 =0* WORK[BDL]_[ARX], ;SAVE IN CASE OF ABORT U 2140, 2202,3333,0004,7174,4007,0700,0410,0000,0250 ; 6312 CALL [CLARX0] ;MAKE SURE BIT 0 IS OFF ; 6313 WORK[BDH]_[AR], ;SAVE HIGH WORD AND U 2142, 2136,3333,0003,7174,4007,0520,0400,0000,0247 ; 6314 SKIP DP0 ; TEST SIGN ; 6315 =0 ; 6316 BDEC1: [BRX]_0, HOLD LEFT, ;POSITIVE, CLEAR RH OF BRX U 2136, 2146,4221,0006,4170,4007,0700,0000,0000,0000 ; 6317 J/BDEC3 ;COMPUTE # OF DIGITS REQUIRED ; 6318 [BRX]_[BRX].OR.#, ;NEGATIVE, SET M U 2137, 2141,3551,0606,4374,0007,0700,0000,0010,0000 ; 6319 #/100000, HOLD RIGHT ; .. ; 6320 =0* U 2141, 2754,4551,0404,4374,0007,0700,0010,0037,7777 ; 6321 BDEC2: CLEAR ARX0, CALL [DBLNG1] ;NEGATE AR!ARX ; 6322 AC_[AR] TEST, ;PUT BACK ANSWER U 2143, 2144,3770,0303,0174,4007,0520,0400,0000,0000 ; 6323 SKIP DP0 ;IF STILL MINUS WE HAVE ; 6324 ; 1B0, AND NO OTHER BITS U 2144, 2136,3440,0404,1174,4007,0700,0400,0000,1441 ; 6325 =0 AC[1]_[ARX], J/BDEC1 ;POSITIVE NOW U 2145, 3253,0111,0704,4174,4007,0700,0000,0000,0000 ; 6326 [ARX]_[ARX]+1 ;JUST 1B0--ADD 1 ; 6327 [BRX]_[BRX].OR.#, ;AND REMEMBER THAT WE DID ; 6328 #/040000, HOLD RIGHT, ; IN LEFT HALF OF AC+3 U 3253, 2141,3551,0606,4374,0007,0700,0000,0004,0000 ; 6329 J/BDEC2 ; NEGATE IT AGAIN ; 6330 =0 U 2146, 0441,3771,0003,0276,6007,0700,0000,0000,0000 ; 6331 BDEC3: [AR]_AC, J/BDEC4 ;GET HIGH AC ; 6332 [BRX]_[BRX].OR.#, ;NO LARGER POWER OF 10 FITS ; 6333 #/200000, ;SET N FLAG (CLEARLY NOT 0) U 2147, 2152,3551,0606,4374,0007,0700,0000,0020,0000 ; 6334 HOLD RIGHT, J/BDEC5 ;SETUP TO FILL, ETC. ; 6335 =001 ; 6336 BDEC4: [ARX]_AC[1], ;GET HIGH WORD U 0441, 2172,3771,0004,1276,6007,0701,0010,0000,1441 ; 6337 CALL [BDSUB] ;SEE IF 10**C(BRX) FITS ; 6338 =011 [BRX]_[BRX]+1, ;NUMBER FITS--TRY A LARGER ONE U 0443, 2146,0111,0706,4174,4007,0630,2000,0060,0000 ; 6339 STEP SC, J/BDEC3 ;UNLESS WE ARE OUT OF NUMBERS U 0447, 2150,4553,0600,4374,4007,0331,0000,0077,7777 ; 6340 =111 TR [BRX], #/777777 ;ANY DIGITS REQUIRED? ; 6341 = ; 6342 =0 [BRX]_[BRX].OR.#, ;SOME DIGITS NEEDED, ; 6343 #/200000, HOLD RIGHT, ; SET N FLAG U 2150, 2152,3551,0606,4374,0007,0700,0000,0020,0000 ; 6344 J/BDEC5 ;CONTINUE BELOW U 2151, 2152,0111,0706,4174,4007,0700,0000,0000,0000 ; 6345 [BRX]_[BRX]+1 ;ZERO--FORCE AT LEAST 1 DIGIT ; 6346 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 173 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6347 =0 ; 6348 BDEC5: [AR]_AC[DLEN], ;GET LENGTH U 2152, 3364,3771,0003,1276,6007,0701,0010,0000,1443 ; 6349 CALL [CLRFLG] ;REMOVE FLAGS FROM AR U 2153, 3254,4221,0005,4174,4007,0700,0000,0000,0000 ; 6350 [BR]_0 U 3254, 3255,3441,0605,4170,4007,0700,0000,0000,0000 ; 6351 [BR]_[BRX], HOLD LEFT ;GET # OF DIGITS NEEDED ; 6352 [BR]_[BR]-[AR], ;NUMBER OF FILLS NEEDED U 3255, 2154,1111,0305,4174,4007,0421,4000,0000,0000 ; 6353 SKIP AD.LE.0 ;SEE IF ENOUGH ROOM ; 6354 =0 [ARX]_WORK[BDL], ;DOES NOT FIT IN SPACE ALLOWED U 2154, 3277,3771,0004,7274,4007,0701,0000,0000,0250 ; 6355 J/BDABT ; DO NOT DO CONVERT U 2155, 2156,3333,0006,4174,4007,0520,0000,0000,0000 ; 6356 READ [BRX], SKIP DP0 ;IS L ALREADY SET ; 6357 =0 AC[DLEN]_[BRX], ;NO--NO FILLERS U 2156, 2135,3440,0606,1174,4007,0700,0400,0000,1443 ; 6358 J/DOCVT ;GO CHURN OUT THE NUMBER ; 6359 ; 6360 ; 6361 ;HERE TO STORE LEADING FILLERS U 2157, 3256,3441,0603,4174,0007,0700,0000,0000,0000 ; 6362 [AR]_[BRX], HOLD RIGHT ;MAKE SURE THE FLAGS GET SET U 3256, 3257,3440,0303,1174,4007,0700,0400,0000,1443 ; 6363 AC[DLEN]_[AR] ; BEFORE WE PAGE FAIL U 3257, 3260,3771,0003,7274,4007,0701,0000,0000,0240 ; 6364 [AR]_WORK[E0] ;ADDRESS OF FILL (-1) ; 6365 [AR]_[AR]+1, LOAD VMA, ;FETCH FILLER U 3260, 3261,0111,0703,4174,4007,0700,0200,0004,0012 ; 6366 START READ U 3261, 3262,3771,0016,4365,5007,0700,0200,0000,0002 ; 6367 MEM READ, [T0]_MEM ;GET FILLER INTO AR U 3262, 3263,3771,0013,4370,4007,0700,0000,0000,0012 ; 6368 STATE_[EDIT-DST] ;PAGE FAILS BACKUP DST U 3263, 3264,2113,0507,7174,4007,0701,4400,0000,0242 ; 6369 WORK[SLEN]_[BR]-1, 3T ;SAVE # OF FILLERS U 3264, 3265,3441,1603,7174,4007,0700,0000,0000,0242 ; 6370 BDFILL: [AR]_[T0], WORK[SLEN] ;RESTORE FILL BYTE AND ; 6371 ; WARM UP RAM FILE ; 6372 [BR]_WORK[SLEN]+1, 3T, ;MORE FILLERS NEEDED? U 3265, 0640,0551,0705,7274,4007,0521,0000,0000,0242 ; 6373 SKIP DP0 U 0640, 2135,3440,0606,1174,4007,0700,0400,0000,1443 ; 6374 =000 AC[DLEN]_[BRX], J/DOCVT ;ALL DONE FIX FLAGS AND CONVERT ; 6375 =001 WORK[SLEN]_[BR], ;SAVE UPDATED LENGTH U 0641, 3354,3333,0005,7174,4007,0700,0410,0000,0242 ; 6376 CALL [PUTDST] ; AND STORE FILLER U 0647, 3266,2551,0705,1274,4007,0701,4000,0000,1443 ; 6377 =111 [BR]_AC[DLEN]-1 ;COUNT DOWN STRING LENGTH ; 6378 = U 3266, 3264,3440,0505,1174,4007,0700,0400,0000,1443 ; 6379 AC[DLEN]_[BR], J/BDFILL ;KEEP FILLING ; 6380 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 174 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6381 ;HERE TO STORE THE ANSWER ; 6382 ; 6383 DOCVT1: [ARX]_AC[1], ;GET LOW WORD U 3267, 3276,3771,0004,1276,6007,0701,0000,0000,1441 ; 6384 J/DOCVT2 ;ENTER LOOP FROM BOTTOM ; 6385 =010 ; 6386 BDECLP: [BR]_[BR]+1, ;COUNT DIGITS U 0562, 2172,0111,0705,4174,4007,0700,0010,0000,0000 ; 6387 CALL [BDSUB] ;KEEP SUBTRACTING 10**C(BRX) U 0566, 3270,3333,0003,7174,4007,0700,0400,0000,0247 ; 6388 =110 WORK[BDH]_[AR] ;SAVE BINARY ; 6389 = ; 6390 [AR]_[BR]+WORK[E1], ;OFFSET DIGIT U 3270, 0636,0551,0503,7274,4003,7701,0000,0000,0241 ; 6391 B DISP ;SEE WHICH MODE ; 6392 =1110 READ [AR], LOAD VMA, ;TRANSLATE, START READING TABLE U 0636, 2164,3333,0003,4174,4007,0700,0200,0004,0012 ; 6393 START READ, J/BDTBL ; GO GET ENTRY FROM TABLE U 0637, 0510,3333,0004,7174,4007,0700,0400,0000,0250 ; 6394 BDSET: WORK[BDL]_[ARX] ;SAVE LOW BINARY U 0510, 3354,3771,0013,4370,4007,0700,0010,0000,0012 ; 6395 =00* STATE_[EDIT-DST], CALL [PUTDST] U 0516, 3271,2551,0705,1274,4007,0701,4000,0000,1443 ; 6396 =11* [BR]_AC[DLEN]-1 ;UPDATE STRING LENGTH U 3271, 3272,3771,0003,7274,4007,0701,0000,0000,0247 ; 6397 [AR]_WORK[BDH] U 3272, 3273,3771,0004,7274,4007,0701,0000,0000,0250 ; 6398 [ARX]_WORK[BDL] U 3273, 2160,4553,0500,4374,4007,0321,0000,0004,0000 ; 6399 TL [BR], #/040000 ;ARE WE CONVERTING 1B0? U 2160, 3300,0111,0704,4174,4007,0700,0000,0000,0000 ; 6400 =0 [ARX]_[ARX]+1, J/BDCFLG ;YES--FIX THE NUMBER AND CLEAR FLAG U 2161, 3274,3440,0303,0174,4007,0700,0400,0000,0000 ; 6401 DOCVT3: AC_[AR] U 3274, 3275,3440,0404,1174,4007,0700,0400,0000,1441 ; 6402 AC[1]_[ARX] U 3275, 3276,3440,0505,1174,4007,0700,0400,0000,1443 ; 6403 AC[DLEN]_[BR] ;STORE BACK NEW STRING LENGTH U 3276, 2162,1111,0706,4174,4007,0531,4000,0000,0000 ; 6404 DOCVT2: [BRX]_[BRX]-1, 3T, SKIP DP18 U 2162, 0562,2441,0705,4174,4467,0701,4000,0003,0000 ; 6405 =0 [BR]_-1, SET FPD, 3T, J/BDECLP U 2163, 0372,4221,0013,4170,4467,0700,0000,0005,0000 ; 6406 END STATE, CLR FPD, J/SKIP ; 6407 ; 6408 ;HERE TO TRANSLATE 1 DIGIT ; 6409 =0 ; 6410 BDTBL: END STATE, ;DON'T CHANGE BYTE POINTER IF ; 6411 ; THIS PAGE FAILS U 2164, 3563,4221,0013,4170,4007,0700,0010,0000,0000 ; 6412 CALL [LOADAR] ;GO PUT WORD IN AR U 2165, 2166,4553,0600,4374,4007,0331,0000,0077,7777 ; 6413 TR [BRX], #/777777 ;LAST DIGIT U 2166, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6414 =0 [AR]_0, HOLD RIGHT, J/BDSET U 2167, 2170,4553,0600,4374,4007,0321,0000,0010,0000 ; 6415 TL [BRX], #/100000 ;AND NEGATIVE U 2170, 2171,3770,0303,4344,4007,0700,0000,0000,0000 ; 6416 =0 [AR]_[AR] SWAP ;LAST AND MINUS, USE LH U 2171, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6417 [AR]_0, HOLD RIGHT, J/BDSET ; 6418 U 3277, 1505,3771,0003,7274,4007,0701,0000,0000,0247 ; 6419 BDABT: [AR]_WORK[BDH], J/DAC ; 6420 ; 6421 BDCFLG: [BR]_[BR].AND.NOT.#, ;CLEAR FLAG THAT TELLS US ; 6422 #/040000, HOLD RIGHT, ; TO SUBTRACT 1 AND U 3300, 2161,5551,0505,4374,0007,0700,0000,0004,0000 ; 6423 J/DOCVT3 ; CONTINUE CONVERTING ; 6424 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 175 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6425 ;SUBROUTINE TO SUBRTACT A POWER OF 10 FROM AR!ARX ; 6426 ;CALL WITH: ; 6427 ; AR!ARX/ NUMBER TO BE CONVERTED ; 6428 ; BRX(RIGHT)/ POWER OF 10 ; 6429 ;RETURNS: ; 6430 ; 2 RESULT IS STILL POSITIVE ; 6431 ; 6 RESULT WOULD HAVE BEEN NEGATIVE (RESTORE DONE) ; 6432 =0 ; 6433 BDSUB: [T0]_[BRX]+#, 3T, WORK/DECLO, ;ADDRESS OF LOW WORD U 2172, 2174,0551,0616,4374,4007,0701,0000,0000,0344 ; 6434 J/BDSUB1 ;NO INTERRUPT U 2173, 2565,4443,0000,4174,4007,0700,0000,0000,0000 ; 6435 J/FIXPC ;INTERRUPT ; 6436 =0* ; 6437 BDSUB1: [T1]_[T0], LOAD VMA, ;PUT IN VMA, U 2174, 2202,3441,1617,4174,4007,0700,0210,0000,0010 ; 6438 CALL [CLARX0] ;FIX UP SIGN OF LOW WORD ; 6439 [ARX]_[ARX]-RAM, 3T, ;SUBTRACT U 2176, 2200,1551,0404,6274,4007,0561,4000,0000,0000 ; 6440 SKIP CRY1 ;SEE IF OVERFLOW U 2200, 2201,1111,0703,4174,4007,0700,4000,0000,0000 ; 6441 =0 [AR]_[AR]-1 ;PROCESS CARRY U 2201, 3301,0551,0616,4374,4007,0701,0000,0000,0373 ; 6442 [T0]_[BRX]+#, 3T, WORK/DECHI ;ADDRESS OF HIGH WORD U 3301, 3302,3333,0016,4174,4007,0700,0200,0000,0010 ; 6443 READ [T0], LOAD VMA ;PLACE IN VMA ; 6444 [AR]_[AR]-RAM, 4T, ;SUBTRACT U 3302, 2202,1551,0303,6274,4007,0522,4000,0000,0000 ; 6445 SKIP DP0 ;SEE IF IT FIT ; 6446 =0 ; 6447 CLARX0: CLEAR ARX0, ;IT FIT, KEEP LOW WORD + U 2202, 0002,4551,0404,4374,0004,1700,0000,0037,7777 ; 6448 RETURN [2] ; AND RETURN U 2203, 3303,0551,0303,6274,4007,0700,0000,0000,0000 ; 6449 [AR]_[AR]+RAM ;RESTORE U 3303, 3304,3333,0017,4174,4007,0700,0200,0000,0010 ; 6450 READ [T1], LOAD VMA U 3304, 2204,0551,0404,6274,4007,0561,0000,0000,0000 ; 6451 [ARX]_[ARX]+RAM, 3T, SKIP CRY1 ; 6452 =0 ; 6453 BDSUB2: CLEAR ARX0, ;KEEP LOW WORD + U 2204, 0006,4551,0404,4374,0004,1700,0000,0037,7777 ; 6454 RETURN [6] ;RETURN OVERFLOW ; 6455 [AR]_[AR]+1, ;ADD BACK THE CARRY U 2205, 2204,0111,0703,4174,4007,0700,0000,0000,0000 ; 6456 J/BDSUB2 ;COMPLETE SUBTRACT ; 6457 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 176 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- MAIN LOOP ; 6458 .TOC "EXTEND -- EDIT -- MAIN LOOP" ; 6459 ; 6460 ;HERE FOR EDIT INSTRUCTION ; 6461 ;CALL WITH: ; 6462 ; AR/ E0 ADDRESS OF FILL, FLOAT, AND MESSAGE TABLE ; 6463 ; BR/ E1 TRANSLATE TABLE ; 6464 ; ; 6465 3741: ; 6466 EDIT: VMA_[AR]+1, START READ, ;FIRST GET FILL BYTE U 3741, 3362,0111,0703,4170,4007,0700,0210,0004,0012 ; 6467 CALL [GTFILL] ;GO GET IT U 3751, 2210,3771,0006,0276,6007,0700,0000,0000,0000 ; 6468 3751: [BRX]_AC ;GET PATTERN POINTER ; 6469 =0** TL [BRX], #/047777, ;MAKE SURE SECTION 0 U 2210, 3556,4553,0600,4374,4007,0321,0010,0004,7777 ; 6470 CALL [BITCHK] ; .. U 2214, 3305,3443,0600,4174,4007,0700,0200,0004,0012 ; 6471 EDITLP: VMA_[BRX], START READ ;FETCH PATTERN WORD U 3305, 3306,4221,0013,4170,4007,0700,0000,0000,0000 ; 6472 END STATE ;NO SPECIAL PAGE FAIL ACTION U 3306, 2206,3770,0605,4344,4007,0700,0000,0000,0000 ; 6473 [BR]_[BRX] SWAP ;GET PBN IN BITS 20 & 21 ; 6474 =0 [BR]_[BR]*4, ; .. U 2206, 3563,0115,0505,4174,4007,0700,0010,0000,0000 ; 6475 CALL [LOADAR] ;GET PATTERN WORD U 2207, 0654,3333,0005,4174,4003,1701,0000,0000,0000 ; 6476 READ [BR], 3T, DISP/DP LEFT ; 6477 =1100 U 0654, 2212,3770,0303,4344,4007,0700,2000,0071,0007 ; 6478 [AR]_[AR] SWAP, SC_7, J/MOVPAT ;(0) BITS 0-8 U 0655, 2213,3770,0303,4344,4007,0700,0000,0000,0000 ; 6479 [AR]_[AR] SWAP, J/MSKPAT ;(1) BITS 9-17 U 0656, 2212,3447,0303,4174,4007,0700,2000,0071,0006 ; 6480 [AR]_[AR]*.5, SC_6, J/MOVPAT ;(2) BITS 18-27 U 0657, 3307,4551,0303,4374,4007,0700,0000,0000,0777 ; 6481 [AR]_[AR].AND.#, #/777, J/EDISP ;(3) BITS 28-35 ; 6482 =0 U 2212, 2212,3447,0303,4174,4007,0630,2000,0060,0000 ; 6483 MOVPAT: [AR]_[AR]*.5, STEP SC, J/MOVPAT ;SHIFT OVER U 2213, 3307,4551,0303,4374,4007,0700,0000,0000,0777 ; 6484 MSKPAT: [AR]_[AR].AND.#, #/777 ; 6485 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 177 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- MAIN LOOP ; 6486 ;HERE WITH PATTERN BYTE RIGHT ADJUSTED IN AR U 3307, 2216,3447,0305,4174,4007,0700,2000,0071,0002 ; 6487 EDISP: [BR]_[AR]*.5, SC_2 ;SHIFT OVER ; 6488 =0 U 2216, 2216,3447,0505,4174,4007,0630,2000,0060,0000 ; 6489 EDISP1: [BR]_[BR]*.5, STEP SC, J/EDISP1 U 2217, 0661,3333,0005,4174,4003,5701,0000,0000,0000 ; 6490 READ [BR], 3T, DISP/DP ;LOOK AT HIGH 3 BITS ; 6491 =0001 ;(0) OPERATE GROUP ; 6492 [AR]-#, #/5, 4T, ; SEE IF 0-4 U 0661, 2220,1553,0300,4374,4007,0532,4000,0000,0005 ; 6493 SKIP DP18, J/EDOPR ; 6494 ;(1) MESSAGE BYTE ; 6495 READ [BRX], SKIP DP0, U 0663, 2232,3333,0006,4174,4007,0520,0000,0000,0000 ; 6496 J/EDMSG ; 6497 ;(2) UNDEFINED U 0665, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6498 J/EDNOP ; 6499 ;(3) UNDEFINED U 0667, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6500 J/EDNOP ; 6501 ;(4) UNDEFINED U 0671, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6502 J/EDNOP ; 6503 ;(5) SKIP IF M SET ; 6504 TL [BRX], #/100000, U 0673, 2236,4553,0600,4374,4007,0321,0000,0010,0000 ; 6505 J/EDSKP ; 6506 ;(6) SKIP IF N SET ; 6507 TL [BRX], #/200000, U 0675, 2236,4553,0600,4374,4007,0321,0000,0020,0000 ; 6508 J/EDSKP ; 6509 ;(7) SKIP ALWAYS U 0677, 2236,4443,0000,4174,4007,0700,0000,0000,0000 ; 6510 J/EDSKP ; 6511 ; 6512 .TOC "EXTEND -- EDIT -- DECODE OPERATE GROUP" ; 6513 ; 6514 ;HERE FOR OPERATE GROUP. SKIP IF IN RANGE ; 6515 =0 U 2220, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6516 EDOPR: J/EDNOP ;OUT OF RANGE U 2221, 0710,3333,0003,4174,4003,5701,0000,0000,0000 ; 6517 READ [AR], 3T, DISP/DP ;DISPATCH ON TYPE U 0710, 3310,0111,0701,4174,4007,0700,0000,0000,0000 ; 6518 =1000 [PC]_[PC]+1, J/EDSTOP ;(0) STOP EDIT ; 6519 STATE_[EDIT-SRC], ;(1) SELECT SOURCE BYTE U 0711, 2175,3771,0013,4370,4007,0700,0000,0000,0011 ; 6520 J/EDSEL ; 6521 READ [BRX], SKIP DP0, ;(2) START SIGNIFICANCE U 0712, 0246,3333,0006,4174,4007,0520,0000,0000,0000 ; 6522 J/EDSSIG ; 6523 [BRX]_[BRX].AND.#, ;(3) FIELD SEPERATOR ; 6524 #/77777, HOLD RIGHT, U 0713, 3327,4551,0606,4374,0007,0700,0000,0007,7777 ; 6525 J/EDNOP U 0714, 0715,3771,0005,1276,6007,0701,0000,0000,1443 ; 6526 [BR]_AC[MARK] ;(4) EXCHANGE MARK AND DEST ; 6527 VMA_[BR], START READ, U 0715, 2224,3443,0500,4174,4007,0700,0200,0004,0012 ; 6528 J/EDEXMD ; 6529 = ; 6530 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 178 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- STOP EDIT ; 6531 .TOC "EXTEND -- EDIT -- STOP EDIT" ; 6532 ; 6533 ;HERE TO END AN EDIT OPERATION. PC IS SET TO SKIP IF NORMAL END ; 6534 ; OR NON-SKIP IF ABORT ; 6535 EDSTOP: [BR]_.NOT.[BRX], ;AD WILL NOT DO D.AND.NOT.A U 3310, 3311,7441,0605,4174,4007,0700,1000,0071,0010 ; 6536 FE_S#, S#/10 ;PRESET FE U 3311, 3312,3441,0603,4174,4007,0701,1000,0043,0000 ; 6537 [AR]_[BRX], 3T, FE_FE+P ;MOVE POINTER, UPBATE PBN ; 6538 [BR].AND.#, 3T, ;WAS OLD NUMBER 3? U 3312, 2222,4553,0500,4374,4007,0321,0000,0003,0000 ; 6539 #/030000, SKIP ADL.EQ.0 ; .. ; 6540 =0 U 2222, 1515,3770,0303,4334,4017,0700,0000,0041,0000 ; 6541 EDSTP1: [AR]_P, J/STAC ;NO--ALL DONE ; 6542 [AR]_[AR]+1, ;YES--BUMP WORD # ; 6543 FE_FE.AND.S#, S#/0700, ;KEEP ONLY FLAG BITS U 2223, 2222,0111,0703,4174,4007,0700,1000,0051,0700 ; 6544 J/EDSTP1 ;GO STOP EDIT ; 6545 ; 6546 .TOC "EXTEND -- EDIT -- START SIGNIFICANCE" ; 6547 ; 6548 ;HERE WITH DST POINTER IN AR ; 6549 =110 U 0246, 3316,4443,0000,4174,4007,0700,0010,0000,0000 ; 6550 EDSSIG: CALL [EDFLT] ;STORE FLT CHAR U 0247, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6551 J/EDNOP ;DO NEXT PATTERN BYTE ; 6552 ; 6553 .TOC "EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION" ; 6554 ; 6555 ;HERE WITH ADDRESS OF MARK POINTER IN BR ; 6556 =0 ; 6557 EDEXMD: Q_AC[DSTP], ;GET DEST POINTER U 2224, 3563,3772,0000,1275,5007,0701,0010,0000,1444 ; 6558 CALL [LOADAR] ;GO PUT MARK IN AR U 2225, 3313,4443,0000,4174,4007,0700,0200,0003,0002 ; 6559 START WRITE ;START WRITE. SEPERATE STEP TO AVOID ; 6560 ; PROBLEM ON DPM5 U 3313, 3314,3223,0000,4174,4007,0701,0200,0000,0002 ; 6561 MEM WRITE, MEM_Q ;PUT OLD DEST IN MARK U 3314, 3327,3440,0303,1174,4007,0700,0400,0000,1444 ; 6562 AC[DSTP]_[AR], J/EDNOP ;PUT BACK DEST POINTER ; 6563 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 179 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6564 .TOC "EXTEND -- EDIT -- PROCESS SOURCE BYTE" ; 6565 ; 6566 =0* ; 6567 EDSEL: [AR]_AC[SRCP], ;PICK UP SRC POINTER U 2175, 2257,3771,0003,1276,6007,0701,0010,0000,1441 ; 6568 CALL [GETSRC] ;GET SOURCE BYTE U 2177, 0700,3447,0303,7174,4007,0700,0000,0000,0241 ; 6569 [AR]_[AR]*.5, WORK[E1] ;PREPARE TO TRANSLATE ; 6570 =000 [AR]_[AR]+WORK[E1], ;GO TRANSLATE BY HALFWORDS U 0700, 3347,0551,0303,7274,4007,0700,0010,0000,0241 ; 6571 2T, CALL [TRNAR] ; .. ; 6572 =010 ; 6573 EDFILL: READ [AR], ;(2) NO SIGNIFICANCE, GO FILL ; 6574 SKIP AD.EQ.0, ; SEE IF ANY FILLER U 0702, 2226,3333,0003,4174,4007,0621,0000,0000,0000 ; 6575 J/EDFIL1 ; GO TO IT ; 6576 STATE_[EDIT-SRC], ;(3) SIG START, DO FLOAT CHAR U 0703, 0606,3771,0013,4370,4007,0700,0000,0000,0011 ; 6577 J/EDSFLT U 0704, 3310,4443,0000,4174,4007,0700,0000,0000,0000 ; 6578 =100 J/EDSTOP ;(4) ABORT ; 6579 =101 ; 6580 EDSPUT: STATE_[EDIT-S+D], ;(5) NORMAL, STORE AT DST U 0705, 3354,3771,0013,4370,4007,0700,0010,0000,0013 ; 6581 CALL [PUTDST] ; .. ; 6582 =111 U 0707, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6583 J/EDNOP ;(7) BYTE STORED ; 6584 = ; 6585 ; 6586 ;HERE TO COMPLETE STORING FILL ; 6587 =0 U 2226, 0705,4443,0000,4174,4007,0700,0000,0000,0000 ; 6588 EDFIL1: J/EDSPUT ;STORE FILLER U 2227, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6589 J/EDNOP ;NO FILLER TO STORE ; 6590 ; 6591 ;HERE TO DO FLOAT BYTE ; 6592 =110 ; 6593 EDSFLT: WORK[FSIG]_[ARX], ;SAVE SIG CHAR U 0606, 3316,3333,0004,7174,4007,0700,0410,0000,0246 ; 6594 CALL [EDFLT] ;STORE FLOAT CHAR U 0607, 3315,3771,0003,7274,4007,0701,0000,0000,0246 ; 6595 [AR]_WORK[FSIG] ;RESTORE CHAR ; 6596 [AR]_[AR].AND.# CLR LH, ;JUST KEEP THE BYTE IN CASE ; 6597 #/77777, ; DEST BYTE .GT. 15 BITS U 3315, 0705,4251,0303,4374,4007,0700,0000,0007,7777 ; 6598 J/EDSPUT ;GO STORE CHAR WHICH STARTED THIS ALL ; 6599 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 180 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6600 ;SUBRUTINE TO PROCESS FLOAT CHAR ; 6601 ;CALL WITH: ; 6602 ; AR/ POINTER TO STORE @ MARK ; 6603 ;RETURN 7 WITH FLOAT STORED U 3316, 3317,3771,0005,1276,6007,0701,0000,0000,1443 ; 6604 EDFLT: [BR]_AC[MARK] ;ADDRESS OF MARK POINTER U 3317, 3320,3443,0500,4174,4007,0700,0200,0003,0012 ; 6605 VMA_[BR], START WRITE ;READY TO STORE U 3320, 3321,3771,0005,1276,6007,0701,0000,0000,1444 ; 6606 [BR]_AC[DSTP] ;GET DST POINTER U 3321, 2230,3333,0005,4175,5007,0701,0200,0000,0002 ; 6607 MEM WRITE, MEM_[BR] ;STORE POINTER ; 6608 =0 [AR]_0 XWD [2], ;FETCH FLOAT CHAR U 2230, 3323,4751,1203,4374,4007,0700,0010,0000,0002 ; 6609 CALL [EDBYTE] ;GET TBL BYTE ; 6610 MEM READ, [AR]_MEM, ;GET FLOAT CHAR U 2231, 0740,3771,0003,4365,5007,0621,0200,0000,0002 ; 6611 SKIP AD.EQ.0 ;SEE IF NULL ; 6612 =000 ; 6613 [FLG]_[FLG].OR.#, ;REMEMBER TO BACKUP DST POINTER ; 6614 STATE/EDIT-DST, ; WILL ALSO BACKUP SRC IF CALLED ; 6615 HOLD LEFT, ; FROM SELECT U 0740, 3354,3551,1313,4370,4007,0700,0010,0000,0012 ; 6616 CALL [PUTDST] ; STORE FLOAT ; 6617 =001 [BRX]_[BRX].OR.#, #/400000, U 0741, 3322,3551,0606,4374,0007,0700,0000,0040,0000 ; 6618 HOLD RIGHT, J/EDFLT1 ;NULL ; 6619 =110 [BRX]_[BRX].OR.#, #/400000, U 0746, 3322,3551,0606,4374,0007,0700,0000,0040,0000 ; 6620 HOLD RIGHT, J/EDFLT1 ;MARK STORED ; 6621 = ; 6622 EDFLT1: AC_[BRX], ;SAVE FLAGS SO WE DON'T ; 6623 ;TRY TO DO THIS AGAIN IF ; 6624 ;NEXT STORE PAGE FAILS U 3322, 0007,3440,0606,0174,4004,1700,0400,0000,0000 ; 6625 RETURN [7] ;AND RETURN ; 6626 ; 6627 .TOC "EXTEND -- EDIT -- MESSAGE BYTE" ; 6628 ; 6629 ;HERE WITH SKIP ON S ; 6630 =0 ; 6631 EDMSG: [AR]_WORK[FILL], ;GET FILL BYTE ; 6632 SKIP AD.EQ.0, 4T, ;SEE IF NULL U 2232, 0760,3771,0003,7274,4007,0622,0000,0000,0244 ; 6633 J/EDMSG1 ;GO STORE ; 6634 [AR]_[AR].AND.# CLR LH, ;GET OFFSET INTO TABLE U 2233, 2234,4251,0303,4374,4007,0700,0000,0000,0077 ; 6635 #/77 ; 6636 =0 [AR]_[AR]+1, WORK[E0], ;PLUS 1 U 2234, 3323,0111,0703,7174,4007,0700,0010,0000,0240 ; 6637 CALL [EDBYTE] ;GET TBL BYTE U 2235, 0760,3771,0003,4365,5007,0700,0200,0000,0002 ; 6638 MEM READ, [AR]_MEM ;FROM MEMORY ; 6639 =000 ; 6640 EDMSG1: STATE_[EDIT-DST], ;WHAT TO DO ON PAGE FAILS U 0760, 3354,3771,0013,4370,4007,0700,0010,0000,0012 ; 6641 CALL [PUTDST] ;STORE MESSAGE BYTE U 0761, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6642 =001 J/EDNOP ;NULL FILLER U 0766, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6643 =110 J/EDNOP ;NEXT BYTE ; 6644 = ; 6645 U 3323, 3324,0551,0303,7274,4007,0701,0000,0000,0240 ; 6646 EDBYTE: [AR]_[AR]+WORK[E0] ;GET OFFSET INTO TABLE ; 6647 VMA_[AR], START READ, ;START MEMORY CYCLE U 3324, 0001,3443,0300,4174,4004,1700,0200,0004,0012 ; 6648 RETURN [1] ;RETURN TO CALLER ; 6649 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 181 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- EDIT -- SKIP ; 6650 .TOC "EXTEND -- EDIT -- SKIP" ; 6651 ; 6652 =0 ; 6653 ;HERE TO SKIP ALWAYS ; 6654 EDSKP: [AR]_[AR].AND.#, #/77, ;JUST KEEP SKIP DISTANCE U 2236, 3325,4551,0303,4374,4007,0700,0000,0000,0077 ; 6655 J/EDSKP1 ;CONTINUE BELOW ; 6656 ;HERE IF WE DO NOT WANT TO SKIP U 2237, 3327,4443,0000,4174,4007,0700,0000,0000,0000 ; 6657 J/EDNOP U 3325, 3326,0115,0703,4174,4007,0700,0000,0000,0000 ; 6658 EDSKP1: [AR]_([AR]+1)*2 ;GIVE 1 EXTRA SKIP ; 6659 READ [AR], SCAD/A*2, ;PUT THE ADJUSTMENT ; 6660 SCADA/BYTE5, 3T, LOAD SC, ; THE SC U 3326, 3330,3333,0003,4174,4007,0701,2000,0007,0000 ; 6661 J/EDNOP1 ;JOIN MAIN LOOP ; 6662 ; 6663 ; 6664 .TOC "EXTEND -- EDIT -- ADVANCE PATTERN POINTER" ; 6665 U 3327, 3330,4443,0000,4174,4007,0700,2000,0071,0000 ; 6666 EDNOP: SC_0 ;NO SKIP U 3330, 3331,3333,0006,4174,4007,0701,1000,0073,0000 ; 6667 EDNOP1: READ [BRX], 3T, FE_P ;PUT PBN IN FE U 3331, 3332,4443,0000,4174,4007,0700,1000,0051,0030 ; 6668 FE_FE.AND.S#, S#/30 ;JUST BYTE # U 3332, 3333,4443,0000,4174,4007,0700,1000,0040,0000 ; 6669 FE_FE+SC ;ADD IN ANY SKIP DISTANCE U 3333, 3334,4443,0000,4174,4007,0700,1000,0041,0010 ; 6670 FE_FE+S#, S#/10 ;BUMP PBN ; 6671 [AR]_FE, ;GET NUMBER OF WORDS U 3334, 3335,3777,0003,4334,4057,0700,2000,0041,0000 ; 6672 LOAD SC ;PUT MSB WHERE IT CAN BE TESTED ; 6673 ; QUICKLY ; 6674 [AR]_[AR].AND.# CLR LH, ;KEEP ONLY 1 COPY U 3335, 2240,4251,0303,4374,4007,0630,0000,0000,0170 ; 6675 #/170, SKIP/SC ; .. ; 6676 =0 ; 6677 EDN1A: [AR]_[AR]*.5, SC_0, U 2240, 2242,3447,0303,4174,4007,0700,2000,0071,0000 ; 6678 J/EDNOP2 ;READY TO SHIFT OFF BYTE WITHIN ; 6679 ; WORD ; 6680 [AR]_[AR].OR.#, #/200, ;GET THE SIGN BIT OF THE FE ; 6681 HOLD LEFT, ; INTO THE AR. ONLY HAPPENS ON U 2241, 2240,3551,0303,4370,4007,0700,0000,0000,0200 ; 6682 J/EDN1A ; SKP 76 OR SKP 77 ; 6683 =0 U 2242, 2242,3447,0303,4174,4007,0630,2000,0060,0000 ; 6684 EDNOP2: [AR]_[AR]*.5, STEP SC, J/EDNOP2 ; 6685 [BRX]_[BRX]+[AR], ;UPDATE WORD ADDRESS U 2243, 3336,0111,0306,4170,4007,0700,0000,0000,0000 ; 6686 HOLD LEFT U 3336, 3337,3770,0303,4334,4017,0700,0000,0041,0000 ; 6687 [AR]_P ;PUT PBN BACK IN BRX ; 6688 [BRX]_[BRX].AND.#, ;JUST KEEP FLAGS ; 6689 #/700000, ; .. U 3337, 3340,4551,0606,4374,0007,0700,0000,0070,0000 ; 6690 HOLD RIGHT ; 6691 [AR]_[AR].AND.#, ;JUST KEEP PBN U 3340, 3341,4551,0303,4374,4007,0700,0000,0003,0000 ; 6692 #/030000 ; 6693 [BRX]_[BRX].OR.[AR], ;FINAL ANSWER U 3341, 3342,3111,0306,4174,0007,0700,0000,0000,0000 ; 6694 HOLD RIGHT U 3342, 2214,3440,0606,0174,4007,0700,0400,0000,0000 ; 6695 AC_[BRX], J/EDITLP ;DO NEXT FUNCTION ; 6696 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 182 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 6697 .TOC "EXTEND SUBROUTINES -- FILL OUT DESTINATION" ; 6698 ; 6699 ;CALL WITH ; 6700 ; AC[DLEN]/ NEGATIVE NUMBER OF BYTES LEFT IN DEST ; 6701 ; FILL/ FILL BYTE ; 6702 ; RETURN [2] WITH FILLERS STORED ; 6703 ; ; 6704 ;NOTE: THIS ROUTINE NEED NOT TEST FOR INTERRUPTS ON EACH BYTE ; 6705 ; BECAUSE EVERY BYTE STORE DOES A MEMORY READ. ; 6706 ; ; 6707 =01* ; 6708 MOVF1: [AR]_WORK[FILL], 2T, ;GET FILL BYTE U 0332, 3354,3771,0003,7274,4007,0700,0010,0000,0244 ; 6709 CALL [PUTDST] ;PLACE IN DEST U 0336, 3343,3771,0003,1276,6007,0701,0000,0000,1443 ; 6710 [AR]_AC[DLEN] ;AMOUNT LEFT ; 6711 AC[DLEN]_[AR]+1, 3T, ;STORE UPDATED LEN U 3343, 2244,0113,0703,1174,4007,0521,0400,0000,1443 ; 6712 SKIP DP0 ; AND SEE IF DONE U 2244, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 6713 =0 RETURN [2] ;DONE U 2245, 0332,4443,0000,7174,4007,0700,0000,0000,0244 ; 6714 MOVFIL: WORK[FILL], J/MOVF1 ;DO ANOTHER BYTE ; 6715 ;ENTERING HERE SAVES 150NS ; 6716 ; PER BYTE BUT COSTS 300NS ; 6717 ; PER FIELD MOVED. I ASSUME (BUT DO ; 6718 ; NOT KNOW) THAT THIS SPEEDS ; 6719 ; THINGS UP. ; 6720 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 183 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; 6721 .TOC"EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE" ; 6722 ; 6723 ;CALL WITH: ; 6724 ;SLEN = MINUS LENGTH OF STRING ; 6725 ;MSK = MASK FOR BYTE SIZE (1 IF BIT MUST BE ZERO) ; 6726 ;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET) ; 6727 ; [AR]_WORK[SLEN]+1, CALL [SRCMOD] ; 6728 ;RETURNS: ; 6729 ; 1 LENGTH EXHAUSTED ; 6730 ; 2 (EDIT ONLY) NO SIGNIFICANCE ; 6731 ; 3 (EDIT ONLY) SIGNIFICANCE START: ; 6732 ; 4 ABORT: OUT OF RANGE OR TRANSLATE FAILURE ; 6733 ; 5 NORMAL: BYTE IN AR ; 6734 ; ; 6735 ;DROM B SET AS FOLLOWS: ; 6736 ; 0 TRANSLATE ; 6737 ; 1 OFFSET ; 6738 ; 2 EDIT ; 6739 ; 4 CVTDBT ; 6740 =00 ; 6741 SRCMOD: WORK[SLEN]_[AR], ;PUT BACK SOURCE LENGTH ; 6742 SKIP DP0, ;SEE IF DONE U 1040, 2256,3333,0003,7174,4007,0520,0410,0000,0242 ; 6743 CALL [GSRC] ;GET A SOURCE BYTE U 1041, 0001,4221,0013,4170,4004,1700,0000,0000,0000 ; 6744 END STATE, RETURN [1] ;DONE U 1042, 0716,4443,0000,7174,4003,7700,0000,0000,0241 ; 6745 WORK[E1], B DISP ;OFFSET OR TRANSLATE? ; 6746 = U 0716, 3346,3447,0303,4174,4007,0700,0000,0000,0000 ; 6747 =1110 [AR]_[AR]*.5, J/XLATE ;TRANSLATE U 0717, 3344,3770,0303,7174,0007,0700,0000,0000,0241 ; 6748 FIX [AR] SIGN, WORK[E1] ;IF WE ARE PROCESSING FULL WORD ; 6749 ; BYTES, AND THEY ARE NEGATIVE, ; 6750 ; AND THE OFFSET IS POSITIVE THEN ; 6751 ; WE HAVE TO MAKE BITS -1 AND -2 ; 6752 ; COPIES OF THE SIGN BIT. U 3344, 3345,0551,0303,7274,4007,0700,0000,0000,0241 ; 6753 [AR]_[AR]+WORK[E1], 2T ;OFFSET ; 6754 [AR].AND.WORK[MSK], ;VALID BYTE? ; 6755 SKIP AD.EQ.0, 4T, ;SKIP IF OK U 3345, 0004,4553,0300,7274,4004,1622,0000,0000,0243 ; 6756 RETURN [4] ;RETURN 4 IF BAD, 5 IF OK ; 6757 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 184 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- TRANSLATE ; 6758 .TOC "EXTEND SUBROUTINES -- TRANSLATE" ; 6759 ; 6760 ;HERE WITH BYTE IN AR 1-36. FETCH TABLE ENTRY. U 3346, 3347,0551,0303,7274,4007,0701,0000,0000,0241 ; 6761 XLATE: [AR]_[AR]+WORK[E1] ;COMPUTE ADDRESS ; 6762 TRNAR: READ [AR], LOAD VMA, ;FETCH WORD U 3347, 2246,3333,0003,4174,4007,0700,0200,0004,0012 ; 6763 START READ ; .. ; 6764 =0 [AR]_[AR]*2, ;GET BACK LSB ; 6765 ;BIT 36 IS NOT PRESERVED ; 6766 ; BY PAGE FAILS U 2246, 3564,3445,0303,4174,4007,0700,0010,0000,0000 ; 6767 CALL [LOADARX] ;PUT ENTRY IN ARX U 2247, 2250,4553,0300,4374,4007,0331,0000,0000,0001 ; 6768 TR [AR], #/1 ;WHICH HALF? ; 6769 =0 ; 6770 XLATE1: [AR]_[ARX], 3T, ;RH -- COPY TO AR ; 6771 DISP/DP LEFT, ;DISPATCH ON CODE U 2250, 0721,3441,0403,4174,4003,1701,0000,0000,0000 ; 6772 J/TRNFNC ;DISPATCH TABLE ; 6773 [ARX]_[ARX] SWAP, ;LH -- FLIP AROUND U 2251, 2250,3770,0404,4344,4007,0700,0000,0000,0000 ; 6774 J/XLATE1 ;START SHIFT ; 6775 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 185 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- TRANSLATE ; 6776 ;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY ; 6777 ; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD. WE ; 6778 ; DISPATCH ON FUNCTION AND HAVE: ; 6779 ; BRX/ FLAGS ; 6780 ; ARX/ TABLE ENTRY IN RH ; 6781 ; ; 6782 =0001 ; 6783 ;(0) NOP ; 6784 TRNFNC: READ [BRX], SKIP DP0, ;S FLAG ALREADY SET? U 0721, 2252,3333,0006,4174,4007,0520,0000,0000,0000 ; 6785 J/TRNRET ; .. ; 6786 ;(1) ABORT U 0723, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6787 RETURN [4] ; 6788 ;(2) CLEAR M FLAG ; 6789 [BRX]_[BRX].AND.NOT.#, ; 6790 #/100000, HOLD RIGHT, U 0725, 0721,5551,0606,4374,0007,0700,0000,0010,0000 ; 6791 J/TRNFNC ; 6792 ;(3) SET M FLAG ; 6793 [BRX]_[BRX].OR.#, ; 6794 #/100000, HOLD RIGHT, U 0727, 0721,3551,0606,4374,0007,0700,0000,0010,0000 ; 6795 J/TRNFNC ; 6796 ;(4) SET N FLAG ; 6797 TRNSIG: [BRX]_[BRX].OR.#, ; 6798 #/200000, HOLD RIGHT, U 0731, 0721,3551,0606,4374,0007,0700,0000,0020,0000 ; 6799 J/TRNFNC ; 6800 ;(5) SET N FLAG THEN ABORT ; 6801 [BRX]_[BRX].OR.#, ; 6802 #/200000, HOLD RIGHT, U 0733, 0004,3551,0606,4374,0004,1700,0000,0020,0000 ; 6803 RETURN [4] ; 6804 ;(6) CLEAR M THEN SET N ; 6805 [BRX]_[BRX].AND.NOT.#, ; 6806 #/100000, HOLD RIGHT, U 0735, 0731,5551,0606,4374,0007,0700,0000,0010,0000 ; 6807 J/TRNSIG ; 6808 ;(7) SET N AND M ; 6809 [BRX]_[BRX].OR.#, ; 6810 #/300000, HOLD RIGHT, U 0737, 0721,3551,0606,4374,0007,0700,0000,0030,0000 ; 6811 J/TRNFNC ; 6812 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 186 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- TRANSLATE ; 6813 ;HERE TO COMPLETE A TRANSLATE ; 6814 ; 6815 =0 ; 6816 TRNRET: READ [ARX], SKIP DP18, ;S-FLAG IS ZERO ; 6817 B DISP, SKIP DP18, ;SEE IF EDIT OR SIG START U 2252, 0754,3333,0004,4174,4003,7530,0000,0000,0000 ; 6818 J/TRNSS ; .. ; 6819 TRNSS1: [AR]_[ARX].AND.# CLR LH, ;S IS SET, JUST RETURN BYTE U 2253, 0005,4251,0403,4374,4004,1700,0000,0007,7777 ; 6820 #/77777, RETURN [5] ; .. ; 6821 ; 6822 =1100 ; 6823 TRNSS: [AR]_AC[DLEN], ;NO SIG ON MOVE OR D2B U 0754, 0533,3771,0003,1276,6003,7701,0000,0000,1443 ; 6824 B DISP, J/TRNNS1 ;SEE IF D2B ; 6825 [BRX]_[BRX].OR.#, ;SIG START ON MOVE OR D2B ; 6826 #/400000, HOLD RIGHT, U 0755, 2253,3551,0606,4374,0007,0700,0000,0040,0000 ; 6827 J/TRNSS1 ;RETURN BYTE ; 6828 [AR]_WORK[FILL], ;EDIT--NO SIG RETURN FILL U 0756, 0002,3771,0003,7274,4004,1701,0000,0000,0244 ; 6829 RETURN [2] ; .. ; 6830 [AR]_AC[DSTP], ;EDIT--START OF SIG U 0757, 0003,3771,0003,1276,6004,1701,0000,0000,1444 ; 6831 RETURN [3] ; .. ; 6832 ; 6833 =1011 U 0533, 3350,1111,0703,4174,4007,0700,4000,0000,0000 ; 6834 TRNNS1: [AR]_[AR]-1, J/TRNNS2 ;COMPENSATE FOR IGNORING SRC ; 6835 [AR]_WORK[SLEN]+1, ;DEC TO BIN HAS NO DEST LENGTH U 0537, 1040,0551,0703,7274,4007,0701,0000,0000,0242 ; 6836 J/SRCMOD ;JUST UPDATE SRC LENTH ; 6837 TRNNS2: AC[DLEN]_[AR] TEST, ;PUT BACK DLEN AND U 3350, 2254,3770,0303,1174,4007,0520,0400,0000,1443 ; 6838 SKIP DP0 ; SEE WHICH IS NOW SHORTER ; 6839 =0 [AR]_WORK[SLEN], ;DEST IS SHORTER. DO NOT CHANGE U 2254, 1040,3771,0003,7274,4007,0701,0000,0000,0242 ; 6840 J/SRCMOD ; AMOUNT LEFT ; 6841 [AR]_WORK[SLEN]+1, ;GO LOOK AT NEXT BYTE U 2255, 1040,0551,0703,7274,4007,0701,0000,0000,0242 ; 6842 J/SRCMOD ; 6843 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 187 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; 6844 .TOC "EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE" ; 6845 ; 6846 ;CALL: ; 6847 ; GSRC WITH SKIP ON SOURCE LENGTH ; 6848 ; GETSRC IF LENGHT IS OK ; 6849 ;WITH: ; 6850 ; AC1/ SOURCE BYTE POINTER ; 6851 ;RETURNS: ; 6852 ; 1 IF LENGTH RAN OUT ; 6853 ; 2 IF OK (BYTE IN AR) ; 6854 ; ; 6855 =0 ; 6856 GSRC: [AR]_AC[DLEN], ;LENGTH RAN OUT U 2256, 0001,3771,0003,1276,6004,1701,0000,0000,1443 ; 6857 RETURN [1] ;RESTORE AR AND RETURN U 2257, 3351,3771,0003,1276,6007,0701,0000,0000,1441 ; 6858 GETSRC: [AR]_AC[SRCP] ;GET SRC PTR ; 6859 IBP DP, IBP SCAD, ;UPDATE BYTE POINTER U 3351, 0231,3770,0305,4334,4016,7701,0000,0033,6000 ; 6860 SCAD DISP, 3T ;SEE IF OFLOW U 0231, 3353,3441,0503,4174,4007,0700,0000,0000,0000 ; 6861 =01 [AR]_[BR], J/GSRC1 ;NO OFLOW U 0233, 3352,3770,0503,4334,4017,0700,0000,0032,6000 ; 6862 SET P TO 36-S ;RESET P U 3352, 3353,0111,0703,4170,4007,0700,0000,0000,0000 ; 6863 [AR]_[AR]+1, HOLD LEFT ;BUMP Y ; 6864 U 3353, 2260,3440,0303,1174,4007,0700,0400,0000,1441 ; 6865 GSRC1: AC[SRCP]_[AR] ;STORE UPDATED POINTER ; 6866 =0 READ [AR], LOAD BYTE EA,;SETUP TO FIGURE OUT U 2260, 2761,3333,0003,4174,4217,0701,1010,0073,0500 ; 6867 FE_P, 3T, CALL [BYTEAS] ; EFFECTIVE ADDRESS ; 6868 READ [AR], ;LOOK AT POINTER ; 6869 BYTE DISP, ;SEE IF 7 BIT ; 6870 FE_FE.AND.S#, S#/0770, ;MASK OUT P FIELD U 2261, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6871 J/LDB1 ;GO GET THE BYTE ; 6872 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 188 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 6873 .TOC "EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING" ; 6874 ; 6875 ;CALL WITH: ; 6876 ; AR/ BYTE TO STORE ; 6877 ; AC4/ DESTINATION BYTE POINTER ; 6878 ;RETURNS: ; 6879 ; AR & AC4/ UPDATED BYTE POINTER ; 6880 ; ARX/ BYTE TO STORE ; 6881 ; BR/ WORD TO MERGE WITH ; 6882 ; 6 ALWAYS ; 6883 ; U 3354, 2262,3441,0304,4174,4007,0700,0000,0000,0000 ; 6884 PUTDST: [ARX]_[AR] ;SAVE BYTE ; 6885 =0 [AR]_AC[DSTP], ;GET DEST POINTER U 2262, 3355,3771,0003,1276,6007,0701,0010,0000,1444 ; 6886 CALL [IDST] ;BUMP DEST POINTER ; 6887 AD/A+B, A/ARX, B/ARX, ;SHIFT 7-BIT BYTE TO ; 6888 SCAD/A, 3T, ; NATURAL PLACE, AND PUT U 2263, 2264,0113,0404,4174,4007,0701,1000,0077,0000 ; 6889 SCADA/BYTE5, LOAD FE ; INTO FE ; 6890 =0* READ [AR], BYTE DISP, ;GO PUT BYTE IN MEMORY U 2264, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 6891 CALL [DPB1] ; .. U 2266, 0006,4443,0000,4174,4004,1700,0000,0000,0000 ; 6892 RETURN [6] ;ALL DONE ; 6893 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 189 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 6894 .TOC "EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS" ; 6895 ; 6896 ; 6897 ;SUBROUTINE TO BUMP DST POINTERS ; 6898 ;CALL WITH: ; 6899 ; AR/ AC[DSTP] ; 6900 ; RETURN 1 WITH UPDATED POINTER STORED ; 6901 ; U 3355, 2265,3770,0305,4334,4016,7701,0000,0033,6000 ; 6902 IDST: IBP DP, IBP SCAD, SCAD DISP, 3T U 2265, 3357,3441,0503,4174,4217,0700,0000,0000,0600 ; 6903 =0* [AR]_[BR], LOAD DST EA, J/IDSTX U 2267, 3356,3770,0503,4334,4017,0700,0000,0032,6000 ; 6904 SET P TO 36-S U 3356, 3357,0111,0703,4170,4217,0700,0000,0000,0600 ; 6905 [AR]_[AR]+1, HOLD LEFT, LOAD DST EA ; 6906 IDSTX: AC[DSTP]_[AR], 3T, ;STORE PTR BACK U 3357, 0230,3440,0303,1174,4006,6701,1400,0073,1444 ; 6907 FE_P, DISP/EAMODE ;SAVE P FOR CMPDST ; 6908 =100* U 0230, 2764,0553,0300,2274,4007,0701,0200,0004,0712 ; 6909 DSTEA: VMA_[AR]+XR, START READ, PXCT BYTE DATA, 3T, J/BYTFET U 0232, 2764,3443,0300,4174,4007,0700,0200,0004,0712 ; 6910 VMA_[AR], START READ, PXCT BYTE DATA, J/BYTFET U 0234, 3360,0553,0300,2274,4007,0701,0200,0004,0612 ; 6911 VMA_[AR]+XR, START READ, PXCT/BIS-DST-EA, 3T, J/DSTIND U 0236, 3360,3443,0300,4174,4007,0700,0200,0004,0612 ; 6912 VMA_[AR], START READ, PXCT/BIS-DST-EA, J/DSTIND ; 6913 U 3360, 3361,3771,0003,4361,5217,0700,0200,0000,0602 ; 6914 DSTIND: MEM READ, [AR]_MEM, HOLD LEFT, LOAD DST EA U 3361, 0230,4443,0000,2174,4006,6700,0000,0000,0000 ; 6915 EA MODE DISP, J/DSTEA ; 6916 ; 6917 ; 6918 ;HERE TO TEST ILLEGAL BITS SET ; 6919 ;CALL WITH: ; 6920 ; SKIP IF ALL BITS LEGAL ; 6921 ; RETURN [4] IF OK, ELSE DO UUO ; 6922 ; ; 6923 3556: ;EXTEND OF 0 COMES HERE U 3556, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 6924 BITCHK: UUO U 3557, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6925 3557: RETURN [4] ; 6926 ; 6927 ;HERE TO PUT FILL IN [AR] AND WORK[FILL] ; 6928 GTFILL: MEM READ, ;WAIT FOR DATA U 3362, 3363,3771,0003,4365,5007,0700,0200,0000,0002 ; 6929 [AR]_MEM ;PLACE IN AR ; 6930 WORK[FILL]_[AR], ;SAVE FOR LATER U 3363, 0010,3333,0003,7174,4004,1700,0400,0000,0244 ; 6931 RETURN [10] ;RETURN TO CALLER ; 6932 ; 6933 ;SUBROUTINE TO CLEAR FLAGS IN AR ; 6934 CLRFLG: [AR]_[AR].AND.#, ;CLEAR FLAGS IN AR ; 6935 #/000777, ; .. U 3364, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 6936 HOLD RIGHT, RETURN [1] ; 6937 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 190 ; EXTEND.MIC[7,3] 11:35 26-JULY-1984 EXTEND -- PAGE FAIL CLEANUP ; 6938 .TOC "EXTEND -- PAGE FAIL CLEANUP" ; 6939 ; 6940 ;BACK UP SOURCE POINTER ; 6941 =0 ; 6942 BACKS: [AR]_AC[SRCP], U 2270, 3377,3771,0003,1276,6007,0701,0010,0000,1441 ; 6943 CALL [BACKBP] ;BACKUP BP U 2271, 2566,3440,0505,1174,4007,0700,0400,0000,1441 ; 6944 AC[SRCP]_[BR], J/CLDISP ; 6945 U 3365, 3366,3771,0003,7274,4007,0701,0000,0000,0214 ; 6946 CMSDST: [AR]_WORK[SV.BRX] ;GET OLD SRC LEN U 3366, 2272,0113,0703,0174,4007,0701,0400,0000,0000 ; 6947 AC_[AR]+1, 3T ;BACK UP ; 6948 ;BACK UP DESTINATION POINTER ; 6949 =0 ; 6950 BACKD: [AR]_AC[DSTP], U 2272, 3377,3771,0003,1276,6007,0701,0010,0000,1444 ; 6951 CALL [BACKBP] U 2273, 2566,3440,0505,1174,4007,0700,0400,0000,1444 ; 6952 AC[DSTP]_[BR], J/CLDISP ; 6953 ; 6954 ;FAILURES DURING MOVE STRING (BACKUP LENGTHS) U 3367, 3370,1771,0003,7274,4007,0701,4000,0000,0242 ; 6955 STRPF: [AR]_-WORK[SLEN] ;GET AMOUNT LEFT ; 6956 STRPF0: [BR]_AC[DLEN], 4T, ;WHICH STRING IS LONGER? U 3370, 2274,3771,0005,1276,6007,0522,0000,0000,1443 ; 6957 SKIP DP0 ; 6958 =0 U 2274, 3372,3440,0303,1174,4007,0700,0400,0000,1443 ; 6959 STRPF1: AC[DLEN]_[AR], J/STPF1A ;SRC LONGER U 2275, 2276,3441,0304,4174,4007,0700,0000,0000,0000 ; 6960 [ARX]_[AR] ;COPY SRC LENGTH ; 6961 =0 [ARX]_[ARX].OR.WORK[SV.BRX], ;REBUILD FLAGS U 2276, 3574,3551,0404,7274,4007,0701,0010,0000,0214 ; 6962 CALL [AC_ARX] ;RESET AC]SLEN] U 2277, 3371,1111,0503,4174,4007,0700,4000,0000,0000 ; 6963 [AR]_[AR]-[BR] ;MAKE DEST LEN ; 6964 STRPF3: AC[DLEN]_[AR], ;PUT BACK DEST LEN U 3371, 2566,3440,0303,1174,4007,0700,0400,0000,1443 ; 6965 J/CLDISP ;DO NEXT CLEANUP ; 6966 U 3372, 3374,0111,0503,4174,4007,0700,0000,0000,0000 ; 6967 STPF1A: [AR]_[AR]+[BR], J/STRPF2 ; 6968 U 3373, 3374,1771,0003,7274,4007,0701,4000,0000,0242 ; 6969 PFDBIN: [AR]_-WORK[SLEN] ;RESTORE LENGTH U 3374, 3375,3551,0303,7274,4007,0701,0000,0000,0214 ; 6970 STRPF2: [AR]_[AR].OR.WORK[SV.BRX] U 3375, 2566,3440,0303,0174,4007,0700,0400,0000,0000 ; 6971 PFGAC0: AC_[AR], J/CLDISP ;PUT BACK SRC LEN AND FLAGS ; 6972 U 3376, 3370,7771,0003,7274,4007,0701,0000,0000,0242 ; 6973 STRPF4: [AR]_.NOT.WORK[SLEN], J/STRPF0 ; 6974 ; 6975 BACKBP: IBP DP, SCAD/A+B, SCADA/BYTE1, SCADB/SIZE, ;P_P+S U 3377, 0001,3770,0305,4334,4014,1700,0000,0043,6000 ; 6976 RETURN [1] ; 6977 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 191 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 TRAPS ; 6978 .TOC "TRAPS" ; 6979 U 3400, 3401,3741,0104,4074,4007,0700,0000,0000,0000 ; 6980 TRAP: [ARX]_PC WITH FLAGS ;SAVE THE PC WHICH CAUSED THE ; 6981 WORK[TRAPPC]_[ARX], ; TRAP U 3401, 2300,3333,0004,7174,4007,0340,0400,0000,0425 ; 6982 SKIP KERNEL ;SEE IF UBR OR EBR ; 6983 =0 [AR]_[AR]+[UBR], ;ADDRESS OF INSTRUCTION ; 6984 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6985 ; THE CACHE. MAY PAGE FAIL BUT ; 6986 ; THAT IS OK ; 6987 START READ, ;START FETCH ; 6988 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2300, 3402,0111,1103,4364,4007,0700,0200,0024,1016 ; 6989 J/TRP1 ;JOIN COMMON CODE ; 6990 ; 6991 [AR]_[AR]+[EBR], ;WE COME HERE IN EXEC MODE ; 6992 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6993 ; THE CACHE. MAY PAGE FAIL BUT ; 6994 ; THAT IS OK ; 6995 START READ, ;START FETCH ; 6996 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2301, 3402,0111,1003,4364,4007,0700,0200,0024,1016 ; 6997 J/TRP1 ;JOIN COMMON CODE ; 6998 ; 6999 TRP1: MEM READ, [HR]_MEM, ;PLACE INSTRUCTION IN HR U 3402, 3403,3771,0002,4365,5617,0700,0200,0000,0002 ; 7000 LOAD INST ;LOAD IR, XR, @ ; 7001 [HR].AND.#, ;TEST TO SEE IF THIS ; 7002 #/700000, 3T, ; IS A UUO U 3403, 2302,4553,0200,4374,4007,0321,0000,0070,0000 ; 7003 SKIP ADL.EQ.0 ; 7004 =0 CHANGE FLAGS, ;NOT A UUO ; 7005 HOLD USER/1, ;CLEAR TRAP FLAGS U 2302, 2601,4443,0000,4174,4467,0700,0000,0001,0000 ; 7006 J/XCT1 ;DO THE INSTRUCTION U 2303, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7007 UUO ;DO THE UUO ; 7008 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 192 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES ; 7009 .TOC "IO -- INTERNAL DEVICES" ; 7010 ; 7011 .DCODE D 0700, 1200,1700,4100 ; 7012 700: IOT,AC DISP, J/GRP700 D 0701, 1200,1720,4100 ; 7013 IOT,AC DISP, J/GRP701 ; 7014 .UCODE ; 7015 U 1701, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7016 1701: UUO ;DATAI APR, U 1702, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7017 1702: UUO ;BLKO APR, U 1703, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7018 1703: UUO ;DATAO APR, U 1706, 3406,3771,0005,4304,4007,0701,0000,0000,0000 ; 7019 1706: [BR]_APR, J/APRSZ ;CONSZ APR, U 1707, 3404,3771,0005,4304,4007,0701,0000,0000,0000 ; 7020 1707: [BR]_APR, J/APRSO ;CONSO APR, ; 7021 1710: U 1710, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7022 RDERA: UUO ;BLKI PI, U 1711, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7023 1711: UUO ;DATAI PI, U 1712, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7024 1712: UUO ;BLKO PI, U 1713, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7025 1713: UUO ;DATAO PI, U 1716, 0136,3441,1405,4174,4007,0700,0000,0000,0000 ; 7026 1716: [BR]_[PI], J/CONSZ ;CONSZ PI, U 1717, 3405,3441,1405,4174,4007,0700,0000,0000,0000 ; 7027 1717: [BR]_[PI], J/CONSO ;CONSO PI, ; 7028 ; 7029 1720: U 1720, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7030 GRP701: UUO ;BLKI PAG, U 1726, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7031 1726: UUO ;CONSZ PAG, U 1727, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7032 1727: UUO ;CONSO PAG, ; 7033 ; 7034 ;680I AND CACHE SWEEP STUFF U 1730, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7035 1730: UUO U 1731, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7036 1731: UUO U 1732, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7037 1732: UUO U 1733, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7038 1733: UUO U 1734, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7039 1734: UUO U 1735, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7040 1735: UUO U 1736, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7041 1736: UUO U 1737, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7042 1737: UUO ; 7043 U 3404, 3405,4251,0505,4374,4007,0700,0000,0000,7770 ; 7044 APRSO: [BR]_[BR].AND.# CLR LH, #/7770 U 3405, 0372,4113,0305,4174,4007,0330,0000,0000,0000 ; 7045 CONSO: [BR].AND.[AR], SKIP ADR.EQ.0, J/SKIP ; 7046 U 3406, 0136,4251,0505,4374,4007,0700,0000,0000,7770 ; 7047 APRSZ: [BR]_[BR].AND.# CLR LH, #/7770 ; 7048 136: ;STANDARD LOCATION FOR VERSION INFO, ; 7049 ;ANY UWORD THAT HAS A FREE # FIELD CAN ; 7050 ;BE USED. ; 7051 CONSZ: [BR].AND.[AR], SKIP ADR.EQ.0, J/DONE, ; 7052 MICROCODE RELEASE(MAJOR)/UCR, ;MAJOR VERSION # U 0136, 1400,4113,0305,4174,4007,0330,0000,0000,0020 ; 7053 MICROCODE RELEASE(MINOR)/UCR ;MINOR VERSION # (FOR ID ONLY) ; 7054 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 193 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES ; 7055 1700: ; 7056 GRP700: ; 7057 APRID: [BR]_#, U 1700, 0137,3771,0005,4374,4007,0700,0000,0001,0001 ; 7058 #/4097. ; 7059 137: [BR]_#, ; 7060 MICROCODE OPTION(INHCST)/OPT, ; 7061 MICROCODE OPTION(NOCST)/OPT, ; 7062 MICROCODE OPTION(NONSTD)/OPT, ; 7063 MICROCODE OPTION(UBABLT)/OPT, ; 7064 MICROCODE OPTION(KIPAGE)/OPT, ; 7065 MICROCODE OPTION(KLPAGE)/OPT, ; 7066 MICROCODE VERSION/UCV, ; 7067 HOLD RIGHT, U 0137, 3514,3771,0005,4374,0007,0700,0000,0006,0130 ; 7068 J/RTNREG ; 7069 ; 7070 1704: U 1704, 3407,3771,0005,7274,4007,0701,0000,0000,0230 ; 7071 WRAPR: [BR]_WORK[APR] ; 7072 [BR]_[BR].AND.NOT.#, ;CLEAR THE OLD PIA U 3407, 3410,5551,0505,4370,4007,0700,0000,0000,0007 ; 7073 #/7, HOLD LEFT ; .. U 3410, 3411,4551,0304,4374,4007,0700,0000,0000,0007 ; 7074 [ARX]_[AR].AND.#, #/7 ;PUT NEW PIA IN ARX U 3411, 3412,3111,0405,4174,4007,0700,0000,0000,0000 ; 7075 [BR]_[BR].OR.[ARX] ;PUT NEW PIA IN BR ; 7076 [ARX]_[AR].AND.#, ;MASK THE DATA BITS U 3412, 3413,4551,0304,4374,4007,0700,0000,0000,7760 ; 7077 #/007760 ; DOWN TO ENABLES U 3413, 2304,4553,0300,4374,4007,0331,0000,0010,0000 ; 7078 TR [AR], #/100000 ;WANT TO ENABLE ANY? U 2304, 2305,3111,0405,4174,4007,0700,0000,0000,0000 ; 7079 =0 [BR]_[BR].OR.[ARX] ;YES--SET THEM U 2305, 2306,4553,0300,4374,4007,0331,0000,0004,0000 ; 7080 TR [AR], #/40000 ;WANT TO DISABLE ANY? U 2306, 2307,5111,0405,4174,4007,0700,0000,0000,0000 ; 7081 =0 [BR]_[BR].AND.NOT.[ARX] ;YES--CLEAR THEM U 2307, 3414,3771,0006,4304,4007,0701,0000,0000,0000 ; 7082 [BRX]_APR ;GET CURRENT STATUS U 3414, 2310,4553,0300,4374,4007,0331,0000,0002,0000 ; 7083 TR [AR], #/20000 ;WANT TO CLEAR FLAGS? U 2310, 2311,5111,0406,4174,4007,0700,0000,0000,0000 ; 7084 =0 [BRX]_[BRX].AND.NOT.[ARX] ;YES--CLEAR BITS U 2311, 2312,4553,0300,4374,4007,0331,0000,0001,0000 ; 7085 TR [AR], #/10000 ;WANT TO SET ANY FLAGS? U 2312, 2313,3111,0406,4174,4007,0700,0000,0000,0000 ; 7086 =0 [BRX]_[BRX].OR.[ARX] ;YES--SET FLAGS U 2313, 2314,4553,0300,4374,4007,0331,0000,0003,0000 ; 7087 TR [AR], #/30000 ;ANY CHANGE AT ALL? ; 7088 =0 READ [BRX], ;YES--LOAD NEW FLAGS U 2314, 3417,3333,0006,4174,4007,0700,0000,0000,0000 ; 7089 J/WRAPR2 ;TURN OFF INTERRUPT 8080 U 2315, 3415,3333,0005,4174,4007,0700,0000,0000,0000 ; 7090 WRAPR1: READ [BR] ;FIX DPM TIMING BUG ; 7091 READ [BR], ;ENABLE CONDITIONS U 3415, 3416,3333,0005,4174,4257,0700,0000,0000,0000 ; 7092 SET APR ENABLES ; 7093 WORK[APR]_[BR], ;SAVE FOR RDAPR U 3416, 1400,3333,0005,7174,4007,0700,0400,0000,0230 ; 7094 J/DONE ;ALL DONE ; 7095 ; 7096 WRAPR2: READ [BRX], ;LOAD NEW FLAGS U 3417, 3420,3333,0006,4174,4237,0700,0000,0000,0000 ; 7097 SPEC/APR FLAGS ; .. ; 7098 [BRX]_[BRX].AND.NOT.#, ;CLEAR INTERRUPT THE 8080 U 3420, 3421,5551,0606,4370,4007,0700,0000,0000,2000 ; 7099 #/002000, HOLD LEFT ; FLAG ; 7100 READ [BRX], ;LOAD NEW FLAGS ; 7101 SPEC/APR FLAGS, ; .. U 3421, 2315,3333,0006,4174,4237,0700,0000,0000,0000 ; 7102 J/WRAPR1 ;LOOP BACK ; 7103 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 194 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES ; 7104 1705: U 1705, 3422,3771,0005,7274,4007,0701,0000,0000,0230 ; 7105 RDAPR: [BR]_WORK[APR] ; 7106 [BR]_[BR] SWAP, ;PUT ENABLES IN BOTH U 3422, 3423,3770,0505,4344,0007,0700,0000,0000,0000 ; 7107 HOLD RIGHT ; HALVES ; 7108 [BR]_[BR].AND.#, ;SAVE ENABLES IN LH ; 7109 #/7760, ; U 3423, 3424,4551,0505,4374,0007,0700,0000,0000,7760 ; 7110 HOLD RIGHT ; 7111 [BR]_[BR].AND.#, ;SAVE PIA IN RH ; 7112 #/7, U 3424, 3425,4551,0505,4370,4007,0700,0000,0000,0007 ; 7113 HOLD LEFT U 3425, 3426,3771,0004,4304,4007,0701,0000,0000,0000 ; 7114 [ARX]_APR ;READ THE APR FLAGS ; 7115 [ARX]_[ARX].AND.# CLR LH, ;MASK OUT JUNK U 3426, 3427,4251,0404,4374,4007,0700,0000,0000,7770 ; 7116 #/007770 ;KEEP 8 FLAGS ; 7117 [BR]_[BR].OR.[ARX], ;MASH THE STUFF TOGETHER U 3427, 3514,3111,0405,4174,4007,0700,0000,0000,0000 ; 7118 J/RTNREG ;RETURN ; 7119 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 195 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- EBR & UBR ; 7120 .TOC "IO -- INTERNAL DEVICES -- EBR & UBR" ; 7121 ; 7122 ;UBR FORMAT: ; 7123 ;BITS 0 & 2 LOAD FLAGS (RETURNED ON RDUBR) ; 7124 ;BITS 3 - 5 ZERO ; 7125 ;BITS 6 -11 AC BLOCKS SELECTED - CUR,PREV ; 7126 ;BITS 16 -35 UPT PHYSICAL ADDRESS ; 7127 ; 7128 1723: ; 7129 WRUBR: VMA_[AR], ;LOAD E INTO VMA U 1723, 3430,3443,0300,4174,4007,0700,0200,0004,0012 ; 7130 START READ ;START MEMORY ; 7131 MEM READ, ;WAIT FOR DATA ; 7132 [AR]_MEM, 3T, ;PUT IT INTO THE AR U 3430, 2316,3771,0003,4365,5007,0521,0200,0000,0002 ; 7133 SKIP DP0 ;SEE IF WE WANT TO LOAD ; 7134 ; AC BLOCK NUMBERS ; 7135 ; 7136 =0 [AR]_[AR].AND.#, ;NO--CLEAR JUNK IN AR (ALL BUT LD UBR) ; 7137 #/100000, ; LEAVE ONLY LOAD UBR ; 7138 HOLD RIGHT, ; IN LEFT HALF ; 7139 SKIP ADL.EQ.0, 3T, ;SEE IF WE WANT TO LOAD UBR U 2316, 2320,4551,0303,4374,0007,0321,0000,0010,0000 ; 7140 J/ACBSET ;SKIP AROUND UBR LOAD ; 7141 ; 7142 ;HERE WHEN WE WANT TO LOAD AC BLOCK SELECTION ; 7143 [UBR]_[UBR].AND.#, ;MASK OUT THE UBR'S OLD ; 7144 #/770077, ; AC BLOCK NUMBERS U 2317, 3431,4551,1111,4374,0007,0700,0000,0077,0077 ; 7145 HOLD RIGHT ;IN THE LEFT HALF ; 7146 ; 7147 [AR]_[AR].AND.#, ;CLEAR ALL BUT NEW SELECTION ; 7148 #/507700, ;AND LOAD BITS U 3431, 3432,4551,0303,4374,0007,0700,0000,0050,7700 ; 7149 HOLD RIGHT ;IN AR LEFT ; 7150 ; 7151 [AR].AND.#, ;SEE IF WE WANT TO LOAD ; 7152 #/100000, 3T, ; UBR ALSO U 3432, 2320,4553,0300,4374,4007,0321,0000,0010,0000 ; 7153 SKIP ADL.EQ.0 ; 7154 ; 7155 ;HERE WITH AR LEFT = NEW AC BLOCKS OR ZERO, ; 7156 ;SKIP IF DON'T LOAD UBR ; 7157 =0 ; 7158 ACBSET: [BR]_[AR].AND.#, ;COPY UBR PAGE NUMBER ; 7159 #/3777, ; INTO BR U 2320, 3433,4551,0305,4374,4007,0700,0000,0000,3777 ; 7160 J/SETUBR ;GO LOAD UBR ; 7161 ; 7162 [UBR]_[UBR].OR.[AR], ;DO NOT LOAD UBR ; 7163 ; PUT AC BLOCK # IN ; 7164 HOLD RIGHT, ; THE LEFT HALF ; 7165 LOAD AC BLOCKS, ;LOAD HARDWARE U 2321, 1400,3111,0311,4174,0477,0700,0000,0000,0000 ; 7166 J/DONE ;ALL DONE ; 7167 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 196 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- EBR & UBR ; 7168 ;HERE WITH AR LEFT AS BEFORE, AR RIGHT = MASKED PAGE # ; 7169 SETUBR: [BR]_0, ;CLEAR BR LEFT ; 7170 HOLD RIGHT, ;BR IS 0,,PAGE # U 3433, 2322,4221,0005,4174,0007,0700,2000,0071,0007 ; 7171 SC_7 ;PUT THE COUNT IN SC ; 7172 =0 ; 7173 STUBRS: [BR]_[BR]*2, ;SHIFT BR OVER ; 7174 STEP SC, ; 9 PLACES U 2322, 2322,3445,0505,4174,4007,0630,2000,0060,0000 ; 7175 J/STUBRS ;PRODUCING UPT ADDRESS ; 7176 ; 7177 [UBR]_[UBR].AND.#, ;MASK OUT OLD UBR ; 7178 #/777774, ; BITS IN U 2323, 3434,4551,1111,4374,0007,0700,0000,0077,7774 ; 7179 HOLD RIGHT ; LEFT HALF ; 7180 ; 7181 [UBR]_0, ;CLEAR RIGHT HALF U 3434, 3435,4221,0011,4170,4007,0700,0000,0000,0000 ; 7182 HOLD LEFT ;UBR IS FLGS+ACBLK+0,,0 ; 7183 U 3435, 3436,3111,0511,4174,4007,0700,0000,0000,0000 ; 7184 [UBR]_[UBR].OR.[BR] ;PUT IN PAGE TABLE ADDRESS ; 7185 ; 7186 [UBR]_[UBR].OR.[AR], ;PUT IN AC BLOCK # ; 7187 HOLD RIGHT, ; IN LEFT HALF ; 7188 LOAD AC BLOCKS, ;TELL HARDWARE U 3436, 2372,3111,0311,4174,0477,0700,0000,0000,0000 ; 7189 J/SWEEP ;CLEAR CACHE ; 7190 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 197 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- EBR & UBR ; 7191 1724: U 1724, 2324,3445,0303,4174,4007,0700,2000,0071,0006 ; 7192 WREBR: [AR]_[AR]*2, SC_6 ;DO A SHIFT OVER 8 MORE ; 7193 =0 U 2324, 2324,3445,0303,4174,4007,0630,2000,0060,0000 ; 7194 WREBR1: [AR]_[AR]*2, STEP SC, J/WREBR1 ;SKIP WHEN = -1 ; 7195 .IF/FULL ;DO NOT ENABLE PAGING IN SMALL ; 7196 ; MICROCODE. U 2325, 3437,3771,0005,7274,4007,0701,0000,0000,0230 ; 7197 [BR]_WORK[APR] U 3437, 3440,4551,0505,4370,4007,0700,0000,0074,7777 ; 7198 [BR]_[BR].AND.#, #/747777, HOLD LEFT U 3440, 2326,4553,0300,4374,4007,0321,0000,0000,0020 ; 7199 [AR].AND.#, #/20, 3T, SKIP ADL.EQ.0 ;BIT 22 - TRAP ENABLE U 2326, 2327,3551,0505,4370,4007,0700,0000,0003,0000 ; 7200 =0 [BR]_[BR].OR.#, #/030000, HOLD LEFT ;SET - ALLOW TRAPS TO HAPPEN U 2327, 3441,3333,0005,4174,4257,0700,0000,0000,0000 ; 7201 READ [BR], SET APR ENABLES U 3441, 3442,3333,0005,7174,4007,0700,0400,0000,0230 ; 7202 WORK[APR]_[BR] ; 7203 .ENDIF/FULL ; 7204 ; 7205 .IF/KIPAGE ;;7206 .IF/KLPAGE ;;7207 [EBR]_[AR] ;NOTE: SHIFTED LEFT 9 BITS ;;7208 [EBR].AND.#, #/40, 3T, SKIP ADL.EQ.0 ;BIT 21 - KL PAGING ENABLE ;;7209 =0 [EBR]_[EBR].OR.#, #/400000, HOLD RIGHT, J/SWEEP ;YES, SET INTERNAL FLAG ;;7210 [EBR]_[EBR].AND.NOT.#, #/400000, HOLD RIGHT, J/SWEEP ;NO, CLR BIT 0 ; 7211 .ENDIF/KLPAGE ; 7212 .ENDIF/KIPAGE ; 7213 ; 7214 .IFNOT/KLPAGE ;MUST BE KI ONLY U 3442, 2372,3441,0310,4174,4007,0700,0000,0000,0000 ; 7215 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7216 .ENDIF/KLPAGE ; 7217 ;;7218 .IFNOT/KIPAGE ;MUST BE KL ONLY ;;7219 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7220 .ENDIF/KIPAGE ; 7221 ; 7222 1725: U 1725, 2330,3447,1005,4174,4007,0700,2000,0071,0006 ; 7223 RDEBR: [BR]_[EBR]*.5, SC_6 ; 7224 =0 U 2330, 2330,3447,0505,4174,4007,0630,2000,0060,0000 ; 7225 RDEBR1: [BR]_[BR]*.5, STEP SC, J/RDEBR1 U 2331, 3443,4551,0505,4374,4007,0700,0000,0006,3777 ; 7226 [BR]_[BR].AND.#, #/63777 ;MASK TO JUST EBR ; 7227 [BR]_0, ;CLEAR LEFT HALF ; 7228 HOLD RIGHT, ; BITS U 3443, 3514,4221,0005,4174,0007,0700,0000,0000,0000 ; 7229 J/RTNREG ;RETURN ANSWER ; 7230 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 198 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- EBR & UBR ; 7231 1721: U 1721, 2332,4551,1105,4374,0007,0700,0000,0050,7700 ; 7232 RDUBR: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 2332, 2334,3447,1106,4174,4007,0700,2010,0071,0006 ; 7233 =0 [BRX]_[UBR]*.5, SC_6, CALL [GTPCW1] ;SET SC (9) START SHIFT,GET UBR ; 7234 VMA_[AR],START WRITE, ;START TO U 2333, 3515,3443,0300,4174,4007,0700,0200,0003,0012 ; 7235 J/RTNRG1 ;RETURN DATA ; 7236 ; 7237 U 3444, 3445,4551,1105,4374,0007,0700,0000,0050,7700 ; 7238 GETPCW: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 3445, 2334,3447,1106,4174,4007,0700,2000,0071,0006 ; 7239 [BRX]_[UBR]*.5, SC_6 ;SET SC (9) START SHIFT ; 7240 ; 7241 =0 U 2334, 2334,3447,0606,4174,4007,0630,2000,0060,0000 ; 7242 GTPCW1: [BRX]_[BRX]*.5, STEP SC, J/GTPCW1 ;SHIFT UBR ADDR TO PAGE # U 2335, 3446,4551,0606,4374,4007,0700,0000,0000,3777 ; 7243 [BRX]_[BRX].AND.#, #/3777 ;ONLY PAGE # U 3446, 0001,3441,0605,4170,4004,1700,0000,0000,0000 ; 7244 [BR]_[BRX], HOLD LEFT, RETURN [1] ;MOVE PAGE # TO RH OF RESULT ; 7245 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 199 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7246 .TOC "IO -- INTERNAL DEVICES -- KL PAGING REGISTERS" ; 7247 ; 7248 .DCODE D 0702, 1216,1760,4700 ; 7249 702: IOT,AC DISP, M, J/GRP702 ; 7250 .UCODE ; 7251 ; 7252 1760: ; 7253 GRP702: U 1760, 3514,3771,0005,7274,4007,0701,0000,0000,0215 ; 7254 RDSPB: [BR]_WORK[SBR], J/RTNREG ; 7255 1761: U 1761, 3514,3771,0005,7274,4007,0701,0000,0000,0216 ; 7256 RDCSB: [BR]_WORK[CBR], J/RTNREG ; 7257 1762: U 1762, 3514,3771,0005,7274,4007,0701,0000,0000,0220 ; 7258 RDPUR: [BR]_WORK[PUR], J/RTNREG ; 7259 1763: U 1763, 3514,3771,0005,7274,4007,0701,0000,0000,0217 ; 7260 RDCSTM: [BR]_WORK[CSTM], J/RTNREG ; 7261 1766: U 1766, 3514,3771,0005,7274,4007,0701,0000,0000,0227 ; 7262 RDHSB: [BR]_WORK[HSBADR], J/RTNREG U 1767, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7263 1767: UUO ; 7264 ; 7265 1770: U 1770, 3447,4443,0000,4174,4007,0703,0200,0006,0002 ; 7266 WRSPB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3447, 3450,3771,0003,4365,5007,0700,0200,0000,0002 ; 7267 MEM READ, [AR]_MEM U 3450, 1400,3333,0003,7174,4007,0700,0400,0000,0215 ; 7268 WORK[SBR]_[AR], J/DONE ; 7269 1771: U 1771, 3451,4443,0000,4174,4007,0703,0200,0006,0002 ; 7270 WRCSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3451, 3452,3771,0003,4365,5007,0700,0200,0000,0002 ; 7271 MEM READ, [AR]_MEM U 3452, 1400,3333,0003,7174,4007,0700,0400,0000,0216 ; 7272 WORK[CBR]_[AR], J/DONE ; 7273 1772: U 1772, 3453,4443,0000,4174,4007,0703,0200,0006,0002 ; 7274 WRPUR: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3453, 3454,3771,0003,4365,5007,0700,0200,0000,0002 ; 7275 MEM READ, [AR]_MEM U 3454, 1400,3333,0003,7174,4007,0700,0400,0000,0220 ; 7276 WORK[PUR]_[AR], J/DONE ; 7277 1773: U 1773, 3455,4443,0000,4174,4007,0703,0200,0006,0002 ; 7278 WRCSTM: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3455, 3456,3771,0003,4365,5007,0700,0200,0000,0002 ; 7279 MEM READ, [AR]_MEM U 3456, 1400,3333,0003,7174,4007,0700,0400,0000,0217 ; 7280 WORK[CSTM]_[AR], J/DONE ; 7281 1776: U 1776, 3457,4443,0000,4174,4007,0703,0200,0006,0002 ; 7282 WRHSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3457, 3460,3771,0003,4365,5007,0700,0200,0000,0002 ; 7283 MEM READ, [AR]_MEM U 3460, 1400,3333,0003,7174,4007,0700,0400,0000,0227 ; 7284 WORK[HSBADR]_[AR], J/DONE ; 7285 U 1777, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7286 1777: UUO ; 7287 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 200 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7288 .TOC "IO -- INTERNAL DEVICES -- TIMER CONTROL" ; 7289 ; 7290 ; 7291 ;BEGIN [123] ; 7292 TICK: [AR]_WORK[TIME1], ;GET LOW WORD U 3461, 3462,3771,0003,7274,4117,0701,0000,0000,0301 ; 7293 SPEC/CLRCLK ;CLEAR CLOCK FLAG ; 7294 ;END [123] U 3462, 3463,4751,1205,4374,4007,0700,0000,0001,0000 ; 7295 TOCK: [BR]_0 XWD [10000] ;2^12 UNITS PER MS U 3463, 3464,0111,0503,4174,4007,0700,0000,0000,0000 ; 7296 [AR]_[AR]+[BR] ;INCREMENT THE TIMER U 3464, 2336,3770,0303,4174,0007,0520,0000,0000,0000 ; 7297 FIX [AR] SIGN, SKIP DP0 ;SEE IF IT OVERFLOWED ; 7298 =0 ; 7299 TOCK1: WORK[TIME1]_[AR], ;STORE THE NEW TIME U 2336, 3465,3333,0003,7174,4007,0700,0400,0000,0301 ; 7300 J/TOCK2 ;SKIP OVER THE OVERFLOW CODE U 2337, 2340,3771,0003,7274,4007,0701,0000,0000,0300 ; 7301 [AR]_WORK[TIME0] ;GET HIGH WORD ; 7302 =0* [AR]_[AR]+1, ;BUMP IT U 2340, 3473,0111,0703,4174,4007,0700,0010,0000,0000 ; 7303 CALL [WRTIM1] ;STORE BACK IN RAM ; 7304 [AR]_0, ;CAUSE LOW WORD WORD U 2342, 2336,4221,0003,4174,4007,0700,0000,0000,0000 ; 7305 J/TOCK1 ; TO GET STORED U 3465, 3466,3771,0003,7274,4007,0701,0000,0000,0303 ; 7306 TOCK2: [AR]_WORK[TTG] ; 7307 [AR]_[AR]-[BR], ;COUNT DOWN TIME TO GO U 3466, 2344,1111,0503,4174,4007,0421,4000,0000,0000 ; 7308 SKIP AD.LE.0 ;SEE IF IT TIMED OUT ; 7309 =0 ; 7310 TOCK3: WORK[TTG]_[AR], ;SAVE NEW TIME TO GO U 2344, 0002,3333,0003,7174,4004,1700,0400,0000,0303 ; 7311 RETURN [2] ;ALL DONE U 2345, 3467,3771,0003,7274,4007,0701,0000,0000,0302 ; 7312 [AR]_WORK[PERIOD] U 3467, 3470,3771,0005,4304,4007,0701,0000,0000,0000 ; 7313 [BR]_APR ;GET CURRENT FLAGS U 3470, 3471,3551,0505,4374,4007,0700,0000,0000,0040 ; 7314 [BR]_[BR].OR.#, #/40 ;SET TIMER INTERRUPT FLAG ; 7315 READ [BR], ;PLACE ON DP AND ; 7316 SPEC/APR FLAGS, ; LOAD INTO HARDWARE U 3471, 2344,3333,0005,4174,4237,0700,0000,0000,0000 ; 7317 J/TOCK3 ;ALL DONE ; 7318 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 201 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7319 .TOC "IO -- INTERNAL DEVICES -- WRTIME & RDTIME" ; 7320 ; 7321 1774: U 1774, 3472,4443,0000,4174,4007,0700,0200,0004,0002 ; 7322 WRTIME: START READ ;FETCH WORD AT E ; 7323 MEM READ, ;WAIT FOR DATA U 3472, 1044,3771,0003,4365,5007,0700,0200,0000,0002 ; 7324 [AR]_MEM ;PUT WORD IN AR ; 7325 =00 VMA_[HR]+1, ;BUMP E ; 7326 START READ, ;START MEMORY U 1044, 3564,0111,0702,4170,4007,0700,0210,0004,0012 ; 7327 CALL [LOADARX] ;PUT DATA IN ARX ; 7328 [ARX]_[ARX].AND.#, ;CLEAR PART HELD IN ; 7329 #/770000, ; HARDWARE COUNTER U 1045, 3473,4551,0404,4370,4007,0700,0010,0077,0000 ; 7330 HOLD LEFT, CALL [WRTIM1] ; 7331 =11 WORK[TIME1]_[ARX], ;IN WORK SPACE U 1047, 1400,3333,0004,7174,4007,0700,0400,0000,0301 ; 7332 J/DONE ;NEXT INSTRUCTION ; 7333 = ; 7334 WRTIM1: WORK[TIME0]_[AR], ;SAVE THE NEW VALUE U 3473, 0002,3333,0003,7174,4004,1700,0400,0000,0300 ; 7335 RETURN [2] ; 7336 ; 7337 1764: U 1764, 3474,4451,1205,4324,4007,0700,0000,0000,0000 ; 7338 RDTIME: [BR]_TIME ;READ THE TIME U 3474, 3475,4451,1204,4324,4007,0700,0000,0000,0000 ; 7339 [ARX]_TIME ; AGAIN U 3475, 3476,4451,1206,4324,4007,0700,0000,0000,0000 ; 7340 [BRX]_TIME ; AGAIN ; 7341 [BR].XOR.[ARX], ;SEE IF STABLE U 3476, 2346,6113,0405,4174,4007,0621,0000,0000,0000 ; 7342 SKIP AD.EQ.0 ; .. U 2346, 2347,3441,0604,4174,4007,0700,0000,0000,0000 ; 7343 =0 [ARX]_[BRX] ;NO THEN NEXT TRY MUST BE OK U 2347, 3477,3771,0005,7274,4007,0701,0000,0000,0300 ; 7344 [BR]_WORK[TIME0] ; 7345 [ARX]_[ARX]+WORK[TIME1], ;COMBINE PARTS U 3477, 1050,0551,0404,7274,4007,0671,0000,0000,0301 ; 7346 SKIP/-1 MS ;SEE IF OVERFLOW HAPPENED ; 7347 =00 SPEC/CLRCLK, ;CLEAR CLOCK FLAG ; 7348 [AR]_WORK[TIME1], 2T, ;GET LOW WORD FOR TOCK U 1050, 3462,3771,0003,7274,4117,0700,0010,0000,0301 ; 7349 CALL [TOCK] ;UPDATE CLOCKS ; 7350 READ [HR], LOAD VMA, ;DID NOT OVERFLOW U 1051, 3500,3333,0002,4174,4007,0700,0200,0003,0012 ; 7351 START WRITE, J/RDTIM1 ;STORE ANSWER U 1052, 1764,4443,0000,4174,4007,0700,0000,0000,0000 ; 7352 J/RDTIME ;TRY AGAIN ; 7353 = U 3500, 3501,3333,0005,4175,5007,0701,0200,0000,0002 ; 7354 RDTIM1: MEM WRITE, MEM_[BR] U 3501, 3502,0111,0702,4170,4007,0700,0200,0003,0012 ; 7355 VMA_[HR]+1, LOAD VMA, START WRITE U 3502, 1400,3333,0004,4175,5007,0701,0200,0000,0002 ; 7356 MEM WRITE, MEM_[ARX], J/DONE ; 7357 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 202 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7358 .TOC "IO -- INTERNAL DEVICES -- WRINT & RDINT" ; 7359 ; 7360 ; 7361 1775: U 1775, 3503,4443,0000,4174,4007,0700,0200,0004,0002 ; 7362 WRINT: START READ U 3503, 3504,3771,0003,4365,5007,0700,0200,0000,0002 ; 7363 MEM READ, [AR]_MEM U 3504, 3505,3333,0003,7174,4007,0700,0400,0000,0302 ; 7364 WORK[PERIOD]_[AR] ; 7365 WORK[TTG]_[AR], U 3505, 1400,3333,0003,7174,4007,0700,0400,0000,0303 ; 7366 J/DONE ; 7367 ; 7368 1765: ; 7369 RDINT: [BR]_WORK[PERIOD], U 1765, 3514,3771,0005,7274,4007,0701,0000,0000,0302 ; 7370 J/RTNREG ; 7371 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 203 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7372 .TOC "IO -- INTERNAL DEVICES -- RDPI & WRPI" ; 7373 ; 7374 1715: U 1715, 3514,3441,1405,4174,4007,0700,0000,0000,0000 ; 7375 RDPI: [BR]_[PI], J/RTNREG ; 7376 ; 7377 1714: U 1714, 2350,4553,0300,4374,4007,0331,0000,0001,0000 ; 7378 WRPI: TR [AR], PI.CLR/1 U 2350, 2351,4221,0014,4174,4007,0700,0000,0000,0000 ; 7379 =0 [PI]_0 U 2351, 2352,4553,0300,4374,4007,0331,0000,0074,0000 ; 7380 TR [AR], PI.MBZ/17 U 2352, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7381 =0 UUO U 2353, 3506,4551,0305,4374,4007,0700,0000,0000,0177 ; 7382 [BR]_[AR].AND.#,#/177 U 3506, 3507,3770,0505,4344,0007,0700,0000,0000,0000 ; 7383 [BR]_[BR] SWAP, HOLD RIGHT U 3507, 2354,4553,0300,4374,4007,0331,0000,0002,0000 ; 7384 TR [AR], PI.DIR/1 U 2354, 2355,5111,0514,4174,0007,0700,0000,0000,0000 ; 7385 =0 [PI]_[PI].AND.NOT.[BR], HOLD RIGHT U 2355, 2356,4553,0300,4374,4007,0331,0000,0000,4000 ; 7386 TR [AR], PI.REQ/1 U 2356, 2357,3111,0514,4174,0007,0700,0000,0000,0000 ; 7387 =0 [PI]_[PI].OR.[BR], HOLD RIGHT U 2357, 2360,4553,0300,4374,4007,0331,0000,0000,0200 ; 7388 TR [AR], PI.TSN/1 U 2360, 2361,3551,1414,4370,4007,0700,0000,0000,0200 ; 7389 =0 [PI]_[PI].OR.#,PI.ON/1, HOLD LEFT U 2361, 2362,4553,0300,4374,4007,0331,0000,0000,0400 ; 7390 TR [AR], PI.TSF/1 U 2362, 2363,5551,1414,4370,4007,0700,0000,0000,0200 ; 7391 =0 [PI]_[PI].AND.NOT.#,PI.ON/1, HOLD LEFT U 2363, 2364,4553,0300,4374,4007,0331,0000,0000,2000 ; 7392 TR [AR], PI.TCN/1 U 2364, 2365,3111,0514,4170,4007,0700,0000,0000,0000 ; 7393 =0 [PI]_[PI].OR.[BR], HOLD LEFT U 2365, 0304,4553,0300,4374,4007,0331,0000,0000,1000 ; 7394 TR [AR], PI.TCF/1 U 0304, 0305,5111,0514,4170,4007,0700,0000,0000,0000 ; 7395 =0**0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT U 0305, 3511,3770,1416,4344,4007,0700,0010,0000,0000 ; 7396 PIEXIT: CALL LOAD PI ; 7397 =1**1 U 0315, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7398 DONE ; 7399 = ; 7400 ; 7401 ;SUBROUTINE TO LOAD PI HARDWARE ; 7402 ;CALL WITH: ; 7403 ; CALL LOAD PI ; 7404 ;RETURNS 10 WITH PI HARDWARE LOADED ; 7405 ; U 3510, 3511,3770,1416,4344,4007,0700,0000,0000,0000 ; 7406 LOADPI: [T0]_[PI] SWAP ;PUT ACTIVE CHANS IN LH U 3511, 3512,2441,0716,4170,4007,0700,4000,0000,0000 ; 7407 LDPI2: [T0]_-1, HOLD LEFT ;DONT MASK RH U 3512, 3513,4111,1416,4174,4007,0700,0000,0000,0000 ; 7408 [T0]_[T0].AND.[PI] ;ONLY REQUEST CHANS THAT ARE ON ; 7409 .NOT.[T0], LOAD PI, ;RELOAD HARDWARE U 3513, 0010,7443,1600,4174,4434,1700,0000,0000,0000 ; 7410 RETURN [10] ;RETURN TO CALLER ; 7411 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 204 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7412 .TOC "IO -- INTERNAL DEVICES -- SUBROUTINES" ; 7413 ; 7414 ; 7415 ;HERE WITH SOMETHING IN BR STORE IT @AR U 3514, 3515,3443,0300,4174,4007,0700,0200,0003,0012 ; 7416 RTNREG: VMA_[AR], START WRITE U 3515, 1400,3333,0005,4175,5007,0701,0200,0000,0002 ; 7417 RTNRG1: MEM WRITE, MEM_[BR], J/DONE ; 7418 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 205 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7419 ;CACHE SWEEP ; 7420 ; 7421 1722: ; 7422 CLRPT: VMA_[AR], ;PUT CORRECT ADDRESS IN VMA U 1722, 3516,3443,0300,4174,4147,0700,0200,0000,0010 ; 7423 LOAD PAGE TABLE ;GET SET TO WRITE PAGE TABLE U 3516, 2366,4221,0003,4174,4007,0700,0000,0000,0000 ; 7424 [AR]_0 ;CLEAR ENTRY ; 7425 =0 [AR]_#,#/377377, ;INITIAL VMA VALUE U 2366, 3522,3771,0003,4374,4007,0700,0010,0037,7377 ; 7426 CALL [SSWEEP] ;LOAD THE SC ; 7427 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2367, 3517,3771,0005,4374,4247,0700,0000,0000,1001 ; 7428 CLRCSH ;START TO CLEAR CACHE U 3517, 2370,3333,0003,4174,4247,0700,0000,0000,1000 ; 7429 READ [AR], CLRCSH ;FIRST THING TO CLEAR ; 7430 =0 ; 7431 CLRPTL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7432 CLRCSH, ;SWEEP ON NEXT STEP ; 7433 STEP SC, ;SKIP IF WE ARE DONE U 2370, 2370,1111,0503,4174,4247,0630,6000,0060,1000 ; 7434 J/CLRPTL ;LOOP FOR ALL ENTRIES U 2371, 2375,3333,0003,4174,4007,0700,0000,0000,0000 ; 7435 READ [AR], J/ZAPPTA ;CLEAR LAST ENTRY ; 7436 ; 7437 =0 ; 7438 SWEEP: [AR]_#,#/377377, ;INITIAL VMA VALUE U 2372, 3522,3771,0003,4374,4007,0700,0010,0037,7377 ; 7439 CALL [SSWEEP] ;LOAD NUMBER OF STEPS INTO SC ; 7440 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2373, 3520,3771,0005,4374,4347,0700,0000,0000,1001 ; 7441 SWEEP ;START SWEEP U 3520, 2374,3333,0003,4174,4347,0700,0000,0000,1000 ; 7442 READ [AR], SWEEP ;FIRST THING TO CLEAR ; 7443 =0 ; 7444 SWEEPL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7445 SWEEP, ;SWEEP ON NEXT STEP ; 7446 STEP SC, ;SKIP IF WE ARE DONE U 2374, 2374,1111,0503,4174,4347,0630,6000,0060,1000 ; 7447 J/SWEEPL ;LOOP FOR ALL ENTRIES ; 7448 ;CLEAR LAST ENTRY AND U 2375, 3521,4223,0000,7174,4007,0700,0400,0000,0424 ; 7449 ZAPPTA: WORK[PTA.U]_0 ; FORGET PAGE TABLE ADDRESS ; 7450 WORK[PTA.E]_0, ;FORGET PAGE TABLE ADDRESS U 3521, 1400,4223,0000,7174,4007,0700,0400,0000,0423 ; 7451 J/DONE ;ALL DONE ; 7452 ; 7453 SSWEEP: SC_S#, S#/375, ;NUMBER OF STEPS U 3522, 0001,4443,0000,4174,4004,1700,2000,0071,0375 ; 7454 RETURN [1] ;RETURN ; 7455 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 206 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7456 ;WE COME HERE EITHER FROM NEXT INSTRUCTION DISPATCH OR PAGE FAIL ; 7457 ; LOGIC. IN ALL CASES, THE CURRENT INSTRUCTION IS CORRECTLY SETUP ; 7458 ; TO RESTART PROPERLY. ; 7459 ; 7460 ;FIRST SET THE CORRECT PI IN PROGRESS BIT ; 7461 ; [FLG]_[FLG].OR.#,FLG.PI/1, HOLD RIGHT, ; 7462 ; J/PI ;SET PI CYCLE AND PROCESS PI ; 7463 =1000 ; 7464 PI: AD/D, DBUS/PI NEW, ;LOOK AT NEW LEVEL ; 7465 DISP/DP LEFT, 3T, ;DISPATCH ON IT U 0770, 0770,3773,0000,4074,4003,1701,0000,0000,0000 ; 7466 J/PI ;GO TO 1 OF NEXT 7 PLACES U 0771, 3523,3551,1414,4370,4007,0700,0000,0004,0000 ; 7467 =1001 [PI]_[PI].OR.#, #/040000, HOLD LEFT, J/PIP1 U 0772, 3524,3551,1414,4370,4007,0700,0000,0002,0000 ; 7468 =1010 [PI]_[PI].OR.#, #/020000, HOLD LEFT, J/PIP2 U 0773, 3525,3551,1414,4370,4007,0700,0000,0001,0000 ; 7469 =1011 [PI]_[PI].OR.#, #/010000, HOLD LEFT, J/PIP3 U 0774, 3526,3551,1414,4370,4007,0700,0000,0000,4000 ; 7470 =1100 [PI]_[PI].OR.#, #/004000, HOLD LEFT, J/PIP4 U 0775, 3527,3551,1414,4370,4007,0700,0000,0000,2000 ; 7471 =1101 [PI]_[PI].OR.#, #/002000, HOLD LEFT, J/PIP5 U 0776, 3530,3551,1414,4370,4007,0700,0000,0000,1000 ; 7472 =1110 [PI]_[PI].OR.#, #/001000, HOLD LEFT, J/PIP6 U 0777, 3531,3551,1414,4370,4007,0700,0000,0000,0400 ; 7473 =1111 [PI]_[PI].OR.#, #/000400, HOLD LEFT, J/PIP7 U 3523, 3532,4751,1206,4374,4007,0700,0000,0000,0001 ; 7474 PIP1: [BRX]_0 XWD [1], J/PI10 ;REMEMBER WE ARE AT LEVEL 1 U 3524, 3532,4751,1206,4374,4007,0700,0000,0000,0002 ; 7475 PIP2: [BRX]_0 XWD [2], J/PI10 ;REMEMBER WE ARE AT LEVEL 2 U 3525, 3532,4751,1206,4374,4007,0700,0000,0000,0003 ; 7476 PIP3: [BRX]_0 XWD [3], J/PI10 ;REMEMBER WE ARE AT LEVEL 3 U 3526, 3532,4751,1206,4374,4007,0700,0000,0000,0004 ; 7477 PIP4: [BRX]_0 XWD [4], J/PI10 ;REMEMBER WE ARE AT LEVEL 4 U 3527, 3532,4751,1206,4374,4007,0700,0000,0000,0005 ; 7478 PIP5: [BRX]_0 XWD [5], J/PI10 ;REMEMBER WE ARE AT LEVEL 5 U 3530, 3532,4751,1206,4374,4007,0700,0000,0000,0006 ; 7479 PIP6: [BRX]_0 XWD [6], J/PI10 ;REMEMBER WE ARE AT LEVEL 6 U 3531, 3532,4751,1206,4374,4007,0700,0000,0000,0007 ; 7480 PIP7: [BRX]_0 XWD [7], J/PI10 ;REMEMBER WE ARE AT LEVEL 7 ; 7481 ; 7482 PI10: [AR]_[PI].AND.# CLR LH, ;TURN OFF PI SYSTEM U 3532, 3533,4251,1403,4374,4007,0700,0000,0007,7577 ; 7483 #/077577 ; TILL WE ARE DONE U 3533, 3534,7443,0300,4174,4437,0700,0000,0000,0000 ; 7484 .NOT.[AR], LOAD PI ; .. U 3534, 2376,4223,0000,4364,4277,0700,0200,0000,0010 ; 7485 ABORT MEM CYCLE ;NO MORE TRAPS ; 7486 =0 [AR]_VMA IO READ, ;SETUP TO READ WRU BITS ; 7487 WRU CYCLE/1, ; .. U 2376, 3571,4571,1203,4374,4007,0700,0010,0024,1300 ; 7488 CALL [STRTIO] ;START THE CYCLE ; 7489 MEM READ, ;WAIT FOR DATA ; 7490 [AR]_IO DATA, 3T, ;PUT DATA IN AR U 2377, 2400,3771,0003,4364,4007,0331,0200,0000,0002 ; 7491 SKIP ADR.EQ.0 ;SEE IF ANYONE THERE U 2400, 3543,4221,0004,4174,4007,0700,0000,0000,0000 ; 7492 =0 [ARX]_0, J/VECINT ;YES--VECTORED INTERRUPT U 2401, 3535,3445,0603,4174,4007,0700,0000,0000,0000 ; 7493 [AR]_[BRX]*2 ;N*2 ; 7494 [AR]_[AR]+#, #/40, 3T, ;2*N+40 U 3535, 3536,0551,0303,4370,4007,0701,0000,0000,0040 ; 7495 HOLD LEFT ; .. ; 7496 [AR]_[AR]+[EBR], ;ABSOULTE ADDRESS OF U 3536, 3537,0111,1003,4174,4007,0700,0000,0000,0000 ; 7497 J/PI40 ; INTERRUPT INSTRUCTION ; 7498 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 207 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7499 ;HERE WITH ABSOLUTE ADDRESS OF INTERRUPT INSTRUCTION IN [AR] U 3537, 3540,3443,0300,4174,4007,0700,0200,0024,1016 ; 7500 PI40: VMA_[AR], VMA PHYSICAL READ ;FETCH THE INSTRUCTION ; 7501 PI50: MEM READ, [AR]_MEM, LOAD VMA, ;FETCH INSTRUCTION U 3540, 3541,3771,0003,4365,5007,0701,0200,0020,0012 ; 7502 3T, FORCE EXEC ;E IS EXEC MODE U 3541, 2402,6553,0300,4374,4007,0321,0000,0025,4340 ; 7503 [AR].XOR.#, #/254340, 3T, SKIP ADL.EQ.0 U 2402, 2404,6553,0300,4374,4007,0321,0000,0026,4000 ; 7504 =0 [AR].XOR.#, #/264000, SKIP ADL.EQ.0, 3T, J/PIJSR U 2403, 3542,4521,1205,4074,4007,0700,0000,0000,0000 ; 7505 [BR]_FLAGS ;SAVE FLAGS ; 7506 AD/ZERO, LOAD FLAGS, U 3542, 0020,4223,0000,4174,4467,0700,0000,0000,0004 ; 7507 J/PIXPCW ;ENTER EXEC MODE AND ASSUME ; 7508 ; WE HAVE AN XPCW ; 7509 ;IF WE HALT HERE ON A VECTORED INTERRUPT, WE HAVE ; 7510 ; T0/ WHAT WE READ FROM BUS AS VECTOR ; 7511 ; ARX/ EPT+100+DEVICE ; 7512 ; BR/ ADDRESS OF ILLEGAL INSTRUCTION ; 7513 ; BRX/ VECTOR (MASKED AND SHIFTED) ; 7514 =0 U 2404, 0104,4751,1217,4374,4007,0700,0000,0000,0101 ; 7515 PIJSR: HALT [ILLII] ;NOT A JSR OR XPCW U 2405, 0470,4443,0000,4174,4007,0700,0200,0023,0002 ; 7516 START WRITE, FORCE EXEC ;PREPARE TO STORE OLD PC ; 7517 =0*0 [BR]_PC WITH FLAGS, ;OLD PC U 0470, 3572,3741,0105,4074,4007,0700,0010,0000,0000 ; 7518 CALL [STOBR] ;STORE OLD PC ; 7519 =1*0 [AR]_#, #/0, HOLD RIGHT, ;PREPARE TO CLEAR FLAGS U 0474, 3567,3771,0003,4374,0007,0700,0010,0000,0000 ; 7520 CALL [INCAR] ;BUMP POINTER ; 7521 =1*1 [PC]_[AR], LOAD FLAGS, ;NEW PC U 0475, 2577,3441,0301,4174,4467,0700,0000,0000,0004 ; 7522 J/PISET ;CLEAR PI CYCLE & START ; 7523 ; INTERRUPT PROGRAM ; 7524 = ; 7525 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 208 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7526 ;HERE TO PROCESS A VECTORED INTERRUPT. AT THIS POINT: ; 7527 ; AR/ WRU BITS (BIT 18 FOR DEVICE 0) ; 7528 ; ARX/ 0 ; 7529 VECINT: [AR]_[AR]*2, ;SHIFT LEFT (UNSHIFTED ON DP) U 3543, 2406,3445,0303,4174,4007,0530,0000,0000,0000 ; 7530 SKIP DP18 ;ANYONE THERE? ; 7531 =0 [ARX]_[ARX]+[XWD1], ;NO--BUMP BOTH HALVES U 2406, 3543,0111,1504,4174,4007,0700,0000,0000,0000 ; 7532 J/VECINT ;KEEP LOOKING ; 7533 [AR]_VMA IO READ, ;SETUP FOR VECTOR CYCLE U 2407, 2410,4571,1203,4374,4007,0700,0000,0024,1240 ; 7534 VECTOR CYCLE/1 ; .. ; 7535 =0 [AR]_[AR].OR.[ARX], ;PUT IN UNIT NUMBER U 2410, 3571,3111,0403,4174,4007,0700,0010,0000,0000 ; 7536 CALL [STRTIO] ;START CYCLE ; 7537 MEM READ, ;WAIT FOR VECTOR (SEE DPM5) U 2411, 2412,3771,0016,4364,4007,0700,0200,0000,0002 ; 7538 [T0]_IO DATA ;GET VECTOR ; 7539 =0 [BR]_[EBR]+#, 3T, #/100, ;EPT+100 U 2412, 3566,0551,1005,4374,4007,0701,0010,0000,0100 ; 7540 CALL [CLARXL] ;CLEAR ARX LEFT ; 7541 [ARX]_[ARX]+[BR], ;EPT+100+DEVICE U 2413, 3544,0111,0504,4174,4007,0700,0200,0024,1016 ; 7542 VMA PHYSICAL READ ;FETCH WORD ; 7543 MEM READ, [BR]_MEM, 3T, ;GET POINTER U 3544, 2414,3771,0005,4365,5007,0331,0200,0000,0002 ; 7544 SKIP ADR.EQ.0 ;SEE IF NON-ZERO ; 7545 =0 [BRX]_([T0].AND.#)*.5, 3T, ;OK--MAKE VECTOR MOD 400 U 2414, 3545,4557,1606,4374,4007,0701,0000,0000,0774 ; 7546 #/774, J/VECIN1 ; AND SHIFT OVER U 2415, 0104,4751,1217,4374,4007,0700,0000,0000,0102 ; 7547 HALT [ILLINT] U 3545, 3546,3447,0606,4174,4007,0700,0000,0000,0000 ; 7548 VECIN1: [BRX]_[BRX]*.5 ;SHIFT 1 MORE PLACE ; 7549 [BR]_[BR]+[BRX], ;ADDRESS OF WORD TO USE ; 7550 LOAD VMA, FORCE EXEC, ;FORCE EXEC VIRTUAL ADDRESS U 3546, 3540,0111,0605,4174,4007,0700,0200,0024,0012 ; 7551 START READ, J/PI50 ;GO GET INSTRUCTION ; 7552 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 209 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 7553 .TOC "PRIORITY INTERRUPTS -- DISMISS SUBROUTINE" ; 7554 ; 7555 ;SUBROUTINE TO DISMISS THE HIGHEST PI IN PROGRESS ; 7556 ;RETURNS 4 ALWAYS ; 7557 ; 7558 ;DISMISS: ; 7559 ; TR [PI], #/077400 ;ANY PI IN PROGRESS? ; 7560 =0 U 2416, 3547,3771,0005,4374,4007,0700,0000,0004,0000 ; 7561 JEN1: [BR]_#, PI.IP1/1, J/DSMS1 ;YES--START LOOP U 2417, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 7562 RETURN [4] ;NO--JUST RETURN ; 7563 U 3547, 2420,4113,0514,4174,4007,0330,0000,0000,0000 ; 7564 DSMS1: [PI].AND.[BR], SKIP ADR.EQ.0 U 2420, 0004,5111,0514,4170,4004,1700,0000,0000,0000 ; 7565 =0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT, RETURN [4] U 2421, 3547,3447,0505,4174,4007,0700,0000,0000,0000 ; 7566 [BR]_[BR]*.5, J/DSMS1 ; 7567 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 210 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7568 .TOC "EXTERNAL IO INSTRUCTIONS" ; 7569 ; 7570 .DCODE D 0710, 1210,1614,0100 ; 7571 710: IOT, WORD-TNE, J/TIOX D 0711, 1214,1614,0100 ; 7572 711: IOT, WORD-TNN, J/TIOX D 0720, 1200,1614,0100 ; 7573 720: IOT, TNE, J/TIOX D 0721, 1204,1614,0100 ; 7574 721: IOT, TNN, J/TIOX ; 7575 .UCODE ; 7576 ; 7577 1614: U 1614, 2422,4443,0000,4174,4007,0700,0010,0000,0000 ; 7578 TIOX: CALL [IORD] U 1617, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 7579 1617: [BR]_[AR].AND.AC, TEST DISP ; 7580 ; 7581 .DCODE D 0712, 1210,1460,0100 ; 7582 712: IOT, B/10, J/RDIO D 0713, 1210,1461,0100 ; 7583 713: IOT, B/10, J/WRIO D 0722, 1200,1460,0100 ; 7584 722: IOT, B/0, J/RDIO D 0723, 1200,1461,0100 ; 7585 723: IOT, B/0, J/WRIO ; 7586 .UCODE ; 7587 ; 7588 1460: U 1460, 2422,4443,0000,4174,4007,0700,0010,0000,0000 ; 7589 RDIO: CALL [IORD] U 1463, 1400,3440,0303,0174,4007,0700,0400,0000,0000 ; 7590 1463: AC_[AR], J/DONE ; 7591 ; 7592 1461: U 1461, 2432,3771,0005,0276,6007,0700,0000,0000,0000 ; 7593 WRIO: [BR]_AC, J/IOWR ; 7594 ; 7595 .DCODE D 0714, 1210,1644,0100 ; 7596 714: IOT, B/10, J/BIXUB D 0715, 1214,1644,0100 ; 7597 715: IOT, B/14, J/BIXUB D 0724, 1200,1644,0100 ; 7598 724: IOT, B/0, J/BIXUB D 0725, 1204,1644,0100 ; 7599 725: IOT, B/4, J/BIXUB ; 7600 .UCODE ; 7601 ; 7602 1644: ; 7603 BIXUB: [BRX]_[AR], ;SAVE EFFECTIVE ADDRESS U 1644, 2422,3441,0306,4174,4007,0700,0010,0000,0000 ; 7604 CALL [IORD] ;GO GET THE DATA ; 7605 1647: [BR]_[AR], ;COPY DATA ITEM U 1647, 1013,3441,0305,4174,4003,7700,0000,0000,0000 ; 7606 B DISP ;SEE IF SET OR CLEAR ; 7607 =1011 [BR]_[BR].OR.AC, ;SET BITS U 1013, 3550,3551,0505,0274,4007,0700,0000,0000,0000 ; 7608 J/BIXUB1 ;GO DO WRITE ; 7609 [BR]_[BR].AND.NOT.AC, ;CLEAR BITS U 1017, 3550,5551,0505,0274,4007,0700,0000,0000,0000 ; 7610 J/BIXUB1 ;GO DO WRITE ; 7611 ; 7612 BIXUB1: [AR]_[BRX], ;RESTORE ADDRESS U 3550, 2432,3441,0603,4174,4007,0700,0000,0000,0000 ; 7613 J/IOWR ; 7614 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 211 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7615 ;SUBROUTINE TO READ FROM AN IO DEVICE ; 7616 ;CALL WITH: ; 7617 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7618 ; INSTRUCTION IN HR ; 7619 ;RETURN 3 WITH WORD OR BYTE IN AR ; 7620 ; ; 7621 =0 ; 7622 IORD: CLR IO BUSY, ;CLEAR BUSY U 2422, 2442,4443,0000,4174,4137,0700,0010,0000,0000 ; 7623 CALL [IOEA] ;COMPUTE IO EA U 2423, 0067,4443,0000,4174,4003,7700,0000,0000,0000 ; 7624 B DISP ; 7625 =10111 [BR]_VMA IO READ, ;BYTE MODE ; 7626 IO BYTE/1, ;SET BYTE FLAG U 0067, 2424,4571,1205,4374,4007,0700,0000,0024,1220 ; 7627 J/IORD1 ;GO DO C/A CYCLE U 0077, 2424,4571,1205,4374,4007,0700,0000,0024,1200 ; 7628 =11111 [BR]_VMA IO READ ;WORD MODE ; 7629 = ; 7630 =0 ; 7631 IORD1: VMA_[AR].OR.[BR] WITH FLAGS, U 2424, 3561,3113,0305,4174,4007,0701,0210,0000,0036 ; 7632 CALL [IOWAIT] ;WAIT FOR THINGS COMPLETE ; 7633 MEM READ, ;MAKE SURE REALLY READY ; 7634 [BR]_IO DATA, ;PUT DATA IN BR U 2425, 1027,3771,0005,4364,4003,7700,0200,0000,0002 ; 7635 B DISP ;SEE IF BYTE MODE U 1027, 2426,4553,0300,4374,4007,0331,0000,0000,0001 ; 7636 =0111 TR [AR], #/1, J/IORD2 ;BYTE MODE SEE IF ODD U 1037, 0003,3441,0503,4174,4004,1700,0000,0000,0000 ; 7637 [AR]_[BR], RETURN [3] ;ALL DONE ; 7638 ; 7639 ;HERE ON WORD MODE ; 7640 =0 ; 7641 IORD2: [BR]_[BR]*.5, SC_5, ;LEFT BYTE U 2426, 2430,3447,0505,4174,4007,0700,2000,0071,0005 ; 7642 J/IORD3 ;GO SHIFT IT ; 7643 [AR]_[BR].AND.#, ;MASK IT U 2427, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7644 #/377, RETURN [3] ;ALL DONE ; 7645 ; 7646 =0 ; 7647 IORD3: [BR]_[BR]*.5, ;SHIFT OVER U 2430, 2430,3447,0505,4174,4007,0630,2000,0060,0000 ; 7648 STEP SC, J/IORD3 ; .. ; 7649 [AR]_[BR].AND.#, ;MASK IT U 2431, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7650 #/377, RETURN [3] ;ALL DONE ; 7651 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 212 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7652 ;ROUTINE TO WRITE TO AN IO DEVICE ; 7653 ;CALL WITH: ; 7654 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7655 ; INSTRUCTION IN HR ; 7656 ; WORD OR BYTE IN BR ; 7657 ;RETURNS BACK TO USER ; 7658 ; ; 7659 =0 ; 7660 IOWR: CLR IO BUSY, ;CLEAR BUSY U 2432, 2442,4443,0000,4174,4137,0700,0010,0000,0000 ; 7661 CALL [IOEA] ;COMPUTE IO EA U 2433, 0227,4443,0000,4174,4003,7700,0000,0000,0000 ; 7662 B DISP U 0227, 2436,4553,0300,4374,4007,0331,0000,0000,0001 ; 7663 =10111 TR [AR], #/1, J/IOWR2 ;BYTE MODE U 0237, 3551,4571,1204,4374,4007,0700,0000,0021,1200 ; 7664 =11111 [ARX]_VMA IO WRITE ;SETUP FLAGS ; 7665 = U 3551, 2434,3113,0304,4174,4007,0701,0200,0000,0036 ; 7666 IOWR1: VMA_[AR].OR.[ARX] WITH FLAGS ; 7667 =0 MEM WRITE, MEM_[BR], ;SEND DATA U 2434, 3561,3333,0005,4175,5007,0701,0210,0000,0002 ; 7668 CALL [IOWAIT] ;WAIT FOR DATA U 2435, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7669 DONE ;RETURN ; 7670 ; 7671 ;HERE FOR BYTE MODE ; 7672 =0 ; 7673 IOWR2: [BR]_[BR]*2, SC_5, ;ODD--MOVE LEFT U 2436, 2440,3445,0505,4174,4007,0700,2000,0071,0005 ; 7674 J/IOWR3 ; .. ; 7675 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2437, 3551,4571,1204,4374,4007,0700,0000,0021,1220 ; 7676 IO BYTE/1, J/IOWR1 ; .. ; 7677 ; 7678 =0 ; 7679 IOWR3: [BR]_[BR]*2, STEP SC, ;SHIFT LEFT U 2440, 2440,3445,0505,4174,4007,0630,2000,0060,0000 ; 7680 J/IOWR3 ;KEEP SHIFTING ; 7681 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2441, 3551,4571,1204,4374,4007,0700,0000,0021,1220 ; 7682 IO BYTE/1, J/IOWR1 ; .. ; 7683 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 213 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7684 ;HERE TO COMPUTE IO EFFECTIVE ADDRESS ; 7685 ;CALL WITH: ; 7686 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7687 ; INSTRUCTION IN HR ; 7688 ;RETURN 1 WITH EA IN AR ; 7689 ; ; 7690 =0 ; 7691 IOEA: VMA_[PC]-1, ;GET INSTRUCTION ; 7692 START READ, ; .. U 2442, 3563,1113,0701,4170,4007,0700,4210,0004,0012 ; 7693 CALL [LOADAR] ;PUT WORD IN AR U 2443, 3552,7441,0306,4174,4007,0700,0000,0000,0000 ; 7694 [BRX]_.NOT.[AR] ;SEE IF IN RANGE 700-777 U 3552, 2444,4553,0600,4374,4007,0321,0000,0070,0000 ; 7695 TL [BRX], #/700000 ; .. ; 7696 =0 U 2444, 2446,4553,0200,4374,4007,0321,0000,0000,0020 ; 7697 IOEA1: TL [HR], #/20, J/IOEA2 ;INDIRECT? ; 7698 WORK[YSAVE]_[AR] CLR LH, ;DIRECT IO INSTRUCTION U 2445, 2444,4713,1203,7174,4007,0700,0400,0000,0422 ; 7699 J/IOEA1 ;SAVE Y FOR EA CALCULATION ; 7700 =0 ; 7701 IOEA2: [AR]_WORK[YSAVE], ;@--GET SAVED Y U 2446, 3553,3771,0003,7274,4007,0701,0000,0000,0422 ; 7702 J/IOEAI ;GET Y AND GO U 2447, 1055,4443,0000,2174,4006,6700,0000,0000,0000 ; 7703 EA MODE DISP ;WAS THERE INDEXING? ; 7704 =1101 [ARX]_XR, SKIP ADL.LE.0, ;SEE IF LOCAL OR GLOBAL INDEXING U 1055, 2452,3771,0004,2274,4007,0120,0000,0000,0000 ; 7705 2T, J/IOEAX ; .. ; 7706 [AR]_WORK[YSAVE], ;JUST PLAIN IO U 1057, 0001,3771,0003,7274,4124,1701,0000,0000,0422 ; 7707 CLR IO LATCH, RETURN [1] ; 7708 ; 7709 IOEAI: READ [HR], DBUS/DP, ;LOAD XR FLOPS IN CASE U 3553, 3554,3333,0002,4174,4217,0700,0000,0000,0000 ; 7710 LOAD INST EA ; THERE IS INDEXING U 3554, 2450,4553,0200,4374,4007,0321,0000,0000,0017 ; 7711 TL [HR], #/17 ;WAS THERE ALSO INDEXING U 2450, 2451,0551,0303,2270,4007,0701,0000,0000,0000 ; 7712 =0 [AR]_[AR]+XR, 3T, HOLD LEFT ;YES--ADD IN INDEX VALUE U 2451, 3555,3443,0300,4174,4007,0700,0200,0004,0012 ; 7713 VMA_[AR], START READ ;FETCH DATA WORD ; 7714 MEM READ, [AR]_MEM, ;GO GET DATA WORD U 3555, 0001,3771,0003,4365,5124,1700,0200,0000,0002 ; 7715 CLR IO LATCH, RETURN [1] ; 7716 ; 7717 =0 ; 7718 IOEAX: [AR]_[ARX]+WORK[YSAVE], ;GLOBAL INDEXING U 2452, 0001,0551,0403,7274,4124,1701,0000,0000,0422 ; 7719 CLR IO LATCH, RETURN [1] U 2453, 3560,0551,0403,7274,4007,0701,0000,0000,0422 ; 7720 [AR]_[ARX]+WORK[YSAVE] ;LOCAL INDEXING ; 7721 [AR]_0, HOLD RIGHT, U 3560, 0001,4221,0003,4174,0124,1700,0000,0000,0000 ; 7722 CLR IO LATCH, RETURN [1] ; 7723 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 214 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 EXTERNAL IO INSTRUCTIONS ; 7724 ;WAIT FOR IO TO COMPLETE ; 7725 ;RETURNS 1 OR PAGE FAILS ; 7726 ; ; 7727 IOWAIT: SC_S#, S#/200, ;DELAY ; 7728 [T0]_VMA, ;GET VMA U 3561, 1074,3771,0016,4354,4007,0650,2000,0071,0200 ; 7729 SKIP/-IO BUSY ;SEE IF BUSY YET ; 7730 =00 ; 7731 IOW1: CLR IO LATCH, ;WENT BUSY ; 7732 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1074, 3562,3333,0016,7174,4127,0700,0400,0000,0210 ; 7733 J/IOW2 ;WAIT FOR IT TO CLEAR ; 7734 SC_SC-1, SCAD DISP, 5T, ;SEE IF DONE YET ; 7735 SKIP/-IO BUSY, ; .. U 1075, 1074,4443,0000,4174,4006,7653,2000,0060,0000 ; 7736 J/IOW1 ;BACK TO LOOP ; 7737 CLR IO LATCH, ;WENT BUSY AND TIMEOUT ; 7738 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1076, 3562,3333,0016,7174,4127,0700,0400,0000,0210 ; 7739 J/IOW2 ; .. ; 7740 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1077, 2457,3333,0016,7174,4007,0700,0400,0000,0210 ; 7741 J/IOW5 ;GO TRAP ; 7742 ; 7743 IOW2: SC_S#, S#/777, ;GO TIME IO U 3562, 2454,4443,0000,4174,4007,0650,2000,0071,0777 ; 7744 SKIP/-IO BUSY ; .. ; 7745 =0 ; 7746 IOW3: CLR IO LATCH, ;TRY TO CLEAR LATCH U 2454, 2456,4443,0000,4174,4127,0630,2000,0060,0000 ; 7747 STEP SC, J/IOW4 ;STILL BUSY U 2455, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 7748 RETURN [1] ;IDLE ; 7749 ; 7750 =0 ; 7751 IOW4: CLR IO LATCH, 5T, ;TRY TO CLEAR LATCH ; 7752 SKIP/-IO BUSY, ;SEE IF STILL BUSY U 2456, 2454,4443,0000,4174,4127,0653,0000,0000,0000 ; 7753 J/IOW3 ; .. U 2457, 3665,4571,1206,4374,4007,0700,0000,0020,0000 ; 7754 IOW5: [BRX]_[200000] XWD 0, J/HARD ; 7755 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 215 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 SMALL SUBROUTINES ; 7756 .TOC "SMALL SUBROUTINES" ; 7757 ; 7758 ;HERE ARE A COLLECTION ON 1-LINE SUBROUTINES ; 7759 LOADAR: MEM READ, [AR]_MEM, ;FROM MEMORY TO AR U 3563, 0001,3771,0003,4365,5004,1700,0200,0000,0002 ; 7760 RETURN [1] ;RETURN TO CALLER ; 7761 U 3564, 0001,3771,0004,4365,5004,1700,0200,0000,0002 ; 7762 LOADARX: MEM READ, [ARX]_MEM, RETURN [1] ; 7763 U 3565, 0001,3772,0000,4365,5004,1700,0200,0000,0002 ; 7764 LOADQ: MEM READ, Q_MEM, RETURN [1] ; 7765 U 3566, 0001,4221,0004,4174,0004,1700,0000,0000,0000 ; 7766 CLARXL: [ARX]_0, HOLD RIGHT, RETURN [1] ; 7767 U 3567, 0001,0111,0703,4174,4004,1700,0000,0000,0000 ; 7768 INCAR: [AR]_[AR]+1, RETURN [1] ; 7769 U 3570, 0001,3445,0505,4174,4004,1700,0000,0000,0000 ; 7770 SBRL: [BR]_[BR]*2, RETURN [1] ; 7771 U 3571, 0001,3443,0300,4174,4004,1701,0200,0000,0036 ; 7772 STRTIO: VMA_[AR] WITH FLAGS, RETURN [1] ; 7773 U 3572, 0004,3333,0005,4175,5004,1701,0200,0000,0002 ; 7774 STOBR: MEM WRITE, MEM_[BR], RETURN [4] ; 7775 U 3573, 0001,3333,0001,4175,5004,1701,0200,0000,0002 ; 7776 STOPC: MEM WRITE, MEM_[PC], RETURN [1] ; 7777 U 3574, 0001,3440,0404,0174,4004,1700,0400,0000,0000 ; 7778 AC_ARX: AC_[ARX], RETURN [1] ; 7779 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 216 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UNDEFINED IO INSTRUCTIONS ; 7780 .TOC "UNDEFINED IO INSTRUCTIONS" ; 7781 ; 7782 .DCODE D 0703, 0003,1650,2100 ; 7783 703: I, B/3, J/IOT700 D 0706, 0006,1650,2100 ; 7784 706: I, B/6, J/IOT700 D 0707, 0007,1650,2100 ; 7785 I, B/7, J/IOT700 ; 7786 D 0716, 0006,1651,2100 ; 7787 716: I, B/6, J/IOT710 D 0717, 0007,1651,2100 ; 7788 I, B/7, J/IOT710 ; 7789 D 0726, 0006,1652,2100 ; 7790 726: I, B/6, J/IOT720 D 0727, 0007,1652,2100 ; 7791 I, B/7, J/IOT720 ; 7792 D 0730, 0000,1653,2100 ; 7793 730: I, B/0, J/IOT730 D 0731, 0001,1653,2100 ; 7794 I, B/1, J/IOT730 D 0732, 0002,1653,2100 ; 7795 I, B/2, J/IOT730 D 0733, 0003,1653,2100 ; 7796 I, B/3, J/IOT730 D 0734, 0004,1653,2100 ; 7797 I, B/4, J/IOT730 D 0735, 0005,1653,2100 ; 7798 I, B/5, J/IOT730 D 0736, 0006,1653,2100 ; 7799 I, B/6, J/IOT730 D 0737, 0007,1653,2100 ; 7800 I, B/7, J/IOT730 ; 7801 D 0740, 0000,1654,2100 ; 7802 740: I, B/0, J/IOT740 D 0741, 0001,1654,2100 ; 7803 I, B/1, J/IOT740 D 0742, 0002,1654,2100 ; 7804 I, B/2, J/IOT740 D 0743, 0003,1654,2100 ; 7805 I, B/3, J/IOT740 D 0744, 0004,1654,2100 ; 7806 I, B/4, J/IOT740 D 0745, 0005,1654,2100 ; 7807 I, B/5, J/IOT740 D 0746, 0006,1654,2100 ; 7808 I, B/6, J/IOT740 D 0747, 0007,1654,2100 ; 7809 I, B/7, J/IOT740 ; 7810 D 0750, 0000,1655,2100 ; 7811 750: I, B/0, J/IOT750 D 0751, 0001,1655,2100 ; 7812 I, B/1, J/IOT750 D 0752, 0002,1655,2100 ; 7813 I, B/2, J/IOT750 D 0753, 0003,1655,2100 ; 7814 I, B/3, J/IOT750 D 0754, 0004,1655,2100 ; 7815 I, B/4, J/IOT750 D 0755, 0005,1655,2100 ; 7816 I, B/5, J/IOT750 D 0756, 0006,1655,2100 ; 7817 I, B/6, J/IOT750 D 0757, 0007,1655,2100 ; 7818 I, B/7, J/IOT750 ; 7819 D 0760, 0000,1656,2100 ; 7820 760: I, B/0, J/IOT760 D 0761, 0001,1656,2100 ; 7821 I, B/1, J/IOT760 D 0762, 0002,1656,2100 ; 7822 I, B/2, J/IOT760 D 0763, 0003,1656,2100 ; 7823 I, B/3, J/IOT760 D 0764, 0004,1656,2100 ; 7824 I, B/4, J/IOT760 D 0765, 0005,1656,2100 ; 7825 I, B/5, J/IOT760 D 0766, 0006,1656,2100 ; 7826 I, B/6, J/IOT760 D 0767, 0007,1656,2100 ; 7827 I, B/7, J/IOT760 ; 7828 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 217 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UNDEFINED IO INSTRUCTIONS D 0770, 0000,1657,2100 ; 7829 770: I, B/0, J/IOT770 D 0771, 0001,1657,2100 ; 7830 I, B/1, J/IOT770 D 0772, 0002,1657,2100 ; 7831 I, B/2, J/IOT770 D 0773, 0003,1657,2100 ; 7832 I, B/3, J/IOT770 D 0774, 0004,1657,2100 ; 7833 I, B/4, J/IOT770 D 0775, 0005,1657,2100 ; 7834 I, B/5, J/IOT770 D 0776, 0006,1657,2100 ; 7835 I, B/6, J/IOT770 D 0777, 0007,1657,2100 ; 7836 I, B/7, J/IOT770 ; 7837 .UCODE ; 7838 ; 7839 1650: U 1650, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7840 IOT700: UUO ; 7841 1651: ; 7842 IOT710: ;;7843 .IFNOT/UBABLT ;;7844 UUO ; 7845 .IF/UBABLT U 1651, 0670,4443,0000,4174,4007,0700,0000,0000,0000 ; 7846 J/BLTX ;GO TO COMMON CODE FOR UBABLT INSTRS ; 7847 .ENDIF/UBABLT ; 7848 1652: U 1652, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7849 IOT720: UUO ; 7850 1653: U 1653, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7851 IOT730: UUO ; 7852 1654: U 1654, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7853 IOT740: UUO ; 7854 1655: U 1655, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7855 IOT750: UUO ; 7856 1656: U 1656, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7857 IOT760: UUO ; 7858 1657: U 1657, 2622,4551,0202,4374,0007,0700,0000,0077,7740 ; 7859 IOT770: UUO ; 7860 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 218 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UMOVE AND UMOVEM ; 7861 .TOC "UMOVE AND UMOVEM" ; 7862 ; 7863 .DCODE D 0704, 1200,1754,0100 ; 7864 704: IOT, J/UMOVE D 0705, 1200,1755,0100 ; 7865 IOT, J/UMOVEM ; 7866 .UCODE ; 7867 ; 7868 1754: ; 7869 UMOVE: VMA_[AR], ;LOAD VMA ; 7870 START READ, ;START MEMORY U 1754, 3575,3443,0300,4174,4207,0700,0200,0004,0012 ; 7871 SPEC/PREV ;FORCE PREVIOUS ; 7872 MEM READ, ;WAIT FOR MEMORY ; 7873 [AR]_MEM, ;PUT DATA IN AR U 3575, 1515,3771,0003,4365,5007,0700,0200,0000,0002 ; 7874 J/STAC ;GO PUT AR IN AC ; 7875 ; 7876 1755: ; 7877 UMOVEM: VMA_[AR], ;LOAD VMA ; 7878 START WRITE, ;START MEMORY U 1755, 3576,3443,0300,4174,4207,0700,0200,0003,0012 ; 7879 SPEC/PREV ;FORCE PREVIOUS ; 7880 [AR]_AC, ;FETCH AC U 3576, 1516,3771,0003,0276,6007,0700,0000,0000,0000 ; 7881 J/STMEM ;STORE IN MEMORY ; 7882 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 219 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 UMOVE AND UMOVEM ; 7883 ;HERE WITH HALT CODE IN THE T1 ; 7884 =010* ; 7885 HALTED: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0104, 3601,3333,0004,7174,4007,0700,0410,0000,0212 ; 7886 CALL [SAVVMA] ;PUT VMA IN WORK[SV.VMA] ; 7887 =110* ABORT MEM CYCLE, ;ABORT CYCLE IN PROGRESS U 0114, 3600,4223,0000,4364,4277,0700,0210,0000,0010 ; 7888 CALL [WRTHSB] ;WRITE HALT STATUS BLOCK ; 7889 =111* U 0116, 3577,4221,0004,4174,4007,0700,0200,0021,1016 ; 7890 PWRON: [ARX]_0, VMA PHYSICAL WRITE ;STORE HALT CODE ; 7891 = U 3577, 2460,3333,0017,4175,5007,0701,0200,0000,0002 ; 7892 MEM WRITE, MEM_[T1] ; IN LOCATION 0 ; 7893 =0 NEXT [ARX] PHYSICAL WRITE, U 2460, 3573,0111,0704,4170,4007,0700,0210,0023,1016 ; 7894 CALL [STOPC] U 2461, 0005,4443,0000,4174,4107,0700,0000,0000,0074 ; 7895 H1: SET HALT, J/HALTLP ;TELL CONSOLE WE HAVE HALTED ; 7896 ; 7897 ; 7898 4: UNHALT, ;RESET CONSOLE U 0004, 2462,4443,0000,4174,4107,0640,0000,0000,0062 ; 7899 SKIP EXECUTE, J/CONT ;SEE IF CO OR EX ; 7900 5: U 0005, 0004,4443,0000,4174,4007,0660,0000,0000,0000 ; 7901 HALTLP: SKIP/-CONTINUE, J/4 ;WAIT FOR CONTINUE ; 7902 ; 7903 =0 ; 7904 CONT: VMA_[PC], ;LOAD PC INTO VMA ; 7905 FETCH, ;START READ U 2462, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 7906 J/XCTGO ;DO THE INSTRUCTION U 2463, 2464,4571,1203,4374,4007,0700,0000,0024,1200 ; 7907 [AR]_VMA IO READ ;PUT FLAGS IN AR ; 7908 =0 [AR]_[AR].OR.#, ;PUT IN ADDRESS ; 7909 #/200000, HOLD LEFT, ; OF CSL REGISTER U 2464, 3571,3551,0303,4370,4007,0700,0010,0020,0000 ; 7910 CALL [STRTIO] ; 7911 CONT1: MEM READ, ;WAIT FOR DATA ; 7912 [HR]_MEM, ;PUT IN HR ; 7913 LOAD INST, ;LOAD IR, ETC. U 2465, 2601,3771,0002,4365,5617,0700,0200,0000,0002 ; 7914 J/XCT1 ;GO DO THE INSTRUCTION ; 7915 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 220 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 WRITE HALT STATUS BLOCK ; 7916 .TOC "WRITE HALT STATUS BLOCK" ; 7917 ; 7918 ;THE HALT STATUS BLOCK LOOKS LIKE: ; 7919 ; 7920 ; !=======================================================! ; 7921 ; !00! MAG ! ; 7922 ; !-------------------------------------------------------! ; 7923 ; !01! PC ! ; 7924 ; !-------------------------------------------------------! ; 7925 ; !02! HR ! ; 7926 ; !-------------------------------------------------------! ; 7927 ; !03! AR ! ; 7928 ; !-------------------------------------------------------! ; 7929 ; !04! ARX ! ; 7930 ; !-------------------------------------------------------! ; 7931 ; !05! BR ! ; 7932 ; !-------------------------------------------------------! ; 7933 ; !06! BRX ! ; 7934 ; !-------------------------------------------------------! ; 7935 ; !07! ONE ! ; 7936 ; !-------------------------------------------------------! ; 7937 ; !10! EBR ! ; 7938 ; !-------------------------------------------------------! ; 7939 ; !11! UBR ! ; 7940 ; !-------------------------------------------------------! ; 7941 ; !12! MASK ! ; 7942 ; !-------------------------------------------------------! ; 7943 ; !13! FLG ! ; 7944 ; !-------------------------------------------------------! ; 7945 ; !14! PI ! ; 7946 ; !-------------------------------------------------------! ; 7947 ; !15! XWD1 ! ; 7948 ; !-------------------------------------------------------! ; 7949 ; !16! T0 ! ; 7950 ; !-------------------------------------------------------! ; 7951 ; !17! T1 ! ; 7952 ; !=======================================================! ; 7953 ; ! VMA FLAGS ! VMA ! ; 7954 ; !=======================================================! ; 7955 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 221 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 WRITE HALT STATUS BLOCK ; 7956 ;START AT 1 TO DUMP 2901 REGISTERS INTO MAIN MEMORY ; 7957 1: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0001, 3601,3333,0004,7174,4007,0700,0410,0000,0212 ; 7958 CALL [SAVVMA] ;WORK[SV.VMA]_VMA U 0011, 0224,3771,0004,7274,4007,0701,0000,0000,0227 ; 7959 11: [ARX]_WORK[HSBADR] U 0224, 3603,4223,0000,4364,4277,0700,0210,0000,0010 ; 7960 =10* ABORT MEM CYCLE, CALL [DUMP] U 0226, 2461,4443,0000,4174,4107,0700,0000,0000,0074 ; 7961 SET HALT, J/H1 ; 7962 ; 7963 ; 7964 WRTHSB: [ARX]_WORK[HSBADR], ;GET ADDRESS OF HSB U 3600, 2466,3771,0004,7274,4007,0422,0000,0000,0227 ; 7965 SKIP AD.LE.0, 4T ;SEE IF VALID ; 7966 =0 READ [MASK], LOAD PI, ;TURN OFF PI SYSTEM U 2466, 3603,3333,0012,4174,4437,0700,0000,0000,0000 ; 7967 J/DUMP ; AND GO TAKE DUMP ; 7968 [ARX]_WORK[SV.ARX], U 2467, 0002,3771,0004,7274,4004,1701,0000,0000,0212 ; 7969 RETURN [2] ;DO NOT DUMP ANYTHING ; 7970 U 3601, 3602,3771,0004,4354,4007,0700,0000,0000,0000 ; 7971 SAVVMA: [ARX]_VMA ; 7972 WORK[SV.VMA]_[ARX], U 3602, 0010,3333,0004,7174,4004,1700,0400,0000,0210 ; 7973 RETURN [10] ; 7974 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 222 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 WRITE HALT STATUS BLOCK ; 7975 ;DUMP OUT THE 2901 U 3603, 2341,3333,0004,4174,4007,0700,0200,0021,1016 ; 7976 DUMP: READ [ARX], VMA PHYSICAL WRITE U 2341, 2631,3333,0000,4175,5007,0701,0210,0000,0002 ; 7977 =0* MEM WRITE, MEM_[MAG], CALL [NEXT] U 2343, 3604,3333,0001,4175,5007,0701,0200,0000,0002 ; 7978 MEM WRITE, MEM_[PC] U 3604, 2470,0111,0704,4170,4007,0700,0200,0023,1016 ; 7979 NEXT [ARX] PHYSICAL WRITE U 2470, 2631,3333,0002,4175,5007,0701,0210,0000,0002 ; 7980 =0* MEM WRITE, MEM_[HR], CALL [NEXT] U 2472, 2471,3333,0003,4175,5007,0701,0200,0000,0002 ; 7981 MEM WRITE, MEM_[AR] U 2471, 2631,3333,0003,7174,4007,0700,0410,0000,0211 ; 7982 =0* WORK[SV.AR]_[AR], CALL [NEXT] U 2473, 2474,3771,0003,7274,4007,0701,0000,0000,0212 ; 7983 [AR]_WORK[SV.ARX] U 2474, 2631,3333,0003,4175,5007,0701,0210,0000,0002 ; 7984 =0* MEM WRITE, MEM_[AR], CALL [NEXT] U 2476, 3605,3333,0005,4175,5007,0701,0200,0000,0002 ; 7985 MEM WRITE, MEM_[BR] U 3605, 2475,0111,0704,4170,4007,0700,0200,0023,1016 ; 7986 NEXT [ARX] PHYSICAL WRITE U 2475, 2631,3333,0006,4175,5007,0701,0210,0000,0002 ; 7987 =0* MEM WRITE, MEM_[BRX], CALL [NEXT] U 2477, 3606,3333,0007,4175,5007,0701,0200,0000,0002 ; 7988 MEM WRITE, MEM_[ONE] U 3606, 2500,0111,0704,4170,4007,0700,0200,0023,1016 ; 7989 NEXT [ARX] PHYSICAL WRITE U 2500, 2631,3333,0010,4175,5007,0701,0210,0000,0002 ; 7990 =0* MEM WRITE, MEM_[EBR], CALL [NEXT] U 2502, 3607,3333,0011,4175,5007,0701,0200,0000,0002 ; 7991 MEM WRITE, MEM_[UBR] U 3607, 2501,0111,0704,4170,4007,0700,0200,0023,1016 ; 7992 NEXT [ARX] PHYSICAL WRITE U 2501, 2631,3333,0012,4175,5007,0701,0210,0000,0002 ; 7993 =0* MEM WRITE, MEM_[MASK], CALL [NEXT] U 2503, 3610,3333,0013,4175,5007,0701,0200,0000,0002 ; 7994 MEM WRITE, MEM_[FLG] U 3610, 2504,0111,0704,4170,4007,0700,0200,0023,1016 ; 7995 NEXT [ARX] PHYSICAL WRITE U 2504, 2631,3333,0014,4175,5007,0701,0210,0000,0002 ; 7996 =0* MEM WRITE, MEM_[PI], CALL [NEXT] U 2506, 3611,3333,0015,4175,5007,0701,0200,0000,0002 ; 7997 MEM WRITE, MEM_[XWD1] U 3611, 2505,0111,0704,4170,4007,0700,0200,0023,1016 ; 7998 NEXT [ARX] PHYSICAL WRITE U 2505, 2631,3333,0016,4175,5007,0701,0210,0000,0002 ; 7999 =0* MEM WRITE, MEM_[T0], CALL [NEXT] U 2507, 2510,3333,0017,4175,5007,0701,0200,0000,0002 ; 8000 MEM WRITE, MEM_[T1] U 2510, 2631,3771,0003,7274,4007,0701,0010,0000,0210 ; 8001 =0* [AR]_WORK[SV.VMA], CALL [NEXT] U 2512, 3612,3333,0003,4175,5007,0701,0200,0000,0002 ; 8002 MEM WRITE, MEM_[AR] U 3612, 3613,3771,0003,7274,4007,0701,0000,0000,0211 ; 8003 HSBDON: [AR]_WORK[SV.AR] U 3613, 3614,3771,0004,7274,4007,0701,0000,0000,0210 ; 8004 [ARX]_WORK[SV.VMA] U 3614, 3615,3443,0400,4174,4007,0700,0200,0000,0010 ; 8005 VMA_[ARX] ; 8006 [ARX]_WORK[SV.ARX], U 3615, 0006,3771,0004,7274,4004,1701,0000,0000,0212 ; 8007 RETURN [6] ; 8008 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 223 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 WRITE HALT STATUS BLOCK ; 8009 .NOBIN ; 8010 .TOC "PAGE FAIL REFIL LOGIC" ; 8011 ; 8012 ;WHEN THE CPU CAN NOT COMPLETE A MEMORY REFERENCE BECAUSE THE PAGE ; 8013 ; TABLE DOES NOT CONTAIN VALID INFORMATION FOR THE VIRTUAL PAGE INVOLVED ; 8014 ; THE HARDWARE CALLS THIS ROUTINE TO RELOAD THE HARDWARE PAGE TABLE. ; 8015 ; ; 8016 ;THIS CODE WILL EITHER DO THE RELOAD OR GENERATE A PAGE FAIL FOR THE ; 8017 ; SOFTWARE. THE INFORMATION LOADED CONSISTS OF THE PHYSICAL PAGE NUMBER, ; 8018 ; THE CACHE ENABLE BIT AND THE WRITE ENABLE BIT. ; 8019 ; 8020 ;THIS LOGIC USES MANY VARIABLES. THEY ARE DESCRIBED BRIEFLY HERE: ; 8021 ; 8022 ;THING WHERE KEPT USE ; 8023 ;OLD VMA WORKSPACE WORD 210 SAVES VMA ; 8024 ;OLD AR WORKSPACE WORD 211 SAVES AR ; 8025 ;OLD ARX WORKSPACE WORD 212 SAVES ARX ; 8026 ;OLD BR WORKSPACE WORD 213 SAVES BR ; 8027 ;OLD BRX WORKSPACE WORD 214 SAVES BRX ; 8028 ;KL PAGING BIT EBR BIT 1 (IN 2901) INDICATES KL STYLE (TOPS-20) PAGING ; 8029 ; INSTEAD OF KI STYLE (TOPS-10 AND DIAGNOSTIC) ; 8030 ; MODE PAGING ; 8031 ;W BIT FLG BIT 4 PAGE CAN BE WRITTEN ; 8032 ;C BIT FLG BIT 6 DATA IN THIS PAGE MAY BE PUT ; 8033 ; INTO CACHE ; 8034 ;PI CYCLE FLG BIT 5 STORING OLD PC DURING PI ; 8035 ;MAP FLAG FLG BIT 18 MAP INSTRUCTION IN PROGRESS ; 8036 ;CLEANUP CODE FLG BITS 32-35 WHAT TO DO SO INSTRUCTION MAY BE ; 8037 ; RESTARTED ; 8038 ;SPT BASE WORKSPACE WORD 215 ADDRESS OF SHARED-POINTER-TABLE ; 8039 ;CST BASE WORKSPACE WORD 216 ADDRESS OF CORE-STATUS-TABLE ; 8040 ;CST MASK WORKSPACE WORD 217 BITS TO KEEP ON CST UPDATE ; 8041 ;CST DATA (PUR) WORKSPACE WORD 220 BITS TO SET ON CST UPDATE ; 8042 ;PAGE TABLE ADDRESS AR WHERE THIS PAGE TABLE IS LOCATED ; 8043 ;PHYSICAL PAGE # (PPN) AR RESULT OF THIS PROCESS ; 8044 ;CST ENTRY AR CORE STATUS TABLE ENTRY ; 8045 ;SPT ENTRY AR WORD FROM SPT ; 8046 ;PAGE TABLE ENTRY AR WORD FROM PT ; 8047 ;PAGE NUMBER BR INDEX INTO CURENT PAGE TABLE ; 8048 ;PAGE FAIL WORD BRX WHAT HAPPENED (ALSO MAP RESULT) ; 8049 ;;8050 .IF/INHCST ;;8051 SKIP NO CST "AD/D,DBUS/RAM,RAMADR/#,WORK/CBR,DT/4T,SKIP/ADEQ0" ; 8052 .ENDIF/INHCST ; 8053 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 224 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8054 ; ; 8055 ; ; 8056 ; ; 8057 ; KL10 PAGING - WORD FORMATS ; 8058 ; ; 8059 ;Section Pointer ; 8060 ; ; 8061 ;The section pointer is found in the user or exec section table. ; 8062 ;(Part of UPT or EPT.) ; 8063 ; ; 8064 ;Section pointer provides (via the SPT) the physical address of ; 8065 ;the PAGE TABLE for the given section. ; 8066 ; ; 8067 ; Code: 0 No-access (trap) ; 8068 ; 1 Immediate ; 8069 ; 2 Share ; 8070 ; 3 Indirect ; 8071 ; 4-7 Unused, reserved ; 8072 ; ; 8073 ; 0 1 2 3 4 5 6 18 35 ; 8074 ; +----+-+-+-+-+---------+-------------------------+ ; 8075 ; !CODE!P!W! !C!/////////! PAGE TABLE IDENTIFIER ! ; 8076 ; !010 ! ! ! ! !/////////! (SPT INDEX) ! ; 8077 ; +----+-+-+-+-+---------+-------------------------+ ; 8078 ; ; 8079 ; NORMAL SECTION POINTER (Code = 2) ; 8080 ; ; 8081 ; 0 2 3 4 5 6 9 18 35 ; 8082 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8083 ; !CODE!P!W! !C!///!SECTION !SECTION TABLE IDENTIFIER! ; 8084 ; !011 ! ! ! ! !///!TABLE INDEX! (SPT INDEX) ! ; 8085 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8086 ; ; 8087 ; INDIRECT SECTION POINTER (Code = 3) ; 8088 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 225 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8089 ;PAGE POINTERS ; 8090 ; ; 8091 ;FOUND IN PAGE TABLES ; 8092 ; ; 8093 ; 0 1 2 3 4 5 6 12 35 ; 8094 ; +----+-+-+-+-+----+------------------------------+ ; 8095 ; !CODE!P!W! !C!////! PHYSICAL ADDRESS OF PAGE ! ; 8096 ; !001 ! ! ! ! !////! ! ; 8097 ; +----+-+-+-+-+----+------------------------------+ ; 8098 ; ; 8099 ; IMMEDIATE POINTER (code field = 1) ; 8100 ; ; 8101 ; B12-35 give PHYSICAL ADDRESS OF PAGE ; 8102 ; if B12-17 >< 0, page not in core-trap ; 8103 ; if B12-17 = 0, B23-35 give CORE PAGE ; 8104 ; NUMBER of page, B18-22 MBZ ; 8105 ; ; 8106 ; ; 8107 ; ; 8108 ; ; 8109 ; ; 8110 ; 0 2 3 6 18 35 ; 8111 ; +-----+-------+---------+------------------------+ ; 8112 ; !CODE !SAME AS!/////////! SPT INDEX ! ; 8113 ; !010 ! IMMED.!/////////! ! ; 8114 ; +-----+-------+---------+------------------------+ ; 8115 ; ; 8116 ; SHARED POINTER (code field = 2) ; 8117 ; ; 8118 ; B18-35 Give SPT INDEX (SPTX). SPTX + SPT BASE ; 8119 ; ADDRESS = physical core address of word ; 8120 ; holding physical address of page. ; 8121 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 226 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8122 ; 0 1 2 3 6 9 17 18 35 ; 8123 ; +----+--------+---+-------+----------------------+ ; 8124 ; !CODE!SAME AS !///! PAGE ! PAGE TABLE IDENTIFIER! ; 8125 ; !011 ! IMMED. !///!NUMBER ! (SPT INDEX) ! ; 8126 ; +----+--------+---+-------+----------------------+ ; 8127 ; ; 8128 ; INDIRECT POINTER (code field = 3) ; 8129 ; ; 8130 ; This pointer type causes another pointer to be fetched ; 8131 ; and interpreted. The new pointer is found in word N ; 8132 ; (B9-17) of the page addressed by C(SPT + SPTX). ; 8133 ; ; 8134 ; ; 8135 ; ; 8136 ; SPT ENTRY ; 8137 ; ; 8138 ; Found in the SPT, i.e., when fetching C(SPT +SPTX) ; 8139 ; ; 8140 ; 12 35 ; 8141 ; +--------------------+---------------------------+ ; 8142 ; !////////////////////! PHYSICAL ADDRESS OF PAGE ! ; 8143 ; !////////////////////! OR PAGE TABLE ! ; 8144 ; +--------------------+---------------------------+ ; 8145 ; ; 8146 ; B12-35 Give PHYSICAL ADDRESS of page. ; 8147 ; ; 8148 ; The base address (physical core address) of the SPT ; 8149 ; resides in one AC of the reserved AC block. ; 8150 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 227 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8151 ;PHYSICAL STORAGE ADDRESS ; 8152 ; ; 8153 ;Found in B12-35 of IMMEDIATE POINTERS and SPT ENTRIES. ; 8154 ; ; 8155 ; 12 17 18 23 35 ; 8156 ; +---------+----+-----------------+ ; 8157 ; ! !MBZ ! CORE PAGE NUMBER! ; 8158 ; ! ! ! IF B12-17 = 0 ! ; 8159 ; +---------+----+-----------------+ ; 8160 ; ; 8161 ; If B12-17 = 0, then B23-35 are CORE PAGE NUMBER (i.e., ; 8162 ; B14-26 of physical core address) of page and B18-22 ; 8163 ; MBZ. If B12-17 >< 0, then address is not core and ; 8164 ; pager traps. ; 8165 ; ; 8166 ; ; 8167 ; ; 8168 ;CORE STATUS TABLE ENTRY ; 8169 ; ; 8170 ;Found when fetching C(CBR + CORE PAGENO) ; 8171 ; ; 8172 ; 0 5 32 34 35 ; 8173 ; +-------+-------------------------------+------+-+ ; 8174 ; ! CODE ! ! !M! ; 8175 ; +-------+-------------------------------+------+-+ ; 8176 ; ; 8177 ; B0-5 are code field: ; 8178 ; ; 8179 ; 0 - unavailable, trap ; 8180 ; ; 8181 ; 1-77 - available ; 8182 ; ; 8183 ; ; 8184 ; ; 8185 ; B32-34 reserved for future hardware specification. ; 8186 ; ; 8187 ; B35 is "modified" bit, set on any write ref to page. ; 8188 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 228 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8189 ;QUANTITIES IN HARDWARE REGISTERS ; 8190 ; ; 8191 ;SPT SPT Base Register ; 8192 ; ; 8193 ; 14 35 ; 8194 ; +--------------------------------+ ; 8195 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8196 ; +--------------------------------+ ; 8197 ; ; 8198 ;CBR CST Base Register ; 8199 ; ; 8200 ; 14 35 ; 8201 ; +--------------------------------+ ; 8202 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8203 ; +--------------------------------+ ; 8204 ; ; 8205 ;CSTMSK CST Update Mask ; 8206 ; ; 8207 ; 0 32 35 ; 8208 ; +------------------------------------------+---+-+ ; 8209 ; ! MASK !111!1! ; 8210 ; +------------------------------------------+---+-+ ; 8211 ; ; 8212 ; ANDed with CST word during update ; 8213 ; ; 8214 ;(B32-35 must be all 1's to preserve existing CST information) ; 8215 ; ; 8216 ;CSTDATA CST Update Data ; 8217 ; ; 8218 ; 0 32 34 35 ; 8219 ; +------------------------------------------+---+-+ ; 8220 ; ! DATA !000!0! ; 8221 ; +------------------------------------------+---+-+ ; 8222 ; ; 8223 ; IORed with CST word during update ; 8224 ; ; 8225 ;(B32-35 must be all 0's to preserve existing CST information) ; 8226 ; ; 8227 ;All unspecified bits and fields are reserved for future ; 8228 ;specification by DEC. ; 8229 ; ; 8230 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 229 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8231 .BIN ; 8232 ; 8233 .DCODE D 0257, 1215,1553,0100 ; 8234 257: IOT, AC, J/MAP ; 8235 .UCODE ; 8236 ; 8237 1553: ; 8238 MAP: [AR]_[AR].OR.#, ;ASSUME PHYSICAL REF ; 8239 #/160000, ;FAKE ANSWER U 1553, 3616,3551,0303,4374,0007,0700,0000,0016,0000 ; 8240 HOLD RIGHT ; .. U 3616, 3617,3771,0006,4354,4007,0700,0000,0000,0000 ; 8241 [BRX]_VMA ;PUT VMA AND FLAGS IN BRX ; 8242 [BRX]_[BRX].AND.#, ;JUST KEEP USER BIT U 3617, 3620,4551,0606,4374,0007,0700,0000,0040,0000 ; 8243 #/400000, HOLD RIGHT ; .. U 3620, 3621,3333,0006,7174,4007,0700,0400,0000,0210 ; 8244 WORK[SV.VMA]_[BRX] ;SAVE IN WORKSPACE U 3621, 3622,3771,0005,7274,4007,0701,0000,0000,0230 ; 8245 [BR]_WORK[APR] ;GET APR FLAGS U 3622, 2514,4553,0500,4374,4007,0331,0000,0003,0000 ; 8246 TR [BR], #/030000 ;PAGING ENABLED? U 2514, 3632,3771,0013,4370,4007,0700,0000,0040,0002 ; 8247 =0 STATE_[MAP], J/PFMAP ;YES--DO REAL MAP U 2515, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 8248 AC_[AR], NEXT INST ;NO--RETURN VIRTUAL ADDRESS ; 8249 ;HARDWARE COMES HERE ON PAGE TABLE NOT VALID (OR INTERRUPT) WHEN ; 8250 ; STARTING A MEMORY REFERENCE. MICOWORD ADDRESS OF INSTRUCTION DOING ; 8251 ; MEM WAIT IS SAVED ON THE STACK. ; 8252 3777: ; 8253 PAGE-FAIL: U 3777, 3623,3333,0003,7174,4007,0700,0400,0000,0211 ; 8254 WORK[SV.AR]_[AR] U 3623, 3624,3333,0006,7174,4007,0700,0400,0000,0214 ; 8255 ITRAP: WORK[SV.BRX]_[BRX] U 3624, 3625,3771,0006,4354,4007,0700,0000,0000,0000 ; 8256 [BRX]_VMA U 3625, 3626,3333,0006,7174,4007,0700,0400,0000,0210 ; 8257 WORK[SV.VMA]_[BRX] ; 8258 WORK[SV.ARX]_[ARX], U 3626, 1060,3333,0004,7174,4007,0370,0400,0000,0212 ; 8259 SKIP IRPT ;SEE IF INTERRUPT (SAVE DISPATCH) ; 8260 =0000 ; 8261 PFD: DBM/PF DISP, DBUS/DBM, ;BRING CODE TO 2901'S ; 8262 AD/D, DEST/PASS, 4T, ;PUT ON DP 18-21 U 1060, 1060,3773,0000,4304,4003,1702,0000,0000,0000 ; 8263 DISP/DP LEFT, J/PFD ;DISPATCH ON IT ; 8264 =0001 ;(1) INTERRUPT U 1061, 3667,3333,0005,7174,4007,0700,0400,0000,0213 ; 8265 WORK[SV.BR]_[BR], J/PFPI1 ; 8266 =0011 ;(3) BAD DATA FROM MEMORY ; 8267 [BRX]_IO DATA, ;GET THE BAD DATA ; 8268 AD PARITY OK/0, ; DO NOT LOOK AT PARITY U 1063, 3627,3771,0006,4374,4007,0700,0000,0000,0000 ; 8269 J/BADDATA ;SAVE IN AC BLK 7 ; 8270 =0101 ;(5) NXM ERROR U 1065, 3665,4571,1206,4374,4007,0700,0000,0037,0000 ; 8271 [BRX]_[370000] XWD 0, J/HARD ; 8272 =0111 ;(7) NXM & BAD DATA U 1067, 3665,4571,1206,4374,4007,0700,0000,0037,0000 ; 8273 [BRX]_[370000] XWD 0, J/HARD ; 8274 =1000 ;(10) WRITE VIOLATION U 1070, 3632,3333,0005,7174,4007,0700,0400,0000,0213 ; 8275 WORK[SV.BR]_[BR], J/PFMAP ; 8276 =1001 ;[123] (11) 1 ms timer and movsrj U 1071, 3667,3333,0005,7174,4007,0700,0400,0000,0213 ; 8277 WORK[SV.BR]_[BR], J/PFPI1 ; 8278 =1010 ;(12) PAGE NOT VALID U 1072, 3632,3333,0005,7174,4007,0700,0400,0000,0213 ; 8279 WORK[SV.BR]_[BR], J/PFMAP ; 8280 =1011 ;(13) EXEC/USER MISMATCH U 1073, 3632,3333,0005,7174,4007,0700,0400,0000,0213 ; 8281 WORK[SV.BR]_[BR], J/PFMAP ; 8282 = ; 8283 ; 8284 BADDATA: U 3627, 3630,3333,0006,7174,4007,0700,0400,0000,0160 ; 8285 WORK[BADW0]_[BRX] ;SAVE BAD WORD U 3630, 3631,3333,0006,7174,4007,0700,0400,0000,0161 ; 8286 WORK[BADW1]_[BRX] ;AGAIN ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 229-1 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC U 3631, 3665,4571,1206,4374,4007,0700,0000,0036,0000 ; 8287 [BRX]_[360000] XWD 0, J/HARD ; 8288 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 230 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8289 ;WE HAVE SAVED AR, ARX, BR AND BRX. WE MERGE IN HERE FROM MAP ; 8290 ; INSTRUCTION, SAVE THE VMA AND START THE PAGE FAIL WORD. U 3632, 3633,4223,0000,4364,4277,0700,0200,0000,0010 ; 8291 PFMAP: ABORT MEM CYCLE ;CLEAR PAGE FAIL ; 8292 [FLG]_[FLG].OR.#, ;PRESET W AND C TO 1 ; 8293 FLG.W/1, FLG.C/1, ;BITS INVOLVED U 3633, 3634,3551,1313,4374,0007,0700,0000,0002,4000 ; 8294 HOLD RIGHT ;LEAVE RH ALONE U 3634, 2516,4553,0600,4374,4007,0321,0000,0002,0000 ; 8295 TL [BRX], WRITE TEST/1 ;IS THIS A WRITE TEST? ; 8296 =0 [BRX]_[BRX].OR.#, ; 8297 #/10000, U 2516, 2517,3551,0606,4374,0007,0700,0000,0001,0000 ; 8298 HOLD RIGHT ;YES--TURN INTO WRITE REF ; 8299 [BRX]_[BRX].AND.#, ;START PAGE FAIL WORD ; 8300 #/411000, ;SAVE 3 INTERESTING BITS U 2517, 3635,4551,0606,4374,0007,0700,0000,0041,1000 ; 8301 HOLD RIGHT ;SAVE VIRTUAL ADDRESS ; 8302 ;USER ADDR (400000) ; 8303 ;WRITE REF (010000) ; 8304 ;PAGED REF (001000) ; 8305 [BRX]_[BRX].XOR.#, ;FIX BIT 8 U 3635, 3636,6551,0606,4374,0007,0700,0000,0000,1000 ; 8306 #/1000, HOLD RIGHT ; 8307 [BR]_[BRX], ;COPY VIRTUAL ADDRESS U 3636, 2520,3441,0605,4174,4007,0700,2000,0071,0007 ; 8308 SC_7 ;PREPARE TO SHIFT 9 PLACES ; 8309 =0 ; 8310 PF25: [BR]_[BR]*.5, ;RIGHT ADJUST PAGE # ; 8311 STEP SC, ;COUNT SHIFT STEPS U 2520, 2520,3447,0505,4174,4007,0630,2000,0060,0000 ; 8312 J/PF25 ;LOOP FOR 9 ; 8313 [BR]_[BR].AND.# CLR LH, ;MASK TO 9 BITS U 2521, 3637,4251,0505,4374,4007,0700,0000,0000,0777 ; 8314 #/777 ; .. ;;8315 .IF/KLPAGE ;;8316 .IF/KIPAGE ;;8317 TL [EBR], ;KI MODE REFILL? ;;8318 #/40 ;FLAG BIT ;;8319 =0 ;;8320 .ENDIF/KIPAGE ;;8321 READ [BRX], ;USER REF? (KL MODE) ;;8322 SKIP DP0, ; .. ;;8323 J/PF30 ;CONTINUE AT PF30 ; 8324 .ENDIF/KLPAGE ; 8325 .IF/KIPAGE ; 8326 [ARX]_[BR]*.5, ;KI10 MODE REFILL U 3637, 3660,3447,0504,4174,4007,0700,0000,0000,0000 ; 8327 J/KIFILL ;GO HANDLE EASY CASE ; 8328 .ENDIF/KIPAGE ; 8329 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 231 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8330 .IF/KLPAGE ;;8331 ;HERE IN TOPS-20 MODE ;;8332 ;PICK UP CORRECT SECTION POINTER ;;8333 =0 ;;8334 PF30: [ARX]_WORK[PTA.E], ;EXEC MODE ;;8335 SKIP AD.EQ.0, 4T, ;SEE IF VALID ;;8336 J/PF35 ;CONTINUE BELOW ;;8337 [ARX]_WORK[PTA.U], ;USER MODE ;;8338 SKIP AD.EQ.0, 4T ;SEE IF VALID ;;8339 =0 VMA_[ARX]+[BR], ;POINTER VALID ;;8340 VMA PHYSICAL READ, ;START MEMORY ;;8341 J/PF77 ;CONTINUE BELOW ;;8342 [AR]_[UBR]+#, 3T, ;USER MODE ;;8343 #/540, ;OFFSET TO UPT ;;8344 J/PF40 ;GO GET POINTER ;;8345 ;;8346 =0 ;;8347 PF35: VMA_[ARX]+[BR], ;POINTER VALID ;;8348 VMA PHYSICAL READ, ;START MEMORY ;;8349 J/PF77 ;CONTINUE BELOW ;;8350 [AR]_[EBR]+#, 3T, ;EXEC MODE ;;8351 #/540 ;OFFSET TO EPT ;;8352 PF40: VMA_[AR], ;LOAD THE VMA ;;8353 START READ, ;START THE MEMORY CRANKING ;;8354 VMA PHYSICAL ;ABSOLUTE ADDRESS ;;8355 MEM READ, ;WAIT FOR MEMORY ;;8356 [AR]_MEM ;POINT POINTER IN AR ;;8357 ;LOOK AT SECTION POINTER AND DISPATCH ON TYPE ;;8358 =000 ;;8359 PF45: SC_7, ;FETCH SECTION 0 POINTER ;;8360 CALL [SETPTR] ;FIGURE OUT POINTER TYPE ;;8361 SECIMM: TL [AR], ;IMMEDIATE POINTER ;;8362 #/77, ;TEST FOR 12-17 = 0 ;;8363 J/PF50 ;CONTINUE AT PF50 ;;8364 [AR]_[AR]+WORK[SBR], ;SHARED SECTION ;;8365 J/SECSHR ;GO FETCH POINTER FROM SPT ;;8366 [AR]_[AR]+WORK[SBR], ;INDIRECT SECTION POINTER ;;8367 CALL [RDPT] ;GO FETCH SPT ENTRY ;;8368 =111 TL [AR], ;12 TO 17 = 0? ;;8369 #/77 ; .. ;;8370 = ;;8371 =0 PAGE FAIL TRAP ;NO ;;8372 [AR]_[AR]*2, ;FIRST SHIFT ;;8373 STEP SC ;SC WAS LOADED AT PF45 ;;8374 =0*0 ;;8375 PF60: [AR]_[AR]*2, ;CONVERT TO ADDRESS OF ;;8376 STEP SC, ; SECTION TABLE ;;8377 J/PF60 ;;8378 CALL [RDPT] ;READ SECTION TABLE ;;8379 =1*1 J/PF45 ;TRY AGAIN ;;8380 = ;;8381 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 232 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8382 ;STILL .IF/KLPAGE ;;8383 ;HERE FOR SHARED SECTION. AR GETS THE ADDRESS OF PAGE TABLE ;;8384 =0** ;;8385 SECSHR: CALL [RDPT] ;READ WORD FROM SPT ;;8386 TL [AR], #/77 ;TEST FOR BITS 12-17 = 0 ;;8387 ;;8388 ;HERE WITH ADDRESS OF PAGE TABLE IN AR AND SKIP ON ;;8389 ; BITS 12 THRU 17 EQUAL TO ZERO ;;8390 =0 ;;8391 PF50: PAGE FAIL TRAP ;BITS 12-17 .NE. 0 ;;8392 [ARX]_[AR].AND.# CLR LH, ;PAGE NUMBER OF PAGE TABLE ;;8393 #/3777 ;11 BIT PHYSICAL PAGE # ;;8394 .IFNOT/NOCST ;;8395 =0* [AR]_[ARX], ;COPY ADDRESS ;;8396 CALL [UPCST] ;UPDATE CST0 ;;8397 PF70: [AR]_[AR].OR.WORK[PUR] ;PUT IN NEW AGE AND ;;8398 ; USE BITS ;;8399 .IFNOT/INHCST ;;8400 =0** START NO TEST WRITE, ;START MEMORY WRITE ;;8401 CALL [IBPX] ;GO STORE IN MEMORY ;;8402 .ENDIF/INHCST ;;8403 .IF/INHCST ;;8404 =0** SKIP NO CST, ;SEE IF A CST ;;8405 CALL [WRCST] ;AND GO WRITE IN MEMORY ;;8406 .ENDIF/INHCST ;;8407 SC_7 ;THIS CAN BE BUMMED ;;8408 =0 ;;8409 PF75: [ARX]_[ARX]*2, ;CONVERT PAGE NUMBER TO ;;8410 STEP SC, ; PAGE ADDRESS ;;8411 J/PF75 ;LOOP OVER 9 STEPS ;;8412 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 233 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8413 ;STILL .IF/KLPAGE ;;8414 ;WE NOW HAVE THE ADDRESS OF THE PAGE TABLE ENTRY. GO ;;8415 ; READ IT AND START ANALYSIS ;;8416 ;;8417 ;IF WE ARE HERE FOR THE FIRST TIME FOR THE USER OR EXEC SAVE THE ;;8418 ; ADDRESS OF THE PAGE TABLE IN PTA.E OR PTA.U SO THAT WE DO NOT ;;8419 ; HAVE TO DO THE SECTION LOOKUP EVERY TIME. ;;8420 READ [BRX], SKIP DP0 ;USER OR EXEC REF? ;;8421 =000 [AR]_WORK[PTA.E], ;EXEC MODE ;;8422 SKIP AD.EQ.0, 4T, ;SEE IF SET YET ;;8423 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ;;8424 [AR]_WORK[PTA.U], ;USER MODE ;;8425 SKIP AD.EQ.0, 4T, ;SEE IF SET YET ;;8426 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ;;8427 WORK[PTA.E]_[ARX], ;SAVE FOR EXEC ;;8428 J/PF76 ;CONTINUE BELOW ;;8429 WORK[PTA.U]_[ARX], ;SAVE FOR USER ;;8430 J/PF76 ;CONTINUE BELOW ;;8431 =111 ;;8432 PF76: VMA_[ARX]+[BR], ;READ PAGE POINTER ;;8433 START READ, ;;8434 VMA PHYSICAL ;;8435 = ;;8436 =00 ;;8437 PF77: MEM READ, ;START ANALYSIS OF POINTER ;;8438 [AR]_MEM, ;;8439 CALL [SETPTR] ;;8440 PTRIMM: TL [AR], ;IMMEDIATE POINTER ;;8441 #/77, ;CHECK FOR BITS 0-5 ;;8442 J/PF80 ;GO TO PF80 ;;8443 [AR]_[AR]+WORK[SBR], ;SHARED POINTER ;;8444 J/PTRSHR ;GO TO READ SPT ;;8445 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 234 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8446 ;STILL .IF/KLPAGE ;;8447 ;INDIRECT POINTER. CHANGE PAGE # AND LOOK FOR PAGE TABLE ;;8448 PTRIND: [BR]_[AR] SWAP, ;PUT IN RIGHT HALF ;;8449 SKIP/-1 MS ;DID CLOCK GO OFF ;;8450 =0 WORK[SV.AR1]_[AR], ;YES--UPDATE CLOCK ;;8451 J/PFTICK ; .. ;;8452 [BR]_[BR].AND.# CLR LH, ;UPDATE PAGE # AND RESTART ;;8453 #/777, ;MASK FOR PAGE # ;;8454 SKIP IRPT ;SEE IF THIS IS A LOOP ;;8455 =0 [AR]_[AR].AND.#, ;CHANGE INDIRECT POINTER ;;8456 #/277000, ; INTO SHARE POINTER ;;8457 HOLD RIGHT, ; .. ;;8458 J/PF45 ;GO BACK AND TRY AGAIN ;;8459 PAGE FAIL TRAP ;POINTER LOOP ;;8460 ;;8461 =0** ;;8462 PTRSHR: CALL [RDPT] ;GO LOOK AT POINTER ;;8463 TL [AR], ;BITS 12-17 .EQ. 0? ;;8464 #/77 ;;8465 ;;8466 ;HERE WITH FINAL POINTER. SKIP IF 12-17 NOT EQUAL TO ZERO ;;8467 .IFNOT/NOCST ;;8468 =00 ;;8469 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ;;8470 [ARX]_[AR].AND.# CLR LH, ;SAVE PHYSICAL PAGE # ;;8471 #/3777, ;MASK TO 13 BITS ;;8472 CALL [UPCST] ;UPDATE CST0 ;;8473 =11 ;;8474 .IF/NOCST ;;8475 =0 ;;8476 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ;;8477 .ENDIF/NOCST ;;8478 ;;8479 ;HERE WE HAVE CST ENTRY IN AR, PAGE FAIL WORD IN BRX. GO LOOK ;;8480 ; AT WRITABLE AND WRITTEN BITS ;;8481 PF90: [BRX]_[BRX].OR.#, ;TRANSLATION IS VALID ;;8482 #/100000, HOLD RIGHT ; .. ;;8483 TL [FLG], FLG.W/1 ;IS THIS PAGE WRITABLE? ;;8484 =0 [BRX]_[BRX].OR.#, ;YES--INDICATE THAT IN PFW ;;8485 #/020000, ;;8486 J/PF100 ;NOT WRITE VIOLATION ;;8487 TL [BRX], ;IS THIS A WRITE REF? ;;8488 WRITE TEST/1, WRITE CYCLE/1 ;;8489 =0 PAGE FAIL TRAP ;WRITE VIOLATION ;;8490 PF107: ;;8491 .IFNOT/NOCST ;;8492 [AR]_[AR].OR.WORK[PUR], ;PUT IN NEW AGE ;;8493 J/PF110 ;GO TO STORE CST ENTRY ;;8494 .ENDIF/NOCST ;;8495 .IF/NOCST ;;8496 PFDONE: TR [FLG], ;;8497 #/400000, ;;8498 J/PF140 ;;8499 .ENDIF/NOCST ;;8500 ;;8501 =0* ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 234-1 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8502 PFTICK: [AR]_WORK[TIME1], ;UPDATE TIMER ;;8503 SPEC/CLRCLK, CALL [TOCK] ;;8504 [AR]_WORK[SV.AR1], ;RESTORE AR ;;8505 J/PTRIND ;GO TRY AGAIN ;;8506 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 235 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8507 ;STILL .IF/KLPAGE ;;8508 ;HERE IF PAGE IS WRITABLE ;;8509 PF100: TL [BRX], WRITE CYCLE/1 ;IS THIS A WRITE REF? ;;8510 =0 [AR]_[AR].OR.#, ;YES--SET WRITTEN BIT ;;8511 #/1, ;;8512 HOLD LEFT, ;;8513 J/PF105 ;;8514 TR [AR], ;NOT WRITE, ALREADY WRITTEN? ;;8515 #/1 ;;8516 =0 ;;8517 PF105: [BRX]_[BRX].OR.#, ;WRITTEN SET BIT ;;8518 #/040000, ;MARK PAGE AS ;;8519 HOLD RIGHT, ;WRITABLE ;;8520 J/PF107 ;STORE CST WORD ;;8521 [FLG]_[FLG].AND.NOT.#, ;NOT WRITTEN, CAUSE TRAP ON ;;8522 FLG.W/1, ; WRITE ATTEMPT ;;8523 HOLD RIGHT, ;ONLY CLEAR LH ;;8524 J/PF107 ;;8525 .IFNOT/NOCST ;;8526 =0** ;;8527 PF110: ;;8528 .IFNOT/INHCST ;;8529 START NO TEST WRITE, ;;8530 CALL [IBPX] ;STORE CST ENTRY ;;8531 .ENDIF/INHCST ;;8532 .IF/INHCST ;;8533 SKIP NO CST, ;;8534 CALL [WRCST] ;;8535 .ENDIF/INHCST ;;8536 ; 8537 .ENDIF/KLPAGE ; 8538 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 236 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8539 ; 8540 ;HERE WHEN WE HAVE FIGURED OUT PHYSICAL ADDRESS (IN ARX) AND FLAGS ; 8541 ; (IN BRX) RELOAD PAGE TABLE. ; 8542 PFDONE: TR [FLG], ;MAP INSTRUCTION? U 3640, 2522,4553,1300,4374,4007,0331,0000,0040,0000 ; 8543 #/400000 ; 8544 .ENDIF/NOCST ; 8545 =0 ; 8546 PF140: [AR]_[ARX], ;GET PHYSCIAL PAGE # ; 8547 SC_7, ;PREPARE TO CONVERT TO U 2522, 2524,3441,0403,4174,4007,0700,2000,0071,0007 ; 8548 J/PF130 ; WORD ADDRESS ; 8549 [AR]_WORK[SV.VMA], ;RESTORE VMA U 2523, 3645,3771,0003,7274,4007,0701,0000,0000,0210 ; 8550 J/PF120 ; 8551 =0 ; 8552 PF130: [AR]_[AR]*2, ;CONVERT TO WORD # ; 8553 STEP SC, U 2524, 2524,3445,0303,4174,4007,0630,2000,0060,0000 ; 8554 J/PF130 ; 8555 [AR]_[AR].AND.#, ;JUST ADDRESS BITS ; 8556 #/3, U 2525, 3641,4551,0303,4374,0007,0700,0000,0000,0003 ; 8557 HOLD RIGHT U 3641, 3642,4221,0013,4170,4007,0700,0000,0000,0000 ; 8558 END MAP ;CLEAR MAP FLAGS ; 8559 [BRX]_[BRX].OR.#, ;TURN ON THE TRANSLATION ; 8560 #/100000, ; VALID BIT U 3642, 3643,3551,0606,4374,0007,0700,0000,0010,0000 ; 8561 HOLD RIGHT ; IN LEFT HALF ONLY U 3643, 2526,4553,1300,4374,4007,0321,0000,0000,4000 ; 8562 TL [FLG], FLG.C/1 ;CACHE BIT SET? ; 8563 =0 [BRX]_[BRX].OR.#, ;YES--SET IN MAP WORD U 2526, 2527,3551,0606,4374,0007,0700,0000,0000,2000 ; 8564 #/002000, HOLD RIGHT ; .. ; 8565 [BRX]_[BRX].AND.#, ;PRESERVE WORD # U 2527, 3644,4551,0606,4370,4007,0700,0000,0000,0777 ; 8566 #/777, HOLD LEFT ; IN PAGE FAIL WORD ; 8567 [AR]_[AR].OR.[BRX], ;COMPLETE MAP INSTRUCTION U 3644, 1500,3111,0603,4174,4003,7700,0200,0003,0001 ; 8568 EXIT ; 8569 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 237 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC U 3645, 3646,3441,0305,4174,4007,0700,0000,0000,0000 ; 8570 PF120: [BR]_[AR] ;COPY PAGE FAIL WORD ; 8571 [BR]_[AR].AND.NOT.#, ;CLEAR BITS WHICH START A CYCLE ; 8572 READ CYCLE/1, ; .. ; 8573 WRITE CYCLE/1, ; .. ; 8574 WRITE TEST/1, ; .. U 3646, 3647,5551,0305,4374,0007,0700,0000,0007,0000 ; 8575 HOLD RIGHT ;JUST DO LEFT HALF ; 8576 VMA_[BR], 3T, ;RESTORE VMA U 3647, 3650,3443,0500,4174,4007,0701,0200,0000,0030 ; 8577 DP FUNC/1 ;SET USER ACCORDING TO WHAT IT WAS ; 8578 [ARX]_[ARX].AND.# CLR LH, ;JUST KEEP PAGE # U 3650, 3651,4251,0404,4374,4007,0700,0000,0000,3777 ; 8579 #/3777 ; .. U 3651, 3652,3551,0406,4374,4007,0700,0000,0040,0000 ; 8580 [BRX]_[ARX].OR.#, #/400000 ;SET VALID BITS U 3652, 2530,4553,1300,4374,4007,0321,0000,0002,0000 ; 8581 TL [FLG], FLG.W/1 ;WANT WRITE SET? U 2530, 2531,3551,0606,4374,4007,0700,0000,0004,0000 ; 8582 =0 [BRX]_[BRX].OR.#, #/040000 ;SET WRITE BIT ; 8583 TL [FLG], FLG.C/1, ;WANT CACHE SET? U 2531, 2532,4553,1300,4374,4147,0321,0000,0000,4000 ; 8584 LOAD PAGE TABLE ;LOAD PAGE TABLE ON NEXT ; 8585 ; MICRO INSTRUCTION ; 8586 =0 [BRX]_[BRX].OR.#, ;SET CACHE BIT U 2532, 3653,3551,0606,4374,4007,0700,0000,0002,0000 ; 8587 #/020000, J/PF125 ;CACHE BIT U 2533, 3653,3333,0006,4174,4007,0700,0000,0000,0000 ; 8588 READ [BRX] ;LOAD PAGE TABLE U 3653, 3654,3771,0004,7274,4007,0701,0000,0000,0212 ; 8589 PF125: [ARX]_WORK[SV.ARX] U 3654, 3655,3771,0005,7274,4007,0701,0000,0000,0213 ; 8590 [BR]_WORK[SV.BR] U 3655, 3656,3771,0006,7274,4007,0701,0000,0000,0214 ; 8591 [BRX]_WORK[SV.BRX] ; 8592 VMA_[AR], ;MAKE MEM REQUEST ; 8593 DP FUNC/1, 3T, ;FROM DATA PATH U 3656, 3657,3443,0300,4174,4007,0701,0200,0000,0032 ; 8594 WAIT/1 ;WAIT FOR PREVIOUS CYCLE TO ; 8595 ; COMPLETE. (NEED THIS TO ; 8596 ; START ANOTHER CYCLE) ; 8597 [AR]_WORK[SV.AR], U 3657, 0000,3771,0003,7274,4004,1701,0000,0000,0211 ; 8598 RETURN [0] ; 8599 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 238 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8600 .IF/KLPAGE ;;8601 .IFNOT/NOCST ;;8602 ;SUBROUTINE TO START CST UPDATE ;;8603 ;CALL WITH: ;;8604 ; AR/ PHYSICAL PAGE NUMBER ;;8605 ;RETURN 2 WITH ENTRY IN AR, PAGE FAIL IF AGE TOO SMALL ;;8606 .IFNOT/INHCST ;;8607 =0** ;;8608 UPCST: [AR]_[AR]+WORK[CBR], ;ADDRESS OF CST0 ENTRY ;;8609 CALL [RDPT] ;READ OLD VALUE ;;8610 TL [AR], ;0 - 5 = 0? ;;8611 #/770000 ; .. ;;8612 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD ;;8613 RETURN [2] ;AGE IS NOT ZERO ;;8614 PAGE FAIL TRAP ;AGE TOO SMALL ;;8615 .ENDIF/INHCST ;;8616 .IF/INHCST ;;8617 UPCST: SKIP NO CST ;SEE IF A CST IS PRESENT ;;8618 =0*0 [AR]_[AR]+WORK[CBR], ;YES, ADDRESS OF CST0 ENTRY ;;8619 CALL [RDPT] ;READ OLD VALUE ;;8620 [AR]_0,RETURN [2] ;NO CST, RETURN ;;8621 TL [AR], ;CHECK AGE FIELD ;;8622 #/770000 ;;8623 = ;;8624 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD ;;8625 RETURN [2] ;AGE IS NOT ZERO ;;8626 PAGE FAIL TRAP ;AGE TOO SMALL ;;8627 ;;8628 =0 ;;8629 WRCST: START NO TEST WRITE, ;;8630 J/IBPX ;;8631 RETURN [4] ;;8632 .ENDIF/INHCST ;;8633 .ENDIF/NOCST ;;8634 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 239 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8635 ;STILL .IF/KLPAGE ;;8636 ;SUBROUTINE TO LOOK AT PAGE POINTER ;;8637 ;CALL WITH POINTER IN AR ;;8638 ;RETURNS 1 IF TYPE 1 ;;8639 ;RETURNS 2 IF TYPE 2 ;;8640 ;RETURNS 3 IF TYPE 3 ;;8641 ;GOES TO PFT IF TYPE 0 OR 4 THRU 7 ;;8642 SETPTR: [ARX]_[AR].OR.#, ;AND C AND W BITS ;;8643 #/753777 ; OF ALL POINTERS ;;8644 [FLG]_[FLG].AND.[ARX], ; .. ;;8645 HOLD RIGHT ;KEEP IN LH OF FLG ;;8646 READ [AR], ;TYPE 4,5,6 OR 7? ;;8647 SKIP DP0 ; .. ;;8648 =0 TL [AR], ;HERE WE TEST FOR TYPE ;;8649 #/300000, ; ZERO POINTER ;;8650 J/STPTR1 ;CHECK AT STPTR1 ;;8651 PAGE FAIL TRAP ;BAD TYPE ;;8652 =0 ;;8653 STPTR1: TL [AR], ;NOT ZERO ;;8654 #/100000, ;SEPERATE TYPE 2 ;;8655 J/STPTR2 ; .. ;;8656 PAGE FAIL TRAP ;TYPE 0 ;;8657 ;;8658 =0 ;;8659 STPTR2: TL [AR], ;SEPERATE TYPE 1 ;;8660 #/200000, ; AND 3 ;;8661 J/STPTR3 ; .. ;;8662 RETURN [2] ;TYPE 2 ;;8663 ;;8664 =0 ;;8665 STPTR3: RETURN [3] ;TYPE 3 ;;8666 RETURN [1] ;TYPE 1 ;;8667 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 240 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ;;8668 ;STILL .IF/KLPAGE ;;8669 ;SUBROUTINE TO FETCH A PAGE POINTER OR CST ENTRY ;;8670 ;CALL WITH ADDRESS IN AR ;;8671 ;RETURN 4 WITH WORD IN AR ;;8672 ; ;;8673 RDPT: VMA_[AR], ;LOAD THE VMA ;;8674 START READ, ;START MEM CYCLE ;;8675 VMA PHYSICAL, ;ABSOLUTE ADDRESS ;;8676 SKIP IRPT ;CHECK FOR INTERRUPTS ;;8677 =0 MEM READ, ;NO INTERRUPTS ;;8678 [AR]_MEM, ;PUT THE DATA INTO AR ;;8679 RETURN [4] ;AND RETURN ;;8680 PAGE FAIL TRAP ;INTERRUPT ;;8681 ;;8682 ;;8683 ;SUBROUTINE TO SEE IF WE SHOULD REMEMBER AN EXEC SECTION PTR ;;8684 ;CALL WITH SKIP ON ADR.EQ.0 ;;8685 ;RETURNS 2 IF WE SHOULD STORE AND 7 IF WE SHOULD NOT ;;8686 ; ;;8687 =0 ;;8688 SHDREM: RETURN [7] ;INDIRECT PTR ;;8689 [AR]_.NOT.[FLG] ;FLIP BITS ;;8690 TL [AR], FLG.W/1, FLG.C/1 ;BOTH BITS SET ;;8691 =0 RETURN [7] ;NO--DON'T STORE ;;8692 RETURN [2] ;STORE ;;8693 ; 8694 .ENDIF/KLPAGE ; 8695 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 241 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8696 .IF/KIPAGE ; 8697 ;HERE IN KI10 MODE ; 8698 ;BR CONTAINS PAGE # AND ARX CONTAINS PAGE #/2 ; 8699 ; 8700 KIFILL: READ [BRX], ;USER REF? U 3660, 2534,3333,0006,4174,4007,0520,0000,0000,0000 ; 8701 SKIP DP0 ; .. ; 8702 =0 [BR]-#, ;EXEC--LESS THAN 340? ; 8703 #/340, ; .. ; 8704 SKIP DP18, 4T, ; .. U 2534, 2536,1553,0500,4374,4007,0532,4000,0000,0340 ; 8705 J/KIF10 ;FOLLOW EXEC PATH ; 8706 KIUPT: [ARX]_[ARX]+[UBR], ;POINTER TO PAGE MAP ENTRY ; 8707 LOAD VMA, ;PUT ADDRESS IN VMA ; 8708 VMA PHYSICAL, ;ABSOLUTE ADDRESS ; 8709 START READ, ;FETCH UPT WORD U 2535, 3661,0111,1104,4174,4007,0700,0200,0024,1016 ; 8710 J/KIF30 ;JOIN COMMON CODE ; 8711 =0 ; 8712 KIF10: [BR]-#, ;EXEC ADDRESS .GE. 340 ; 8713 #/400, ; SEE IF .GT. 400 ; 8714 SKIP DP18, 4T, ; .. U 2536, 2540,1553,0500,4374,4007,0532,4000,0000,0400 ; 8715 J/KIEPT ;LOOK AT KIF20 ; 8716 [ARX]_[ARX]+#, 3T, ;EXEC ADDRESS .LT. 340 ; 8717 #/600, ;IN EBR+600 U 2537, 2540,0551,0404,4374,4007,0701,0000,0000,0600 ; 8718 J/KIEPT ;JOIN COMMON CODE ; 8719 ; 8720 =0 ; 8721 KIEPT: [ARX]_[ARX]+[EBR], ;ADD OFFSET TO ; 8722 LOAD VMA, ; EPT ; 8723 START READ, ;START FETCH ; 8724 VMA PHYSICAL, ;ABSOLUTE ADDRESS U 2540, 3661,0111,1004,4174,4007,0700,0200,0024,1016 ; 8725 J/KIF30 ;GO GET POINTER ; 8726 [ARX]_[ARX]+#, ;PER PROCESS PAGE ; 8727 #/220, 3T, ; IS IN UPT + 400 U 2541, 2535,0551,0404,4374,4007,0701,0000,0000,0220 ; 8728 J/KIUPT ;JOIN COMMON CODE ; 8729 KIF30: MEM READ, ;WAIT FOR DATA U 3661, 3662,3771,0004,4365,5007,0700,0200,0000,0002 ; 8730 [ARX]_MEM ;PLACE IT IN ARX ; 8731 TR [BR], ;SEE IF EVEN OR ODD U 3662, 2542,4553,0500,4374,4007,0331,0000,0000,0001 ; 8732 #/1 ; .. ; 8733 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 242 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8734 ;STILL .IF/KIPAGE ; 8735 =0 ; 8736 KIF40: READ [ARX], ;ODD ; 8737 SKIP DP18, ;SEE IF VALID U 2542, 2544,3333,0004,4174,4007,0530,0000,0000,0000 ; 8738 J/KIF50 ;JOIN COMMON CODE ; 8739 [ARX]_[ARX] SWAP, ;EVEN--FLIP AROUND U 2543, 2542,3770,0404,4344,4007,0700,0000,0000,0000 ; 8740 J/KIF40 ; AND CONTINUE ; 8741 ; 8742 .ENDIF/KIPAGE ; 8743 =0 U 2544, 2560,4553,1300,4374,4007,0321,0000,0001,0000 ; 8744 KIF50: PAGE FAIL TRAP ; 8745 ;AT THIS POINT WE HAVE THE PAGE MAP ENTRY IN RH OF AR ; 8746 [FLG]_[FLG].AND.NOT.#, ;CLEAR W AND C U 2545, 3663,5551,1313,4374,4007,0700,0000,0002,4000 ; 8747 FLG.W/1, FLG.C/1 ; FLAGS U 3663, 2546,4553,0400,4374,4007,0331,0000,0002,0000 ; 8748 TR [ARX], #/020000 ;CACHE ENABLED? ; 8749 =0 [FLG]_[FLG].OR.#, ;SET CACHE BITS U 2546, 2547,3551,1313,4374,0007,0700,0000,0000,4000 ; 8750 FLG.C/1, HOLD RIGHT ; .. U 2547, 2550,4553,0400,4374,4007,0331,0000,0004,0000 ; 8751 TR [ARX], #/040000 ;DO NOT CACHE ; 8752 ;SEE IF CACHE BIT SET ; 8753 =0 [BRX]_[BRX].OR.#, ;COPY BITS TO BRX ; 8754 #/020000, U 2550, 2551,3551,0606,4374,0007,0700,0000,0002,0000 ; 8755 HOLD RIGHT ; 8756 TR [ARX], ; .. U 2551, 2552,4553,0400,4374,4007,0331,0000,0010,0000 ; 8757 #/100000 ; 8758 =0 [FLG]_[FLG].OR.#, ;SAVE W ; 8759 FLG.W/1, ; .. ; 8760 HOLD RIGHT, ; .. U 2552, 3664,3551,1313,4374,0007,0700,0000,0002,0000 ; 8761 J/KIF90 ;ALL DONE ; 8762 TL [BRX], ;W=0, WRITE REF? U 2553, 2554,4553,0600,4374,4007,0321,0000,0001,0000 ; 8763 WRITE CYCLE/1 ; 8764 =0 ; 8765 KIF80: [BRX]_[BRX].OR.#, ;WRITE FAILURE ; 8766 #/100000, HOLD RIGHT, ;INDICATE THAT ACCESS WAS ON U 2554, 2544,3551,0606,4374,0007,0700,0000,0010,0000 ; 8767 J/KIF50 ;GO PAGE FAIL U 2555, 3640,4443,0000,4174,4007,0700,0000,0000,0000 ; 8768 J/PFDONE ;ALL DONE ; 8769 ; 8770 KIF90: [BRX]_[BRX].OR.#, ;PAGE IS WRITABLE ; 8771 #/40000, ;TURN ON IN BRX U 3664, 3640,3551,0606,4374,4007,0700,0000,0004,0000 ; 8772 J/PFDONE ;ALL SET ; 8773 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 243 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8774 ;HERE ON HARD PAGE FAILURES U 3665, 2556,3333,0005,7174,4007,0700,0400,0000,0213 ; 8775 HARD: WORK[SV.BR]_[BR] ;SAVE BR (CLEANUP MAY NEED IT) ; 8776 =0 [BR]_VMA, ;BUILD PAGE FAIL WORD U 2556, 3671,3771,0005,4354,4007,0700,0010,0000,0000 ; 8777 CALL [ABORT] ;CLEAR ERROR ; 8778 [BR]_[BR].AND.#, ;SAVE THE FLAGS ; 8779 #/401237, ; .. U 2557, 3666,4551,0505,4374,0007,0700,0000,0040,1237 ; 8780 HOLD RIGHT ; .. ; 8781 [BRX]_[BRX].OR.[BR], ;COMPLETE PAGE FAIL WORD U 3666, 2544,3111,0506,4174,4007,0700,0000,0000,0000 ; 8782 J/KIF50 ;GO TRAP ; 8783 U 3667, 1114,4443,0000,4174,4007,0370,0000,0000,0000 ; 8784 PFPI1: SKIP IRPT ;TIMER TRAP? ; 8785 =00 ; 8786 [AR]_WORK[TIME1], ;YES--GET LOW WORD ; 8787 SPEC/CLRCLK, ;CLEAR CLOCK FLAG U 1114, 3462,3771,0003,7274,4117,0701,0010,0000,0301 ; 8788 CALL [TOCK] ;DO THE UPDATE U 1115, 2561,4443,0000,4174,4007,0700,0000,0000,0000 ; 8789 J/PFT1 ;EXTERNAL INTERRUPT U 1116, 3670,4223,0000,4364,4277,0700,0200,0000,0010 ; 8790 ABORT MEM CYCLE ;CLEAR 1MS FLAGS ; 8791 = ; 8792 PFPI2: [AR]_WORK[SV.VMA], ;RESTORE VMA U 3670, 3653,3771,0003,7274,4007,0701,0000,0000,0210 ; 8793 J/PF125 ; 8794 ; 8795 U 3671, 0001,4223,0000,4364,4274,1700,0200,0000,0010 ; 8796 ABORT: ABORT MEM CYCLE, RETURN [1] ; 8797 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 244 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8798 ;HERE ON PAGE FAIL TRAP ; 8799 =0 U 2560, 0104,4751,1217,4374,4007,0700,0000,0000,0100 ; 8800 PFT: HALT [IOPF] ;IO PAGE FAILURE ; 8801 PFT1: [AR]_WORK[SV.VMA], U 2561, 2562,3771,0003,7274,4007,0611,0000,0000,0210 ; 8802 SKIP/TRAP CYCLE ;SEE IF TRAP CYCLE ; 8803 =0 TL [AR], FETCH/1, ;IS THIS AN INSTRUCTION FETCH U 2562, 2564,4553,0300,4374,4007,0321,0000,0010,0000 ; 8804 J/PFT1A ;GO LOOK BELOW U 2563, 3672,3771,0003,7274,4007,0701,0000,0000,0425 ; 8805 [AR]_WORK[TRAPPC] ;RESTORE PC U 3672, 2566,3333,0003,4174,4467,0700,0000,0000,0004 ; 8806 READ [AR], LOAD FLAGS, J/CLDISP ; 8807 =0 U 2564, 1100,4443,0000,4174,4007,0700,0000,0000,0000 ; 8808 PFT1A: J/CLEANED ;YES--NO PC TO BACK UP U 2565, 2566,1111,0701,4170,4007,0700,4000,0000,0000 ; 8809 FIXPC: [PC]_[PC]-1, HOLD LEFT ;DATA FAILURE--BACKUP PC ; 8810 =0 U 2566, 1100,3333,0013,4174,4003,5701,0000,0000,0000 ; 8811 CLDISP: CLEANUP DISP ;GO CLEANUP AFTER PAGE FAIL ; 8812 =0000 ; 8813 CLEANUP: ; 8814 CLEANED: ;(0) NORMAL CASE ; 8815 END STATE, SKIP IRPT, ;NO MORE CLEANUP NEEDED U 1100, 2570,4221,0013,4170,4007,0370,0000,0000,0000 ; 8816 J/PFT2 ;HANDLE PAGE FAIL OR INTERRUPT ; 8817 [AR]_WORK[SV.ARX], ;(1) BLT U 1101, 3052,3771,0003,7274,4007,0701,0000,0000,0212 ; 8818 J/BLT-CLEANUP ; 8819 [PC]_[PC]+1, ;(2) MAP U 1102, 3675,0111,0701,4174,4007,0700,0000,0000,0000 ; 8820 J/MAPDON ; 8821 STATE_[EDIT-SRC], ;(3) SRC IN STRING MOVE U 1103, 3367,3771,0013,4370,4007,0700,0000,0000,0011 ; 8822 J/STRPF ; 8823 STATE_[EDIT-DST], ;(4) DST IN STRING MOVE U 1104, 3367,3771,0013,4370,4007,0700,0000,0000,0012 ; 8824 J/STRPF ; 8825 STATE_[SRC], ;(5) SRC+DST IN STRING MOVE U 1105, 2272,3771,0013,4370,4007,0700,0000,0000,0003 ; 8826 J/BACKD ; 8827 STATE_[EDIT-DST], ;(6) FILL IN MOVSRJ U 1106, 3376,3771,0013,4370,4007,0700,0000,0000,0012 ; 8828 J/STRPF4 ; 8829 STATE_[EDIT-SRC], ;(7) DEC TO BIN U 1107, 3373,3771,0013,4370,4007,0700,0000,0000,0011 ; 8830 J/PFDBIN ; 8831 STATE_[EDIT-SRC], ;(10) SRC+DST IN COMP U 1110, 3365,3771,0013,4370,4007,0700,0000,0000,0011 ; 8832 J/CMSDST U 1111, 2270,4221,0013,4170,4007,0700,0000,0000,0000 ; 8833 END STATE, J/BACKS ;(11) EDIT SRC FAIL U 1112, 2272,4221,0013,4170,4007,0700,0000,0000,0000 ; 8834 END STATE, J/BACKD ;(12) EDIT DST FAIL ; 8835 STATE_[EDIT-SRC], ;(13) SRC+DST IN EDIT U 1113, 2272,3771,0013,4370,4007,0700,0000,0000,0011 ; 8836 J/BACKD ; 8837 = ; 8838 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 245 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8839 =0 ; 8840 PFT2: [AR]_[UBR]+#, ;PREPARE TO STORE PFW ; 8841 #/500, 3T, U 2570, 3673,0551,1103,4374,4007,0701,0000,0000,0500 ; 8842 J/PFT10 U 2571, 0770,3551,1313,4374,0007,0700,0000,0001,0000 ; 8843 PFT3: TAKE INTERRUPT ;PROCESS INTERRUPT ; 8844 PFT10: VMA_[AR], ;WHERE TO STORE PFW U 3673, 2572,3443,0300,4174,4007,0700,0200,0021,1016 ; 8845 VMA PHYSICAL WRITE ; 8846 =0 MEM WRITE, ;STORE PFW ; 8847 MEM_[BRX], U 2572, 3677,3333,0006,4175,5007,0701,0210,0000,0002 ; 8848 CALL [NEXTAR] ;ADVANCE POINTER TO ; 8849 ;PREPARE TO STORE PC ;;8850 .IF/KLPAGE ;;8851 .IF/KIPAGE ;;8852 TL [EBR], #/400000 ;KL PAGING? ;;8853 =0 ;;8854 .ENDIF/KIPAGE ;;8855 [BR]_FLAGS,J/EAPF ;YES--DO EXTENDED THING ; 8856 .ENDIF/KLPAGE ; 8857 ; 8858 .IF/KIPAGE U 2573, 3674,3741,0105,4074,4007,0700,0000,0000,0000 ; 8859 [BR]_PC WITH FLAGS ;GET OLD PC ; 8860 MEM WRITE, ;STORE OLD PC ; 8861 MEM_[BR], U 3674, 3676,3333,0005,4175,5007,0701,0200,0000,0002 ; 8862 J/EAPF1 ; 8863 .ENDIF/KIPAGE ; 8864 ; 8865 MAPDON: END STATE, ;CLEAR MAP BIT U 3675, 2574,4221,0013,4170,4007,0370,0000,0000,0000 ; 8866 SKIP IRPT ;ANY INTERRUPT? ; 8867 =0 [AR]_[BRX], ;RETURN PAGE FAIL WORD U 2574, 1500,3441,0603,4174,4003,7700,0200,0003,0001 ; 8868 EXIT U 2575, 2571,1111,0701,4174,4007,0700,4000,0000,0000 ; 8869 [PC]_[PC]-1, J/PFT3 ;INTERRUPTED OUT OF MAP ; 8870 ; RETRY INSTRUCTION ; 8871 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 246 ; PAGEF.MIC[7,3] 12:15 10-APR-1985 PAGE FAIL REFIL LOGIC ; 8872 ;;8873 .IF/KLPAGE ;;8874 =0 ;;8875 EAPF: MEM WRITE, MEM_[BR], ;STORE FLAGS ;;8876 CALL [NEXTAR] ;STORE PC WORD ;;8877 MEM WRITE, MEM_[PC] ; .. ; 8878 .ENDIF/KLPAGE ; 8879 ; 8880 EAPF1: [AR]_[AR]+1, ; 8881 VMA PHYSICAL READ, U 3676, 2626,0111,0703,4174,4007,0700,0200,0024,1016 ; 8882 J/GOEXEC ; 8883 U 3677, 0001,0111,0703,4170,4004,1700,0200,0023,1016 ; 8884 NEXTAR: NEXT [AR] PHYSICAL WRITE, RETURN [1] ; 8885 ; Number of microwords used: ; D words= 512 ; U words= 1955, Highest= 2047 END ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 247 ; Cross Reference Listing (U) A 644 # AR 648 # 2402 2440 2470 2471 2534 2582 2590 2729 2731 2734 2737 2740 2743 2827 2837 2852 2869 2879 2889 2899 2930 2940 2950 2985 2997 3004 3008 3018 3019 3021 3023 3024 3032 3055 3056 3282 3287 3289 3301 3304 3307 3312 3313 3383 3400 3402 3467 3470 3538 3539 3545 3565 3592 3607 3643 3654 3666 3720 3743 3748 3783 3827 3831 3840 3842 4003 4008 4038 4073 4087 4103 4114 4117 4120 4134 4161 4162 4167 4184 4200 4220 4332 4341 4346 4356 4362 4381 4385 4403 4431 4435 4437 4438 4457 4489 4492 4495 4509 4534 4551 4552 4557 4562 4570 4572 4574 4645 4655 4657 4662 4663 4708 4713 4723 4727 4765 4769 4773 4777 4953 4966 5051 5054 5066 5069 5075 5081 5116 5191 5194 5296 5302 5306 5307 5337 5343 5362 5368 5369 5370 5371 5380 5385 5405 5406 5418 5420 5429 5430 5450 5455 5456 5462 5497 5501 5503 5506 5509 5513 5515 5517 5519 5520 5521 5522 5528 5530 5531 5540 5545 5561 5587 5595 5600 5602 5646 5659 5678 5687 5691 5706 5720 5722 5724 5730 5757 5764 5767 5779 5782 5790 5792 5796 5801 5803 5819 5824 5827 5849 5852 5853 5857 5975 5979 5983 5990 6001 6010 6025 6045 6049 6062 6065 6091 6175 6182 6199 6221 6235 6262 6273 6274 6275 6288 6322 6352 6363 6401 6416 6444 6449 6478 6479 6480 6481 6483 6484 6487 6492 6541 6562 6569 6570 6596 6634 6646 6647 6654 6674 6677 6680 6684 6685 6687 6691 6693 6747 6748 6753 6754 6761 6764 6768 6837 6859 6865 6884 6902 6906 6909 6910 6911 6912 6934 6959 6960 6964 6970 6971 6975 7045 7051 7074 7076 7078 7080 7083 7085 7087 7129 7136 7147 7151 7158 7162 7186 7192 7194 7199 7215 7234 7297 7378 7380 7382 7384 7386 7388 7390 7392 7394 7416 7422 7484 7494 7500 7503 7504 7521 7529 7579 7590 7603 7605 7631 7636 7663 7666 7694 7712 7713 7772 7869 7877 7908 8238 8248 8552 8555 8570 8571 8592 8803 8844 ARX 649 # 2502 2784 2785 3723 3725 3738 3767 4100 4112 4121 4122 4139 4142 4144 4166 4186 4202 4222 4225 4245 4374 4402 4454 4480 4481 4560 4652 4653 4661 4730 4920 4927 4928 4956 4959 4980 5110 5132 5304 5342 5374 5560 5581 5584 5644 5661 5683 5703 5723 5728 5774 5813 5820 6063 6104 6111 6145 6179 6229 6238 6248 6257 6280 6281 6289 6321 6325 6402 6439 6447 6451 6453 6770 6773 6819 6887 6961 7075 7079 7081 7084 7086 7115 7117 7328 7341 7345 7535 7718 7720 7778 8005 8546 8578 8580 8716 8726 8739 8748 8751 8756 BR 650 # 2201 2398 2433 2435 2439 2920 3051 3084 3085 3088 3089 3090 3091 3106 3109 3112 3115 3119 3122 3124 3156 3157 3160 3161 3442 3445 3448 3451 3454 3457 3460 3463 3788 3793 3821 3848 3857 3858 4005 4010 4108 4240 4405 4407 4415 4419 4482 4485 4559 4563 4564 4565 4568 4573 4604 4746 4748 4807 4808 4809 4810 4811 4818 4827 4831 4840 4901 4902 4903 4904 4905 4926 4969 4975 5078 5118 5120 5130 5135 5219 5303 5310 5311 5315 5316 5372 5375 5409 5460 5543 5567 5569 5579 5593 5672 5690 5693 5929 5941 5942 5944 5945 5972 5981 6026 6031 6056 6059 6150 6215 6218 6219 6232 6240 6246 6369 6379 6390 6399 6403 6421 6474 6489 6527 6538 6605 6861 6862 6903 6904 6944 6952 6963 6967 7044 7047 7072 7106 7108 7111 7173 7184 7198 7200 7225 7226 7296 7307 7314 7383 7385 7387 7393 7395 7431 7444 7541 7564 7565 7566 7607 7609 7637 7641 7643 7647 7649 7673 7679 7770 8246 8310 8313 8326 8576 8702 8712 8731 8778 8781 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 248 ; Cross Reference Listing BRX 651 # 4136 4164 4170 4241 4264 4284 4288 4292 4296 4302 4306 4310 4314 4391 4444 4484 4596 4599 4610 5057 5109 5138 5146 5153 5177 5262 5265 5335 5336 5338 5377 5382 5572 5589 5655 5669 5670 5712 5933 6032 6102 6113 6114 6138 6187 6195 6276 6305 6318 6327 6332 6340 6342 6351 6357 6362 6374 6413 6415 6433 6442 6469 6471 6473 6504 6507 6523 6535 6537 6617 6619 6622 6688 6695 6789 6793 6797 6801 6805 6809 6825 7098 7242 7243 7244 7343 7493 7548 7549 7612 7695 8242 8295 8296 8299 8305 8307 8559 8563 8565 8567 8582 8586 8753 8762 8765 8770 8867 EBR 653 # 6991 7223 7496 7539 8721 FLG 656 # 3634 5524 5625 5626 5633 5760 5763 5766 5769 5829 5836 5837 6613 8292 8542 8562 8581 8583 8744 8746 8749 8758 8843 HR 647 # 2302 2308 2314 2320 2329 2333 2342 2347 2448 2796 2801 3542 3551 3554 3556 3557 3558 3577 3581 3591 3596 3599 3619 3640 3653 3935 3937 3939 3941 3943 3945 3947 3949 3955 4053 5931 6924 7001 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7263 7286 7381 7697 7711 7840 7849 7851 7853 7855 7857 7859 MAG 645 # 2437 4146 4149 4168 4171 4172 4185 4191 4193 4227 4229 4231 4409 4427 4449 4453 4456 4497 4499 4500 4627 4632 4637 4643 4644 5239 5240 5563 5654 5709 5735 5770 5805 5809 5811 MASK 655 # 2163 2164 2165 2168 2171 2204 2215 2251 2255 2258 2261 2270 2273 2276 2279 2530 2753 2774 2981 3029 3593 3641 3655 3676 3959 3999 4002 4047 4107 4243 4277 4411 4422 4450 4575 4787 4907 4918 5224 5244 5245 5246 5260 5465 5525 5598 5648 5738 5807 5896 5898 5900 5902 5904 5906 5908 5910 5912 6147 6149 6171 6286 6608 7295 7338 7339 7340 7474 7475 7476 7477 7478 7479 7480 7486 7505 7515 7533 7547 7625 7628 7664 7675 7681 7698 7754 7907 8271 8273 8287 8800 ONE 652 # 2193 2197 2242 2244 2289 2376 2427 2430 2960 3351 3417 3433 3500 3514 3540 3549 3552 3627 3645 3648 3995 4042 4058 4337 4752 5049 5117 5158 5160 5165 5182 5183 5267 5268 5452 5464 5539 5688 5846 5967 6008 6041 6047 6068 6086 6096 6115 6116 6151 6152 6194 6258 6263 6326 6338 6345 6365 6372 6377 6386 6396 6400 6404 6405 6441 6455 6466 6518 6542 6636 6658 6711 6834 6835 6841 6863 6905 6947 7302 7325 7355 7407 7691 7768 7893 7979 7986 7989 7992 7995 7998 8809 8819 8869 8880 8884 PC 646 # 2241 2245 2263 2356 2418 2443 3339 3466 3471 3702 3819 3825 3845 4031 4232 4234 4709 4718 6980 7398 7517 7669 7904 8859 PI 657 # 3605 3606 3620 7026 7027 7375 7389 7391 7396 7406 7408 7467 7468 7469 7470 7471 7472 7473 7482 T0 659 # 4212 4216 4452 4463 4470 4473 4475 4476 5580 5588 5614 5616 5617 5618 5621 5629 5632 5634 5674 5740 5748 5749 6370 6437 7409 7545 T1 660 # 4429 4569 5235 5237 5241 5256 5259 5604 5689 5692 5711 5721 UBR 654 # 3961 4001 6983 7143 7177 7232 7233 7238 7239 8706 8840 XWD1 658 # 3522 3692 7531 (D) A 1328 # DBLAC 1332 # 2788 DFP 1338 # 5550 5551 5639 5700 DREAD 1331 # 2779 2780 4095 4096 4179 4397 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 249 ; Cross Reference Listing DSHIFT 1334 # 2970 2971 FP 1336 # 5276 5277 5278 5279 5281 5282 5284 5285 5286 5287 5289 5290 5321 5322 5323 5325 5327 5328 5350 5351 5352 5354 5356 5357 5435 5436 FPI 1335 # 5280 5288 5326 5355 IOT 1339 # 7012 7013 7249 7571 7572 7573 7574 7582 7583 7584 7585 7596 7597 7598 7599 7864 7865 8234 RD-PF 1337 # 2560 2565 2570 2575 2613 2618 2623 2628 2633 2638 2643 2648 2655 2660 2665 2670 2675 2680 2685 2690 2820 2830 2840 2845 2862 2872 2882 2892 2912 2923 2933 2943 4066 4080 4128 4153 4320 4325 READ 1329 # 2563 2568 2573 2578 2597 2615 2616 2620 2621 2626 2631 2636 2641 2646 2651 2657 2658 2662 2663 2668 2673 2678 2683 2688 2693 2822 2823 2832 2833 2842 2843 2847 2848 2855 2864 2865 2874 2875 2884 2885 2894 2895 2914 2915 2925 2926 2935 2936 2945 2946 3199 3200 3201 3202 3203 3204 3215 3216 3217 3218 3219 3220 3221 3222 3233 3234 3235 3236 3237 3238 3239 3240 3250 3251 3252 3253 3254 3255 3256 3257 3372 3373 3374 3375 3376 3377 3378 3379 3389 3390 3391 3392 3393 3394 3395 3396 3406 3407 3408 3409 3410 3411 3412 3413 3422 3423 3424 3425 3426 3427 3428 3429 3660 4068 4069 4082 4083 4130 4131 4155 4156 4322 4323 4327 4328 4698 4699 4700 4701 4702 5400 SHIFT 1333 # 2965 2966 2967 WRITE 1330 # 2562 2567 2572 2577 2625 2630 2635 2640 2645 2650 2667 2672 2677 2682 2687 2692 2789 2857 2858 (U) ACALU 1226 # AC+N 1228 # 2186 2187 2194 2384 2396 2502 2785 2794 3035 3056 3100 3130 4100 4112 4191 4193 4195 4203 4205 4212 4214 4226 4227 4228 4229 4230 4231 4343 4427 4449 4453 4456 4470 4471 4473 4476 4495 4497 4499 4500 4626 4627 4630 4631 4632 4635 4636 4637 4643 4644 5563 5654 5707 5709 5715 5774 5782 5820 5827 5971 5979 5989 5992 6022 6025 6038 6045 6052 6062 6100 6110 6130 6145 6162 6177 6179 6205 6208 6210 6217 6218 6219 6221 6227 6229 6232 6238 6240 6268 6270 6271 6275 6282 6283 6284 6288 6289 6296 6298 6303 6309 6325 6336 6348 6357 6363 6374 6377 6379 6383 6396 6402 6403 6526 6557 6562 6567 6604 6606 6710 6711 6823 6830 6837 6856 6858 6865 6885 6906 6942 6944 6950 6952 6956 6959 6964 B 1227 # (D) ACDISP 1359 # 3529 7012 7013 7249 (U) ACN 1229 # 2384 2396 2502 2785 2794 3035 3056 3100 3130 4100 4112 4191 4193 4195 4203 4205 4212 4214 4226 4227 4228 4229 4230 4231 4343 4427 4449 4453 4456 4470 4471 4473 4476 4495 4497 4499 4500 4626 4627 4630 4631 4632 4635 4636 4637 4643 4644 5563 5654 5707 5709 5715 5774 5782 5820 5827 6309 6325 6336 6383 6402 BIN0 1236 # 2186 6205 6227 6232 6240 6271 6282 6283 6284 6288 6296 BIN1 1237 # 2187 2194 6177 6179 6208 6210 6217 6218 6219 6221 6229 6238 6268 6270 6275 6289 6298 DLEN 1233 # 5971 5979 5992 6022 6025 6052 6062 6100 6110 6145 6303 6348 6357 6363 6374 6377 6379 6396 6403 6710 6711 6823 6837 6856 6956 6959 6964 DSTP 1234 # 5989 6162 6557 6562 6606 6830 6885 6906 6950 6952 MARK 1235 # 6526 6604 SRCLEN 1231 # ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 250 ; Cross Reference Listing SRCP 1232 # 6038 6045 6130 6567 6858 6865 6942 6944 (U) AD 541 # 2168 2171 2204 2215 2251 2255 2258 2261 2270 2273 2276 2279 2333 2530 2751 2753 2772 2774 3593 3676 3959 3999 4047 4411 4422 5237 5896 5898 5900 5902 5904 5906 5908 5910 5912 5942 6171 6286 6608 7295 7338 7339 7340 7474 7475 7476 7477 7478 7479 7480 7486 7515 7533 7547 7625 7628 7664 7675 7681 7698 7754 7907 8271 8273 8287 8800 A 570 # 2163 2165 2241 2245 2263 2308 2320 2347 2356 2398 2439 2440 2443 2502 2534 2785 2801 2985 2997 3004 3008 3018 3019 3021 3023 3024 3032 3051 3056 3084 3085 3088 3089 3090 3091 3106 3109 3112 3115 3119 3122 3156 3157 3160 3161 3313 3339 3402 3442 3454 3466 3467 3470 3471 3538 3539 3545 3565 3581 3592 3607 3643 3654 3666 3720 3723 3725 3743 3748 3821 3827 3840 3845 3858 4134 4136 4139 4161 4162 4164 4166 4184 4186 4200 4202 4220 4222 4234 4240 4241 4243 4264 4277 4332 4341 4356 4362 4391 4403 4405 4407 4419 4431 4435 4450 4454 4457 4470 4476 4480 4489 4509 4557 4562 4563 4564 4569 4570 4572 4574 4645 4709 4718 4723 4730 4746 4769 4777 4831 4907 4920 4956 4975 4980 5054 5057 5075 5110 5130 5138 5146 5194 5219 5224 5239 5240 5244 5245 5246 5259 5260 5262 5302 5303 5304 5315 5337 5338 5342 5343 5362 5370 5372 5377 5380 5385 5418 5420 5450 5452 5455 5456 5462 5497 5501 5503 5509 5517 5519 5520 5521 5539 5540 5545 5572 5579 5580 5584 5587 5588 5595 5600 5602 5614 5616 5617 5618 5621 5629 5632 5634 5644 5646 5648 5655 5659 5661 5672 5678 5683 5687 5688 5691 5703 5706 5728 5738 5740 5748 5749 5757 5764 5767 5779 5782 5796 5801 5803 5824 5827 5849 5857 5945 5990 6010 6025 6045 6056 6062 6091 6102 6138 6145 6179 6218 6238 6240 6275 6288 6289 6325 6351 6357 6362 6363 6370 6374 6379 6401 6402 6403 6437 6471 6480 6483 6487 6489 6527 6537 6562 6569 6605 6622 6647 6677 6684 6695 6747 6764 6770 6861 6865 6884 6903 6906 6910 6912 6944 6952 6959 6960 6964 6971 7026 7027 7129 7173 7192 7194 7215 7223 7225 7233 7234 7239 7242 7244 7343 7375 7398 7416 7422 7493 7500 7521 7529 7548 7566 7590 7603 7605 7612 7637 7641 7647 7669 7673 7679 7713 7770 7772 7778 7869 7877 7904 8005 8248 8307 8310 8326 8546 8552 8570 8576 8592 8844 8867 A+B 543 # 2193 2197 2242 2244 2289 2376 2427 2430 2796 3124 3351 3417 3627 3645 3648 3788 3793 3961 3995 4001 4042 4058 4212 4216 4245 4301 4305 4385 4481 4482 4485 4495 4568 4573 4599 4603 4609 4752 5158 5160 5165 5182 5183 5267 5268 5316 5460 5464 5543 5593 5674 5967 6031 6063 6068 6086 6115 6116 6221 6235 6246 6248 6258 6326 6338 6345 6365 6386 6400 6455 6466 6474 6518 6542 6636 6658 6685 6711 6863 6887 6905 6947 6967 6983 6991 7296 7302 7325 7355 7496 7531 7541 7549 7768 7893 7979 7986 7989 7992 7995 7998 8706 8721 8819 8880 8884 A+Q 542 # 4452 4463 4484 5117 5581 5589 5690 5693 5846 A-.25 554 # A-B-.25 559 # 4381 4437 4438 5116 5135 5153 5177 5265 5374 5382 5730 5979 6114 6150 6369 A-D-.25 555 # 6199 6439 6444 6492 8702 8712 A-Q-.25 558 # A.AND.B 575 # 4170 4185 4402 4473 4926 5525 5774 5807 5809 5820 6001 6147 7045 7051 7408 7564 A.AND.Q 574 # 4168 4409 4453 4497 4499 4575 4627 4632 4637 4643 4644 4840 4918 4927 5770 5805 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 251 ; Cross Reference Listing A.EQV.B 602 # A.EQV.Q 601 # 4146 4149 4171 4172 4227 4229 4231 4500 A.OR.B 567 # 2920 4108 4928 5081 5933 6032 6065 6104 6262 6693 7075 7079 7086 7117 7162 7184 7186 7387 7393 7535 7631 7666 8567 8781 A.OR.Q 566 # 5235 5256 5604 A.XOR.B 594 # 5811 7341 A.XOR.Q 593 # B 569 # 2173 2181 2183 2184 2187 2189 2196 2198 2389 2409 2508 2540 2546 2551 2554 2585 2604 2749 2756 2763 2770 2800 3081 3097 3153 3298 3342 3345 3348 3354 3357 3360 3419 3573 3621 3632 3672 3708 3714 3753 3759 3830 3969 3991 4013 4019 4030 4034 4050 4057 4138 4283 4287 4309 4313 4344 4350 4364 4369 4371 4376 4443 4445 4462 4478 4487 4548 4555 4576 4706 4715 4719 4734 4737 4753 4834 4900 4908 4916 4965 4978 4998 5030 5037 5301 5305 5388 5390 5422 5426 5459 5499 5518 5586 5685 5694 5743 5761 5799 5935 5938 5951 5953 5954 5984 5996 6030 6046 6072 6073 6074 6089 6131 6134 6136 6140 6153 6164 6172 6180 6311 6313 6356 6375 6388 6392 6394 6443 6450 6476 6490 6495 6517 6521 6573 6593 6607 6659 6667 6741 6762 6784 6816 6866 6868 6890 6930 6981 7088 7090 7091 7093 7096 7100 7201 7202 7268 7272 7276 7280 7284 7299 7310 7315 7331 7334 7350 7354 7356 7364 7365 7417 7429 7435 7442 7667 7709 7732 7738 7740 7774 7776 7885 7892 7957 7966 7972 7976 7977 7978 7980 7981 7982 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8244 8254 8255 8257 8258 8265 8275 8277 8279 8281 8285 8286 8588 8700 8736 8775 8806 8811 8847 8861 B-.25 553 # B-A-.25 551 # 3433 3540 3549 3552 4291 4295 4565 4596 6026 6047 6151 6152 6263 6352 6404 6441 6834 6963 7307 7431 7444 7691 8809 8869 D 573 # 2162 2166 2191 2192 2194 2232 2282 2352 2366 2370 2375 2379 2383 2384 2396 2397 2402 2407 2418 2424 2582 2601 2702 2704 2729 2731 2734 2735 2737 2740 2741 2743 2758 2760 2765 2767 2794 2978 2995 3001 3013 3016 3054 3100 3103 3282 3287 3400 3445 3448 3451 3457 3460 3463 3486 3562 3569 3586 3601 3606 3626 3630 3691 3702 3730 3736 3763 3772 3783 3785 3819 3825 3842 3843 3856 3857 3861 4018 4031 4120 4135 4144 4163 4167 4205 4210 4225 4228 4230 4232 4333 4342 4343 4425 4554 4708 4713 4727 4729 4733 4748 4781 4807 4808 4809 4810 4811 4827 4901 4902 4903 4904 4905 4953 4962 4969 4983 4985 4989 4993 4995 4999 5028 5033 5056 5069 5071 5109 5118 5122 5129 5173 5191 5192 5217 5222 5299 5332 5364 5428 5506 5522 5564 5574 5666 5717 5852 5928 5947 5956 5971 5974 5988 5989 5992 6014 6017 6022 6038 6039 6049 6059 6076 6077 6078 6079 6087 6093 6101 6110 6112 6130 6132 6139 6143 6156 6158 6162 6174 6177 6186 6205 6208 6210 6217 6227 6268 6270 6271 6276 6303 6308 6309 6310 6322 6331 6336 6348 6354 6364 6367 6368 6383 6395 6397 6398 6416 6419 6468 6473 6478 6479 6519 6526 6541 6557 6567 6576 6580 6595 6604 6606 6610 6631 6638 6640 6671 6687 6708 6710 6748 6773 6823 6828 6830 6837 6839 6856 6858 6859 6862 6885 6902 6904 6914 6929 6942 6946 6950 6956 6975 6980 6999 7019 7020 7057 7059 7071 7082 7105 7106 7114 7132 7197 7254 7256 7258 7260 7262 7267 7271 7275 7279 7283 7292 7297 7301 7306 7312 7313 7324 7344 7348 7363 7369 7383 7396 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 252 ; Cross Reference Listing 7406 7425 7427 7438 7440 7464 7490 7501 7517 7519 7538 7543 7561 7593 7634 7701 7704 7706 7714 7728 7759 7762 7764 7873 7880 7912 7959 7964 7968 7971 7983 8001 8003 8004 8006 8241 8245 8247 8256 8262 8267 8549 8589 8590 8591 8597 8730 8739 8776 8786 8792 8801 8805 8817 8821 8823 8825 8827 8829 8831 8835 8859 D+A 547 # 2302 2314 2329 2342 3500 3522 3577 3692 3738 3767 3831 3848 4073 4100 4103 4765 4773 5051 5120 5132 5941 5944 6008 6041 6096 6194 6219 6229 6232 6372 6390 6433 6442 6449 6451 6570 6646 6753 6761 6835 6841 6909 6911 7345 7494 7539 7712 7718 7720 8716 8726 8840 D+Q 548 # 5001 5009 5040 5059 D-.25 565 # D-A-.25 563 # 3383 3514 4087 4112 4114 4117 5066 6377 6396 D-Q-.25 564 # D.AND.A 582 # 2435 2437 2448 2470 2784 2827 2950 2981 3029 3289 3312 3542 3551 3554 3556 3557 3558 3591 3596 3599 3605 3619 3620 3640 3641 3653 3655 3935 3937 3939 3941 3943 3945 3947 3949 3955 4002 4003 4008 4053 4121 4191 4193 4374 4427 4449 4456 4652 4787 4959 4966 5078 5241 5306 5310 5335 5368 5405 5409 5429 5524 5563 5654 5689 5692 5709 5760 5763 5766 5769 5829 5929 5931 5972 5975 6111 6113 6149 6175 6182 6195 6215 6257 6273 6280 6305 6321 6340 6399 6413 6415 6447 6453 6469 6481 6484 6504 6507 6523 6538 6654 6688 6691 6754 6768 6924 6934 7001 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7074 7076 7078 7080 7083 7085 7087 7108 7111 7136 7143 7147 7151 7158 7177 7198 7199 7226 7232 7238 7243 7263 7286 7328 7378 7380 7381 7382 7384 7386 7388 7390 7392 7394 7505 7545 7579 7636 7643 7649 7663 7695 7697 7711 7840 7849 7851 7853 7855 7857 7859 8242 8246 8295 8299 8542 8555 8562 8565 8581 8583 8731 8744 8748 8751 8756 8762 8778 8803 D.AND.Q 583 # 3126 4527 5227 5233 5247 5253 5340 5649 D.EQV.A 606 # 2899 D.EQV.Q 607 # D.OR.A 571 # 2164 2433 2471 2879 3307 4005 4010 4122 4475 4560 5307 5311 5336 5369 5430 5569 5625 5626 5633 5670 5722 5836 6187 6274 6318 6327 6332 6342 6613 6617 6619 6680 6793 6797 6801 6809 6825 6961 6970 7200 7314 7389 7467 7468 7469 7470 7471 7472 7473 7607 7908 8238 8292 8296 8559 8563 8580 8582 8586 8749 8753 8758 8765 8770 8843 D.OR.Q 572 # 3128 4412 D.XOR.A 598 # 2201 2869 3304 4429 7503 7504 8305 D.XOR.Q 599 # Q 568 # 3130 4140 4148 4195 4203 4203 4214 4226 4368 4423 4440 4446 4451 4455 4461 4469 4988 5150 5176 5264 5387 5392 5463 5505 5529 5623 5630 5650 5662 5673 5732 5734 5778 5823 6120 6159 6561 Q-.25 552 # Q-A-.25 550 # 4444 5049 Q-D-.25 556 # 4992 ZERO 579 # 2174 2174 2176 2179 2186 2188 2190 2207 2229 2413 2817 2994 3035 3055 3284 3622 4239 4265 4335 4471 4549 4816 4829 4835 4836 4839 4911 4912 4915 4971 5114 5156 5180 5266 5313 5384 5395 5407 5411 5413 5414 5427 5440 5532 5705 5733 5772 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 253 ; Cross Reference Listing 5788 5816 5997 5999 6033 6052 6100 6105 6117 6128 6157 6278 6296 6298 6316 6350 6406 6410 6414 6417 6472 6596 6634 6674 6744 6819 7044 7047 7115 7169 7181 7227 7304 7379 7424 7449 7450 7482 7485 7492 7506 7721 7766 7887 7890 7960 8291 8313 8558 8578 8790 8796 8815 8833 8834 8865 -A-.25 562 # 2590 2960 4337 4415 4492 4534 4552 4559 4653 4657 4661 4663 5296 5371 5375 5406 5515 5531 5560 5561 5712 5723 5724 5792 5813 5819 6281 6405 7407 -B-.25 561 # 5713 -D-.25 557 # 4466 4626 4631 4636 4641 6012 6284 6955 6969 -Q-.25 560 # 4414 4465 4491 4532 4533 4550 5393 5498 5500 5502 5504 5787 .NOT.A 605 # 2852 2889 2930 2940 3301 4107 4346 4551 4655 4662 5465 5513 5528 5530 5711 5721 5790 5981 5983 6535 7409 7484 7694 .NOT.A.AND.B 586 # 4142 5598 7081 7084 7385 7395 7565 .NOT.A.AND.Q 585 # 5735 .NOT.B 604 # 5818 6190 .NOT.D 608 # 2909 2919 4630 4635 4640 6029 6057 6061 6197 6201 6283 6973 .NOT.D.AND.A 590 # 2837 3634 4038 5567 5669 5720 5837 6421 6789 6805 7072 7098 7391 7609 8571 8746 .NOT.D.AND.Q 591 # .NOT.Q 603 # 4925 5786 6000 0+A 546 # 5853 0+B 545 # 0+D 549 # 0+Q 544 # 5599 5746 (U) AD PARITY OK 718 # 2194 2370 2383 2384 2601 2702 2704 2735 2741 2794 2978 2981 2995 3029 3486 3730 3763 3785 3843 3856 4163 4205 4342 4733 5129 5217 5299 5332 5364 5428 5574 5971 5974 5989 5992 6022 6038 6110 6112 6130 6162 6174 6177 6205 6208 6210 6217 6227 6268 6270 6271 6303 6308 6309 6310 6331 6336 6348 6383 6468 6526 6567 6604 6606 6710 6823 6830 6856 6858 6885 6942 6950 6956 7593 7880 8268 (U) ADFLGS 1122 # 2591 3417 3433 3500 3514 4074 4088 4105 4115 4118 4245 4656 4658 (U) AREAD 1156 # 2334 (U) B 664 # AR 668 # 2171 2173 2188 2251 2255 2258 2270 2273 2276 2333 2366 2370 2375 2383 2389 2402 2407 2409 2418 2427 2427 2430 2430 2439 2440 2470 2471 2508 2534 2540 2546 2551 2554 2582 2585 2590 2702 2704 2729 2731 2734 2735 2737 2740 2741 2743 2749 2751 2753 2756 2758 2760 2763 2765 2767 2770 2772 2774 2817 2827 2837 2852 2869 2879 2889 2899 2909 2920 2920 2930 2940 2950 2960 2978 2981 2985 2995 2997 3001 3004 3008 3013 3016 3018 3019 3021 3023 3024 3054 3055 3056 3081 3097 3153 3282 3287 3301 3304 3307 3312 3313 3342 3345 3348 3354 3357 3360 3383 3400 3402 3417 3417 3419 3433 3627 3627 3645 3648 3648 3655 3783 3788 3793 3843 4002 4018 4019 4031 4034 4038 4047 4050 4058 4073 4087 4103 4108 4108 4114 4117 4120 4140 4146 4148 4149 4166 4167 4184 4232 4335 4337 4342 4344 4369 4391 4425 4431 4435 4478 4482 4482 4485 4485 4489 4492 4495 4509 4534 4548 4551 4552 4557 4562 4565 4568 4570 4572 4573 4573 4574 4604 4640 4641 4645 4655 4657 4662 4663 4706 4715 4719 4723 4734 4737 4746 4748 4752 4752 4753 4781 4819 4834 4836 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 254 ; Cross Reference Listing 4839 4840 4900 4901 4902 4903 4904 4905 4908 4916 4925 4926 4926 4928 4928 4983 4985 4995 4998 4999 5028 5037 5051 5061 5066 5069 5071 5075 5153 5177 5191 5192 5194 5265 5296 5303 5305 5306 5307 5316 5316 5342 5343 5364 5368 5369 5380 5385 5387 5388 5390 5392 5393 5418 5420 5422 5426 5428 5429 5430 5450 5455 5456 5459 5460 5460 5462 5464 5464 5497 5499 5501 5503 5506 5509 5513 5515 5517 5518 5519 5520 5521 5522 5525 5525 5528 5530 5531 5540 5543 5543 5545 5561 5588 5593 5593 5595 5600 5602 5646 5683 5687 5691 5694 5717 5720 5722 5724 5748 5749 5757 5761 5764 5767 5779 5782 5790 5792 5796 5799 5801 5803 5818 5824 5827 5849 5852 5853 5857 5896 5898 5900 5902 5904 5906 5908 5910 5912 5938 5967 5967 5974 5981 5983 5984 5999 6000 6008 6012 6025 6026 6026 6029 6031 6031 6032 6032 6038 6045 6046 6056 6057 6059 6061 6062 6063 6063 6068 6068 6076 6115 6115 6116 6117 6130 6136 6143 6147 6147 6150 6150 6153 6157 6162 6164 6171 6172 6174 6182 6190 6194 6197 6201 6270 6273 6274 6275 6283 6284 6288 6308 6310 6313 6322 6331 6348 6362 6363 6364 6365 6365 6370 6388 6390 6392 6397 6401 6414 6416 6417 6419 6441 6444 6449 6455 6455 6466 6478 6479 6480 6481 6483 6484 6517 6537 6541 6542 6542 6562 6567 6569 6570 6573 6595 6596 6608 6610 6631 6634 6636 6636 6638 6646 6654 6658 6658 6659 6671 6674 6677 6680 6684 6687 6691 6708 6710 6711 6741 6747 6748 6753 6761 6762 6764 6770 6819 6823 6828 6830 6834 6835 6837 6839 6841 6856 6858 6861 6862 6863 6863 6865 6866 6868 6885 6890 6903 6904 6905 6905 6906 6914 6929 6930 6934 6942 6946 6947 6950 6955 6959 6963 6963 6964 6967 6967 6969 6970 6971 6973 6983 6983 6991 6991 7132 7136 7147 7192 7194 7267 7268 7271 7272 7275 7276 7279 7280 7283 7284 7292 7296 7296 7297 7299 7301 7302 7302 7304 7306 7307 7307 7310 7312 7324 7334 7348 7363 7364 7365 7424 7425 7429 7431 7431 7435 7438 7442 7444 7444 7482 7486 7490 7493 7494 7496 7496 7501 7519 7529 7533 7535 7535 7590 7612 7637 7643 7649 7698 7701 7706 7712 7714 7718 7720 7721 7759 7768 7768 7873 7880 7907 7908 7981 7982 7983 7984 8001 8002 8003 8238 8248 8254 8546 8549 8552 8555 8567 8567 8597 8786 8792 8801 8805 8806 8817 8840 8867 8880 8880 8884 ARX 669 # 2194 2198 2379 2384 2413 2437 2502 2784 2785 2794 2800 3692 3723 3725 3730 3738 3763 3767 3842 3845 3959 3961 3961 3969 3995 4042 4100 4112 4121 4122 4138 4139 4144 4168 4171 4172 4185 4185 4193 4203 4216 4216 4222 4225 4239 4245 4265 4284 4288 4292 4296 4302 4306 4310 4314 4356 4368 4374 4440 4446 4455 4549 4554 4560 4576 4596 4596 4599 4599 4610 4652 4653 4661 4729 4733 4920 4927 4953 4956 4959 4962 4965 5109 5158 5158 5183 5268 5302 5370 5371 5382 5560 5662 5674 5674 5709 5732 5807 5807 5809 5809 5811 5811 5813 5846 5990 5992 6010 6041 6047 6073 6078 6086 6086 6089 6091 6096 6110 6114 6134 6140 6145 6151 6177 6179 6208 6229 6235 6235 6238 6248 6248 6257 6268 6280 6281 6286 6289 6309 6311 6321 6325 6326 6326 6336 6354 6383 6394 6398 6400 6400 6402 6439 6447 6451 6453 6593 6773 6816 6884 6887 6960 6961 6980 6981 7074 7076 7114 7115 7328 7331 7339 7343 7345 7356 7492 7531 7531 7541 7541 7664 7666 7675 7681 7704 7762 7766 7778 7885 7890 7893 7957 7959 7964 7968 7971 7972 7976 7979 7986 7989 7992 7995 7998 8004 8006 8258 8326 8578 8589 8706 8706 8716 8721 8721 8726 8730 8736 8739 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 255 ; Cross Reference Listing BR 670 # 2196 2397 2398 2424 2433 2435 2601 2604 2919 3029 3051 3084 3085 3088 3089 3090 3091 3103 3106 3109 3112 3115 3119 3122 3124 3156 3157 3160 3161 3284 3289 3298 3442 3445 3448 3451 3454 3457 3460 3463 3486 3500 3514 3522 3626 3632 3641 3691 3702 3708 3714 3736 3753 3759 3785 3819 3821 3825 3830 3840 3856 3857 3861 3999 4001 4001 4005 4010 4013 4107 4186 4332 4341 4350 4364 4371 4376 4381 4385 4403 4405 4407 4415 4419 4437 4438 4555 4559 4563 4564 4708 4713 4727 4787 4807 4808 4809 4810 4811 4827 4829 4831 4966 4969 4971 4975 4978 4993 5003 5030 5042 5078 5081 5117 5118 5120 5130 5132 5219 5299 5301 5304 5310 5311 5315 5362 5406 5452 5465 5539 5564 5567 5569 5580 5650 5688 5706 5713 5730 5928 5933 5933 5935 5941 5942 5944 5947 5951 5953 5954 5956 5971 5979 5989 5996 6022 6030 6049 6072 6077 6149 6205 6210 6217 6218 6219 6221 6227 6232 6240 6246 6246 6258 6258 6271 6350 6351 6352 6352 6372 6375 6377 6379 6386 6386 6396 6403 6405 6421 6473 6474 6476 6487 6489 6490 6526 6535 6604 6606 6607 6859 6902 6944 6952 6956 6975 7019 7020 7026 7027 7044 7045 7047 7051 7057 7059 7071 7072 7075 7075 7079 7079 7081 7081 7090 7091 7093 7105 7106 7108 7111 7117 7117 7158 7169 7173 7197 7198 7200 7201 7202 7223 7225 7226 7227 7232 7238 7244 7254 7256 7258 7260 7262 7295 7313 7314 7315 7338 7341 7344 7354 7369 7375 7382 7383 7417 7427 7440 7505 7517 7539 7543 7549 7549 7561 7566 7579 7593 7605 7607 7609 7625 7628 7631 7634 7641 7647 7667 7673 7679 7770 7774 7985 8245 8265 8275 8277 8279 8281 8307 8310 8313 8570 8571 8590 8775 8776 8778 8859 8861 BRX 671 # 2192 2193 2193 4134 4136 4163 4164 4191 4210 4241 4264 4362 4423 4481 5054 5057 5114 5116 5129 5135 5160 5165 5182 5182 5217 5267 5267 5332 5335 5336 5338 5372 5374 5375 5377 5563 5654 5655 5666 5669 5670 5703 5712 5931 5975 6065 6074 6079 6102 6104 6112 6131 6138 6152 6175 6180 6187 6262 6262 6276 6303 6305 6316 6318 6327 6332 6338 6338 6342 6345 6345 6356 6357 6374 6404 6468 6495 6521 6523 6617 6619 6622 6667 6685 6685 6688 6693 6693 6695 6784 6789 6793 6797 6801 6805 6809 6825 7082 7084 7084 7086 7086 7088 7096 7098 7100 7233 7239 7242 7243 7340 7474 7475 7476 7477 7478 7479 7480 7545 7548 7603 7694 7754 7987 8241 8242 8244 8255 8256 8257 8267 8271 8273 8285 8286 8287 8296 8299 8305 8559 8563 8565 8580 8582 8586 8588 8591 8700 8753 8765 8770 8781 8781 8847 EBR 673 # 2176 7215 7990 FLG 676 # 2179 2181 2183 2184 3634 5122 5156 5180 5266 5532 5625 5626 5633 5772 5788 5816 5836 5837 5988 6014 6017 6033 6039 6087 6093 6101 6105 6128 6132 6139 6158 6186 6278 6368 6395 6406 6410 6472 6519 6576 6580 6613 6640 6744 7994 8247 8292 8558 8746 8749 8758 8811 8815 8821 8823 8825 8827 8829 8831 8833 8834 8835 8843 8865 HR 667 # 2191 2197 2197 2282 2314 2329 2342 2352 2376 2448 3542 3551 3554 3556 3557 3558 3562 3573 3577 3586 3591 3596 3599 3601 3619 3640 3653 3666 3672 3676 3935 3937 3939 3941 3943 3945 3947 3949 3955 3991 4030 4053 4057 4618 6924 6999 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7263 7286 7325 7350 7355 7381 7709 7840 7849 7851 7853 7855 7857 7859 7912 7980 MAG 665 # 2165 4243 4277 4402 4450 4473 4907 4912 4915 5224 5244 5245 5246 5260 5648 5738 5774 5820 7977 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 256 ; Cross Reference Listing MASK 675 # 2162 2163 2164 3621 4142 5239 5240 6001 7966 7993 ONE 672 # 2168 2187 2189 2796 6369 7988 PC 666 # 2229 2242 2244 2289 2302 2308 3032 3351 3467 3470 3538 3539 3540 3549 3552 3565 3592 3607 3630 3720 3772 3831 3848 6263 6518 6518 7521 7691 7776 7978 8809 8819 8819 8869 PI 677 # 2207 7379 7385 7385 7387 7387 7389 7391 7393 7393 7395 7395 7467 7468 7469 7470 7471 7472 7473 7564 7565 7565 7996 T0 679 # 3606 4162 4170 4202 4205 4212 4451 4457 4461 4463 4465 4470 4475 4476 5574 5579 5586 5587 5614 5616 5617 5618 5621 5629 5632 5634 5661 5734 5740 6367 6433 6442 6443 7396 7406 7407 7408 7408 7538 7728 7732 7738 7740 7999 T1 680 # 2204 2215 2232 2261 2279 2530 3593 4411 4422 4429 4443 4445 4462 4487 4569 5228 5236 5241 5248 5259 5598 5598 5623 5630 5673 5685 5705 5711 5721 5743 6437 6450 7515 7547 7892 8000 8800 UBR 674 # 2174 7143 7162 7162 7177 7181 7184 7184 7186 7186 7991 XWD1 678 # 2166 7997 (D) B 1341 # 3190 3191 3192 3193 3194 3195 3199 3200 3201 3202 3203 3204 3206 3207 3208 3209 3210 3211 3212 3213 3215 3216 3217 3218 3219 3220 3221 3222 3224 3225 3226 3227 3228 3229 3230 3231 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3250 3251 3252 3253 3254 3255 3256 3257 3363 3364 3365 3366 3367 3368 3369 3370 3372 3373 3374 3375 3376 3377 3378 3379 3389 3390 3391 3392 3393 3394 3395 3396 3406 3407 3408 3409 3410 3411 3412 3413 3422 3423 3424 3425 3426 3427 3428 3429 3475 3476 3477 3478 3479 3480 3481 3482 3489 3490 3491 3492 3493 3494 3495 3496 3503 3504 3505 3506 3507 3508 3509 3510 3517 3518 3682 3683 3684 3779 3868 3869 3870 3871 3872 3873 3874 3875 3925 3926 3927 3928 3929 3930 5865 5866 5867 5868 5869 5870 5871 5873 5874 5875 5876 5878 5879 5880 5881 5886 5887 5888 5889 5890 7571 7572 7573 7574 7582 7583 7584 7585 7596 7597 7598 7599 7783 7784 7785 7787 7788 7790 7791 7793 7794 7795 7796 7797 7798 7799 7800 7802 7803 7804 7805 7806 7807 7808 7809 7811 7812 7813 7814 7815 7816 7817 7818 7820 7821 7822 7823 7824 7825 7826 7827 7829 7830 7831 7832 7833 7834 7835 7836 AC 1345 # 2560 2561 2565 2566 2570 2571 2575 2576 2597 2613 2614 2618 2619 2623 2624 2628 2629 2633 2634 2638 2639 2643 2644 2648 2649 2655 2656 2660 2661 2665 2666 2670 2671 2675 2676 2680 2681 2685 2686 2690 2691 2780 2810 2811 2820 2821 2830 2831 2840 2841 2845 2846 2862 2863 2872 2873 2882 2883 2892 2893 2902 2903 2912 2913 2923 2924 2933 2934 2943 2944 2953 2954 4066 4067 4080 4081 4128 4129 4698 8234 BOTH 1347 # 2813 2823 2833 2843 2848 2865 2875 2885 2895 2905 2915 2926 2936 2946 2956 4069 4083 4131 DBLAC 1343 # 2779 4095 4096 4153 4154 4179 4320 4321 4325 4326 4397 5639 5700 DBLB 1344 # 4156 4323 4328 MEM 1346 # 2562 2567 2572 2577 2615 2620 2625 2630 2635 2640 2645 2650 2657 2662 2667 2672 2677 2682 2687 2692 2812 2822 2832 2842 2847 2857 2858 2864 2874 2884 2894 2904 2914 2925 2935 2945 2955 4068 4082 4130 4155 4322 4327 7249 SELF 1342 # 2563 2568 2573 2578 2616 2621 2626 2631 2636 2641 2646 2651 2658 2663 2668 2673 2678 2683 2688 2693 (U) BWRITE 1165 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 257 ; Cross Reference Listing 2827 2837 2869 2879 2899 2909 2920 2930 2960 4074 4088 4140 4146 4169 4171 5460 5464 5510 5532 8568 8868 (U) BYTE 824 # BYTE1 825 # 4708 4713 4727 4748 4901 6049 6059 6541 6687 6859 6862 6902 6904 6975 BYTE2 826 # 4902 BYTE3 827 # 4903 BYTE4 828 # 4904 BYTE5 829 # 3054 4807 4808 4809 4810 4811 4905 6671 (U) CALL 976 # 2169 2195 2207 2412 2784 2794 3564 3603 3605 3606 3620 3644 3647 3844 3847 3962 3993 3996 4030 4032 4137 4165 4192 4201 4211 4221 4244 4354 4375 4430 4436 4450 4454 4460 4506 4530 4708 4713 4717 4722 4727 4736 4739 4987 4997 5031 5058 5113 5129 5131 5218 5230 5232 5250 5252 5339 5381 5384 5389 5391 5499 5501 5503 5518 5519 5520 5579 5587 5615 5655 5660 5672 5679 5686 5705 5729 5733 5737 5762 5765 5768 5800 5802 5804 5810 5930 5970 5973 5977 6009 6015 6040 6064 6075 6090 6094 6101 6111 6113 6119 6133 6142 6163 6178 6181 6194 6209 6220 6228 6231 6234 6237 6245 6250 6277 6312 6321 6337 6349 6376 6387 6395 6412 6438 6467 6470 6475 6550 6558 6568 6571 6581 6594 6609 6616 6637 6641 6709 6743 6767 6867 6886 6891 6943 6951 6962 7233 7303 7327 7330 7349 7396 7426 7439 7488 7518 7520 7536 7540 7578 7589 7604 7623 7632 7661 7668 7693 7886 7888 7894 7910 7958 7960 7977 7980 7982 7984 7987 7990 7993 7996 7999 8001 8777 8788 8848 (U) CHKL 729 # 2282 2352 2366 2375 2379 2396 2407 2418 2424 2437 2508 2540 2546 2551 2554 2604 2800 3100 3419 3562 3586 3601 3626 3630 3691 3708 3714 3736 3753 3759 3772 3830 3861 3991 4018 4030 4034 4057 4135 4228 4230 4333 4343 4427 4449 4456 4753 4781 4787 4908 5173 5222 5928 5947 6367 6557 6607 6610 6638 6914 6929 6999 7132 7267 7271 7275 7279 7283 7324 7354 7356 7363 7417 7501 7543 7667 7714 7759 7762 7764 7774 7776 7873 7892 7912 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8730 8847 8861 (U) CHKR 736 # 2282 2352 2366 2375 2379 2396 2407 2418 2424 2437 2508 2540 2546 2551 2554 2604 2800 3100 3419 3562 3586 3601 3626 3630 3691 3708 3714 3736 3753 3759 3772 3830 3861 3991 4018 4030 4034 4057 4135 4228 4230 4333 4343 4427 4449 4456 4753 4781 4787 4908 5173 5222 5928 5947 6367 6557 6607 6610 6638 6914 6929 6999 7132 7267 7271 7275 7279 7283 7324 7354 7356 7363 7417 7501 7543 7667 7714 7759 7762 7764 7774 7776 7873 7892 7912 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8730 8847 8861 (U) CLKL 725 # 2242 2244 2289 2302 2303 2309 2314 2329 2330 2342 2353 2376 2704 2735 2743 2765 2767 3351 3467 3470 3538 3539 3540 3549 3552 3565 3577 3607 3631 3645 3773 3832 3846 3850 3995 4007 4012 4042 4058 4109 4752 4782 4991 5050 5073 5122 5134 5156 5160 5165 5180 5183 5193 5245 5246 5266 5268 5341 5604 5941 5944 5947 5988 6014 6017 6033 6039 6068 6087 6093 6101 6105 6116 6128 6132 6139 6158 6186 6263 6278 6316 6351 6368 6395 6406 6410 6466 6472 6519 6576 6580 6615 6640 6681 6686 6744 6863 6905 6914 7073 7099 7113 7182 7198 7200 7244 7325 7330 7355 7389 7391 7393 7395 7407 7467 7468 7469 7470 7471 7472 7473 7495 7565 7691 7712 7712 7893 7909 7979 7986 7989 7992 7995 7998 8247 8558 8566 8809 8815 8821 8823 8825 8827 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 258 ; Cross Reference Listing 8829 8831 8833 8834 8835 8865 8884 (U) CLKR 732 # 2433 2435 2448 2470 2471 2702 2737 2741 2758 2760 2784 3127 3129 3400 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3784 3935 3937 3939 3941 3943 3945 3947 3949 3957 4039 4055 4120 4121 4122 4144 4167 4374 4413 4475 4529 4652 4829 4964 4972 5035 5080 5115 5119 5306 5307 5310 5311 5335 5336 5368 5369 5429 5430 5506 5522 5625 5626 5633 5649 5771 5806 5836 5837 5852 5934 5956 6183 6188 6257 6273 6274 6280 6319 6321 6328 6334 6343 6362 6414 6417 6422 6447 6453 6524 6618 6620 6690 6694 6748 6790 6794 6798 6802 6806 6810 6826 6924 6936 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7067 7107 7110 7138 7145 7149 7164 7170 7179 7187 7228 7232 7238 7263 7286 7297 7381 7383 7385 7387 7519 7721 7766 7840 7849 7851 7853 7855 7857 7859 8240 8243 8294 8298 8301 8306 8557 8561 8564 8575 8750 8755 8760 8766 8780 8843 (U) CLRFPD 1094 # 3703 3820 3826 4223 4723 4740 6406 (D) COND FUNC 1364 # 2562 2563 2567 2568 2572 2573 2577 2578 2615 2616 2620 2621 2625 2626 2630 2631 2635 2636 2640 2641 2645 2646 2650 2651 2657 2658 2662 2663 2667 2668 2672 2673 2677 2678 2682 2683 2687 2688 2692 2693 2812 2813 2822 2823 2832 2833 2842 2843 2847 2848 2857 2858 2864 2865 2874 2875 2884 2885 2894 2895 2904 2905 2914 2915 2925 2926 2935 2936 2945 2946 2955 2956 4068 4069 4082 4083 4130 4131 4155 4156 4322 4323 4327 4328 5277 5278 5281 5282 5285 5286 5289 5290 5322 5323 5327 5328 5351 5352 5356 5357 7249 (U) CRY38 959 # 2590 2960 3383 3433 3514 3540 3549 3552 4087 4104 4112 4117 4291 4295 4337 4381 4414 4437 4438 4444 4465 4491 4532 4533 4534 4550 4552 4559 4565 4596 4626 4631 4636 4641 4653 4657 4661 4663 4992 5049 5066 5116 5135 5153 5177 5265 5296 5371 5374 5375 5382 5393 5406 5498 5500 5502 5504 5515 5531 5560 5599 5712 5723 5730 5746 5787 5792 5813 5819 5853 5979 6012 6026 6047 6114 6150 6151 6152 6199 6263 6281 6284 6352 6369 6377 6396 6404 6405 6439 6441 6444 6492 6834 6955 6963 6969 7307 7407 7431 7444 7691 8702 8712 8809 8869 (U) DBM 704 # APR FLAGS 707 # 7019 7020 7082 7114 7313 BYTES 708 # DP 710 # 3054 4708 4713 4727 4748 4807 4808 4809 4810 4811 4901 4902 4903 4904 4905 6049 6059 6541 6671 6687 6859 6862 6902 6904 6975 DP SWAP 711 # 2402 2582 2729 2731 2734 2737 2740 2743 3282 3287 3606 3783 3842 3857 4827 4953 4969 5069 5109 5118 5191 6416 6473 6478 6479 6773 7106 7383 7396 7406 8739 EXP 709 # 5506 5522 5852 7338 7339 7340 MEM 713 # 2174 2281 2352 2365 2374 2378 2406 2417 2423 2436 3561 3585 3600 3622 3626 3630 3690 3735 3772 3860 4017 4780 4786 5172 5221 5928 5947 6367 6610 6638 6914 6928 6984 6992 6999 7131 7267 7271 7275 7279 7283 7323 7363 7485 7489 7501 7537 7543 7633 7714 7759 7762 7764 7872 7887 7911 7960 8291 8729 8790 8796 PF DISP 706 # 8261 SCAD DIAG 705 # VMA 712 # 7728 7971 8241 8256 8776 # 714 # 2162 2164 2166 2168 2171 2191 2192 2201 2204 2215 2232 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 259 ; Cross Reference Listing 2251 2255 2258 2261 2270 2273 2276 2279 2433 2435 2448 2470 2471 2530 2758 2760 2765 2767 2784 3055 3126 3128 3542 3551 3554 3556 3557 3558 3591 3593 3596 3599 3605 3619 3620 3634 3640 3653 3738 3767 3831 3848 3935 3937 3939 3941 3943 3945 3947 3949 3955 3959 3999 4003 4005 4008 4010 4038 4047 4053 4121 4122 4374 4411 4412 4422 4429 4475 4527 4554 4560 4652 4817 4959 4962 4966 4985 4989 4995 4999 5028 5033 5066 5071 5078 5122 5132 5228 5233 5241 5248 5253 5306 5307 5310 5311 5335 5336 5340 5368 5369 5405 5409 5429 5430 5524 5567 5569 5625 5626 5633 5649 5669 5670 5689 5692 5720 5722 5760 5763 5766 5769 5829 5836 5837 5896 5898 5900 5902 5904 5906 5908 5910 5912 5929 5931 5956 5972 5975 5988 6014 6017 6039 6087 6093 6101 6111 6113 6132 6139 6158 6171 6175 6182 6186 6187 6195 6199 6215 6257 6273 6274 6280 6286 6305 6318 6321 6327 6332 6340 6342 6368 6395 6399 6413 6415 6421 6433 6442 6447 6453 6469 6481 6484 6492 6504 6507 6519 6523 6538 6576 6580 6596 6608 6613 6617 6619 6634 6640 6654 6674 6680 6688 6691 6768 6789 6793 6797 6801 6805 6809 6819 6825 6924 6934 7001 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7044 7047 7057 7059 7072 7074 7076 7078 7080 7083 7085 7087 7098 7108 7111 7115 7136 7143 7147 7151 7158 7177 7198 7199 7200 7226 7232 7238 7243 7263 7286 7295 7314 7328 7378 7380 7381 7382 7384 7386 7388 7389 7390 7391 7392 7394 7425 7427 7438 7440 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7482 7486 7494 7503 7504 7515 7519 7533 7539 7545 7547 7561 7625 7628 7636 7643 7649 7663 7664 7675 7681 7695 7697 7711 7754 7840 7849 7851 7853 7855 7857 7859 7907 7908 8238 8242 8246 8247 8271 8273 8287 8292 8295 8296 8299 8305 8313 8542 8555 8559 8562 8563 8565 8571 8578 8580 8581 8582 8583 8586 8702 8712 8716 8726 8731 8744 8746 8748 8749 8751 8753 8756 8758 8762 8765 8770 8778 8800 8803 8821 8823 8825 8827 8829 8831 8835 8840 8843 (U) DBUS 695 # DBM 701 # 2162 2164 2166 2168 2171 2174 2191 2192 2201 2204 2215 2232 2251 2255 2258 2261 2270 2273 2276 2279 2281 2282 2352 2352 2365 2366 2374 2375 2378 2379 2402 2406 2407 2417 2418 2423 2424 2433 2435 2436 2437 2448 2470 2471 2530 2582 2729 2731 2734 2737 2740 2743 2758 2760 2765 2767 2784 3054 3055 3126 3128 3282 3287 3542 3551 3554 3556 3557 3558 3561 3562 3585 3586 3591 3593 3596 3599 3600 3601 3605 3606 3619 3620 3622 3626 3626 3630 3630 3634 3640 3653 3690 3691 3735 3736 3738 3767 3772 3772 3783 3831 3842 3848 3857 3860 3861 3935 3937 3939 3941 3943 3945 3947 3949 3955 3959 3999 4003 4005 4008 4010 4017 4018 4038 4047 4053 4121 4122 4374 4411 4412 4422 4429 4475 4527 4554 4560 4652 4708 4713 4727 4748 4780 4781 4786 4787 4807 4808 4809 4810 4811 4817 4827 4901 4902 4903 4904 4905 4953 4959 4962 4966 4969 4985 4989 4995 4999 5028 5033 5066 5069 5071 5078 5109 5118 5122 5132 5172 5173 5191 5221 5222 5227 5233 5241 5247 5253 5306 5307 5310 5311 5335 5336 5340 5368 5369 5405 5409 5429 5430 5506 5522 5524 5567 5569 5625 5626 5633 5649 5669 5670 5689 5692 5720 5722 5760 5763 5766 5769 5829 5836 5837 5852 5896 5898 5900 5902 5904 5906 5908 5910 5912 5928 5928 5929 5931 5947 5947 5956 5972 5975 5988 6014 6017 6039 6049 6059 6087 6093 6101 6111 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 260 ; Cross Reference Listing 6113 6132 6139 6158 6171 6175 6182 6186 6187 6195 6199 6215 6257 6273 6274 6280 6286 6305 6318 6321 6327 6332 6340 6342 6367 6367 6368 6395 6399 6413 6415 6416 6421 6433 6442 6447 6453 6469 6473 6478 6479 6481 6484 6492 6504 6507 6519 6523 6538 6541 6576 6580 6596 6608 6610 6610 6613 6617 6619 6634 6638 6638 6640 6654 6671 6674 6680 6687 6688 6691 6768 6773 6789 6793 6797 6801 6805 6809 6819 6825 6859 6862 6902 6904 6914 6914 6924 6928 6929 6934 6975 6984 6992 6999 6999 7001 7007 7016 7017 7018 7019 7020 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7044 7047 7057 7059 7072 7074 7076 7078 7080 7082 7083 7085 7087 7098 7106 7108 7111 7114 7115 7131 7132 7136 7143 7147 7151 7158 7177 7198 7199 7200 7226 7232 7238 7243 7263 7267 7267 7271 7271 7275 7275 7279 7279 7283 7283 7286 7295 7313 7314 7323 7324 7328 7338 7339 7340 7363 7363 7378 7380 7381 7382 7383 7384 7386 7388 7389 7390 7391 7392 7394 7396 7406 7425 7427 7438 7440 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7482 7485 7486 7489 7490 7494 7501 7501 7503 7504 7515 7519 7533 7537 7538 7539 7543 7543 7545 7547 7561 7625 7628 7633 7634 7636 7643 7649 7663 7664 7675 7681 7695 7697 7711 7714 7714 7728 7754 7759 7759 7762 7762 7764 7764 7840 7849 7851 7853 7855 7857 7859 7872 7873 7887 7907 7908 7911 7912 7960 7971 8238 8241 8242 8246 8247 8256 8261 8267 8271 8273 8287 8291 8292 8295 8296 8299 8305 8313 8542 8555 8559 8562 8563 8565 8571 8578 8580 8581 8582 8583 8586 8702 8712 8716 8726 8729 8730 8731 8739 8744 8746 8748 8749 8751 8753 8756 8758 8762 8765 8770 8776 8778 8790 8796 8800 8803 8821 8823 8825 8827 8829 8831 8835 8840 8843 DP 699 # 2186 2187 2502 2508 2534 2540 2546 2551 2554 2604 2785 2800 3035 3056 3091 3124 3130 3313 3400 3402 3419 3442 3445 3445 3448 3448 3451 3451 3454 3457 3457 3460 3460 3463 3463 3667 3708 3714 3723 3725 3753 3759 3788 3793 3821 3830 3991 4030 4034 4057 4120 4144 4167 4195 4203 4212 4214 4225 4225 4226 4227 4229 4231 4453 4469 4470 4471 4473 4476 4495 4497 4500 4627 4632 4637 4643 4644 4645 4723 4753 4908 5081 5130 5150 5176 5194 5219 5264 5456 5462 5774 5782 5818 5819 5820 5827 5979 6025 6045 6052 6062 6065 6100 6102 6104 6138 6145 6179 6221 6238 6240 6275 6276 6276 6288 6289 6296 6298 6322 6322 6325 6357 6363 6374 6379 6401 6402 6403 6561 6562 6607 6622 6695 6711 6748 6837 6837 6865 6906 6944 6952 6959 6964 6971 7297 7354 7356 7417 7590 7667 7709 7774 7776 7778 7892 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8248 8811 8847 8861 PC FLAGS 696 # 3641 3655 3702 3819 3825 4002 4031 4232 6980 7505 7517 8859 PI NEW 697 # 7464 RAM 700 # 2194 2302 2314 2329 2342 2370 2383 2384 2396 2397 2601 2702 2704 2735 2741 2794 2827 2837 2869 2879 2899 2909 2919 2950 2978 2981 2995 3001 3013 3016 3029 3100 3103 3289 3304 3307 3312 3383 3486 3500 3514 3522 3569 3577 3692 3730 3763 3785 3843 3856 4073 4087 4100 4103 4112 4114 4117 4135 4163 4191 4193 4205 4210 4228 4230 4333 4342 4343 4425 4427 4449 4456 4466 4626 4630 4631 4635 4636 4640 4641 4729 4733 4765 4773 4983 4992 4993 5005 5009 5044 5051 5056 5064 5120 5129 5192 5217 5299 5332 5364 5428 5563 5564 5574 5654 5666 5709 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 261 ; Cross Reference Listing 5717 5941 5944 5971 5974 5989 5992 6008 6012 6022 6029 6038 6041 6057 6061 6076 6077 6078 6079 6096 6110 6112 6130 6143 6149 6156 6162 6174 6177 6194 6197 6201 6205 6208 6210 6217 6219 6227 6229 6232 6268 6270 6271 6283 6284 6303 6308 6309 6310 6331 6336 6348 6354 6364 6372 6377 6383 6390 6396 6397 6398 6419 6439 6444 6449 6451 6468 6526 6557 6567 6570 6595 6604 6606 6631 6646 6708 6710 6753 6754 6761 6823 6828 6830 6835 6839 6841 6856 6858 6885 6909 6911 6942 6946 6950 6955 6956 6961 6969 6970 6973 7071 7105 7197 7254 7256 7258 7260 7262 7292 7301 7306 7312 7344 7345 7348 7369 7579 7593 7607 7609 7701 7704 7706 7712 7718 7720 7880 7959 7964 7968 7983 8001 8003 8004 8006 8245 8549 8589 8590 8591 8597 8786 8792 8801 8805 8817 (U) DEST 630 # A 631 # 2402 2418 2502 2534 2582 2729 2731 2734 2737 2740 2743 2785 3056 3091 3282 3287 3313 3400 3402 3442 3445 3448 3451 3454 3457 3460 3463 3606 3723 3725 3783 3821 3842 3857 4120 4144 4167 4225 4470 4476 4645 4708 4713 4723 4727 4748 4807 4808 4809 4810 4811 4827 4901 4902 4903 4904 4905 4953 4969 5069 5109 5118 5130 5191 5194 5219 5456 5462 5506 5522 5782 5827 5852 6025 6045 6049 6059 6062 6102 6138 6145 6179 6238 6240 6275 6276 6288 6289 6322 6325 6357 6363 6374 6379 6401 6402 6403 6416 6473 6478 6479 6541 6562 6622 6687 6695 6748 6773 6837 6859 6862 6865 6902 6904 6906 6944 6952 6959 6964 6971 6975 7106 7297 7383 7396 7406 7590 7778 8248 8739 AD 633 # 2162 2164 2166 2168 2171 2174 2176 2179 2188 2191 2192 2193 2194 2197 2204 2207 2215 2229 2232 2242 2244 2251 2255 2258 2261 2270 2273 2276 2279 2282 2289 2302 2308 2314 2329 2333 2342 2352 2366 2370 2375 2376 2379 2383 2384 2407 2413 2424 2427 2430 2433 2435 2448 2470 2471 2530 2590 2601 2702 2704 2735 2741 2751 2753 2758 2760 2765 2767 2772 2774 2784 2794 2817 2827 2837 2852 2869 2879 2889 2899 2909 2919 2920 2930 2940 2950 2960 2978 2981 2995 3029 3032 3055 3284 3289 3301 3304 3307 3312 3351 3383 3417 3433 3467 3470 3486 3500 3514 3522 3538 3539 3542 3551 3554 3556 3557 3558 3562 3565 3577 3586 3591 3592 3593 3596 3599 3601 3607 3619 3626 3627 3630 3634 3640 3641 3645 3648 3653 3655 3666 3691 3692 3702 3720 3730 3736 3738 3763 3767 3772 3785 3819 3825 3831 3840 3843 3845 3848 3856 3861 3935 3937 3939 3941 3943 3945 3947 3949 3955 3959 3961 3995 3999 4001 4002 4005 4010 4018 4031 4038 4042 4047 4053 4058 4073 4087 4100 4103 4107 4108 4112 4114 4117 4121 4122 4134 4140 4146 4148 4149 4162 4163 4168 4171 4172 4186 4202 4216 4232 4239 4332 4335 4337 4341 4342 4356 4362 4368 4374 4391 4411 4422 4423 4429 4440 4446 4455 4463 4475 4482 4485 4534 4549 4551 4552 4554 4559 4560 4573 4640 4641 4652 4653 4655 4657 4661 4662 4663 4733 4746 4752 4781 4787 4829 4840 4925 4926 4927 4928 4962 4971 4983 4985 4993 4995 4999 5002 5028 5041 5051 5054 5060 5071 5078 5114 5117 5120 5122 5129 5132 5156 5158 5160 5165 5180 5182 5183 5192 5217 5235 5241 5266 5267 5268 5296 5299 5302 5303 5304 5306 5307 5310 5311 5316 5332 5335 5336 5342 5362 5364 5368 5369 5370 5371 5406 5428 5429 5430 5460 5464 5465 5513 5515 5525 5528 5530 5531 5532 5543 5560 5561 5574 5579 5580 5587 5588 5598 5623 5625 5626 5630 5633 5650 5661 5673 5674 5703 5705 5706 5711 5712 5713 5721 5732 5734 5748 5749 5772 5788 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 262 ; Cross Reference Listing 5790 5792 5807 5809 5811 5813 5816 5836 5837 5853 5896 5898 5900 5902 5904 5906 5908 5910 5912 5928 5931 5933 5941 5942 5944 5947 5956 5967 5971 5974 5975 5981 5983 5988 5989 5990 5992 6000 6008 6010 6012 6014 6017 6022 6026 6029 6031 6032 6033 6038 6039 6041 6047 6056 6057 6061 6063 6068 6076 6077 6078 6079 6086 6087 6091 6093 6096 6101 6105 6110 6112 6115 6116 6117 6128 6130 6132 6139 6143 6147 6149 6150 6151 6152 6157 6158 6162 6171 6174 6175 6177 6182 6186 6187 6194 6197 6201 6205 6208 6210 6219 6227 6229 6232 6235 6246 6248 6257 6258 6262 6263 6268 6270 6271 6273 6274 6278 6280 6281 6283 6284 6286 6303 6305 6308 6309 6310 6316 6318 6321 6326 6327 6331 6332 6336 6338 6342 6345 6348 6350 6351 6352 6354 6362 6364 6365 6367 6368 6370 6372 6377 6383 6386 6390 6395 6396 6397 6398 6400 6404 6405 6406 6410 6414 6417 6419 6421 6433 6437 6439 6441 6442 6444 6447 6449 6451 6453 6455 6466 6468 6472 6481 6484 6518 6519 6523 6526 6535 6537 6542 6567 6570 6576 6580 6595 6596 6604 6606 6608 6610 6613 6617 6619 6631 6634 6636 6638 6640 6646 6654 6674 6680 6685 6688 6691 6693 6708 6710 6744 6753 6761 6770 6789 6793 6797 6801 6805 6809 6819 6823 6825 6828 6830 6834 6835 6839 6841 6856 6858 6861 6863 6884 6885 6903 6905 6914 6924 6929 6934 6942 6946 6950 6955 6956 6960 6961 6963 6967 6969 6970 6973 6980 6983 6991 6999 7007 7016 7017 7018 7019 7020 7022 7023 7024 7025 7026 7027 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7044 7047 7057 7059 7071 7072 7074 7075 7076 7079 7081 7082 7084 7086 7098 7105 7108 7111 7114 7115 7117 7132 7136 7143 7147 7158 7162 7169 7177 7181 7184 7186 7197 7198 7200 7215 7226 7227 7232 7238 7243 7244 7254 7256 7258 7260 7262 7263 7267 7271 7275 7279 7283 7286 7292 7295 7296 7301 7302 7304 7306 7307 7312 7313 7314 7324 7325 7328 7338 7339 7340 7343 7344 7345 7348 7355 7363 7369 7375 7379 7381 7382 7385 7387 7389 7391 7393 7395 7407 7408 7424 7425 7427 7431 7438 7440 7444 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7482 7486 7490 7492 7494 7496 7501 7505 7515 7517 7519 7521 7531 7533 7535 7538 7539 7541 7543 7547 7549 7561 7565 7579 7593 7603 7605 7607 7609 7612 7625 7628 7634 7637 7643 7649 7664 7675 7681 7694 7701 7704 7706 7712 7714 7718 7720 7721 7728 7754 7759 7762 7766 7768 7840 7849 7851 7853 7855 7857 7859 7873 7880 7890 7893 7907 7908 7912 7959 7964 7968 7971 7979 7983 7986 7989 7992 7995 7998 8001 8003 8004 8006 8238 8241 8242 8245 8247 8256 8267 8271 8273 8287 8292 8296 8299 8305 8307 8313 8546 8549 8555 8558 8559 8563 8565 8567 8570 8571 8578 8580 8582 8586 8589 8590 8591 8597 8706 8716 8721 8726 8730 8746 8749 8753 8758 8765 8770 8776 8778 8781 8786 8792 8800 8801 8805 8809 8815 8817 8819 8821 8823 8825 8827 8829 8831 8833 8834 8835 8840 8843 8859 8865 8867 8869 8880 8884 AD*.5 640 # 2165 2437 2439 2440 2997 3001 3013 3016 3018 3019 3023 3054 3106 3109 4184 4185 4191 4193 4203 4205 4210 4241 4403 4425 4431 4562 4563 4564 4570 4820 4831 4907 4956 4959 4966 4975 5377 5385 5387 5392 5393 5452 5501 5503 5519 5520 5539 5540 5545 5563 5564 5567 5569 5654 5655 5662 5666 5669 5670 5688 5709 5717 5720 5722 5846 5857 6480 6483 6487 6489 6569 6671 6677 6684 6747 7223 7225 7233 7239 7242 7545 7548 7566 7641 7647 8310 8326 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 263 ; Cross Reference Listing AD*2 638 # 2163 2985 3008 3021 3024 3051 4139 4166 4222 4465 4605 4729 5066 5075 5228 5248 5259 5372 5375 5380 5455 6217 6218 6474 6658 6764 7173 7192 7194 7493 7529 7673 7679 7770 8552 PASS 635 # 2173 2181 2183 2184 2187 2189 2190 2196 2198 2241 2245 2263 2320 2347 2356 2443 2508 2540 2546 2551 2554 2604 2800 2801 3124 3339 3419 3466 3471 3545 3581 3643 3654 3676 3708 3714 3743 3748 3753 3759 3788 3793 3827 3830 3858 3991 4030 4034 4057 4142 4170 4212 4227 4229 4231 4234 4409 4453 4473 4495 4497 4500 4627 4632 4637 4643 4644 4706 4709 4718 4753 4769 4777 4908 4965 4978 4988 4998 5030 5110 5138 5146 5262 5774 5818 5819 5820 5938 5945 5951 5954 5979 5984 6001 6046 6072 6073 6074 6089 6120 6136 6159 6172 6190 6221 6311 6313 6369 6375 6388 6394 6471 6527 6593 6605 6607 6647 6711 6741 6910 6912 6930 6947 6981 7045 7051 7093 7129 7202 7234 7268 7272 7276 7280 7284 7299 7310 7331 7334 7341 7354 7356 7364 7365 7398 7416 7417 7422 7449 7450 7500 7564 7631 7666 7667 7669 7698 7713 7732 7738 7740 7772 7774 7776 7869 7877 7885 7892 7904 7957 7972 7977 7978 7980 7981 7982 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8005 8244 8254 8255 8257 8258 8262 8265 8275 8277 8279 8281 8285 8286 8576 8592 8775 8844 8847 8861 Q_AD 634 # 2396 2994 3100 3126 3128 4135 4161 4200 4220 4228 4230 4240 4333 4343 4402 4412 4414 4427 4449 4452 4454 4456 4467 4480 4481 4484 4491 4499 4527 4532 4533 4550 4575 4626 4630 4631 4635 4636 4835 4911 4918 4980 4989 4992 5009 5033 5049 5056 5116 5173 5222 5233 5238 5253 5256 5313 5337 5340 5384 5395 5407 5411 5413 5414 5427 5440 5498 5500 5502 5504 5572 5581 5584 5589 5599 5604 5644 5649 5659 5672 5678 5690 5693 5723 5728 5733 5735 5746 5770 5786 5787 5805 5997 6156 6557 7764 Q_Q*.5 639 # 2397 2398 3084 3103 3112 3156 4136 4164 4243 4264 4265 4277 4284 4292 4302 4310 4405 4407 4415 4419 4435 4450 4457 4509 4557 5057 5224 5244 5245 5246 5260 5315 5338 5343 5418 5420 5450 5593 5618 5621 5629 5632 5634 5648 5683 5724 5738 5764 5767 5801 5803 5849 Q_Q*2 637 # 3004 3085 3088 3089 3090 3115 3119 3122 3157 3160 3161 4288 4296 4306 4314 4451 4461 4489 4492 4565 4568 4569 4572 4574 4596 4599 4611 4616 4836 4839 4912 4915 4920 5239 5240 5497 5509 5517 5521 5595 5600 5602 5614 5616 5617 5646 5687 5691 5740 5757 5779 5796 5824 5999 (U) DISP 869 # 4577 ADISP 876 # AREAD 872 # 2334 BDISP 877 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 3284 3290 3383 3402 3403 3486 3500 3514 3524 3709 3716 3754 4074 4088 4140 4146 4169 4171 5223 5452 5460 5464 5510 5522 5532 5539 5943 5985 6129 6184 6391 6745 6817 6824 7579 7606 7624 7635 7662 8568 8868 BYTE 882 # 4721 4738 6166 6869 6890 CONSOLE 870 # DP 875 # 4443 4445 4462 4487 6490 6517 8811 DP LEFT 873 # 6476 6771 7465 8263 DROM 871 # 2367 2371 2380 2385 2393 2414 2420 2444 2449 5952 5955 EAMODE 883 # 2292 2358 3567 4760 4763 5939 6907 6915 7703 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 264 ; Cross Reference Listing MUL 879 # 4284 4292 4302 4310 5596 5622 5624 5741 NICOND 881 # 2241 2242 2244 2245 2305 2311 2535 3056 3102 3130 3339 3351 3442 3466 3467 3470 3471 3538 3539 3565 3607 3724 3800 3807 4234 4498 4501 4709 5456 5462 5821 7398 7669 8248 NORM 874 # 5316 5345 5422 5497 5499 5509 5513 5515 5517 5518 5521 5543 5694 5748 5749 5759 5761 5781 5791 5793 5798 5799 5826 5855 PAGE FAIL 880 # RETURN 878 # 2470 2471 3572 3576 4040 4043 4246 4289 4297 4307 4315 4509 4531 4532 4534 4618 4645 4747 4749 4753 4788 4821 4840 4908 5122 5259 5260 5542 5544 5545 5634 5829 5836 5837 5852 6241 6251 6256 6259 6297 6298 6448 6454 6625 6648 6713 6744 6756 6787 6803 6820 6829 6831 6857 6892 6925 6931 6936 6976 7244 7311 7335 7410 7454 7562 7565 7637 7644 7650 7707 7715 7719 7722 7748 7760 7762 7764 7766 7768 7770 7772 7774 7776 7778 7969 7973 8007 8598 8796 8884 SCAD0 884 # 4708 4713 4727 4803 5299 5442 5444 5997 5999 6050 6860 6902 7734 (U) DIVIDE 970 # 4568 4569 4613 4617 (U) DONT CACHE 1140 # (U) DP FUNC 1157 # 7631 7666 7772 8577 8593 (U) DT 939 # 2T 942 # 3T 943 # 2194 2384 2396 2397 2507 2539 2545 2550 2553 2603 2794 2800 3001 3013 3016 3030 3100 3103 3345 3348 3357 3360 3419 3448 3451 3460 3463 3605 3605 3620 3620 3707 3713 3752 3758 3829 3990 4003 4008 4029 4033 4056 4100 4112 4138 4143 4205 4210 4228 4230 4343 4345 4347 4351 4365 4404 4410 4425 4427 4439 4449 4456 4469 4550 4626 4628 4630 4631 4633 4635 4636 4638 4654 4661 4708 4713 4721 4727 4729 4738 4753 4908 4979 4983 4992 4993 5008 5038 5051 5056 5120 5149 5175 5192 5264 5316 5345 5362 5382 5388 5390 5422 5463 5497 5499 5505 5509 5513 5515 5517 5518 5521 5524 5529 5543 5564 5666 5685 5689 5692 5694 5706 5717 5736 5748 5749 5759 5760 5761 5763 5766 5769 5778 5781 5787 5791 5793 5798 5799 5823 5826 5829 5847 5855 5929 5971 5972 5989 5992 6008 6012 6022 6029 6038 6041 6057 6061 6076 6077 6078 6079 6096 6110 6111 6113 6130 6143 6149 6153 6156 6162 6166 6177 6194 6195 6197 6201 6205 6206 6208 6210 6215 6217 6219 6227 6229 6232 6268 6270 6271 6282 6283 6284 6285 6303 6309 6336 6340 6348 6353 6354 6364 6372 6377 6383 6390 6396 6397 6398 6399 6413 6415 6419 6469 6504 6507 6526 6557 6561 6567 6570 6574 6595 6604 6606 6607 6611 6631 6632 6646 6708 6710 6753 6754 6755 6761 6768 6823 6828 6830 6835 6839 6841 6856 6858 6869 6885 6890 6942 6946 6950 6955 6956 6961 6969 6970 6973 7019 7020 7071 7078 7080 7082 7083 7085 7087 7105 7114 7197 7254 7256 7258 7260 7262 7292 7301 7306 7308 7312 7313 7342 7344 7345 7348 7354 7356 7369 7378 7380 7384 7386 7388 7390 7392 7394 7417 7631 7636 7663 7666 7667 7695 7697 7701 7704 7706 7711 7718 7720 7772 7774 7776 7892 7959 7964 7965 7968 7977 7978 7980 7981 7983 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8001 8002 8003 8004 8006 8245 8246 8295 8542 8549 8562 8581 8583 8589 8590 8591 8597 8731 8744 8748 8751 8756 8762 8786 8792 8801 8803 8805 8817 8846 8860 4T 944 # ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 265 ; Cross Reference Listing 5T 945 # (U) EXT ADR 1163 # 3971 3995 4015 4042 6988 6996 7500 7542 7631 7666 7772 7890 7893 7976 7979 7986 7989 7992 7995 7998 8708 8724 8845 8881 8884 (U) FETCH 1129 # 2241 2242 2244 2245 2264 2290 2304 2310 2357 2418 2443 3033 3339 3351 3466 3467 3470 3471 3538 3539 3565 3607 3722 4234 4709 4718 7398 7669 7905 8803 (D) FL-B 1352 # AC 1353 # 5276 5279 5280 5284 5287 5288 5321 5325 5326 5350 5354 5355 5400 5401 5435 5436 BOTH 1355 # 5278 5282 5286 5290 5323 5328 5352 5357 MEM 1354 # 5277 5281 5285 5289 5322 5327 5351 5356 (U) FLG.C 1318 # 8293 8562 8583 8747 8750 (U) FLG.PI 1317 # 3635 8744 8843 (U) FLG.SN 1319 # 5524 5625 5626 5633 5760 5763 5766 5769 5829 5836 5837 (U) FLG.W 1316 # 8293 8581 8747 8759 (U) FMWRITE 965 # 2173 2181 2183 2184 2186 2187 2189 2190 2196 2198 2502 2534 2785 3035 3056 3091 3124 3130 3313 3402 3442 3445 3448 3451 3454 3457 3460 3463 3676 3723 3725 3788 3793 3821 4195 4203 4212 4214 4225 4226 4227 4229 4231 4453 4469 4470 4471 4473 4476 4495 4497 4500 4627 4632 4637 4643 4644 4645 4706 4723 4965 4978 4988 4998 5030 5081 5130 5194 5219 5456 5462 5774 5782 5818 5819 5820 5827 5938 5951 5954 5979 5984 6001 6025 6045 6046 6052 6062 6065 6072 6073 6074 6089 6100 6102 6104 6120 6136 6138 6145 6159 6172 6179 6190 6221 6238 6240 6275 6276 6288 6289 6296 6298 6311 6313 6322 6325 6357 6363 6369 6374 6375 6379 6388 6394 6401 6402 6403 6562 6593 6622 6695 6711 6741 6837 6865 6906 6930 6944 6947 6952 6959 6964 6971 6981 7093 7202 7268 7272 7276 7280 7284 7299 7310 7331 7334 7364 7365 7449 7450 7590 7698 7732 7738 7740 7778 7885 7957 7972 7982 8244 8248 8254 8255 8257 8258 8265 8275 8277 8279 8281 8285 8286 8775 (U) FORCE EXEC 1127 # 3971 3995 4015 4042 6988 6996 7486 7500 7502 7516 7533 7542 7550 7625 7628 7664 7675 7681 7890 7893 7907 7976 7979 7986 7989 7992 7995 7998 8708 8724 8845 8881 8884 (U) FORCE USER 1126 # 3971 3995 4015 4042 6988 6996 7486 7500 7533 7542 7625 7628 7664 7675 7681 7890 7893 7907 7976 7979 7986 7989 7992 7995 7998 8708 8724 8845 8881 8884 (U) GENL 727 # 2242 2244 2289 2302 2303 2309 2314 2329 2330 2342 2353 2376 2704 2735 2743 2765 2767 3351 3467 3470 3538 3539 3540 3549 3552 3565 3577 3607 3631 3645 3773 3832 3846 3850 3995 4007 4012 4042 4058 4109 4752 4782 4991 5050 5073 5122 5134 5156 5160 5165 5180 5183 5193 5245 5246 5266 5268 5341 5604 5941 5944 5947 5988 6014 6017 6033 6039 6068 6087 6093 6101 6105 6116 6128 6132 6139 6158 6186 6263 6278 6316 6351 6368 6395 6406 6410 6466 6472 6519 6576 6580 6615 6640 6681 6686 6744 6863 6905 6914 7073 7099 7113 7182 7198 7200 7244 7325 7330 7355 7389 7391 7393 7395 7407 7467 7468 7469 7470 7471 7472 7473 7495 7565 7691 7712 7712 7893 7909 7979 7986 7989 7992 7995 7998 8247 8558 8566 8809 8815 8821 8823 8825 8827 8829 8831 8833 8834 8835 8865 8884 (U) GENR 734 # 2433 2435 2448 2470 2471 2702 2737 2741 2758 2760 2784 3127 3129 3400 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3784 3935 3937 3939 3941 3943 3945 3947 3949 3957 4039 4055 4120 4121 4122 4144 4167 4374 4413 4475 4529 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 266 ; Cross Reference Listing 4652 4829 4964 4972 5035 5080 5115 5119 5306 5307 5310 5311 5335 5336 5368 5369 5429 5430 5506 5522 5625 5626 5633 5649 5771 5806 5836 5837 5852 5934 5956 6183 6188 6257 6273 6274 6280 6319 6321 6328 6334 6343 6362 6414 6417 6422 6447 6453 6524 6618 6620 6690 6694 6748 6790 6794 6798 6802 6806 6810 6826 6924 6936 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7067 7107 7110 7138 7145 7149 7164 7170 7179 7187 7228 7232 7238 7263 7286 7297 7381 7383 7385 7387 7519 7721 7766 7840 7849 7851 7853 7855 7857 7859 8240 8243 8294 8298 8301 8306 8557 8561 8564 8575 8750 8755 8760 8766 8780 8843 (U) HALT 1295 # BW14 1305 # 2530 CSL 1299 # 2261 2279 HALT 1298 # 3593 ILLII 1302 # 7515 ILLINT 1303 # 7547 IOPF 1301 # 8800 MULERR 1307 # 2204 NICOND 5 1306 # POWER 1297 # 2232 (U) HOLD USER 1096 # 2230 2591 3417 3433 3500 3514 3571 3575 3611 3633 3703 3715 3771 3801 3805 3820 3826 4021 4074 4088 4105 4115 4118 4148 4149 4173 4223 4235 4245 4248 4355 4390 4421 4507 4656 4658 4723 4740 4762 5014 5366 5378 5443 5731 6405 6406 7005 (D) I 1360 # 2561 2566 2571 2576 2614 2619 2624 2629 2634 2639 2644 2649 2656 2661 2666 2671 2676 2681 2686 2691 2810 2811 2812 2813 2821 2831 2841 2846 2856 2863 2873 2883 2893 2902 2903 2904 2905 2913 2924 2934 2944 2953 2954 2955 2956 2968 2969 3188 3189 3190 3191 3192 3193 3194 3195 3197 3198 3206 3207 3208 3209 3210 3211 3212 3213 3224 3225 3226 3227 3228 3229 3230 3231 3241 3242 3243 3244 3245 3246 3247 3248 3363 3364 3365 3366 3367 3368 3369 3370 3475 3476 3477 3478 3479 3480 3481 3482 3489 3490 3491 3492 3493 3494 3495 3496 3503 3504 3505 3506 3507 3508 3509 3510 3517 3518 3529 3531 3682 3683 3684 3685 3779 3812 3813 3814 3815 3868 3869 3870 3871 3872 3873 3874 3875 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3914 3915 3916 3917 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 4067 4081 4129 4154 4321 4326 5125 5401 5865 5866 5867 5868 5869 5870 5871 5873 5874 5875 5876 5878 5879 5880 5881 5883 5884 5885 5886 5887 5888 5889 5890 5924 7783 7784 7785 7787 7788 7790 7791 7793 7794 7795 7796 7797 7798 7799 7800 7802 7803 7804 7805 7806 7807 7808 7809 7811 7812 7813 7814 7815 7816 7817 7818 7820 7821 7822 7823 7824 7825 7826 7827 7829 7830 7831 7832 7833 7834 7835 7836 (U) I.CO3 1191 # (U) I.CO4 1192 # (U) I.CO5 1193 # (U) I.CO6 1194 # (U) I.CO7 1195 # (U) IO BYTE 1176 # 7626 7676 7682 (U) IO CYCLE 1170 # 7486 7533 7625 7628 7664 7675 7681 7907 (U) J 532 # 2334 2367 2371 2380 2385 2393 2414 2420 2444 2449 2470 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 267 ; Cross Reference Listing 2471 3572 3576 4040 4043 4246 4289 4297 4307 4315 4509 4531 4532 4534 4578 4618 4645 4747 4749 4753 4788 4821 4840 4908 5122 5259 5260 5542 5544 5545 5634 5829 5836 5837 5852 5952 5955 6241 6251 6256 6259 6297 6298 6448 6454 6625 6648 6713 6744 6756 6787 6803 6820 6829 6831 6857 6892 6925 6931 6936 6976 7244 7311 7335 7410 7454 7562 7565 7637 7644 7650 7707 7715 7719 7722 7748 7760 7762 7764 7766 7768 7770 7772 7774 7776 7778 7901 7969 7973 8007 8598 8796 8884 ABORT 8796 # 3962 8777 ACBSET 7158 # 7140 AC_ARX 7778 # 3847 6962 ADD 4073 # 4066 4067 4068 4069 ADDCRY 6256 # 6231 6237 6250 ADJBP 4953 # 4707 ADJBP0 4956 # 4958 ADJBP1 4975 # 4977 ADJBP2 4985 # 4982 ADJBP3 5028 # 5013 ADJBP4 5040 # 5052 ADJBP5 5054 # 5048 ADJBP6 5075 # 5077 ADJSP 3783 # 3779 ADJSP1 3800 # 3792 ADJSP2 3805 # 3797 AND 2827 # 2820 2821 2822 2823 2852 ANDCA 2837 # 2830 2831 2832 2833 2889 ANDCB 2889 # 2882 2883 2884 2885 ANDCM 2852 # 2845 2846 2847 2848 AOBJ 3522 # 3517 3518 AOJ 3500 # 3489 3490 3491 3492 3493 3494 3495 3496 AOS 3417 # 3406 3407 3408 3409 3410 3411 3412 3413 APRID 7057 # APRSO 7044 # 7020 APRSZ 7047 # 7019 ARSIGN 2470 # 2412 ASH 2994 # 2965 ASHC 3097 # 2969 ASHC1 3103 # 3101 ASHCL 3119 # 3108 3121 ASHCQ1 3130 # 3091 3127 ASHCR 3112 # 3114 ASHCX 3124 # 3116 ASHL 3004 # 3004 ASHL0 3001 # 2994 ASHR 2997 # 2983 ASHX 3008 # 3021 ASHXX 3021 # 3026 BACKBP 6975 # 6943 6951 BACKD 6950 # 8826 8834 8836 BACKS 6942 # 8833 BADDATA 8284 # 8269 BDABT 6419 # 6355 BDCFLG 6421 # 6400 BDEC 6303 # BDEC0 6309 # 6307 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 268 ; Cross Reference Listing BDEC1 6316 # 6325 BDEC2 6321 # 6329 BDEC3 6331 # 6317 6339 BDEC4 6336 # 6331 BDEC5 6348 # 6334 6344 BDECLP 6386 # 6405 BDFILL 6370 # 6379 BDSET 6394 # 6414 6417 BDSUB 6433 # 6337 6387 BDSUB1 6437 # 6434 BDSUB2 6453 # 6456 BDTBL 6410 # 6393 BITCHK 6924 # 5930 5973 6111 6113 6470 BIXUB 7603 # 7596 7597 7598 7599 BIXUB1 7612 # 7608 7610 BLT 5129 # 5125 BLT-CLEANUP 5190 # 8818 BLTBU1 5244 # 5225 BLTCLR 5149 # 5164 BLTGOT 5177 # 5152 BLTGO 5175 # 5141 5169 BLTLP 5172 # 5187 BLTLP1 5138 # 5174 BLTX 5217 # 7846 BLTXLP 5221 # 5270 BLTXV 5256 # 5242 BLTXW 5262 # 5257 BOTH 2342 # BWRITE 2481 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 4074 4088 4140 4146 4169 4171 8568 8868 BYTEAS 4760 # 4784 6867 BYTEA 4762 # 4717 4736 BYTEA0 4765 # 4761 BYTFET 4786 # 4768 4772 6909 6910 BYTIND 4780 # 4776 CAIM 3383 # 3364 3365 3366 3367 3368 3369 3370 3372 3373 3374 3375 3376 3377 3378 3379 CHKSN 5829 # 5810 CLARXL 7766 # 5113 7540 CLARX0 6447 # 4656 4658 4662 4663 6178 6312 6438 CLDISP 8811 # 6944 6952 6965 6971 8806 CLEANED 8814 # 5195 8808 CLEANUP 8813 # 8811 CLRB1 6298 # 6296 CLRBIN 6296 # 6181 6277 CLRFLG 6934 # 5977 6349 CLRPTL 7431 # 7434 CLRPT 7422 # CLRSN 5837 # 5615 5705 CMPDST 6162 # 6142 CMS 6110 # CMS2 6151 # 6121 CMS3 6127 # 6153 6157 CMS4 6130 # ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 269 ; Cross Reference Listing CMS5 6156 # 6135 CMS6 6142 # 6159 CMS7 6147 # 6144 CMS8 6158 # 6156 CMSDST 6946 # 8832 COM0 4645 # 4640 4641 COM0A 4640 # 4644 COM1 4644 # 4635 COM1A 4635 # 4643 COM2 4643 # 4630 COM2A 4630 # CONSO 7045 # 7027 CONSZ 7051 # 7026 CONT 7904 # 7899 CONT1 7911 # 4061 CPYSGN 4120 # 4106 4116 DAC 2502 # 2509 2779 6419 DADD 4100 # 4095 DADD1 4103 # 4109 DBABT 6262 # 6198 6202 DBDN1 6275 # 6273 DBDONE 6270 # 6264 6289 DBFAST 6215 # 6211 DBIN 6171 # DBIN1 6186 # 6189 DBIN2 6190 # 6186 DBINLP 6194 # 6212 6222 DBLDBL 6246 # 6234 6245 DBLDIV 4596 # 4450 4460 5733 5737 DBLMUL 4240 # 4211 DBLNEG 4652 # 2794 DBLNGA 4653 # 2784 DBLNG1 4661 # 4375 6321 DBNEG 6280 # 6269 DBSLOW 6227 # 2195 6209 DBSLO 6208 # 6216 DBXIT 6268 # 6196 DDIV 4402 # 4397 DDIV1 4419 # 4406 4410 DDIV2 4422 # 4420 DDIV3A 4427 # 4432 DDIV3 4423 # 4417 DDIV4 4435 # 4428 DDIV5A 4449 # 4440 DDIV5B 4473 # 4464 DDIV5C 4475 # 4470 DDIV5 4443 # 4439 DDIV6 4478 # 4471 4473 DDIV7 4480 # DDIV8A 4489 # DDIV8 4487 # 4480 DDIV9 4495 # 4490 DDIVS 4509 # 4436 4454 5729 DFAD 5563 # 5550 DFADJ 5614 # 5579 5587 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 270 ; Cross Reference Listing DFADJ1 5621 # 5622 DFADJ2 5623 # DFADJ3 5629 # 5625 5629 DFADJ4 5630 # 5626 DFADJ5 5632 # 5624 5633 DFADJ6 5634 # 5632 DFAS1 5572 # 5568 5570 DFAS2 5579 # 5573 DFAS3 5584 # 5575 DFAS5 5593 # 5581 5589 DFAS6 5598 # 5599 DFAS7 5600 # 5598 DFDV 5703 # 5700 DFDV1 5709 # 5716 DFDV2 5717 # 5710 DFDV3 5728 # 5720 DFDV4A 5743 # 5746 DFDV4B 5748 # 5745 DFDV4 5730 # 5726 DFMP 5644 # 5639 DFMP1 5646 # 5647 DFMP2 5672 # 5669 DFPR1 2435 # 2429 DFPR2 2436 # 2434 DFSB 5560 # 5551 DIV 4341 # 4325 4326 4327 4328 DIV1 4350 # 4336 4338 4392 DIV2 4353 # 4366 DIVA 4362 # 4348 DIVB 4368 # 4363 DIVC 4381 # 4373 4378 DIVHI 4603 # 4597 4600 4614 DIVIDE 4568 # 4568 DIVSET 4562 # 4558 DIVSGN 4548 # 4530 5384 DIVSUB 4527 # 4354 4987 4997 5031 DMLINT 4248 # 4213 DMOVNM 2794 # 2789 DMOVN 2784 # 2780 DMOVN1 2796 # 2788 DMTRAP 4232 # 4226 DMUL 4184 # 4179 DMUL1 4205 # 4194 DMUL2 4210 # 4204 DMULGO 4239 # 4192 DNEG 5786 # 5760 5763 5766 5769 DNEG1 5788 # 5786 DNEG2 5790 # 5787 DNN1 5816 # 5812 DNN2 5818 # 5814 DNNORM 5796 # 5749 5791 5793 5798 5826 DNNRM1 5823 # 5806 DNORM 5757 # 5695 5748 5759 5781 DNORM0 5694 # 5604 DNORM1 5778 # 5771 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 271 ; Cross Reference Listing DNORM2 5820 # 5818 DOCVT 6308 # 6358 6374 DOCVT1 6383 # 6308 DOCVT2 6404 # 6384 DOCVT3 6401 # 6423 DONE 2241 # 2541 2555 2855 2856 3035 3188 3189 3197 3198 3298 3342 3345 3348 3363 3475 3726 3834 3851 4235 4740 5082 5157 5181 5266 7051 7094 7166 7268 7272 7276 7280 7284 7332 7356 7366 7417 7451 7590 DPB 4729 # 4702 DPB1 4900 # 4739 6891 DPB7 4907 # 4901 4902 4903 4904 4905 4929 DPBSLO 4911 # 4900 DRND1 5852 # 5848 5856 5859 DROUND 5846 # 5762 5765 5768 5800 5802 5804 5850 DSMS1 7564 # 7561 7566 DSTEA 6909 # 6915 DSTIND 6914 # 6911 6912 DSUB 4112 # 4096 DUMP 7976 # 7960 7967 DVSUB1 4554 # 4551 DVSUB2 4555 # 4549 DVSUB3 4557 # 4561 EACALC 2296 # 2359 EAPF1 8880 # 8862 EDBYTE 6646 # 6609 6637 EDEXMD 6557 # 6528 EDFILL 6573 # EDFIL1 6588 # 6575 EDFLT 6604 # 6550 6594 EDFLT1 6622 # 6618 6620 EDISP 6487 # 6481 EDISP1 6489 # 6489 EDIT 6466 # EDITLP 6471 # 6695 EDMSG 6631 # 6496 EDMSG1 6640 # 6633 EDN1A 6677 # 6682 EDNOP 6666 # 6498 6500 6502 6516 6525 6551 6562 6583 6589 6642 6643 6657 EDNOP1 6667 # 6661 EDNOP2 6684 # 6678 6684 EDOPR 6516 # 6493 EDSEL 6567 # 6520 EDSFLT 6593 # 6577 EDSKP 6654 # 6505 6508 6510 EDSKP1 6658 # 6655 EDSPUT 6580 # 6588 6598 EDSSIG 6550 # 6522 EDSTOP 6535 # 6518 6578 EDSTP1 6541 # 6544 ENDSKP 6278 # 6102 EQV 2899 # 2892 2893 2894 2895 EXCH 2601 # 2597 EXTDSP 5942 # ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 272 ; Cross Reference Listing EXTEA 5941 # EXTEA0 5938 # 5936 EXTEA1 5939 # 5947 EXTEND 5928 # 5924 EXTEXT 5951 # 5943 5957 EXTIND 5947 # 5944 FAD 5299 # 5276 5277 5278 5279 5280 5281 5282 FAS1 5301 # FAS2 5310 # 5301 FAS3 5313 # 5306 5307 5310 5311 FAS4 5315 # 5315 FDV 5362 # 5350 5351 5352 5354 5355 5356 5357 FDV0 5368 # 5365 FDV1 5370 # 5368 FDV2 5371 # 5369 FDV3 5372 # 5370 5371 FDV4 5374 # 5375 FDV5 5377 # 5374 FDV6 5380 # 5377 FDV7 5384 # 5385 FDV8 5387 # FDV9 5395 # 5387 5392 5393 FETIND 2352 # 2317 2322 2344 FIX 5440 # 5435 5436 FIX++ 4572 # 4573 FIX1++ 4574 # 4572 FIXL 5455 # 5445 5455 FIXPC 8809 # 4248 6435 FIXR 5450 # 5451 FIXT 5462 # 5459 FIXX 5459 # 5452 FIXX1 5460 # 5466 FL-BWRITE 2528 # 5460 5464 5510 5532 FLEX 5510 # 5506 FLTR 5405 # 5400 FLTR1A 5413 # 5410 FLTR1 5409 # 5406 FLTR2 5418 # 5411 5413 FLTR3 5420 # 5421 FMP 5332 # 5321 5322 5323 5325 5326 5327 5328 FMP1 5337 # 5335 5336 FP-LONG 3947 # 3925 3926 3927 3928 3929 3930 FPR0 2409 # 2403 FPR1 2413 # FSB 5296 # 5284 5285 5286 5287 5288 5289 5290 FSC 5426 # 5401 GETPCW 7238 # 3993 GETSRC 6858 # 6133 6568 GOEXEC 4017 # 8882 GRP700 7056 # 7012 GRP701 7030 # 7013 GRP702 7253 # 7249 GSRC 6856 # 6090 6743 GSRC1 6865 # 6861 GTFILL 6928 # 5970 6467 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 273 ; Cross Reference Listing GTPCW1 7242 # 7233 7242 H1 7895 # 7961 HALT 3591 # 3543 HALTED 7885 # 2204 2261 2279 2530 3593 7515 7547 8800 HALTLP 7901 # 7895 HARD 8775 # 7754 8271 8273 8287 HLL 2704 # 2613 2614 2657 2729 HLLE 2770 # 2643 2644 2645 2646 HLLO 2774 # 2633 2634 2635 2636 HLLZ 2772 # 2623 2624 2625 2626 HLR 2731 # 2660 2661 HLRE 2763 # 2690 2691 2692 2693 HLRM 2740 # 2662 HLRO 2767 # 2680 2681 2682 2683 HLRS 2743 # 2663 HLRZ 2765 # 2670 2671 2672 2673 HRL 2729 # 2618 2619 HRLE 2756 # 2648 2649 2650 2651 HRLM 2734 # 2620 HRLO 2760 # 2638 2639 2640 2641 HRLS 2737 # 2621 HRLZ 2758 # 2628 2629 2630 2631 HRR 2702 # 2615 2655 2656 2731 HRRE 2749 # 2685 2686 2687 2688 HRRO 2753 # 2675 2676 2677 2678 HRRZ 2751 # 2665 2666 2667 2668 HSBDON 8003 # IBP 4705 # 4698 IBPS 4746 # 4708 4713 4727 IBPX 4753 # 3844 4746 IDIV 4332 # 4320 4321 4322 4323 IDPB 4727 # 4701 IDST 6902 # 6163 6886 IDSTX 6906 # 6903 ILDB 4713 # 4699 IMUL 4134 # 4128 4129 4130 4131 IMUL1 4140 # 4357 IMUL2 4142 # 4139 IMUL3 4148 # 4145 INCAR 7768 # 6064 7520 INCPC 2289 # 2284 INDEX 2329 # INDRCT 2347 # IOEA 7691 # 7623 7661 IOEA1 7697 # 7699 IOEA2 7701 # 7697 IOEAI 7709 # 7702 IOEAX 7718 # 7705 IOR 2879 # 2872 2873 2874 2875 2940 IORD 7622 # 7578 7589 7604 IORD1 7631 # 7627 IORD2 7641 # 7636 IORD3 7647 # 7642 7648 IOT700 7840 # 7783 7784 7785 IOT710 7842 # 7787 7788 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 274 ; Cross Reference Listing IOT720 7849 # 7790 7791 IOT730 7851 # 7793 7794 7795 7796 7797 7798 7799 7800 IOT740 7853 # 7802 7803 7804 7805 7806 7807 7808 7809 IOT750 7855 # 7811 7812 7813 7814 7815 7816 7817 7818 IOT760 7857 # 7820 7821 7822 7823 7824 7825 7826 7827 IOT770 7859 # 7829 7830 7831 7832 7833 7834 7835 7836 IOW1 7731 # 7736 IOW2 7743 # 7733 7739 IOW3 7746 # 7753 IOW4 7751 # 7747 IOW5 7754 # 7741 IOWAIT 7727 # 7632 7668 IOWR 7660 # 7593 7613 IOWR1 7666 # 7676 7682 IOWR2 7673 # 7663 IOWR3 7679 # 7674 7680 ITRAP 8255 # 6066 JEN 3599 # 3553 JEN1 7561 # 3605 3620 JEN2 3605 # 3597 JFCL 3611 # 3531 JFFO 3029 # 2968 JFFO1 3037 # 3034 JFFOL 3051 # 3053 JMPA 3454 # 3862 JRA 3856 # 3815 JRST 3538 # 3479 3529 JRST0 3567 # 3564 3588 3603 JRST1 3585 # 3580 3584 JRST10 3596 # 3550 JRSTF 3561 # 3541 JSA 3840 # 3814 JSP 3819 # 3813 JSR 3825 # 3812 JSTAC 3720 # 3710 3717 3755 JSTAC1 3723 # 3774 JSYS 3941 # 3922 JUMP 3486 # 3476 3477 3478 3480 3481 3482 JUMP-TABLE 3439 # 3486 3500 3514 3524 JUMP- 3466 # 3445 3448 3451 3614 JUMPA 3470 # 3454 3457 3460 3463 3822 4023 KIEPT 8721 # 8715 8718 KIF10 8712 # 8705 KIF30 8729 # 8710 8725 KIF40 8736 # 8740 KIF50 8744 # 8738 8767 8782 KIF80 8765 # KIF90 8770 # 8761 KIFILL 8700 # 8327 KIMUUO 4029 # 3972 KIUPT 8706 # 8728 L-BDEC 5902 # 5875 5876 L-CMS 5896 # 5865 5866 5867 5869 5870 5871 L-DBIN 5900 # 5873 5874 L-EDIT 5898 # 5868 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 275 ; Cross Reference Listing L-MVS 5904 # 5878 5879 5880 5881 L-SPARE-A 5908 # 5884 L-SPARE-B 5910 # 5885 L-SPARE-C 5912 # 5886 5887 5888 5889 5890 L-XBLT 5906 # 5883 LDB 4715 # 4700 LDB1 4802 # 4722 6166 6871 LDB7 4816 # 4807 4808 4809 4810 4811 LDBSH 4831 # 4826 LDBSWP 4825 # 4804 LDPI2 7407 # 3606 7396 LOADAR 7759 # 6412 6475 6558 7693 LOADARX 7762 # 6767 7327 LOADPI 7406 # 2207 LOADQ 7764 # 5131 6119 LSH 2978 # 2967 LSHC 3080 # 2971 LSHCL 3088 # 3080 3088 LSHCR 3084 # 3084 LSHCX 3090 # 3085 3157 3162 LSHL 2985 # 2980 LUUO 4047 # 3868 3869 3870 3871 3872 3873 3874 3875 LUUO1 4050 # 5896 5898 5900 5902 5904 5906 5908 5910 5912 MAP 8238 # 8234 MAPDON 8865 # 8820 MOVE 2588 # 2562 2585 2592 2616 2658 2840 2841 2842 2843 2857 2858 4121 4122 4148 4149 4173 4983 MOVELP 6008 # 5988 6017 MOVF1 6708 # 6714 MOVFIL 6714 # 6040 6101 MOVLP0 6017 # 6002 MOVM 2585 # 2575 2577 2578 MOVN 2590 # 2570 2571 2572 2573 MOVPAT 6483 # 6478 6480 6483 MOVRJ 6038 # 5994 MOVS 2582 # 2565 2566 2567 2568 2735 2741 2758 2760 2765 2767 MOVSTX 6091 # MOVST0 6086 # 5991 MOVST1 6087 # 6042 6097 MOVST2 6100 # 6011 6092 MOVST3 6104 # 6100 MOVST4 6096 # 6053 MSKPAT 6484 # 6479 MUL 4161 # 4153 4154 4155 4156 MUL+ 4283 # 4267 4279 4285 4303 MUL- 4301 # 4293 4311 MULBY4 6245 # 6228 MULSB1 4265 # 5655 MULSUB 4264 # 4137 4165 5058 5339 MULTIPLY 4276 # 4244 5660 5672 5679 MUUO 3954 # 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 MVABT 6022 # 6013 MVABT1 6025 # 6027 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 276 ; Cross Reference Listing MVABT2 6029 # 6025 MVEND 6032 # MVS 5967 # MVS1 5984 # 5982 MVSK2 6072 # 6046 MVSK3 6062 # 6058 MVSKP 6045 # 6038 6056 6069 6080 MVSKP1 6056 # 6051 MVSKP2 6068 # 6060 MVSO 5996 # 5989 MVSO1 5999 # 5999 NEXT 4042 # 4030 7977 7980 7982 7984 7987 7990 7993 7996 7999 8001 NEXTAR 8884 # 8848 NICOND 2250 # 2535 3056 3102 3130 3442 3724 3800 3807 4498 4501 5456 5462 5821 8248 NICOND-FETCH 2269 # 2241 2242 2244 2245 2305 2311 3339 3351 3466 3467 3470 3471 3538 3539 3565 3607 4234 4709 7398 7669 NIDISP 3102 # 3802 3806 4355 4390 4421 4507 4724 5014 5366 5378 5443 5731 NODDIV 4506 # 4443 4445 NODIV 4390 # 4384 4388 NOMOD 2333 # NXTWRD 4752 # 4748 ORCA 2919 # 2912 2913 2914 2915 ORCB 2950 # 2943 2944 2945 2946 ORCM 2940 # 2933 2934 2935 2936 PAGE-FAIL 8253 # PF120 8570 # 8550 PF125 8589 # 8587 8793 PF130 8552 # 8548 8554 PF140 8546 # PF25 8310 # 8312 PFD 8261 # 8263 PFDBIN 6969 # 8830 PFDONE 8542 # 8768 8772 PFGAC0 6971 # PFMAP 8291 # 8247 8275 8279 8281 PFPI1 8784 # 8265 8277 PFPI2 8792 # PFT 8800 # 8744 PFT1 8801 # 8789 PFT10 8844 # 8842 PFT1A 8808 # 8804 PFT2 8840 # 8816 PFT3 8843 # 8869 PI 7464 # 7466 8843 PI10 7482 # 7474 7475 7476 7477 7478 7479 7480 PI40 7500 # 7497 PI50 7501 # 7551 PIEXIT 7396 # 3635 PIJSR 7515 # 7504 PIP1 7474 # 7467 PIP2 7475 # 7468 PIP3 7476 # 7469 PIP4 7477 # 7470 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 277 ; Cross Reference Listing PIP5 7478 # 7471 PIP6 7479 # 7472 PIP7 7480 # 7473 PISET 3634 # 7522 PIXPCW 3643 # 7507 POP 3730 # 3684 POPJ 3763 # 3685 POPX1 3758 # 3746 PUSH 3690 # 3683 PUSH1 3692 # 3704 PUSHJ 3702 # 3682 PUTDST 6884 # 6015 6094 6376 6395 6581 6616 6641 6709 PWRON 7890 # 2233 QDNEG 4626 # 4430 4506 QMULT 4243 # 4201 4221 Q_RSH 5260 # 5232 5252 RDAPR 7105 # RDCSB 7256 # RDCSTM 7260 # RDEBR 7223 # RDEBR1 7225 # 7225 RDERA 7022 # RDHSB 7262 # RDINT 7369 # RDIO 7589 # 7582 7584 RDPI 7375 # RDPUR 7258 # RDSPB 7254 # RDTIME 7338 # 7352 RDTIM1 7354 # 7351 RDUBR 7232 # ROT 3013 # 2966 ROTC 3152 # 2970 ROTCL 3160 # 3152 3160 ROTCR 3156 # 3156 ROTL 3023 # 3015 RTNREG 7416 # 7068 7118 7229 7254 7256 7258 7260 7262 7370 7375 RTNRG1 7417 # 7235 SAVVMA 7971 # 7886 7958 SBRL 7770 # 5381 6220 SETBLT 5109 # 5129 5218 SETCA 2909 # 2902 2903 2904 2905 SETCM 2930 # 2923 2924 2925 2926 2950 SETO 2960 # 2953 2954 2955 2956 SETPDL 3715 # 3760 SETSN 5836 # 5389 5391 5686 SETUBR 7169 # 7160 SETZ 2817 # 2810 2811 2812 2813 SFM 3653 # 3555 SHIFT 2389 # 2399 SKIP 2244 # 3354 3357 3360 6278 6406 7045 SKIP-COMP-TABLE 3336 # 3383 3402 3403 6129 SKIPE 3345 # 6105 SKIPS 3400 # 3389 3390 3391 3392 3393 3394 3395 3396 3419 SNNEG 5513 # 5498 5500 5502 5504 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 278 ; Cross Reference Listing SNNORM 5517 # 5513 5515 5517 5521 SNNOT 5528 # 5524 SNNOT1 5531 # 5526 SNNOT2 5532 # 5528 5530 5531 SNORM 5497 # 5316 5345 5422 5497 5509 SNORM0 5422 # 5395 5407 5414 5429 5430 SNORM1 5509 # 5505 SOJ 3514 # 3503 3504 3505 3506 3507 3508 3509 3510 SOS 3433 # 3422 3423 3424 3425 3426 3427 3428 3429 SRCMOD 6741 # 6009 6194 6836 6840 6842 SRND1 5542 # 5539 SROUND 5539 # 5499 5501 5503 5518 5519 5520 5540 SSWEEP 7453 # 7426 7439 STAC 2534 # 2503 2547 2552 2560 2561 2576 2605 2785 2986 2999 3008 5775 5782 5827 6033 6541 7874 STAC34 6288 # 6283 STBOTH 2545 # STBTH1 2550 # 2498 STDBTH 2507 # STMAC 3707 # 3699 STMEM 2539 # 7881 STOBR 7774 # 3644 3996 7518 STOPC 7776 # 3647 7894 STORE 2553 # 2805 3655 STPF1A 6967 # 6959 STRPF 6955 # 8822 8824 STRPF0 6956 # 6973 STRPF1 6959 # STRPF2 6970 # 6967 STRPF3 6964 # STRPF4 6973 # 8828 STRTIO 7772 # 7488 7536 7910 STSELF 2497 # 2563 STUBRS 7173 # 7175 SUB 4087 # 4080 4081 4082 4083 SWEEPL 7444 # 7447 SWEEP 7438 # 7189 7215 T1LSH 5259 # 5230 5250 TDONE 3313 # 3304 3307 TDX 3284 # 3192 3201 3206 3210 3215 3219 3224 3228 3233 3237 3241 3245 3250 3254 TDXX 3289 # 3190 3194 3199 3203 3208 3212 3217 3221 3226 3230 3235 3239 3243 3247 3252 3256 TENLP 2193 # 2200 TEST-TABLE 3295 # 3284 3290 7579 TICK 7292 # 6075 TIOX 7578 # 7571 7572 7573 7574 TOCK 7295 # 7349 8788 TOCK1 7299 # 7305 TOCK2 7306 # 7300 TOCK3 7310 # 7317 TRAP 6980 # 2254 2257 2260 2272 2275 2278 TRNAR 6762 # 6571 TRNFNC 6784 # 6772 6791 6795 6799 6811 TRNNS1 6834 # 6824 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 279 ; Cross Reference Listing TRNNS2 6837 # 6834 TRNRET 6816 # 6785 TRNSIG 6797 # 6807 TRNSS 6823 # 6818 TRNSS1 6819 # 6827 TRP1 6999 # 6989 6997 TSX 3282 # 3193 3202 3207 3211 3216 3220 3225 3229 3234 3238 3242 3246 3251 3255 TSXX 3287 # 3191 3195 3200 3204 3209 3213 3218 3222 3227 3231 3236 3240 3244 3248 3253 3257 TXXX 3298 # 3313 TXZX 3312 # 3301 UMOVEM 7877 # 7865 UMOVE 7869 # 7864 UUO 3953 # 3914 3921 UUO101 3935 # 3915 UUO102 3937 # 3916 UUO103 3939 # 3917 UUO106 3943 # 3923 UUO107 3945 # 3924 UUO247 3949 # 3931 UUOFLG 4038 # 4032 UUOGO 3959 # 2448 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3935 3937 3939 3941 3943 3945 3947 3949 6924 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7263 7286 7381 7840 7849 7851 7853 7855 7857 7859 UUOPCW 3990 # 4035 VECINT 7529 # 7492 7532 VECIN1 7548 # 7546 WRAPR 7071 # WRAPR1 7090 # 7102 WRAPR2 7096 # 7089 WRCSB 7270 # WRCSTM 7278 # WREBR 7192 # WREBR1 7194 # 7194 WRHSB 7282 # WRINT 7362 # WRIO 7593 # 7583 7585 WRPI 7378 # WRPUR 7274 # WRSPB 7266 # WRTHSB 7964 # 7888 WRTIME 7322 # WRTIM1 7334 # 7303 7330 WRUBR 7129 # XCT 3664 # 3660 XCT1 3676 # 3670 7006 7914 XCT1A 3666 # 3674 XCT2 2356 # 3677 XCTGO 2281 # 2265 7906 XJEN 3619 # 3547 XJRSTF 3626 # 3546 3649 XJRSTF0 3545 # 3623 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 280 ; Cross Reference Listing XLATE 6761 # 6747 XLATE1 6770 # 6774 XOR 2869 # 2862 2863 2864 2865 XOS 3418 # 3433 XPCW 3640 # 3548 ZAPPTA 7449 # 7435 (D) J 1357 # (U) JFCLFLG 1116 # 3611 (U) LD FLAGS 1120 # 2231 3570 3574 3632 4020 7506 7521 8806 (U) LD PCU 1108 # 4022 (U) LDVMA 1159 # 2174 2193 2197 2241 2241 2242 2244 2245 2245 2263 2289 2304 2310 2316 2320 2343 2347 2356 2376 2418 2428 2431 2443 2797 2801 2802 3033 3339 3339 3351 3466 3466 3467 3470 3471 3471 3538 3539 3540 3545 3549 3552 3565 3578 3581 3607 3622 3628 3643 3645 3645 3654 3694 3721 3731 3743 3748 3764 3827 3858 3970 3971 3971 3995 3995 4014 4015 4042 4042 4051 4058 4059 4234 4234 4709 4709 4718 4765 4769 4773 4777 5110 5138 5146 5160 5161 5165 5166 5183 5184 5262 5268 5268 5942 5944 5945 5968 6116 6365 6392 6437 6443 6450 6466 6471 6527 6605 6647 6762 6909 6910 6911 6912 6988 6996 7129 7234 7325 7350 7355 7355 7398 7398 7416 7422 7485 7500 7500 7500 7501 7542 7542 7550 7631 7666 7669 7669 7691 7713 7772 7869 7877 7887 7890 7890 7893 7893 7904 7960 7976 7976 7979 7979 7986 7986 7989 7989 7992 7992 7995 7995 7998 7998 8005 8291 8576 8592 8707 8708 8722 8724 8790 8796 8844 8845 8845 8881 8881 8884 8884 (U) LOADFE 963 # 2392 2410 2425 2979 2982 2986 2996 2998 3014 3017 3020 3025 3037 3052 3098 4716 4720 4732 4825 4830 4832 4834 4837 4900 4913 4916 4917 4919 4921 5229 5231 5249 5251 5259 5260 5305 5333 5342 5344 5364 5370 5371 5385 5407 5411 5413 5414 5428 5497 5501 5503 5509 5517 5519 5520 5521 5540 5545 5586 5601 5603 5667 5684 5695 5718 5744 5758 5765 5768 5780 5797 5802 5804 5825 5850 5858 5996 5997 5999 6165 6536 6537 6543 6667 6668 6669 6670 6867 6870 6889 6907 (U) LOADSC 961 # 2188 2198 2391 2410 2425 2441 3002 3004 3080 3081 3082 3084 3088 3098 3107 3110 3114 3121 3152 3153 3154 3156 3160 4135 4163 4200 4220 4240 4266 4278 4284 4292 4302 4310 4353 4450 4458 4565 4568 4608 4954 4957 4970 4976 4981 4994 5010 5055 5070 5076 5299 5303 5304 5313 5315 5337 5384 5418 5421 5426 5444 5445 5446 5448 5451 5455 5565 5575 5585 5619 5622 5629 5644 5647 5655 5659 5662 5672 5678 5733 5734 6310 6339 6478 6480 6483 6487 6489 6660 6666 6672 6677 6684 7171 7174 7192 7194 7223 7225 7233 7239 7242 7433 7446 7453 7641 7648 7673 7679 7727 7734 7743 7747 8308 8311 8547 8553 (U) LSRC 613 # (U) MACRO% ABORT MEM CYCLE 2012 # 2174 3622 7485 7887 7960 8291 8790 8796 AC 1862 # 4134 4161 4332 4423 5362 5427 5568 5570 AC[] 1863 # 4499 5707 5715 6218 6282 AC[]_Q 1764 # 3130 4195 4203 4214 4226 AC[]_Q.AND.[] 1753 # 4453 4497 4627 4632 4637 4643 4644 AC[]_[] 1740 # 2502 2785 3056 4470 4476 5782 5827 6025 6045 6062 6145 6179 6238 6240 6275 6288 6289 6325 6357 6363 6374 6379 6402 6403 6562 6865 6906 6944 6952 6959 6964 AC[]_[] TEST 1741 # 6837 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 281 ; Cross Reference Listing AC[]_[] VIA AD 1738 # AC[]_[]*2 1743 # 4212 AC[]_[]+1 1742 # 6711 AC[]_[]+Q 1748 # AC[]_[]+[] 1750 # 4495 6221 AC[]_[]-[] 1749 # 5979 AC[]_[].AND.[] 1752 # 4473 5774 5820 AC[]_[].EQV.Q 1754 # 4227 4229 4231 4500 AC[]_-Q 1760 # AC[]_-[] 1755 # AC[]_.NOT.[] 1758 # AC[]_0 1762 # 2186 3035 4471 6052 6100 6296 6298 AC[]_1 1763 # 2187 AC_-[] 1756 # 5819 AC_.NOT.[] 1759 # 5818 AC_Q 1761 # 4469 AC_[] 1744 # 2534 3091 3313 3402 3442 3454 3723 3725 3821 4645 4723 5130 5194 5219 5456 5462 6102 6138 6401 6622 6695 6971 7590 7778 8248 AC_[] TEST 1745 # 3445 3448 3451 3457 3460 3463 4225 6276 6322 AC_[] VIA AD 1739 # AC_[]+1 1746 # 6947 AC_[]+Q 1747 # AC_[]+[] 1751 # 3124 3788 3793 AC_[].OR.[] 1757 # 5081 6065 6104 AD FLAGS 2040 # 2591 3417 3433 3500 3514 4074 4088 4105 4115 4118 4245 4656 4658 AD FLAGS EXIT 2088 # 4074 4088 AD PARITY 1966 # 2194 2370 2383 2384 2601 2702 2704 2735 2741 2794 2978 2981 2995 3029 3486 3730 3763 3785 3843 3856 4163 4205 4342 4733 5129 5217 5299 5332 5364 5428 5574 5971 5974 5989 5992 6022 6038 6110 6112 6130 6162 6174 6177 6205 6208 6210 6217 6227 6268 6270 6271 6303 6308 6309 6310 6331 6336 6348 6383 6468 6526 6567 6604 6606 6710 6823 6830 6856 6858 6885 6942 6950 6956 7593 7880 ADD .25 1997 # 2590 2960 3383 3433 3514 3540 3549 3552 4087 4104 4112 4117 4291 4295 4337 4381 4414 4437 4438 4444 4465 4491 4532 4533 4534 4550 4552 4559 4565 4596 4626 4631 4636 4641 4653 4657 4661 4663 4992 5049 5066 5116 5135 5153 5177 5265 5296 5371 5374 5375 5382 5393 5406 5498 5500 5502 5504 5515 5531 5560 5599 5712 5723 5730 5746 5787 5792 5813 5819 5853 5979 6012 6026 6047 6114 6150 6151 6152 6199 6263 6281 6284 6352 6369 6377 6396 6404 6405 6439 6441 6444 6492 6834 6955 6963 6969 7307 7407 7431 7444 7691 8702 8712 8809 8869 ADL PARITY 1959 # ADR PARITY 1963 # AREAD 2083 # 2334 ASH 1974 # 2438 2998 ASH AROV 2025 # 3004 3120 3123 ASH36 LEFT 2991 # 3004 ASHC 1979 # 3004 3113 3116 3120 3123 4284 4292 4302 4310 4416 4420 4489 4493 4509 5315 5418 5420 5450 5594 5596 5600 5602 5618 5622 5629 5632 5634 5646 5687 5691 5726 5740 5758 5764 5767 5780 5797 5801 5803 5825 5850 B DISP 2084 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 282 ; Cross Reference Listing 2827 2837 2869 2879 2899 2909 2920 2930 2960 3284 3290 3383 3402 3403 3486 3500 3514 3524 3709 3716 3754 4074 4088 4140 4146 4169 4171 5223 5452 5460 5464 5510 5522 5532 5539 5943 5985 6129 6184 6391 6745 6817 6824 7579 7606 7624 7635 7662 8568 8868 BAD PARITY 1968 # BASIC DIV STEP 4544 # 4565 4568 BWRITE DISP 2085 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 4074 4088 4140 4146 4169 4171 8568 8868 BYTE DISP 2102 # 4721 4738 6166 6869 6890 BYTE STEP 4693 # 5997 5999 CALL IBP 4687 # 4708 4713 4727 CALL LOAD PI 2108 # 3606 7396 CALL [] 1998 # 2195 2207 2412 2784 2794 3564 3603 3605 3606 3620 3644 3647 3844 3847 3962 3993 3996 4030 4032 4137 4165 4192 4201 4211 4221 4244 4354 4375 4430 4436 4450 4454 4460 4506 4530 4708 4713 4717 4722 4727 4736 4739 4987 4997 5031 5058 5113 5129 5131 5218 5230 5232 5250 5252 5339 5381 5384 5389 5391 5499 5501 5503 5518 5519 5520 5579 5587 5615 5655 5660 5672 5679 5686 5705 5729 5733 5737 5762 5765 5768 5800 5802 5804 5810 5930 5970 5973 5977 6009 6015 6040 6064 6075 6090 6094 6101 6111 6113 6119 6133 6142 6163 6178 6181 6194 6209 6220 6228 6231 6234 6237 6245 6250 6277 6312 6321 6337 6349 6376 6387 6395 6412 6438 6467 6470 6475 6550 6558 6568 6571 6581 6594 6609 6616 6637 6641 6709 6743 6767 6867 6886 6891 6943 6951 6962 7233 7303 7327 7330 7349 7396 7426 7439 7488 7518 7520 7536 7540 7578 7589 7604 7623 7632 7661 7668 7693 7886 7888 7894 7910 7958 7960 7977 7980 7982 7984 7987 7990 7993 7996 7999 8001 8777 8788 8848 CHANGE FLAGS 2018 # 2230 2231 2591 3417 3433 3500 3514 3570 3571 3574 3575 3611 3632 3633 3703 3715 3771 3801 3805 3820 3826 4020 4021 4022 4074 4088 4105 4115 4118 4148 4149 4173 4223 4235 4245 4248 4355 4390 4421 4507 4656 4658 4723 4740 4762 5014 5366 5378 5443 5731 6405 6406 7004 7506 7521 8806 CHK PARITY 1967 # 2282 2352 2366 2375 2379 2396 2407 2418 2424 2437 2508 2540 2546 2551 2554 2604 2800 3100 3419 3562 3586 3601 3626 3630 3691 3708 3714 3736 3753 3759 3772 3830 3861 3991 4018 4030 4034 4057 4135 4228 4230 4333 4343 4427 4449 4456 4753 4781 4787 4908 5173 5222 5928 5947 6367 6557 6607 6610 6638 6914 6929 6999 7132 7267 7271 7275 7279 7283 7324 7354 7356 7363 7417 7501 7543 7667 7714 7759 7762 7764 7774 7776 7873 7892 7912 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8730 8847 8861 CHK PARITY L 1960 # CHK PARITY R 1964 # CLEANUP DISP 2110 # 8811 CLEAR ARX0 1716 # 2784 4652 6280 6321 6447 6453 CLEAR CONTINUE 2007 # CLEAR EXECUTE 2008 # CLEAR RUN 2009 # CLEAR []0 1715 # 2784 4374 4652 6257 6273 6280 6321 6447 6453 CLR FPD 2027 # 3703 3820 3826 4223 4723 4740 6406 CLR IO BUSY 2013 # 7622 7660 CLR IO LATCH 2014 # 7707 7715 7719 7722 7731 7737 7746 7751 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 283 ; Cross Reference Listing CLRCSH 2004 # 7428 7429 7432 DFADJ 5611 # 5622 DISMISS 2107 # 3605 3620 DIV 1982 # 4565 4568 4569 4616 5497 5509 5517 5521 5614 5616 5617 DIV DISP 2101 # DIV STEP 4545 # 4568 DONE 2093 # 2241 2245 3339 3466 3471 4234 4709 7398 7669 DPB SCAD 4896 # 4901 4902 4903 4904 4905 EA MODE DISP 2082 # 2292 2358 3567 4760 4763 5939 6915 7703 END BLT 2050 # 5156 5180 5266 END MAP 2051 # 8558 END STATE 2048 # 5156 5180 5266 6033 6105 6128 6278 6406 6410 6472 6744 8558 8815 8833 8834 8865 EXIT 2087 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 4140 4146 4169 4171 8568 8868 EXP TEST 2039 # 5506 5522 5852 FETCH 1819 # 2241 2242 2244 2245 2264 2304 2310 2418 2443 3033 3339 3351 3466 3467 3470 3471 3538 3539 3565 3607 3722 4234 4709 4718 7398 7669 7905 FE_-1 1939 # FE_-12. 1937 # 3037 FE_-2 1936 # FE_-FE 1923 # 4825 4919 FE_-FE+200 1950 # 5370 5371 FE_-FE+S# 1926 # 4830 FE_-FE-1 1924 # 2979 3014 FE_-S-10 1933 # 4834 4900 FE_-S-20 1932 # FE_0 1938 # FE_EXP 1945 # 2410 2425 5305 5586 FE_FE+1 1940 # 2982 2996 3017 5385 5501 5503 5519 5520 5540 5545 5765 5768 5802 5804 5850 5858 FE_FE+10 1942 # 4832 4837 4913 4921 FE_FE+2 1941 # 5342 FE_FE+4 1944 # 3052 FE_FE+P 1948 # 6537 FE_FE+S# 1951 # 5684 5695 6670 FE_FE+SC 1927 # 6669 FE_FE-1 1943 # 5497 5509 5517 5521 5601 5603 5758 5780 5797 5825 FE_FE-19 1925 # FE_FE-200 1949 # 5344 FE_FE.AND.S# 1928 # 4720 4917 6165 6543 6668 6870 FE_P 1929 # 4716 4916 6667 6867 6907 FE_S 1930 # FE_S# 1934 # 3037 5229 5231 5249 5251 5407 5411 5413 5414 6536 FE_S#-FE 1935 # 5744 FE_S+2 1931 # 5996 FE_SC+EXP 1946 # 5333 5428 5667 FE_SC-EXP 1947 # 5364 5718 FIRST DIV STEP 4546 # 4565 FIX [] SIGN 1729 # 3400 4120 4144 4167 6748 7297 FL NO DIVIDE 2043 # 5366 5378 5731 FL-EXIT 2089 # 5460 5464 5510 5532 FM WRITE 1736 # 2173 2181 2183 2184 2186 2187 2189 2190 2196 2198 2502 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 284 ; Cross Reference Listing 2534 2785 3035 3056 3091 3124 3130 3313 3402 3442 3445 3448 3451 3454 3457 3460 3463 3676 3723 3725 3788 3793 3821 4195 4203 4212 4214 4225 4226 4227 4229 4231 4453 4469 4470 4471 4473 4476 4495 4497 4500 4627 4632 4637 4643 4644 4645 4706 4723 4965 4978 4988 4998 5030 5081 5130 5194 5219 5456 5462 5774 5782 5818 5819 5820 5827 5938 5951 5954 5979 5984 6001 6025 6045 6046 6052 6062 6065 6072 6073 6074 6089 6100 6102 6104 6120 6136 6138 6145 6159 6172 6179 6190 6221 6238 6240 6275 6276 6288 6289 6296 6298 6311 6313 6322 6325 6357 6363 6369 6374 6375 6379 6388 6394 6401 6402 6403 6562 6593 6622 6695 6711 6741 6837 6865 6906 6930 6944 6947 6952 6959 6964 6971 6981 7093 7202 7268 7272 7276 7280 7284 7299 7310 7331 7334 7364 7365 7449 7450 7590 7698 7732 7738 7740 7778 7885 7957 7972 7982 8244 8248 8254 8255 8257 8258 8265 8275 8277 8279 8281 8285 8286 8775 FORCE EXEC 1799 # 7502 7516 7550 GEN 17-FE 1954 # 4802 GEN MSK [] 1732 # 4836 4839 4912 4915 5999 HALT [] 2109 # 2204 2261 2279 2530 3593 7515 7547 8800 HOLD LEFT 1958 # 2242 2244 2289 2302 2303 2309 2314 2329 2330 2342 2353 2376 2704 2735 2743 2765 2767 3351 3467 3470 3538 3539 3540 3549 3552 3565 3577 3607 3631 3645 3773 3832 3846 3850 3995 4007 4012 4042 4058 4109 4752 4782 4991 5050 5073 5122 5134 5156 5160 5165 5180 5183 5193 5245 5246 5266 5268 5341 5604 5941 5944 5947 5988 6014 6017 6033 6039 6068 6087 6093 6101 6105 6116 6128 6132 6139 6158 6186 6263 6278 6316 6351 6368 6395 6406 6410 6466 6472 6519 6576 6580 6615 6640 6681 6686 6744 6863 6905 6914 7073 7099 7113 7182 7198 7200 7244 7325 7330 7355 7389 7391 7393 7395 7407 7467 7468 7469 7470 7471 7472 7473 7495 7565 7691 7712 7712 7893 7909 7979 7986 7989 7992 7995 7998 8247 8558 8566 8809 8815 8821 8823 8825 8827 8829 8831 8833 8834 8835 8865 8884 HOLD RIGHT 1962 # 2433 2435 2448 2470 2471 2702 2737 2741 2758 2760 2784 3127 3129 3400 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3784 3935 3937 3939 3941 3943 3945 3947 3949 3957 4039 4055 4120 4121 4122 4144 4167 4374 4413 4475 4529 4652 4829 4964 4972 5035 5080 5115 5119 5306 5307 5310 5311 5335 5336 5368 5369 5429 5430 5506 5522 5625 5626 5633 5649 5771 5806 5836 5837 5852 5934 5956 6183 6188 6257 6273 6274 6280 6319 6321 6328 6334 6343 6362 6414 6417 6422 6447 6453 6524 6618 6620 6690 6694 6748 6790 6794 6798 6802 6806 6810 6826 6924 6936 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7067 7107 7110 7138 7145 7149 7164 7170 7179 7187 7228 7232 7238 7263 7286 7297 7381 7383 7385 7387 7519 7721 7766 7840 7849 7851 7853 7855 7857 7859 8240 8243 8294 8298 8301 8306 8557 8561 8564 8575 8750 8755 8760 8766 8780 8843 IBP DP 4684 # 4708 4713 4727 6049 6859 6902 6975 IBP SCAD 4685 # 4708 4713 4727 6049 6859 6902 IBP SPEC 4686 # 4708 4713 4727 INH CRY18 1970 # 3523 3693 3740 3769 3789 3794 5046 5121 INST DISP 2086 # 2367 2371 2380 2385 2393 2414 2420 2444 2449 INTERRUPT TRAP 2099 # JFCL FLAGS 2036 # 3611 JUMP DISP 2092 # 3486 3500 3514 3524 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 285 ; Cross Reference Listing JUMPA 2094 # 3467 3470 3538 3539 3565 3607 LDB SCAD 4798 # 4807 4808 4809 4810 4811 LEAVE USER 2034 # 2230 4021 LOAD AC BLOCKS 2002 # 2176 7165 7188 LOAD BYTE EA 1993 # 4716 4735 4783 5935 5947 6866 LOAD DST EA 1996 # 6903 6905 6914 LOAD FE 1876 # 2392 2410 2425 2979 2982 2986 2996 2998 3014 3017 3020 3025 3037 3052 3098 4716 4720 4732 4825 4830 4832 4834 4837 4900 4913 4916 4917 4919 4921 5229 5231 5249 5251 5259 5260 5305 5333 5342 5344 5364 5370 5371 5385 5407 5411 5413 5414 5428 5497 5501 5503 5509 5517 5519 5520 5521 5540 5545 5586 5601 5603 5667 5684 5695 5718 5744 5758 5765 5768 5780 5797 5802 5804 5825 5850 5858 5996 5997 5999 6165 6536 6537 6543 6667 6668 6669 6670 6867 6870 6889 6907 LOAD FLAGS 2038 # 2231 3570 3574 3632 4020 7506 7521 8806 LOAD IND EA 1994 # 2354 LOAD INST 1991 # 2283 3668 7000 7913 LOAD INST EA 1992 # 3563 3587 3602 7710 LOAD IR 1987 # 5934 LOAD PAGE TABLE 2001 # 7423 8584 LOAD PCU 2032 # 4022 LOAD PI 2005 # 3621 7409 7484 7966 LOAD PXCT 1999 # 3673 LOAD SC 1875 # 2188 2198 2391 2410 2425 2441 3002 3004 3080 3081 3082 3084 3088 3098 3107 3110 3114 3121 3152 3153 3154 3156 3160 4135 4163 4200 4220 4240 4266 4278 4284 4292 4302 4310 4353 4450 4458 4565 4568 4608 4954 4957 4970 4976 4981 4994 5010 5055 5070 5076 5299 5303 5304 5313 5315 5337 5384 5418 5421 5426 5444 5445 5446 5448 5451 5455 5565 5575 5585 5619 5622 5629 5644 5647 5655 5659 5662 5672 5678 5733 5734 6310 6339 6478 6480 6483 6487 6489 6660 6666 6672 6677 6684 7171 7174 7192 7194 7223 7225 7233 7239 7242 7433 7446 7453 7641 7648 7673 7679 7727 7734 7743 7747 8308 8311 8547 8553 LOAD SRC EA 1995 # LOAD VMA 1798 # 2174 2193 2197 2241 2241 2242 2244 2245 2245 2263 2289 2304 2310 2316 2320 2343 2347 2356 2376 2418 2428 2431 2443 2797 2801 2802 3033 3339 3339 3351 3466 3466 3467 3470 3471 3471 3538 3539 3540 3545 3549 3552 3565 3578 3581 3607 3622 3628 3643 3645 3645 3654 3694 3721 3731 3743 3748 3764 3827 3858 3970 3971 3971 3995 3995 4014 4015 4042 4042 4051 4058 4059 4234 4234 4709 4709 4718 4765 4769 4773 4777 5110 5138 5146 5160 5161 5165 5166 5183 5184 5262 5268 5268 5942 5944 5945 5968 6116 6365 6392 6437 6443 6450 6466 6471 6527 6605 6647 6762 6909 6910 6911 6912 6988 6996 7129 7234 7325 7350 7355 7355 7398 7398 7416 7422 7485 7500 7500 7500 7501 7542 7542 7550 7631 7666 7669 7669 7691 7713 7772 7869 7877 7887 7890 7890 7893 7893 7904 7960 7976 7976 7979 7979 7986 7986 7989 7989 7992 7992 7995 7995 7998 7998 8005 8291 8576 8592 8707 8708 8722 8724 8790 8796 8844 8845 8845 8881 8881 8884 8884 LSH 1975 # LSHC 1978 # 3084 3088 4597 4600 LUUO 2096 # 5896 5898 5900 5902 5904 5906 5908 5910 5912 MEM CYCLE 1795 # 2174 2193 2197 2241 2241 2241 2242 2242 2244 2244 2245 2245 2245 2263 2264 2281 2289 2304 2304 2310 2310 2315 2316 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 286 ; Cross Reference Listing 2320 2321 2343 2344 2347 2348 2352 2356 2365 2374 2376 2377 2378 2406 2417 2418 2418 2428 2429 2431 2432 2436 2443 2443 2507 2539 2545 2550 2553 2602 2603 2797 2798 2800 2801 2802 2804 3033 3033 3339 3339 3339 3351 3351 3418 3419 3466 3466 3466 3467 3467 3470 3470 3471 3471 3471 3538 3538 3539 3539 3540 3540 3545 3545 3549 3549 3552 3552 3561 3565 3565 3578 3579 3581 3582 3585 3600 3607 3607 3622 3626 3628 3629 3630 3643 3643 3645 3645 3646 3649 3654 3654 3690 3694 3695 3707 3713 3721 3722 3731 3732 3735 3743 3745 3748 3750 3752 3758 3764 3766 3772 3827 3828 3829 3841 3858 3859 3860 3970 3971 3971 3990 3995 3995 3995 4014 4015 4016 4017 4029 4033 4042 4042 4042 4051 4052 4056 4058 4059 4060 4234 4234 4234 4709 4709 4709 4718 4718 4746 4752 4753 4765 4766 4769 4770 4773 4774 4777 4778 4780 4786 4907 4908 5110 5111 5138 5139 5146 5147 5149 5160 5161 5163 5165 5166 5168 5172 5175 5183 5184 5186 5221 5262 5262 5264 5268 5268 5269 5928 5942 5944 5944 5945 5945 5947 5968 5969 6116 6116 6365 6366 6367 6392 6393 6437 6443 6450 6466 6466 6471 6471 6527 6527 6559 6561 6605 6605 6607 6610 6638 6647 6647 6762 6763 6909 6909 6910 6910 6911 6911 6912 6912 6914 6928 6984 6987 6988 6992 6995 6996 6999 7129 7130 7131 7234 7234 7266 7267 7270 7271 7274 7275 7278 7279 7282 7283 7322 7323 7325 7326 7350 7351 7354 7355 7355 7355 7356 7362 7363 7398 7398 7398 7416 7416 7417 7422 7485 7489 7500 7500 7500 7501 7501 7516 7537 7542 7542 7543 7550 7551 7631 7633 7666 7667 7669 7669 7669 7691 7692 7713 7713 7714 7759 7762 7764 7772 7774 7776 7869 7870 7872 7877 7878 7887 7890 7890 7892 7893 7893 7893 7904 7905 7911 7960 7976 7976 7977 7978 7979 7979 7979 7980 7981 7984 7985 7986 7986 7986 7987 7988 7989 7989 7989 7990 7991 7992 7992 7992 7993 7994 7995 7995 7995 7996 7997 7998 7998 7998 7999 8000 8002 8005 8291 8576 8592 8707 8708 8709 8722 8723 8724 8729 8790 8796 8844 8845 8845 8846 8860 8881 8881 8884 8884 8884 MEM READ 1823 # 2281 2352 2365 2374 2378 2406 2417 2436 3561 3585 3600 3626 3630 3690 3735 3772 3860 4017 4780 4786 5172 5221 5928 5947 6367 6610 6638 6914 6928 6984 6992 6999 7131 7267 7271 7275 7279 7283 7323 7363 7489 7501 7537 7543 7633 7714 7759 7762 7764 7872 7911 8729 MEM WAIT 1822 # 2281 2352 2365 2374 2378 2406 2417 2436 2507 2539 2545 2550 2553 2603 2800 3419 3561 3585 3600 3626 3630 3690 3707 3713 3735 3752 3758 3772 3829 3860 3990 4017 4029 4033 4056 4753 4780 4786 4908 5149 5172 5175 5221 5264 5928 5947 6367 6561 6607 6610 6638 6914 6928 6984 6992 6999 7131 7267 7271 7275 7279 7283 7323 7354 7356 7363 7417 7489 7501 7537 7543 7633 7667 7714 7759 7762 7764 7774 7776 7872 7892 7911 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8729 8846 8860 MEM WRITE 1824 # 2507 2539 2545 2550 2553 2603 2800 3419 3707 3713 3752 3758 3829 3990 4029 4033 4056 4753 4908 5149 5175 5264 6561 6607 7354 7356 7417 7667 7774 7776 7892 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8846 8860 MEM_Q 1831 # 5150 5176 5264 6561 MEM_[] 1830 # 2508 2540 2546 2551 2554 2604 2800 3419 3708 3714 3753 3759 3830 3991 4030 4034 4057 4753 4908 6607 7354 7356 7417 7667 7774 7776 7892 7977 7978 7980 7981 7984 7985 7987 7988 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 287 ; Cross Reference Listing 7990 7991 7993 7994 7996 7997 7999 8000 8002 8847 8861 MUL DISP 2100 # 4284 4292 4302 4310 5596 5622 5624 5741 MUL FINAL 4262 # 4288 4296 4306 4314 MUL STEP 4261 # 4284 4292 4302 4310 NEXT INST 2080 # 2535 3056 3102 3130 3442 3724 3800 3807 4498 4501 5456 5462 5821 8248 NEXT INST FETCH 2081 # 2241 2242 2244 2245 2305 2311 3339 3351 3466 3467 3470 3471 3538 3539 3565 3607 4234 4709 7398 7669 NEXT [] PHYSICAL WRI 1853 # 3995 4042 7893 7979 7986 7989 7992 7995 7998 8884 NO DIVIDE 2042 # 4355 4390 4421 4507 5014 NORM DISP 2106 # 5316 5345 5422 5497 5499 5509 5513 5515 5517 5518 5521 5543 5694 5748 5749 5759 5761 5781 5791 5793 5798 5799 5826 5855 ONES 1981 # 4836 4839 4912 4915 5999 PAGE FAIL TRAP 2097 # 8744 PI DISP 2105 # PXCT BLT DEST 1807 # 5140 5148 5162 5167 5263 PXCT BLT SRC 1811 # 5112 5185 5269 PXCT BYTE DATA 1809 # 4767 4771 6909 6910 PXCT BYTE PTR EA 1808 # 4775 4779 PXCT DATA 1806 # 2334 2376 2428 2431 2799 2803 3744 3749 PXCT EA 1805 # 2343 2348 3583 PXCT EXTEND EA 1812 # 5944 5945 PXCT STACK WORD 1810 # 3696 3733 3765 Q-[] 1680 # 4444 Q.AND.NOT.[] 1681 # Q_# 1696 # 4989 5033 Q_-1 1688 # Q_-AC[] 1689 # 4626 4631 4636 Q_-Q 1690 # 4414 4491 4532 4533 4550 5498 5500 5502 5504 5787 Q_-[] 1687 # 5723 Q_.NOT.AC[] 1686 # 4630 4635 Q_.NOT.Q 1695 # 5786 Q_0 1697 # 2994 4835 4911 5313 5384 5395 5407 5411 5413 5414 5427 5440 5733 5997 Q_0 XWD [] 1698 # Q_AC 1691 # 4135 4333 Q_AC[] 1692 # 2396 3100 4228 4230 4343 6557 Q_AC[].AND.MASK 1693 # Q_AC[].AND.[] 1694 # 4427 4449 4456 Q_MEM 1841 # 5173 5222 7764 Q_Q*.5 1703 # 4243 4277 4450 5224 5244 5245 5246 5260 5648 5738 Q_Q*2 1704 # 5239 5240 Q_Q+.25 1699 # 5599 5746 Q_Q+1 1700 # Q_Q+AC 1702 # 5009 Q_Q+[] 1709 # 4452 4484 5581 5589 5690 5693 Q_Q-1 1701 # 5049 Q_Q-WORK[] 1788 # 4992 Q_Q.AND.# 1706 # 3126 4527 5233 5253 5340 5649 Q_Q.AND.NOT.[] 1708 # 5735 Q_Q.AND.[] 1707 # 4499 4918 Q_Q.OR.# 1705 # 3128 4412 Q_WORK[] 1770 # 5056 6156 Q_[] 1682 # 4161 4200 4220 4240 4454 4480 4980 5337 5572 5584 5644 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 288 ; Cross Reference Listing 5659 5672 5678 5728 Q_[]+[] 1684 # 4481 Q_[]-[] 1683 # 5116 Q_[].AND.Q 1710 # 4575 5770 5805 Q_[].AND.[] 1685 # 4402 Q_[].OR.Q 1711 # 5256 5604 RAM_[] 1791 # 2196 2198 READ Q 1721 # 5463 5505 5529 5778 5823 READ XR 1719 # 3569 READ [] 1720 # 2389 2409 2585 2749 2756 2763 2770 3081 3097 3153 3298 3342 3345 3348 3354 3357 3360 3573 3621 3632 3672 3969 4013 4019 4050 4138 4344 4350 4364 4369 4371 4376 4443 4445 4462 4478 4487 4548 4555 4576 4715 4719 4734 4737 4834 4900 4916 5037 5301 5305 5388 5390 5422 5426 5459 5499 5518 5586 5685 5694 5743 5761 5799 5935 5953 5996 6030 6131 6134 6140 6153 6164 6180 6356 6392 6443 6450 6476 6490 6495 6517 6521 6573 6659 6667 6762 6784 6816 6866 6868 6890 7088 7090 7091 7096 7100 7201 7315 7350 7429 7435 7442 7709 7966 7976 8588 8700 8736 8806 8811 RETURN [] 2104 # 2470 2471 3572 3576 4040 4043 4246 4289 4297 4307 4315 4509 4531 4532 4534 4618 4645 4747 4749 4753 4788 4821 4840 4908 5122 5259 5260 5542 5544 5545 5634 5829 5836 5837 5852 6241 6251 6256 6259 6297 6298 6448 6454 6625 6648 6713 6744 6756 6787 6803 6820 6829 6831 6857 6892 6925 6931 6936 6976 7244 7311 7335 7410 7454 7562 7565 7637 7644 7650 7707 7715 7719 7722 7748 7760 7762 7764 7766 7768 7770 7772 7774 7776 7778 7969 7973 8007 8598 8796 8884 ROT 1977 # 3020 3025 ROTC 1980 # 3156 3160 SCAD DISP 2103 # 4708 4713 4727 4803 5299 5442 5444 5997 5999 6050 6860 6902 7734 SC_-1 1920 # SC_-2 1921 # SC_-SHIFT 1884 # SC_-SHIFT-1 1885 # 3081 3153 SC_-SHIFT-2 1886 # SC_0 1919 # 6666 6677 SC_1 1918 # SC_11. 1909 # SC_14. 1908 # SC_19. 1907 # 2188 SC_2 1917 # 6487 SC_20. 1906 # 6310 SC_22. 1905 # SC_24. 1904 # SC_26. 1903 # 5733 SC_27. 1902 # 5337 5384 SC_28. 1901 # SC_3 1916 # 4970 SC_34. 1900 # 4353 4450 4458 4981 4994 5010 SC_35. 1899 # 4135 4163 4200 4220 4240 5055 5655 5659 5672 5678 5734 SC_36. 1898 # SC_4 1915 # SC_5 1914 # 7641 7673 SC_6 1913 # 5418 5644 6480 7192 7223 7233 7239 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 289 ; Cross Reference Listing SC_7 1912 # 6478 7171 8308 8547 SC_8. 1911 # SC_9. 1910 # 4954 5070 SC_EXP 1891 # 2410 2425 5303 5575 SC_FE 1894 # 2441 5662 SC_FE+S# 1893 # 3107 5444 SC_S# 1895 # 2188 4135 4163 4200 4220 4240 4353 4450 4458 4954 4970 4981 4994 5010 5055 5070 5337 5384 5418 5644 5655 5659 5672 5678 5733 5734 6310 6478 6480 6487 6666 6677 7171 7192 7223 7233 7239 7453 7641 7673 7727 7743 8308 8547 SC_S#-FE 1892 # 3110 5446 SC_SC-1 1880 # 7734 SC_SC-EXP 1887 # SC_SC-EXP-1 1888 # 5299 5565 SC_SC-FE 1890 # SC_SC-FE-1 1889 # 5304 5585 SC_SHIFT 1881 # 3098 5426 SC_SHIFT-1 1882 # 2391 SC_SHIFT-2 1883 # SET APR ENABLES 2011 # 2179 7092 7201 SET AROV 2020 # 4148 4149 4173 4235 5443 SET FL NO DIVIDE 2023 # 5366 5378 5731 SET FOV 2021 # SET FPD 2026 # 4248 4762 6405 SET HALT 2006 # 7895 7961 SET NO DIVIDE 2022 # 4355 4390 4421 4507 5014 5366 5378 5731 SET PDL OV 2029 # 3715 3771 3801 3805 SET P TO 36-S 4689 # 4748 6059 6862 6904 SET TRAP1 2030 # SHIFT 1878 # 2986 2998 3020 3025 5259 5260 SKIP AC REF 2074 # SKIP AD.EQ.0 2058 # 3030 3345 3357 3448 3460 4138 4143 4345 4347 4351 4365 4410 4439 4469 4550 4628 4633 4638 4654 4661 4979 5008 5362 5388 5390 5463 5505 5529 5685 5736 5778 5823 6153 6206 6282 6285 6574 6611 6632 6755 7342 SKIP AD.LE.0 2059 # 3348 3360 3451 3463 4404 5038 5382 5706 6353 7308 7965 SKIP ADL.EQ.0 2070 # 2201 4003 4008 5405 5410 5524 5689 5692 5760 5763 5766 5769 5829 5929 5972 6111 6113 6195 6215 6399 6415 6469 6504 6507 6539 7003 7139 7153 7199 7503 7504 7695 7697 7711 8295 8562 8581 8583 8744 8762 8803 SKIP ADL.LE.0 2061 # 7704 SKIP ADR.EQ.0 2071 # 3099 3605 3620 5136 6340 6413 6768 7045 7051 7078 7080 7083 7085 7087 7378 7380 7384 7386 7388 7390 7392 7394 7491 7544 7564 7636 7663 8246 8542 8731 8748 8751 8756 SKIP CRY0 2066 # 3698 3741 3770 5374 5498 5500 5502 5504 SKIP CRY1 2067 # 4101 4113 5814 6230 6236 6249 6440 6451 SKIP CRY2 2068 # 5787 5847 SKIP DP0 2056 # 2411 2426 2585 2763 2770 3053 3125 3342 3354 3445 3457 3787 3790 3795 4120 4145 4167 4170 4225 4233 4334 4370 4372 4377 4382 4386 4408 4425 4437 4444 4459 4478 4496 4548 4555 4570 5011 5155 5179 5265 5301 5305 5334 5364 5372 5406 5428 5459 5566 5668 5715 5719 5730 5743 5980 5993 6010 6023 6030 6048 6090 6092 6114 6131 6134 6140 6180 6272 6277 6314 6323 6356 6373 6445 6495 6521 6712 6742 6784 6838 6957 7133 7297 8701 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 290 ; Cross Reference Listing SKIP DP18 2057 # 2390 2749 2756 5953 6200 6404 6493 6816 6817 7530 8704 8714 8737 SKIP EXECUTE 2075 # 7899 SKIP FPD 2063 # 4187 4708 4713 4727 6304 SKIP IF AC0 2055 # 2497 3401 4705 SKIP IO LEGAL 2065 # 2447 3550 3553 SKIP IRPT 2072 # 5159 6050 8259 8784 8815 8866 SKIP JFCL 2069 # 3612 SKIP KERNEL 2064 # 3543 3547 3548 3555 3664 6982 SKIP -1MS 2073 # 6045 SKIP-COMP DISP 2091 # 3383 3402 3403 6129 SPEC MEM READ 1825 # 2423 SPEC MEM WRITE 1826 # START NO TEST WRITE 1818 # START READ 1816 # 2241 2242 2244 2245 2264 2304 2310 2315 2321 2344 2348 2377 2418 2429 2432 2443 3033 3339 3351 3466 3467 3470 3471 3538 3539 3540 3545 3549 3552 3565 3579 3582 3607 3629 3649 3722 3732 3766 3859 4016 4060 4234 4709 4718 4766 4770 4774 4778 5111 5186 5269 5944 5945 5969 6116 6366 6393 6466 6471 6527 6647 6763 6909 6910 6911 6912 6987 6995 7130 7266 7270 7274 7278 7282 7322 7326 7362 7398 7551 7669 7692 7713 7870 7905 8709 8723 START WRITE 1817 # 2602 2798 2804 3418 3643 3646 3654 3695 3745 3750 3828 3841 3995 4042 4052 4746 4752 4907 5139 5147 5163 5168 5262 6559 6605 7234 7351 7355 7416 7516 7878 7893 7979 7986 7989 7992 7995 7998 8884 STATE_[] 2047 # 5122 5988 6014 6017 6039 6087 6093 6101 6132 6139 6158 6186 6368 6395 6519 6576 6580 6640 8247 8821 8823 8825 8827 8829 8831 8835 STEP SC 1877 # 2198 3002 3004 3080 3082 3084 3088 3114 3121 3152 3154 3156 3160 4266 4278 4284 4292 4302 4310 4565 4568 4608 4957 4976 5076 5313 5315 5421 5445 5448 5451 5455 5619 5622 5629 5647 6339 6483 6489 6684 7174 7194 7225 7242 7433 7446 7648 7679 7747 8311 8553 SWEEP 2003 # 7441 7442 7445 TAKE INTERRUPT 2098 # 8843 TEST DISP 2090 # 3284 3290 7579 TL [] 1725 # 4003 4008 5524 5689 5692 5760 5763 5766 5769 5829 5929 5972 6111 6113 6195 6215 6399 6415 6469 6504 6507 7695 7697 7711 8295 8562 8581 8583 8744 8762 8803 TR [] 1724 # 3605 3620 6340 6413 6768 7078 7080 7083 7085 7087 7378 7380 7384 7386 7388 7390 7392 7394 7636 7663 8246 8542 8731 8748 8751 8756 TURN OFF PXCT 2000 # 2253 2256 2259 2271 2274 2277 2291 TXXX TEST 2076 # 3298 UNHALT 2010 # 7898 UPDATE USER 2033 # 3571 3575 3633 UUO 2095 # 2448 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3935 3937 3939 3941 3943 3945 3947 3949 6924 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7263 7286 7381 7840 7849 7851 7853 7855 7857 7859 VMA 1865 # VMA EXTENDED 1803 # VMA PHYSICAL 1800 # 3971 3995 4015 4042 6988 6996 7500 7542 7890 7893 7976 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 291 ; Cross Reference Listing 7979 7986 7989 7992 7995 7998 8708 8724 8845 8881 8884 VMA PHYSICAL READ 1802 # 7500 7542 8881 VMA PHYSICAL WRITE 1801 # 3971 7890 7976 8845 VMA_[] 1845 # 2241 2245 2263 2320 2347 2356 2443 2801 3339 3466 3471 3545 3581 3643 3654 3743 3748 3827 3858 4234 4709 4718 4769 4777 5110 5138 5146 5262 5945 6471 6527 6605 6647 6910 6912 7129 7234 7398 7416 7422 7500 7669 7713 7869 7877 7904 8005 8576 8592 8844 VMA_[] WITH FLAGS 1846 # 7772 VMA_[]+1 1848 # 2242 2244 2289 2376 3351 3645 4058 5160 5165 5183 5268 6116 6466 7325 7355 VMA_[]+XR 1850 # 4765 4773 6909 6911 VMA_[]+[] 1851 # VMA_[]-1 1849 # 3540 3549 3552 7691 VMA_[].OR.[] WITH FL 1847 # 7631 7666 WORK[] 1866 # 6148 6370 6569 6636 6714 6745 6748 WORK[]_.NOT.[] 1776 # 6190 WORK[]_0 1771 # 2190 7449 7450 WORK[]_1 1772 # 2189 WORK[]_Q 1769 # 4988 6120 6159 WORK[]_[] 1773 # 2173 2181 2183 2184 4706 4965 4978 4998 5030 5938 5951 5954 5984 6046 6072 6073 6074 6089 6136 6172 6311 6313 6375 6388 6394 6593 6741 6930 6981 7093 7202 7268 7272 7276 7280 7284 7299 7310 7331 7334 7364 7365 7732 7738 7740 7885 7957 7972 7982 8244 8254 8255 8257 8258 8265 8275 8277 8279 8281 8285 8286 8775 WORK[]_[] CLR LH 1774 # 3676 7698 WORK[]_[]-1 1775 # 6369 WORK[]_[].AND.[] 1777 # 6001 WRITE TEST 1815 # 2602 2798 2804 3418 3643 3646 3654 3695 3745 3750 3828 3841 3995 4042 4052 4746 4752 4907 5139 5147 5163 5168 5262 6559 6605 7234 7266 7270 7274 7278 7282 7351 7355 7416 7516 7878 7893 7979 7986 7989 7992 7995 7998 8884 XR 1864 # [] LEFT_-1 1666 # 2753 [] LEFT_0 1664 # 2751 [] RIGHT_-1 1667 # 2774 [] RIGHT_0 1665 # 2772 []+[] 1531 # 2796 4245 4385 []-# 1533 # 6199 6492 8702 8712 []-[] 1532 # 4381 4437 4438 5135 5153 5177 5265 5374 5382 5730 6114 [].AND.# 1534 # 5405 5409 6538 7001 7151 7199 [].AND.NOT.WORK[] 1778 # [].AND.NOT.[] 1537 # 4142 [].AND.Q 1535 # 4409 [].AND.WORK[] 1779 # 6754 [].AND.[] 1536 # 4170 7045 7051 7564 [].OR.[] 1538 # [].XOR.# 1539 # 2201 7503 7504 [].XOR.[] 1540 # 7341 []_# 1542 # 2162 2166 2191 2192 2232 2758 2760 2765 2767 4554 4962 4985 4995 4999 5028 5071 5122 5956 5988 6014 6017 6039 6087 6093 6101 6132 6139 6158 6186 6368 6395 6519 6576 6580 6640 7057 7059 7425 7427 7438 7440 7519 7561 8247 8821 8823 8825 8827 8829 8831 8835 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 292 ; Cross Reference Listing []_#-[] 1541 # []_(#-[])*2 1628 # 5066 []_(-[])*.5 1629 # []_(-[]-.25)*.5 LONG 1630 # 4415 5724 []_(-[]-.25)*2 LONG 1631 # 4492 []_(AC[].AND.[])*.5 1626 # 4191 4193 5563 5654 5709 []_(MEM.AND.[])*.5 1840 # 2437 []_(Q+1)*.5 1627 # 5846 []_([]+#)*2 1641 # []_([]+1)*2 1642 # 6658 []_([]+[])*.5 LONG 1643 # 5593 []_([]+[])*2 LONG 1644 # 4599 []_([]+[]+.25)*.5 LO 1647 # []_([]-[])*.5 LONG 1645 # []_([]-[])*2 LONG 1646 # 4596 []_([].AND.#)*.5 1633 # 4959 4966 7545 []_([].AND.#)*2 1634 # []_([].AND.NOT.#)*.5 1635 # []_([].AND.NOT.#)*2 1636 # []_([].AND.[])*.5 1637 # 4185 []_([].AND.[])*2 1638 # []_([].OR.#)*.5 1639 # []_([].OR.#)*2 1640 # []_+SIGN 1670 # 2435 2470 5306 5310 5335 5368 5429 []_+SIGN*.5 1675 # 5567 5669 5720 []_-1 1543 # 4337 6405 7407 []_-2 1544 # []_-AC 1559 # 4641 []_-AC[] 1560 # 6284 []_-Q 1545 # []_-Q*.5 1547 # 5393 []_-Q*2 1546 # 4465 []_-SIGN 1671 # 2433 2471 5307 5311 5336 5369 5430 []_-SIGN*.5 1676 # 5569 5670 5722 []_-WORK[] 1786 # 6012 6955 6969 []_-[] 1548 # 2590 2960 4534 4552 4559 4653 4657 4661 4663 5296 5371 5406 5515 5531 5560 5712 5792 5813 6281 []_-[]*2 1550 # 5375 []_-[]-.25 1549 # 5561 []_.NOT.AC[] 1552 # 6283 []_.NOT.AC 1551 # 2909 2919 4640 []_.NOT.Q 1553 # 4925 6000 []_.NOT.WORK[] 1785 # 6029 6057 6061 6197 6201 6973 []_.NOT.[] 1554 # 2852 2889 2930 2940 3301 4107 4551 4655 4662 5465 5513 5528 5530 5711 5721 5790 5981 5983 6535 7694 []_0 1555 # 2174 2176 2179 2188 2207 2229 2413 2817 3284 4239 4335 4549 4829 4971 5114 5156 5180 5266 5532 5705 5772 5788 5816 6033 6105 6117 6128 6157 6278 6316 6350 6406 6410 6414 6417 6472 6744 7169 7181 7227 7304 7379 7424 7492 7721 7766 7890 8558 8815 8833 8834 8865 []_0 XWD [] 1557 # 2168 2171 2215 2251 2255 2258 2270 2273 2276 3959 3999 4047 4411 4422 5896 5898 5900 5902 5904 5906 5908 5910 5912 6608 7295 7474 7475 7476 7477 7478 7479 7480 []_0*.5 LONG 1556 # 4265 []_AC[] 1574 # 2194 2384 2794 5971 5989 5992 6022 6038 6110 6130 6162 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 293 ; Cross Reference Listing 6177 6205 6208 6210 6227 6268 6270 6271 6303 6309 6336 6348 6383 6526 6567 6604 6606 6710 6823 6830 6856 6858 6885 6942 6950 6956 []_AC[]*.5 1576 # 4205 []_AC[]*2 1575 # 6217 []_AC[]-1 1571 # 6377 6396 []_AC[]-[] 1570 # 4112 []_AC[].AND.[] 1572 # []_AC 1558 # 2370 2383 2601 2702 2704 2735 2741 2978 2995 3486 3730 3763 3785 3843 3856 4163 4342 4733 5129 5217 5299 5332 5364 5428 5574 5974 6112 6174 6308 6310 6331 6468 7593 7880 []_AC*.5 1561 # 3001 3013 3016 4210 4425 5564 5666 5717 []_AC*.5 LONG 1562 # 2397 3103 []_AC*2 1563 # 4729 []_AC+1 1564 # 3500 []_AC+1000001 1565 # 3522 3692 []_AC+[] 1566 # 5120 []_AC-1 1567 # 3514 []_AC-[] 1568 # 3383 4087 4117 []_AC-[]-.25 1569 # 4114 []_AC.AND.MASK 1573 # 2981 3029 []_APR 1577 # 7019 7020 7082 7114 7313 []_CURRENT AC [] 1578 # []_EA 1581 # 2333 []_EA FROM [] 1579 # 5942 []_EXP 1582 # 5506 5522 5852 []_FE 1583 # 3054 6671 []_FLAGS 1584 # 3641 3655 4002 7505 []_IO DATA 1835 # 7490 7538 7634 8267 []_MEM 1836 # 2282 2352 2366 2375 2379 2407 2424 3562 3586 3601 3626 3630 3691 3736 3772 3861 4018 4781 5928 5947 6367 6610 6638 6914 6929 6999 7132 7267 7271 7275 7279 7283 7324 7363 7501 7543 7714 7759 7762 7873 7912 8730 []_MEM THEN FETCH 1837 # 2418 []_MEM*.5 1838 # []_MEM.AND.MASK 1839 # 4787 []_P 1585 # 6541 6687 []_PC WITH FLAGS 1586 # 3702 3819 3825 4031 4232 6980 7517 8859 []_Q 1587 # 4140 4148 4368 4423 4440 4446 4455 5623 5630 5650 5673 5732 5734 []_Q*.5 1588 # 4203 5387 5392 5662 []_Q*2 1589 # []_Q*2 LONG 1590 # 4451 4461 []_Q+1 1591 # 5117 []_RAM 1592 # []_TIME 1593 # 7338 7339 7340 []_VMA 1594 # 7728 7971 8241 8256 8776 []_VMA FLAGS 1856 # 7486 7533 7625 7628 7664 7675 7681 7907 []_VMA IO READ 1857 # 7486 7533 7625 7628 7907 []_VMA IO WRITE 1858 # 7664 7675 7681 []_WORK[] 1784 # 4983 4993 5192 6076 6077 6078 6079 6143 6354 6364 6397 6398 6419 6595 6631 6708 6828 6839 6946 7071 7105 7197 7254 7256 7258 7260 7262 7292 7301 7306 7312 7344 7348 7369 7701 7706 7959 7964 7968 7983 8001 8003 8004 8006 8245 8549 8589 8590 8591 8597 8786 8792 8801 8805 8817 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 294 ; Cross Reference Listing []_WORK[]+1 1787 # 6008 6041 6096 6194 6372 6835 6841 []_XR 1595 # 7704 []_[] 1596 # 2308 3032 3467 3470 3538 3539 3565 3592 3607 3666 3720 3840 3845 4134 4162 4186 4202 4332 4341 4356 4362 4391 4746 5054 5302 5303 5304 5342 5362 5370 5579 5580 5587 5588 5661 5703 5706 5748 5749 5990 6010 6056 6091 6351 6362 6370 6437 6537 6770 6861 6884 6903 6960 7026 7027 7215 7244 7343 7375 7521 7603 7605 7612 7637 8307 8546 8570 8867 []_[] SWAP 1597 # 2402 2582 2729 2731 2734 2737 2740 2743 3282 3287 3606 3783 3842 3857 4827 4953 4969 5069 5109 5118 5191 6416 6473 6478 6479 6773 7106 7383 7396 7406 8739 []_[] XWD 0 1598 # 6171 6286 7754 8271 8273 8287 []_[]*.5 1599 # 2165 2439 2440 2997 3018 3019 3023 3106 3109 4184 4241 4403 4431 4562 4563 4564 4570 4831 4907 4956 4975 5377 5385 5452 5501 5503 5519 5520 5539 5540 5545 5655 5688 5857 6480 6483 6487 6489 6569 6677 6684 6747 7223 7225 7233 7239 7242 7548 7566 7641 7647 8310 8326 []_[]*.5 LONG 1600 # 2398 3084 3112 3156 4136 4164 4243 4264 4277 4405 4407 4419 4435 4450 4457 4509 4557 5057 5224 5244 5245 5246 5260 5315 5338 5343 5418 5420 5450 5618 5621 5629 5632 5634 5648 5683 5738 5764 5767 5801 5803 5849 []_[]*2 1601 # 2163 2985 3008 3021 3024 3051 4139 4166 4222 5075 5259 5372 5380 5455 6218 6764 7173 7192 7194 7493 7529 7673 7679 7770 8552 []_[]*2 LONG 1602 # 3004 3085 3088 3089 3090 3115 3119 3122 3157 3160 3161 4489 4569 4572 4574 4920 5239 5240 5497 5509 5517 5521 5595 5600 5602 5614 5616 5617 5646 5687 5691 5740 5757 5779 5796 5824 []_[]*4 1603 # 6474 []_[]+# 1604 # 3738 3767 6433 6442 7494 7539 8716 8726 8840 []_[]+.25 1605 # 5853 []_[]+0 1606 # []_[]+1 1607 # 2193 2197 2427 2430 3417 3627 3648 4752 5158 5182 5267 5464 5967 6068 6086 6115 6258 6326 6338 6345 6365 6386 6400 6455 6518 6542 6636 6863 6905 7302 7768 8819 8880 []_[]+1000001 1608 # 3831 3848 5132 []_[]+AC 1609 # 4073 4103 []_[]+AC[] 1610 # 4100 6219 6229 6232 []_[]+Q 1611 # 4463 []_[]+RAM 1612 # 6449 6451 []_[]+WORK[] 1780 # 5051 6390 6570 6646 6753 6761 7345 7718 7720 []_[]+XR 1613 # 2302 2314 2329 2342 3577 5941 5944 7712 []_[]+[] 1614 # 3961 4001 4216 4482 4485 4573 5316 5460 5543 5674 6031 6063 6235 6246 6248 6685 6967 6983 6991 7296 7496 7531 7541 7549 8706 8721 []_[]+[]+.25 1615 # []_[]-# 1616 # []_[]-1 1617 # 3433 6047 6151 6152 6263 6404 6441 6834 8809 8869 []_[]-1000001 1618 # []_[]-AC 1619 # []_[]-RAM 1620 # 6439 6444 []_[]-WORK[] 1789 # []_[]-[] 1621 # 6026 6352 6963 7307 7431 7444 []_[]-[] REV 1622 # 6150 []_[].AND.AC 1648 # 2827 2950 3289 3312 7579 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 295 ; Cross Reference Listing []_[].AND.NOT.# 1649 # 3634 4038 5837 6421 6789 6805 7072 7098 7391 8571 8746 []_[].AND.NOT.AC 1651 # 2837 7609 []_[].AND.NOT.WORK[] 1782 # []_[].AND.NOT.[] 1650 # 5598 7081 7084 7385 7395 7565 []_[].AND.Q 1652 # 4168 4840 4927 []_[].AND.WORK[] 1781 # 6149 []_[].AND.[] 1653 # 4926 5525 5807 5809 6147 7408 []_[].AND.# 1623 # 2435 2448 2470 3542 3551 3554 3556 3557 3558 3591 3596 3599 3619 3640 3653 3935 3937 3939 3941 3943 3945 3947 3949 3955 4053 4121 5078 5306 5310 5335 5368 5429 6182 6305 6481 6484 6523 6654 6688 6691 6924 6934 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7074 7076 7108 7111 7136 7143 7147 7158 7177 7198 7226 7232 7238 7243 7263 7286 7328 7381 7382 7643 7649 7840 7849 7851 7853 7855 7857 7859 8242 8299 8555 8565 8778 []_[].AND.# CLR LH 1624 # 3055 6596 6634 6674 6819 7044 7047 7115 7482 8313 8578 []_[].AND.# CLR RH 1625 # 5241 5931 5975 6175 []_[].EQV.AC 1654 # 2899 []_[].EQV.Q 1655 # 4146 4149 4171 4172 []_[].OR.# 1656 # 2164 2433 2471 4005 4010 4122 4475 4560 5307 5311 5336 5369 5430 5625 5626 5633 5836 6187 6274 6318 6327 6332 6342 6613 6617 6619 6680 6793 6797 6801 6809 6825 7200 7314 7389 7467 7468 7469 7470 7471 7472 7473 7908 8238 8292 8296 8559 8563 8580 8582 8586 8749 8753 8758 8765 8770 8843 []_[].OR.AC 1657 # 2879 3307 7607 []_[].OR.FLAGS 1658 # []_[].OR.WORK[] 1783 # 6961 6970 []_[].OR.[] 1659 # 2920 4108 4928 5933 6032 6262 6693 7075 7079 7086 7117 7162 7184 7186 7387 7393 7535 8567 8781 []_[].XOR.AC 1661 # 2869 3304 []_[].XOR.[] 1662 # 5811 []_[].XOR.# 1660 # 4429 8305 .NOT.[] 1530 # 4346 7409 7484 2T 1868 # 4425 4438 5305 5575 6149 6219 6283 6571 6708 6753 7348 7705 3T 1869 # 2201 2426 2436 2591 3124 3298 3383 3417 3433 3523 3613 3697 3732 3740 3765 3769 3786 3791 3796 3833 3849 4074 4088 4191 4193 4212 4246 4383 4387 4437 4443 4444 4445 4462 4466 4487 4495 4576 4641 4658 4716 4731 4802 4820 4916 4960 4967 5047 5063 5067 5133 5135 5154 5178 5265 5299 5333 5374 5405 5406 5409 5441 5444 5498 5500 5502 5504 5563 5564 5567 5569 5668 5669 5670 5714 5718 5720 5722 5730 5813 5819 5979 5997 5999 6047 6051 6114 6221 6235 6249 6281 6284 6369 6372 6404 6405 6433 6439 6442 6451 6476 6490 6517 6537 6538 6660 6667 6711 6770 6860 6867 6888 6902 6906 6909 6911 6947 7002 7132 7139 7152 7199 7465 7490 7494 7502 7503 7504 7539 7543 7545 7712 8576 8593 8716 8727 8811 8841 4T 1870 # 3029 3500 3514 4100 4105 4112 4115 4117 5007 5012 5993 6023 6200 6205 6230 6271 6444 6492 6632 6755 6956 7965 8262 8704 8714 5T 1871 # 7266 7270 7274 7278 7282 7734 7751 7-BIT DPB 4897 # 4901 4902 4903 4904 4905 7-BIT LDB 4799 # 4807 4808 4809 4810 4811 (D) MACRO% AC 2137 # 2560 2561 2565 2566 2570 2571 2575 2576 2597 2613 2614 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 296 ; Cross Reference Listing 2618 2619 2623 2624 2628 2629 2633 2634 2638 2639 2643 2644 2648 2649 2655 2656 2660 2661 2665 2666 2670 2671 2675 2676 2680 2681 2685 2686 2690 2691 2780 2810 2811 2820 2821 2830 2831 2840 2841 2845 2846 2862 2863 2872 2873 2882 2883 2892 2893 2902 2903 2912 2913 2923 2924 2933 2934 2943 2944 2953 2954 4066 4067 4080 4081 4128 4129 4698 8234 AC DISP 2151 # 3529 7012 7013 7249 B 2139 # 2813 2823 2833 2843 2848 2865 2875 2885 2895 2905 2915 2926 2936 2946 2956 4069 4083 4131 DAC 2141 # 2779 4095 4096 4153 4154 4179 4320 4321 4325 4326 4397 5639 5700 DBL AC 2126 # 2788 DBL B 2142 # 4156 4323 4328 DBL FL-R 2132 # 5550 5551 5639 5700 DBL R 2125 # 2779 2780 4095 4096 4179 4397 FL-AC 2143 # 5276 5279 5280 5284 5287 5288 5321 5325 5326 5350 5354 5355 5400 5401 5435 5436 FL-BOTH 2145 # 5278 5282 5286 5290 5323 5328 5352 5357 FL-I 2131 # 5280 5288 5326 5355 FL-MEM 2144 # 5277 5281 5285 5289 5322 5327 5351 5356 FL-R 2129 # 5276 5279 5284 5287 5321 5325 5350 5354 5435 5436 FL-RW 2130 # 5277 5278 5281 5282 5285 5286 5289 5290 5322 5323 5327 5328 5351 5352 5356 5357 I 2117 # 2856 2968 3188 3189 3190 3191 3192 3193 3194 3195 3197 3198 3206 3207 3208 3209 3210 3211 3212 3213 3224 3225 3226 3227 3228 3229 3230 3231 3241 3242 3243 3244 3245 3246 3247 3248 3363 3364 3365 3366 3367 3368 3369 3370 3475 3476 3477 3478 3479 3480 3481 3482 3490 3491 3492 3493 3494 3495 3496 3504 3505 3506 3507 3508 3509 3510 3517 3518 3529 3531 3682 3684 3685 3812 3813 3814 3815 3868 3869 3870 3871 3872 3873 3874 3875 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3914 3915 3916 3917 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 5125 5401 5865 5866 5867 5868 5869 5870 5871 5873 5874 5875 5876 5878 5879 5880 5881 5883 5884 5885 5886 5887 5888 5889 5890 5924 7783 7784 7785 7787 7788 7790 7791 7793 7794 7795 7796 7797 7798 7799 7800 7802 7803 7804 7805 7806 7807 7808 7809 7811 7812 7813 7814 7815 7816 7817 7818 7820 7821 7822 7823 7824 7825 7826 7827 7829 7830 7831 7832 7833 7834 7835 7836 I-PF 2118 # 2561 2566 2571 2576 2614 2619 2624 2629 2634 2639 2644 2649 2656 2661 2666 2671 2676 2681 2686 2691 2810 2811 2821 2831 2841 2846 2863 2873 2883 2893 2902 2903 2913 2924 2934 2944 2953 2954 2969 3489 3503 3779 4067 4081 4129 4154 4321 4326 IOT 2133 # 7012 7013 7249 7571 7572 7573 7574 7582 7583 7584 7585 7596 7597 7598 7599 7864 7865 8234 IR 2124 # 3683 IW 2123 # 2812 2813 2904 2905 2955 2956 M 2138 # 2562 2567 2572 2577 2615 2620 2625 2630 2635 2640 2645 2650 2657 2662 2667 2672 2677 2682 2687 2692 2812 2822 2832 2842 2847 2857 2858 2864 2874 2884 2894 2904 2914 2925 2935 2945 2955 4068 4082 4130 4155 4322 4327 7249 R 2119 # 2597 2855 3199 3200 3201 3202 3203 3204 3215 3216 3217 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 297 ; Cross Reference Listing 3218 3219 3220 3221 3222 3233 3234 3235 3236 3237 3238 3239 3240 3250 3251 3252 3253 3254 3255 3256 3257 3372 3373 3374 3375 3376 3377 3378 3379 3389 3390 3391 3392 3393 3394 3395 3396 3660 4698 4699 4700 4701 4702 5400 R-PF 2120 # 2560 2565 2570 2575 2613 2618 2623 2628 2633 2638 2643 2648 2655 2660 2665 2670 2675 2680 2685 2690 2820 2830 2840 2845 2862 2872 2882 2892 2912 2923 2933 2943 4066 4080 4128 4153 4320 4325 ROUND 2146 # 5279 5280 5281 5282 5287 5288 5289 5290 5325 5326 5327 5328 5354 5355 5356 5357 5400 5436 RW 2122 # 2563 2568 2573 2578 2615 2616 2620 2621 2626 2631 2636 2641 2646 2651 2657 2658 2662 2663 2668 2673 2678 2683 2688 2693 2822 2823 2832 2833 2842 2843 2847 2848 2864 2865 2874 2875 2884 2885 2894 2895 2914 2915 2925 2926 2935 2936 2945 2946 3406 3407 3408 3409 3410 3411 3412 3413 3422 3423 3424 3425 3426 3427 3428 3429 4068 4069 4082 4083 4130 4131 4155 4156 4322 4323 4327 4328 S 2140 # 2563 2568 2573 2578 2616 2621 2626 2631 2636 2641 2646 2651 2658 2663 2668 2673 2678 2683 2688 2693 SH 2127 # 2965 2966 2967 SHC 2128 # 2970 2971 SJC- 3323 # 3363 3372 3389 3406 3422 3475 3489 3503 SJCA 3327 # 3367 3376 3393 3410 3426 3479 3493 3507 SJCE 3325 # 3365 3374 3391 3408 3424 3477 3491 3505 5866 SJCG 3330 # 3370 3379 3396 3413 3429 3482 3496 3510 5871 SJCGE 3328 # 3368 3377 3394 3411 3427 3480 3494 3508 3517 5869 SJCL 3324 # 3364 3373 3390 3407 3423 3476 3490 3504 3518 5865 SJCLE 3326 # 3366 3375 3392 3409 3425 3478 3492 3506 5867 SJCN 3329 # 3369 3378 3395 3412 3428 3481 3495 3509 5870 TC- 3179 # 3224 3225 3233 3234 TCA 3181 # 3228 3229 3237 3238 TCE 3180 # 3226 3227 3235 3236 TCN 3182 # 3230 3231 3239 3240 TN- 3169 # TNA 3172 # 3192 3193 3201 3202 TNE 3170 # 3190 3191 3199 3200 7573 TNN 3173 # 3194 3195 3203 3204 7574 TO- 3183 # 3241 3242 3250 3251 TOA 3185 # 3245 3246 3254 3255 TOE 3184 # 3243 3244 3252 3253 TON 3186 # 3247 3248 3256 3257 TZ- 3175 # 3206 3207 3215 3216 TZA 3177 # 3210 3211 3219 3220 TZE 3176 # 3208 3209 3217 3218 TZN 3178 # 3212 3213 3221 3222 W 2121 # 2562 2567 2572 2577 2625 2630 2635 2640 2645 2650 2667 2672 2677 2682 2687 2692 2789 2857 2858 W TEST 2150 # 2597 4699 4701 WORD-TNE 3171 # 7571 WORD-TNN 3174 # 7572 (U) MEM 967 # 2174 2193 2197 2241 2241 2241 2242 2242 2244 2244 2245 2245 2245 2263 2264 2281 2289 2304 2304 2310 2310 2315 2316 2320 2321 2334 2343 2344 2347 2348 2352 2356 2365 2374 2376 2377 2378 2406 2417 2418 2418 2428 2429 2431 2432 2436 2443 2443 2507 2539 2545 2550 2553 2582 2588 2602 2603 2702 2704 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 298 ; Cross Reference Listing 2737 2743 2751 2753 2772 2774 2797 2798 2800 2801 2802 2804 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 3033 3033 3339 3339 3339 3351 3351 3418 3419 3466 3466 3466 3467 3467 3470 3470 3471 3471 3471 3538 3538 3539 3539 3540 3540 3545 3545 3549 3549 3552 3552 3561 3565 3565 3578 3579 3581 3582 3585 3600 3607 3607 3622 3626 3628 3629 3630 3643 3643 3645 3645 3646 3649 3654 3654 3690 3694 3695 3707 3713 3721 3722 3731 3732 3735 3743 3745 3748 3750 3752 3758 3764 3766 3772 3827 3828 3829 3841 3858 3859 3860 3970 3971 3971 3971 3990 3995 3995 3995 4014 4015 4016 4017 4029 4033 4042 4042 4042 4051 4052 4056 4058 4059 4060 4074 4088 4140 4146 4169 4171 4234 4234 4234 4709 4709 4709 4718 4718 4746 4752 4753 4765 4766 4769 4770 4773 4774 4777 4778 4780 4786 4907 4908 5110 5111 5138 5139 5146 5147 5149 5160 5161 5163 5165 5166 5168 5172 5175 5183 5184 5186 5221 5262 5262 5264 5268 5268 5269 5460 5464 5510 5532 5928 5942 5944 5944 5945 5945 5947 5968 5969 6116 6116 6365 6366 6367 6392 6393 6437 6443 6450 6466 6466 6471 6471 6527 6527 6559 6561 6605 6605 6607 6610 6638 6647 6647 6762 6763 6909 6909 6910 6910 6911 6911 6912 6912 6914 6928 6984 6987 6988 6992 6995 6996 6999 7129 7130 7131 7234 7234 7266 7267 7270 7271 7274 7275 7278 7279 7282 7283 7322 7323 7325 7326 7350 7351 7354 7355 7355 7355 7356 7362 7363 7398 7398 7398 7416 7416 7417 7422 7485 7489 7500 7500 7500 7500 7501 7501 7516 7537 7542 7542 7542 7543 7550 7551 7631 7631 7633 7666 7666 7667 7669 7669 7669 7691 7692 7713 7713 7714 7759 7762 7764 7772 7772 7774 7776 7869 7870 7872 7877 7878 7887 7890 7890 7890 7892 7893 7893 7893 7904 7905 7911 7960 7976 7976 7976 7977 7978 7979 7979 7979 7980 7981 7984 7985 7986 7986 7986 7987 7988 7989 7989 7989 7990 7991 7992 7992 7992 7993 7994 7995 7995 7995 7996 7997 7998 7998 7998 7999 8000 8002 8005 8291 8568 8576 8592 8707 8708 8709 8722 8723 8724 8729 8790 8796 8844 8845 8845 8845 8846 8860 8868 8881 8881 8881 8884 8884 8884 (U) MICROCODE OPTION(INH@ 1247 # OPT 1251 # 7060 (U) MICROCODE OPTION(KIP@ 1271 # OPT 1273 # 7064 (U) MICROCODE OPTION(KLP` 1277 # OPT 1281 # 7065 (U) MICROCODE OPTION(NOC` 1253 # OPT 1257 # 7061 (U) MICROCODE OPTION(NON 1259 # OPT 1263 # 7062 (U) MICROCODE OPTION(UBA  1265 # OPT 1267 # 7063 (U) MICROCODE OPTIONS 1240 # (U) MICROCODE RELEASE(MA 1287 # UCR 1288 # 7052 (U) MICROCODE RELEASE(MI` 1290 # UCR 1291 # 7053 (U) MICROCODE VERSION 1284 # UCV 1285 # 7066 (D) MODE 1351 # (U) MULTI PREC 972 # 4416 4468 4483 4486 4493 4607 5561 5594 5714 5725 (U) MULTI SHIFT 974 # 2986 2998 3020 3025 4833 4838 4914 4922 5259 5260 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 299 ; Cross Reference Listing (U) PHYSICAL 1141 # 3971 3995 4015 4042 6988 6996 7428 7429 7432 7441 7442 7445 7486 7500 7533 7542 7625 7628 7664 7675 7681 7890 7893 7907 7976 7979 7986 7989 7992 7995 7998 8708 8724 8845 8881 8884 (U) PI.CLR 1200 # 7378 (U) PI.CO1 1189 # (U) PI.CO2 1190 # (U) PI.DIR 1199 # 7384 (U) PI.IP1 1181 # 7561 (U) PI.IP2 1182 # (U) PI.IP3 1183 # (U) PI.IP4 1184 # (U) PI.IP5 1185 # (U) PI.IP6 1186 # (U) PI.IP7 1187 # (U) PI.MBZ 1198 # 7380 (U) PI.ON 1188 # 7389 7391 (U) PI.REQ 1201 # 7386 (U) PI.SC1 1206 # (U) PI.SC2 1207 # (U) PI.SC3 1208 # (U) PI.SC4 1209 # (U) PI.SC5 1210 # (U) PI.SC6 1211 # (U) PI.SC7 1212 # (U) PI.TCF 1203 # 7394 (U) PI.TCN 1202 # 7392 (U) PI.TSF 1204 # 7390 (U) PI.TSN 1205 # 7388 (U) PI.ZER 1180 # (U) PXCT 1145 # BIS-DST-EA 1151 # 6903 6905 6911 6912 6914 BIS-SRC-EA 1149 # CURRENT 1146 # 2241 2242 2244 2245 2264 2304 2310 2418 2443 3033 3339 3351 3466 3467 3470 3471 3538 3539 3563 3565 3587 3602 3607 3722 4234 4709 4718 7398 7669 7710 7905 D1 1148 # 2334 2376 2428 2431 2799 2803 3744 3749 5140 5148 5162 5167 5263 D2 1152 # 3696 3733 3765 4767 4771 5112 5185 5269 6909 6910 E1 1147 # 2343 2348 2354 3583 3669 E2 1150 # 4716 4735 4775 4779 4783 5935 5944 5945 5947 6866 (U) RAMADR 684 # AC# 685 # 2370 2383 2397 2534 2601 2702 2704 2735 2741 2827 2837 2869 2879 2899 2909 2919 2950 2978 2981 2995 3001 3013 3016 3029 3091 3103 3124 3289 3304 3307 3312 3313 3383 3402 3442 3445 3448 3451 3454 3457 3460 3463 3486 3500 3514 3522 3692 3723 3725 3730 3763 3785 3788 3793 3821 3843 3856 4073 4087 4103 4114 4117 4134 4135 4161 4163 4210 4225 4332 4333 4342 4423 4425 4467 4469 4640 4641 4645 4723 4729 4733 5009 5081 5120 5129 5130 5194 5217 5219 5299 5332 5362 5364 5427 5428 5456 5462 5564 5568 5570 5574 5666 5717 5818 5819 5974 6065 6102 6104 6112 6138 6174 6276 6308 6310 6322 6331 6401 6468 6622 6695 6947 6971 7579 7590 7593 7607 7609 7778 7880 8248 AC*# 686 # 2186 2187 2194 2384 2396 2502 2785 2794 3035 3056 3100 3130 4100 4112 4191 4193 4195 4203 4205 4212 4214 4226 4227 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 300 ; Cross Reference Listing 4228 4229 4230 4231 4343 4427 4449 4453 4456 4470 4471 4473 4476 4495 4497 4499 4500 4626 4627 4630 4631 4632 4635 4636 4637 4643 4644 5563 5654 5707 5709 5715 5774 5782 5820 5827 5971 5979 5989 5992 6022 6025 6038 6045 6052 6062 6100 6110 6130 6145 6162 6177 6179 6205 6208 6210 6217 6218 6219 6221 6227 6229 6232 6238 6240 6268 6270 6271 6275 6282 6283 6284 6288 6289 6296 6298 6303 6309 6325 6336 6348 6357 6363 6374 6377 6379 6383 6396 6402 6403 6526 6557 6562 6567 6604 6606 6710 6711 6823 6830 6837 6856 6858 6865 6885 6906 6942 6944 6950 6952 6956 6959 6964 RAM 689 # 2196 2198 6439 6444 6449 6451 VMA 688 # 2174 2282 2352 2366 2375 2379 2407 2418 2424 2437 2508 2540 2546 2551 2554 2604 2800 3419 3562 3586 3601 3622 3626 3630 3691 3708 3714 3736 3753 3759 3772 3830 3861 3991 4018 4030 4034 4057 4753 4781 4787 4908 5150 5173 5176 5222 5264 5928 5947 6367 6561 6607 6610 6638 6914 6929 6999 7132 7267 7271 7275 7279 7283 7324 7354 7356 7363 7417 7485 7490 7501 7538 7543 7634 7667 7714 7759 7762 7764 7774 7776 7873 7887 7892 7912 7960 7977 7978 7980 7981 7984 7985 7987 7988 7990 7991 7993 7994 7996 7997 7999 8000 8002 8267 8291 8730 8790 8796 8847 8861 XR# 687 # 2292 2302 2314 2329 2342 2358 3567 3569 3577 4760 4763 4765 4773 5939 5941 5944 6909 6911 6915 7703 7704 7712 # 690 # 2173 2181 2183 2184 2189 2190 3676 4706 4965 4978 4983 4988 4992 4993 4998 5004 5030 5043 5051 5056 5062 5192 5938 5951 5954 5984 6001 6008 6012 6029 6041 6046 6057 6061 6072 6073 6074 6076 6077 6078 6079 6089 6096 6120 6136 6143 6148 6149 6156 6159 6172 6190 6194 6197 6201 6311 6313 6354 6364 6369 6370 6372 6375 6388 6390 6394 6397 6398 6419 6569 6570 6593 6595 6631 6636 6646 6708 6714 6741 6745 6748 6753 6754 6761 6828 6835 6839 6841 6930 6946 6955 6961 6969 6970 6973 6981 7071 7093 7105 7197 7202 7254 7256 7258 7260 7262 7268 7272 7276 7280 7284 7292 7299 7301 7306 7310 7312 7331 7334 7344 7345 7348 7364 7365 7369 7449 7450 7698 7701 7706 7718 7720 7732 7738 7740 7885 7957 7959 7964 7968 7972 7982 7983 8001 8003 8004 8006 8244 8245 8254 8255 8257 8258 8265 8275 8277 8279 8281 8285 8286 8549 8589 8590 8591 8597 8775 8786 8792 8801 8805 8817 (D) READ 1362 # 2560 2561 2563 2565 2566 2568 2570 2571 2573 2575 2576 2578 2597 2613 2614 2615 2616 2618 2619 2620 2621 2623 2624 2626 2628 2629 2631 2633 2634 2636 2638 2639 2641 2643 2644 2646 2648 2649 2651 2655 2656 2657 2658 2660 2661 2662 2663 2665 2666 2668 2670 2671 2673 2675 2676 2678 2680 2681 2683 2685 2686 2688 2690 2691 2693 2779 2780 2810 2811 2820 2821 2822 2823 2830 2831 2832 2833 2840 2841 2842 2843 2845 2846 2847 2848 2855 2862 2863 2864 2865 2872 2873 2874 2875 2882 2883 2884 2885 2892 2893 2894 2895 2902 2903 2912 2913 2914 2915 2923 2924 2925 2926 2933 2934 2935 2936 2943 2944 2945 2946 2953 2954 2965 2966 2967 2969 2970 2971 3199 3200 3201 3202 3203 3204 3215 3216 3217 3218 3219 3220 3221 3222 3233 3234 3235 3236 3237 3238 3239 3240 3250 3251 3252 3253 3254 3255 3256 3257 3372 3373 3374 3375 3376 3377 3378 3379 3389 3390 3391 3392 3393 3394 3395 3396 3406 3407 3408 3409 3410 3411 3412 3413 3422 3423 3424 3425 3426 3427 3428 3429 3489 3503 3660 3683 3779 4066 4067 4068 4069 4080 4081 4082 4083 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 301 ; Cross Reference Listing 4095 4096 4128 4129 4130 4131 4153 4154 4155 4156 4179 4320 4321 4322 4323 4325 4326 4327 4328 4397 4698 4699 4700 4701 4702 5276 5277 5278 5279 5280 5281 5282 5284 5285 5286 5287 5288 5289 5290 5321 5322 5323 5325 5326 5327 5328 5350 5351 5352 5354 5355 5356 5357 5400 5435 5436 5550 5551 5639 5700 5924 (U) READ CYCLE 1133 # 2241 2242 2244 2245 2264 2304 2310 2315 2321 2344 2348 2377 2418 2429 2432 2443 3033 3339 3351 3466 3467 3470 3471 3538 3539 3540 3545 3549 3552 3565 3579 3582 3607 3629 3649 3722 3732 3766 3859 4016 4060 4234 4709 4718 4766 4770 4774 4778 5111 5186 5269 5944 5945 5969 6116 6366 6393 6466 6471 6527 6647 6763 6909 6910 6911 6912 6987 6995 7130 7266 7270 7274 7278 7282 7322 7326 7362 7398 7486 7500 7533 7542 7551 7625 7628 7669 7692 7713 7870 7905 7907 8572 8709 8723 8881 (D) ROUND 1350 # 5279 5280 5281 5282 5287 5288 5289 5290 5325 5326 5327 5328 5354 5355 5356 5357 5400 5436 (U) RSRC 618 # AB 620 # 3676 7698 AQ 619 # D0 626 # 2772 6171 6286 7486 7533 7625 7628 7664 7675 7681 7754 7907 8271 8273 8287 DA 624 # 2168 2171 2204 2215 2251 2255 2258 2261 2270 2273 2276 2279 2530 3055 3593 3959 3999 4047 4411 4422 4816 5896 5898 5900 5902 5904 5906 5908 5910 5912 6596 6608 6634 6674 6819 7044 7047 7115 7295 7338 7339 7340 7474 7475 7476 7477 7478 7479 7480 7482 7515 7547 8313 8578 8800 DQ 625 # 0A 623 # 2333 2774 3702 3819 3825 4031 4232 5237 5567 5569 5669 5670 5720 5722 5942 6980 7517 8859 0B 622 # 2751 2753 0Q 621 # 3641 3655 4002 5241 5931 5975 6175 7505 (U) S# 1008 # 2188 2391 2410 2410 2425 2425 2441 2979 2982 2986 2996 2998 3014 3017 3020 3025 3037 3052 3054 3081 3098 3107 3110 3153 4135 4163 4200 4220 4240 4353 4450 4458 4720 4802 4825 4830 4832 4834 4837 4900 4901 4902 4903 4904 4905 4913 4917 4919 4921 4954 4970 4981 4994 5010 5055 5070 5229 5231 5249 5251 5259 5260 5303 5305 5337 5342 5344 5370 5371 5384 5385 5407 5411 5413 5414 5418 5426 5441 5444 5446 5497 5501 5503 5506 5509 5517 5519 5520 5521 5522 5540 5545 5575 5586 5601 5603 5644 5655 5659 5662 5672 5678 5684 5695 5733 5734 5744 5758 5765 5768 5780 5797 5802 5804 5825 5850 5852 5858 5996 5997 5999 6165 6310 6478 6480 6487 6536 6541 6543 6666 6668 6670 6671 6677 6687 6870 7171 7192 7223 7233 7239 7453 7641 7673 7727 7743 8308 8547 (U) SCAD 985 # A 993 # 2188 3037 4135 4163 4200 4220 4240 4353 4450 4458 4716 4730 4807 4808 4809 4810 4811 4916 4954 4970 4981 4994 5010 5055 5070 5229 5231 5249 5251 5337 5384 5407 5411 5413 5414 5418 5644 5655 5659 5672 5678 5733 5734 6310 6478 6480 6487 6536 6666 6667 6677 6867 6888 6907 7171 7192 7223 7233 7239 7453 7641 7673 7727 7743 8308 8547 A*2 986 # 6659 A+B 990 # 2391 2410 2410 2425 2425 2982 2986 2996 2998 3017 3020 3025 3052 3054 3098 3107 4832 4837 4901 4902 4903 4904 4905 4913 4921 5259 5260 5303 5305 5333 5342 5344 5385 5426 5428 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 302 ; Cross Reference Listing 5440 5444 5497 5501 5503 5506 5509 5517 5519 5520 5521 5522 5540 5545 5575 5586 5601 5603 5667 5684 5695 5758 5765 5768 5780 5797 5802 5804 5825 5850 5852 5858 5996 5997 5999 6537 6541 6669 6670 6671 6687 6975 A-1 992 # 2198 3002 3004 3080 3082 3084 3088 3114 3121 3152 3154 3156 3160 4266 4278 4284 4292 4302 4310 4565 4568 4608 4957 4976 5076 5313 5315 5421 5445 5448 5451 5455 5619 5622 5629 5647 6339 6483 6489 6684 7174 7194 7225 7242 7433 7446 7648 7679 7734 7747 8311 8553 A-B 989 # 2979 3014 3081 3110 3153 4708 4713 4727 4748 4802 4825 4830 4834 4900 4919 5364 5370 5371 5446 5718 5744 6049 6059 6859 6862 6902 6904 A-B-1 988 # 5299 5304 5565 5585 A.AND.B 991 # 4720 4917 6165 6543 6668 6870 A.OR.B 987 # 2441 5662 (U) SCADA 994 # BYTE1 998 # 4708 4713 4716 4727 4807 4916 6049 6537 6667 6859 6867 6902 6907 6975 BYTE2 999 # 4808 BYTE3 1000 # 4809 BYTE4 1001 # 4810 BYTE5 1002 # 4731 4811 6660 6889 PTR44 997 # 4748 6059 6862 6904 S# 996 # 2188 2391 2410 2410 2425 2425 2441 2979 2982 2986 2996 2998 3014 3017 3020 3025 3037 3052 3054 3081 3098 3107 3110 3153 4135 4163 4200 4220 4240 4353 4450 4458 4720 4802 4825 4830 4832 4834 4837 4900 4901 4902 4903 4904 4905 4913 4917 4919 4921 4954 4970 4981 4994 5010 5055 5070 5229 5231 5249 5251 5259 5260 5303 5305 5337 5342 5344 5370 5371 5384 5385 5407 5411 5413 5414 5418 5426 5440 5444 5446 5497 5501 5503 5506 5509 5517 5519 5520 5521 5522 5540 5545 5575 5586 5601 5603 5644 5655 5659 5662 5672 5678 5684 5695 5733 5734 5744 5758 5765 5768 5780 5797 5802 5804 5825 5850 5852 5858 5996 5997 5999 6165 6310 6478 6480 6487 6536 6541 6543 6666 6668 6670 6671 6677 6687 6870 7171 7192 7223 7233 7239 7453 7641 7673 7727 7743 8308 8547 SC 995 # 2198 3002 3004 3080 3082 3084 3088 3114 3121 3152 3154 3156 3160 4266 4278 4284 4292 4302 4310 4565 4568 4608 4957 4976 5076 5299 5304 5313 5315 5333 5364 5421 5428 5445 5448 5451 5455 5565 5585 5619 5622 5629 5647 5667 5718 6339 6483 6489 6669 6684 7174 7194 7225 7242 7433 7446 7648 7679 7734 7747 8311 8553 (U) SCADB 1003 # EXP 1005 # 2410 2410 2425 2425 5299 5303 5305 5333 5364 5428 5565 5575 5586 5667 5718 FE 1004 # 2441 2979 2982 2986 2996 2998 3014 3017 3020 3025 3052 3054 3107 3110 4720 4802 4825 4830 4832 4837 4901 4902 4903 4904 4905 4913 4917 4919 4921 5259 5260 5304 5342 5344 5370 5371 5385 5441 5444 5446 5497 5501 5503 5506 5509 5517 5519 5520 5521 5522 5540 5545 5585 5601 5603 5662 5684 5695 5744 5758 5765 5768 5780 5797 5802 5804 5825 5850 5852 5858 5997 5999 6165 6537 6541 6543 6668 6669 6670 6671 6687 6870 SHIFT 1006 # 2391 3081 3098 3153 5426 SIZE 1007 # 4708 4713 4727 4748 4834 4900 5996 6049 6059 6859 6862 6902 6904 6975 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 303 ; Cross Reference Listing (U) SETFOV 1089 # 5366 5378 5731 (U) SETFPD 1095 # 4248 4762 6405 (U) SETNDV 1090 # 4355 4390 4421 4507 5014 5366 5378 5731 (U) SETOV 1087 # 4148 4149 4173 4235 4355 4390 4421 4507 5014 5366 5378 5443 5731 (U) SHSTYLE 832 # ASHC 837 # 3004 3113 3116 3120 3123 4284 4292 4302 4310 4416 4420 4489 4493 4509 5315 5418 5420 5450 5594 5596 5600 5602 5618 5622 5629 5632 5634 5646 5687 5691 5726 5740 5758 5764 5767 5780 5797 5801 5803 5825 5850 DIV 839 # 4565 4568 4569 4612 4616 5497 5509 5517 5521 5614 5616 5617 LSHC 838 # 3084 3088 4597 4600 NORM 833 # 2438 2998 4243 4277 4450 4606 5224 5239 5240 5244 5245 5246 5260 5648 5738 ONES 835 # 4836 4839 4912 4915 5999 ROT 836 # 3020 3025 ROTC 840 # 3156 3160 ZERO 834 # (U) SKIP 910 # AC0 918 # 2497 3401 4705 ADEQ0 930 # 3030 3345 3357 3448 3460 4138 4143 4345 4347 4351 4365 4410 4439 4469 4550 4628 4633 4638 4654 4661 4979 5008 5362 5388 5390 5463 5505 5529 5685 5736 5778 5823 6153 6206 6282 6285 6574 6611 6632 6755 7342 ADLEQ0 914 # 2201 4003 4008 5405 5410 5524 5689 5692 5760 5763 5766 5769 5829 5929 5972 6111 6113 6195 6215 6399 6415 6469 6504 6507 6539 7003 7139 7153 7199 7503 7504 7695 7697 7711 8295 8562 8581 8583 8744 8762 8803 ADREQ0 915 # 3099 3605 3620 5136 6340 6413 6768 7045 7051 7078 7080 7083 7085 7087 7378 7380 7384 7386 7388 7390 7392 7394 7491 7544 7564 7636 7663 8246 8542 8731 8748 8751 8756 CRY0 913 # 3698 3741 3770 5374 5498 5500 5502 5504 CRY1 926 # 4101 4113 5814 6230 6236 6249 6440 6451 CRY2 921 # 5787 5847 DP0 922 # 2411 2426 2585 2763 2770 3053 3125 3342 3354 3445 3457 3787 3790 3795 4120 4145 4167 4170 4225 4233 4334 4370 4372 4377 4382 4386 4408 4425 4437 4444 4459 4478 4496 4548 4555 4570 5011 5155 5179 5265 5301 5305 5334 5364 5372 5406 5428 5459 5566 5668 5715 5719 5730 5743 5980 5993 6010 6023 6030 6048 6090 6092 6114 6131 6134 6140 6180 6272 6277 6314 6323 6356 6373 6445 6495 6521 6712 6742 6784 6838 6957 7133 7297 8701 DP18 923 # 2390 2749 2756 5953 6200 6404 6493 6816 6817 7530 8704 8714 8737 EXECUTE 932 # 7899 FPD 917 # 4187 4708 4713 4727 6304 INT 919 # 5159 6050 8259 8784 8815 8866 IOLGL 911 # 2447 3550 3553 IOT 924 # JFCL 925 # 3612 KERNEL 916 # 3543 3547 3548 3555 3664 6982 LE 920 # 3348 3360 3451 3463 4404 5038 5382 5706 6353 7308 7965 LLE 912 # 7704 SC 931 # 2198 3002 3004 3080 3082 3084 3088 3105 3114 3121 3152 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 304 ; Cross Reference Listing 3154 3156 3160 4266 4278 4284 4292 4302 4310 4565 4568 4608 4957 4976 5076 5313 5315 5421 5445 5448 5451 5455 5568 5570 5619 5622 5629 5647 6339 6483 6489 6675 6684 7174 7194 7225 7242 7433 7446 7648 7679 7747 8311 8553 TRAP CYCLE 928 # 8802 TXXX 927 # 3298 -1 MS 935 # 5151 6045 7346 -CONTINUE 934 # 7901 -IO BUSY 933 # 7729 7735 7744 7752 (U) SPEC 796 # 2582 2588 2702 2704 2737 2743 2751 2753 2772 2774 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 4140 4146 4169 4171 8568 8868 APR EN 810 # 2179 7092 7201 APR FLAGS 808 # 7097 7101 7316 ASHOV 817 # 3004 3120 3123 CLR IO BUSY 800 # 7622 7660 CLR IO LATCH 799 # 7707 7715 7719 7722 7731 7737 7746 7751 CLRCLK 798 # 7293 7347 8787 CLRCSH 809 # 7428 7429 7432 EXPTST 818 # 5506 5522 5852 FLAGS 819 # 2230 2231 2591 3417 3433 3500 3514 3570 3571 3574 3575 3611 3632 3633 3703 3715 3771 3801 3805 3820 3826 4020 4021 4022 4074 4088 4105 4115 4118 4148 4149 4173 4223 4235 4245 4248 4355 4390 4421 4507 4656 4658 4723 4740 4762 5014 5366 5378 5443 5731 6405 6406 7004 7506 7521 8806 INHCRY18 814 # 3523 3693 3740 3769 3789 3794 5046 5121 LDACBLK 820 # 2176 7165 7188 LDINST 821 # 2283 3668 7000 7913 LDPAGE 801 # 7423 8584 LDPI 816 # 3621 7409 7484 7966 LDPXCT 803 # 3673 LOADIR 815 # 5934 LOADXR 806 # 2354 3563 3587 3602 4716 4735 4783 5935 5947 6866 6903 6905 6914 7710 MEMCLR 811 # 2174 3622 7485 7887 7960 8291 8790 8796 NICOND 802 # 2241 2242 2244 2245 2305 2311 2535 3056 3102 3130 3339 3351 3442 3466 3467 3470 3471 3538 3539 3565 3607 3724 3800 3807 4234 4498 4501 4709 5456 5462 5821 7398 7669 8248 PREV 805 # 7871 7879 PXCT OFF 813 # 2253 2256 2259 2271 2274 2277 2291 SWEEP 812 # 7441 7442 7445 WAIT 804 # 2423 # 797 # 7895 7898 7961 (U) STATE 1011 # BLT 1013 # 5122 COMP-DST 1020 # 6139 CVTDB 1019 # 6186 DST 1016 # 6101 DSTF 1018 # 6039 EDIT-DST 1022 # 6158 6368 6395 6614 6640 8823 8827 EDIT-S+D 1023 # 6580 EDIT-SRC 1021 # 6132 6519 6576 8821 8829 8831 8835 MAP 1014 # 8247 SIMPLE 1012 # SRC 1015 # 5988 6017 6087 8825 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 305 ; Cross Reference Listing SRC+DST 1017 # 6014 6093 (U) SWITCH% FULL 405 1308 1310 2185 2205 2210 2214 4182 4250 4253 4400 4510 4513 4581 4646 4932 5083 5087 7195 7203 INHCST 408 1248 1250 1252 8050 8052 8399 8402 8403 8406 8528 8531 8532 8535 8606 8615 8616 8632 KIPAGE 417 427 429 1272 1274 1276 3963 3973 4025 4036 7205 7212 7218 7220 8316 8320 8325 8328 8696 8742 8851 8854 8858 8863 KLPAGE 8 420 424 426 428 1278 1280 1282 3964 3968 3974 3988 7206 7211 7214 7216 8315 8324 8330 8537 8600 8694 8850 8856 8873 8878 NOCST 411 432 434 1254 1256 1258 8394 8467 8474 8477 8491 8494 8495 8499 8525 8544 8601 8633 NONSTD 436 1260 1262 1264 SIM 402 2223 2228 2235 UBABLT 7 414 423 430 1266 1268 1270 5197 5271 7843 7845 7847 (U) T 948 # 2T 951 # 4425 4438 5305 5575 6149 6219 6283 6571 6708 6753 7348 7705 3T 952 # 2201 2426 2436 2591 3124 3298 3383 3417 3433 3523 3613 3697 3732 3740 3765 3769 3786 3791 3796 3833 3849 4074 4088 4191 4193 4212 4246 4383 4387 4437 4443 4444 4445 4462 4466 4487 4495 4576 4641 4658 4716 4731 4802 4820 4916 4960 4967 5047 5063 5067 5133 5135 5154 5178 5265 5299 5333 5374 5405 5406 5409 5441 5444 5498 5500 5502 5504 5563 5564 5567 5569 5668 5669 5670 5714 5718 5720 5722 5730 5813 5819 5979 5997 5999 6047 6051 6114 6221 6235 6249 6281 6284 6369 6372 6404 6405 6433 6439 6442 6451 6476 6490 6517 6537 6538 6660 6667 6711 6770 6860 6867 6888 6902 6906 6909 6911 6947 7002 7132 7139 7152 7199 7465 7490 7494 7502 7503 7504 7539 7543 7545 7712 8576 8593 8716 8727 8811 8841 4T 953 # 3029 3500 3514 4100 4105 4112 4115 4117 5007 5012 5993 6023 6200 6205 6230 6271 6444 6492 6632 6755 6956 7965 8262 8704 8714 5T 954 # 7266 7270 7274 7278 7282 7734 7751 (D) TEST 1363 # 2562 2562 2563 2563 2567 2567 2568 2568 2572 2572 2573 2573 2577 2577 2578 2578 2597 2615 2615 2616 2616 2620 2620 2621 2621 2625 2625 2626 2626 2630 2630 2631 2631 2635 2635 2636 2636 2640 2640 2641 2641 2645 2645 2646 2646 2650 2650 2651 2651 2657 2657 2658 2658 2662 2662 2663 2663 2667 2667 2668 2668 2672 2672 2673 2673 2677 2677 2678 2678 2682 2682 2683 2683 2687 2687 2688 2688 2692 2692 2693 2693 2789 2812 2812 2813 2813 2822 2822 2823 2823 2832 2832 2833 2833 2842 2842 2843 2843 2847 2847 2848 2848 2857 2857 2858 2858 2864 2864 2865 2865 2874 2874 2875 2875 2884 2884 2885 2885 2894 2894 2895 2895 2904 2904 2905 2905 2914 2914 2915 2915 2925 2925 2926 2926 2935 2935 2936 2936 2945 2945 2946 2946 2955 2955 2956 2956 3406 3407 3408 3409 3410 3411 3412 3413 3422 3423 3424 3425 3426 3427 3428 3429 4068 4068 4069 4069 4082 4082 4083 4083 4130 4130 4131 4131 4155 4155 4156 4156 4322 4322 4323 4323 4327 4327 4328 4328 4699 4701 5277 5277 5278 5278 5281 5281 5282 5282 5285 5285 5286 5286 5289 5289 5290 5290 5322 5322 5323 5323 5327 5327 5328 5328 5351 5351 5352 5352 5356 5356 5357 5357 7249 (U) TRAP1 1104 # 4148 4149 4173 4235 4355 4390 4421 4507 5014 5366 5378 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 306 ; Cross Reference Listing 5443 5731 (U) TRAP2 1103 # 3715 3771 3801 3805 (U) VECTOR CYCLE 1175 # 7534 (D) VMA 1365 # 2561 2566 2571 2576 2614 2619 2624 2629 2634 2639 2644 2649 2656 2661 2666 2671 2676 2681 2686 2691 2810 2811 2821 2831 2841 2846 2863 2873 2883 2893 2902 2903 2913 2924 2934 2944 2953 2954 2965 2966 2967 2969 2970 2971 3489 3503 3529 3779 4067 4081 4129 4154 4321 4326 (U) WAIT 1164 # 2241 2241 2242 2242 2244 2244 2245 2245 2264 2264 2281 2304 2304 2310 2310 2315 2321 2334 2344 2348 2352 2365 2374 2377 2378 2406 2417 2418 2418 2429 2432 2436 2443 2443 2507 2539 2545 2550 2553 2602 2602 2603 2798 2798 2800 2804 2804 3033 3033 3339 3339 3351 3351 3418 3418 3419 3466 3466 3467 3467 3470 3470 3471 3471 3538 3538 3539 3539 3540 3545 3549 3552 3561 3565 3565 3579 3582 3585 3600 3607 3607 3626 3629 3630 3643 3643 3646 3646 3649 3654 3654 3690 3695 3695 3707 3713 3722 3722 3732 3735 3745 3745 3750 3750 3752 3758 3766 3772 3828 3828 3829 3841 3841 3859 3860 3971 3990 3995 3995 4016 4017 4029 4033 4042 4042 4052 4052 4056 4060 4234 4234 4709 4709 4718 4718 4746 4746 4752 4752 4753 4766 4770 4774 4778 4780 4786 4907 4907 4908 5111 5139 5139 5147 5147 5149 5163 5163 5168 5168 5172 5175 5186 5221 5262 5262 5264 5269 5928 5944 5945 5947 5969 6116 6366 6367 6393 6466 6471 6527 6559 6559 6561 6605 6605 6607 6610 6638 6647 6763 6909 6910 6911 6912 6914 6928 6984 6987 6992 6995 6999 7130 7131 7234 7234 7266 7266 7267 7270 7270 7271 7274 7274 7275 7278 7278 7279 7282 7282 7283 7322 7323 7326 7351 7351 7354 7355 7355 7356 7362 7363 7398 7398 7416 7416 7417 7489 7500 7501 7516 7516 7537 7542 7543 7551 7631 7633 7666 7667 7669 7669 7692 7713 7714 7759 7762 7764 7772 7774 7776 7870 7872 7878 7878 7890 7892 7893 7893 7905 7905 7911 7976 7977 7978 7979 7979 7980 7981 7984 7985 7986 7986 7987 7988 7989 7989 7990 7991 7992 7992 7993 7994 7995 7995 7996 7997 7998 7998 7999 8000 8002 8594 8709 8723 8729 8845 8846 8860 8881 8884 8884 (U) WORK 1027 # AC0 1068 # AC1 1069 # AC2 1070 # AC3 1071 # ADJBPW 1046 # 5030 5051 ADJP 1041 # 4965 4992 ADJPTR 1043 # 4706 4983 5045 ADJQ1 1044 # 4988 5006 ADJR2 1045 # 4998 5065 ADJS 1042 # 4978 4993 5056 APR 1048 # 2181 7071 7093 7105 7197 7202 8245 BADW0 1028 # 8285 BADW1 1029 # 8286 BDH 1058 # 6313 6388 6397 6419 BDL 1059 # 6311 6354 6394 6398 CBR 1038 # 7256 7272 CMS 1055 # 6136 6148 6149 6159 CSTM 1039 # 7260 7280 DDIV SGN 1072 # DECHI 1077 # 2190 2192 6442 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 307 ; Cross Reference Listing DECLO 1076 # 2189 2191 6433 DIV 1031 # DVSOR H 1073 # DVSOR L 1074 # E0 1050 # 5938 6364 6636 6646 E1 1051 # 5951 5954 6390 6569 6570 6745 6748 6753 6761 FILL 1054 # 6120 6143 6156 6631 6708 6714 6828 6930 FSIG 1056 # 6593 6595 HSBADR 1047 # 2173 7262 7284 7959 7964 MSK 1053 # 6001 6172 6754 MUL 1030 # PERIOD 1064 # 7312 7364 7369 PTA.E 1080 # 7450 PTA.U 1081 # 7449 PUR 1040 # 7258 7276 SBR 1037 # 7254 7268 SLEN 1052 # 5984 6008 6012 6029 6041 6057 6061 6089 6096 6190 6194 6197 6201 6369 6370 6372 6375 6741 6835 6839 6841 6955 6969 6973 SV.ARX 1034 # 6073 6078 7885 7957 7968 7983 8006 8258 8589 8817 SV.AR 1033 # 6046 6076 7982 8003 8254 8597 SV.AR1 1083 # SV.BRX 1036 # 5192 6074 6079 6946 6961 6970 8255 8591 SV.BR 1035 # 6072 6077 8265 8275 8277 8279 8281 8590 8775 SV.VMA 1032 # 7732 7738 7740 7972 8001 8004 8244 8257 8549 8792 8801 TIME0 1062 # 2183 7301 7334 7344 TIME1 1063 # 2184 7292 7299 7331 7345 7348 8786 TRAPPC 1082 # 6981 8805 TTG 1065 # 7306 7310 7365 YSAVE 1079 # 3676 7698 7701 7706 7718 7720 (D) WRITE 1366 # (U) WRITE CYCLE 1135 # 2582 2588 2602 2702 2704 2737 2743 2751 2753 2772 2774 2798 2804 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 3418 3643 3646 3654 3695 3745 3750 3828 3841 3971 3995 4042 4052 4074 4088 4140 4146 4169 4171 4746 4752 4907 5139 5147 5163 5168 5262 5460 5464 5510 5532 6559 6605 7234 7351 7355 7416 7516 7664 7675 7681 7878 7890 7893 7976 7979 7986 7989 7992 7995 7998 8568 8573 8763 8845 8868 8884 (U) WRITE TEST 1134 # 2582 2588 2602 2702 2704 2737 2743 2751 2753 2772 2774 2798 2804 2817 2827 2837 2869 2879 2899 2909 2920 2930 2960 3418 3643 3646 3654 3695 3745 3750 3828 3841 3971 3995 4042 4052 4074 4088 4140 4146 4169 4171 4746 4752 4907 5139 5147 5163 5168 5262 5460 5464 5510 5532 6559 6605 7234 7266 7270 7274 7278 7282 7351 7355 7416 7486 7500 7516 7533 7542 7625 7628 7664 7675 7681 7878 7890 7893 7907 7976 7979 7986 7989 7992 7995 7998 8295 8568 8574 8845 8868 8881 8884 (U) WRU CYCLE 1171 # 7487 (U) # 982 # 2162 2164 2166 2168 2171 2201 2215 2251 2255 2258 2270 2273 2276 2433 2435 2448 2470 2471 2758 2760 2765 2767 2784 3055 3126 3128 3542 3551 3554 3556 3557 3558 3591 3596 3599 3605 3619 3620 3640 3653 3739 3768 3831 3848 3935 3937 3939 3941 3943 3945 3947 3949 3956 3959 3999 4004 4006 4009 4011 4039 4047 4054 4121 4122 4374 4411 4412 4422 4430 4475 4528 4554 4561 4652 4817 4961 4963 4968 4986 4990 4996 5000 5029 5034 5068 5072 5079 5132 5228 5233 5242 5248 5253 5306 5307 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 308 ; Cross Reference Listing 5310 5311 5335 5336 5340 5368 5369 5405 5409 5429 5430 5567 5569 5649 5669 5670 5689 5692 5720 5722 5896 5898 5900 5902 5904 5906 5908 5910 5912 5929 5932 5956 5972 5976 6111 6113 6171 6176 6183 6188 6195 6199 6215 6257 6273 6274 6280 6286 6306 6319 6321 6328 6333 6340 6343 6399 6413 6415 6422 6447 6453 6469 6481 6484 6492 6504 6507 6524 6539 6597 6608 6617 6619 6635 6654 6675 6680 6689 6692 6768 6790 6794 6798 6802 6806 6810 6820 6826 6924 6935 7002 7007 7016 7017 7018 7022 7023 7024 7025 7030 7031 7032 7035 7036 7037 7038 7039 7040 7041 7042 7044 7047 7058 7073 7074 7077 7078 7080 7083 7085 7087 7099 7109 7112 7116 7137 7144 7148 7152 7159 7178 7198 7199 7200 7226 7232 7238 7243 7263 7286 7295 7314 7329 7381 7382 7425 7427 7438 7440 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7483 7494 7503 7504 7519 7539 7546 7636 7644 7650 7663 7695 7697 7711 7754 7840 7849 7851 7853 7855 7857 7859 7895 7898 7909 7961 8239 8243 8246 8271 8273 8287 8297 8300 8306 8314 8543 8556 8560 8564 8566 8579 8580 8582 8587 8703 8713 8717 8727 8732 8748 8751 8754 8757 8766 8771 8779 8841 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 309 ; Location / Line Number Index ; Dcode Loc'n 0 1 2 3 4 5 6 7 D 0000 3921 5865 5866 5867 5868 5869 5870 5871 D 0010 5873 5874 5875 5876 5878 5879 5880 5881 D 0020 5883 5884 5885 5886 5887 5888 5889 5890 D 0030 3868 3869 3870 3871 3872 3873 3874 3875 D 0040 3879 3880 3881 3882 3883 3884 3885 3886 D 0050 3887 3888 3889 3890 3891 3892 3893 3894 D 0060 3895 3896 3897 3898 3899 3900 3901 3902 D 0070 3903 3904 3905 3906 3907 3908 3909 3910 D 0100 3914 3915 3916 3917 3922 3779 3923 3924 D 0110 5550 5551 5639 5700 4095 4096 4179 4397 D 0120 2779 2780 5435 5924 2788 2789 5436 5400 D 0130 3925 3926 5401 4698 4699 4700 4701 4702 D 0140 5276 3927 5277 5278 5279 5280 5281 5282 D 0150 5284 3928 5285 5286 5287 5288 5289 5290 D 0160 5321 3929 5322 5323 5325 5326 5327 5328 D 0170 5350 3930 5351 5352 5354 5355 5356 5357 D 0200 2560 2561 2562 2563 2565 2566 2567 2568 D 0210 2570 2571 2572 2573 2575 2576 2577 2578 D 0220 4128 4129 4130 4131 4153 4154 4155 4156 D 0230 4320 4321 4322 4323 4325 4326 4327 4328 D 0240 2965 2966 2967 2968 2969 2970 2971 3931 D 0250 2597 5125 3517 3518 3529 3531 3660 8234 D 0260 3682 3683 3684 3685 3812 3813 3814 3815 D 0270 4066 4067 4068 4069 4080 4081 4082 4083 D 0300 3363 3364 3365 3366 3367 3368 3369 3370 D 0310 3372 3373 3374 3375 3376 3377 3378 3379 D 0320 3475 3476 3477 3478 3479 3480 3481 3482 D 0330 3389 3390 3391 3392 3393 3394 3395 3396 D 0340 3489 3490 3491 3492 3493 3494 3495 3496 D 0350 3406 3407 3408 3409 3410 3411 3412 3413 D 0360 3503 3504 3505 3506 3507 3508 3509 3510 D 0370 3422 3423 3424 3425 3426 3427 3428 3429 D 0400 2810 2811 2812 2813 2820 2821 2822 2823 D 0410 2830 2831 2832 2833 2840 2841 2842 2843 D 0420 2845 2846 2847 2848 2855 2856 2857 2858 D 0430 2862 2863 2864 2865 2872 2873 2874 2875 D 0440 2882 2883 2884 2885 2892 2893 2894 2895 D 0450 2902 2903 2904 2905 2912 2913 2914 2915 D 0460 2923 2924 2925 2926 2933 2934 2935 2936 D 0470 2943 2944 2945 2946 2953 2954 2955 2956 D 0500 2613 2614 2615 2616 2618 2619 2620 2621 D 0510 2623 2624 2625 2626 2628 2629 2630 2631 D 0520 2633 2634 2635 2636 2638 2639 2640 2641 D 0530 2643 2644 2645 2646 2648 2649 2650 2651 D 0540 2655 2656 2657 2658 2660 2661 2662 2663 D 0550 2665 2666 2667 2668 2670 2671 2672 2673 D 0560 2675 2676 2677 2678 2680 2681 2682 2683 D 0570 2685 2686 2687 2688 2690 2691 2692 2693 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 310 ; Location / Line Number Index ; Dcode Loc'n 0 1 2 3 4 5 6 7 D 0600 3188 3189 3190 3191 3192 3193 3194 3195 D 0610 3197 3198 3199 3200 3201 3202 3203 3204 D 0620 3206 3207 3208 3209 3210 3211 3212 3213 D 0630 3215 3216 3217 3218 3219 3220 3221 3222 D 0640 3224 3225 3226 3227 3228 3229 3230 3231 D 0650 3233 3234 3235 3236 3237 3238 3239 3240 D 0660 3241 3242 3243 3244 3245 3246 3247 3248 D 0670 3250 3251 3252 3253 3254 3255 3256 3257 D 0700 7012 7013 7249 7783 7864 7865 7784 7785 D 0710 7571 7572 7582 7583 7596 7597 7787 7788 D 0720 7573 7574 7584 7585 7598 7599 7790 7791 D 0730 7793 7794 7795 7796 7797 7798 7799 7800 D 0740 7802 7803 7804 7805 7806 7807 7808 7809 D 0750 7811 7812 7813 7814 7815 7816 7817 7818 D 0760 7820 7821 7822 7823 7824 7825 7826 7827 D 0770 7829 7830 7831 7832 7833 7834 7835 7836 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 311 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 0000 2162: 7958: 2163 2171: 7899: 7901: 5225= 5228= U 0010 2195= 7959: 2196= 2164 3298= 3301= 3304= 3307= U 0020 3644= 2165 3993= 3996= 3647= 3649= 2166 3999= U 0030 3572= 4137= 3576= 4506= 3580= 4138= 3584= 4507= U 0040 2367: 2371: 2375: 2383: 2393: 2396: 2403: 2407: U 0050 2420: 2426: 2447: 2169 4428= 4430= 4464= 4465= U 0060 3844= 2173 5058= 5459= 3847= 3851= 5065= 7627= U 0070 4768= 2174 4772= 5460= 4776= 4432= 4779= 7628= U 0100 2176 2254= 2257= 2260= 7886= 2261= 2179 2265= U 0110 2181 2272= 2275= 2278= 7888= 2279= 7890= 2284= U 0120 4192= 4194= 4285= 4289= 4195= 2183 4293= 4297= U 0130 4211= 4213= 5705= 5707= 4214= 2184 7053: 7068: U 0140 2204= 2207= 4303= 4307= 5384= 5385= 4311= 4315= U 0150 3564= 2215= 3565= 5615= 5387= 5389= 5391= 5392= U 0160 4348= 4351= 2186 5339= 4354= 4355= 4357= 5341= U 0170 5941= 4165= 5943= 5616= 5944= 4166= 5945= 5393= U 0200 5798= 2305= 5800= 2311= 5802= 2317= 5804= 2322= U 0210 5806= 2330= 2187 2334= 2188 2344= 5807= 2348= U 0220 3722= 3724= 3726= 2189 7960= 2190 7961= 7663= U 0230 6909= 6861= 6910= 6862= 6911= 2191 6912= 7664= U 0240 4707= 4708= 2192 5686= 2193 4709= 6550= 6551= U 0250 3339= 3342= 3345= 3348= 3351= 3354= 3357= 3360= U 0260 2200= 2201= 5539= 5687= 4736= 4739= 5540= 4740= U 0270 3442= 3445= 3448= 3451= 3454= 3457= 3460= 3463= U 0300 3599= 3603= 5544= 3605= 7395= 7396= 5545= 3606= U 0310 4030= 2197 4032= 4035= 4450= 7398= 4451= 3607= U 0320 3619= 3620= 5848= 2198 2231 3621= 5850= 5524= U 0330 4373= 4375= 6709= 4378= 2233 3623= 6710= 5526= U 0340 4804= 4807= 4808= 2292 4809= 4810= 2354 4811= U 0350 4746= 4747= 4748= 4749= 4460= 4490= 4461= 4491= U 0360 4900= 4901= 4902= 2359 4903= 4904= 2377 4905= U 0370 4530= 2380 2244= 2245= 4531= 4532= 4533= 4534= U 0400 4052: 2385 2412= 2414= 2429= 2432= 2397 5542= U 0410 4826= 4722= 4827= 4724= 2448= 2449= 2399 5543= U 0420 5497= 5498= 5499= 5500= 5501= 5502= 5503= 5504= U 0430 5505= 2434 2435 5598= 2470= 2471= 5506= 5599= U 0440 5517= 6337= 5518= 6339= 5519= 2438 5520= 6340= U 0450 5521= 2439 2441 5632= 2552= 2555= 5522= 5633= U 0460 6194= 6196= 5852= 5856= 6198= 6200= 5859= 2444 U 0470 7518= 2605 5622= 5624= 7520= 7522= 5625= 5626= U 0500 6009= 6011= 3004= 3008= 6013= 6015= 2735 6017= U 0510 6395= 2741 2800 5745= 3034= 3035= 6396= 5746= U 0520 5759= 5760= 5762= 5763= 5765= 5766= 5768= 5769= U 0530 5771= 2805 2920 6834= 3053= 3054= 5772= 6836= U 0540 6090= 6092= 6094= 4201= 3084= 3085= 6097= 4202= U 0550 5029= 5031= 2986 5035= 3088= 3089= 5952= 5953= U 0560 6228= 6231= 6387= 4221= 2999 6232= 6388= 4223= U 0570 5230= 5232= 3002 5233= 5988= 5989= 5991= 5994= ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 312 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 0600 6234= 6237= 3101= 3102= 3018 6238= 6594= 6595= U 0610 5250= 5252= 3020 5253= 3108= 3110= 6186= 6189= U 0620 6245= 6246= 6250= 4244= 3114= 3116= 6251= 4246= U 0630 5810= 3021 5812= 5814= 3121= 3123= 6393= 6394= U 0640 6374= 6376= 3127= 3129= 3156= 3157= 3023 6377= U 0650 6038= 6040= 3026 6042= 6478= 6479= 6480= 6481= U 0660 4987= 6493= 4988= 6496= 4997= 6498= 4998= 6500= U 0670 5218= 6502= 5219= 6505= 5301= 6508= 5302= 6510= U 0700 6571= 3037 6575= 6577= 6578= 6581= 3055 6583= U 0710 6518= 6520= 6522= 6525= 6526= 6528= 6747= 6748= U 0720 5443= 6785= 5444= 6787= 5445= 6791= 5446= 6795= U 0730 5655= 6799= 5660= 6803= 5659= 6807= 5661= 6811= U 0740 6616= 6618= 3160= 3162= 3402= 3403= 6620= 3056 U 0750 6056= 6058= 6060= 6061= 6824= 6827= 6829= 6831= U 0760 6641= 6642= 3466= 3467= 3470= 3471= 6643= 3082 U 0770 7466= 7467= 7468= 7469= 7470= 7471= 7472= 7473= U 1000 6100= 6101= 3090 6102= 6133= 6135= 6136= 3091 U 1010 3591= 3592= 5672= 7608= 3596= 3597= 5673= 7610= U 1020 6142= 6144= 6145= 3105 3640= 3641= 3125 7636= U 1030 6209= 6211= 6212= 3130 3653= 3654= 3154 7637= U 1040 6743= 6744= 6745= 3312 7327= 7330= 3313 7332= U 1050 7349= 7351= 7352= 3418 5733= 7705= 5734= 7707= U 1060 8263= 8265= 5679= 8269= 3419 8271= 5684= 8273= U 1070 8275= 8277= 8279= 8281= 7733= 7736= 7739= 7741= U 1100 8816= 8818= 8820= 8822= 8824= 8826= 8828= 8830= U 1110 8832= 8833= 8834= 8836= 8788= 8789= 8790= 3567 U 1120 3670= 3674= 3710= 3714= 3746= 3750= 3771= 3774= U 1130 3792= 3797= 3800= 3802= 3806= 3807= 3962= 3972= U 1140 4007= 4009= 4012= 4016= 4106= 4107= 4116= 4118= U 1150 4121= 4122= 4139= 4140= 4145= 4146= 4148= 4149= U 1160 4169= 4170= 4171= 4173= 4226= 4227= 4234= 4235= U 1170 4336= 4338= 4363= 4366= 4384= 4388= 4390= 4392= U 1200 4406= 4408= 4410= 4411= 4420= 4421= 4436= 4437= U 1210 4439= 4440= 4443= 4444= 4445= 4446= 4454= 4455= U 1220 4470= 4471= 4480= 4481= 4498= 4499= 4549= 4550= U 1230 4551= 4552= 4558= 4559= 4568= 4569= 4572= 4573= U 1240 4597= 4600= 4614= 4618= 4630= 4631= 4635= 4636= U 1250 4640= 4641= 4656= 4658= 4662= 4663= 4958= 4961= U 1260 4977= 4979= 4982= 4983= 5013= 5014= 5048= 5050= U 1270 5077= 5080= 5113= 5115= 5141= 5148= 5152= 5155= U 1300 5157= 5159= 5164= 5169= 5181= 5182= 5266= 5267= U 1310 5306= 5307= 5310= 5311= 5315= 5316= 5335= 5336= U 1320 5365= 5366= 5368= 5369= 5374= 5375= 5377= 5378= U 1330 5381= 5382= 5406= 5407= 5410= 5411= 5413= 5414= U 1340 5421= 5422= 5429= 5430= 5451= 5452= 5455= 5456= U 1350 5462= 5463= 5464= 5466= 5509= 5510= 5513= 5515= U 1360 5528= 5529= 5530= 5531= 5568= 5570= 5573= 5575= U 1370 5579= 5580= 5587= 5588= 5629= 5630= 5647= 5648= ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 313 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 1400 2241: 2242: 2582: 2585: 2588: 2592: 2602: 2702: U 1410 2704: 2729: 2731: 2734: 2737: 2740: 2743: 2749: U 1420 2751: 2753: 2756: 2763: 2758: 2760: 2765: 2767: U 1430 2770: 3417: 2772: 2774: 2784: 2785: 3433: U 1440 3486: 2817: 2827: 2837: 2852: 2869: 2879: 2889: U 1450 2899: 2909: 2919: 2930: 2940: 2950: 2960: 4101: U 1460 7589: 7593: 3030: 7590: 3080: 3081: 3099: 5928: U 1470 3152: 3153: 3282: 3284: 3287: 3290: 3383: 3401: U 1500 2498: 2503: 2509: U 1510 2530: 2535: 2541: 2547: U 1520 3538: 3539: 3541: 3542: 3543: 3546: 3547: 3548: U 1530 3550: 3551: 3553: 3554: 3555: 3556: 3557: 3558: U 1540 3614: 3664: 3514: 3691: 3704: 3733: 3766: 3524: U 1550 3819: 3784: 3826: 8240: 3841: 3856: 3957: 4047: U 1560 4074: 4088: 2794: 4184: 2799: U 1570 5334: 4161: 5362: 5296: 5299: U 1600 4332: 4341: U 1610 4705: 3500: 2980: 2983: 7578: 4113: 5405: 7579: U 1620 4713: 5426: 2994: 2996: 4717: 4718: 5442: 4402: U 1630 4727: 5644: 3015: 3017: 4729: 5560: 5703: 5563: U 1640 5129: 4134: 5131: 5134: 7604: 7606: U 1650 7840: 7846: 7849: 7851: 7853: 7855: 7857: 7859: U 1660 3947: 3935: 3937: 3939: 3941: 3949: 3943: 3945: U 1670 U 1700 7058: 7016: 7017: 7018: 7071: 7105: 7019: 7020: U 1710 7022: 7023: 7024: 7025: 7378: 7375: 7026: 7027: U 1720 7030: 7232: 7423: 7130: 7192: 7223: 7031: 7032: U 1730 7035: 7036: 7037: 7038: 7039: 7040: 7041: 7042: U 1740 5896: 5898: 5900: 5902: 5904: 5906: 5908: U 1750 5910: 5912: 7871: 7879: U 1760 7254: 7256: 7258: 7260: 7338: 7370: 7262: 7263: U 1770 7266: 7270: 7274: 7278: 7322: 7362: 7282: 7286: U 2000 5669= 5670= 5690= 5691= 5693= 5695= 5710= 5711= U 2010 5720= 5721= 5729= 5730= 5731= 5732= 5748= 5749= U 2020 5737= 5999= 5738= 6000= 5781= 5782= 5786= 5787= U 2030 5791= 5793= 5818= 5819= 5826= 5827= 5836= 5837= U 2040 5930= 5973= 5955= 5957= 5932= 5974= 5977= 5980= U 2050 5982= 5983= 6025= 6027= 6031= 6032= 6046= 6048= U 2060 6051= 6053= 6064= 6066= 6075= 6178= 6076= 6179= U 2070 6111= 6113= 6115= 6116= 6112= 6114= 6119= 6121= U 2100 6129= 6130= 6156= 6157= 6163= 6166= 6181= 6184= U 2110 6202= 6206= 6216= 6217= 6220= 6222= 6256= 6257= U 2120 6269= 6270= 6273= 6274= 6277= 6278= 6283= 6285= U 2130 6286= 6288= 6296= 6297= 6307= 6308= 6317= 6319= U 2140 6312= 6321= 6314= 6323= 6325= 6326= 6331= 6334= U 2150 6344= 6345= 6349= 6350= 6355= 6356= 6358= 6362= U 2160 6400= 6401= 6405= 6406= 6412= 6413= 6414= 6415= U 2170 6416= 6417= 6434= 6435= 6438= 6568= 6440= 6569= ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 314 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 2200 6441= 6442= 6448= 6449= 6454= 6456= 6475= 6476= U 2210 6470= 3588 6483= 6484= 6471= 3593 6489= 6490= U 2220 6516= 6517= 6541= 6544= 6558= 6559= 6588= 6589= U 2230 6609= 6611= 6633= 6635= 6637= 6638= 6655= 6657= U 2240 6678= 6682= 6684= 6686= 6713= 6714= 6767= 6768= U 2250 6772= 6774= 6818= 6820= 6840= 6842= 6857= 6858= U 2260 6867= 6871= 6886= 6889= 6891= 6903= 6892= 6904= U 2270 6943= 6944= 6951= 6952= 6959= 6960= 6962= 6963= U 2300 6989= 6997= 7006= 7007= 7079= 7080= 7081= 7082= U 2310 7084= 7085= 7086= 7087= 7089= 7090= 7140= 7145= U 2320 7160= 7166= 7175= 7179= 7194= 7197= 7200= 7201= U 2330 7225= 7226= 7233= 7235= 7242= 7243= 7300= 7301= U 2340 7303= 7977= 7305= 7978= 7311= 7312= 7343= 7344= U 2350 7379= 7380= 7381= 7382= 7385= 7386= 7387= 7388= U 2360 7389= 7390= 7391= 7392= 7393= 7394= 7426= 7428= U 2370 7434= 7435= 7439= 7441= 7447= 7449= 7488= 7491= U 2400 7492= 7493= 7504= 7505= 7515= 7516= 7532= 7534= U 2410 7536= 7538= 7540= 7542= 7546= 7547= 7561= 7562= U 2420 7565= 7566= 7623= 7624= 7632= 7635= 7642= 7644= U 2430 7648= 7650= 7661= 7662= 7668= 7669= 7674= 7676= U 2440 7680= 7682= 7693= 7694= 7697= 7699= 7702= 7703= U 2450 7712= 7713= 7719= 7720= 7747= 7748= 7753= 7754= U 2460 7894= 7895= 7906= 7907= 7910= 7914= 7967= 7969= U 2470 7980= 7982= 7981= 7983= 7984= 7987= 7985= 7988= U 2500 7990= 7993= 7991= 7994= 7996= 7999= 7997= 8000= U 2510 8001= 3626 8002= 3629 8247= 8248= 8298= 8301= U 2520 8312= 8314= 8548= 8550= 8554= 8557= 8564= 8566= U 2530 8582= 8584= 8587= 8588= 8705= 8710= 8715= 8718= U 2540 8725= 8728= 8738= 8740= 8744= 8747= 8750= 8751= U 2550 8755= 8757= 8761= 8763= 8767= 8768= 8777= 8780= U 2560 8800= 8802= 8804= 8805= 8808= 8809= 8811= 3631 U 2570 8842= 8843= 8848= 8859= 8868= 8869= 3633 3635 U 2600 3655 3677 3699 3717 3736 3741 3755 3760 U 2610 3770 3787 3822 3828 3830 3834 3842 3857 U 2620 3859 3862 3959 4001 4002 4004 4018 4023 U 2630 4040 4043 4055 4057 4061 4109 4120 4135 U 2640 4143 4162 4163 4167 4185 4187 4204 4205 U 2650 4216 4225 4228 4229 4230 4231 4233 4239 U 2660 4240 4241 4248 4264 4267 4279 4334 4342 U 2670 4343 4345 4368 4370 4404 4413 4414 4417 U 2700 4422 4423 4425 4449 4452 4453 4456 4462 U 2710 4468 4469 4473 4475 4476 4478 4483 4484 U 2720 4486 4487 4493 4496 4501 4509 4548 4554 U 2730 4555 4561 4562 4563 4564 4565 4570 4574 U 2740 4575 4578 4608 4626 4628 4633 4638 4643 U 2750 4644 4645 4652 4654 4661 4732 4733 4752 U 2760 4753 4761 4763 4784 4788 4821 4830 4833 U 2770 4834 4835 4838 4839 4840 4907 4908 4911 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 315 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 3000 4914 4915 4916 4917 4919 4922 4925 4926 U 3010 4927 4929 4954 4964 4965 4968 4970 4972 U 3020 4991 4992 4993 4994 5000 5008 5038 5052 U 3030 5055 5056 5068 5070 5073 5082 5109 5116 U 3040 5117 5119 5121 5122 5136 5151 5174 5176 U 3050 5179 5187 5191 5193 5195 5223 5236 5238 U 3060 5239 5240 5242 5244 5245 5246 5248 5257 U 3070 5259 5260 5263 5264 5265 5270 5303 5304 U 3100 5305 5313 5337 5342 5345 5370 5371 5372 U 3110 5395 5418 5427 5428 5448 5532 5561 5566 U 3120 5581 5585 5586 5589 5594 5596 5601 5603 U 3130 5604 5617 5619 5634 5649 5650 5654 5662 U 3140 5668 5674 5688 5689 5692 5712 5716 5719 U 3150 5722 5723 5726 5741 5775 5778 5788 5816 U 3160 5821 5823 5829 5934 5936 5938 5939 5947 U 3170 5985 5996 5997 6002 6023 6029 6030 6033 U 3200 6045 6062 6069 6072 6073 6074 6077 6078 U 3210 6080 6086 6087 6104 6105 6131 6138 6139 U 3220 6140 6148 6149 6150 6151 6152 6153 6158 U 3230 6159 6172 6174 6176 6190 6215 6218 6241 U 3240 6259 6262 6264 6272 6275 6280 6282 6289 U 3250 6298 6309 6310 6329 6351 6353 6363 6364 U 3260 6366 6367 6368 6369 6370 6373 6379 6384 U 3270 6391 6397 6398 6399 6402 6403 6404 6419 U 3300 6423 6443 6445 6450 6451 6472 6473 6487 U 3310 6536 6537 6539 6561 6562 6598 6604 6605 U 3320 6606 6607 6625 6646 6648 6658 6661 6666 U 3330 6667 6668 6669 6670 6672 6675 6687 6690 U 3340 6692 6694 6695 6712 6753 6756 6761 6763 U 3350 6838 6860 6863 6865 6884 6902 6905 6907 U 3360 6914 6915 6929 6931 6936 6946 6947 6955 U 3370 6957 6965 6967 6969 6970 6971 6973 6976 U 3400 6980 6982 7000 7003 7044 7045 7047 7073 U 3410 7074 7075 7077 7078 7083 7092 7094 7097 U 3420 7099 7102 7107 7110 7113 7114 7116 7118 U 3430 7133 7149 7153 7171 7182 7184 7189 7198 U 3440 7199 7202 7215 7229 7238 7239 7244 7267 U 3450 7268 7271 7272 7275 7276 7279 7280 7283 U 3460 7284 7293 7295 7296 7297 7306 7308 7313 U 3470 7314 7317 7324 7335 7339 7340 7342 7346 U 3500 7354 7355 7356 7363 7364 7366 7383 7384 U 3510 7406 7407 7408 7410 7416 7417 7424 7429 U 3520 7442 7451 7454 7474 7475 7476 7477 7478 U 3530 7479 7480 7483 7484 7485 7495 7497 7500 U 3540 7502 7503 7507 7530 7544 7548 7551 7564 U 3550 7613 7666 7695 7710 7711 7715 6924: 6925: U 3560 7722 7729 7744 7760 7762 7764 7766 7768 U 3570 7770 7772 7774 7776 7778 7874 7881 7892 ; T10KI.MCR[7,3] 15:07 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 316 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 3600 7965 7971 7973 7976 7979 7986 7989 7992 U 3610 7995 7998 8003 8004 8005 8007 8241 8243 U 3620 8244 8245 8246 8255 8256 8257 8259 8285 U 3630 8286 8287 8291 8294 8295 8306 8308 8327 U 3640 8543 8558 8561 8562 8568 8570 8575 8577 U 3650 8579 8580 8581 8589 8590 8591 8594 8598 U 3660 8701 8730 8732 8748 8772 8775 8782 8784 U 3670 8793 8796 8806 8845 8862 8866 8882 8884 U 3700 - 3737 Unused U 3740 6110: 6467: 6171: 6304: 5970: U 3750 6468: 5971: U 3760 U 3770 8254: No errors detected End of microcode assembly 319 pages of listing Used 46.72 seconds, 116 pages of core Symbol table: 30P Text strings: 9P Loc'n assignment: 18P Cross reference: 51P