; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 1 ; Table of Contents ; 1 T10KL.MIC[7,3] 12:29 10-APR-1985 ; 12 KS10.MIC[7,3] 14:54 7-JAN-1986 ; 69 REVISION HISTORY ; 196 HOW TO READ THE MICROCODE ; 401 CONDITIONAL ASSEMBLY DEFINITIONS ; 447 2901 REGISTER USAGE ; 483 MICROCODE FIELDS -- LISTING FORMAT ; 531 MICROCODE FIELDS -- DATAPATH CHIP ; 683 MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS ; 717 MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL ; 740 MICROCODE FIELDS -- SPEC ; 843 MICROCODE FIELDS -- DISPATCH ; 887 MICROCODE FIELDS -- SKIP ; 938 MICROCODE FIELDS -- TIME CONTROL ; 958 MICROCODE FIELDS -- RANDOM CONTROL BITS ; 980 MICROCODE FIELDS -- NUMBER FIELD ; 1324 DISPATCH ROM DEFINITIONS ; 1370 HOW TO READ MACROS ; 1529 MACROS -- DATA PATH CHIP -- GENERAL ; 1679 MACROS -- DATA PATH CHIP -- Q ; 1714 MACROS -- DATA PATH CHIP -- MISC. ; 1735 MACROS -- STORE IN AC ; 1767 MACROS -- MICROCODE WORK SPACE ; 1794 MACROS -- MEMORY CONTROL ; 1844 MACROS -- VMA ; 1861 MACROS -- TIME CONTROL ; 1874 MACROS -- SCAD, SC, FE LOGIC ; 1957 MACROS -- DATA PATH FIELD CONTROL ; 1973 MACROS -- SHIFT PATH CONTROL ; 1986 MACROS -- SPECIAL FUNCTIONS ; 2017 MACROS -- PC FLAGS ; 2046 MACROS -- PAGE FAIL FLAGS ; 2054 MACROS -- SINGLE SKIPS ; 2079 MACROS -- SPECIAL DISPATCH MACROS ; 2113 DISPATCH ROM MACROS ; 2154 SIMPLE.MIC[7,3] 16:49 11-NOV-1985 ; 2156 POWER UP SEQUENCE ; 2238 THE INSTRUCTION LOOP -- START NEXT INSTRUCTION ; 2362 THE INSTRUCTION LOOP -- FETCH ARGUMENTS ; 2474 THE INSTRUCTION LOOP -- STORE ANSWERS ; 2558 MOVE GROUP ; 2595 EXCH ; 2610 HALFWORD GROUP ; 2777 DMOVE, DMOVN, DMOVEM, DMOVNM ; 2808 BOOLEAN GROUP ; 2963 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO ; 3059 ROTATES AND LOGICAL SHIFTS -- LSHC ; 3094 ROTATES AND LOGICAL SHIFTS -- ASHC ; 3133 ROTATES AND LOGICAL SHIFTS -- ROTC ; 3165 TEST GROUP ; 3317 COMPARE -- CAI, CAM ; 3386 ARITHMETIC SKIPS -- AOS, SOS, SKIP ; 3436 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ ; 3527 AC DECODE JUMPS -- JRST, JFCL ; 3617 EXTENDED ADDRESSING INSTRUCTIONS ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 2 ; Table of Contents ; 3658 XCT ; 3680 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ ; 3777 STACK INSTRUCTIONS -- ADJSP ; 3810 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA ; 3865 ILLEGAL INSTRUCTIONS AND UUO'S ; 4064 ARITHMETIC -- ADD, SUB ; 4093 ARITHMETIC -- DADD, DSUB ; 4126 ARITHMETIC -- MUL, IMUL ; 4177 ARITHMETIC -- DMUL ; 4318 ARITHMETIC -- DIV, IDIV ; 4395 ARITHMETIC -- DDIV ; 4516 ARITHMETIC -- DIVIDE SUBROUTINE ; 4581 ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE ; 4621 ARITHMETIC -- SUBROUTINES FOR ARITHMETIC ; 4667 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB ; 4744 BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE ; 4757 BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR ; 4791 BYTE GROUP -- LOAD BYTE SUBROUTINE ; 4844 BYTE GROUP -- DEPOSIT BYTE IN MEMORY ; 4932 BYTE GROUP -- ADJUST BYTE POINTER ; 5091 BLT ; 5199 UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT ; 5273 FLT.MIC[7,3] 01:46 20-MAR-1981 ; 5274 FLOATING POINT -- FAD, FSB ; 5319 FLAOTING POINT -- FMP ; 5348 FLOATING POINT -- FDV ; 5398 FLOATING POINT -- FLTR, FSC ; 5433 FLOATING POINT -- FIX AND FIXR ; 5470 FLOATING POINT -- SINGLE PRECISION NORMALIZE ; 5537 FLOATING POINT -- ROUND ANSWER ; 5548 FLOATING POINT -- DFAD, DFSB ; 5637 FLOATING POINT -- DFMP ; 5698 FLOATING POINT -- DFDV ; 5752 FLOATING POINT -- DOUBLE PRECISION NORMALIZE ; 5862 EXTEND.MIC[7,3] 11:35 26-JULY-1984 ; 5863 EXTEND -- DISPATCH ROM ENTRIES ; 5918 EXTEND -- INSTRUCTION SET DECODING ; 5960 EXTEND -- MOVE STRING -- SETUP ; 6005 EXTEND -- MOVE STRING -- OFFSET/TRANSLATE ; 6036 EXTEND -- MOVE STRING -- MOVSRJ ; 6084 EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP ; 6108 EXTEND -- COMPARE STRING ; 6169 EXTEND -- DECIMAL TO BINARY CONVERSION ; 6301 EXTEND -- BINARY TO DECIMAL CONVERSION ; 6459 EXTEND -- EDIT -- MAIN LOOP ; 6513 EXTEND -- EDIT -- DECODE OPERATE GROUP ; 6532 EXTEND -- EDIT -- STOP EDIT ; 6547 EXTEND -- EDIT -- START SIGNIFICANCE ; 6554 EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION ; 6565 EXTEND -- EDIT -- PROCESS SOURCE BYTE ; 6628 EXTEND -- EDIT -- MESSAGE BYTE ; 6651 EXTEND -- EDIT -- SKIP ; 6665 EXTEND -- EDIT -- ADVANCE PATTERN POINTER ; 6698 EXTEND SUBROUTINES -- FILL OUT DESTINATION ; 6722 EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 3 ; Table of Contents ; 6759 EXTEND SUBROUTINES -- TRANSLATE ; 6845 EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE ; 6874 EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING ; 6895 EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS ; 6939 EXTEND -- PAGE FAIL CLEANUP ; 6978 INOUT.MIC[7,3] 13:32 7-JAN-1986 ; 6979 TRAPS ; 7010 IO -- INTERNAL DEVICES ; 7121 IO -- INTERNAL DEVICES -- EBR & UBR ; 7247 IO -- INTERNAL DEVICES -- KL PAGING REGISTERS ; 7289 IO -- INTERNAL DEVICES -- TIMER CONTROL ; 7320 IO -- INTERNAL DEVICES -- WRTIME & RDTIME ; 7359 IO -- INTERNAL DEVICES -- WRINT & RDINT ; 7373 IO -- INTERNAL DEVICES -- RDPI & WRPI ; 7413 IO -- INTERNAL DEVICES -- SUBROUTINES ; 7554 PRIORITY INTERRUPTS -- DISMISS SUBROUTINE ; 7569 EXTERNAL IO INSTRUCTIONS ; 7757 SMALL SUBROUTINES ; 7781 UNDEFINED IO INSTRUCTIONS ; 7862 UMOVE AND UMOVEM ; 7917 WRITE HALT STATUS BLOCK ; 8009 PAGEF.MIC[7,3] 12:15 10-APR-1985 ; 8011 PAGE FAIL REFIL LOGIC ; Cross Reference Index ; DCODE Location / Line Number Index ; UCODE Location / Line Number Index ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 4 ; T10KL.MIC[7,3] 12:29 10-APR-1985 T10KL.MIC[7,3] 12:29 10-APR-1985 ; 1 .NOBIN ; 2 ;KS10 MICROCODE PARAMETER FILE ; 3 ; 4 ;PARAMETER FILE DEFINITIONS FOR T10KL ; 5 ;TOPS-10 KL PAGING MICROCODE (V7.03) ; 6 ; 7 .SET/INHCST=1 ;ALLOW INHIBIT OF CST UPDATE IF CSB = 0 ; 8 .SET/UBABLT=1 ;SUPPORT UBABLT INSTRUCTIONS ; 9 .SET/KIPAGE=0 ;REMOVE KI PAGING (REQUIRED FOR UBABLT) ; 10 ; 11 .BIN ; 12 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 5 ; KS10.MIC[7,3] 14:54 7-JAN-1986 T10KL.MIC[7,3] 12:29 10-APR-1985 ; 13 .NOBIN ; 14 .TITLE "KS10 MICROCODE V130, 7-JAN-86" ; 15 ; 16 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 17 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 18 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 19 ;;; ;;; ; 20 ;;; ;;; ; 21 ;;; COPYRIGHT (C) 1976,1977,1978,1979,1980,1981,1982, ;;; ; 22 ;;; 1984,1985,1986 ;;; ; 23 ;;; DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ;;; ; 24 ;;; ;;; ; 25 ;;; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ;;; ; 26 ;;; ONLY ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ;;; ; 27 ;;; ONLY WITH THE INCLUSION OF THE ABOVE COPYRIGHT ;;; ; 28 ;;; NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, ;;; ; 29 ;;; MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ;;; ; 30 ;;; ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND ;;; ; 31 ;;; TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO ;;; ; 32 ;;; AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES ;;; ; 33 ;;; REMAIN IN DEC. ;;; ; 34 ;;; ;;; ; 35 ;;; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO ;;; ; 36 ;;; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS ;;; ; 37 ;;; A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ;;; ; 38 ;;; ;;; ; 39 ;;; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR ;;; ; 40 ;;; RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS ;;; ; 41 ;;; NOT SUPPLIED BY DEC. ;;; ; 42 ;;; ;;; ; 43 ;;; DESIGNED AND WRITTEN BY: ;;; ; 44 ;;; DONALD A. LEWINE ;;; ; 45 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 46 ;;; MARLBORO, MASS. ;;; ; 47 ;;; MR1-2/E47 X6430 ;;; ; 48 ;;; ;;; ; 49 ;;; MAINTAINED AND ENHANCED BY: ;;; ; 50 ;;; DONALD D. DOSSA ;;; ; 51 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 52 ;;; MARLBORO, MASS. ;;; ; 53 ;;; MR1-2/E18 DTN 231-4138 ;;; ; 54 ;;; ;;; ; 55 ;;; SEAN KEENAN ;;; ; 56 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 57 ;;; MARLBORO, MASS. ;;; ; 58 ;;; MR1-2/E18 DTN 231-4463 ;;; ; 59 ;;; ;;; ; 60 ;;; TIMOTHE LITT ;;; ; 61 ;;; DIGITAL EQUIPMENT CORP. ;;; ; 62 ;;; MARLBORO, MASS. ;;; ; 63 ;;; IND-3/C9 262-8374 ;;; ; 64 ;;; ;;; ; 65 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 66 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 67 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 68 ; T10KL.MCR[7,3] 15:10 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 ; 69 .TOC "REVISION HISTORY" ; 70 ; 71 ;REV WHY ; 72 ;1 START KS10 MICROCODE BASED ON SM10 MICROCODE VERSION 510 ; 73 ;2 UPDATE TO KS10 VERSION 512 ; 74 ;3 FIX SOME DEFAULTS ; 75 ;4 CHANGE HARDWARE TO MATCH ECO #215 ; 76 ;5 START TO UPDATE IO MICROCODE ; 77 ;6 MORE WORK ON IO ; 78 ;7 MAKE INTERRUPT THE 8080 BE A PULSE. ; 79 ;10 ADD NEW RDIO AND WRIO ; 80 ;11 FIX PROBLEMS IN MUUO CODE & CORRECT T-FIELDS ; 81 ;12 FIX PROBLEMS IN DDIV ; 82 ;13 FIX UP PROBLEMS IN PI ; 83 ;14 TURN ON WRITE FOR FL-EXIT ; 84 ;15 FIX UP MAP INSTRUCTION ; 85 ;16 MORE WORK ON KI-STYLE MAP ; 86 ;17 INVERT HOLD RIGHT AND HOLD LEFT BITS ; 87 ;20 FIXUP WRIO & RDIO EFFECTIVE ADDRESS CALC. ; 88 ;21 FIX EDIT 15 ; 89 ;22 HAVE LSH USE FAST SHIFT HARDWARE ; 90 ;23 FIX T-FIELD VALUES FOR PRODUCTION HARDWARE ; 91 ;24 REMOVE WRITE TEST FROM IO READS & WRITES ; 92 ;25 REWRITE MUL & MULI TO BE FASTER AND SMALLER. ALSO MAKE ADJBP ; 93 ; USE NEW MULSUB ; 94 ;26 MAKE BYTES USE FAST SHIFT ECO. ; 95 ;27 MAKE SURE VMA FETCH IS CORRECT ; 96 ;30 MORE OF 25 (FORGOT FMP) ; 97 ;31 FIX SOME PROBLEMS WITH TRAPS ; 98 ;32 SPEED UP EFFECTIVE ADDRESS CALCULATION ; 99 ;33 MORE OF 32 ; 100 ;34 SPEED UP ASH & ROT ; 101 ;35 FIX UP RDTIM SO THAT TIME DOES NOT GO BACKWARDS ; 102 ;36 MORE OF 35 ; 103 ;37 FIX UP PROBLEMS WITH INTERRUPTS AND DOUBLE F.P. ; 104 ;40 IMPROVE LISTING FORMAT ; 105 ;41 SPEEDUP KL-MODE PAGE REFILL ; 106 ;42 FIX UP DDIV ; 107 ;43 STILL MORE DDIV STUFF ; 108 ;44 CORRECT PROBLEMS IN D.P. PARITY STUFF ; 109 ;45 CORRECT THE BLT CLEAR-CORE CASE TO INTERRUPT CORRECTLY ; 110 ;46 MORE OF 45 ; 111 ;47 DO NOT ALLOW SOFTWARE INTERRUPTS IF THE PI LEVEL IS NOT ; 112 ; ACTIVE. ; 113 ;50 MAKE FDV WORK THE SAME AS THE KL10 ; 114 ;51 FIX INTERRUPT IN CVTBDX. MAKE ABORT WORK LIKE SPEC. ; 115 ;52 FIX BUG IN HALT LOOP ; 116 ;53 FIX IOEA TO WORK IF NO @ OR INDEXING ; 117 ;54 EDIT 47 BROKE JEN ; 118 ;55 FIX FLAGS IN MULTIPLY. ALSO CODE BUMS ; 119 ;56 MORE CODE BUMS ; 120 ;57 CORRECT OVERFLOW TRAPS WHICH DO MUUOS TO NOT STORE ; 121 ; THE TRAP FLAGS. ; 122 ; T10KL.MCR[7,3] 15:10 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 ; 123 ;60 CORRECT TRAPS SO THAT DSKEA RUNS RIGHT ; 124 ;61 MORE OF 60. NOTE: MICROCODE REQUIRES ECO #299!! ; 125 ;62 ONE MORE TRY AT EDIT 60. ; 126 ;63 CORRECT TOPS-10 STYLE PAGING SO THAT A WRITE VIOLATION SETS ; 127 ; BIT 2 IN THE PAGE FAIL WORD (ACCESS ALLOWED). ; 128 ;64 EDIT 63 BROKE HARD PAGE FAILS. (NXM, BAD DATA, AND IO NXM) ; 129 ;65 INTERRUPTS OUT OF MOVSRJ INSTRUCTIONS DO STRANGE THINGS. ; 130 ;66 IO NXM PAGE FAIL FOR MISSING UBA GIVES PC+1 IN PAGE FAIL BLOCK. ; 131 ;67 ON A BAD DATA ERROR, STORE THE BAD WORD IN AC BLOCK 7 WORD 0 AND ; 132 ; 1 ; 133 ;70 FIX A BUG WHICH CAUSED INTERRUPTS OUT OF CVTBDT TO GENERATE A BAD ; 134 ; ANSWER. ; 135 ;71 CLEANUP SOME THINGS TO MAKE LIFE EASIER FOR FIELD SERVICE ; 136 ;72 LOOK FOR 1-MS TRAP ON @ PAGE POINTERS AND ABORT REFILL IF ; 137 ; SET. ; 138 ;73 CORRECT EDIT 72. ; 139 ;74 EDIT 67 GENERATES A DATA PATH PARITY ERROR BECAUSE OF THE BAD ; 140 ; DATA. CORRECT TO NOT CHECK PARITY. ; 141 ; ALSO CHANGE POP TO TIE UP BUS LESS. ; 142 ;75 EDIT 60 BROKE TRAPS. MISSING =0 AT TRAP:. ; 143 ;76 CORRECT BUG IN DFAD AND DFSB ; 144 ;77 FIX PROBLEM SEEN IN SOME (ALL BUT ENGINEERING?) MACHINES CAUSED ; 145 ; BY EDIT 76 ; 146 ;100 CHANGE DFAD/DFSB TO HAVE 2 MORE GUARD BITS. THIS SHOULD PRODUCE ; 147 ; KL10 ANSWERS FOR ALL NORMALIZED INPUTS ; 148 ; ALSO FIX A BUG IN CVTBDX PAGE FAIL LOGIC. ; 149 ;101 DFDV OF 0.0 / -0.5 HANGS THE MACHINE ; 150 ;102 FIX CHOPPED FLOATING POINT INSTRUCTIONS ; 151 ;103 CORRECT DFDV ROUNDING BUG. ; 152 ;104 CORRECT PROBLEMS IN DFMP ; 153 ;105 RDTIME SOMETIMES GIVES WRONG ANSWER. CARRY BETWEEN ; 154 ; WORDS GETS LOST SOMETIME. ; 155 ;106 MOVEM (ALSO, SETZM, SETOM, ETC.) SOMETIMES DOES NOT GENERATE ; 156 ; A WRITE-TRAP IN 100% OF THE CASES THAT IT SHOULD. ; 157 ;107 PXCT 14, DOES NOT GET THE INDEX REGISTER IN THE PREVIOUS ; 158 ; CONTEXT ALL THE TIME. ; 159 ;110 FIX TYPO IN EDIT 103 ; 160 ;111 63. BIT BYTES DO NOT WORK CORRECTLY. DSKDA FAILS BECAUSE OF THIS ; 161 ; PROBLEM. ; 162 ;******* VERSION 111 WENT OUT WITH SYSTEM REV 2 ******* ; 163 ; 164 ;112 FIX COMMENT IN TEST INSTRUCTIONS ; 165 ;113 CORRECT IOEA TO COMPUTE CORRECT ADDRESS IF JUST LOCAL INDEXING ; 166 ; IS USED. ; 167 ;114 CORRECT INTERRUPT BUG IN DMUL ; 168 ;115 CORRECT COMMENTS HALT STATUS BLOCK ; 169 ;116 CORRECT PROBLEM WHERE CST MODIFIED BIT GETS SET BY MISTAKE. ; 170 ;117 RDINT INSTRUCTION DOES NOT WORK AT ALL. IT STORES RANDOM TRASH ; 171 ; IN THE WRONG PLACE. NEED TO LOAD BR NOT AR. ; 172 ;120 FLOATING POINT OPERATIONS SOMETIMES GET THE WRONG RESULT WITH ; 173 ; INPUTS OF UNNORMALIZED ZEROS. THIS SHOULD NEVER HAPPEN WITH ; 174 ; FORTRAN OR ANY OTHER DEC LANGUAGE. ; 175 ;121 PREVENT KEEP-ALIVE CRASHES FROM OCCURRING BECAUSE THE MOVSRJ ; 176 ; INSTRUCTION CAN LOCK OUT THE 1MS TIMER INTERRUPTS FROM BEING ; 177 ; HANDLED. THIS CAUSES THE OPERATING SYSTEM TO LOSE TRACK OF THE ; 178 ; PASSAGE OF TIME. ; T10KL.MCR[7,3] 15:10 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 ; 179 ;122 DFAD FOLLOWED BY A FSC OF -5 CAUSES THE FSC TO GET WRONG ; 180 ; ANSWER. HAD TO CLEAR FLAG WORD AT EXIT OF DFAD TO FIX PROBLEM ; 181 ;123 MORE CODE FOR EDIT 121. ADDED ANOTHER DISPATCH ADDRESS FOR ; 182 ; PAGE FAIL CODE AT PFD:. ; 183 ;124 ADD ASSEMBLY OPTIONS FOR NOCST AND INHIBIT CST UPDATE. ; 184 ; ADD BLTUB/BLTBU TO GET UBA STYLE BYTES SWAPPED TO/FROM ILDB FORM. ; 185 ; ADD ASSEMBLY OPTIONS FOR KI/KL PAGE. NEED THE SPACE FOR BLTUB/BU. ; 186 ;125 SUPPORT THE "MAJOR/MINOR VERSION IN 136" UCODE STANDARD. ; 187 ; FIX BAD CONSTRAINT FOR INHCST ASSEMBLIES (NOT CURRENTLY USED) ; 188 ;126 FIX NON-TRIVIAL CASES OF RDUBR,WRUBR, AND PROCESS CONTEXT WORD. ; 189 ;127 JSR IN A TRAP CYCLE STORES E+1 SOMETIMES. TRAP CYCLE WAS NOT BEING ; 190 ; CLEARED (BY NICOND) BEFORE STARTING THE NEXT MEMORY READ. ; 191 ;130 FIX UCODE HANG WITH STOPPPED CLOCKS ON WR (KL-PAGING REGISTER) IF ; 192 ; PAGING IS ON. IDEALLY, WE WOULD REMOVE WRITE TEST FROM THE DROM ; 193 ; FIELD, BUT IT'S TOO LATE TO ECO THE ROMS. ; 194 ; RESTRICTION: WRITE KLPAGE REGISTER LOCATION MUST BE WRITABLE. ; 195 ; T10KL.MCR[7,3] 15:10 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 ; 196 .TOC "HOW TO READ THE MICROCODE" ; 197 ; 198 ; ; 199 ; ; 200 ; 1.0 FIELD DEFINITIONS ; 201 ; ; 202 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE KS10.MIC ; 203 ; (CONTROL AND DISPATCH RAM DEFINITIONS). THEY HAVE THE FORM: ; 204 ; ; 205 ; SYMBOL/=M,J ; 206 ; ; 207 ; THE PARAMETER (J) IS MEANINGFUL WHEN "D" IS SPECIFIED AS THE DEFAULT MECHANISM, ; 208 ; AND IN THAT CASE, GIVES THE DEFAULT VALUE OF THE FIELD IN OCTAL. WHEN "F" IS ; 209 ; SPECIFIED AS THE DEFAULT MECHANISM, (J) IS THE NAME OF A FIELD WHICH CONTAINS ; 210 ; THE DEFAULT VALUE FOR THIS FIELD. ; 211 ; ; 212 ; THE PARAMETER (L) GIVES THE BIT POSITION OF THE LEFTMOST BIT IN THE FIELD. THE ; 213 ; SAME METHOD IS USED AS FOR (R) BELOW. ; 214 ; ; 215 ; THE PARAMETER (R) GIVES THE FIELD POSITION IN DECIMAL AS THE BIT NUMBER OF THE ; 216 ; RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED FROM 0 ON THE LEFT. NOTE THAT ; 217 ; THE POSITION OF BITS IN THE MICROWORD SHOWN IN THE LISTING BEARS NO RELATION TO ; 218 ; THE ORDERING OF BITS IN THE HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP ; 219 ; AND SCATTERED. ; 220 ; ; 221 ; THE PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT MECHANISM FOR THE FIELD. ; 222 ; THE LEGAL VALUES OF THIS PARAMETER ARE THE CHARACTERS "D", "F", "T", "P", OR ; 223 ; "+". ; 224 ; ; 225 ; "D" MEANS (J) IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT VALUE IS ; 226 ; SPECIFIED. ; 227 ; ; 228 ; "F" IS USED TO CAUSE THIS FIELD TO DEFAULT TO SOME OTHER FIELD. ; 229 ; ; 230 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 231 ; DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS. "T" IS NOT ; 232 ; USED IN THE KS10. ; 233 ; ; 234 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE FIELD ; 235 ; SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD IS ODD. "P" IS NOT ; 236 ; USED ON THE KS10. ; 237 ; ; 238 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT JUMP ; 239 ; ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT, IN ; 240 ; GENERAL, THE CURRENT LOCATION +1). ; 241 ; ; 242 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE SELECT INPUTS ; 243 ; FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S. ; 244 ; ; 245 ; ; 246 ; T10KL.MCR[7,3] 15:10 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 ; 247 ; 2.0 VALUE DEFINITIONS ; 248 ; ; 249 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT FIELD TO CORRESPOND ; 250 ; TO VALUES OF THE FIELD. THE FORM IS: ; 251 ; ; 252 ; SYMBOL=N ; 253 ; ; 254 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD. ; 255 ; ; 256 ; ; 257 ; ; 258 ; 3.0 LABEL DEFINITIONS ; 259 ; ; 260 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON PRECEDING THE ; 261 ; MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE MICROINSTRUCTION BECOMES THE ; 262 ; VALUE OF THE SYMBOL IN THE FIELD NAMED "J". EXAMPLE: ; 263 ; ; 264 ; FOO: J/FOO ; 265 ; ; 266 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS THE VALUE ; 267 ; "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS OF ITSELF. ; 268 ; THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD LOOP ON ITSELF. ; 269 ; ; 270 ; ; 271 ; ; 272 ; 4.0 COMMENTS ; 273 ; ; 274 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE TO BE IGNORED BY THE ; 275 ; ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS. ; 276 ; ; 277 ; ; 278 ; ; 279 ; 5.0 MICROINSTRUCTION DEFINITION ; 280 ; ; 281 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME, FOLLOWED BY SLASH ; 282 ; (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A SYMBOL DEFINED FOR THAT FIELD, AN ; 283 ; OCTAL DIGIT STRING, OR A DECIMAL DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT ; 284 ; CONTAINS "8" AND/OR "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY ; 285 ; BE SPECIFIED IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS ; 286 ; WITH COMMAS. EXAMPLE: ; 287 ; ; 288 ; AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/1,DBUS/DP ; 289 ; ; 290 ; ; 291 ; 6.0 CONTINUATION ; 292 ; ; 293 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR MORE LINES BY ; 294 ; BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE LAST NON-BLANK, NON-COMMENT ; 295 ; CHARACTER ON A LINE IS A COMMA, THE INSTRUCTION SPECIFICATION IS CONTINUED ON ; 296 ; T10KL.MCR[7,3] 15:10 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 ; 297 ; THE FOLLOWING LINE. EXAMPLE: ; 298 ; READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 299 ; SKIP DP18, ;SEE IF RIGHT OR LEFT SHIFT ; 300 ; SC_SHIFT-1, ;PUT NUMBER OF PLACE TO ; 301 ; ;SHIFT IN SC ; 302 ; LOAD FE, ; AND IN FE ; 303 ; INST DISP ;GO DO THE SHIFT ; 304 ; ; 305 ; ; 306 ; ; 307 ; 7.0 MACROS ; 308 ; ; 309 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE SPECIFICATIONS AND/OR ; 310 ; MACROS. A MACRO DEFINITION IS A LINE CONTAINING THE MACRO NAME FOLLOWED BY A ; 311 ; QUOTED STRING WHICH IS THE VALUE OF THE MACRO. EXAMPLE: ; 312 ; ; 313 ; LOAD VMA "MEM/1, LDVMA/1 ; 314 ; ; 315 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT TO THE ; 316 ; APPEARANCE OF ITS VALUE. ; 317 ; ; 318 ; MACRO MAY HAVE PARAMETERS ENCLOSED IN []. FOR EXAMPLE, ; 319 ; ; 320 ; []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 321 ; ; 322 ; THE @1 GETS REPLACED BY WHAT IS WRITTEN IN THE FIRST SET OF [] AND @2 IS ; 323 ; REPLACED BY WHAT IS WRITTEN IN THE SECOND SET OF []. THUS ; 324 ; ; 325 ; [AR]_[ARX] ; 326 ; ; 327 ; HAS THE SAME EFFECT AS SAYING ; 328 ; ; 329 ; AD/A,A/ARX,DEST/AD,B/AR ; 330 ; ; 331 ; ; 332 ; SEE DESCRIPTION OF RULES FOR MACRO NAMES. ; 333 ; ; 334 ; 8.0 PSEUDO OPS ; 335 ; ; 336 ; THE MICRO ASSEMBLER HAS 13 PSEUDO-OPERATORS: ; 337 ; ; 338 ; .DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL BE ; 339 ; LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE ; 340 ; MEANINGFUL IN SUBSEQUENT MICROCODE ; 341 ; .TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND ; 342 ; .TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING. ; 343 ; .SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER, ; 344 ; .CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER, ; 345 ; .DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER. ; 346 ; .IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO, ; 347 ; .IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND ; 348 ; .ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED. ; 349 ; .NOBIN TURNS OFF THE BINARY A GETS RID OF THE SPACE USED TO LIST IT, ; 350 ; .BIN TURN BINARY BACK ON AGAIN. ; 351 ; .WIDTH CONTROLS THE NUMBER OF BITS IN THE CRAM ; 352 ; T10KL.MCR[7,3] 15:10 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 ; 353 ; 9.0 LOCATION CONTROL ; 354 ; ; 355 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT ADDRESS. ; 356 ; ; 357 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY A STRING OF 0'S, 1'S, ; 358 ; AND/OR *'S, SPECIFIES A CONSTRAINT ON THE ADDRESS OF FOLLOWING ; 359 ; MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS IN THE CONSTRAINT STRING (EXCLUDING ; 360 ; THE "=") IS THE NUMBER OF LOW-ORDER BITS CONSTRAINED IN THE ADDRESS. THE ; 361 ; MICROASSEMBLER ATTEMPTS TO FIND AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN ; 362 ; THE POSITIONS CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE ; 363 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS. ; 364 ; ; 365 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT IMPLIES A BLOCK OF ; 366 ; <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S IN THE STRING. ALL LOCATIONS IN ; 367 ; THE BLOCK WILL HAVE 1'S IN THE ADDRESS BITS CORRESPONDING TO 1'S IN THE STRING, ; 368 ; AND BIT POSITIONS DENOTED BY *'S WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK. ; 369 ; ; 370 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS COUNTING IN THE ; 371 ; "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW CONSTRAINT STRING OCCURING ; 372 ; WITHIN A BLOCK MAY FORCE SKIPPING OVER SOME LOCATIONS OF THE BLOCK. WITHIN A ; 373 ; BLOCK, A NEW CONSTRAINT STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS ; 374 ; PROGRESSION, IT MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE ; 375 ; MICROASSEMBLER WILL LATER FILL THEM IN. ; 376 ; ; 377 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0", "1", OR "*") SERVES ; 378 ; TO TERMINATE A CONSTRAINT BLOCK. EXAMPLES: ; 379 ; ; 380 ; =0 ; 381 ; ; 382 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO-- THE MICROASSEMBLER ; 383 ; FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS THE NEXT TWO MICROINSTRUCTIONS ; 384 ; INTO THEM. ; 385 ; ; 386 ; =11 ; 387 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST BOTH BE ONES. ; 388 ; SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE ASSEMBLER FINDS ONLY ONE LOCATION ; 389 ; MEETING THE CONSTRAINT. ; 390 ; ; 391 ; =0***** ; 392 ; ; 393 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE TO THE ; 394 ; IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT ADDRESS PROGRESSION ; 395 ; APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS CONSTRAINT FINDS ONE WORD IN WHICH ; 396 ; THE "40" BIT IS ZERO, AND DOES NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ; 397 ; ONE. THIS LIMITATION HAS BEEN CHANGED WITH NEWER ASSEMBLER VERSIONS. HOWEVER ; 398 ; NONE OF THE LOCATIONS IN THE MICROCODE REQUIRE ANYTHING BUT THE CONSTRAINT ; 399 ; MENTIONED ABOVE. ; 400 ; T10KL.MCR[7,3] 15:10 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 ; 401 .TOC "CONDITIONAL ASSEMBLY DEFINITIONS" ; 402 ; 403 .DEFAULT/SIM=0 ;0=RUN ON REAL HARDWARE ; 404 ;1=RUN UNDER SIMULATOR ; 405 ; 406 .DEFAULT/FULL=1 ;0=INCLUDE ONLY BASIC INSTRUCTIONS ; 407 ;1=INCLUDE FULL INSTRUCTION SET ; 408 ; 409 .DEFAULT/INHCST=0 ;0=NO CODE TO INHIBIT CST UPDATE IF CSB=0 ; 410 ;1=DON'T UPDATE CST IF CSB=0 ; 411 ; 412 .DEFAULT/NOCST=0 ;0=INCLUDE SUPPORT FOR WRITING THE CST ; 413 ;1=COMPLETELY DESUPPORT CST (FOR TOPS-10) ; 414 ; 415 .DEFAULT/UBABLT=0 ;0=NO UBABLT SUPPORT ; 416 ;1=SUPPORT UBA STYLE BLT INSTRUCTIONS. ; 417 ; 418 .DEFAULT/KIPAGE=1 ;0=DON'T SUPPORT KI PAGING ; 419 ;1=DO ; 420 ; 421 .DEFAULT/KLPAGE=1 ;0=DON'T SUPPORT KL PAGING ; 422 ;1=DO ; 423 ; 424 .IF/UBABLT ;THESE INSTRUCTIONS ; 425 .IF/KLPAGE ; 426 .CHANGE/KIPAGE=0 ; 427 .ENDIF/KLPAGE ;;428 .IF/KIPAGE ;ALLOW ONLY ONE PAGING MODE ;;429 .CHANGE/KLPAGE=0 ; 430 .ENDIF/KIPAGE ; 431 .ENDIF/UBABLT ;OTHERWISE, MAY HAVE EITHER OR BOTH ; 432 ;;433 .IF/NOCST ;;434 .CHANGE/INHCST=0 ; 435 .ENDIF/NOCST ; 436 ; 437 .DEFAULT/NONSTD=0 ;0=STANDARD MICROCODE ; 438 ;1=NON-STANDARD MICROCODE ; 439 ; 440 .WIDTH/108 ;ONLY FIELDS BETWEEN BITS 0 AND 107 EVER ; 441 ; GET LOADED INTO THE CRAM. OTHER FIELDS ; 442 ; ARE USED FOR DEFAULTING PROCESS. ; 443 ; 444 .REGION/0,1377/2000,3777/1400,1777 ; 445 ;TRY AND KEEP STUFF OUT OF DROM SPACE ; 446 ; T10KL.MCR[7,3] 15:10 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 ; 447 .TOC "2901 REGISTER USAGE" ; 448 ; 449 ; !=========================================================================! ; 450 ;0: ! MAG (ONES IN BITS 1-36, REST ZERO) ! ; 451 ; !-------------------------------------------------------------------------! ; 452 ;1: ! PC (ADDRESS OF CURRENT INSTRUCTION + 1) ! ; 453 ; !-------------------------------------------------------------------------! ; 454 ;2: ! HR (CURRENT INSTRUCTION) ! ; 455 ; !-------------------------------------------------------------------------! ; 456 ;3: ! AR (TEMP -- MEM OP AT INST START) ! ; 457 ; !-------------------------------------------------------------------------! ; 458 ;4: ! ARX (TEMP -- LOW ORDER HALF OF DOUBLE PREC) ! ; 459 ; !-------------------------------------------------------------------------! ; 460 ;5: ! BR (TEMP) ! ; 461 ; !-------------------------------------------------------------------------! ; 462 ;6: ! BRX (TEMP -- LOW ORDER HALF OF DOUBLE PREC BR!BRX) ! ; 463 ; !-------------------------------------------------------------------------! ; 464 ;7: ! ONE (THE CONSTANT 1) ! ; 465 ; !-------------------------------------------------------------------------! ; 466 ;10: ! EBR (EXEC BASE REGISTER) ! ; 467 ; !-------------------------------------------------------------------------! ; 468 ;11: ! UBR (USER BASE REGISTER) ! ; 469 ; !-------------------------------------------------------------------------! ; 470 ;12: ! MASK (ONES IN BITS 0-35, ZERO IN -1, -2, 36 AND 37) ! ; 471 ; !-------------------------------------------------------------------------! ; 472 ;13: ! FLG (FLAG BITS) ! PAGE FAIL CODE ! ; 473 ; !-------------------------------------------------------------------------! ; 474 ;14: ! PI (PI SYSTEM STATUS REGISTER [RDPI]) ! ; 475 ; !-------------------------------------------------------------------------! ; 476 ;15: ! XWD1 (1 IN EACH HALF WORD) ! ; 477 ; !-------------------------------------------------------------------------! ; 478 ;16: ! T0 (TEMP) ! ; 479 ; !-------------------------------------------------------------------------! ; 480 ;17: ! T1 (TEMP) ! ; 481 ; !=========================================================================! ; 482 ; T10KL.MCR[7,3] 15:10 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 ; 483 .TOC "MICROCODE FIELDS -- LISTING FORMAT" ; 484 ; 485 ; ; 3633 1561: ; 486 ; ; 3634 SUB: [AR]_AC-[AR], ; 487 ; ; 3635 AD FLAGS, 3T, ; 488 ; U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 3636 EXIT ; 489 ; [--] [--] !!!! [][] !!![-][][-][]! !!! [----] ; 490 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ! ; 491 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! +---- # (MAGIC NUMBER) ; 492 ; ! ! !!!! ! ! !!!! ! ! ! ! !!! ; 493 ; ! ! !!!! ! ! !!!! ! ! ! ! !!+------------- MULTI PREC, MULTI SHIFT, CALL (4S, 2S, 1S) ; 494 ; ! ! !!!! ! ! !!!! ! ! ! ! !! ; 495 ; ! ! !!!! ! ! !!!! ! ! ! ! !+-------------- FM WRITE, MEM, DIVIDE (4S, 2S, 1S) ; 496 ; ! ! !!!! ! ! !!!! ! ! ! ! ! ; 497 ; ! ! !!!! ! ! !!!! ! ! ! ! +--------------- CRY38, LOAD SC, LOAD FE (4S, 2S, 1S) ; 498 ; ! ! !!!! ! ! !!!! ! ! ! ! ; 499 ; ! ! !!!! ! ! !!!! ! ! ! +----------------- T ; 500 ; ! ! !!!! ! ! !!!! ! ! ! ; 501 ; ! ! !!!! ! ! !!!! ! ! +------------------- SKIP ; 502 ; ! ! !!!! ! ! !!!! ! ! ; 503 ; ! ! !!!! ! ! !!!! ! +---------------------- DISP ; 504 ; ! ! !!!! ! ! !!!! ! ; 505 ; ! ! !!!! ! ! !!!! +------------------------ SPEC ; 506 ; ! ! !!!! ! ! !!!! ; 507 ; ! ! !!!! ! ! !!!+--------------------------- CLOCKS & PARITY (CLKR, GENR, CHKR, CLKL, GENL, CHKL) ; 508 ; ! ! !!!! ! ! !!! ; 509 ; ! ! !!!! ! ! !!+---------------------------- DBM ; 510 ; ! ! !!!! ! ! !! ; 511 ; ! ! !!!! ! ! !+----------------------------- DBUS ; 512 ; ! ! !!!! ! ! ! ; 513 ; ! ! !!!! ! ! +------------------------------ RAM ADDRESS ; 514 ; ! ! !!!! ! ! ; 515 ; ! ! !!!! ! +--------------------------------- B ; 516 ; ! ! !!!! ! ; 517 ; ! ! !!!! +----------------------------------- A ; 518 ; ! ! !!!! ; 519 ; ! ! !!!+------------------------------------- DEST ; 520 ; ! ! !!! ; 521 ; ! ! !!+-------------------------------------- RSRC ; 522 ; ! ! !! ; 523 ; ! ! !+--------------------------------------- LSRC ] ; 524 ; ! ! ! ] - AD ; 525 ; ! ! +---------------------------------------- ALU ] ; 526 ; ! ! ; 527 ; ! +--------------------------------------------- J ; 528 ; ! ; 529 ; LOCATION OF THIS MICRO WORD ; 530 ; T10KL.MCR[7,3] 15:10 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 ; 531 .TOC "MICROCODE FIELDS -- DATAPATH CHIP" ; 532 ; 533 J/=<0:11>+ ;CRA1 ; 534 ;NEXT MICROCODE ADDRESS ; 535 ; 536 ;ALU FUNCTIONS ; 537 ; 538 ;NOTE: THE AD FIELD IS A 2 DIGIT FIELD. THE LEFT DIGIT IS THE ; 539 ; 2901 ALU FUNCTION. THE RIGHT DIGIT IS THE 2901 SRC CODE FOR ; 540 ; THE LEFT HALF. NORMALY THE RIGHT HALF SRC CODE IS THE SAME AS ; 541 ; THE LEFT HALF. ; 542 AD/=<12:17>D,44 ;DPE1 & DPE2 ; 543 A+Q=00 ; 544 A+B=01 ; 545 0+Q=02 ; 546 0+B=03 ; 547 0+A=04 ; 548 D+A=05 ; 549 D+Q=06 ; 550 0+D=07 ; 551 Q-A-.25=10 ; 552 B-A-.25=11 ; 553 Q-.25=12 ; 554 B-.25=13 ; 555 A-.25=14 ; 556 A-D-.25=15 ; 557 Q-D-.25=16 ; 558 -D-.25=17 ; 559 A-Q-.25=20 ; 560 A-B-.25=21 ; 561 -Q-.25=22 ; 562 -B-.25=23 ; 563 -A-.25=24 ; 564 D-A-.25=25 ; 565 D-Q-.25=26 ; 566 D-.25=27 ; 567 A.OR.Q=30 ; 568 A.OR.B=31 ; 569 Q=32 ; 570 B=33 ; 571 A=34 ; 572 D.OR.A=35 ; 573 D.OR.Q=36 ; 574 D=37 ; 575 A.AND.Q=40 ; 576 A.AND.B=41 ; 577 ; T10KL.MCR[7,3] 15:10 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 ; 578 ;MORE ALU FUNCTIONS ; 579 ; 580 ZERO=42 ; 581 ; ZERO=43 ; 582 ; ZERO=44 ; 583 D.AND.A=45 ; 584 D.AND.Q=46 ; 585 ; ZERO=47 ; 586 .NOT.A.AND.Q=50 ; 587 .NOT.A.AND.B=51 ; 588 ; Q=52 ; 589 ; B=53 ; 590 ; A=54 ; 591 .NOT.D.AND.A=55 ; 592 .NOT.D.AND.Q=56 ; 593 ; ZERO=57 ; 594 A.XOR.Q=60 ; 595 A.XOR.B=61 ; 596 ; Q=62 ; 597 ; B=63 ; 598 ; A=64 ; 599 D.XOR.A=65 ; 600 D.XOR.Q=66 ; 601 ; D=67 ; 602 A.EQV.Q=70 ; 603 A.EQV.B=71 ; 604 .NOT.Q=72 ; 605 .NOT.B=73 ; 606 .NOT.A=74 ; 607 D.EQV.A=75 ; 608 D.EQV.Q=76 ; 609 .NOT.D=77 ; 610 ; 611 ;THIS FIELD IS THE RIGHTMOST 3 BITS OF THE ; 612 ; AD FIELD. IT IS USED ONLY TO DEFAULT THE RSRC ; 613 ; FIELD. ; 614 LSRC/=<15:17> ;DPE1 ; 615 ; 616 ;THIS IS THE SOURCE FOR THE RIGHT HALF OF THE ; 617 ; DATA PATH. IT LETS US MAKE THE RIGHT AND LEFT ; 618 ; HALF WORDS DO SLIGHTLY DIFFERENT THINGS. ; 619 RSRC/=<18:20>F,LSRC ;DPE2 ; 620 AQ=0 ;A Q ; 621 AB=1 ;A B ; 622 0Q=2 ;0 Q ; 623 0B=3 ;0 B ; 624 0A=4 ;0 A ; 625 DA=5 ;D A ; 626 DQ=6 ;D Q ; 627 D0=7 ;D 0 ; 628 ; T10KL.MCR[7,3] 15:10 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 ; 629 ;DESTINATION CONTROL ; 630 ;SEE DPE1 AND DPE2 (2'S WEIGHT IS INVERTED ON DPE5) ; 631 DEST/=<21:23>D,3 ;DPE1 & DPE2 ; 632 A=0 ;A REG IS CHIP OUTPUT, AD IS WRITTEN ; 633 ; INTO REG FILE ; 634 AD=1 ;REG FILE GETS AD ; 635 Q_AD=2 ;REG FILE IS NOT LOADED ; 636 PASS=3 ;AD OUTPUT IS CHIP OUTPUT ; 637 ; Q AND REG FILE LEFT ALONE ; 638 Q_Q*2=4 ;ALSO REG FILE GETS AD*2 ; 639 AD*2=5 ;AND Q IS LEFT ALONE ; 640 Q_Q*.5=6 ;ALSO REG FILE GETS AD*.5 ; 641 AD*.5=7 ;AND Q IS LEFT ALONE ; 642 ; 643 ; <24:25> ;UNUSED ; 644 ; 645 A/=<26:29> ;DPE1 & DPE2 ; 646 MAG=0 ; 647 PC=1 ; 648 HR=2 ; 649 AR=3 ; 650 ARX=4 ; 651 BR=5 ; 652 BRX=6 ; 653 ONE=7 ; 654 EBR=10 ; 655 UBR=11 ; 656 MASK=12 ; 657 FLG=13 ; 658 PI=14 ; 659 XWD1=15 ; 660 T0=16 ; 661 T1=17 ; 662 ; 663 ; <30:31> ;UNUSED ; 664 ; 665 B/=<32:35>D,0 ;DPE1 & DPE2 ; 666 MAG=0 ; 667 PC=1 ; 668 HR=2 ; 669 AR=3 ; 670 ARX=4 ; 671 BR=5 ; 672 BRX=6 ; 673 ONE=7 ; 674 EBR=10 ; 675 UBR=11 ; 676 MASK=12 ; 677 FLG=13 ; 678 PI=14 ; 679 XWD1=15 ; 680 T0=16 ; 681 T1=17 ; 682 ; T10KL.MCR[7,3] 15:10 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 ; 683 .TOC "MICROCODE FIELDS -- RAM FILE ADDRESS AND D-BUS" ; 684 ; 685 RAMADR/=<36:38>D,4 ;DPE6 ; 686 AC#=0 ;AC NUMBER ; 687 AC*#=1 ;AC .FN. # ; 688 XR#=2 ;INDEX REGISTER ; 689 VMA=4 ;VIRTUAL MEMORY REFERENCE ; 690 RAM=6 ;VMA SUPPLIES 10-BIT RAM ADDRESS ; 691 #=7 ;ABSOLUTE RAM FILE REFERENCE ; 692 ; 693 ; <39:39> ; 694 ; 695 ;LEFT HALF ON DPE3 AND RIGHT HALF ON DPE4 ; 696 DBUS/=<40:41>D,1 ;DPE3 & DPE4 ; 697 PC FLAGS=0 ;PC FLAGS IN LEFT HALF ; 698 PI NEW=0 ;NEW PI LEVEL IN BITS 19-21 ; 699 ; VMA=0 ;VMA IN BITS 27-35 ; 700 DP=1 ;DATA PATH ; 701 RAM=2 ;CACHE, AC'S AND WORKSPACE ; 702 DBM=3 ;DBM MIXER ; 703 ; 704 ;LEFT HALF ON DPM1 AND RIGHT HALF ON DPM2 ; 705 DBM/=<42:44>D,7 ;DPM1 & DPM2 ; 706 SCAD DIAG=0 ;(LH) SCAD DIAGNOSTIC ; 707 PF DISP=0 ;PAGE FAIL DISP IN BITS 18-21 ; 708 APR FLAGS=0 ;APR FLAGS IN BITS 22-35 ; 709 BYTES=1 ;5 COPIES OF SCAD 1-7 ; 710 EXP=2 ;LH=EXPONENT, RH=TIME FRACTION ; 711 DP=3 ;DATA PATH ; 712 DP SWAP=4 ;DATA PATH SWAPPED ; 713 VMA=5 ;VMA FLAGS,,VMA ; 714 MEM=6 ;MEMORY BUFFER ; 715 #=7 ;NUMBER FIELD IN BOTH HALVES ; 716 ; T10KL.MCR[7,3] 15:10 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 ; 717 .TOC "MICROCODE FIELDS -- PARITY GENERATION & HALF WORD CONTROL" ; 718 ; 719 AD PARITY OK/=<108>D,0 ;**NOT STORED IN CRAM** ; 720 ;THIS BIT IS A 1 IF THE ALU IS DOING ; 721 ; SOMETHING WHICH DOES NOT INVALIDATE ; 722 ; PARITY. IT DOES NOT APPEAR IN THE ; 723 ; REAL MACHINE. WE JUST USE IT TO SET ; 724 ; THE DEFAULT FOR GENR & GENL ; 725 ; 726 CLKL/=<45:45>D,1 ;DPE5 ; 727 ;CLOCK THE LEFT HALF OF THE MACHINE ; 728 GENL/=<46:46>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN LEFT H ; 729 ;STORE PARITY FOR 2901 LEFT ; 730 CHKL/=<47:47> ;DPE4 FROM CRM2 PARITY CHK LEFT H ; 731 ;CHECK LEFT HALF DBUS PARITY ; 732 ; 733 CLKR/=<48:48>D,1 ;DPE5 ; 734 ;CLOCK THE RIGHT HALF OF THE MACHINE ; 735 GENR/=<49:49>F,AD PARITY OK ;DPE4 FROM CRM2 PARITY EN RIGHT H ; 736 ;STORE PARITY FOR 2901 RIGHT ; 737 CHKR/=<50:50> ;DPE4 FROM CRM2 PARITY CHK RIGHT H ; 738 ;CHECK RIGHT HALF DBUS PARITY ; 739 ; T10KL.MCR[7,3] 15:10 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 ; 740 .TOC "MICROCODE FIELDS -- SPEC" ; 741 ; 742 ; 743 ; ; 744 ;THE FOLLOWING SPECIAL FUNCTION ARE DECODED ON DPE1, DPE5, AND DPMA: ; 745 ; !=========================================================================! ; 746 ; !S! EFFECT ! CRA6 SPEC ! CRA6 SPEC ! CRA6 SPEC ! ; 747 ; !P! ON SHIFT ! EN 40 ! EN 20 ! EN 10 ! ; 748 ; !E! PATHS ! E102 ON DPE5 ! E101 ON DPE5 ! E410 ON DPMA ! ; 749 ; !C! (SEE DPE1) ! ! E411 ON DPMA ! E113 ON CRA2 ! ; 750 ; !=========================================================================! ; 751 ; !0! NORMAL ! CRY 18 INH ! PREVIOUS ! # ! ; 752 ; !-------------------------------------------------------------------------! ; 753 ; !1! ZERO ! IR LOAD ! XR LOAD ! CLR 1 MSEC ! ; 754 ; !-------------------------------------------------------------------------! ; 755 ; !2! ONES ! ! ! CLR IO LATCH ! ; 756 ; !-------------------------------------------------------------------------! ; 757 ; !3! ROT ! PI LOAD ! APR FLAGS ! CLR IO BUSY ! ; 758 ; !-------------------------------------------------------------------------! ; 759 ; !4! ASHC ! ASH TEST ! SET SWEEP ! PAGE WRITE ! ; 760 ; !-------------------------------------------------------------------------! ; 761 ; !5! LSHC ! EXP TEST ! APR EN ! NICOND ! ; 762 ; !-------------------------------------------------------------------------! ; 763 ; !6! DIV ! PC FLAGS ! PXCT OFF ! PXCT EN ! ; 764 ; !-------------------------------------------------------------------------! ; 765 ; !7! ROTC ! AC BLOCKS EN ! MEM CLR ! MEM WAIT ! ; 766 ; !=========================================================================! ; 767 ; THE DPM BOARD USES THE SPEC FIELD TO CONTROL THE ; 768 ; DBM MIXER, AS FOLLOWS: ; 769 ; ; 770 ; !=====================================! ; 771 ; ! S ! ! ; 772 ; ! P ! ACTION WHEN DBM ! ; 773 ; ! E ! SELECTS DP ! ; 774 ; ! C ! GET DP BITS ! GET SCAD 1-7 ! ; 775 ; !=====================================! ; 776 ; ! 0 ! ALL ! NONE ! ; 777 ; !-------------------------------------! ; 778 ; ! 1 ! 7-35 ! 0-6 ! ; 779 ; !-------------------------------------! ; 780 ; ! 2 !0-6 AND 14-35 ! 7-13 ! ; 781 ; !-------------------------------------! ; 782 ; ! 3 !0-13 AND 21-35! 14-20 ! ; 783 ; !-------------------------------------! ; 784 ; ! 4 !0-20 AND 28-35! 21-27 ! ; 785 ; !-------------------------------------! ; 786 ; ! 5 ! 0-27 AND 35 ! 28-34 ! ; 787 ; !-------------------------------------! ; 788 ; ! 6 ! SAME AS ZERO ! ; 789 ; !-------------------------------------! ; 790 ; ! 7 ! SAME AS ZERO ! ; 791 ; !=====================================! ; 792 ; T10KL.MCR[7,3] 15:10 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 ; 793 ;THE SPEC FIELD IS DEFINED AS A 6-BIT FIELD. THE TOP 3 BITS ; 794 ; ARE SPEC SEL A, SPEC SEL B, AND SPEC SEL C. THE LOW 3 BITS ARE ; 795 ; THE SELECT CODE. ; 796 ; 797 SPEC/=<51:56>D,0 ;DPE1 & DPE5 & DPM1 & DPMA ; 798 #=10 ;DECODE # BITS ; 799 CLRCLK=11 ;CLEAR 1MS NICOND FLAG ; 800 CLR IO LATCH=12 ;CLEAR IO LATCH ; 801 CLR IO BUSY=13 ;CLEAR IO BUSY ; 802 LDPAGE=14 ;WRITE PAGE TABLE ; 803 NICOND=15 ;DOING NICOND DISPATCH ; 804 LDPXCT=16 ;LOAD PXCT FLAGS ; 805 WAIT=17 ;MEM WAIT ; 806 PREV=20 ;FORCE PREVIOUS CONTEXT ; 807 LOADXR=21 ;LOAD XR #, USES PXCT FIELD TO SELECT ; 808 ; CORRECT AC BLOCK ; 809 APR FLAGS=23 ;LOAD APR FLAGS ; 810 CLRCSH=24 ;CLEAR CACHE ; 811 APR EN=25 ;SET APR ENABLES ; 812 MEMCLR=27 ;CLEAR PAGE FAULT CONDITION ; 813 SWEEP=34 ;SET SWEEP ; 814 PXCT OFF=36 ;TURN OFF THE EFFECT OF PXCT ; 815 INHCRY18=40 ;INHIBIT CARRY INTO LEFT HALF ; 816 LOADIR=41 ;LOAD THE IR ; 817 LDPI=43 ;LOAD PI SYSTEM ; 818 ASHOV=44 ;TEST RESULT OF ASH ; 819 EXPTST=45 ;TEST RESULT OF FLOATING POINT ; 820 FLAGS=46 ;CHANGE PC FLAGS ; 821 LDACBLK=47 ;LOAD AC BLOCK NUMBERS ; 822 LDINST=61 ;LOAD INSTRUCTION ; 823 ; 824 ;THE SPEC FIELD IS REDEFINED WHEN USED FOR BYTE MODE STUFF ; 825 BYTE/=<54:56> ;DPM1 (SPEC SEL) ; 826 BYTE1=1 ; 827 BYTE2=2 ; 828 BYTE3=3 ; 829 BYTE4=4 ; 830 BYTE5=5 ; 831 ; 832 ;THE SPEC FIELD IS REDEFINED WHEN USED TO CONTROL SHIFT PATHS ; 833 SHSTYLE/=<54:56> ;DPE1 (SPEC SEL) ; 834 NORM=0 ;2 40-BIT REGISTERS ; 835 ZERO=1 ;SHIFT ZERO INTO 36 BITS (ASH TOP 2901) ; 836 ONES=2 ;SHIFT IN ONES ; 837 ROT=3 ;ROTATE ; 838 ASHC=4 ;ASHC ; 839 LSHC=5 ;LSHC ; 840 DIV=6 ;SPECIAL DIVIDE ; 841 ROTC=7 ;ROTATE DOUBLE ; 842 ; T10KL.MCR[7,3] 15:10 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 ; 843 .TOC "MICROCODE FIELDS -- DISPATCH" ; 844 ; !=======================================================! ; 845 ; ! D ! CRA1 ! CRA1 ! DPEA ! ; 846 ; ! I ! DISP ! DISP ! DISP ! ; 847 ; ! S ! 10 ! 20 ! 40 ! ; 848 ; ! P ! ! ! ! ; 849 ; !=======================================================! ; 850 ; ! 0 ! DIAG ADR ! DIAG ADR ! 0 ! ; 851 ; !-------------------------------------------------------! ; 852 ; ! 1 ! RETURN ! RETURN ! DP 18-21 ! ; 853 ; !-------------------------------------------------------! ; 854 ; ! 2 ! MULTIPLY ! J ! J ! ; 855 ; !-------------------------------------------------------! ; 856 ; ! 3 ! PAGE FAIL ! AREAD ! AREAD ! ; 857 ; !-------------------------------------------------------! ; 858 ; ! 4 ! NICOND ! NOT USABLE ! NORM ! ; 859 ; !-------------------------------------------------------! ; 860 ; ! 5 ! BYTE ! NOT USABLE ! DP 32-35 ! ; 861 ; !-------------------------------------------------------! ; 862 ; ! 6 ! EA MODE ! NOT USABLE ! DROM A ! ; 863 ; !-------------------------------------------------------! ; 864 ; ! 7 ! SCAD ! NOT USABLE ! DROM B ! ; 865 ; !=======================================================! ; 866 ;NOTE: DISP EN 40 & DISP EN 10 ONLY CONTROL THE LOW 4 BITS OF THE ; 867 ; JUMP ADDRESS. DISP EN 20 ONLY CONTROLS THE HI 7 BITS. TO DO ; 868 ; SOMETHING TO ALL 11 BITS BOTH 20 & 40 OR 20 & 10 MUST BE ENABLED. ; 869 ; 870 DISP/=<57:62>D,70 ;CRA1 & DPEA ; 871 CONSOLE=00 ;CONSOLE DISPATCH ; 872 DROM=12 ;DROM ; 873 AREAD=13 ;AREAD ; 874 DP LEFT=31 ;DP 18-21 ; 875 NORM=34 ;NORMALIZE ; 876 DP=35 ;DP 32-35 ; 877 ADISP=36 ;DROM A FIELD ; 878 BDISP=37 ;DROM B FIELD ; 879 RETURN=41 ;RETURN ; 880 MUL=62 ;MULTIPLY ; 881 PAGE FAIL=63 ;PAGE FAIL ; 882 NICOND=64 ;NEXT INSTRUCTION DISPATCH ; 883 BYTE=65 ;BYTE SIZE AND POSITION ; 884 EAMODE=66 ;EFFECTIVE ADDRESS MODE ; 885 SCAD0=67 ;J!2 IF SCAD BIT 0 = 1 ; 886 ; T10KL.MCR[7,3] 15:10 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 ; 887 .TOC "MICROCODE FIELDS -- SKIP" ; 888 ; !=======================================================! ; 889 ; ! S ! CRA2 ! DPEA ! DPEA ! ; 890 ; ! K ! SKIP ! SKIP ! SKIP ! ; 891 ; ! I ! 10 ! 20 ! 40 ! ; 892 ; ! P ! ! ! ! ; 893 ; !=======================================================! ; 894 ; ! 0 ! 0 ! 0 ! 0 ! ; 895 ; !-------------------------------------------------------! ; 896 ; ! 1 ! TRAP CYCLE ! CRY 02 ! CARRY OUT ! ; 897 ; !-------------------------------------------------------! ; 898 ; ! 2 ! AD=0 ! ADL SIGN ! ADL=0 ! ; 899 ; !-------------------------------------------------------! ; 900 ; ! 3 ! SC SIGN ! ADR SIGN ! ADR=0 ! ; 901 ; !-------------------------------------------------------! ; 902 ; ! 4 ! EXECUTE ! USER IOT ! -USER ! ; 903 ; !-------------------------------------------------------! ; 904 ; ! 5 ! -BUS IO BUSY ! JFCL SKIP ! FPD FLAG ! ; 905 ; !-------------------------------------------------------! ; 906 ; ! 6 ! -CONTINUE ! CRY 01 ! AC # IS ZERO ! ; 907 ; !-------------------------------------------------------! ; 908 ; ! 7 ! -1 MSEC ! TXXX ! INTERRUPT REQ ! ; 909 ; !=======================================================! ; 910 ; 911 SKIP/=<63:68>D,70 ;CRA2 & DPEA ; 912 IOLGL=04 ;(.NOT.USER)!(USER IOT)!(CONSOLE EXECUTE MODE) ; 913 LLE=12 ;AD LEFT .LE. 0 ; 914 CRY0=31 ;AD CRY -2 ; 915 ADLEQ0=32 ;ADDER LEFT = 0 ; 916 ADREQ0=33 ;ADDER RIGHT = 0 ; 917 KERNEL=34 ;.NOT. USER ; 918 FPD=35 ;FIRST PART DONE ; 919 AC0=36 ;AC NUMBER IS ZERO ; 920 INT=37 ;INTERRUPT REQUEST ; 921 LE=42 ;(AD SIGN)!(AD.EQ.0) ; 922 CRY2=51 ;AD CRY 02 ; 923 DP0=52 ;AD SIGN ; 924 DP18=53 ;AD BIT 18 ; 925 IOT=54 ;USER IOT ; 926 JFCL=55 ;JFCL SKIP ; 927 CRY1=56 ;AD CRY 1 ; 928 TXXX=57 ;TEST INSTRUCTION SHOULD SKIP ; 929 TRAP CYCLE=61 ;THIS INSTRUCTION IS THE RESULT OF A ; 930 ; TRAP 1, 2, OR 3 ; 931 ADEQ0=62 ;AD.EQ.0 ; 932 SC=63 ;SC SIGN BIT ; 933 EXECUTE=64 ;CONSOLE EXECUTE MODE ; 934 -IO BUSY=65 ;.NOT. I/O LATCH ; 935 -CONTINUE=66 ;.NOT. CONTINUE ; 936 -1 MS=67 ;.NOT. 1 MS. TIMER ; 937 ; T10KL.MCR[7,3] 15:10 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 ; 938 .TOC "MICROCODE FIELDS -- TIME CONTROL" ; 939 ; 940 DT/=<109:111>D,0 ;**NOT STORED IN CRAM** ; 941 ;DEFAULT TIME FIELD (USED IN MACROS) ; 942 ; CAN BE OVERRIDDEN IN MACRO CALL ; 943 2T=0 ; 944 3T=1 ; 945 4T=2 ; 946 5T=3 ; 947 ; 948 ; 949 T/=<69:71>F,DT ;CSL5 (E601) ; 950 ;CLOCK TICKS MINUS TWO REQUIRED TO ; 951 ; DO A MICRO INSTRUCTION ; 952 2T=0 ;TWO TICKS ; 953 3T=1 ;THREE TICKS ; 954 4T=2 ;FOUR TICKS ; 955 5T=3 ;FIVE TICKS ; 956 ; 957 ; T10KL.MCR[7,3] 15:10 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 ; 958 .TOC "MICROCODE FIELDS -- RANDOM CONTROL BITS" ; 959 ; 960 CRY38/=<72> ;DPE5 ; 961 ;INJECT A CARRY INTO THE 2901 ADDER ; 962 LOADSC/=<73> ;DPM4 ; 963 ;LOAD THE STEP COUNTER FROM THE SCAD ; 964 LOADFE/=<74> ;DPM4 ; 965 ;LOAD THE FE REGISTER FROM THE SCAD ; 966 FMWRITE/=<75> ;DPE5 (E302) ; 967 ;WRITE THE RAM FILE. ; 968 MEM/=<76> ;DPM5 (E612) & DPE5 (E205) ; 969 ;START (OR COMPLETE) A MEMORY OR I/O CYCLE UNDER ; 970 ; CONTROL OF THE NUMBER FIELD. ; 971 DIVIDE/=<77> ;DPE5 ; 972 ;THIS MICROINSTRUCTION IS DOING A DIVIDE ; 973 MULTI PREC/=<78> ;DPE5 ; 974 ;MULTIPRECISION STEP IN DIVIDE, DFAD, DFSB ; 975 MULTI SHIFT/=<79> ;CSL5 (HAS NOTHING TO DO WITH DPE5 MULTI SHIFT) ; 976 ;FAST SHIFT ; 977 CALL/=<80> ;CRA2 (STACK IS ON CRA3) ; 978 ;THIS IS A CALL ; 979 ; T10KL.MCR[7,3] 15:10 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 ; 980 .TOC "MICROCODE FIELDS -- NUMBER FIELD" ; 981 ; 982 ;HERE IS THE GENERAL FIELD ; 983 #/=<90:107> ;MANY PLACES ; 984 ; 985 ;# REDEFINED WHEN USED AS SCAD CONTROL: ; 986 SCAD/=<90:92> ;DPM3 ; 987 A*2=0 ; 988 A.OR.B=1 ; 989 A-B-1=2 ; 990 A-B=3 ; 991 A+B=4 ; 992 A.AND.B=5 ; 993 A-1=6 ; 994 A=7 ; 995 SCADA/=<93:95> ;DPM3 ; 996 SC=0 ; 997 S#=1 ; 998 PTR44=2 ;44 AND BIT 6 (SEE DPM3) ; 999 BYTE1=3 ; 1000 BYTE2=4 ; 1001 BYTE3=5 ; 1002 BYTE4=6 ; 1003 BYTE5=7 ; 1004 SCADB/=<96:97> ;DPM3 ; 1005 FE=0 ; 1006 EXP=1 ; 1007 SHIFT=2 ; 1008 SIZE=3 ; 1009 S#/=<98:107> ;DPM3 ; 1010 ; 1011 ;# REDEFINED WHEN USED AS STATE REGISTER CONTROL: ; 1012 STATE/=<90:107> ;NOT USED BY HARDWARE ; 1013 SIMPLE=0 ;SIMPLE INSTRUCTIONS ; 1014 BLT=1 ;BLT IN PROGRESS ; 1015 MAP=400002 ;MAP IN PROGRESS ; 1016 SRC=3 ;MOVE STRING SOURCE IN PROGRESS ; 1017 DST=4 ;MOVE STRING FILL IN PROGRESS ; 1018 SRC+DST=5 ;MOVE STRING DEST IN PROGRESS ; 1019 DSTF=6 ;FILLING DEST ; 1020 CVTDB=7 ;CONVERT DEC TO BIN ; 1021 COMP-DST=10 ;COMPARE DEST ; 1022 EDIT-SRC=11 ;EDIT SOURCE ; 1023 EDIT-DST=12 ;EDIT DEST ; 1024 EDIT-S+D=13 ;BOTH SRC AND DST POINTERS ; 1025 ; T10KL.MCR[7,3] 15:10 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 ; 1026 ;# REDEFINED WHEN USED AS WORSPACE ADDRESS ; 1027 ; 1028 WORK/=<98:107> ;DPE6 ; 1029 BADW0=160 ;AC BLK 7 WORD 0 (BAD DATA FROM MEMORY) ; 1030 BADW1=161 ;AC BLK 7 WORD 1 (BAD DATA FROM MEMORY) ; 1031 MUL=200 ;TEMP FOR MULTIPLY ; 1032 DIV=201 ;TEMP FOR DIVIDE ; 1033 SV.VMA=210 ;SAVE VMA ; 1034 SV.AR=211 ;SAVE AR ; 1035 SV.ARX=212 ;SAVE ARX ; 1036 SV.BR=213 ;SAVE BR ; 1037 SV.BRX=214 ;SAVE BRX ; 1038 SBR=215 ;SPT BASE REGISTER ; 1039 CBR=216 ;CST BASE ADDRESS ; 1040 CSTM=217 ;CST MASK ; 1041 PUR=220 ;PROCESS USE REGISTER ; 1042 ADJP=221 ;"P" FOR ADJBP ; 1043 ADJS=222 ;"S" FOR ADJBP ; 1044 ADJPTR=223 ;BYTE POINTER FOR ADJBP ; 1045 ADJQ1=224 ;TEMP FOR ADJBP ; 1046 ADJR2=225 ;TEMP FOR ADJBP ; 1047 ADJBPW=226 ;(BYTES/WORD) FOR ADJBP ; 1048 HSBADR=227 ;ADDRESS OF HALT STATUS BLOCK ; 1049 APR=230 ;APR ENABLES ; 1050 ;THE FOLLOWING WORDS ARE USED BY EXTEND INSTRUCTION ; 1051 E0=240 ;ORIGINAL EFFECTIVE ADDRESS ; 1052 E1=241 ;EFFECTIVE ADDRESS OF WORD AT E0 ; 1053 SLEN=242 ;SOURCE LENGTH ; 1054 MSK=243 ;BYTE MASK ; 1055 FILL=244 ;FILL BYTE ; 1056 CMS=245 ;SRC BYTE IN STRING COMPARE ; 1057 FSIG=246 ;PLACE TO SAVE ARX WHILE STORING ; 1058 ; THE FLOAT CHAR ; 1059 BDH=247 ;BINARY BEING CONVERTED TO ; 1060 BDL=250 ; DECIMAL ; 1061 ; 1062 ;TIMER STUFF ; 1063 TIME0=300 ;HIGH ORDER 36 BITS OF TIME ; 1064 TIME1=301 ;LOW ORDER 36 BITS OF TIME ; 1065 PERIOD=302 ;INTERRUPT PERIOD ; 1066 TTG=303 ;TIME TO GO TO NEXT INTERRUPT ; 1067 ; T10KL.MCR[7,3] 15:10 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 ; 1068 ;DDIV STUFF ; 1069 AC0=314 ; 1070 AC1=315 ; 1071 AC2=316 ; 1072 AC3=317 ; 1073 DDIV SGN=320 ; 1074 DVSOR H=321 ; 1075 DVSOR L=322 ; 1076 ;POWERS OF TEN ; 1077 DECLO=344 ;LOW WORD ; 1078 DECHI=373 ;HIGH WORD ; 1079 ; 1080 YSAVE=422 ;Y OF LAST INDIRECT POINTER ; 1081 PTA.E=423 ;ADDRESS OF EXEC PAGE MAP (NOT PROCESS TABLE) ; 1082 PTA.U=424 ;ADDRESS OF USER PAGE MAP ; 1083 TRAPPC=425 ;SAVED PC FROM TRAP CYCLE ; 1084 SV.AR1=426 ;ANOTHER PLACE TO SAVE AR ; 1085 ; T10KL.MCR[7,3] 15:10 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 ; 1086 ;# REDEFINED WHEN USED AS PC FLAG CONTROL (ALL ON DPE9) ; 1087 ; 1088 SETOV/=<90> ;DPE9 ; 1089 ;SET ARITHMETIC OVERFLOW ; 1090 SETFOV/=<91> ;SET FLOATING OVERFLOW ; 1091 SETNDV/=<92> ;SET NO DIVIDE ; 1092 ; 1093 ;--------------------------------------------------------------------- ; 1094 ; 1095 CLRFPD/=<93> ;CLEAR FIRST PART DONE ; 1096 SETFPD/=<94> ;SET FIRST PART DONE ; 1097 HOLD USER/=<95> ;WHEN THIS BIT IS SET IT: ; 1098 ; 1. PREVENTS SETTING USER IOT IN USER MODE ; 1099 ; 2. PREVENTS CLEARING USER IN USER MODE ; 1100 ; 1101 ;--------------------------------------------------------------------- ; 1102 ; 1103 ; <96> ;SPARE ; 1104 TRAP2/=<97> ;SET TRAP 2 ; 1105 TRAP1/=<98> ;SET TRAP 1 ; 1106 ; 1107 ;--------------------------------------------------------------------- ; 1108 ; 1109 LD PCU/=<99> ;LOAD PCU FROM USER ; 1110 ; <100> ;SPARE ; 1111 ; <101> ;SPARE ; 1112 ; 1113 ;--------------------------------------------------------------------- ; 1114 ; 1115 ; <102> ;SPARE ; 1116 ; <103> ;SPARE ; 1117 JFCLFLG/=<104> ;DO A JFCL INSTRUCTION ; 1118 ; 1119 ;--------------------------------------------------------------------- ; 1120 ; 1121 LD FLAGS/=<105> ;LOAD FLAGS FROM DP ; 1122 ; <106> ; 1123 ADFLGS/=<107> ;UPDATE CARRY FLAGS ; 1124 ; T10KL.MCR[7,3] 15:10 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 ; 1125 ;# REDEFINED WHEN USED AS MEMORY CYCLE CONTROL ; 1126 ; 1127 FORCE USER/=<90> ;FORCE USER MODE REFERENCE ; 1128 FORCE EXEC/=<91> ;FORCE EXEC MODE REFERENCE ; 1129 ; (DOES NOT WORK UNDER PXCT) ; 1130 FETCH/=<92> ;THIS IS AN INSTRUCTION FETCH ; 1131 ; 1132 ;--------------------------------------------------------------------- ; 1133 ; 1134 READ CYCLE/=<93> ;SELECT A READ CYCLE ; 1135 WRITE TEST/=<94> ;PAGE FAILE IF NOT WRITTEN ; 1136 WRITE CYCLE/=<95> ;SELECT A MEMORY WRITE CYCLE ; 1137 ; 1138 ;--------------------------------------------------------------------- ; 1139 ; 1140 ; <96> ;SPARE BIT ; 1141 DONT CACHE/=<97> ;DO NOT LOOK IN CACHE ; 1142 PHYSICAL/=<98> ;DO NOT INVOKE PAGING HARDWARE ; 1143 ; 1144 ;--------------------------------------------------------------------- ; 1145 ; 1146 PXCT/=<99:101> ;WHICH PXCT BITS TO LOOK AT ; 1147 CURRENT=0 ; 1148 E1=1 ; 1149 D1=3 ; 1150 BIS-SRC-EA=4 ; 1151 E2=5 ; 1152 BIS-DST-EA=6 ; 1153 D2=7 ; 1154 ; 1155 ;--------------------------------------------------------------------- ; 1156 ; 1157 AREAD/=<102> ;LET DROM SELECT SYSLE TYPE AND VMA LOAD ; 1158 DP FUNC/=<103> ;IGNORE # BITS 0-11 AND USE DP 0-13 INSTEAD ; 1159 ; DP9 MEANS "FORCE PREVIOUS" ; 1160 LDVMA/=<104> ;LOAD THE VMA ; 1161 ; 1162 ;--------------------------------------------------------------------- ; 1163 ; 1164 EXT ADR/=<105> ;PUT VMA BITS 14-17 ONTO BUS ; 1165 WAIT/=<106> ;START A MEMORY OR I/O CYCLE ; 1166 BWRITE/=<107> ;START A MEMORY CYCLE IF DROM ASKS FOR IT ; 1167 ; T10KL.MCR[7,3] 15:10 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 ; 1168 ;THESE BITS ARE USED ONLY TO SETUP DP FOR A DP FUNCTION ; 1169 ; 1170 ; <99> ;PREVIOUS ; 1171 IO CYCLE/=<100> ;THIS IS AN I/O CYCLE ; 1172 WRU CYCLE/=<101> ;WHO ARE YOU CYCLE ; 1173 ; 1174 ;--------------------------------------------------------------------- ; 1175 ; 1176 VECTOR CYCLE/=<102> ;READ INTERRUPT VECTOR ; 1177 IO BYTE/=<103> ;BYTE CYCLE ; 1178 ; <104> ; 1179 ; T10KL.MCR[7,3] 15:10 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 ; 1180 ;# REDEFINED WHEN USED AS PI RIGHT BITS ; 1181 PI.ZER/=<90:92> ;ZEROS ; 1182 PI.IP1/=<93> ;PI 1 IN PROG ; 1183 PI.IP2/=<94> ; 1184 PI.IP3/=<95> ; 1185 PI.IP4/=<96> ; 1186 PI.IP5/=<97> ; 1187 PI.IP6/=<98> ; 1188 PI.IP7/=<99> ; 1189 PI.ON/=<100> ;SYSTEM IS ON ; 1190 PI.CO1/=<101> ;CHAN 1 IS ON ; 1191 PI.CO2/=<102> ; 1192 I.CO3/=<103> ; 1193 I.CO4/=<104> ; 1194 I.CO5/=<105> ; 1195 I.CO6/=<106> ; 1196 I.CO7/=<107> ; 1197 ; 1198 ;# REDEFINED WHEN USED AS WRPI DATA ; 1199 PI.MBZ/=<90:93> ;MUST BE ZERO ; 1200 PI.DIR/=<94> ;DROP INTERRUPT REQUESTS ; 1201 PI.CLR/=<95> ;CLEAR SYSTEM ; 1202 PI.REQ/=<96> ;REQUEST INTERRUPT ; 1203 PI.TCN/=<97> ;TURN CHANNEL ON ; 1204 PI.TCF/=<98> ;TURN CHANNEL OFF ; 1205 PI.TSF/=<99> ;TURN SYSTEM OFF ; 1206 PI.TSN/=<100> ;TURN SYSTEM ON ; 1207 PI.SC1/=<101> ;SELECT CHANNEL 1 ; 1208 PI.SC2/=<102> ; 1209 PI.SC3/=<103> ; 1210 PI.SC4/=<104> ; 1211 PI.SC5/=<105> ; 1212 PI.SC6/=<106> ; 1213 PI.SC7/=<107> ; 1214 ; T10KL.MCR[7,3] 15:10 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 ; 1215 ;# REDEFINED WHEN USED AS AC CONTROL ; 1216 ; 1217 ; 1218 ;THIS FIELD CONTROLS THE INPUT TO A 74LS181 ON DPE6. THE NUMBER ; 1219 ; FIELD HAS THIS FORMAT IN <98:107>: ; 1220 ; ; 1221 ; !-----!-----!-----!-----!-----!-----!-----!-----!-----!-----! ; 1222 ; !CARRY! S8 ! S4 ! S2 ! S1 ! MODE! B8 ! B4 ! B2 ! B1 ! ; 1223 ; ! IN ! FUNCTION ! ! DATA INPUTS ! ; 1224 ; !-----!-----------------------!-----!-----------------------! ; 1225 ; ; 1226 ; 1227 ACALU/=<98:103> ; 1228 B=25 ; 1229 AC+N=62 ; 1230 ACN/=<104:107> ; 1231 ;AC NAMES FOR STRING INSTRUCTIONS ; 1232 SRCLEN=0 ;SOURCE LENGTH ; 1233 SRCP=1 ;SOURCE POINTER ; 1234 DLEN=3 ;DEST LENGTH ; 1235 DSTP=4 ;DEST POINTER ; 1236 MARK=3 ;POINTER TO MARK ; 1237 BIN0=3 ;HIGH WORD OF BINARY ; 1238 BIN1=4 ;LOW WORD OF BINARY ; 1239 ; T10KL.MCR[7,3] 15:10 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 ; 1240 ;# FIELD REDEFINED WHEN USE AS APRID DATA ; 1241 MICROCODE OPTIONS/=<90:98> ; 1242 ;100 - NON-STANDARD MICROCODE ; 1243 ;200 - NO CST AT ALL ; 1244 ;400 - INHIBIT CST UPDATE IS AVAILABLE ; 1245 ;040 - UBABLT INSTRUCTIONS ARE PRESENT ; 1246 ;020 - KI PAGING IS PRESENT ; 1247 ;010 - KL PAGING IS PRESENT ; 1248 MICROCODE OPTION(INHCST)/=<90> ; 1249 .IF/INHCST ; 1250 OPT=1 ;;1251 .IFNOT/INHCST ;;1252 OPT=0 ; 1253 .ENDIF/INHCST ; 1254 MICROCODE OPTION(NOCST)/=<91> ;;1255 .IF/NOCST ;;1256 OPT=1 ; 1257 .IFNOT/NOCST ; 1258 OPT=0 ; 1259 .ENDIF/NOCST ; 1260 MICROCODE OPTION(NONSTD)/=<92> ;;1261 .IF/NONSTD ;;1262 OPT=1 ; 1263 .IFNOT/NONSTD ; 1264 OPT=0 ; 1265 .ENDIF/NONSTD ; 1266 MICROCODE OPTION(UBABLT)/=<93> ; 1267 .IF/UBABLT ; 1268 OPT=1 ;;1269 .IFNOT/UBABLT ;;1270 OPT=0 ; 1271 .ENDIF/UBABLT ; 1272 MICROCODE OPTION(KIPAGE)/=<94> ;;1273 .IF/KIPAGE ;;1274 OPT=1 ; 1275 .IFNOT/KIPAGE ; 1276 OPT=0 ; 1277 .ENDIF/KIPAGE ; 1278 MICROCODE OPTION(KLPAGE)/=<95> ; 1279 .IF/KLPAGE ; 1280 OPT=1 ;;1281 .IFNOT/KLPAGE ;;1282 OPT=0 ; 1283 .ENDIF/KLPAGE ; 1284 ; 1285 MICROCODE VERSION/=<99:107> ; 1286 UCV=130 ; 1287 ; 1288 MICROCODE RELEASE(MAJOR)/=<99:104> ; 1289 UCR=2 ;MAJOR VERSION NUMBER (1,2,3,....) ; 1290 ; 1291 MICROCODE RELEASE(MINOR)/=<105:107> ; 1292 UCR=0 ;MINOR VERSION NUMBER (.1,.2,.3,...) ; 1293 ; T10KL.MCR[7,3] 15:10 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 ; 1294 ;# FIELD REDEFINED WHEN USED AS A HALT CODE ; 1295 ; 1296 HALT/=<90:107> ; 1297 ;CODES 0 TO 77 ARE "NORMAL" HALTS ; 1298 POWER=0 ;POWER UP ; 1299 HALT=1 ;HALT INSTRUCTION ; 1300 CSL=2 ;CONSOLE HALT ; 1301 ;CODES 100 TO 777 ARE SOFTWARE ERRORS ; 1302 IOPF=100 ;I/O PAGE FAIL ; 1303 ILLII=101 ;ILLEGAL INTERRUPT INSTRUCTION ; 1304 ILLINT=102 ;BAD POINTER TO UNIBUS INTERRUPT VECTOR ; 1305 ;CODES 1000 TO 1777 ARE HARDWARE ERRORS ; 1306 BW14=1000 ;ILLEGAL BWRITE FUNCTION (BAD DROM) ; 1307 NICOND 5=1004 ;ILLEGAL NICOND DISPATCH ; 1308 MULERR=1005 ;VALUE COMPUTED FOR 10**21 WAS WRONG ;;1309 .IFNOT/FULL ;;1310 PAGEF=1777 ;PAGE FAIL IN SMALL MICROCODE ; 1311 .ENDIF/FULL ; 1312 ; 1313 ; 1314 ; 1315 ;# FIELD REDEFINED WHEN USED AS FLG BITS ; 1316 ; 1317 FLG.W/=<94> ;W BIT FROM PAGE MAP ; 1318 FLG.PI/=<95> ;PI CYCLE ; 1319 FLG.C/=<96> ;CACHE BIT FROM PAGE MAP ; 1320 FLG.SN/=<97> ;SPECIAL NEGATE IN FDV & DFDV ; 1321 ; 1322 ;RIGHT HALF OF FLG USED TO RECOVER FROM PAGE FAILS ; 1323 ; T10KL.MCR[7,3] 15:10 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 ; 1324 .TOC "DISPATCH ROM DEFINITIONS" ; 1325 ; 1326 ;ALL ON DPEA ; 1327 ; 1328 .DCODE ; 1329 A/=<2:5> ;OPERAND FETCH MODE ; 1330 READ=0 ;READ ; 1331 WRITE=1 ;WRITE ; 1332 DREAD=2 ;DOUBLE READ ; 1333 DBLAC=3 ;DOUBLE AC ; 1334 SHIFT=4 ;SIMPLE SHIFT ; 1335 DSHIFT=5 ;DOUBLE SHIFT ; 1336 FPI=6 ;FLOATING POINT IMMEDIATE ; 1337 FP=7 ;FLOATING POINT ; 1338 RD-PF=10 ;READ, THEN START PREFETCH ; 1339 DFP=11 ;DOUBLE FLOATING POINT ; 1340 IOT=12 ;CHECK FOR IO LEGAL THEN SAME AS I ; 1341 ; 1342 B/=<8:11> ;STORE RESULTS AS ; 1343 SELF=4 ;SELF ; 1344 DBLAC=5 ;DOUBLE AC ; 1345 DBLB=6 ;DOUBLE BOTH ; 1346 AC=15 ;AC ; 1347 MEM=16 ;MEMORY ; 1348 BOTH=17 ;BOTH ; 1349 ; 1350 ;B-FIELD WHEN USED IN FLOATING POINT OPERATIONS ; 1351 ROUND/=<8> ;ROUND THE RESULT ; 1352 MODE/=<9> ;SEPARATE ADD/SUB & MUL/DIV ETC. ; 1353 FL-B/=<10:11> ;STORE RESULTS AS ; 1354 AC=1 ;AC ; 1355 MEM=2 ;MEMORY ; 1356 BOTH=3 ;BOTH ; 1357 ; 1358 J/=<12:23> ;DISPATCH ADDRESS (MUST BE 1400 TO 1777) ; 1359 ; 1360 ACDISP/=<24> ;DISPATCH ON AC FIELD ; 1361 I/=<25> ;IMMEDIATE DISPATCH. DISP/AREAD DOES A DISP/DROM ; 1362 ; IF THIS BIT IS SET. ; 1363 READ/=<26> ;START A READ AT AREAD ; 1364 TEST/=<27> ;START A WRITE TEST AT AREAD ; 1365 COND FUNC/=<28> ;START A MEMORY CYCLE ON BWRITE ; 1366 VMA/=<29>D,1 ;LOAD THE VMA ON AREAD ; 1367 WRITE/=<30> ;START A WRITE ON AREAD ; 1368 .UCODE ; 1369 ; T10KL.MCR[7,3] 15:10 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 ; 1370 .TOC "HOW TO READ MACROS" ; 1371 ; ; 1372 ; 1.0 REGISTER TRANSFER MACROS ; 1373 ; ; 1374 ; MOST MACROS USED IN THE KS10 ARE USED TO OPERATE ON DATA IN (OR FROM/TO) 2901 ; 1375 ; REGISTERS. THE NAMES OF THE 2901 REGISTERS ARE MACRO PARAMETERS AND ARE ; 1376 ; ENCLOSED IN []. A TYPICAL MACRO IS: ; 1377 ; ; 1378 ; [AR]_[AR]+[BR] ; 1379 ; ; 1380 ; THE SYMBOL _ IS PRONOUNCED "GETS". THE ABOVE MACRO WOULD BE READ "THE AR GETS ; 1381 ; THE AR PLUS THE BR". ; 1382 ; ; 1383 ; IF A MACRO DOES NOT HAVE A _ IN IT, THERE IS NO RESULT STORED. THUS, [AR]-[BR] ; 1384 ; JUST COMPARES THE AR AND THE BR AND ALLOWS FOR SKIPS ON THE VARIOUS ALU BITS. ; 1385 ; ; 1386 ; ; 1387 ; ; 1388 ; 1.1 SPECIAL SYMBOLS ; 1389 ; ; 1390 ; THERE ARE A BUNCH OF SYMBOLS USED IN THE MACROS WHICH ARE NOT 2901 REGISTERS. ; 1391 ; THEY ARE DEFINED HERE: ; 1392 ; ; 1393 ; 1. AC -- THE AC SELECTED BY THE CURRENT INSTRUCTION. SEE DPEA ; 1394 ; ; 1395 ; 2. AC[] -- AC+N. AC[1] IS AC+1, AC[2] IS AC+2, ETC. ; 1396 ; ; 1397 ; 3. APR -- THE APR FLAGS FROM DPMA ; 1398 ; ; 1399 ; 4. EA -- THE EFFECTIVE ADDRESS. THAT IS, 0 IN THE LEFT HALF AND THE ; 1400 ; CONTENTS OF THE HR IN THE RIGHT HALF. ; 1401 ; ; 1402 ; 5. EXP -- THE F.P. EXPONENT FROM THE SCAD. [AR]_EXP WILL TAKE THE ; 1403 ; EXPONENT OUT OF THE FE AND PUT IT BACK INTO THE NUMBER IN THE AR. ; 1404 ; ; 1405 ; 6. FE -- THE FE REGISTER ; 1406 ; ; 1407 ; 7. FLAGS -- THE PC FLAGS (FROM DPE9) IN THE LEFT HALF. ; 1408 ; ; 1409 ; 8. Q -- THE Q REGISTER ; 1410 ; ; 1411 ; 9. RAM -- THE RAM FILE, RAM ADDRESS IS IN THE VMA. ; 1412 ; ; 1413 ; 10. P -- THE P FIELD OF THE BYTE POINTER. SAME IDEA AS EXP. ; 1414 ; ; 1415 ; 11. TIME -- THE 1MS. TIMER ; 1416 ; ; 1417 ; 12. VMA -- THE VMA. WHEN READ IT INCLUDES THE VMA FLAGS ; 1418 ; ; 1419 ; 13. XR -- INDEX REGISTER ; 1420 ; T10KL.MCR[7,3] 15:10 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 ; 1421 ; 14. XWD -- HALF WORD. USED TO GENERATE CONSTANTS. FOR EXAMPLE, [AR]_0 XWD ; 1422 ; [40] WOULD LOAD THE CONSTANT 40 (OCTAL) INTO THE AR. ; 1423 ; ; 1424 ; 15. +SIGN AND -SIGN -- SIGN BITS USED TO SIGN SMEAR F.P. NUMBERS. FOR ; 1425 ; EXAMPLE, [AR]_+SIGN WOULD CLEAR AR BITS 0 TO 8. ; 1426 ; ; 1427 ; 16. WORK[] -- LOCATIONS IN THE WORKSPACE USED AS SCRATCH SPACE. FOR ; 1428 ; EXAMPLE, [AR]_WORK[CSTM] WOULD LOAD THE AR WITH THE CST MASK FROM THE ; 1429 ; RAM. CSTM IS A SYMBOL DEFINED IN THE WORK FIELD. ; 1430 ; ; 1431 ; ; 1432 ; ; 1433 ; ; 1434 ; 1.2 LONG ; 1435 ; ; 1436 ; LONG IS USED ON SHIFT OPERATIONS TO INDICATE THAT THE Q REGISTER IS ALSO ; 1437 ; SHIFTED. THIS SAYS NOTHING ABOUT HOW THE SHIFT PATHS ARE CONNECTED UP. ; 1438 ; ; 1439 ; ; 1440 ; ; 1441 ; 2.0 MEMORY MACROS ; 1442 ; ; 1443 ; MEMORY IS INDICATED BY THE SYMBOL "MEM". WHEN WE ARE WAITING FOR DATA FROM ; 1444 ; MEMORY THE "MEM READ" MACRO IS USED. WHEN WE ARE SENDING DATA TO MEMORY, THE ; 1445 ; "MEM WRITE" MACRO IS USED. EXAMPLE, ; 1446 ; MEM READ, ;WAIT FOR MEMORY ; 1447 ; [AR]_MEM ;LOAD DATA INTO AR ; 1448 ; VMA_ IS USED THE LOAD THE VMA. THUS, VMA_[PC] LOADS THE VMA FROM THE PC. ; 1449 ; ; 1450 ; ; 1451 ; ; 1452 ; 3.0 TIME CONTROL ; 1453 ; ; 1454 ; THERE ARE 2 SETS OF MACROS USED FOR TIME CONTROL. THE FIRST, SELECTS THE RAM ; 1455 ; ADDRESS TO SPEED UP THE NEXT INSTRUCTION. THESE MACROS ARE AC, AC[], XR, VMA, ; 1456 ; WORK[]. THE SECOND, SETS THE TIME FIELD. THESE ARE 2T, 3T, 4T, AND 5T TO ; 1457 ; SELECT 2, 3, 4, OR 5 TICKS. ; 1458 ; ; 1459 ; ; 1460 ; ; 1461 ; 4.0 SCAD MACROS ; 1462 ; ; 1463 ; THE SCAD MACROS LOOK LIKE THE 2901 MACROS EXECPT NO [] ARE REQUIRED. THERE ARE ; 1464 ; ONLY A FEW SYMBOLS USED. ; 1465 ; ; 1466 ; 1. FE -- THE FE REGISTER ; 1467 ; ; 1468 ; 2. SC -- THE SC REGISTER ; 1469 ; T10KL.MCR[7,3] 15:10 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 ; 1470 ; 3. EXP -- THE EXPONENT FROM A F.P. NUMBER. FOR EXAMPLE FE_EXP LOADS THE ; 1471 ; FE FROM DP BITS 1-8. ; 1472 ; ; 1473 ; 4. SHIFT -- THE SHIFT COUNT FROM SHIFT INSTRUCTIONS. THAT IS DP BITS 18 ; 1474 ; AND 28-35. ; 1475 ; ; 1476 ; 5. S# -- THE SMALL NUMBER. THE 10 BIT MAGIC NUMBER INPUT TO THE SCADA ; 1477 ; MIXER. ; 1478 ; ; 1479 ; ; 1480 ; ; 1481 ; ; 1482 ; 5.0 CONTROL MACROS ; 1483 ; ; 1484 ; ALL CONTROL MACROS LOOK LIKE ENGLISH COMMANDS. SOME EXAMPLES, ; 1485 ; HOLD LEFT ;DO NOT CLOCK LEFT HALF OF DP ; 1486 ; SET APR ENABLES ;LOAD APR ENABLES FROM DP ; 1487 ; SET NO DIVIDE ;SET NO DIVIDE PC FLAG ; 1488 ; ; 1489 ; ; 1490 ; ; 1491 ; 6.0 SKIPS ; 1492 ; ; 1493 ; ALL SKIPS CAUSE THE NEXT MICRO INSTRUCTION TO COME FROM THE ODD WORD OF AN ; 1494 ; EVEN/ODD PAIR. THE MACROS HAVE THE FORMAT OF SKIP COND. THEY SKIP IF CONDITION ; 1495 ; IS TRUE. SOME EXAMPLES, ; 1496 ; SKIP AD.EQ.0 ;SKIP IF ADDER OUTPUT IS ZERO ; 1497 ; SKIP IRPT ;SKIP IF INTERRUPT IS PENDING ; 1498 ; ; 1499 ; ; 1500 ; ; 1501 ; 7.0 DISPATCH MACROS ; 1502 ; ; 1503 ; DISPATCH MACROS CAUSE THE MACHINE TO GO TO ONE OF MANY PLACES. IN MOST CASES ; 1504 ; THEY HAVE THE WORD "DISP" IN THE NAME OF THE MACRO. FOR EXAMPLE, MUL DISP, BYTE ; 1505 ; DISP. ; 1506 ; ; 1507 ; ; 1508 ; ; 1509 ; 8.0 SUPER MACROS ; 1510 ; ; 1511 ; THERE ARE PLACES WHERE ONE MICRO INSTRUCTION IS USED IN MANY PLACES. FOR ; 1512 ; EXAMPLE, MANY PLACES DETECT ILLEGAL OPERATIONS AND WANT TO GENERATE A TRAP TO ; 1513 ; THE MONITOR. WE COULD WRITE ; 1514 ; J/UUO ; 1515 ; BUT THIS WASTES A MICRO STEP DOING A USELESS JUMP. INSTEAD WE WRITE, ; 1516 ; UUO ; 1517 ; THIS MACRO IS THE FIRST STEP OF THE UUO ROUTINE AND JUMPS TO THE SECOND ; 1518 ; INSTRUCTION. WE WRITE THE EXPANSION OF THE UUO MACRO AS THE FIRST INSTRUCTION ; 1519 ; OF THE UUO ROUTINE SO THAT THE READER CAN SEE WHAT IT DOES. SOME EXAMPLES OF ; 1520 ; T10KL.MCR[7,3] 15:10 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 ; 1521 ; SUPER MACROS ARE: ; 1522 ; PAGE FAIL TRAP ;GENERATE A PAGE FAIL TRAP ; 1523 ; DONE ;THIS INSTRUCTION IS NOW COMPLETE ; 1524 ; ; USED WITH A SKIP OR DISP WHERE ; 1525 ; ; SOME PATHS ARE NOP'S ; 1526 ; HALT [] ;JUMP TO HALT LOOP. ARGUMENT IS A ; 1527 ; ; CODE ; 1528 ; T10KL.MCR[7,3] 15:10 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 ; 1529 .TOC "MACROS -- DATA PATH CHIP -- GENERAL" ; 1530 ; 1531 .NOT.[] "AD/.NOT.A,A/@1" ; 1532 []+[] "AD/A+B,A/@1,B/@2" ; 1533 []-[] "AD/A-B-.25,A/@1,B/@2,ADD .25" ; 1534 []-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@1,ADD .25" ; 1535 [].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1" ; 1536 [].AND.Q "AD/A.AND.Q,A/@1,DEST/PASS" ; 1537 [].AND.[] "AD/A.AND.B,A/@2,B/@1,DEST/PASS" ; 1538 [].AND.NOT.[] "AD/.NOT.A.AND.B,A/@2,B/@1,DEST/PASS" ; 1539 [].OR.[] "AD/A.OR.B,A/@2,B/@1,DEST/PASS" ; 1540 [].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,A/@1" ; 1541 [].XOR.[] "AD/A.XOR.B,A/@2,B/@1,DEST/PASS" ; 1542 []_#-[] "AD/D-A-.25,DEST/AD,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1543 []_# "AD/D,DBUS/DBM,DBM/#,DEST/AD,B/@1" ; 1544 []_-1 "AD/-A-.25,A/ONE,DEST/AD,B/@1,ADD .25" ; 1545 []_-2 "AD/-A-.25,DEST/AD*2,A/ONE,B/@1,ADD .25" ; 1546 []_-Q "AD/-Q-.25,DEST/AD,B/@1,ADD .25" ; 1547 []_-Q*2 "AD/-Q-.25,DEST/AD*2,B/@1,ADD .25" ; 1548 []_-Q*.5 "AD/-Q-.25,DEST/AD*.5,B/@1,ADD .25" ; 1549 []_-[] "AD/-A-.25,A/@2,DEST/AD,B/@1,ADD .25" ; 1550 []_-[]-.25 "AD/-A-.25,A/@2,DEST/AD,B/@1" ; 1551 []_-[]*2 "AD/-A-.25,A/@2,DEST/AD*2,B/@1,ADD .25" ; 1552 []_.NOT.AC "AD/.NOT.D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1553 []_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1554 []_.NOT.Q "AD/.NOT.Q,DEST/AD,B/@1" ; 1555 []_.NOT.[] "AD/.NOT.A,A/@2,DEST/AD,B/@1" ; 1556 []_0 "AD/ZERO,DEST/AD,B/@1" ; 1557 []_0*.5 LONG "AD/ZERO,DEST/Q_Q*.5,B/@1" ; 1558 []_0 XWD [] "AD/47,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/DA,A/MASK" ; 1559 []_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1560 []_-AC "AD/-D-.25,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1561 []_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1562 []_AC*.5 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*.5,B/@1,DT/3T" ; 1563 []_AC*.5 LONG "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_Q*.5,B/@1,DT/3T" ; 1564 []_AC*2 "AD/D,DBUS/RAM,RAMADR/AC#,DEST/AD*2,B/@1,DT/3T" ; 1565 []_AC+1 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1" ; 1566 []_AC+1000001 "AD/D+A,DBUS/RAM,RAMADR/AC#,A/XWD1,DEST/AD,B/@1" ; 1567 []_AC+[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,DT/3T" ; 1568 []_AC-1 "AD/D-A-.25,DBUS/RAM,RAMADR/AC#,A/ONE,DEST/AD,B/@1,ADD .25" ; 1569 []_AC-[] "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1570 []_AC-[]-.25 "AD/D-A-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1571 []_AC[]-[] "AD/D-A-.25,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,ADD .25,DT/3T" ; 1572 []_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" ; 1573 []_AC[].AND.[] "AD/D.AND.A,A/@3,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,DT/3T" ; 1574 []_AC.AND.MASK "AD/D.AND.A,A/MASK,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,AD PARITY" ; 1575 []_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1576 []_AC[]*2 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*2,B/@1,AD PARITY,DT/3T" ; 1577 []_AC[]*.5 "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@2,DEST/AD*.5,B/@1,AD PARITY,DT/3T" ; 1578 []_APR "AD/D,DBUS/DBM,DBM/APR FLAGS,DEST/AD,B/@1,DT/3T" ; 1579 []_CURRENT AC [] "AD/D,DBUS/RAM,RAMADR/#,ACALU/B,ACN/@2,DEST/AD,B/@1,AD PARITY,DT/3T" ; 1580 []_EA FROM [] "AD/57,RSRC/0A,A/@2,DEST/AD,B/@1" ; 1581 ; T10KL.MCR[7,3] 15:10 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 ; 1582 []_EA "AD/57,RSRC/0A,A/HR,DEST/AD,B/@1" ; 1583 []_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" ; 1584 []_FE "AD/D,DEST/AD*.5,B/@1,DBUS/DBM,DBM/DP,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE,BYTE/BYTE5" ; 1585 []_FLAGS "AD/D.AND.A,DBUS/PC FLAGS,A/MASK,DEST/AD,B/@1,RSRC/0Q" ; 1586 []_P "AD/D,DEST/A,A/@1,B/@1,DBUS/DBM,DBM/DP,BYTE/BYTE1,SCAD/A+B,SCADA/S#,S#/0,SCADB/FE" ; 1587 []_PC WITH FLAGS "AD/D,DBUS/PC FLAGS,RSRC/0A,A/PC,DEST/AD,B/@1" ; 1588 []_Q "AD/Q,DEST/AD,B/@1" ; 1589 []_Q*.5 "AD/Q,DEST/AD*.5,B/@1" ; 1590 []_Q*2 "AD/Q,DEST/AD*2,B/@1" ; 1591 []_Q*2 LONG "AD/Q,DEST/Q_Q*2,B/@1" ; 1592 []_Q+1 "AD/A+Q,A/ONE,DEST/AD,B/@1" ; 1593 []_RAM "AD/D,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,AD PARITY" ; 1594 []_TIME "AD/44,RSRC/DA,A/MASK,DBUS/DBM,DBM/EXP,DEST/AD,B/@1" ; 1595 []_VMA "AD/D,DEST/AD,B/@1,DBUS/DBM,DBM/VMA" ; 1596 []_XR "AD/D,DBUS/RAM,RAMADR/XR#,DEST/AD,B/@1" ; 1597 []_[] "AD/A,A/@2,DEST/AD,B/@1" ; 1598 []_[] SWAP "AD/D,DBUS/DBM,DBM/DP SWAP,DEST/A,A/@2,B/@1" ; 1599 []_[] XWD 0 "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,#/@2,RSRC/D0,A/MASK" ; 1600 []_[]*.5 "AD/A,A/@2,DEST/AD*.5,B/@1" ; 1601 []_[]*.5 LONG "AD/A,A/@2,DEST/Q_Q*.5,B/@1" ; 1602 []_[]*2 "AD/A,A/@2,DEST/AD*2,B/@1" ; 1603 []_[]*2 LONG "AD/A,A/@2,DEST/Q_Q*2,B/@1" ; 1604 []_[]*4 "AD/A+B,A/@2,B/@1,DEST/AD*2" ; 1605 []_[]+# "AD/D+A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1606 []_[]+.25 "AD/0+A,A/@2,DEST/AD,B/@1, ADD .25" ; 1607 []_[]+0 "AD/0+A,A/@2,DEST/AD,B/@1" ; 1608 []_[]+1 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD" ; 1609 []_[]+1000001 "AD/D+A,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1" ; 1610 []_[]+AC "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1" ; 1611 []_[]+AC[] "AD/D+A,A/@2,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@3,DEST/AD,B/@1,DT/3T" ; 1612 []_[]+Q "AD/A+Q,A/@2,DEST/AD,B/@1" ; 1613 []_[]+RAM "AD/D+A,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1" ; 1614 []_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@2,DEST/AD,B/@1,HOLD LEFT" ; 1615 []_[]+[] "AD/A+B,A/@3,B/@1,B/@2,DEST/AD" ; 1616 []_[]+[]+.25 "AD/A+B,A/@3,B/@1,B/@2,DEST/AD, ADD .25" ; 1617 []_[]-# "AD/A-D-.25,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1, ADD .25" ; 1618 []_[]-1 "AD/B-A-.25,B/@1,A/ONE,DEST/AD,ADD .25" ; 1619 []_[]-1000001 "AD/A-D-.25,A/@2,DBUS/DBM,DBM/#,#/1,DEST/AD,B/@1,ADD .25" ; 1620 []_[]-AC "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/AC#,DEST/AD,B/@1,ADD .25" ; 1621 []_[]-RAM "AD/A-D-.25,A/@2,DBUS/RAM,RAMADR/RAM,DEST/AD,B/@1,ADD .25" ; 1622 []_[]-[] "AD/B-A-.25,B/@1,B/@2,A/@3,DEST/AD,ADD .25" ; 1623 []_[]-[] REV "AD/A-B-.25,B/@1,B/@3,A/@2,DEST/AD,ADD .25" ; 1624 []_[].AND.# "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1625 []_[].AND.# CLR LH "AD/ZERO,RSRC/DA,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1626 []_[].AND.# CLR RH "AD/D.AND.A,RSRC/0Q,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1627 []_(AC[].AND.[])*.5 "AD/D.AND.A,DEST/AD*.5,A/@3,B/@1,RAMADR/AC*#,DBUS/RAM,ACALU/AC+N,ACN/@2" ; 1628 []_(Q+1)*.5 "AD/A+Q,A/ONE,DEST/AD*.5,B/@1" ; 1629 []_(#-[])*2 "AD/D-A-.25,DEST/AD*2,A/@2,B/@1,DBUS/DBM,DBM/#,ADD .25" ; 1630 []_(-[])*.5 "AD/-A-.25,A/@2,DEST/AD*.5,B/@1,ADD .25" ; 1631 []_(-[]-.25)*.5 LONG "AD/-A-.25,A/@2,DEST/Q_Q*.5,B/@1" ; 1632 []_(-[]-.25)*2 LONG "AD/-A-.25,A/@2,DEST/Q_Q*2,B/@1" ; 1633 ; T10KL.MCR[7,3] 15:10 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 ; 1634 []_([].AND.#)*.5 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1635 []_([].AND.#)*2 "AD/D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1636 []_([].AND.NOT.#)*.5 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1637 []_([].AND.NOT.#)*2 "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1638 []_([].AND.[])*.5 "AD/A.AND.B,DEST/AD*.5,A/@3,B/@1,B/@2" ; 1639 []_([].AND.[])*2 "AD/A.AND.B,DEST/AD*2,A/@3,B/@1,B/@2" ; 1640 []_([].OR.#)*.5 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*.5,A/@2,B/@1" ; 1641 []_([].OR.#)*2 "AD/D.OR.A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1642 []_([]+#)*2 "AD/D+A,DBUS/DBM,DBM/#,DEST/AD*2,A/@2,B/@1" ; 1643 []_([]+1)*2 "AD/A+B,A/ONE,B/@1,B/@2,DEST/AD*2" ; 1644 []_([]+[])*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5" ; 1645 []_([]+[])*2 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*2" ; 1646 []_([]-[])*.5 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1647 []_([]-[])*2 LONG "AD/B-A-.25,A/@3,B/@1,B/@2,DEST/Q_Q*2, ADD .25" ; 1648 []_([]+[]+.25)*.5 LONG "AD/A+B,A/@3,B/@1,B/@2,DEST/Q_Q*.5, ADD .25" ; 1649 []_[].AND.AC "AD/D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1650 []_[].AND.NOT.# "AD/.NOT.D.AND.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1651 []_[].AND.NOT.[] "AD/.NOT.A.AND.B,DEST/AD,B/@1,B/@2,A/@3" ; 1652 []_[].AND.NOT.AC "AD/.NOT.D.AND.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1653 []_[].AND.Q "AD/A.AND.Q,A/@2,DEST/AD,B/@1" ; 1654 []_[].AND.[] "AD/A.AND.B,A/@3,B/@1,B/@2,DEST/AD" ; 1655 []_[].EQV.AC "AD/D.EQV.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1656 []_[].EQV.Q "AD/A.EQV.Q,A/@2,DEST/AD,B/@1" ; 1657 []_[].OR.# "AD/D.OR.A,DBUS/DBM,DBM/#,A/@2,DEST/AD,B/@1" ; 1658 []_[].OR.AC "AD/D.OR.A,DBUS/RAM,RAMADR/AC#,A/@2,DEST/AD,B/@1" ; 1659 []_[].OR.FLAGS "AD/D.OR.A,DBUS/PC FLAGS,RSRC/0A,A/@1,DEST/AD,B/@1" ; 1660 []_[].OR.[] "AD/A.OR.B,A/@3,B/@2,B/@1,DEST/AD" ; 1661 []_[].XOR.# "AD/D.XOR.A,DBUS/DBM,DBM/#,DEST/AD,A/@2,B/@1" ; 1662 []_[].XOR.AC "AD/D.XOR.A,DBUS/RAM,RAMADR/AC#,A/@1,DEST/AD,B/@2" ; 1663 []_[].XOR.[] "AD/A.XOR.B,A/@3,B/@1,B/@2,DEST/AD" ; 1664 ; 1665 [] LEFT_0 "AD/57,RSRC/0B,DEST/AD,B/@1" ; 1666 [] RIGHT_0 "AD/53,RSRC/D0,DEST/AD,B/@1" ; 1667 [] LEFT_-1 "AD/54,RSRC/0B,DEST/AD,A/MASK,B/@1" ; 1668 [] RIGHT_-1 "AD/53,RSRC/0A,DEST/AD,A/MASK,B/@1" ; 1669 ; 1670 ; 1671 []_+SIGN "[@1]_[@1].AND.#, #/777, HOLD RIGHT" ; 1672 []_-SIGN "[@1]_[@1].OR.#, #/777000, HOLD RIGHT" ; 1673 ;THE FOLLOWING 2 MACROS ARE USED IN DOUBLE FLOATING STUFF ; 1674 ; THEY ASSUME THAT THE OPERAND HAS BEEN SHIFTED RIGHT 1 PLACE. ; 1675 ; THEY SHIFT 1 MORE PLACE ; 1676 []_+SIGN*.5 "AD/.NOT.D.AND.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1677 []_-SIGN*.5 "AD/D.OR.A,A/@1,B/@1,DEST/AD*.5,DBUS/DBM,DBM/#,#/777400,RSRC/0A" ; 1678 ; T10KL.MCR[7,3] 15:10 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 ; 1679 .TOC "MACROS -- DATA PATH CHIP -- Q" ; 1680 ; 1681 Q-[] "AD/Q-A-.25,A/@1,ADD .25" ; 1682 Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/PASS" ; 1683 Q_[] "AD/A,DEST/Q_AD,A/@1" ; 1684 Q_[]-[] "AD/A-B-.25,A/@1,B/@2,DEST/Q_AD,ADD .25" ; 1685 Q_[]+[] "AD/A+B,A/@1,B/@2,DEST/Q_AD" ; 1686 Q_[].AND.[] "AD/A.AND.B,A/@1,B/@2,DEST/Q_AD" ; 1687 Q_.NOT.AC[] "AD/.NOT.D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,DT/3T" ; 1688 Q_-[] "AD/-A-.25,DEST/Q_AD,A/@1, ADD .25" ; 1689 Q_-1 "Q_-[ONE]" ; 1690 Q_-AC[] "AD/-D-.25,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,ADD .25,DT/3T" ; 1691 Q_-Q "AD/-Q-.25,ADD .25,DEST/Q_AD" ; 1692 Q_AC "AD/D,DBUS/RAM,RAMADR/AC#,DEST/Q_AD,CHK PARITY" ; 1693 Q_AC[] "AD/D,DBUS/RAM,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DEST/Q_AD,CHK PARITY,DT/3T" ; 1694 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" ; 1695 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" ; 1696 Q_.NOT.Q "AD/.NOT.Q,DEST/Q_AD" ; 1697 Q_# "AD/D,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1698 Q_0 "AD/ZERO,DEST/Q_AD" ; 1699 Q_0 XWD [] "AD/47,DEST/Q_AD,DBM/#,DBUS/DBM,#/@1,RSRC/DA,A/MASK" ; 1700 Q_Q+.25 "AD/0+Q,DEST/Q_AD,ADD .25" ; 1701 Q_Q+1 "AD/A+Q,A/ONE,DEST/Q_AD" ; 1702 Q_Q-1 "AD/Q-A-.25,A/ONE,DEST/Q_AD, ADD .25" ; 1703 Q_Q+AC "AD/D+Q,DBUS/RAM,RAMADR/AC#,DEST/Q_AD" ; 1704 Q_Q*.5 "[MAG]_[MASK]*.5 LONG, SHSTYLE/NORM" ; 1705 Q_Q*2 "[MASK]_[MAG]*2 LONG, SHSTYLE/NORM" ; 1706 Q_Q.OR.# "AD/D.OR.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1707 Q_Q.AND.# "AD/D.AND.Q,DBUS/DBM,DBM/#,DEST/Q_AD" ; 1708 Q_Q.AND.[] "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1709 Q_Q.AND.NOT.[] "AD/.NOT.A.AND.Q,A/@1,DEST/Q_AD" ; 1710 Q_Q+[] "AD/A+Q,A/@1,DEST/Q_AD" ; 1711 Q_[].AND.Q "AD/A.AND.Q,A/@1,DEST/Q_AD" ; 1712 Q_[].OR.Q "AD/A.OR.Q,A/@1,DEST/Q_AD" ; 1713 ; T10KL.MCR[7,3] 15:10 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. ; 1714 .TOC "MACROS -- DATA PATH CHIP -- MISC." ; 1715 ; 1716 CLEAR []0 "AD/D.AND.A,A/@1,DBUS/DBM,DBM/#,#/377777,DEST/AD,B/@1,HOLD RIGHT" ; 1717 CLEAR ARX0 "CLEAR [ARX]0" ; 1718 ; 1719 ;CYCLE CHIP REGISTERS THRU AD SO WE CAN TEST BITS ; 1720 READ XR "AD/D,DBUS/RAM,RAMADR/XR#" ; 1721 READ [] "AD/B,B/@1" ; 1722 READ Q "AD/Q" ; 1723 ; 1724 ;TEST BITS IN REGISTERS (SKIP IF ZERO) ; 1725 TR [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADR.EQ.0,DT/3T" ; 1726 TL [] "AD/D.AND.A,DBUS/DBM,DBM/#,A/@1,SKIP ADL.EQ.0,DT/3T" ; 1727 ; 1728 ; 1729 ;CAUSE BITS -2 AND -1 TO MATCH BIT 0. ; 1730 FIX [] SIGN "AD/D,DEST/A,A/@1,B/@1,DBUS/DP,HOLD RIGHT" ; 1731 ; 1732 ;GENERATE A MASK IN Q AND ZERO A 2901 REGISTER ; 1733 GEN MSK [] "AD/ZERO,DEST/Q_Q*2,B/@1,ONES" ; 1734 ; T10KL.MCR[7,3] 15:10 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 ; 1735 .TOC "MACROS -- STORE IN AC" ; 1736 ; 1737 FM WRITE "FMWRITE/1" ; 1738 ; 1739 AC[]_[] VIA AD "AD/B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,CHK PARITY" ; 1740 AC_[] VIA AD "AD/B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE,CHK PARITY" ; 1741 AC[]_[] "AD/A,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1742 AC[]_[] TEST "AD/D,DBUS/DP,DEST/A,B/@2,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1743 AC[]_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1744 AC[]_[]*2 "AD/A+B,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1745 AC_[] "AD/A,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1746 AC_[] TEST "AD/D,DBUS/DP,DEST/A,B/@1,A/@1,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1747 AC_[]+1 "AD/A+B,DEST/PASS,A/ONE,B/@1,RAMADR/AC#, FM WRITE" ; 1748 AC_[]+Q "AD/A+Q,DEST/PASS,A/@1,B/@1,RAMADR/AC#, FM WRITE" ; 1749 AC[]_[]+Q "AD/A+Q,DEST/PASS,A/@2,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1, FM WRITE" ; 1750 AC[]_[]-[] "AD/A-B-.25,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1751 AC[]_[]+[] "AD/A+B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1752 AC_[]+[] "AD/A+B,DEST/PASS,B/@2,A/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1753 AC[]_[].AND.[] "AD/A.AND.B,DEST/PASS,B/@3,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1754 AC[]_Q.AND.[] "AD/A.AND.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1755 AC[]_[].EQV.Q "AD/A.EQV.Q,DEST/PASS,A/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1756 AC[]_-[] "AD/-B-.25,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1757 AC_-[] "AD/-A-.25,DEST/PASS,A/@1,RAMADR/AC#,DBUS/DP, ADD .25,FM WRITE" ; 1758 AC_[].OR.[] "AD/A.OR.B,A/@1,B/@2,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1759 AC[]_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@2,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1760 AC_.NOT.[] "AD/.NOT.B,DEST/PASS,B/@1,RAMADR/AC#,DBUS/DP,FM WRITE" ; 1761 AC[]_-Q "AD/-Q-.25,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE,ADD .25" ; 1762 AC_Q "AD/Q,RAMADR/AC#,DBUS/DP, FM WRITE" ; 1763 AC[]_0 "AD/ZERO,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1764 AC[]_1 "AD/B,DEST/PASS,B/ONE,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP,FM WRITE" ; 1765 AC[]_Q "AD/Q,RAMADR/AC*#,ACALU/AC+N,ACN/@1,DBUS/DP, FM WRITE" ; 1766 ; T10KL.MCR[7,3] 15:10 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 ; 1767 .TOC "MACROS -- MICROCODE WORK SPACE" ; 1768 ; 1769 ; 1770 WORK[]_Q "AD/Q,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1771 Q_WORK[] "AD/D,DEST/Q_AD,RAMADR/#,DBUS/RAM,WORK/@1,DT/3T" ; 1772 WORK[]_0 "AD/ZERO,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE" ; 1773 WORK[]_1 "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/ONE,FM WRITE" ; 1774 WORK[]_[] "AD/B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1775 WORK[]_[] CLR LH "AD/47,RSRC/AB,DEST/PASS,RAMADR/#,WORK/@1,B/@2,A/MASK,FM WRITE" ; 1776 WORK[]_[]-1 "AD/A-B-.25,A/@2,B/ONE,DEST/PASS,RAMADR/#,WORK/@1,FM WRITE, ADD .25" ; 1777 WORK[]_.NOT.[] "AD/.NOT.B,DEST/PASS,RAMADR/#,WORK/@1,B/@2,FM WRITE" ; 1778 WORK[]_[].AND.[] "AD/A.AND.B,DEST/PASS,RAMADR/#,WORK/@1,A/@2,B/@3,FM WRITE" ; 1779 [].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1780 [].AND.WORK[] "AD/D.AND.A,A/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1781 []_[]+WORK[] "AD/D+A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1782 []_[].AND.WORK[] "AD/D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1783 []_[].AND.NOT.WORK[] "AD/.NOT.D.AND.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1784 []_[].OR.WORK[] "AD/D.OR.A,A/@2,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,DT/3T" ; 1785 []_WORK[] "AD/D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1786 []_.NOT.WORK[] "AD/.NOT.D,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1787 []_-WORK[] "AD/-D-.25,ADD .25,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1788 []_WORK[]+1 "AD/D+A,A/ONE,DEST/AD,B/@1,DBUS/RAM,RAMADR/#,WORK/@2,DT/3T" ; 1789 Q_Q-WORK[] "AD/Q-D-.25,DEST/Q_AD,DBUS/RAM,RAMADR/#,WORK/@1,ADD .25,DT/3T" ; 1790 []_[]-WORK[] "AD/A-D-.25,DEST/AD,A/@2,B/@1,DBUS/RAM,RAMADR/#,WORK/@3,ADD .25,DT/3T" ; 1791 ; 1792 RAM_[] "AD/B,DEST/PASS,RAMADR/RAM,B/@1,FM WRITE" ; 1793 ; T10KL.MCR[7,3] 15:10 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 ; 1794 .TOC "MACROS -- MEMORY CONTROL" ; 1795 ; 1796 MEM CYCLE "MEM/1" ; 1797 ; 1798 ;THE FOLLOWING MACROS CONTROL MEMORY ADDRESS ; 1799 LOAD VMA "MEM CYCLE,LDVMA/1" ; 1800 FORCE EXEC "FORCE EXEC/1" ; 1801 VMA PHYSICAL "PHYSICAL/1,FORCE EXEC/1,FORCE USER/0,EXT ADR/1,LOAD VMA" ; 1802 VMA PHYSICAL WRITE "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,WRITE CYCLE/1,WRITE TEST/0" ; 1803 VMA PHYSICAL READ "LOAD VMA,VMA PHYSICAL,WAIT/1,MEM/1,READ CYCLE/1,WRITE TEST/0" ; 1804 VMA EXTENDED "EXT ADR/1" ; 1805 ; 1806 PXCT EA "PXCT/E1" ; 1807 PXCT DATA "PXCT/D1" ; 1808 PXCT BLT DEST "PXCT/D1" ; 1809 PXCT BYTE PTR EA "PXCT/E2" ; 1810 PXCT BYTE DATA "PXCT/D2" ; 1811 PXCT STACK WORD "PXCT/D2" ; 1812 PXCT BLT SRC "PXCT/D2" ; 1813 PXCT EXTEND EA "PXCT/E2" ; 1814 ; 1815 ;THE FOLLOWING MACROS GET MEMORY CYCLES STARTED ; 1816 WRITE TEST "WRITE TEST/1,WAIT/1" ; 1817 START READ "MEM CYCLE,READ CYCLE/1,WAIT/1" ; 1818 START WRITE "MEM CYCLE,WRITE TEST,WRITE CYCLE/1,WAIT/1" ; 1819 START NO TEST WRITE "MEM CYCLE,WRITE CYCLE/1,WAIT/1" ; 1820 FETCH "START READ,FETCH/1,PXCT/CURRENT,WAIT/1" ; 1821 ; 1822 ;THE FOLLOWING MACROS COMPLETE MEMORY CYCLES ; 1823 MEM WAIT "MEM CYCLE,WAIT/1" ; 1824 MEM READ "MEM WAIT,DBUS/DBM,DBM/MEM" ; 1825 MEM WRITE "MEM WAIT,DT/3T" ; 1826 SPEC MEM READ "SPEC/WAIT,DBUS/DBM,DBM/MEM" ; 1827 SPEC MEM WRITE "SPEC/WAIT,DT/3T" ; 1828 ; 1829 ; 1830 ;THINGS WHICH WRITE MEMORY ; 1831 MEM_[] "AD/B,DEST/PASS,B/@1,DBUS/DP,RAMADR/VMA,CHK PARITY" ; 1832 MEM_Q "AD/Q,DBUS/DP,RAMADR/VMA" ; 1833 ; 1834 ; 1835 ;THINGS WHICH READ MEMORY ; 1836 []_IO DATA "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1" ; 1837 []_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1838 []_MEM THEN FETCH "AD/D,DBUS/DBM,RAMADR/VMA,DEST/A,A/PC,B/@1,CHK PARITY, FETCH, LOAD VMA" ; 1839 []_MEM*.5 "AD/D,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1840 []_MEM.AND.MASK "AD/D.AND.A,A/MASK,DBUS/DBM,RAMADR/VMA,DEST/AD,B/@1,CHK PARITY" ; 1841 []_(MEM.AND.[])*.5 "AD/D.AND.A,A/@2,DBUS/DBM,RAMADR/VMA,DEST/AD*.5,B/@1,CHK PARITY" ; 1842 Q_MEM "AD/D,DBUS/DBM,RAMADR/VMA,DEST/Q_AD,CHK PARITY" ; 1843 ; T10KL.MCR[7,3] 15:10 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 ; 1844 .TOC "MACROS -- VMA" ; 1845 ; 1846 VMA_[] "AD/A,A/@1,DEST/PASS,LOAD VMA" ; 1847 VMA_[] WITH FLAGS "AD/A,A/@1,DEST/PASS,LOAD VMA,WAIT/1, MEM/1, EXT ADR/1, DP FUNC/1, DT/3T" ; 1848 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" ; 1849 VMA_[]+1 "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA" ; 1850 VMA_[]-1 "AD/B-A-.25,A/ONE,B/@1,ADD .25,HOLD LEFT,LOAD VMA" ; 1851 VMA_[]+XR "AD/D+A,DBUS/RAM,RAMADR/XR#,A/@1,LOAD VMA" ; 1852 VMA_[]+[] "AD/A+B,DEST/PASS,A/@1,B/@2,LOAD VMA" ; 1853 ; 1854 NEXT [] PHYSICAL WRITE "AD/A+B,A/ONE,B/@1,DEST/AD,HOLD LEFT,LOAD VMA, VMA PHYSICAL, START WRITE" ; 1855 ; 1856 ;MACROS TO LOAD A 2901 REGISTER WITH VMA FLAG BITS ; 1857 []_VMA FLAGS "AD/45,DEST/AD,B/@1,DBM/#,DBUS/DBM,RSRC/D0,A/MASK" ; 1858 []_VMA IO READ "[@1]_VMA FLAGS,READ CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1859 []_VMA IO WRITE "[@1]_VMA FLAGS,WRITE CYCLE/1,IO CYCLE/1,WRITE TEST/0, PHYSICAL/1, FORCE EXEC/1, FORCE USER/0" ; 1860 ; T10KL.MCR[7,3] 15:10 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 ; 1861 .TOC "MACROS -- TIME CONTROL" ; 1862 ; 1863 AC "RAMADR/AC#" ; 1864 AC[] "RAMADR/AC*#,ACALU/AC+N,ACN/@1" ; 1865 XR "RAMADR/XR#" ; 1866 VMA "RAMADR/VMA" ; 1867 WORK[] "RAMADR/#, WORK/@1" ; 1868 ; 1869 2T "T/2T" ; 1870 3T "T/3T" ; 1871 4T "T/4T" ; 1872 5T "T/5T" ; 1873 ; T10KL.MCR[7,3] 15:10 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 ; 1874 .TOC "MACROS -- SCAD, SC, FE LOGIC" ; 1875 ; 1876 LOAD SC "LOADSC/1" ; 1877 LOAD FE "LOADFE/1" ; 1878 STEP SC "SCAD/A-1,SCADA/SC,LOAD SC,SKIP/SC" ; 1879 SHIFT "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1, LOAD FE, MULTI SHIFT/1" ; 1880 ; 1881 SC_SC-1 "SCAD/A-1,SCADA/SC,LOAD SC" ; 1882 SC_SHIFT "SCAD/A+B,SCADA/S#,S#/0,SCADB/SHIFT,LOAD SC" ; 1883 SC_SHIFT-1 "SCAD/A+B,SCADA/S#,S#/1777,SCADB/SHIFT,LOAD SC" ; 1884 SC_SHIFT-2 "SCAD/A+B,SCADA/S#,S#/1776,SCADB/SHIFT,LOAD SC" ; 1885 SC_-SHIFT "SCAD/A-B,SCADA/S#,S#/0000,SCADB/SHIFT,LOAD SC" ; 1886 SC_-SHIFT-1 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1777,LOAD SC" ; 1887 SC_-SHIFT-2 "SCAD/A-B,SCADA/S#,SCADB/SHIFT,S#/1776,LOAD SC" ; 1888 SC_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD SC" ; 1889 SC_SC-EXP-1 "SCAD/A-B-1,SCADA/SC,SCADB/EXP,LOAD SC" ; 1890 SC_SC-FE-1 "SCAD/A-B-1,SCADA/SC,SCADB/FE,LOAD SC" ; 1891 SC_SC-FE "SCAD/A-B,SCADA/SC,SCADB/FE,LOAD SC" ; 1892 SC_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD SC" ; 1893 SC_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD SC" ; 1894 SC_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD SC" ; 1895 SC_FE "SCAD/A.OR.B,SCADA/S#,S#/0,SCADB/FE,LOAD SC" ; 1896 SC_S# "SCAD/A,SCADA/S#,LOAD SC" ; 1897 ; 1898 ; 1899 SC_36. "SC_S#,S#/36." ; 1900 SC_35. "SC_S#,S#/35." ; 1901 SC_34. "SC_S#,S#/34." ; 1902 SC_28. "SC_S#,S#/28." ; 1903 SC_27. "SC_S#,S#/27." ; 1904 SC_26. "SC_S#,S#/26." ; 1905 SC_24. "SC_S#,S#/24." ; 1906 SC_22. "SC_S#,S#/22." ; 1907 SC_20. "SC_S#,S#/20." ; 1908 SC_19. "SC_S#,S#/19." ; 1909 SC_14. "SC_S#,S#/14." ; 1910 SC_11. "SC_S#,S#/11." ; 1911 SC_9. "SC_S#,S#/9." ; 1912 SC_8. "SC_S#,S#/8." ; 1913 SC_7 "SC_S#,S#/7" ; 1914 SC_6 "SC_S#,S#/6" ; 1915 SC_5 "SC_S#,S#/5" ; 1916 SC_4 "SC_S#,S#/4" ; 1917 SC_3 "SC_S#,S#/3" ; 1918 SC_2 "SC_S#,S#/2" ; 1919 SC_1 "SC_S#,S#/1" ; 1920 SC_0 "SC_S#,S#/0." ; 1921 SC_-1 "SC_S#,S#/1777" ; 1922 SC_-2 "SC_S#,S#/1776" ; 1923 ; T10KL.MCR[7,3] 15:10 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 ; 1924 FE_-FE "SCAD/A-B,SCADA/S#,S#/0,SCADB/FE,LOAD FE" ; 1925 FE_-FE-1 "SCAD/A-B,SCADA/S#,S#/1777,SCADB/FE,LOAD FE" ; 1926 FE_FE-19 "SCAD/A+B,SCADB/FE,SCADA/S#,S#/1550,LOAD FE" ; 1927 FE_-FE+S# "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1928 FE_FE+SC "SCAD/A+B,SCADA/SC,SCADB/FE, LOAD FE" ; 1929 FE_FE.AND.S# "SCAD/A.AND.B,SCADA/S#,SCADB/FE, LOAD FE" ; 1930 FE_P "SCAD/A,SCADA/BYTE1, LOAD FE" ; 1931 FE_S "SCAD/A+B, SCADA/S#, S#/0 ,SCADB/SIZE, LOAD FE" ; 1932 FE_S+2 "SCAD/A+B, SCADA/S#, S#/20, SCADB/SIZE, LOAD FE" ; 1933 FE_-S-20 "SCAD/A-B,SCADA/S#,S#/1760,SCADB/SIZE, LOAD FE" ; 1934 FE_-S-10 "SCAD/A-B,SCADA/S#,S#/1770,SCADB/SIZE, LOAD FE" ; 1935 FE_S# "SCAD/A,SCADA/S#,LOAD FE" ; 1936 FE_S#-FE "SCAD/A-B,SCADA/S#,SCADB/FE,LOAD FE" ; 1937 FE_-2 "FE_S#,S#/1776" ; 1938 FE_-12. "FE_S#,S#/1764" ; 1939 FE_0 "FE_S#,S#/0" ; 1940 FE_-1 "FE_S#,S#/1777" ; 1941 FE_FE+1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1,LOAD FE" ; 1942 FE_FE+2 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/2,LOAD FE" ; 1943 FE_FE+10 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/10,LOAD FE" ; 1944 FE_FE-1 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/1777,LOAD FE" ; 1945 FE_FE+4 "SCAD/A+B,SCADA/S#,SCADB/FE,S#/4,LOAD FE" ; 1946 FE_EXP "SCAD/A+B,SCADA/S#,S#/0,SCADB/EXP,LOAD FE" ; 1947 FE_SC+EXP "SCAD/A+B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1948 FE_SC-EXP "SCAD/A-B,SCADA/SC,SCADB/EXP,LOAD FE" ; 1949 FE_FE+P "SCAD/A+B,SCADA/BYTE1,SCADB/FE, LOAD FE" ; 1950 FE_FE-200 "SCAD/A+B,SCADA/S#,S#/1600,SCADB/FE,LOAD FE" ; 1951 FE_-FE+200 "SCAD/A-B,SCADA/S#,S#/200,SCADB/FE,LOAD FE" ; 1952 FE_FE+S# "SCAD/A+B,SCADA/S#,SCADB/FE,LOAD FE" ; 1953 ; 1954 ; 1955 GEN 17-FE "SCAD/A-B,SCADA/S#,S#/210,SCADB/FE" ; 1956 ; T10KL.MCR[7,3] 15:10 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 ; 1957 .TOC "MACROS -- DATA PATH FIELD CONTROL" ; 1958 ; 1959 HOLD LEFT "CLKL/0,GENL/0" ; 1960 ADL PARITY "GENL/1" ; 1961 CHK PARITY L "CHKL/1" ; 1962 ; 1963 HOLD RIGHT "CLKR/0,GENR/0" ; 1964 ADR PARITY "GENR/1" ; 1965 CHK PARITY R "CHKR/1" ; 1966 ; 1967 AD PARITY "AD PARITY OK/1" ; 1968 CHK PARITY "CHKL/1,CHKR/1" ; 1969 BAD PARITY "CHKL/0,CHKR/0" ; 1970 ; 1971 INH CRY18 "SPEC/INHCRY18" ; 1972 ; T10KL.MCR[7,3] 15:10 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 ; 1973 .TOC "MACROS -- SHIFT PATH CONTROL" ; 1974 ; 1975 ASH "SHSTYLE/NORM" ;ASH SHIFT ; 1976 LSH "SHSTYLE/NORM" ;LSH SHIFT (SAME HARDWARE AS ASH BUT ; 1977 ; BITS -2 AND -1 ARE PRESET TO ZERO) ; 1978 ROT "SHSTYLE/ROT" ; 1979 LSHC "SHSTYLE/LSHC" ; 1980 ASHC "SHSTYLE/ASHC" ; 1981 ROTC "SHSTYLE/ROTC" ; 1982 ONES "SHSTYLE/ONES" ;SHIFT IN 1 BITS ; 1983 DIV "SHSTYLE/DIV" ;SPECIAL PATH FOR DIVIDE (LIKE ROTC BUT ; 1984 ; COMPLEMENT BIT AS IT GOES AROUND) ; 1985 ; T10KL.MCR[7,3] 15:10 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 ; 1986 .TOC "MACROS -- SPECIAL FUNCTIONS" ; 1987 ; 1988 LOAD IR "SPEC/LOADIR" ;LOAD INSTRUCTION REG FROM ; 1989 ; DBUS0-DBUS8, LOAD AC# FROM ; 1990 ; DBUS9-DBUS12 ; 1991 ; UPDATE LAST-INST-PUBLIC PC FLAG ; 1992 LOAD INST "SPEC/LDINST" ; 1993 LOAD INST EA "SPEC/LOADXR,PXCT/CURRENT" ; 1994 LOAD BYTE EA "SPEC/LOADXR,PXCT/E2" ; 1995 LOAD IND EA "SPEC/LOADXR,PXCT/E1" ; 1996 LOAD SRC EA "SPEC/LOADXR,PXCT/BIS-SRC-EA" ; 1997 LOAD DST EA "SPEC/LOADXR,PXCT/BIS-DST-EA" ; 1998 ADD .25 "CRY38/1" ;GENERATE CARRY IN TO BIT 37 ; 1999 CALL [] "CALL/1,J/@1" ;CALL A SUBROUTINE ; 2000 LOAD PXCT "SPEC/LDPXCT" ;LOAD PXCT FLAGS IF EXEC MODE ; 2001 TURN OFF PXCT "SPEC/PXCT OFF" ; 2002 LOAD PAGE TABLE "SPEC/LDPAGE" ; 2003 LOAD AC BLOCKS "SPEC/LDACBLK" ; 2004 SWEEP "SPEC/SWEEP,PHYSICAL/1" ; 2005 CLRCSH "SPEC/CLRCSH,PHYSICAL/1" ; 2006 LOAD PI "SPEC/LDPI" ; 2007 SET HALT "SPEC/#,#/74" ; 2008 CLEAR CONTINUE "SPEC/#,#/40" ; 2009 CLEAR EXECUTE "SPEC/#,#/20" ; 2010 CLEAR RUN "SPEC/#,#/10" ; 2011 UNHALT "SPEC/#,#/62" ; 2012 SET APR ENABLES "SPEC/APR EN" ; 2013 ABORT MEM CYCLE "DBUS/DBM,RAMADR/VMA,DBM/MEM,AD/ZERO,SPEC/MEMCLR,LOAD VMA" ; 2014 CLR IO BUSY "SPEC/CLR IO BUSY" ; 2015 CLR IO LATCH "SPEC/CLR IO LATCH" ; 2016 ; T10KL.MCR[7,3] 15:10 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 ; 2017 .TOC "MACROS -- PC FLAGS" ; 2018 ; 2019 CHANGE FLAGS "SPEC/FLAGS" ; 2020 ; 2021 SET AROV "CHANGE FLAGS, HOLD USER/1, SETOV/1, TRAP1/1" ; 2022 SET FOV "CHANGE FLAGS, HOLD USER/1, SETFOV/1, TRAP1/1" ; 2023 SET NO DIVIDE "CHANGE FLAGS, HOLD USER/1, SETOV/1, SETNDV/1, TRAP1/1" ; 2024 SET FL NO DIVIDE "SET NO DIVIDE, SETFOV/1" ; 2025 ; 2026 ASH AROV "SPEC/ASHOV" ; 2027 SET FPD "CHANGE FLAGS, HOLD USER/1, SETFPD/1" ; 2028 CLR FPD "CHANGE FLAGS, HOLD USER/1, CLRFPD/1" ; 2029 ; 2030 SET PDL OV "CHANGE FLAGS, HOLD USER/1, TRAP2/1" ; 2031 SET TRAP1 "CHANGE FLAGS, HOLD USER/1, TRAP1/1" ; 2032 ; 2033 LOAD PCU "CHANGE FLAGS, LD PCU/1" ; 2034 UPDATE USER "CHANGE FLAGS, HOLD USER/1" ; 2035 LEAVE USER "CHANGE FLAGS, HOLD USER/0" ; 2036 ; 2037 JFCL FLAGS "CHANGE FLAGS, HOLD USER/1, JFCLFLG/1" ; 2038 ; 2039 LOAD FLAGS "CHANGE FLAGS, LD FLAGS/1" ; 2040 EXP TEST "SPEC/EXPTST" ; 2041 AD FLAGS "CHANGE FLAGS, ADFLGS/1, HOLD USER/1" ; 2042 ; 2043 NO DIVIDE "SET NO DIVIDE, J/NIDISP" ; 2044 FL NO DIVIDE "SET FL NO DIVIDE, J/NIDISP" ; 2045 ; T10KL.MCR[7,3] 15:10 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 ; 2046 .TOC "MACROS -- PAGE FAIL FLAGS" ; 2047 ; 2048 STATE_[] "[FLG]_#,STATE/@1,HOLD LEFT" ; 2049 END STATE "[FLG]_0, HOLD LEFT" ; 2050 ; 2051 END BLT "END STATE" ; 2052 END MAP "END STATE" ; 2053 ; T10KL.MCR[7,3] 15:10 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 ; 2054 .TOC "MACROS -- SINGLE SKIPS" ; 2055 ;SKIPS IF: ; 2056 SKIP IF AC0 "SKIP/AC0" ;THE AC NUMBER IS ZERO ; 2057 SKIP DP0 "SKIP/DP0" ;DP BIT 0=1 ; 2058 SKIP DP18 "SKIP/DP18" ;DP BIT 18=1 ; 2059 SKIP AD.EQ.0 "SKIP/ADEQ0,DT/3T" ;ADDER OUTPUT IS ZERO ; 2060 SKIP AD.LE.0 "SKIP/LE,DT/3T" ;ADDER OUTPUT IS LESS THAN OR EQUAL ; 2061 ; TO ZERO. ; 2062 SKIP ADL.LE.0 "SKIP/LLE,DT/3T" ;ADDER LEFT IS LESS THAN OR EQUAL ; 2063 ; TO ZERO. ; 2064 SKIP FPD "SKIP/FPD" ;FIRST-PART-DONE PC FLAG IS SET ; 2065 SKIP KERNEL "SKIP/KERNEL" ;USER=0 ; 2066 SKIP IO LEGAL "SKIP/IOLGL" ;USER=0 OR USER IOT=1 ; 2067 SKIP CRY0 "SKIP/CRY0" ;ADDER BIT CRY0=1 (NOT PC FLAG BIT) ; 2068 SKIP CRY1 "SKIP/CRY1" ;ADDER BIT CRY1=1 (NOT PC FLAG BIT) ; 2069 SKIP CRY2 "SKIP/CRY2,DT/3T" ;ADDER BIT CRY2=1 ; 2070 SKIP JFCL "SKIP/JFCL" ;IF JFCL SHOULD JUMP ; 2071 SKIP ADL.EQ.0 "SKIP/ADLEQ0" ;ALU BITS -2 TO 17 = 0 ; 2072 SKIP ADR.EQ.0 "SKIP/ADREQ0" ;ALU BITS 18-35 = 0 ; 2073 SKIP IRPT "SKIP/INT" ;INTERRUPT IS PENDING ; 2074 SKIP -1MS "SKIP/-1 MS" ;DON'T SKIP IF 1MS TIMER HAS EXPIRED. ; 2075 SKIP AC REF "SKIP/ACREF" ;VMA IS 0-17 ; 2076 SKIP EXECUTE "SKIP/EXECUTE" ;CONSOLE EXECUTE ; 2077 TXXX TEST "SKIP/TXXX" ;TEST INSTRUCTION SHOULD SKIP ; 2078 ; T10KL.MCR[7,3] 15:10 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 ; 2079 .TOC "MACROS -- SPECIAL DISPATCH MACROS" ; 2080 ; 2081 NEXT INST "DISP/NICOND,SPEC/NICOND,J/NICOND" ; 2082 NEXT INST FETCH "DISP/NICOND,SPEC/NICOND,J/NICOND-FETCH" ; 2083 EA MODE DISP "DISP/EAMODE,RAMADR/XR#" ; 2084 AREAD "DISP/AREAD,WAIT/1,AREAD/1,MEM/1,J/0" ; 2085 B DISP "DISP/BDISP" ; 2086 BWRITE DISP "B DISP,MEM/1,BWRITE/1,WRITE CYCLE/1,J/BWRITE" ; 2087 INST DISP "DISP/DROM,J/0" ; 2088 EXIT "BWRITE DISP,SPEC/0, WRITE TEST/1" ; 2089 AD FLAGS EXIT "BWRITE DISP, WRITE TEST/0, AD FLAGS" ; 2090 FL-EXIT "WRITE CYCLE/1,WRITE TEST/1,MEM/1,BWRITE/1,B DISP,J/FL-BWRITE" ; 2091 TEST DISP "B DISP,J/TEST-TABLE" ; 2092 SKIP-COMP DISP "B DISP,J/SKIP-COMP-TABLE" ; 2093 JUMP DISP "B DISP,J/JUMP-TABLE" ; 2094 DONE "VMA_[PC],LOAD VMA, FETCH, NEXT INST FETCH" ; 2095 JUMPA "[PC]_[AR],HOLD LEFT,LOAD VMA,FETCH,NEXT INST FETCH" ; 2096 UUO "[HR]_[HR].AND.#,#/777740,HOLD RIGHT,J/UUOGO" ; 2097 LUUO "[AR]_0 XWD [40], J/LUUO1" ; 2098 PAGE FAIL TRAP "TL [FLG], FLG.PI/1, J/PFT" ; 2099 TAKE INTERRUPT "[FLG]_[FLG].OR.#,FLG.PI/1,HOLD RIGHT,J/PI" ; 2100 INTERRUPT TRAP "WORK[SV.AR]_[AR], J/ITRAP" ; 2101 MUL DISP "DISP/MUL" ; 2102 DIV DISP "DISP/DIV" ; 2103 BYTE DISP "DISP/BYTE, DT/3T" ; 2104 SCAD DISP "DISP/SCAD0" ;SKIP (2'S WEIGHT) IS SCAD IS MINUS ; 2105 RETURN [] "DISP/RETURN,J/@1" ; 2106 PI DISP "DISP/PI" ; 2107 NORM DISP "DISP/NORM,DT/3T" ; 2108 DISMISS "TR [PI], #/077400, CALL [JEN1],DT/3T" ; 2109 CALL LOAD PI "[T0]_[PI] SWAP, CALL [LDPI2]" ; 2110 HALT [] "AD/47,DEST/AD,B/T1,DBM/#,DBUS/DBM,HALT/@1,RSRC/DA,A/MASK, J/HALTED" ; 2111 CLEANUP DISP "READ [FLG], DBUS/DP, DISP/DP, 3T, J/CLEANUP" ; 2112 ; T10KL.MCR[7,3] 15:10 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 ; 2113 .TOC "DISPATCH ROM MACROS" ; 2114 .DCODE ; 2115 ; 2116 ;"A FIELD" MACROS SAY HOW TO FETCH ARGUMENTS ; 2117 ; 2118 I "I/1" ; 2119 I-PF "I/1,VMA/0,READ/1" ; 2120 R "A/READ,READ/1" ; 2121 R-PF "A/RD-PF,READ/1" ; 2122 W "A/WRITE,TEST/1" ; 2123 RW "A/READ,TEST/1,READ/1" ; 2124 IW "I/1,TEST/1" ;IMMED WHICH STORE IN E. (SETZM, ETC.) ; 2125 IR "I/1,READ/1" ;START READ A GO TO EXECUTE CODE ; 2126 DBL R "A/DREAD,READ/1" ;AR!ARX _ E!E+1 ; 2127 DBL AC "A/DBLAC" ; 2128 SH "A/SHIFT,VMA/0,READ/1" ; 2129 SHC "A/DSHIFT,VMA/0,READ/1" ; 2130 FL-R "A/FP,READ/1" ;FLOATING POINT READ ; 2131 FL-RW "A/FP,READ/1,TEST/1" ; 2132 FL-I "A/FPI,READ/0" ;FLOATING POINT IMMEDIATE ; 2133 DBL FL-R "A/DFP,READ/1" ; 2134 IOT "A/IOT" ;CHECK FOR IO LEGAL ; 2135 ; 2136 ;"B FIELD" MACROS SAY HOW TO STORE RESULTS ; 2137 ; 2138 AC "B/AC" ; 2139 M "B/MEM,TEST/1,COND FUNC/1" ; 2140 B "B/BOTH,TEST/1,COND FUNC/1" ; 2141 S "B/SELF,TEST/1,COND FUNC/1" ; 2142 DAC "B/DBLAC" ; 2143 DBL B "B/DBLB,TEST/1,COND FUNC/1" ; 2144 FL-AC "FL-B/AC" ;FLOATING POINT ; 2145 FL-MEM "FL-B/MEM,TEST/1,COND FUNC/1" ;FLOATING POINT TO MEMORY ; 2146 FL-BOTH "FL-B/BOTH,TEST/1,COND FUNC/1" ;FLOATING POINT TO BOTH ; 2147 ROUND "ROUND/1" ;FLOATING POINT ROUNDED ; 2148 ; 2149 ; 2150 ;CONTROL BITS ; 2151 W TEST "TEST/1" ; 2152 AC DISP "ACDISP/1" ; 2153 .UCODE ; 2154 ; T10KL.MCR[7,3] 15:10 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 ; 2155 .BIN ; 2156 .TOC "POWER UP SEQUENCE" ; 2157 ; 2158 .UCODE ; 2159 ; 2160 ;HERE IS WHERE WE FIRE THE MACHINE UP DURING POWER ON ; 2161 ; 2162 U 0000, 0002,3771,0012,4374,4007,0700,0000,0037,7777 ; 2163 0: [MASK]_#, #/377777 ;BUILD A MASK WITH U 0002, 0013,3445,1212,4174,4007,0700,0000,0000,0000 ; 2164 [MASK]_[MASK]*2 ; A ONE IN 36-BITS AND 0 U 0013, 0053,3551,1212,4374,4007,0700,0000,0000,0001 ; 2165 [MASK]_[MASK].OR.#,#/1 ; IN BITS -2,-1,36,37 U 0053, 0061,3447,1200,4174,4007,0700,0000,0000,0000 ; 2166 [MAG]_[MASK]*.5 ;MAKE CONSTANT U 0061, 0071,3771,0015,4374,4007,0700,0000,0000,0001 ; 2167 [XWD1]_#, #/1 ;CONSTANT WITH 1 IN EACH ; 2168 ; HALF WORD ; 2169 [ONE]_0 XWD [1], ;THE CONSTANT 1 U 0071, 0003,4751,1207,4374,4007,0700,0010,0000,0001 ; 2170 CALL/1 ;RESET STACK (CAN NEVER RETURN ; 2171 ; TO WHERE MR LEFT US) U 0003, 0100,4751,1203,4374,4007,0700,0000,0037,6000 ; 2172 3: [AR]_0 XWD [376000] ;ADDRESS OF HALT STATUS ; 2173 ; BLOCK U 0100, 0106,3333,0003,7174,4007,0700,0400,0000,0227 ; 2174 WORK[HSBADR]_[AR] ;SAVE FOR HALT LOOP U 0106, 0110,4221,0011,4364,4277,0700,0200,0000,0010 ; 2175 [UBR]_0, ABORT MEM CYCLE ;CLEAR THE UBR AND RESET ; 2176 ; MEMORY CONTROL LOGIC U 0110, 0125,4221,0010,4174,4477,0700,0000,0000,0000 ; 2177 [EBR]_0, LOAD AC BLOCKS ;CLEAR THE EBR AND FORCE ; 2178 ; PREVIOUS AND CURRENT AC ; 2179 ; BLOCKS TO ZERO U 0125, 0131,4221,0013,4174,4257,0700,0000,0000,0000 ; 2180 [FLG]_0, SET APR ENABLES ;CLEAR THE STATUS FLAGS AND ; 2181 ; DISABLE ALL APR CONDITIONS U 0131, 0162,3333,0013,7174,4007,0700,0400,0000,0230 ; 2182 WORK[APR]_[FLG] ;ZERO REMEMBERED ENABLES ; 2183 U 0162, 0212,3333,0013,7174,4007,0700,0400,0000,0300 ; 2184 WORK[TIME0]_[FLG] ;CLEAR TIME BASE U 0212, 0214,3333,0013,7174,4007,0700,0400,0000,0301 ; 2185 WORK[TIME1]_[FLG] ; .. ; 2186 .IF/FULL U 0214, 0223,4223,0000,1174,4007,0700,0400,0000,1443 ; 2187 AC[BIN0]_0 ;COMPUTE A TABLE OF POWERS OF U 0223, 0226,3333,0007,1174,4007,0700,0400,0000,1444 ; 2188 AC[BIN1]_1 ; TEN U 0226, 0235,4221,0003,4174,4007,0700,2000,0071,0023 ; 2189 [AR]_0, SC_19. ;WE WANT TO GET 22 NUMBERS U 0235, 0242,3333,0007,7174,4007,0700,0400,0000,0344 ; 2190 WORK[DECLO]_1 ;STARTING WITH 1 U 0242, 0244,4223,0000,7174,4007,0700,0400,0000,0373 ; 2191 WORK[DECHI]_0 ; .. U 0244, 0313,3771,0002,4374,4007,0700,0000,0000,0344 ; 2192 [HR]_#, WORK/DECLO ;ADDRESS OF LOW WORD U 0313, 0315,3771,0006,4374,4007,0700,0000,0000,0373 ; 2193 [BRX]_#, WORK/DECHI ;ADDRESS OF HIGH WORD U 0315, 0010,0111,0706,4174,4007,0700,0200,0000,0010 ; 2194 TENLP: [BRX]_[BRX]+1, LOAD VMA ;ADDRESS THE HIGH WORD ; 2195 =0* [ARX]_AC[BIN1], ;LOW WORD TO ARX U 0010, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 2196 CALL [DBSLOW] ;MULTIPLY BY TEN U 0012, 0323,3333,0005,6174,4007,0700,0400,0000,0000 ; 2197 RAM_[BR] ;SAVE HIGH WORD U 0323, 0324,0111,0702,4174,4007,0700,0200,0000,0010 ; 2198 [HR]_[HR]+1, LOAD VMA ;WHERE TO STORE LOW WORD U 0324, 0224,3333,0004,6174,4007,0630,2400,0060,0000 ; 2199 RAM_[ARX], STEP SC ;STORE LOW WORD AND SEE IF ; 2200 ; WE ARE DONE U 0224, 0315,4443,0000,4174,4007,0700,0000,0000,0000 ; 2201 =0 J/TENLP ;NOT YET--KEEP GOING U 0225, 0140,6553,0500,4374,4007,0321,0000,0033,0656 ; 2202 [BR].XOR.#, 3T, SKIP ADL.EQ.0, #/330656 ; 2203 ;DID WE GET THE RIGHT ANSWER ; 2204 ; IN THE TOP 18 BITS? U 0140, 0104,4751,1217,4374,4007,0700,0000,0000,1005 ; 2205 =0**0 HALT [MULERR] ;NO--CPU IS BROKEN ; 2206 .ENDIF/FULL ; 2207 ; T10KL.MCR[7,3] 15:10 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, 3623,4221,0014,4174,4007,0700,0010,0000,0000 ; 2208 =0**1 [PI]_0, CALL [LOADPI] ;CLEAR PI STATE ; 2209 =1**1 ;CLEAR REGISTERS SO NO ; 2210 ;PARITY ERROR HAPPEN ;;2211 .IFNOT/FULL ;;2212 [ARX]_0 ;WRITTEN WHILE COMPUTING POWERS ;;2213 [BR]_0 ;OF 10 ;;2214 [BRX]_0 ; 2215 .ENDIF/FULL U 0151, 0332,4751,1217,4374,4007,0700,0000,0000,0120 ; 2216 [T1]_0 XWD [120] ;RH OF 120 CONTAINS START ADDRESS ; 2217 ; FOR SIMULATOR. FOR THE REAL ; 2218 ; MACHINE IT IS JUST DATA WITH ; 2219 ; GOOD PARITY. ; 2220 = ; 2221 ;THE CODE UNDER .IF/SIM MUST USE THE SAME ADDRESS AS THE CODE ; 2222 ; UNDER .IFNOT/SIM SO THAT MICROCODE ADDRESSES DO NOT CHANGE BETWEEN ; 2223 ; VERSIONS ;;2224 .IF/SIM ;;2225 VMA_[T1], START READ ;READ THE WORD ;;2226 MEM READ, [PC]_MEM, HOLD LEFT, J/START ;;2227 ;GO FIRE UP SIMULATOR AT THE ;;2228 ; PROGRAMS STARTING ADDRESS ; 2229 .IFNOT/SIM ; 2230 [PC]_0, ;CLEAR LH OF PC ; 2231 LEAVE USER, ;ENTER EXEC MODE U 0332, 0343,4221,0001,4174,4467,0700,0000,0000,0004 ; 2232 LOAD FLAGS ;CLEAR TRAP FLAGS ; 2233 [T1]_#, HALT/POWER, ;LOAD T1 WITH POWER UP CODE U 0343, 0116,3771,0017,4374,4007,0700,0000,0000,0000 ; 2234 J/PWRON ;ENTER HALT LOOP. DO NOT STORE ; 2235 ; HALT STATUS BLOCK ; 2236 .ENDIF/SIM ; 2237 ; T10KL.MCR[7,3] 15:10 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 ; 2238 .TOC "THE INSTRUCTION LOOP -- START NEXT INSTRUCTION" ; 2239 ; 2240 ;ALL INSTRUCTIONS EXCEPT JUMP'S AND UUO'S END UP HERE ; 2241 1400: U 1400, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2242 DONE: DONE U 1401, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2243 1401: VMA_[PC]+1, NEXT INST FETCH, FETCH ; 2244 =0 U 0260, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 2245 SKIP: VMA_[PC]+1, NEXT INST FETCH, FETCH U 0261, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 2246 DONE ; 2247 ; 2248 ; 2249 ;16-WAY DISPATCH BASED ON NEXT INSTRUCTION ; 2250 =0000 ; 2251 NICOND: ; 2252 =0001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2253 ; GET ADDRESS OF TRAP INST ; 2254 TURN OFF PXCT, ;CLEAR PXCT U 0101, 3511,4751,1203,4374,4367,0700,0000,0000,0423 ; 2255 J/TRAP ;PROCESS TRAP (INOUT.MIC) ; 2256 =0010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2257 TURN OFF PXCT, ;CLEAR PXCT U 0102, 3511,4751,1203,4374,4367,0700,0000,0000,0422 ; 2258 J/TRAP ;GO TRAP ; 2259 =0011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2260 TURN OFF PXCT, ;TURN OF PXCT U 0103, 3511,4751,1203,4374,4367,0700,0000,0000,0421 ; 2261 J/TRAP ;GO TRAP U 0105, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2262 =0101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2263 =0111 ; 2264 VMA_[PC], ;LOAD VMA ; 2265 FETCH, ;INDICATE INSTRUCTION FETCH U 0107, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 2266 J/XCTGO ;GO GET INSTRUCTION ; 2267 ;THE NEXT SET OF CASES ARE USED WHEN THERE IS A FETCH ; 2268 ; IN PROGESS ; 2269 =1000 ; 2270 NICOND-FETCH: ; 2271 =1001 [AR]_0 XWD [423], ;TRAP TYPE 3 ; 2272 TURN OFF PXCT, U 0111, 3511,4751,1203,4374,4367,0700,0000,0000,0423 ; 2273 J/TRAP ; 2274 =1010 [AR]_0 XWD [422], ;TRAP TYPE 2 ; 2275 TURN OFF PXCT, U 0112, 3511,4751,1203,4374,4367,0700,0000,0000,0422 ; 2276 J/TRAP ; 2277 =1011 [AR]_0 XWD [421], ;TRAP TYPE 1 ; 2278 TURN OFF PXCT, U 0113, 3511,4751,1203,4374,4367,0700,0000,0000,0421 ; 2279 J/TRAP U 0115, 0104,4751,1217,4374,4007,0700,0000,0000,0002 ; 2280 =1101 HALT [CSL] ;"HA" COMMAND TO 8080 ; 2281 =1111 ; 2282 XCTGO: MEM READ, ;WAIT FOR MEMORY ; 2283 [HR]_MEM, ;PUT DATA IN HR ; 2284 LOAD INST, ;LOAD IR & AC # U 0117, 0346,3771,0002,4365,5617,0700,0200,0000,0002 ; 2285 J/INCPC ;GO BUMP PC ; 2286 = ; 2287 ; T10KL.MCR[7,3] 15:10 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 ; 2288 ;HERE WE POINT PC TO NEXT INSTRUCTION WHILE WE WAIT FOR ; 2289 ; EFFECTIVE ADDRESS LOGIC TO SETTLE ; 2290 INCPC: VMA_[PC]+1, ;ADDRESS OF NEXT INSTRUCTION ; 2291 FETCH/1, ;INSTRUCTION FETCH ; 2292 TURN OFF PXCT, ;CLEAR EFFECT OF PXCT U 0346, 0201,0111,0701,2170,4366,6700,0200,0010,0010 ; 2293 EA MODE DISP ;DISPACTH OF INDEXING AND @ ; 2294 ; 2295 ;MAIN EFFECTIVE ADDRESS CALCULATION ; 2296 =0001 ; 2297 EACALC: ; 2298 ; ; 2299 ; THE FIRST 4 CASES ARE USED ONLY FOR JRST ; 2300 ; ; 2301 ; 2302 ;CASE 0 -- JRST 0,FOO(XR) ; 2303 [PC]_[HR]+XR, ;UPDATE PC ; 2304 HOLD LEFT, ;ONLY RH ; 2305 LOAD VMA, FETCH, ;START GETTING IT U 0201, 0110,0551,0201,2270,4156,4700,0200,0014,0012 ; 2306 NEXT INST FETCH ;START NEXT INST ; 2307 ; 2308 ;CASE 2 -- JRST 0,FOO ; 2309 [PC]_[HR], ;NEW PC ; 2310 HOLD LEFT, ;ONLY RH ; 2311 LOAD VMA, FETCH, ;START GETTING IT U 0203, 0110,3441,0201,4170,4156,4700,0200,0014,0012 ; 2312 NEXT INST FETCH ;START NEXT INST ; 2313 ; 2314 ;CASE 4 -- JRST 0,@FOO(XR) ; 2315 [HR]_[HR]+XR, ;ADD IN INDEX ; 2316 START READ, ;START TO FETCH @ WORD ; 2317 LOAD VMA, ;PUT ADDRESS IN VMA U 0205, 0363,0551,0202,2270,4007,0700,0200,0004,0012 ; 2318 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2319 ; 2320 ;CASE 6 -- JRST 0,@FOO ; 2321 VMA_[HR], ;LOAD UP ADDRESS ; 2322 START READ, ;START TO FETCH @ WORD U 0207, 0363,3443,0200,4174,4007,0700,0200,0004,0012 ; 2323 J/FETIND ;GO DO MEM WAIT (FORGET ABOUT JRST) ; 2324 ; T10KL.MCR[7,3] 15:10 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 ; 2325 ; ; 2326 ;THESE 4 ARE FOR THE NON-JRST CASE ; 2327 ; ; 2328 ; 2329 ;CASE 10 -- JUST INDEXING ; 2330 INDEX: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER U 0211, 0213,0551,0202,2270,4007,0700,0000,0000,0000 ; 2331 HOLD LEFT ;JUST DO RIGHT HALF ; 2332 ; 2333 ;CASE 12 -- NO INDEXING OR INDIRECT ; 2334 NOMOD: [AR]_EA, ;PUT 0,,E IN AR U 0213, 0000,5741,0203,4174,4001,3700,0200,0000,0342 ; 2335 PXCT DATA, AREAD ;DO ONE OR MORE OF THE FOLLWING ; 2336 ; ACCORDING TO THE DROM: ; 2337 ;1. LOAD VMA ; 2338 ;2. START READ OR WRITE ; 2339 ;3. DISPATCH TO 40-57 ; 2340 ; OR DIRECTLY TO EXECUTE CODE ; 2341 ; 2342 ;CASE 14 -- BOTH INDEXING AND INDIRECT ; 2343 BOTH: [HR]_[HR]+XR, ;ADD IN INDEX REGISTER ; 2344 LOAD VMA, PXCT EA, ;PUT ADDRESS IN VMA U 0215, 0363,0551,0202,2270,4007,0700,0200,0004,0112 ; 2345 START READ, J/FETIND ;START CYCLE AND GO WAIT FOR DATA ; 2346 ; 2347 ;CASE 16 -- JUST INDIRECT ; 2348 INDRCT: VMA_[HR], ;LOAD ADDRESS OF @ WORD U 0217, 0363,3443,0200,4174,4007,0700,0200,0004,0112 ; 2349 START READ, PXCT EA ;START CYCLE ; 2350 ; 2351 ; 2352 ;HERE TO FETCH INDIRECT WORD ; 2353 FETIND: MEM READ, [HR]_MEM, ;GET DATA WORD ; 2354 HOLD LEFT, ;JUST RIGHT HALF U 0363, 0366,3771,0002,4361,5217,0700,0200,0000,0102 ; 2355 LOAD IND EA ;RELOAD @ AND INDEX FLOPS ; 2356 ; 2357 XCT2: VMA_[PC], ;PUT PC BACK IN VMA ; 2358 FETCH/1, ;TURN ON FETCH FLAG ; 2359 EA MODE DISP, ;REDO CALCULATION FOR U 0366, 0201,3443,0100,2174,4006,6700,0200,0010,0010 ; 2360 J/EACALC ; NEW WORD ; 2361 ; T10KL.MCR[7,3] 15:10 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 ; 2362 .TOC "THE INSTRUCTION LOOP -- FETCH ARGUMENTS" ; 2363 ;HERE ON AREAD DISP TO HANDLE VARIOUS CASES OF ARGUMENT FETCH ; 2364 ; 2365 ;CASE 0 -- READ (E) ; 2366 40: MEM READ, ;WAIT FOR DATA ; 2367 [AR]_MEM, ;PUT WORD IN AR U 0040, 0000,3771,0003,4365,5001,2700,0200,0000,0002 ; 2368 INST DISP ;GO TO EXECUTE CODE ; 2369 ; 2370 ;CASE 1 -- WRITE (E) ; 2371 41: [AR]_AC, ;PUT AC IN AR U 0041, 0000,3771,0003,0276,6001,2700,0000,0000,0000 ; 2372 INST DISP ;GO TO EXECUTE CODE ; 2373 ; 2374 ;CASE 2 -- DOUBLE READ ; 2375 42: MEM READ, ;WAIT FOR DATA U 0042, 0371,3771,0003,4365,5007,0700,0200,0000,0002 ; 2376 [AR]_MEM ;PUT HI WORD IN AR ; 2377 VMA_[HR]+1, PXCT DATA, ;POINT TO E+1 U 0371, 0401,0111,0702,4170,4007,0700,0200,0004,0312 ; 2378 START READ ;START MEMORY CYCLE ; 2379 MEM READ, ;WAIT FOR DATA ; 2380 [ARX]_MEM, ;LOW WORD IN ARX U 0401, 0000,3771,0004,4365,5001,2700,0200,0000,0002 ; 2381 INST DISP ;GO TO EXECUTE CODE ; 2382 ; 2383 ;CASE 3 -- DOUBLE AC U 0043, 0406,3771,0003,0276,6007,0700,0000,0000,0000 ; 2384 43: [AR]_AC ;GET HIGH AC ; 2385 [ARX]_AC[1], ;PUT C(AC+1) IN ARX U 0406, 0000,3771,0004,1276,6001,2701,0000,0000,1441 ; 2386 INST DISP ;GO TO EXECUTE CODE ; 2387 ; 2388 ;CASE 4 -- SHIFT ; 2389 44: ; 2390 SHIFT: READ [AR], ;LOOK AT EFFECTIVE ADDRESS ; 2391 SKIP DP18, ;SEE IF LEFT OR RIGHT ; 2392 SC_SHIFT-1, ;PUT NUMBER OF PLACES TO SHIFT IN ; 2393 LOAD FE, ; SC AND FE U 0044, 0000,3333,0003,4174,4001,2530,3000,0041,5777 ; 2394 INST DISP ;GO DO THE SHIFT ; 2395 ; 2396 ;CASE 5 -- SHIFT COMBINED U 0045, 0431,3772,0000,1275,5007,0701,0000,0000,1441 ; 2397 45: Q_AC[1] ;PUT LOW WORD IN Q U 0431, 0432,3776,0005,0274,4007,0701,0000,0000,0000 ; 2398 [BR]_AC*.5 LONG ;PUT AC IN BR & SHIFT BR!Q RIGHT ; 2399 [BR]_[BR]*.5 LONG, ;SHIFT BR!Q 1 MORE PLACE RIGHT U 0432, 0044,3446,0505,4174,4007,0700,0000,0000,0000 ; 2400 J/SHIFT ;GO DO SHIFT SETUP ; 2401 ; T10KL.MCR[7,3] 15:10 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 ; 2402 ;CASE 6 -- FLOATING POINT IMMEDIATE ; 2403 46: [AR]_[AR] SWAP, ;FLIP BITS TO LEFT HALF U 0046, 0304,3770,0303,4344,4007,0700,0000,0000,0000 ; 2404 J/FPR0 ;JOIN COMMON F.P. CODE ; 2405 ; 2406 ;CASE 7 -- FLOATING POINT ; 2407 47: MEM READ, ;WAIT FOR MEMORY (SPEC/MEM WAIT) U 0047, 0304,3771,0003,4365,5007,0700,0200,0000,0002 ; 2408 [AR]_MEM ;DATA INTO AR ; 2409 =0 ; 2410 FPR0: READ [AR], ;LOOK AT NUMBER ; 2411 SC_EXP, FE_EXP, ;PUT EXPONENT IN SC & FE ; 2412 SKIP DP0, ;SEE IF NEGATIVE U 0304, 0434,3333,0003,4174,4007,0520,3010,0041,2000 ; 2413 CALL [ARSIGN] ;EXTEND AR SIGN ; 2414 FPR1: [ARX]_0, ;ZERO ARX U 0305, 0000,4221,0004,4174,4001,2700,0000,0000,0000 ; 2415 INST DISP ;GO TO EXECUTE CODE ; 2416 ; 2417 ;CASE 10 -- READ THEN PREFETCH ; 2418 50: MEM READ, ;WAIT FOR DATA ; 2419 [AR]_MEM THEN FETCH, ;PUT DATA IN AR AND START A READ ; 2420 ; VMA HAS PC+1. U 0050, 0000,3770,0103,4365,5001,2700,0200,0014,0012 ; 2421 INST DISP ;GO DO IT ; 2422 ; 2423 ;CASE 11 -- DOUBLE FLOATING READ ; 2424 51: SPEC MEM READ, ;WAIT FOR DATA ; 2425 [BR]_MEM, ;HOLD IN BR ; 2426 SC_EXP, FE_EXP, ;SAVE EXPONENT U 0051, 0372,3771,0005,4365,5177,0521,3000,0041,2000 ; 2427 SKIP DP0, 3T ;SEE IF MINUS ; 2428 =0 [AR]_[AR]+1, ;POINT TO E+1 ; 2429 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0372, 0451,0111,0703,4174,4007,0700,0200,0004,0312 ; 2430 START READ, J/DFPR1 ;GO GET POSITIVE DATA ; 2431 [AR]_[AR]+1, ;POINT TO E+1 ; 2432 LOAD VMA, PXCT DATA, ;PUT IN VMA U 0373, 0445,0111,0703,4174,4007,0700,0200,0004,0312 ; 2433 START READ ;GO GET NEGATIVE DATA ; 2434 [BR]_-SIGN, ;SMEAR MINUS SIGN U 0445, 0452,3551,0505,4374,0007,0700,0000,0077,7000 ; 2435 J/DFPR2 ;CONTINUE BELOW U 0451, 0452,4551,0505,4374,0007,0700,0000,0000,0777 ; 2436 DFPR1: [BR]_+SIGN ;SMEAR PLUS SIGN ; 2437 DFPR2: MEM READ, 3T, ;WAIT FOR MEMORY ; 2438 [ARX]_(MEM.AND.[MAG])*.5, U 0452, 0467,4557,0004,4365,5007,0701,0200,0000,0002 ; 2439 ASH ;SET SHIFT PATHS U 0467, 0471,3447,0503,4174,4007,0700,0000,0000,0000 ; 2440 [AR]_[BR]*.5 ;SHIFT AR ; 2441 [AR]_[AR]*.5, ;COMPLETE SHIFTING U 0471, 0506,3447,0303,4174,4007,0700,2000,0011,0000 ; 2442 SC_FE ;PAGE FAIL MAY HAVE ZAPPED ; 2443 ; THE SC. ; 2444 VMA_[PC], FETCH, ;GET NEXT INST U 0506, 0000,3443,0100,4174,4001,2700,0200,0014,0012 ; 2445 INST DISP ;DO THIS ONE ; 2446 ; T10KL.MCR[7,3] 15:10 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 ; 2447 ;CASE 12 -- TEST FOR IO LEGAL U 0052, 0402,4443,0000,4174,4007,0040,0000,0000,0000 ; 2448 52: SKIP IO LEGAL ;IS IO LEGAL? U 0402, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 2449 =0 UUO ;NO U 0403, 0000,4443,0000,4174,4001,2700,0000,0000,0000 ; 2450 INST DISP ;YES--DO THE INSTRUCTION ; 2451 ; 2452 ; 2453 ;CASE 13 -- RESERVED ; 2454 ;53: ; 2455 ; 2456 ;CASE 14 -- RESERVED ; 2457 ;54: ; 2458 ; 2459 ;CASE 15 -- RESERVED ; 2460 ;55: ; 2461 ; 2462 ;CASE 16 -- RESERVED ; 2463 ;56: ; 2464 ; 2465 ;CASE 17 -- RESERVED ; 2466 ;57: ; 2467 ; 2468 ;EXTEND AR SIGN. ; 2469 ;CALL WITH SKIP ON AR0, RETURNS 1 ALWAYS ; 2470 =0 U 0434, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 2471 ARSIGN: [AR]_+SIGN, RETURN [1] ;EXTEND + SIGN U 0435, 0001,3551,0303,4374,0004,1700,0000,0077,7000 ; 2472 [AR]_-SIGN, RETURN [1] ;EXTEND - SIGN ; 2473 ; T10KL.MCR[7,3] 15:10 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 ; 2474 .TOC "THE INSTRUCTION LOOP -- STORE ANSWERS" ; 2475 ; 2476 ;NOTE: INSTRUCTIONS WHICH STORE IN BOTH AC AND MEMORY ; 2477 ; (E.G. ADDB, AOS) MUST STORE IN MEMORY FIRST ; 2478 ; SO THAT IF A PAGE FAIL HAPPENS THE AC IS ; 2479 ; STILL INTACT. ; 2480 ; 2481 1500: ; 2482 BWRITE: ;BASE ADDRESS OF BWRITE DISPATCH ; 2483 ; 2484 ;CASE 0 -- RESERVED ; 2485 ;1500: ; 2486 ; 2487 ;CASE 1 -- RESERVED ; 2488 ;1501: ; 2489 ; 2490 ;CASE 2 -- RESERVED ; 2491 ;1502: ; 2492 ; 2493 ;CASE 3 -- RESERVED ; 2494 ;1503: ; 2495 ; 2496 ;CASE 4 -- STORE SELF ; 2497 1504: ; 2498 STSELF: SKIP IF AC0, ;IS AC # ZERO? U 1504, 0454,4443,0000,4174,4007,0360,0000,0000,0000 ; 2499 J/STBTH1 ;GO TO STORE BOTH CASE ; 2500 ; 2501 ;CASE 5 -- STORE DOUBLE AC ; 2502 1505: ; 2503 DAC: AC[1]_[ARX], ;STORE AC 1 U 1505, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2504 J/STAC ;GO STORE AC ; 2505 ; 2506 ;CASE 6 -- STORE DOUBLE BOTH (KA10 STYLE MEM_AR ONLY) ; 2507 1506: ; 2508 STDBTH: MEM WRITE, ;WAIT FOR MEMORY ; 2509 MEM_[AR], ;STORE AR U 1506, 1505,3333,0003,4175,5007,0701,0200,0000,0002 ; 2510 J/DAC ;NOW STORE AC & AC+1 ; 2511 ; 2512 ;CASE 7 -- RESERVED ; 2513 ;1507: ; 2514 ; T10KL.MCR[7,3] 15:10 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 ; 2515 ;CASE 10 -- RESERVED ; 2516 ;1510: ; 2517 ; 2518 ;CASE 11 -- RESERVED ; 2519 ;1511: ; 2520 ; 2521 ;CASE 12 -- RESERVED ; 2522 ;1512: ; 2523 ; 2524 ;CASE 13 -- RESERVED ; 2525 ;1513: ; 2526 ; 2527 ;CASE 14 -- RESERVED ; 2528 1514: ; 2529 FL-BWRITE: ;THE NEXT 4 CASES ARE ALSO ; 2530 ;USED IN FLOATING POINT U 1514, 0104,4751,1217,4374,4007,0700,0000,0000,1000 ; 2531 HALT [BW14] ; 2532 ; 2533 ;CASE 15 -- STORE AC ; 2534 1515: ; 2535 STAC: AC_[AR], ;STORE AC U 1515, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 2536 NEXT INST ;DO NEXT INSTRUCTION ; 2537 ; 2538 ;CASE 16 -- STORE IN MEMORY ; 2539 1516: ; 2540 STMEM: MEM WRITE, ;WAIT FOR MEMORY ; 2541 MEM_[AR], ;STORE AR U 1516, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2542 J/DONE ;START FETCH OF NEXT ; 2543 ; 2544 ;CASE 17 -- STORE BOTH ; 2545 1517: ; 2546 STBOTH: MEM WRITE, ;WAIT FOR MEMORY ; 2547 MEM_[AR], ;STORE AR U 1517, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2548 J/STAC ;NOW STORE AC ; 2549 ; 2550 =0 ; 2551 STBTH1: MEM WRITE, ;WAIT FOR MEMORY ; 2552 MEM_[AR], ;STORE AR U 0454, 1515,3333,0003,4175,5007,0701,0200,0000,0002 ; 2553 J/STAC ;NOW STORE AC ; 2554 STORE: MEM WRITE, ;WAIT FOR MEMORY ; 2555 MEM_[AR], ;STORE AC U 0455, 1400,3333,0003,4175,5007,0701,0200,0000,0002 ; 2556 J/DONE ;START NEXT INST ; 2557 ; T10KL.MCR[7,3] 15:10 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 ; 2558 .TOC "MOVE GROUP" ; 2559 ; 2560 .DCODE D 0200, 1015,1515,1100 ; 2561 200: R-PF, AC, J/STAC ;MOVE D 0201, 0015,1515,3000 ; 2562 I-PF, AC, J/STAC ;MOVEI D 0202, 0116,1404,0700 ; 2563 W, M, J/MOVE ;MOVEM D 0203, 0004,1504,1700 ; 2564 RW, S, J/STSELF ;MOVES ; 2565 D 0204, 1015,1402,1100 ; 2566 204: R-PF, AC, J/MOVS ;MOVS D 0205, 0015,1402,3000 ; 2567 I-PF, AC, J/MOVS ;MOVSI D 0206, 0116,1402,0700 ; 2568 W, M, J/MOVS ;MOVSM D 0207, 0004,1402,1700 ; 2569 RW, S, J/MOVS ;MOVSS ; 2570 D 0210, 1015,1405,1100 ; 2571 210: R-PF, AC, J/MOVN ;MOVN D 0211, 0015,1405,3000 ; 2572 I-PF, AC, J/MOVN ;MOVNI D 0212, 0116,1405,0700 ; 2573 W, M, J/MOVN ;MOVNM D 0213, 0004,1405,1700 ; 2574 RW, S, J/MOVN ;MOVNS ; 2575 D 0214, 1015,1403,1100 ; 2576 214: R-PF, AC, J/MOVM ;MOVM D 0215, 0015,1515,3000 ; 2577 I-PF, AC, J/STAC ;MOVMI D 0216, 0116,1403,0700 ; 2578 W, M, J/MOVM ;MOVMM D 0217, 0004,1403,1700 ; 2579 RW, S, J/MOVM ;MOVNS ; 2580 .UCODE ; 2581 ; 2582 1402: U 1402, 1500,3770,0303,4344,4003,7700,0200,0003,0001 ; 2583 MOVS: [AR]_[AR] SWAP,EXIT ; 2584 ; 2585 1403: U 1403, 1404,3333,0003,4174,4007,0520,0000,0000,0000 ; 2586 MOVM: READ [AR], SKIP DP0, J/MOVE ; 2587 ; 2588 1404: U 1404, 1500,4443,0000,4174,4003,7700,0200,0003,0001 ; 2589 MOVE: EXIT ; 2590 1405: ; 2591 MOVN: [AR]_-[AR], ;NEGATE NUMBER ; 2592 AD FLAGS, 3T, ;UPDATE FLAGS U 1405, 1404,2441,0303,4174,4467,0701,4000,0001,0001 ; 2593 J/MOVE ;STORE ANSWER ; 2594 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 72 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 EXCH ; 2595 .TOC "EXCH" ; 2596 ; 2597 .DCODE D 0250, 0015,1406,1500 ; 2598 250: R,W TEST, AC, J/EXCH ; 2599 .UCODE ; 2600 ; 2601 1406: ; 2602 EXCH: [BR]_AC, ;COPY AC TO THE BR U 1406, 0511,3771,0005,0276,6007,0700,0200,0003,0002 ; 2603 START WRITE ;START A WRITE CYCLE ; 2604 MEM WRITE, ;COMPLETE WRITE CYCLE ; 2605 MEM_[BR], ;STORE BR (AC) IN MEMORY U 0511, 1515,3333,0005,4175,5007,0701,0200,0000,0002 ; 2606 J/STAC ;STORE THE AR IN AC. NOTE: AR ; 2607 ; WAS LOADED WITH MEMORY OPERAND ; 2608 ; AS PART OF INSTRUCTION DISPATCH ; 2609 ; T10KL.MCR[7,3] 15:10 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 ; 2610 .TOC "HALFWORD GROUP" ; 2611 ; DESTINATION LEFT HALF ; 2612 ; 2613 .DCODE D 0500, 1015,1410,1100 ; 2614 500: R-PF, AC, J/HLL D 0501, 0015,1410,3000 ; 2615 I-PF, AC, J/HLL D 0502, 0016,1407,1700 ; 2616 RW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE D 0503, 0004,1404,1700 ; 2617 RW, S, J/MOVE ;HLLS = MOVES ; 2618 D 0504, 1015,1411,1100 ; 2619 R-PF, AC, J/HRL D 0505, 0015,1411,3000 ; 2620 I-PF, AC, J/HRL D 0506, 0016,1413,1700 ; 2621 RW, M, J/HRLM D 0507, 0004,1414,1700 ; 2622 RW, S, J/HRLS ; 2623 D 0510, 1015,1432,1100 ; 2624 510: R-PF, AC, J/HLLZ D 0511, 0015,1432,3000 ; 2625 I-PF, AC, J/HLLZ D 0512, 0116,1432,0700 ; 2626 W, M, J/HLLZ D 0513, 0004,1432,1700 ; 2627 RW, S, J/HLLZ ; 2628 D 0514, 1015,1424,1100 ; 2629 R-PF, AC, J/HRLZ D 0515, 0015,1424,3000 ; 2630 I-PF, AC, J/HRLZ D 0516, 0116,1424,0700 ; 2631 W, M, J/HRLZ D 0517, 0004,1424,1700 ; 2632 RW, S, J/HRLZ ; 2633 D 0520, 1015,1433,1100 ; 2634 520: R-PF, AC, J/HLLO D 0521, 0015,1433,3000 ; 2635 I-PF, AC, J/HLLO D 0522, 0116,1433,0700 ; 2636 W, M, J/HLLO D 0523, 0004,1433,1700 ; 2637 RW, S, J/HLLO ; 2638 D 0524, 1015,1425,1100 ; 2639 R-PF, AC, J/HRLO D 0525, 0015,1425,3000 ; 2640 I-PF, AC, J/HRLO D 0526, 0116,1425,0700 ; 2641 W, M, J/HRLO D 0527, 0004,1425,1700 ; 2642 RW, S, J/HRLO ; 2643 D 0530, 1015,1430,1100 ; 2644 530: R-PF, AC, J/HLLE D 0531, 0015,1430,3000 ; 2645 I-PF, AC, J/HLLE D 0532, 0116,1430,0700 ; 2646 W, M, J/HLLE D 0533, 0004,1430,1700 ; 2647 RW, S, J/HLLE ; 2648 D 0534, 1015,1422,1100 ; 2649 R-PF, AC, J/HRLE D 0535, 0015,1422,3000 ; 2650 I-PF, AC, J/HRLE D 0536, 0116,1422,0700 ; 2651 W, M, J/HRLE D 0537, 0004,1422,1700 ; 2652 RW, S, J/HRLE ; 2653 ; T10KL.MCR[7,3] 15:10 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 ; 2654 ; DESTINATION RIGHT HALF ; 2655 D 0540, 1015,1407,1100 ; 2656 540: R-PF, AC, J/HRR D 0541, 0015,1407,3000 ; 2657 I-PF, AC, J/HRR D 0542, 0016,1410,1700 ; 2658 RW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE D 0543, 0004,1404,1700 ; 2659 RW, S, J/MOVE ;HRRS = MOVES ; 2660 D 0544, 1015,1412,1100 ; 2661 R-PF, AC, J/HLR D 0545, 0015,1412,3000 ; 2662 I-PF, AC, J/HLR D 0546, 0016,1415,1700 ; 2663 RW, M, J/HLRM D 0547, 0004,1416,1700 ; 2664 RW, S, J/HLRS ; 2665 D 0550, 1015,1420,1100 ; 2666 550: R-PF, AC, J/HRRZ D 0551, 0015,1420,3000 ; 2667 I-PF, AC, J/HRRZ D 0552, 0116,1420,0700 ; 2668 W, M, J/HRRZ D 0553, 0004,1420,1700 ; 2669 RW, S, J/HRRZ ; 2670 D 0554, 1015,1426,1100 ; 2671 R-PF, AC, J/HLRZ D 0555, 0015,1426,3000 ; 2672 I-PF, AC, J/HLRZ D 0556, 0116,1426,0700 ; 2673 W, M, J/HLRZ D 0557, 0004,1426,1700 ; 2674 RW, S, J/HLRZ ; 2675 D 0560, 1015,1421,1100 ; 2676 560: R-PF, AC, J/HRRO D 0561, 0015,1421,3000 ; 2677 I-PF, AC, J/HRRO D 0562, 0116,1421,0700 ; 2678 W, M, J/HRRO D 0563, 0004,1421,1700 ; 2679 RW, S, J/HRRO ; 2680 D 0564, 1015,1427,1100 ; 2681 R-PF, AC, J/HLRO D 0565, 0015,1427,3000 ; 2682 I-PF, AC, J/HLRO D 0566, 0116,1427,0700 ; 2683 W, M, J/HLRO D 0567, 0004,1427,1700 ; 2684 RW, S, J/HLRO ; 2685 D 0570, 1015,1417,1100 ; 2686 570: R-PF, AC, J/HRRE D 0571, 0015,1417,3000 ; 2687 I-PF, AC, J/HRRE D 0572, 0116,1417,0700 ; 2688 W, M, J/HRRE D 0573, 0004,1417,1700 ; 2689 RW, S, J/HRRE ; 2690 D 0574, 1015,1423,1100 ; 2691 R-PF, AC, J/HLRE D 0575, 0015,1423,3000 ; 2692 I-PF, AC, J/HLRE D 0576, 0116,1423,0700 ; 2693 W, M, J/HLRE D 0577, 0004,1423,1700 ; 2694 RW, S, J/HLRE ; 2695 ; 2696 .UCODE ; 2697 ; T10KL.MCR[7,3] 15:10 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 ; 2698 ;FIRST THE GUYS THAT LEAVE THE OTHER HALF ALONE ; 2699 ; 2700 ;THE AR CONTAINS THE MEMORY OPERAND. SO WE WANT TO PUT THE LH OF ; 2701 ; AC INTO AR TO DO A HRR. OBVIOUS THING FOR HLL. ; 2702 1407: U 1407, 1500,3771,0003,0276,0003,7700,0200,0003,0001 ; 2703 HRR: [AR]_AC,HOLD RIGHT,EXIT ; 2704 1410: U 1410, 1500,3771,0003,0270,6003,7700,0200,0003,0001 ; 2705 HLL: [AR]_AC,HOLD LEFT,EXIT ; 2706 ; 2707 ;HRL FLOW: ; 2708 ;AT HRL AR CONTAINS: ; 2709 ; ; 2710 ; !------------------!------------------! ; 2711 ; ! LH OF (E) ! RH OF (E) ! ; 2712 ; !------------------!------------------! ; 2713 ; ; 2714 ;AR_AR SWAP GIVES: ; 2715 ; ; 2716 ; !------------------!------------------! ; 2717 ; ! RH OF (E) ! LH OF (E) ! ; 2718 ; !------------------!------------------! ; 2719 ; ; 2720 ;AT HLL, AR_AC,HOLD LEFT GIVES: ; 2721 ; ; 2722 ; !------------------!------------------! ; 2723 ; ! RH OF (E) ! RH OF AC ! ; 2724 ; !------------------!------------------! ; 2725 ; ; 2726 ;THE EXIT MACRO CAUSES THE AR TO BE STORED IN AC (AT STAC). ; 2727 ; THE REST OF THE HALF WORD IN THIS GROUP ARE VERY SIMILAR. ; 2728 ; 2729 1411: U 1411, 1410,3770,0303,4344,4007,0700,0000,0000,0000 ; 2730 HRL: [AR]_[AR] SWAP,J/HLL ; 2731 1412: U 1412, 1407,3770,0303,4344,4007,0700,0000,0000,0000 ; 2732 HLR: [AR]_[AR] SWAP,J/HRR ; 2733 ; 2734 1413: U 1413, 0512,3770,0303,4344,4007,0700,0000,0000,0000 ; 2735 HRLM: [AR]_[AR] SWAP U 0512, 1402,3771,0003,0270,6007,0700,0000,0000,0000 ; 2736 [AR]_AC,HOLD LEFT,J/MOVS ; 2737 1414: U 1414, 1500,3770,0303,4344,0003,7700,0200,0003,0001 ; 2738 HRLS: [AR]_[AR] SWAP,HOLD RIGHT,EXIT ; 2739 ; 2740 1415: U 1415, 0531,3770,0303,4344,4007,0700,0000,0000,0000 ; 2741 HLRM: [AR]_[AR] SWAP U 0531, 1402,3771,0003,0276,0007,0700,0000,0000,0000 ; 2742 [AR]_AC,HOLD RIGHT,J/MOVS ; 2743 1416: U 1416, 1500,3770,0303,4340,4003,7700,0200,0003,0001 ; 2744 HLRS: [AR]_[AR] SWAP,HOLD LEFT,EXIT ; 2745 ; T10KL.MCR[7,3] 15:10 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 ; 2746 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF. ; 2747 ; ENTER WITH 0,,E (E) OR (AC) IN AR ; 2748 ; 2749 1417: U 1417, 1420,3333,0003,4174,4007,0530,0000,0000,0000 ; 2750 HRRE: READ [AR],SKIP DP18 ; 2751 1420: U 1420, 1500,5731,0003,4174,4003,7700,0200,0003,0001 ; 2752 HRRZ: [AR] LEFT_0, EXIT ; 2753 1421: U 1421, 1500,5431,1203,4174,4003,7700,0200,0003,0001 ; 2754 HRRO: [AR] LEFT_-1, EXIT ; 2755 ; 2756 1422: U 1422, 1424,3333,0003,4174,4007,0530,0000,0000,0000 ; 2757 HRLE: READ [AR],SKIP DP18 ; 2758 1424: U 1424, 1402,3771,0003,4374,0007,0700,0000,0000,0000 ; 2759 HRLZ: [AR]_#,#/0,HOLD RIGHT,J/MOVS ; 2760 1425: U 1425, 1402,3771,0003,4374,0007,0700,0000,0077,7777 ; 2761 HRLO: [AR]_#,#/777777,HOLD RIGHT,J/MOVS ; 2762 ; 2763 1423: U 1423, 1426,3333,0003,4174,4007,0520,0000,0000,0000 ; 2764 HLRE: READ [AR],SKIP DP0 ; 2765 1426: U 1426, 1402,3771,0003,4370,4007,0700,0000,0000,0000 ; 2766 HLRZ: [AR]_#,#/0,HOLD LEFT,J/MOVS ; 2767 1427: U 1427, 1402,3771,0003,4370,4007,0700,0000,0077,7777 ; 2768 HLRO: [AR]_#,#/777777,HOLD LEFT,J/MOVS ; 2769 ; 2770 1430: U 1430, 1432,3333,0003,4174,4007,0520,0000,0000,0000 ; 2771 HLLE: READ [AR],SKIP DP0 ; 2772 1432: U 1432, 1500,5371,0003,4174,4003,7700,0200,0003,0001 ; 2773 HLLZ: [AR] RIGHT_0, EXIT ; 2774 1433: U 1433, 1500,5341,1203,4174,4003,7700,0200,0003,0001 ; 2775 HLLO: [AR] RIGHT_-1, EXIT ; 2776 ; T10KL.MCR[7,3] 15:10 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 ; 2777 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM" ; 2778 ; 2779 .DCODE D 0120, 0205,1505,1100 ; 2780 120: DBL R, DAC, J/DAC D 0121, 0215,1434,1100 ; 2781 DBL R, AC, J/DMOVN ; 2782 .UCODE ; 2783 ; 2784 1434: U 1434, 3064,4551,0404,4374,0007,0700,0010,0037,7777 ; 2785 DMOVN: CLEAR ARX0, CALL [DBLNGA] U 1436, 1515,3440,0404,1174,4007,0700,0400,0000,1441 ; 2786 1436: AC[1]_[ARX], J/STAC ; 2787 ; 2788 .DCODE D 0124, 0300,1567,0100 ; 2789 124: DBL AC, J/DMOVN1 D 0125, 0100,1565,0500 ; 2790 W, J/DMOVNM ; 2791 .UCODE ; 2792 ; 2793 ; 2794 1565: U 1565, 3063,3771,0004,1276,6007,0701,0010,0000,1441 ; 2795 DMOVNM: [ARX]_AC[1],CALL [DBLNEG] ; 2796 1567: ; 2797 DMOVN1: [HR]+[ONE], ;GET E+1 ; 2798 LOAD VMA, ;PUT THAT IN VMA ; 2799 START WRITE, ;STORE IN E+1 U 1567, 0532,0113,0207,4174,4007,0700,0200,0003,0312 ; 2800 PXCT DATA ;DATA CYCLE U 0532, 0552,3333,0004,4175,5007,0701,0200,0000,0002 ; 2801 MEM WRITE, MEM_[ARX] ;STORE LOW WORD ; 2802 VMA_[HR], ;GET E ; 2803 LOAD VMA, ;SAVE IN VMA ; 2804 PXCT DATA, ;OPERAND STORE ; 2805 START WRITE, ;START MEM CYCLE U 0552, 0455,3443,0200,4174,4007,0700,0200,0003,0312 ; 2806 J/STORE ;GO STORE AR ; 2807 ; T10KL.MCR[7,3] 15:10 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 ; 2808 .TOC "BOOLEAN GROUP" ; 2809 ; 2810 .DCODE D 0400, 0015,1441,3000 ; 2811 400: I-PF, AC, J/SETZ D 0401, 0015,1441,3000 ; 2812 I-PF, AC, J/SETZ D 0402, 0016,1441,2700 ; 2813 IW, M, J/SETZ D 0403, 0017,1441,2700 ; 2814 IW, B, J/SETZ ; 2815 .UCODE ; 2816 ; 2817 1441: U 1441, 1500,4221,0003,4174,4003,7700,0200,0003,0001 ; 2818 SETZ: [AR]_0, EXIT ; 2819 ; 2820 .DCODE D 0404, 1015,1442,1100 ; 2821 404: R-PF, AC, J/AND D 0405, 0015,1442,3000 ; 2822 I-PF, AC, J/AND D 0406, 0016,1442,1700 ; 2823 RW, M, J/AND D 0407, 0017,1442,1700 ; 2824 RW, B, J/AND ; 2825 .UCODE ; 2826 ; 2827 1442: U 1442, 1500,4551,0303,0274,4003,7700,0200,0003,0001 ; 2828 AND: [AR]_[AR].AND.AC,EXIT ; 2829 ; 2830 .DCODE D 0410, 1015,1443,1100 ; 2831 410: R-PF, AC, J/ANDCA D 0411, 0015,1443,3000 ; 2832 I-PF, AC, J/ANDCA D 0412, 0016,1443,1700 ; 2833 RW, M, J/ANDCA D 0413, 0017,1443,1700 ; 2834 RW, B, J/ANDCA ; 2835 .UCODE ; 2836 ; 2837 1443: U 1443, 1500,5551,0303,0274,4003,7700,0200,0003,0001 ; 2838 ANDCA: [AR]_[AR].AND.NOT.AC,EXIT ; 2839 ; 2840 .DCODE D 0414, 1015,1404,1100 ; 2841 414: R-PF, AC, J/MOVE ;SETM = MOVE D 0415, 0015,1404,3000 ; 2842 I-PF, AC, J/MOVE D 0416, 0016,1404,1700 ; 2843 RW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY D 0417, 0017,1404,1700 ; 2844 RW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY ; 2845 D 0420, 1015,1444,1100 ; 2846 420: R-PF, AC, J/ANDCM D 0421, 0015,1444,3000 ; 2847 I-PF, AC, J/ANDCM D 0422, 0016,1444,1700 ; 2848 RW, M, J/ANDCM D 0423, 0017,1444,1700 ; 2849 RW, B, J/ANDCM ; 2850 .UCODE ; 2851 ; 2852 1444: U 1444, 1442,7441,0303,4174,4007,0700,0000,0000,0000 ; 2853 ANDCM: [AR]_.NOT.[AR],J/AND ; 2854 ; 2855 .DCODE D 0424, 0000,1400,1100 ; 2856 424: R, J/DONE D 0425, 0000,1400,2100 ; 2857 I, J/DONE D 0426, 0116,1404,0700 ; 2858 W, M, J/MOVE ;SETAM = MOVEM D 0427, 0116,1404,0700 ; 2859 W, M, J/MOVE ;SETAB, TOO ; 2860 .UCODE ; 2861 ; T10KL.MCR[7,3] 15:10 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 ; 2862 .DCODE D 0430, 1015,1445,1100 ; 2863 430: R-PF, AC, J/XOR D 0431, 0015,1445,3000 ; 2864 I-PF, AC, J/XOR D 0432, 0016,1445,1700 ; 2865 RW, M, J/XOR D 0433, 0017,1445,1700 ; 2866 RW, B, J/XOR ; 2867 .UCODE ; 2868 ; 2869 1445: U 1445, 1500,6551,0303,0274,4003,7700,0200,0003,0001 ; 2870 XOR: [AR]_[AR].XOR.AC,EXIT ; 2871 ; 2872 .DCODE D 0434, 1015,1446,1100 ; 2873 434: R-PF, AC, J/IOR D 0435, 0015,1446,3000 ; 2874 I-PF, AC, J/IOR D 0436, 0016,1446,1700 ; 2875 RW, M, J/IOR D 0437, 0017,1446,1700 ; 2876 RW, B, J/IOR ; 2877 .UCODE ; 2878 ; 2879 1446: U 1446, 1500,3551,0303,0274,4003,7700,0200,0003,0001 ; 2880 IOR: [AR]_[AR].OR.AC,EXIT ; 2881 ; 2882 .DCODE D 0440, 1015,1447,1100 ; 2883 440: R-PF, AC, J/ANDCB D 0441, 0015,1447,3000 ; 2884 I-PF, AC, J/ANDCB D 0442, 0016,1447,1700 ; 2885 RW, M, J/ANDCB D 0443, 0017,1447,1700 ; 2886 RW, B, J/ANDCB ; 2887 .UCODE ; 2888 ; 2889 1447: U 1447, 1443,7441,0303,4174,4007,0700,0000,0000,0000 ; 2890 ANDCB: [AR]_.NOT.[AR],J/ANDCA ; 2891 ; 2892 .DCODE D 0444, 1015,1450,1100 ; 2893 444: R-PF, AC, J/EQV D 0445, 0015,1450,3000 ; 2894 I-PF, AC, J/EQV D 0446, 0016,1450,1700 ; 2895 RW, M, J/EQV D 0447, 0017,1450,1700 ; 2896 RW, B, J/EQV ; 2897 .UCODE ; 2898 ; 2899 1450: U 1450, 1500,7551,0303,0274,4003,7700,0200,0003,0001 ; 2900 EQV: [AR]_[AR].EQV.AC,EXIT ; 2901 ; 2902 .DCODE D 0450, 0015,1451,3000 ; 2903 450: I-PF, AC, J/SETCA D 0451, 0015,1451,3000 ; 2904 I-PF, AC, J/SETCA D 0452, 0016,1451,2700 ; 2905 IW, M, J/SETCA D 0453, 0017,1451,2700 ; 2906 IW, B, J/SETCA ; 2907 .UCODE ; 2908 ; 2909 1451: U 1451, 1500,7771,0003,0274,4003,7700,0200,0003,0001 ; 2910 SETCA: [AR]_.NOT.AC,EXIT ; 2911 ; T10KL.MCR[7,3] 15:10 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 ; 2912 .DCODE D 0454, 1015,1452,1100 ; 2913 454: R-PF, AC, J/ORCA D 0455, 0015,1452,3000 ; 2914 I-PF, AC, J/ORCA D 0456, 0016,1452,1700 ; 2915 RW, M, J/ORCA D 0457, 0017,1452,1700 ; 2916 RW, B, J/ORCA ; 2917 .UCODE ; 2918 ; 2919 1452: U 1452, 0564,7771,0005,0274,4007,0700,0000,0000,0000 ; 2920 ORCA: [BR]_.NOT.AC U 0564, 1500,3111,0503,4174,4003,7700,0200,0003,0001 ; 2921 [AR]_[AR].OR.[BR],EXIT ; 2922 ; 2923 .DCODE D 0460, 1015,1453,1100 ; 2924 460: R-PF, AC, J/SETCM D 0461, 0015,1453,3000 ; 2925 I-PF, AC, J/SETCM D 0462, 0016,1453,1700 ; 2926 RW, M, J/SETCM D 0463, 0017,1453,1700 ; 2927 RW, B, J/SETCM ; 2928 .UCODE ; 2929 ; 2930 1453: U 1453, 1500,7441,0303,4174,4003,7700,0200,0003,0001 ; 2931 SETCM: [AR]_.NOT.[AR],EXIT ; 2932 ; 2933 .DCODE D 0464, 1015,1454,1100 ; 2934 464: R-PF, AC, J/ORCM D 0465, 0015,1454,3000 ; 2935 I-PF, AC, J/ORCM D 0466, 0016,1454,1700 ; 2936 RW, M, J/ORCM D 0467, 0017,1454,1700 ; 2937 RW, B, J/ORCM ; 2938 .UCODE ; 2939 ; 2940 1454: U 1454, 1446,7441,0303,4174,4007,0700,0000,0000,0000 ; 2941 ORCM: [AR]_.NOT.[AR],J/IOR ; 2942 ; 2943 .DCODE D 0470, 1015,1455,1100 ; 2944 470: R-PF, AC, J/ORCB D 0471, 0015,1455,3000 ; 2945 I-PF, AC, J/ORCB D 0472, 0016,1455,1700 ; 2946 RW, M, J/ORCB D 0473, 0017,1455,1700 ; 2947 RW, B, J/ORCB ; 2948 .UCODE ; 2949 ; 2950 1455: U 1455, 1453,4551,0303,0274,4007,0700,0000,0000,0000 ; 2951 ORCB: [AR]_[AR].AND.AC,J/SETCM ; 2952 ; 2953 .DCODE D 0474, 0015,1456,3000 ; 2954 474: I-PF, AC, J/SETO D 0475, 0015,1456,3000 ; 2955 I-PF, AC, J/SETO D 0476, 0016,1456,2700 ; 2956 IW, M, J/SETO D 0477, 0017,1456,2700 ; 2957 IW, B, J/SETO ; 2958 .UCODE ; 2959 ; 2960 1456: U 1456, 1500,2441,0703,4174,4003,7700,4200,0003,0001 ; 2961 SETO: [AR]_-[ONE], EXIT ; 2962 ; T10KL.MCR[7,3] 15:10 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 ; 2963 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO" ; 2964 ; 2965 .DCODE D 0240, 0400,1622,1000 ; 2966 240: SH, J/ASH D 0241, 0400,1632,1000 ; 2967 SH, J/ROT D 0242, 0400,1612,1000 ; 2968 SH, J/LSH D 0243, 0000,1462,2100 ; 2969 I, J/JFFO D 0244, 0000,1466,3000 ; 2970 I-PF, J/ASHC D 0245, 0500,1470,1000 ; 2971 245: SHC, J/ROTC D 0246, 0500,1464,1000 ; 2972 SHC, J/LSHC ; 2973 .UCODE ; 2974 ; 2975 ; 2976 ;HERE IS THE CODE FOR LOGICAL SHIFT. THE EFFECTIVE ADDRESS IS ; 2977 ; IN AR. ; 2978 1612: ; 2979 LSH: [AR]_AC, ;PICK UP AC ; 2980 FE_-FE-1, ;NEGATIVE SHIFT U 1612, 0572,3771,0003,0276,6007,0700,1000,0031,1777 ; 2981 J/LSHL ;SHIFT LEFT ; 2982 1613: [AR]_AC.AND.MASK, ;MAKE IT LOOK POSITIVE ; 2983 FE_FE+1, ;UNDO -1 AT SHIFT U 1613, 0604,4551,1203,0276,6007,0700,1000,0041,0001 ; 2984 J/ASHR ;GO SHIFT RIGHT ; 2985 ; 2986 LSHL: [AR]_[AR]*2, ;SHIFT LEFT U 0572, 1515,3445,0303,4174,4007,0700,1020,0041,0001 ; 2987 SHIFT, J/STAC ;FAST SHIFT & GO STORE AC ; 2988 ; T10KL.MCR[7,3] 15:10 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 ; 2989 ;HERE IS THE CODE FOR ARITHMETIC SHIFT. THE EFFECTIVE ADDRESS IS ; 2990 ; IN AR. ; 2991 ; 2992 ASH36 LEFT "[AR]_[AR]*2 LONG, ASHC, STEP SC, ASH AROV" ; 2993 ; 2994 1622: U 1622, 0612,4222,0000,4174,4007,0700,0000,0000,0000 ; 2995 ASH: Q_0, J/ASHL0 ;HARDWARE ONLY DOES ASHC ; 2996 1623: [AR]_AC, ;GET THE ARGUMENT U 1623, 0604,3771,0003,0276,6007,0700,1000,0041,0001 ; 2997 FE_FE+1 ;FE HAS NEGATIVE SHIFT COUNT ; 2998 ASHR: [AR]_[AR]*.5, ;SHIFT RIGHT ; 2999 ASH, SHIFT, ;FAST SHIFT U 0604, 1515,3447,0303,4174,4007,0700,1020,0041,0001 ; 3000 J/STAC ;STORE AC WHEN DONE ; 3001 ; 3002 ASHL0: [AR]_AC*.5, ;GET INTO 9 CHIPS U 0612, 0502,3777,0003,0274,4007,0631,2000,0060,0000 ; 3003 STEP SC ;SEE IF NULL SHIFT ; 3004 =0 U 0502, 0502,3444,0303,4174,4447,0630,2000,0060,0000 ; 3005 ASHL: ASH36 LEFT, J/ASHL ;SHIFT LEFT ; 3006 ;SLOW BECAUSE WE HAVE TO ; 3007 ; TEST FOR OVERFLOW ; 3008 U 0503, 1515,3445,0303,4174,4007,0700,0000,0000,0000 ; 3009 ASHX: [AR]_[AR]*2, J/STAC ;SHIFT BACK INTO 10 CHIPS ; 3010 ; T10KL.MCR[7,3] 15:10 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 ; 3011 ;HERE IS THE CODE FOR ROTATE. THE EFFECTIVE ADDRESS IS ; 3012 ; IN AR. ; 3013 1632: ; 3014 ROT: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) ; 3015 FE_-FE-1, ;NEGATIVE SHIFT COUNT U 1632, 0701,3777,0003,0274,4007,0701,1000,0031,1777 ; 3016 J/ROTL ;ROTATE LEFT ; 3017 1633: [AR]_AC*.5, ;PICK UP THE AC (& SHIFT) U 1633, 0631,3777,0003,0274,4007,0701,1000,0041,0001 ; 3018 FE_FE+1 ;NEGATIVE SHIFT COUNT U 0631, 0646,3447,0303,4174,4007,0700,0000,0000,0000 ; 3019 [AR]_[AR]*.5 ;PUT IN 9 DIPS ; 3020 [AR]_[AR]*.5, ;SHIFT RIGHT U 0646, 0652,3447,0303,4174,4037,0700,1020,0041,0001 ; 3021 ROT, SHIFT ;FAST SHIFT U 0652, 0503,3445,0303,4174,4007,0700,0000,0000,0000 ; 3022 ASHXX: [AR]_[AR]*2,J/ASHX ;SHIFT TO STD PLACE ; 3023 U 0701, 0706,3447,0303,4174,4007,0700,0000,0000,0000 ; 3024 ROTL: [AR]_[AR]*.5 ;PUT IN RIGHT 36-BITS ; 3025 [AR]_[AR]*2, ;ROTATE LEFT ; 3026 ROT, SHIFT, ;FAST SHIFT U 0706, 0652,3445,0303,4174,4037,0700,1020,0041,0001 ; 3027 J/ASHXX ;ALL DONE--SHIFT BACK ; 3028 ; T10KL.MCR[7,3] 15:10 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 ; 3029 1462: ; 3030 JFFO: [BR]_AC.AND.MASK, 4T, ;GET AC WITH NO SIGN U 1462, 0514,4551,1205,0276,6007,0622,0000,0000,0000 ; 3031 SKIP AD.EQ.0 ; EXTENSION. SKIP IF ; 3032 ; ZERO. ; 3033 =0 [PC]_[AR], ;NOT ZERO--JUMP ; 3034 LOAD VMA, FETCH, ;GET NEXT INST U 0514, 0747,3441,0301,4174,4007,0700,0200,0014,0012 ; 3035 J/JFFO1 ;ENTER LOOP U 0515, 1400,4223,0000,1174,4007,0700,0400,0000,1441 ; 3036 AC[1]_0, J/DONE ;ZERO--DONE ; 3037 U 0747, 0534,4443,0000,4174,4007,0700,1000,0071,1764 ; 3038 JFFO1: FE_-12. ;WHY -12.? WELL THE ; 3039 ; HARDWARE LOOKS AT ; 3040 ; BIT -2 SO THE FIRST ; 3041 ; 2 STEPS MOVE THE BR ; 3042 ; OVER. WE ALSO LOOK AT ; 3043 ; THE DATA BEFORE THE SHIFT ; 3044 ; SO WE END UP GOING 1 PLACE ; 3045 ; TOO MANY. THAT MEANS THE ; 3046 ; FE SHOULD START AT -3. ; 3047 ; HOWEVER, WE COUNT THE FE BY ; 3048 ; 4 (BECAUSE THE 2 LOW ORDER ; 3049 ; BITS DO NOT COME BACK) SO ; 3050 ; FE_-12. ; 3051 =0 ; 3052 JFFOL: [BR]_[BR]*2, ;SHIFT LEFT ; 3053 FE_FE+4, ;COUNT UP BIT NUMBER U 0534, 0534,3445,0505,4174,4007,0520,1000,0041,0004 ; 3054 SKIP DP0, J/JFFOL ;LOOP TILL WE FIND THE BIT U 0535, 0767,3777,0003,4334,4057,0700,0000,0041,0000 ; 3055 [AR]_FE ;GET ANSWER BACK U 0767, 1006,4251,0303,4374,4007,0700,0000,0000,0077 ; 3056 [AR]_[AR].AND.# CLR LH,#/77 ;MASK TO 1 COPY U 1006, 0100,3440,0303,1174,4156,4700,0400,0000,1441 ; 3057 AC[1]_[AR], NEXT INST ;STORE AND EXIT ; 3058 ; T10KL.MCR[7,3] 15:10 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 ; 3059 .TOC "ROTATES AND LOGICAL SHIFTS -- LSHC" ; 3060 ; 3061 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "LSHC" IS DONE: ; 3062 ; ; 3063 ; !-! !----!------------------------------------! ; 3064 ; !0!-->!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3065 ; !-! !----!------------------------------------! ; 3066 ; ^ ; 3067 ; : ; 3068 ; .................................... ; 3069 ; : ; 3070 ; !----!------------------------------------! ; 3071 ; !0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3072 ; !----!------------------------------------! ; 3073 ; ^ ; 3074 ; : ; 3075 ; !-! ; 3076 ; !0! ; 3077 ; !-! ; 3078 ; ; 3079 ; 3080 1464: U 1464, 0554,4443,0000,4174,4007,0630,2000,0060,0000 ; 3081 LSHC: STEP SC, J/LSHCL U 1465, 1014,3333,0003,4174,4007,0700,2000,0031,5777 ; 3082 1465: READ [AR], SC_-SHIFT-1 U 1014, 0544,4443,0000,4174,4007,0630,2000,0060,0000 ; 3083 STEP SC ; 3084 =0 U 0544, 0544,3446,0505,4174,4057,0630,2000,0060,0000 ; 3085 LSHCR: [BR]_[BR]*.5 LONG,STEP SC,LSHC,J/LSHCR U 0545, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3086 [BR]_[BR]*2 LONG,J/LSHCX ; 3087 ; 3088 =0 U 0554, 0554,3444,0505,4174,4057,0630,2000,0060,0000 ; 3089 LSHCL: [BR]_[BR]*2 LONG,LSHC,STEP SC,J/LSHCL U 0555, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3090 [BR]_[BR]*2 LONG U 1033, 1036,3444,0505,4174,4007,0700,0000,0000,0000 ; 3091 LSHCX: [BR]_[BR]*2 LONG U 1036, 1062,3440,0505,0174,4007,0700,0400,0000,0000 ; 3092 AC_[BR], J/ASHCQ1 ; 3093 ; T10KL.MCR[7,3] 15:10 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 ; 3094 .TOC "ROTATES AND LOGICAL SHIFTS -- ASHC" ; 3095 ; 3096 ; 3097 1466: ; 3098 ASHC: READ [AR], ;PUT AR ON DP ; 3099 SC_SHIFT, LOAD FE, ;PUT SHIFT IN BOTH SC AND FE U 1466, 0602,3333,0003,4174,4007,0330,3000,0041,4000 ; 3100 SKIP ADR.EQ.0 ;SEE IF NULL SHIFT ; 3101 =0 Q_AC[1], ;NOT NULL--GET LOW WORD U 0602, 1046,3772,0000,1275,5007,0701,0000,0000,1441 ; 3102 J/ASHC1 ;CONTINUE BELOW U 0603, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3103 NIDISP: NEXT INST ;NULL--ALL DONE ; 3104 ASHC1: [BR]_AC*.5 LONG, ;GET HIGH WORD ; 3105 ;AND SHIFT Q U 1046, 0614,3776,0005,0274,4007,0631,0000,0000,0000 ; 3106 SKIP/SC ;SEE WHICH DIRECTION ; 3107 =0 [BR]_[BR]*.5, ;ADJUST POSITION ; 3108 SC_FE+S#, S#/1776, ;SUBRTACT 2 FROM FE U 0614, 0634,3447,0505,4174,4007,0700,2000,0041,1776 ; 3109 J/ASHCL ;GO LEFT ; 3110 [BR]_[BR]*.5, ;ADJUST POSITION U 0615, 0624,3447,0505,4174,4007,0700,2000,0031,1776 ; 3111 SC_S#-FE, S#/1776 ;SC_-2-FE, SC_+# OF STEPS ; 3112 =0 ;HERE TO GO RIGHT ; 3113 ASHCR: [BR]_[BR]*.5 LONG, ;GO RIGHT ; 3114 ASHC, ;SET DATA PATHS FOR ASHC (SEE DPE1) U 0624, 0624,3446,0505,4174,4047,0630,2000,0060,0000 ; 3115 STEP SC, J/ASHCR ;COUNT THE STEP AND KEEP LOOPING ; 3116 [BR]_[BR]*2 LONG, ;PUT BACK WHERE IT GOES U 0625, 1053,3444,0505,4174,4047,0700,0000,0000,0000 ; 3117 ASHC, J/ASHCX ;COMPLETE INSTRUCTION ; 3118 ; 3119 =0 ; 3120 ASHCL: [BR]_[BR]*2 LONG, ;GO LEFT ; 3121 ASHC, ASH AROV, ;SEE IF OVERFLOW U 0634, 0634,3444,0505,4174,4447,0630,2000,0060,0000 ; 3122 STEP SC, J/ASHCL ;LOOP OVER ALL PLACES ; 3123 [BR]_[BR]*2 LONG, ;SHIFT BACK WHERE IT GOES U 0635, 1053,3444,0505,4174,4447,0700,0000,0000,0000 ; 3124 ASHC, ASH AROV ;CAN STILL OVERFLOW ; 3125 ASHCX: AC_[BR]+[BR], 3T, ;PUT BACK HIGH WORD U 1053, 0642,0113,0505,0174,4007,0521,0400,0000,0000 ; 3126 SKIP DP0 ;SEE HOW TO FIX LOW SIGN ; 3127 =0 Q_Q.AND.#, #/377777, ;POSITIVE, CLEAR LOW SIGN U 0642, 1062,4662,0000,4374,0007,0700,0000,0037,7777 ; 3128 HOLD RIGHT, J/ASHCQ1 ;GO STORE ANSWER ; 3129 Q_Q.OR.#, #/400000, ;NEGATIVE, SET LOW SIGN U 0643, 1062,3662,0000,4374,0007,0700,0000,0040,0000 ; 3130 HOLD RIGHT ;IN LEFT HALF U 1062, 0100,3223,0000,1174,4156,4700,0400,0000,1441 ; 3131 ASHCQ1: AC[1]_Q, NEXT INST ;PUT BACK Q AND EXIT ; 3132 ; T10KL.MCR[7,3] 15:10 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 ; 3133 .TOC "ROTATES AND LOGICAL SHIFTS -- ROTC" ; 3134 ; 3135 ;SHIFT CONNECTIONS WHEN THE SPECIAL FUNCTION "ROTC" IS DONE: ; 3136 ; ; 3137 ; !----!------------------------------------! ; 3138 ; .....>!0000! HIGH ORDER 36 BITS ! RAM FILE ; 3139 ; : !----!------------------------------------! ; 3140 ; : ^ ; 3141 ; : : ; 3142 ; : ............................................ ; 3143 ; : : ; 3144 ; : : !----!------------------------------------! ; 3145 ; : ..!0000! LOW ORDER 36 BITS ! Q-REGISTER ; 3146 ; : !----!------------------------------------! ; 3147 ; : ^ ; 3148 ; : : ; 3149 ; :..............................................: ; 3150 ; ; 3151 ; 3152 1470: U 1470, 0742,4443,0000,4174,4007,0630,2000,0060,0000 ; 3153 ROTC: STEP SC, J/ROTCL U 1471, 1077,3333,0003,4174,4007,0700,2000,0031,5777 ; 3154 1471: READ [AR], SC_-SHIFT-1 U 1077, 0644,4443,0000,4174,4007,0630,2000,0060,0000 ; 3155 STEP SC ; 3156 =0 U 0644, 0644,3446,0505,4174,4077,0630,2000,0060,0000 ; 3157 ROTCR: [BR]_[BR]*.5 LONG,STEP SC,ROTC,J/ROTCR U 0645, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3158 [BR]_[BR]*2 LONG,J/LSHCX ; 3159 ; 3160 =0 U 0742, 0742,3444,0505,4174,4077,0630,2000,0060,0000 ; 3161 ROTCL: [BR]_[BR]*2 LONG,ROTC,STEP SC,J/ROTCL ; 3162 [BR]_[BR]*2 LONG, U 0743, 1033,3444,0505,4174,4007,0700,0000,0000,0000 ; 3163 J/LSHCX ; 3164 ; T10KL.MCR[7,3] 15:10 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 ; 3165 .TOC "TEST GROUP" ; 3166 ; 3167 .DCODE ; 3168 ; 3169 ;SPECIAL MACROS USED ONLY IN B-FIELD OF TEST INSTRUCTIONS ; 3170 TN- "B/4" ; 3171 TNE "B/0" ; 3172 WORD-TNE "B/10" ;USED IN TIOE ; 3173 TNA "B/0" ; 3174 TNN "B/4" ; 3175 WORD-TNN "B/14" ;USED IN TION ; 3176 TZ- "B/5" ; 3177 TZE "B/1" ; 3178 TZA "B/1" ; 3179 TZN "B/5" ; 3180 TC- "B/6" ; 3181 TCE "B/2" ; 3182 TCA "B/2" ; 3183 TCN "B/6" ; 3184 TO- "B/7" ; 3185 TOE "B/3" ; 3186 TOA "B/3" ; 3187 TON "B/7" ; 3188 D 0600, 0000,1400,2100 ; 3189 600: I, J/DONE ;TRN- IS NOP D 0601, 0000,1400,2100 ; 3190 I, J/DONE ;SO IS TLN- D 0602, 0000,1475,2100 ; 3191 I, TNE, J/TDXX D 0603, 0000,1474,2100 ; 3192 I, TNE, J/TSXX D 0604, 0000,1473,2100 ; 3193 I, TNA, J/TDX D 0605, 0000,1472,2100 ; 3194 I, TNA, J/TSX D 0606, 0004,1475,2100 ; 3195 I, TNN, J/TDXX D 0607, 0004,1474,2100 ; 3196 I, TNN, J/TSXX ; 3197 D 0610, 0000,1400,2100 ; 3198 610: I, J/DONE ;TDN- IS A NOP D 0611, 0000,1400,2100 ; 3199 I, J/DONE ;TSN- ALSO D 0612, 0000,1475,1100 ; 3200 R, TNE, J/TDXX D 0613, 0000,1474,1100 ; 3201 R, TNE, J/TSXX D 0614, 0000,1473,1100 ; 3202 R, TNA, J/TDX D 0615, 0000,1472,1100 ; 3203 R, TNA, J/TSX D 0616, 0004,1475,1100 ; 3204 R, TNN, J/TDXX D 0617, 0004,1474,1100 ; 3205 R, TNN, J/TSXX ; 3206 D 0620, 0005,1473,2100 ; 3207 620: I, TZ-, J/TDX D 0621, 0005,1472,2100 ; 3208 I, TZ-, J/TSX D 0622, 0001,1475,2100 ; 3209 I, TZE, J/TDXX D 0623, 0001,1474,2100 ; 3210 I, TZE, J/TSXX D 0624, 0001,1473,2100 ; 3211 I, TZA, J/TDX D 0625, 0001,1472,2100 ; 3212 I, TZA, J/TSX D 0626, 0005,1475,2100 ; 3213 I, TZN, J/TDXX D 0627, 0005,1474,2100 ; 3214 I, TZN, J/TSXX ; 3215 ; T10KL.MCR[7,3] 15:10 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 ; 3216 630: R, TZ-, J/TDX D 0631, 0005,1472,1100 ; 3217 R, TZ-, J/TSX D 0632, 0001,1475,1100 ; 3218 R, TZE, J/TDXX D 0633, 0001,1474,1100 ; 3219 R, TZE, J/TSXX D 0634, 0001,1473,1100 ; 3220 R, TZA, J/TDX D 0635, 0001,1472,1100 ; 3221 R, TZA, J/TSX D 0636, 0005,1475,1100 ; 3222 R, TZN, J/TDXX D 0637, 0005,1474,1100 ; 3223 R, TZN, J/TSXX ; 3224 D 0640, 0006,1473,2100 ; 3225 640: I, TC-, J/TDX D 0641, 0006,1472,2100 ; 3226 I, TC-, J/TSX D 0642, 0002,1475,2100 ; 3227 I, TCE, J/TDXX D 0643, 0002,1474,2100 ; 3228 I, TCE, J/TSXX D 0644, 0002,1473,2100 ; 3229 I, TCA, J/TDX D 0645, 0002,1472,2100 ; 3230 I, TCA, J/TSX D 0646, 0006,1475,2100 ; 3231 I, TCN, J/TDXX D 0647, 0006,1474,2100 ; 3232 I, TCN, J/TSXX ; 3233 D 0650, 0006,1473,1100 ; 3234 650: R, TC-, J/TDX D 0651, 0006,1472,1100 ; 3235 R, TC-, J/TSX D 0652, 0002,1475,1100 ; 3236 R, TCE, J/TDXX D 0653, 0002,1474,1100 ; 3237 R, TCE, J/TSXX D 0654, 0002,1473,1100 ; 3238 R, TCA, J/TDX D 0655, 0002,1472,1100 ; 3239 R, TCA, J/TSX D 0656, 0006,1475,1100 ; 3240 R, TCN, J/TDXX D 0657, 0006,1474,1100 ; 3241 R, TCN, J/TSXX D 0660, 0007,1473,2100 ; 3242 660: I, TO-, J/TDX D 0661, 0007,1472,2100 ; 3243 I, TO-, J/TSX D 0662, 0003,1475,2100 ; 3244 I, TOE, J/TDXX D 0663, 0003,1474,2100 ; 3245 I, TOE, J/TSXX D 0664, 0003,1473,2100 ; 3246 I, TOA, J/TDX D 0665, 0003,1472,2100 ; 3247 I, TOA, J/TSX D 0666, 0007,1475,2100 ; 3248 I, TON, J/TDXX D 0667, 0007,1474,2100 ; 3249 I, TON, J/TSXX ; 3250 D 0670, 0007,1473,1100 ; 3251 670: R, TO-, J/TDX D 0671, 0007,1472,1100 ; 3252 R, TO-, J/TSX D 0672, 0003,1475,1100 ; 3253 R, TOE, J/TDXX D 0673, 0003,1474,1100 ; 3254 R, TOE, J/TSXX D 0674, 0003,1473,1100 ; 3255 R, TOA, J/TDX D 0675, 0003,1472,1100 ; 3256 R, TOA, J/TSX D 0676, 0007,1475,1100 ; 3257 R, TON, J/TDXX D 0677, 0007,1474,1100 ; 3258 R, TON, J/TSXX ; 3259 ; T10KL.MCR[7,3] 15:10 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 ; 3260 .UCODE ; 3261 ; 3262 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE(IMMEDIATE OR MEMORY) ; 3263 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH ; 3264 ; FOR THE MODIFICATION ON THE B FIELD. ; 3265 ; 3266 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 2 AND 3 AS FOLLOWS: ; 3267 ; 0 0 NO MODIFICATION ; 3268 ; 0 1 0S ; 3269 ; 1 0 COMPLEMENT ; 3270 ; 1 1 ONES ; 3271 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE ; 3272 ; ORDER OF INSTRUCTIONS AT TGROUP. ; 3273 ; 3274 ;THE BIT 1 OF THE B FIELD IS USED TO DETERMINE THE SENSE ; 3275 ; OF THE SKIP ; 3276 ; 1 SKIP IF AC.AND.MASK .NE. 0 (TXX- AND TXXN) ; 3277 ; 0 SKIP IF AC.AND.MASK .EQ. 0 (TXXA AND TXXE) ; 3278 ; 3279 ;BIT 0 IS UNUSED AND MUST BE ZERO ; 3280 ; 3281 ; 3282 1472: U 1472, 1473,3770,0303,4344,4007,0700,0000,0000,0000 ; 3283 TSX: [AR]_[AR] SWAP ;TSXX AND TLXX ; 3284 1473: U 1473, 0014,4221,0005,4174,4003,7700,0000,0000,0000 ; 3285 TDX: [BR]_0,TEST DISP ; ALWAYS AND NEVER SKIP CASES ; 3286 ; 3287 1474: U 1474, 1475,3770,0303,4344,4007,0700,0000,0000,0000 ; 3288 TSXX: [AR]_[AR] SWAP ;TSXE, TSXN, TLXE, TLXN ; 3289 1475: ; 3290 TDXX: [BR]_[AR].AND.AC, ;TDXE, TDXN, TRXE, TRXN U 1475, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 3291 TEST DISP ; 3292 ; T10KL.MCR[7,3] 15:10 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 ; 3293 ;TEST DISP DOES AN 8 WAY BRANCH BASED ON THE B-FIELD OF DROM ; 3294 ; 3295 =1100 ; 3296 TEST-TABLE: ; 3297 ; 3298 ;CASE 0 & 4 -- TXNX U 0014, 1400,3333,0005,4174,4007,0571,0000,0000,0000 ; 3299 TXXX: READ [BR], TXXX TEST, 3T, J/DONE ; 3300 ; 3301 ;CASE 1 & 5 -- TXZ AND TXZX U 0015, 1117,7441,0303,4174,4007,0700,0000,0000,0000 ; 3302 [AR]_.NOT.[AR],J/TXZX ; 3303 ; 3304 ;CASE 2 & 6 -- TXC AND TXCX U 0016, 1122,6551,0303,0274,4007,0700,0000,0000,0000 ; 3305 [AR]_[AR].XOR.AC,J/TDONE ; 3306 ; 3307 ;CASE 3 & 7 -- TXO AND TXOX U 0017, 1122,3551,0303,0274,4007,0700,0000,0000,0000 ; 3308 [AR]_[AR].OR.AC,J/TDONE ; 3309 ; 3310 ;THE SPECIAL FUNCTION TXXX TEST CAUSES A MICROCODE SKIP IF ; 3311 ; AD.EQ.0 AND DROM B IS 0-3 OR AD.NE.0 AND DROM B IS 4-7. ; 3312 U 1117, 1122,4551,0303,0274,4007,0700,0000,0000,0000 ; 3313 TXZX: [AR]_[AR].AND.AC U 1122, 0014,3440,0303,0174,4007,0700,0400,0000,0000 ; 3314 TDONE: AC_[AR],J/TXXX ; 3315 ; READ BR,TXXX TEST,J/DONE ; 3316 ; T10KL.MCR[7,3] 15:10 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 ; 3317 .TOC "COMPARE -- CAI, CAM" ; 3318 ; 3319 .DCODE ; 3320 ; 3321 ;SPECIAL B-FIELD ENCODING USED BY SKIP-JUMP-COMPARE CLASS ; 3322 ; INSTRUCTIONS: ; 3323 ; 3324 SJC- "B/0" ;NEVER ; 3325 SJCL "B/1" ;LESS ; 3326 SJCE "B/2" ;EQUAL ; 3327 SJCLE "B/3" ;LESS EQUAL ; 3328 SJCA "B/4" ;ALWAYS ; 3329 SJCGE "B/5" ;GREATER THAN OR EQUAL ; 3330 SJCN "B/6" ;NOT EQUAL ; 3331 SJCG "B/7" ;GREATER ; 3332 ; 3333 .UCODE ; 3334 ; 3335 ;COMPARE TABLE ; 3336 =1000 ; 3337 SKIP-COMP-TABLE: ; 3338 ; 3339 ;CASE 0 -- NEVER U 0250, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3340 DONE ; 3341 ; 3342 ;CASE 1 -- LESS U 0251, 1400,3333,0003,4174,4007,0520,0000,0000,0000 ; 3343 READ [AR], SKIP DP0,J/DONE ; 3344 ; 3345 ;CASE 2 -- EQUAL U 0252, 1400,3333,0003,4174,4007,0621,0000,0000,0000 ; 3346 SKIPE: READ [AR], SKIP AD.EQ.0,J/DONE ; 3347 ; 3348 ;CASE 3 -- LESS OR EQUAL U 0253, 1400,3333,0003,4174,4007,0421,0000,0000,0000 ; 3349 READ [AR], SKIP AD.LE.0,J/DONE ; 3350 ; 3351 ;CASE 4 -- ALWAYS U 0254, 0110,0111,0701,4170,4156,4700,0200,0014,0012 ; 3352 VMA_[PC]+1, NEXT INST FETCH, FETCH ; 3353 ; 3354 ;CASE 5 -- GREATER THAN OR EQUAL U 0255, 0260,3333,0003,4174,4007,0520,0000,0000,0000 ; 3355 READ [AR], SKIP DP0,J/SKIP ; 3356 ; 3357 ;CASE 6 -- NOT EQUAL U 0256, 0260,3333,0003,4174,4007,0621,0000,0000,0000 ; 3358 READ [AR], SKIP AD.EQ.0,J/SKIP ; 3359 ; 3360 ;CASE 7 -- GREATER U 0257, 0260,3333,0003,4174,4007,0421,0000,0000,0000 ; 3361 READ [AR], SKIP AD.LE.0,J/SKIP ; 3362 ; T10KL.MCR[7,3] 15:10 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 ; 3363 .DCODE D 0300, 0000,1400,2100 ; 3364 300: I, SJC-, J/DONE ;CAI D 0301, 0001,1476,2100 ; 3365 I, SJCL, J/CAIM D 0302, 0002,1476,2100 ; 3366 I, SJCE, J/CAIM D 0303, 0003,1476,2100 ; 3367 I, SJCLE, J/CAIM D 0304, 0004,1476,2100 ; 3368 I, SJCA, J/CAIM D 0305, 0005,1476,2100 ; 3369 I, SJCGE, J/CAIM D 0306, 0006,1476,2100 ; 3370 I, SJCN, J/CAIM D 0307, 0007,1476,2100 ; 3371 I, SJCG, J/CAIM ; 3372 D 0310, 0000,1476,1100 ; 3373 310: R, SJC-, J/CAIM ;CAM D 0311, 0001,1476,1100 ; 3374 R, SJCL, J/CAIM D 0312, 0002,1476,1100 ; 3375 R, SJCE, J/CAIM D 0313, 0003,1476,1100 ; 3376 R, SJCLE, J/CAIM D 0314, 0004,1476,1100 ; 3377 R, SJCA, J/CAIM D 0315, 0005,1476,1100 ; 3378 R, SJCGE, J/CAIM D 0316, 0006,1476,1100 ; 3379 R, SJCN, J/CAIM D 0317, 0007,1476,1100 ; 3380 R, SJCG, J/CAIM ; 3381 .UCODE ; 3382 ; 3383 1476: U 1476, 0250,2551,0303,0274,4003,7701,4000,0000,0000 ; 3384 CAIM: [AR]_AC-[AR], 3T, SKIP-COMP DISP ; 3385 ; T10KL.MCR[7,3] 15:10 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 ; 3386 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP" ; 3387 ;ENTER WITH (E) IN AR ; 3388 ; 3389 .DCODE D 0330, 0000,1477,1100 ; 3390 330: R, SJC-, J/SKIPS ;NOT A NOP IF AC .NE. 0 D 0331, 0001,1477,1100 ; 3391 R, SJCL, J/SKIPS D 0332, 0002,1477,1100 ; 3392 R, SJCE, J/SKIPS D 0333, 0003,1477,1100 ; 3393 R, SJCLE, J/SKIPS D 0334, 0004,1477,1100 ; 3394 R, SJCA, J/SKIPS D 0335, 0005,1477,1100 ; 3395 R, SJCGE, J/SKIPS D 0336, 0006,1477,1100 ; 3396 R, SJCN, J/SKIPS D 0337, 0007,1477,1100 ; 3397 R, SJCG, J/SKIPS ; 3398 .UCODE ; 3399 ; 3400 1477: ; 3401 SKIPS: FIX [AR] SIGN, U 1477, 0744,3770,0303,4174,0007,0360,0000,0000,0000 ; 3402 SKIP IF AC0 U 0744, 0250,3440,0303,0174,4003,7700,0400,0000,0000 ; 3403 =0 AC_[AR],SKIP-COMP DISP U 0745, 0250,4443,0000,4174,4003,7700,0000,0000,0000 ; 3404 SKIP-COMP DISP ; 3405 ; 3406 .DCODE D 0350, 0000,1431,1500 ; 3407 350: RW, SJC-, J/AOS D 0351, 0001,1431,1500 ; 3408 RW, SJCL, J/AOS D 0352, 0002,1431,1500 ; 3409 RW, SJCE, J/AOS D 0353, 0003,1431,1500 ; 3410 RW, SJCLE, J/AOS D 0354, 0004,1431,1500 ; 3411 RW, SJCA, J/AOS D 0355, 0005,1431,1500 ; 3412 RW, SJCGE, J/AOS D 0356, 0006,1431,1500 ; 3413 RW, SJCN, J/AOS D 0357, 0007,1431,1500 ; 3414 RW, SJCG, J/AOS ; 3415 .UCODE ; 3416 ; 3417 1431: U 1431, 1127,0111,0703,4174,4467,0701,0000,0001,0001 ; 3418 AOS: [AR]_[AR]+1, 3T, AD FLAGS U 1127, 1142,4443,0000,4174,4007,0700,0200,0003,0002 ; 3419 XOS: START WRITE U 1142, 1477,3333,0003,4175,5007,0701,0200,0000,0002 ; 3420 MEM WRITE,MEM_[AR],J/SKIPS ; 3421 ; 3422 .DCODE D 0370, 0000,1437,1500 ; 3423 370: RW, SJC-, J/SOS D 0371, 0001,1437,1500 ; 3424 RW, SJCL, J/SOS D 0372, 0002,1437,1500 ; 3425 RW, SJCE, J/SOS D 0373, 0003,1437,1500 ; 3426 RW, SJCLE, J/SOS D 0374, 0004,1437,1500 ; 3427 RW, SJCA, J/SOS D 0375, 0005,1437,1500 ; 3428 RW, SJCGE, J/SOS D 0376, 0006,1437,1500 ; 3429 RW, SJCN, J/SOS D 0377, 0007,1437,1500 ; 3430 RW, SJCG, J/SOS ; 3431 .UCODE ; 3432 ; 3433 1437: U 1437, 1127,1111,0703,4174,4467,0701,4000,0001,0001 ; 3434 SOS: [AR]_[AR]-1, 3T, AD FLAGS, J/XOS ; 3435 ; T10KL.MCR[7,3] 15:10 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 ; 3436 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ" ; 3437 ; ENTER WITH E IN AR ; 3438 ; 3439 =1000 ; 3440 JUMP-TABLE: ; 3441 ; 3442 ;CASE 0 -- NEVER U 0270, 0100,3440,0505,0174,4156,4700,0400,0000,0000 ; 3443 AC_[BR], NEXT INST ; 3444 ; 3445 ;CASE 1 -- LESS U 0271, 0762,3770,0505,0174,4007,0520,0400,0000,0000 ; 3446 AC_[BR] TEST, SKIP DP0, J/JUMP- ; 3447 ; 3448 ;CASE 2 -- EQUAL U 0272, 0762,3770,0505,0174,4007,0621,0400,0000,0000 ; 3449 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMP- ; 3450 ; 3451 ;CASE 3 -- LESS THAN OR EQUAL U 0273, 0762,3770,0505,0174,4007,0421,0400,0000,0000 ; 3452 AC_[BR] TEST, SKIP AD.LE.0, J/JUMP- ; 3453 ; 3454 ;CASE 4 -- ALWAYS U 0274, 0764,3440,0505,0174,4007,0700,0400,0000,0000 ; 3455 JMPA: AC_[BR], J/JUMPA ; 3456 ; 3457 ;CASE 5 -- GREATER THAN OR EQUAL TO U 0275, 0764,3770,0505,0174,4007,0520,0400,0000,0000 ; 3458 AC_[BR] TEST, SKIP DP0, J/JUMPA ; 3459 ; 3460 ;CASE 6 -- NOT EQUAL U 0276, 0764,3770,0505,0174,4007,0621,0400,0000,0000 ; 3461 AC_[BR] TEST, SKIP AD.EQ.0, J/JUMPA ; 3462 ; 3463 ;CASE 7 -- GREATER U 0277, 0764,3770,0505,0174,4007,0421,0400,0000,0000 ; 3464 AC_[BR] TEST, SKIP AD.LE.0, J/JUMPA ; 3465 ; 3466 =0 U 0762, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3467 JUMP-: DONE U 0763, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3468 JUMPA ; 3469 ; 3470 =0 U 0764, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3471 JUMPA: JUMPA U 0765, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 3472 DONE ; 3473 ; 3474 ; T10KL.MCR[7,3] 15:10 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 ; 3475 .DCODE D 0320, 0000,1400,2100 ; 3476 320: I, SJC-, J/DONE D 0321, 0001,1440,2100 ; 3477 I, SJCL, J/JUMP D 0322, 0002,1440,2100 ; 3478 I, SJCE, J/JUMP D 0323, 0003,1440,2100 ; 3479 I, SJCLE, J/JUMP D 0324, 0004,1520,2100 ; 3480 I, SJCA, J/JRST D 0325, 0005,1440,2100 ; 3481 I, SJCGE, J/JUMP D 0326, 0006,1440,2100 ; 3482 I, SJCN, J/JUMP D 0327, 0007,1440,2100 ; 3483 I, SJCG, J/JUMP ; 3484 .UCODE ; 3485 ; 3486 1440: U 1440, 0270,3771,0005,0276,6003,7700,0000,0000,0000 ; 3487 JUMP: [BR]_AC,JUMP DISP ; 3488 ; 3489 .DCODE D 0340, 0000,1611,3000 ; 3490 340: I-PF, SJC-, J/AOJ D 0341, 0001,1611,2100 ; 3491 I, SJCL, J/AOJ D 0342, 0002,1611,2100 ; 3492 I, SJCE, J/AOJ D 0343, 0003,1611,2100 ; 3493 I, SJCLE, J/AOJ D 0344, 0004,1611,2100 ; 3494 I, SJCA, J/AOJ D 0345, 0005,1611,2100 ; 3495 I, SJCGE, J/AOJ D 0346, 0006,1611,2100 ; 3496 I, SJCN, J/AOJ D 0347, 0007,1611,2100 ; 3497 I, SJCG, J/AOJ ; 3498 .UCODE ; 3499 ; 3500 1611: U 1611, 0270,0551,0705,0274,4463,7702,0000,0001,0001 ; 3501 AOJ: [BR]_AC+1, AD FLAGS, 4T, JUMP DISP ; 3502 ; 3503 .DCODE D 0360, 0000,1542,3000 ; 3504 360: I-PF, SJC-, J/SOJ D 0361, 0001,1542,2100 ; 3505 I, SJCL, J/SOJ D 0362, 0002,1542,2100 ; 3506 I, SJCE, J/SOJ D 0363, 0003,1542,2100 ; 3507 I, SJCLE, J/SOJ D 0364, 0004,1542,2100 ; 3508 I, SJCA, J/SOJ D 0365, 0005,1542,2100 ; 3509 I, SJCGE, J/SOJ D 0366, 0006,1542,2100 ; 3510 I, SJCN, J/SOJ D 0367, 0007,1542,2100 ; 3511 I, SJCG, J/SOJ ; 3512 .UCODE ; 3513 ; 3514 1542: U 1542, 0270,2551,0705,0274,4463,7702,4000,0001,0001 ; 3515 SOJ: [BR]_AC-1, AD FLAGS, 4T, JUMP DISP ; 3516 ; 3517 .DCODE D 0252, 0005,1547,2100 ; 3518 252: I, SJCGE, J/AOBJ D 0253, 0001,1547,2100 ; 3519 I, SJCL, J/AOBJ ; 3520 .UCODE ; 3521 ; 3522 1547: ; 3523 AOBJ: [BR]_AC+1000001, ;ADD 1 TO BOTH HALF WORDS ; 3524 INH CRY18, 3T, ;NO CARRY INTO LEFT HALF U 1547, 0270,0551,1505,0274,4403,7701,0000,0000,0000 ; 3525 JUMP DISP ;HANDLE EITHER AOBJP OR AOBJN ; 3526 ; T10KL.MCR[7,3] 15:10 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 ; 3527 .TOC "AC DECODE JUMPS -- JRST, JFCL" ; 3528 ; 3529 .DCODE D 0254, 0000,1520,6000 ; 3530 254: I,VMA/0, AC DISP, J/JRST ;DISPATCHES TO 1 OF 16 ; 3531 ; PLACES ON AC BITS D 0255, 0000,1540,2100 ; 3532 I, J/JFCL ; 3533 .UCODE ; 3534 ; 3535 ;JRST DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS ; 3536 ; 3537 =0000 ; 3538 1520: U 1520, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3539 JRST: JUMPA ;(0) JRST 0, U 1521, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3540 1521: JUMPA ;(1) PORTAL IS SAME AS JRST ; 3541 1522: VMA_[PC]-1, START READ, ;(2) JRSTF U 1522, 0150,1113,0701,4170,4007,0700,4200,0004,0012 ; 3542 J/JRSTF U 1523, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3543 1523: UUO ;(3) U 1524, 1004,4443,0000,4174,4007,0340,0000,0000,0000 ; 3544 1524: SKIP KERNEL, J/HALT ;(4) HALT ; 3545 1525: ; 3546 XJRSTF0: VMA_[AR], START READ, ;(5) XJRSTF U 1525, 2105,3443,0300,4174,4007,0700,0200,0004,0012 ; 3547 J/XJRSTF U 1526, 0320,4443,0000,4174,4007,0340,0000,0000,0000 ; 3548 1526: SKIP KERNEL, J/XJEN ;(6) XJEN U 1527, 1034,4443,0000,4174,4007,0340,0000,0000,0000 ; 3549 1527: SKIP KERNEL, J/XPCW ;(7) XPCW ; 3550 1530: VMA_[PC]-1, START READ, ;(10) U 1530, 1024,1113,0701,4170,4007,0040,4200,0004,0012 ; 3551 SKIP IO LEGAL, J/JRST10 U 1531, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3552 1531: UUO ;(11) ; 3553 1532: VMA_[PC]-1, START READ, ;(12) JEN U 1532, 0300,1113,0701,4170,4007,0040,4200,0004,0012 ; 3554 SKIP IO LEGAL, J/JEN U 1533, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3555 1533: UUO ;(13) U 1534, 1044,4443,0000,4174,4007,0340,0000,0000,0000 ; 3556 1534: SKIP KERNEL, J/SFM ;(14) SFM U 1535, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3557 1535: UUO ;(15) U 1536, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3558 1536: UUO ;(16) U 1537, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3559 1537: UUO ;(17) ; 3560 ; T10KL.MCR[7,3] 15:10 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 ; 3561 =0* ; 3562 JRSTF: MEM READ, ;WAIT FOR DATA ; 3563 [HR]_MEM, ;STICK IN HR ; 3564 LOAD INST EA, ;LOAD @ AND XR U 0150, 1147,3771,0002,4365,5217,0700,0210,0000,0002 ; 3565 CALL [JRST0] ;COMPUTE EA AGAIN U 0152, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3566 JUMPA ;JUMP ; 3567 U 1147, 0030,4443,0000,2174,4006,6700,0000,0000,0000 ; 3568 JRST0: EA MODE DISP ;WHAT TYPE OF EA? ; 3569 =100* ; 3570 READ XR, ;INDEXED ; 3571 LOAD FLAGS, ;GET FLAGS FROM XR ; 3572 UPDATE USER, ;ALLOW USER TO SET U 0030, 0002,3773,0000,2274,4464,1700,0000,0001,0004 ; 3573 RETURN [2] ;ALL DONE ; 3574 READ [HR], ;PLAIN ; 3575 LOAD FLAGS, ;LOAD FLAGS FROM INST ; 3576 UPDATE USER, ;ALLOW USER TO SET U 0032, 0002,3333,0002,4174,4464,1700,0000,0001,0004 ; 3577 RETURN [2] ;RETURN ; 3578 [HR]_[HR]+XR, ;BOTH ; 3579 LOAD VMA, ;FETCH IND WORD ; 3580 START READ, ;START MEM CYCLE U 0034, 1155,0551,0202,2270,4007,0700,0200,0004,0012 ; 3581 J/JRST1 ;CONTINUE BELOW ; 3582 VMA_[HR], ;INDIRECT ; 3583 START READ, ;FETCH IND WORD ; 3584 PXCT EA, ;SETUP PXCT STUFF U 0036, 1155,3443,0200,4174,4007,0700,0200,0004,0112 ; 3585 J/JRST1 ;CONTINUE BELOW ; 3586 JRST1: MEM READ, ;WAIT FOR DATA ; 3587 [HR]_MEM, ;LOAD THE HR ; 3588 LOAD INST EA, ;LOAD @ AND XR U 1155, 1147,3771,0002,4365,5217,0700,0200,0000,0002 ; 3589 J/JRST0 ;LOOP BACK ; 3590 ; T10KL.MCR[7,3] 15:10 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 ; 3591 =0 U 1004, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3592 HALT: UUO ;USER MODE U 1005, 2102,3441,0301,4174,4007,0700,0000,0000,0000 ; 3593 [PC]_[AR] ;EXEC MODE--CHANGE PC U 2102, 0104,4751,1217,4374,4007,0700,0000,0000,0001 ; 3594 HALT [HALT] ;HALT INSTRUCTION ; 3595 ; 3596 =0 U 1024, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3597 JRST10: UUO U 1025, 0303,4443,0000,4174,4007,0700,0000,0000,0000 ; 3598 J/JEN2 ;DISMISS INTERRUPT ; 3599 =0000 U 0300, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3600 JEN: UUO ; FLAGS ; 3601 MEM READ, ; 3602 [HR]_MEM, ;GET INST ; 3603 LOAD INST EA, ;LOAD XR & @ U 0301, 1147,3771,0002,4365,5217,0700,0210,0000,0002 ; 3604 CALL [JRST0] ;COMPUTE FLAGS ; 3605 =0011 U 0303, 2452,4553,1400,4374,4007,0331,0010,0007,7400 ; 3606 JEN2: DISMISS ;DISMISS INTERRUPT U 0307, 3624,3770,1416,4344,4007,0700,0010,0000,0000 ; 3607 =0111 CALL LOAD PI ;RELOAD PI HARDWARE U 0317, 0110,3441,0301,4170,4156,4700,0200,0014,0012 ; 3608 =1111 JUMPA ;GO JUMP ; 3609 = ; 3610 ; 3611 1540: ; 3612 JFCL: JFCL FLAGS, ;ALL DONE IN HARDWARE ; 3613 SKIP JFCL, ;SEE IF SKIPS ; 3614 3T, ;ALLOW TIME U 1540, 0762,4443,0000,4174,4467,0551,0000,0001,0010 ; 3615 J/JUMP- ;JUMP IF WE SHOULD ; 3616 ; T10KL.MCR[7,3] 15:10 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 ; 3617 .TOC "EXTENDED ADDRESSING INSTRUCTIONS" ; 3618 ; 3619 =0000 U 0320, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3620 XJEN: UUO ;HERE IF USER MODE U 0321, 2452,4553,1400,4374,4007,0331,0010,0007,7400 ; 3621 DISMISS ;CLEAR HIGHEST INTERRUPT U 0325, 0335,3333,0012,4174,4437,0700,0000,0000,0000 ; 3622 =0101 READ [MASK], LOAD PI ;NO MORE INTERRUPTS ; 3623 =1101 ABORT MEM CYCLE, ;AVOID INTERRUPT PAGE FAIL U 0335, 1525,4223,0000,4364,4277,0700,0200,0000,0010 ; 3624 J/XJRSTF0 ;START READING FLAG WORD ; 3625 = ; 3626 U 2105, 2611,3771,0005,4365,5007,0700,0200,0000,0002 ; 3627 XJRSTF: MEM READ, [BR]_MEM ;PUT FLAGS IN BR ; 3628 [AR]_[AR]+1, ;INCREMENT ADDRESS ; 3629 LOAD VMA, ;PUT RESULT IN VMA U 2611, 2616,0111,0703,4174,4007,0700,0200,0004,0012 ; 3630 START READ ;START MEMORY ; 3631 MEM READ, [PC]_MEM, ;PUT DATA IN PC U 2616, 2677,3771,0001,4361,5007,0700,0200,0000,0002 ; 3632 HOLD LEFT ;IGNORE SECTION NUMBER ; 3633 READ [BR], LOAD FLAGS, ;LOAD NEW FLAGS U 2677, 2710,3333,0005,4174,4467,0700,0000,0001,0004 ; 3634 UPDATE USER ;BUT HOLD USER FLAG ; 3635 PISET: [FLG]_[FLG].AND.NOT.#, ;CLEAR PI CYCLE U 2710, 0405,5551,1313,4374,4007,0700,0000,0001,0000 ; 3636 FLG.PI/1, J/PIEXIT ;RELOAD PI HARDWARE ; 3637 ; INCASE THIS IS AN ; 3638 ; INTERRUPT INSTRUCTION ; 3639 ; 3640 =0 U 1034, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3641 XPCW: UUO ;USER MODE U 1035, 0060,4521,1205,4074,4007,0700,0000,0000,0000 ; 3642 [BR]_FLAGS ;PUT FLAGS IN BR ; 3643 =0*0 ; 3644 PIXPCW: VMA_[AR], START WRITE, ;STORE FLAGS U 0060, 3703,3443,0300,4174,4007,0700,0210,0003,0012 ; 3645 CALL [STOBR] ;PUT BR IN MEMORY ; 3646 =1*0 VMA_[AR]+1, LOAD VMA, ; 3647 START WRITE, ;PREPEARE TO STORE PC U 0064, 3704,0111,0703,4170,4007,0700,0210,0003,0012 ; 3648 CALL [STOPC] ;PUT PC IN MEMORY ; 3649 =1*1 [AR]_[AR]+1, ;DO NEW PC PART U 0065, 2105,0111,0703,4174,4007,0700,0200,0004,0002 ; 3650 START READ, J/XJRSTF ; 3651 = ; 3652 ; 3653 =0 U 1044, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3654 SFM: UUO U 1045, 2711,3443,0300,4174,4007,0700,0200,0003,0012 ; 3655 VMA_[AR], START WRITE ;STORE FLAGS U 2711, 0455,4521,1203,4074,4007,0700,0000,0000,0000 ; 3656 [AR]_FLAGS, J/STORE ;STORE AND EXIT ; 3657 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 101 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 XCT ; 3658 .TOC "XCT" ; 3659 ; 3660 .DCODE D 0256, 0000,1541,1100 ; 3661 256: R, J/XCT ;OPERAND FETCHED AS DATA ; 3662 .UCODE ; 3663 ; 3664 1541: U 1541, 1152,4443,0000,4174,4007,0340,0000,0000,0000 ; 3665 XCT: SKIP KERNEL ;SEE IF MAY BE PXCT ; 3666 =0 ; 3667 XCT1A: [HR]_[AR], ;STUFF INTO HR ; 3668 DBUS/DP, ;PLACE ON DBUS FOR IR ; 3669 LOAD INST, ;LOAD IR, AC, XR, ETC. ; 3670 PXCT/E1, ;ALLOW XR TO BE PREVIOUS U 1152, 2712,3441,0302,4174,4617,0700,0000,0000,0100 ; 3671 J/XCT1 ;CONTINUE BELOW ; 3672 ; 3673 READ [HR], ;LOAD PXCT FLAGS ; 3674 LOAD PXCT, ; .. U 1153, 1152,3333,0002,4174,4167,0700,0000,0000,0000 ; 3675 J/XCT1A ;CONTINUE WITH NORMAL FLOW ; 3676 ; 3677 XCT1: WORK[YSAVE]_[HR] CLR LH,;SAVE FOR IO INSTRUCTIONS U 2712, 0366,4713,1202,7174,4007,0700,0400,0000,0422 ; 3678 J/XCT2 ;GO EXECUTE IT ; 3679 ; T10KL.MCR[7,3] 15:10 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 ; 3680 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ" ; 3681 ; 3682 .DCODE D 0260, 0000,1544,2100 ; 3683 260: I, B/0, J/PUSHJ D 0261, 0002,1543,3100 ; 3684 IR, B/2, J/PUSH D 0262, 0002,1545,2100 ; 3685 I, B/2, J/POP D 0263, 0000,1546,2100 ; 3686 I, J/POPJ ; 3687 .UCODE ; 3688 ; 3689 ;ALL START WITH E IN AR ; 3690 1543: ; 3691 PUSH: MEM READ, ;PUT MEMOP IN BR U 1543, 2713,3771,0005,4365,5007,0700,0200,0000,0002 ; 3692 [BR]_MEM ; .. ; 3693 PUSH1: [ARX]_AC+1000001, ;BUMP BOTH HALVES OF AC ; 3694 INH CRY18, ;NO CARRY ; 3695 LOAD VMA, ;START TO STORE ITEM ; 3696 START WRITE, ;START MEM CYCLE ; 3697 PXCT STACK WORD, ;THIS IS THE STACK DATA WORD ; 3698 3T, ;ALLOW TIME ; 3699 SKIP CRY0, ;GO TO STMAC, SKIP IF PDL OV U 2713, 1156,0551,1504,0274,4407,0311,0200,0003,0712 ; 3700 J/STMAC ; .. ; 3701 ; 3702 1544: ; 3703 PUSHJ: [BR]_PC WITH FLAGS, ;COMPUTE UPDATED FLAGS ; 3704 CLR FPD, ;CLEAR FIRST-PART-DONE U 1544, 2713,3741,0105,4074,4467,0700,0000,0005,0000 ; 3705 J/PUSH1 ; AND JOIN PUSH CODE ; 3706 ; 3707 =0 ; 3708 STMAC: MEM WRITE, ;WAIT FOR MEMORY ; 3709 MEM_[BR], ;STORE BR ON STACK ; 3710 B DISP, ;SEE IF PUSH OR PUSHJ U 1156, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3711 J/JSTAC ;BELOW ; 3712 ;WE MUST STORE THE STACK WORD PRIOR TO SETTING PDL OV IN CASE OF ; 3713 ; PAGE FAIL. ; 3714 MEM WRITE, ;WAIT FOR MEMORY U 1157, 2714,3333,0005,4175,5007,0701,0200,0000,0002 ; 3715 MEM_[BR] ;STORE BR ; 3716 SETPDL: SET PDL OV, ;OVERFLOW ; 3717 B DISP, ;SEE IF PUSH OR PUSHJ U 2714, 0220,4443,0000,4174,4463,7700,0000,0001,2000 ; 3718 J/JSTAC ;BELOW ; 3719 ; 3720 =00 ; 3721 JSTAC: [PC]_[AR], ;PUSHJ--LOAD PC ; 3722 LOAD VMA, ;LOAD ADDRESS U 0220, 0221,3441,0301,4174,4007,0700,0200,0014,0012 ; 3723 FETCH ;GET NEXT INST ; 3724 JSTAC1: AC_[ARX], ;STORE BACK STACK PTR U 0221, 0100,3440,0404,0174,4156,4700,0400,0000,0000 ; 3725 NEXT INST ;DO NEXT INST ; 3726 AC_[ARX], ;UPDATE STACK POINTER U 0222, 1400,3440,0404,0174,4007,0700,0400,0000,0000 ; 3727 J/DONE ;DO NEXT INST ; 3728 = ; 3729 ; T10KL.MCR[7,3] 15:10 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 ; 3730 1545: ; 3731 POP: [ARX]_AC, ;GET POINTER ; 3732 LOAD VMA, ;ADDRESS OF STACK WORD ; 3733 START READ, 3T, ;START CYCLE U 1545, 2715,3771,0004,0276,6007,0701,0200,0004,0712 ; 3734 PXCT STACK WORD ;FOR PXCT ; 3735 ; 3736 MEM READ, ;LOAD BR (QUIT IF PAGE FAIL) U 2715, 2716,3771,0005,4365,5007,0700,0200,0000,0002 ; 3737 [BR]_MEM ;STACK WORD TO BR ; 3738 ; 3739 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3740 #/777777, ;-1 IN EACH HALF ; 3741 INH CRY18, 3T, ;BUT NO CARRY U 2716, 1160,0551,0404,4374,4407,0311,0000,0077,7777 ; 3742 SKIP CRY0 ;SEE IF OVERFLOW ; 3743 ; 3744 =0 VMA_[AR], ;EFFECTIVE ADDRESS ; 3745 PXCT DATA, ;FOR PXCT ; 3746 START WRITE, ;WHERE TO STORE RESULT U 1160, 2720,3443,0300,4174,4007,0700,0200,0003,0312 ; 3747 J/POPX1 ;OVERFLOW ; 3748 ; 3749 VMA_[AR], ;EFFECTIVE ADDRESS ; 3750 PXCT DATA, ;FOR PXCT U 1161, 2717,3443,0300,4174,4007,0700,0200,0003,0312 ; 3751 START WRITE ;WHERE TO STORE RESULT ; 3752 ; 3753 MEM WRITE, ;WAIT FOR MEM ; 3754 MEM_[BR], ;STORE BR ; 3755 B DISP, ;POP OR POPJ? U 2717, 0220,3333,0005,4175,5003,7701,0200,0000,0002 ; 3756 J/JSTAC ;STORE POINTER ; 3757 ; 3758 ; 3759 POPX1: MEM WRITE, ;WAIT FOR MEMORY ; 3760 MEM_[BR], ;STORE BR U 2720, 2714,3333,0005,4175,5007,0701,0200,0000,0002 ; 3761 J/SETPDL ;GO SET PDL OV ; 3762 ; 3763 1546: ; 3764 POPJ: [ARX]_AC, ;GET POINTER ; 3765 LOAD VMA, ;POINT TO STACK WORD ; 3766 PXCT STACK WORD, 3T, ;FOR PXCT U 1546, 2721,3771,0004,0276,6007,0701,0200,0004,0712 ; 3767 START READ ;START READ ; 3768 [ARX]_[ARX]+#, ;UPDATE POINTER ; 3769 #/777777, ;-1 IN BOTH HALFS ; 3770 INH CRY18, 3T, ;INHIBIT CARRY 18 U 2721, 1162,0551,0404,4374,4407,0311,0000,0077,7777 ; 3771 SKIP CRY0 ;SEE IF OVERFLOW U 1162, 1163,4443,0000,4174,4467,0700,0000,0001,2000 ; 3772 =0 SET PDL OV ;SET OVERFLOW ; 3773 MEM READ, [PC]_MEM, ;STICK DATA IN PC ; 3774 HOLD LEFT, ;NO FLAGS U 1163, 0221,3771,0001,4361,5007,0700,0200,0000,0002 ; 3775 J/JSTAC1 ;STORE POINTER ; 3776 ; T10KL.MCR[7,3] 15:10 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 ; 3777 .TOC "STACK INSTRUCTIONS -- ADJSP" ; 3778 ; 3779 .DCODE D 0105, 0000,1551,3000 ; 3780 105: I-PF, B/0, J/ADJSP ; 3781 .UCODE ; 3782 ; 3783 1551: ; 3784 ADJSP: [AR]_[AR] SWAP, ;MAKE 2 COPIES OF RH U 1551, 2722,3770,0303,4344,0007,0700,0000,0000,0000 ; 3785 HOLD RIGHT ; 3786 [BR]_AC, ;READ AC, SEE IF MINUS ; 3787 3T, U 2722, 1164,3771,0005,0276,6007,0521,0000,0000,0000 ; 3788 SKIP DP0 ; 3789 =0 AC_[BR]+[AR], ;UPDATE AC ; 3790 INH CRY18, ;NO CARRY ; 3791 SKIP DP0, ;SEE IF STILL OK ; 3792 3T, ;ALLOW TIME U 1164, 1166,0113,0503,0174,4407,0521,0400,0000,0000 ; 3793 J/ADJSP1 ;TEST FOR OFLO ; 3794 AC_[BR]+[AR], ;UPDATE AC ; 3795 INH CRY18, ;NO CARRY ; 3796 SKIP DP0, ;SEE IF STILL MINUS ; 3797 3T, ;ALLOW TIME FOR SKIP U 1165, 1170,0113,0503,0174,4407,0521,0400,0000,0000 ; 3798 J/ADJSP2 ;CONTINUE BELOW ; 3799 ; 3800 =0 U 1166, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3801 ADJSP1: NEXT INST ;NO OVERFLOW ; 3802 SET PDL OV, ;SET PDL OV U 1167, 0603,4443,0000,4174,4467,0700,0000,0001,2000 ; 3803 J/NIDISP ;GO DO NICOND DISP ; 3804 ; 3805 =0 ; 3806 ADJSP2: SET PDL OV, ;SET PDL OV U 1170, 0603,4443,0000,4174,4467,0700,0000,0001,2000 ; 3807 J/NIDISP ;GO DO NICOND DISP U 1171, 0100,4443,0000,4174,4156,4700,0000,0000,0000 ; 3808 NEXT INST ;NO OVERFLOW ; 3809 ; T10KL.MCR[7,3] 15:10 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 ; 3810 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA" ; 3811 ; 3812 .DCODE D 0264, 0000,1552,2100 ; 3813 264: I, J/JSR D 0265, 0000,1550,2100 ; 3814 I, J/JSP D 0266, 0000,1554,2100 ; 3815 I, J/JSA D 0267, 0000,1555,2100 ; 3816 I, J/JRA ; 3817 .UCODE ; 3818 ; 3819 1550: U 1550, 2723,3741,0105,4074,4007,0700,0000,0000,0000 ; 3820 JSP: [BR]_PC WITH FLAGS ;GET PC WITH FLAGS ; 3821 CLR FPD, ;CLEAR FIRST-PART-DONE ; 3822 AC_[BR], ;STORE FLAGS U 2723, 0764,3440,0505,0174,4467,0700,0400,0005,0000 ; 3823 J/JUMPA ;GO JUMP ; 3824 ; 3825 1552: ; 3826 JSR: [BR]_PC WITH FLAGS, ;GET PC WITH FLAGS U 1552, 2724,3741,0105,4074,4467,0700,0000,0005,0000 ; 3827 CLR FPD ;CLEAR FIRST-PART-DONE ; 3828 VMA_[AR], ;EFFECTIVE ADDRESS U 2724, 2725,3443,0300,4174,4007,0700,0200,0003,0012 ; 3829 START WRITE ;STORE OLD PC WORD ; 3830 MEM WRITE, ;WAIT FOR MEMORY U 2725, 2726,3333,0005,4175,5007,0701,0200,0000,0002 ; 3831 MEM_[BR] ;STORE ; 3832 [PC]_[AR]+1000001, ;PC _ E+1 ; 3833 HOLD LEFT, ;NO JUNK IN LEFT ; 3834 3T, ;ALLOW TIME FOR DBM U 2726, 1400,0551,0301,4370,4007,0701,0000,0000,0001 ; 3835 J/DONE ;[127] START AT E+1 ; 3836 ;[127] MUST NICOND TO CLEAR TRAP CYCLE ; 3837 ; 3838 ; 3839 ; 3840 1554: ; 3841 JSA: [BR]_[AR], ;SAVE E U 1554, 2727,3441,0305,4174,4007,0700,0200,0003,0002 ; 3842 START WRITE ;START TO STORE U 2727, 0130,3770,0304,4344,4007,0700,0000,0000,0000 ; 3843 [ARX]_[AR] SWAP ;ARX LEFT _ E ; 3844 =0*0 [AR]_AC, ;GET OLD AC U 0130, 3071,3771,0003,0276,6007,0700,0010,0000,0000 ; 3845 CALL [IBPX] ;SAVE AR IN MEMORY ; 3846 =1*0 [ARX]_[PC], ;ARX NOW HAS E,,PC ; 3847 HOLD LEFT, ; .. U 0134, 3705,3441,0104,4170,4007,0700,0010,0000,0000 ; 3848 CALL [AC_ARX] ;GO PUT ARX IN AC ; 3849 =1*1 [PC]_[BR]+1000001, ;NEW PC ; 3850 3T, ;ALLOW TIME ; 3851 HOLD LEFT, ;NO JUNK IN PC LEFT U 0135, 1400,0551,0501,4370,4007,0701,0000,0000,0001 ; 3852 J/DONE ;[127] START AT E+1 ; 3853 ;[127] NICOND MUST CLEAR TRAP CYCLE ; 3854 = ; 3855 ; 3856 1555: U 1555, 2730,3771,0005,0276,6007,0700,0000,0000,0000 ; 3857 JRA: [BR]_AC ;GET AC U 2730, 2731,3770,0505,4344,4007,0700,0000,0000,0000 ; 3858 [BR]_[BR] SWAP ;OLD E IN BR RIGHT ; 3859 VMA_[BR], ;LOAD VMA U 2731, 2732,3443,0500,4174,4007,0700,0200,0004,0012 ; 3860 START READ ;FETCH SAVED AC ; 3861 MEM READ, ;WAIT FOR MEMORY ; 3862 [BR]_MEM, ;LOAD BR WITH SAVE AC U 2732, 0274,3771,0005,4365,5007,0700,0200,0000,0002 ; 3863 J/JMPA ;GO JUMP ; 3864 ; T10KL.MCR[7,3] 15:10 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 ; 3865 .TOC "ILLEGAL INSTRUCTIONS AND UUO'S" ; 3866 ;LUUO'S TRAP TO CURRENT CONTEXT ; 3867 ; 3868 .DCODE D 0030, 0000,1557,2100 ; 3869 030: I, B/0, J/LUUO D 0031, 0001,1557,2100 ; 3870 I, B/1, J/LUUO D 0032, 0002,1557,2100 ; 3871 I, B/2, J/LUUO D 0033, 0003,1557,2100 ; 3872 I, B/3, J/LUUO D 0034, 0004,1557,2100 ; 3873 I, B/4, J/LUUO D 0035, 0005,1557,2100 ; 3874 I, B/5, J/LUUO D 0036, 0006,1557,2100 ; 3875 I, B/6, J/LUUO D 0037, 0007,1557,2100 ; 3876 I, B/7, J/LUUO ; 3877 ; 3878 ;MONITOR UUO'S -- TRAP TO EXEC ; 3879 D 0040, 0000,1556,2100 ; 3880 040: I, J/MUUO ;CALL D 0041, 0000,1556,2100 ; 3881 I, J/MUUO ;INIT D 0042, 0000,1556,2100 ; 3882 I, J/MUUO D 0043, 0000,1556,2100 ; 3883 I, J/MUUO D 0044, 0000,1556,2100 ; 3884 I, J/MUUO D 0045, 0000,1556,2100 ; 3885 I, J/MUUO D 0046, 0000,1556,2100 ; 3886 I, J/MUUO D 0047, 0000,1556,2100 ; 3887 I, J/MUUO ;CALLI D 0050, 0000,1556,2100 ; 3888 I, J/MUUO ;OPEN D 0051, 0000,1556,2100 ; 3889 I, J/MUUO ;TTCALL D 0052, 0000,1556,2100 ; 3890 I, J/MUUO D 0053, 0000,1556,2100 ; 3891 I, J/MUUO D 0054, 0000,1556,2100 ; 3892 I, J/MUUO D 0055, 0000,1556,2100 ; 3893 I, J/MUUO ;RENAME D 0056, 0000,1556,2100 ; 3894 I, J/MUUO ;IN D 0057, 0000,1556,2100 ; 3895 I, J/MUUO ;OUT D 0060, 0000,1556,2100 ; 3896 I, J/MUUO ;SETSTS D 0061, 0000,1556,2100 ; 3897 I, J/MUUO ;STATO D 0062, 0000,1556,2100 ; 3898 I, J/MUUO ;GETSTS D 0063, 0000,1556,2100 ; 3899 I, J/MUUO ;STATZ D 0064, 0000,1556,2100 ; 3900 I, J/MUUO ;INBUF D 0065, 0000,1556,2100 ; 3901 I, J/MUUO ;OUTBUF D 0066, 0000,1556,2100 ; 3902 I, J/MUUO ;INPUT D 0067, 0000,1556,2100 ; 3903 I, J/MUUO ;OUTPUT D 0070, 0000,1556,2100 ; 3904 I, J/MUUO ;CLOSE D 0071, 0000,1556,2100 ; 3905 I, J/MUUO ;RELEAS D 0072, 0000,1556,2100 ; 3906 I, J/MUUO ;MTAPE D 0073, 0000,1556,2100 ; 3907 I, J/MUUO ;UGETF D 0074, 0000,1556,2100 ; 3908 I, J/MUUO ;USETI D 0075, 0000,1556,2100 ; 3909 I, J/MUUO ;USETO D 0076, 0000,1556,2100 ; 3910 I, J/MUUO ;LOOKUP D 0077, 0000,1556,2100 ; 3911 I, J/MUUO ;ENTER ; 3912 ; 3913 ;EXPANSION OPCODES ; 3914 D 0100, 0000,1556,2100 ; 3915 100: I, J/UUO ;UJEN D 0101, 0000,1661,2100 ; 3916 I, J/UUO101 D 0102, 0000,1662,2100 ; 3917 I, J/UUO102 ;GFAD D 0103, 0000,1663,2100 ; 3918 I, J/UUO103 ;GFSB ; 3919 ; T10KL.MCR[7,3] 15:10 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 ; 3920 ;RESERVED OPCODES ; 3921 D 0000, 0000,1556,2100 ; 3922 000: I, J/UUO D 0104, 0000,1664,2100 ; 3923 104: I, J/JSYS ;JSYS D 0106, 0000,1666,2100 ; 3924 106: I, J/UUO106 ;GFMP D 0107, 0000,1667,2100 ; 3925 I, J/UUO107 ;GFDV D 0130, 0000,1660,2100 ; 3926 130: I, B/0, J/FP-LONG ;UFA D 0131, 0001,1660,2100 ; 3927 I, B/1, J/FP-LONG ;DFN D 0141, 0002,1660,2100 ; 3928 141: I, B/2, J/FP-LONG ;FADL D 0151, 0003,1660,2100 ; 3929 151: I, B/3, J/FP-LONG ;FSBL D 0161, 0004,1660,2100 ; 3930 161: I, B/4, J/FP-LONG ;FMPL D 0171, 0005,1660,2100 ; 3931 171: I, B/5, J/FP-LONG ;FDVL D 0247, 0000,1665,2100 ; 3932 247: I, J/UUO247 ;RESERVED ; 3933 .UCODE ; 3934 ; 3935 1661: U 1661, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3936 UUO101: UUO ; 3937 1662: U 1662, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3938 UUO102: UUO ; 3939 1663: U 1663, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3940 UUO103: UUO ; 3941 1664: U 1664, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3942 JSYS: UUO ; 3943 1666: U 1666, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3944 UUO106: UUO ; 3945 1667: U 1667, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3946 UUO107: UUO ; 3947 1660: U 1660, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3948 FP-LONG:UUO ; 3949 1665: U 1665, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3950 UUO247: UUO ; 3951 ; T10KL.MCR[7,3] 15:10 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 ; 3952 ;HERE FOR UUO'S WHICH TRAP TO EXEC ; 3953 1556: ; 3954 UUO: ;THIS TAG IS USED FOR ILLEGAL THINGS WHICH DO UUO TRAPS ; 3955 MUUO: ;THIS TAG IS USED FOR MONITOR CALL INSTRUCTIONS ; 3956 [HR]_[HR].AND.#, ;MASK OUT @ AND XR ; 3957 #/777740, ;MASK U 1556, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 3958 HOLD RIGHT ;KEEP RIGHT ; 3959 ;THE UUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO UUOGO U 2733, 1172,4751,1204,4374,4007,0700,0000,0000,0424 ; 3960 UUOGO: [ARX]_0 XWD [424] ;HERE FROM UUO MACRO ; 3961 ;GET OFFSET TO UPT ; 3962 =0 [ARX]_[ARX]+[UBR], ;ADDRESS OF MUUO WORD U 1172, 1602,0111,1104,4174,4007,0700,0010,0000,0000 ; 3963 CALL [ABORT] ;STOP MEMORY ;;3964 .IF/KIPAGE ;;3965 .IF/KLPAGE ;;3966 READ [EBR], ;IF BOTH POSSIBLE, SEE WHICH IS ENABLED ;;3967 SKIP DP0 ;KL PAGING ?? ;;3968 =0 ;;3969 .ENDIF/KLPAGE ;;3970 READ [ARX], ;GET THE ADDRESS ;;3971 LOAD VMA, ;START WRITE ;;3972 VMA PHYSICAL WRITE, ;ABSOLUTE ADDRESS ;;3973 J/KIMUUO ;GO STORE KI STYLE ; 3974 .ENDIF/KIPAGE ; 3975 .IF/KLPAGE U 1173, 1174,3770,0203,4344,4007,0700,0000,0000,0000 ; 3976 [AR]_[HR] SWAP ;PUT IN RIGHT HALF ; 3977 =0 [AR]_FLAGS, ;FLAGS IN LEFT HALF ; 3978 HOLD RIGHT, ;JUST WANT FLAGS U 1174, 2741,4521,1203,4074,0007,0700,0010,0000,0000 ; 3979 CALL [UUOFLG] ;CLEAR TRAP FLAGS ; 3980 READ [ARX], ;LOOK AT ADDRESS ; 3981 LOAD VMA, ;LOAD THE VMA U 1175, 0334,3333,0004,4174,4007,0700,0200,0021,1016 ; 3982 VMA PHYSICAL WRITE ;STORE FLAG WORD ; 3983 =0* MEM WRITE, ;WAIT FOR MEMORY U 0334, 2742,3333,0003,4175,5007,0701,0210,0000,0002 ; 3984 MEM_[AR], CALL [NEXT] ;STORE ; 3985 MEM WRITE, ;WAIT FOR MEMORY U 0336, 0020,3333,0001,4175,5007,0701,0200,0000,0002 ; 3986 MEM_[PC] ;STORE FULL WORD PC ; 3987 =000 [HR]_0, ;SAVE E U 0020, 2742,4221,0002,4174,0007,0700,0010,0000,0000 ; 3988 HOLD RIGHT, CALL [NEXT] ;BUT CLEAR OPCODE ; 3989 .ENDIF/KLPAGE ; 3990 =010 ; 3991 UUOPCW: MEM WRITE, ;WAIT FOR MEMORY ; 3992 MEM_[HR], ;STORE INSTRUCTION IN KI ; 3993 ; OR FULL WORD E IN KL U 0022, 3555,3333,0002,4175,5007,0701,0210,0000,0002 ; 3994 CALL [GETPCW] ;GET PROCESS-CONTEXT-WORD ; 3995 ; 3996 =011 NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 0023, 3703,0111,0704,4170,4007,0700,0210,0023,1016 ; 3997 CALL [STOBR] ;STORE PROCESS CONTEXT WORD ; 3998 ; T10KL.MCR[7,3] 15:10 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 ; 3999 ;NOW WE MUST PICK ONE OF 8 NEW PC WORDS BASED ON PC FLAGS U 0027, 2734,4751,1205,4374,4007,0700,0000,0000,0430 ; 4000 =111 [BR]_0 XWD [430] ;OFFSET INTO UPT ; 4001 = U 2734, 2735,0111,1105,4174,4007,0700,0000,0000,0000 ; 4002 [BR]_[BR]+[UBR] ;ADDRESS OF WORD U 2735, 2736,4521,1203,4074,4007,0700,0000,0000,0000 ; 4003 [AR]_FLAGS ;GET FLAGS ; 4004 TL [AR], ;LOOK AT FLAGS U 2736, 1176,4553,0300,4374,4007,0321,0000,0000,0600 ; 4005 #/600 ;TRAP SET? ; 4006 =0 [BR]_[BR].OR.#, ;YES--POINT TO TRAP CASE ; 4007 #/1, ; .. U 1176, 1177,3551,0505,4370,4007,0700,0000,0000,0001 ; 4008 HOLD LEFT ;LEAVE LEFT ALONE ; 4009 TL [AR], ;USER OR EXEC U 1177, 1200,4553,0300,4374,4007,0321,0000,0001,0000 ; 4010 #/10000 ; .. ; 4011 =0 [BR]_[BR].OR.#, ;USER ; 4012 #/4, ;POINT TO USER WORDS U 1200, 1201,3551,0505,4370,4007,0700,0000,0000,0004 ; 4013 HOLD LEFT ; 4014 READ [BR], ;LOOK AT ADDRESS ; 4015 LOAD VMA, ;PLACE IN VMA ; 4016 VMA PHYSICAL, ;PHYSICAL ADDRESS U 1201, 2737,3333,0005,4174,4007,0700,0200,0024,1016 ; 4017 START READ ;GET NEW PC WORD ; 4018 GOEXEC: MEM READ, ;WAIT FOR DATA U 2737, 2740,3771,0003,4365,5007,0700,0200,0000,0002 ; 4019 [AR]_MEM ;STICK IN AR ; 4020 READ [AR], ;LOOK AT DATA ; 4021 LOAD FLAGS, ;LOAD NEW FLAGS ; 4022 LEAVE USER, ;ALLOW USER TO LOAD ; 4023 LOAD PCU, ;SET PCU FROM USER U 2740, 0764,3333,0003,4174,4467,0700,0000,0000,0404 ; 4024 J/JUMPA ;JUMP ; 4025 ;;4026 .IF/KIPAGE ;;4027 ;HERE FOR TOPS-10 STYLE PAGING ;;4028 ;;4029 =00 ;;4030 KIMUUO: MEM WRITE, ;STORE INSTRUCTION ;;4031 MEM_[HR], CALL [NEXT] ;IN MEMORY ;;4032 =10 [AR]_PC WITH FLAGS, ;GET PC WORD ;;4033 CALL [UUOFLG] ;CLEAR TRAP FLAGS ;;4034 =11 MEM WRITE, ;STORE PC WORD ;;4035 MEM_[AR], ; .. ;;4036 J/UUOPCW ;GO STORE PROCESS CONTEXT ; 4037 .ENDIF/KIPAGE ; 4038 ; 4039 UUOFLG: [AR]_[AR].AND.NOT.#, ;CLEAR TRAP FLAGS ; 4040 #/600, HOLD RIGHT, ; IN WORD TO SAVE U 2741, 0001,5551,0303,4374,0004,1700,0000,0000,0600 ; 4041 RETURN [1] ; BACK TO CALLER ; 4042 ; 4043 NEXT: NEXT [ARX] PHYSICAL WRITE, ;POINT TO NEXT WORD U 2742, 0002,0111,0704,4170,4004,1700,0200,0023,1016 ; 4044 RETURN [2] ; 4045 ; T10KL.MCR[7,3] 15:10 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 ; 4046 ;HERE FOR LUUO'S ; 4047 1557: U 1557, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 4048 LUUO: [AR]_0 XWD [40] ;AR GET CONSTANT 40 ; 4049 ;THE LUUO MACRO DOES THE ABOVE INSTRUCTION AND GOES TO LUUO1 ; 4050 400: ;FOR SIMULATOR ; 4051 LUUO1: READ [AR], ;LOAD 40 INTO ; 4052 LOAD VMA, ; THE VMA AND U 0400, 2743,3333,0003,4174,4007,0700,0200,0003,0012 ; 4053 START WRITE ; PREPARE TO STORE ; 4054 [HR]_[HR].AND.#, ;CLEAR OUT INDEX AND @ ; 4055 #/777740, ; .. U 2743, 2744,4551,0202,4374,0007,0700,0000,0077,7740 ; 4056 HOLD RIGHT ; 4057 MEM WRITE, ;STORE LUUO IN 40 U 2744, 2745,3333,0002,4175,5007,0701,0200,0000,0002 ; 4058 MEM_[HR] ; 4059 VMA_[AR]+1, ;POINT TO 41 ; 4060 LOAD VMA, ;PUT 41 IN VMA ; 4061 START READ, ;START FETCH U 2745, 2521,0111,0703,4170,4007,0700,0200,0004,0012 ; 4062 J/CONT1 ;GO EXECUTE THE INSTRUCTION ; 4063 ; T10KL.MCR[7,3] 15:10 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 ; 4064 .TOC "ARITHMETIC -- ADD, SUB" ; 4065 ; 4066 .DCODE D 0270, 1015,1560,1100 ; 4067 270: R-PF, AC, J/ADD D 0271, 0015,1560,3000 ; 4068 I-PF, AC, J/ADD D 0272, 0016,1560,1700 ; 4069 RW, M, J/ADD D 0273, 0017,1560,1700 ; 4070 RW, B, J/ADD ; 4071 .UCODE ; 4072 ; 4073 1560: ; 4074 ADD: [AR]_[AR]+AC, ;DO THE ADD U 1560, 1500,0551,0303,0274,4463,7701,0200,0001,0001 ; 4075 AD FLAGS EXIT, 3T ;UPDATE CARRY FLAGS ; 4076 ;STORE ANSWER ; 4077 ;MISSES 3-TICKS BY 3 NS. ; 4078 ; 4079 ; 4080 .DCODE D 0274, 1015,1561,1100 ; 4081 274: R-PF, AC, J/SUB D 0275, 0015,1561,3000 ; 4082 I-PF, AC, J/SUB D 0276, 0016,1561,1700 ; 4083 RW, M, J/SUB D 0277, 0017,1561,1700 ; 4084 RW, B, J/SUB ; 4085 .UCODE ; 4086 ; 4087 1561: ; 4088 SUB: [AR]_AC-[AR], ;DO THE SUBTRACT U 1561, 1500,2551,0303,0274,4463,7701,4200,0001,0001 ; 4089 AD FLAGS EXIT, 3T ;UPDATE PC CARRY FLAGS ; 4090 ;ALL DONE ; 4091 ;MISSES 3-TICKS BY 3 NS. ; 4092 ; T10KL.MCR[7,3] 15:10 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 ; 4093 .TOC "ARITHMETIC -- DADD, DSUB" ; 4094 ; 4095 .DCODE D 0114, 0205,1457,1100 ; 4096 114: DBL R, DAC, J/DADD D 0115, 0205,1615,1100 ; 4097 DBL R, DAC, J/DSUB ; 4098 .UCODE ; 4099 ; 4100 1457: ; 4101 DADD: [ARX]_[ARX]+AC[1], 4T, ;ADD LOW WORDS U 1457, 1202,0551,0404,1274,4007,0562,0000,0000,1441 ; 4102 SKIP CRY1 ;SEE IF CARRY TO HIGH WORD ; 4103 =0 ; 4104 DADD1: [AR]_[AR]+AC, ;ADD HIGH WORDS ; 4105 ADD .25, ;ADD IN ANY CARRY FROM LOW WORD ; 4106 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1202, 2747,0551,0303,0274,4467,0702,4000,0001,0001 ; 4107 J/CPYSGN ;COPY SIGN TO LOW WORD U 1203, 2746,7441,1205,4174,4007,0700,0000,0000,0000 ; 4108 [BR]_.NOT.[MASK] ;SET BITS 35 AND 36 IN ; 4109 [AR]_[AR].OR.[BR], ; AR SO THAT ADD .25 WILL U 2746, 1202,3111,0503,4170,4007,0700,0000,0000,0000 ; 4110 HOLD LEFT, J/DADD1 ; ADD 1. ; 4111 ; 4112 1615: ; 4113 DSUB: [ARX]_AC[1]-[ARX], 4T, ;SUBTRACT LOW WORD U 1615, 1204,2551,0404,1274,4007,0562,4000,0000,1441 ; 4114 SKIP CRY1 ;SEE IF CARRY ; 4115 =0 [AR]_AC-[AR]-.25, ;NO CARRY ; 4116 AD FLAGS, 4T, ;UPDATE PC FLAGS U 1204, 2747,2551,0303,0274,4467,0702,0000,0001,0001 ; 4117 J/CPYSGN ;GO COPY SIGN ; 4118 [AR]_AC-[AR], 4T, ;THERE WAS A CARRY U 1205, 2747,2551,0303,0274,4467,0702,4000,0001,0001 ; 4119 AD FLAGS ;UPDATE CARRY FLAGS ; 4120 U 2747, 1206,3770,0303,4174,0007,0520,0000,0000,0000 ; 4121 CPYSGN: FIX [AR] SIGN, SKIP DP0 U 1206, 1404,4551,0404,4374,0007,0700,0000,0037,7777 ; 4122 =0 [ARX]_[ARX].AND.#, #/377777, HOLD RIGHT, J/MOVE U 1207, 1404,3551,0404,4374,0007,0700,0000,0040,0000 ; 4123 [ARX]_[ARX].OR.#, #/400000, HOLD RIGHT, J/MOVE ; 4124 ; 4125 ; T10KL.MCR[7,3] 15:10 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 ; 4126 .TOC "ARITHMETIC -- MUL, IMUL" ; 4127 ; 4128 .DCODE D 0220, 1015,1641,1100 ; 4129 220: R-PF, AC, J/IMUL D 0221, 0015,1641,3000 ; 4130 I-PF, AC, J/IMUL D 0222, 0016,1641,1700 ; 4131 RW, M, J/IMUL D 0223, 0017,1641,1700 ; 4132 RW, B, J/IMUL ; 4133 .UCODE ; 4134 1641: U 1641, 2750,3441,0306,0174,4007,0700,0000,0000,0000 ; 4135 IMUL: [BRX]_[AR], AC ;COPY C(E) U 2750, 0021,3772,0000,0275,5007,0700,2000,0071,0043 ; 4136 Q_AC, SC_35. ;GET THE AC ; 4137 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0021, 2774,3446,0606,4174,4007,0700,0010,0000,0000 ; 4138 CALL [MULSUB] ;MULTIPLY U 0025, 1210,3333,0004,4174,4007,0621,0000,0000,0000 ; 4139 READ [ARX], SKIP AD.EQ.0 ;SEE IF FITS U 1210, 2751,3445,0404,4174,4007,0700,0000,0000,0000 ; 4140 =0 [ARX]_[ARX]*2, J/IMUL2 ;NOT ZERO--SHIFT LEFT U 1211, 1500,3221,0003,4174,4003,7700,0200,0003,0001 ; 4141 IMUL1: [AR]_Q, EXIT ;POSITIVE ; 4142 ; 4143 IMUL2: [MASK].AND.NOT.[ARX], ;SEE IF ALL SIGN BITS U 2751, 1212,5113,0412,4174,4007,0621,0000,0000,0000 ; 4144 SKIP AD.EQ.0 ; .. ; 4145 =0 FIX [ARX] SIGN, ;NOT ALL SIGN BITS U 1212, 1214,3770,0404,4174,0007,0520,0000,0000,0000 ; 4146 SKIP DP0, J/IMUL3 ;GIVE + OR - OVERFLOW U 1213, 1500,7001,0003,4174,4003,7700,0200,0003,0001 ; 4147 [AR]_[MAG].EQV.Q, EXIT ;NEGATIVE ; 4148 =0 U 1214, 1404,3221,0003,4174,4467,0700,0000,0041,1000 ; 4149 IMUL3: [AR]_Q, SET AROV, J/MOVE U 1215, 1404,7001,0003,4174,4467,0700,0000,0041,1000 ; 4150 [AR]_[MAG].EQV.Q, SET AROV, J/MOVE ; 4151 ; 4152 ; 4153 .DCODE D 0224, 1005,1571,1100 ; 4154 224: R-PF, DAC, J/MUL D 0225, 0005,1571,3000 ; 4155 I-PF, DAC, J/MUL D 0226, 0016,1571,1700 ; 4156 RW, M, J/MUL D 0227, 0006,1571,1700 ; 4157 RW, DBL B, J/MUL ; 4158 .UCODE ; 4159 ; 4160 ; 4161 1571: U 1571, 2752,3442,0300,0174,4007,0700,0000,0000,0000 ; 4162 MUL: Q_[AR], AC ;COPY C(E) U 2752, 2753,3441,0316,4174,4007,0700,0000,0000,0000 ; 4163 [T0]_[AR] ;SAVE FOR OVERFLOW TEST U 2753, 0031,3771,0006,0276,6007,0700,2000,0071,0043 ; 4164 [BRX]_AC, SC_35. ;GET THE AC ; 4165 =0** [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0031, 2774,3446,0606,4174,4007,0700,0010,0000,0000 ; 4166 CALL [MULSUB] ;MULTIPLY U 0035, 2754,3445,0403,4174,4007,0700,0000,0000,0000 ; 4167 [AR]_[ARX]*2 ;SHIFT OVER U 2754, 1216,3770,0303,4174,0007,0520,0000,0000,0000 ; 4168 FIX [AR] SIGN, SKIP DP0 ;SEE IF NEGATIVE ; 4169 =0 [ARX]_[MAG].AND.Q, ;POSITIVE U 1216, 1500,4001,0004,4174,4003,7700,0200,0003,0001 ; 4170 EXIT U 1217, 1220,4113,0616,4174,4007,0520,0000,0000,0000 ; 4171 [T0].AND.[BRX], SKIP DP0 ;TRIED TO SQUARE 1B0? U 1220, 1500,7001,0004,4174,4003,7700,0200,0003,0001 ; 4172 =0 [ARX]_[MAG].EQV.Q, EXIT ;NO ; 4173 [ARX]_[MAG].EQV.Q, ;YES U 1221, 1404,7001,0004,4174,4467,0700,0000,0041,1000 ; 4174 SET AROV, J/MOVE ; 4175 ; 4176 ; T10KL.MCR[7,3] 15:10 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 ; 4177 .TOC "ARITHMETIC -- DMUL" ; 4178 ; 4179 .DCODE D 0116, 0205,1566,1100 ; 4180 116: DBL R, DAC, J/DMUL ; 4181 .UCODE ; 4182 ; 4183 .IF/FULL ; 4184 1566: U 1566, 2755,3447,0303,4174,4007,0700,0000,0000,0000 ; 4185 DMUL: [AR]_[AR]*.5 ;SHIFT MEM OPERAND RIGHT U 2755, 2756,4117,0004,4174,4007,0700,0000,0000,0000 ; 4186 [ARX]_([ARX].AND.[MAG])*.5 ; 4187 [BR]_[ARX], ;COPY LOW WORD U 2756, 0120,3441,0405,4174,4007,0350,0000,0000,0000 ; 4188 SKIP FPD ;SEE IF FIRST PART DONE ; 4189 ; ; 4190 ; BRX * BR ==> C(E+1) * C(AC+1) ; 4191 ; ; 4192 =000 [BRX]_(AC[1].AND.[MAG])*.5, 3T, ;GET LOW AC U 0120, 2770,4557,0006,1274,4007,0701,0010,0000,1441 ; 4193 CALL [DMULGO] ;START MULTIPLY ; 4194 [ARX]_(AC[2].AND.[MAG])*.5, 3T, ;FIRST PART DONE U 0121, 2760,4557,0004,1274,4007,0701,0000,0000,1442 ; 4195 J/DMUL1 ;GO DO SECOND PART U 0124, 0171,3223,0000,1174,4007,0700,0400,0000,1443 ; 4196 =100 AC[3]_Q ;SALT AWAY 1 WORD OF PRODUCT ; 4197 = ; 4198 ; ; 4199 ; BRX * Q ==> C(E) * C(AC+1) ; 4200 ; ; 4201 =0** Q_[AR], SC_35., ;GO MULT NEXT HUNK U 0171, 0563,3442,0300,4174,4007,0700,2010,0071,0043 ; 4202 CALL [QMULT] ; .. U 0175, 2757,3441,0416,4174,4007,0700,0000,0000,0000 ; 4203 [T0]_[ARX] ;SAVE PRODUCT ; 4204 AC[2]_Q, [ARX]_Q*.5, ;SAVE PRODUCT U 2757, 0310,3227,0004,1174,4007,0700,0400,0000,1442 ; 4205 J/DMUL2 ;GO DO HIGH HALF U 2760, 0310,3777,0016,1276,6007,0701,0000,0000,1441 ; 4206 DMUL1: [T0]_AC[1]*.5 ;RESTORE T0 ; 4207 =0*0 ; 4208 ; ; 4209 ; BRX * BR ==> C(AC) * C(E+1) ; 4210 ; ; 4211 DMUL2: [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF U 0310, 2771,3777,0006,0274,4007,0701,0010,0000,0000 ; 4212 CALL [DBLMUL] ; GO DO IT ; 4213 AC[1]_[T0]*2, 3T, ;INTERRUPT, SAVE T0 U 0311, 2773,0113,1616,1174,4007,0701,0400,0000,1441 ; 4214 J/DMLINT ;SET FPD AND INTERRUPT U 0314, 2761,3223,0000,1174,4007,0700,0400,0000,1442 ; 4215 AC[2]_Q ;SAVE PRODUCT ; 4216 = U 2761, 0543,0111,1604,4174,4007,0700,0000,0000,0000 ; 4217 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 4218 ; ; 4219 ; BRX * Q ==> C(AC) * C(E) ; 4220 ; ; 4221 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 0543, 0563,3442,0300,4174,4007,0700,2010,0071,0043 ; 4222 CALL [QMULT] ; GO DO IT ; 4223 [ARX]_[ARX]*2, ;SHIFT BACK U 0547, 2762,3445,0404,4174,4467,0700,0000,0005,0000 ; 4224 CLR FPD ;CLEAR FPD ; 4225 ; T10KL.MCR[7,3] 15:10 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 2762, 1222,3770,0404,0174,4007,0520,0400,0000,0000 ; 4226 AC_[ARX] TEST, SKIP DP0 ;PUT BACK INTO AC U 1222, 2767,3223,0000,1174,4007,0700,0400,0000,1441 ; 4227 =0 AC[1]_Q, J/DMTRAP ;POSITIVE U 1223, 2763,7003,0000,1174,4007,0700,0400,0000,1441 ; 4228 AC[1]_[MAG].EQV.Q ;NEGATIVE U 2763, 2764,3772,0000,1275,5007,0701,0000,0000,1442 ; 4229 Q_AC[2] U 2764, 2765,7003,0000,1174,4007,0700,0400,0000,1442 ; 4230 AC[2]_[MAG].EQV.Q U 2765, 2766,3772,0000,1275,5007,0701,0000,0000,1443 ; 4231 Q_AC[3] U 2766, 2767,7003,0000,1174,4007,0700,0400,0000,1443 ; 4232 AC[3]_[MAG].EQV.Q ; 4233 DMTRAP: [AR]_PC WITH FLAGS, ;LOOK AT FLAGS U 2767, 1224,3741,0103,4074,4007,0520,0000,0000,0000 ; 4234 SKIP DP0 ;SEE IF AROV SET? U 1224, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4235 =0 DONE ;NO--ALL DONE U 1225, 1400,4443,0000,4174,4467,0700,0000,0041,1000 ; 4236 SET AROV, J/DONE ;YES--FORCE TRAP 1 ALSO ; 4237 ; 4238 ; 4239 ;WAYS TO CALL MULTIPLY U 2770, 2771,4221,0004,4174,4007,0700,0000,0000,0000 ; 4240 DMULGO: [ARX]_0 ;CLEAR ARX U 2771, 2772,3442,0500,4174,4007,0700,2000,0071,0043 ; 4241 DBLMUL: Q_[BR], SC_35. U 2772, 0563,3447,0606,4174,4007,0700,0000,0000,0000 ; 4242 [BRX]_[BRX]*.5 ; 4243 =0** ; 4244 QMULT: Q_Q*.5, U 0563, 2776,3446,1200,4174,4007,0700,0010,0000,0000 ; 4245 CALL [MULTIPLY] ; 4246 [ARX]+[ARX], AD FLAGS, ;TEST FOR OVERFLOW U 0567, 0004,0113,0404,4174,4464,1701,0000,0001,0001 ; 4247 3T, RETURN [4] ;AND RETURN ; 4248 U 2773, 2675,4443,0000,4174,4467,0700,0000,0003,0000 ; 4249 DMLINT: SET FPD, J/FIXPC ;SET FPD, BACKUP PC ; 4250 ; INTERRUPT ;;4251 .IFNOT/FULL ;;4252 1566: ;;4253 DMUL: UUO ; 4254 .ENDIF/FULL ; 4255 ; T10KL.MCR[7,3] 15:10 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 ; 4256 ;MULTIPLY SUBROUTINE ; 4257 ;ENTERED WITH: ; 4258 ; MULTIPLIER IN Q ; 4259 ; MULTIPLICAND IN BRX ; 4260 ;RETURNS 4 WITH PRODUCT IN ARX!Q ; 4261 ; 4262 MUL STEP "A/BRX,B/ARX,DEST/Q_Q*.5,ASHC,STEP SC,MUL DISP" ; 4263 MUL FINAL "A/BRX,B/ARX,DEST/Q_Q*2" ; 4264 U 2774, 2775,3446,0606,4174,4007,0700,0000,0000,0000 ; 4265 MULSUB: [BRX]_[BRX]*.5 LONG ; 4266 MULSB1: [ARX]_0*.5 LONG, ;CLEAR ARX AND SHIFT Q ; 4267 STEP SC, ;COUNT FIRST STEP U 2775, 0122,4226,0004,4174,4007,0630,2000,0060,0000 ; 4268 J/MUL+ ;ENTER LOOP ; 4269 ; 4270 ;MULTIPLY SUBROUTINE ; 4271 ;ENTERED WITH: ; 4272 ; MULTIPLIER IN Q ; 4273 ; MULTIPLICAND IN BRX ; 4274 ; PARTIAL PRODUCT IN ARX ; 4275 ;RETURNS 4 WITH Q*BRX+ARX IN ARX!Q ; 4276 ; 4277 MULTIPLY: ; 4278 Q_Q*.5, ;SHIFT Q ; 4279 STEP SC, ;COUNT FIRST STEP U 2776, 0122,3446,1200,4174,4007,0630,2000,0060,0000 ; 4280 J/MUL+ ;ENTER LOOP ; 4281 ; T10KL.MCR[7,3] 15:10 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 ; 4282 ;HERE FOR POSITIVE STEPS ; 4283 =010 ;0 IN A POSITIVE STEP ; 4284 MUL+: AD/B, ;DON'T ADD ; 4285 MUL STEP, ;SHIFT U 0122, 0122,3336,0604,4174,4046,2630,2000,0060,0000 ; 4286 J/MUL+ ;KEEP POSITIVE ; 4287 =011 ;DONE ; 4288 AD/B, ;DON'T ADD ; 4289 MUL FINAL, ;SHIFT U 0123, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4290 RETURN [4] ;SHIFT Q AND RETURN ; 4291 =110 ;1 IN A POSITIVE STEP ; 4292 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4293 MUL STEP, ;SHIFT AND COUNT U 0126, 0142,1116,0604,4174,4046,2630,6000,0060,0000 ; 4294 J/MUL- ;NEGATIVE NOW ; 4295 =111 ;DONE ; 4296 AD/B-A-.25, ADD .25, ;SUBTRACT ; 4297 MUL FINAL, ;SHIFT U 0127, 0004,1114,0604,4174,4004,1700,4000,0000,0000 ; 4298 RETURN [4] ; AND RETURN ; 4299 ; 4300 ;HERE FOR NEGATIVE STEPS ; 4301 =010 ;0 IN NEGATIVE STEP ; 4302 MUL-: AD/A+B, ;ADD ; 4303 MUL STEP, ;SHIFT AND COUNT U 0142, 0122,0116,0604,4174,4046,2630,2000,0060,0000 ; 4304 J/MUL+ ;POSITIVE NOW ; 4305 =011 ;DONE ; 4306 AD/A+B, ;ADD ; 4307 MUL FINAL, ;SHIFT U 0143, 0004,0114,0604,4174,4004,1700,0000,0000,0000 ; 4308 RETURN [4] ;FIX Q AND RETURN ; 4309 =110 ;1 IN NEGATIVE STEP ; 4310 AD/B, ;DON'T ADD ; 4311 MUL STEP, ;SHIFT AND COUNT U 0146, 0142,3336,0604,4174,4046,2630,2000,0060,0000 ; 4312 J/MUL- ;STILL NEGATIVE ; 4313 =111 ;DONE ; 4314 AD/B, ;DON'T ADD ; 4315 MUL FINAL, ;SHIFT U 0147, 0004,3334,0604,4174,4004,1700,0000,0000,0000 ; 4316 RETURN [4] ;FIX Q AND RETURN ; 4317 ; T10KL.MCR[7,3] 15:10 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 ; 4318 .TOC "ARITHMETIC -- DIV, IDIV" ; 4319 ; 4320 .DCODE D 0230, 1005,1600,1100 ; 4321 230: R-PF, DAC, J/IDIV D 0231, 0005,1600,3000 ; 4322 I-PF, DAC, J/IDIV D 0232, 0016,1600,1700 ; 4323 RW, M, J/IDIV D 0233, 0006,1600,1700 ; 4324 RW, DBL B, J/IDIV ; 4325 D 0234, 1005,1601,1100 ; 4326 234: R-PF, DAC, J/DIV D 0235, 0005,1601,3000 ; 4327 I-PF, DAC, J/DIV D 0236, 0016,1601,1700 ; 4328 RW, M, J/DIV D 0237, 0006,1601,1700 ; 4329 RW, DBL B, J/DIV ; 4330 .UCODE ; 4331 ; 4332 1600: U 1600, 2777,3441,0305,0174,4007,0700,0000,0000,0000 ; 4333 IDIV: [BR]_[AR], AC ;COPY MEMORY OPERAND ; 4334 Q_AC, ;LOAD Q U 2777, 1226,3772,0000,0275,5007,0520,0000,0000,0000 ; 4335 SKIP DP0 ;SEE IF MINUS ; 4336 =0 [AR]_0, ;EXTEND + SIGN U 1226, 0161,4221,0003,4174,4007,0700,0000,0000,0000 ; 4337 J/DIV1 ;NOW SAME AS DIV ; 4338 [AR]_-1, ;EXTEND - SIGN U 1227, 0161,2441,0703,4174,4007,0700,4000,0000,0000 ; 4339 J/DIV1 ;SAME AS DIV ; 4340 ; 4341 1601: U 1601, 3000,3441,0305,4174,4007,0700,0000,0000,0000 ; 4342 DIV: [BR]_[AR] ;COPY MEM OPERAND U 3000, 3001,3771,0003,0276,6007,0700,0000,0000,0000 ; 4343 [AR]_AC ;GET AC U 3001, 3002,3772,0000,1275,5007,0701,0000,0000,1441 ; 4344 Q_AC[1] ;AND AC+1 ; 4345 READ [AR], ;TEST FOR NO DIVIDE U 3002, 0160,3333,0003,4174,4007,0621,0000,0000,0000 ; 4346 SKIP AD.EQ.0 ; 4347 =000 .NOT.[AR], ;SEE IF ALL SIGN BITS IN AR ; 4348 SKIP AD.EQ.0, ; .. U 0160, 1230,7443,0300,4174,4007,0621,0000,0000,0000 ; 4349 J/DIVA ;CONTINUE BELOW ; 4350 =001 ; 4351 DIV1: READ [BR], ;SEE IF DIVIDE BY U 0161, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4352 SKIP AD.EQ.0 ; ZERO ; 4353 =100 ; 4354 DIV2: SC_34., ;NOT ZERO--LOAD STEP COUNT U 0164, 0370,4443,0000,4174,4007,0700,2010,0071,0042 ; 4355 CALL [DIVSUB] ;DIVIDE U 0165, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4356 =101 NO DIVIDE ;DIVIDE BY ZERO ; 4357 =110 [ARX]_[AR], ;COPY REMAINDER U 0166, 1211,3441,0304,4174,4007,0700,0000,0000,0000 ; 4358 J/IMUL1 ;STORE ANSWER ; 4359 = ; 4360 ; 4361 ; 4362 =0 ; 4363 DIVA: [BRX]_[AR], ;HIGH WORD IS NOT SIGNS U 1230, 3003,3441,0306,4174,4007,0700,0000,0000,0000 ; 4364 J/DIVB ;GO TEST FOR NO DIVIDE ; 4365 READ [BR], ;ALL SIGN BITS ; 4366 SKIP AD.EQ.0, ;SEE IF ZERO DIVIDE U 1231, 0164,3333,0005,4174,4007,0621,0000,0000,0000 ; 4367 J/DIV2 ;BACK TO MAIN FLOW ; 4368 ; T10KL.MCR[7,3] 15:10 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 3003, 3004,3221,0004,4174,4007,0700,0000,0000,0000 ; 4369 DIVB: [ARX]_Q ;MAKE ABS VALUES ; 4370 READ [AR], ;SEE IF + U 3004, 0330,3333,0003,4174,4007,0520,0000,0000,0000 ; 4371 SKIP DP0 ; 4372 =00 READ [BR], ;SEE IF + ; 4373 SKIP DP0, U 0330, 1232,3333,0005,4174,4007,0520,0000,0000,0000 ; 4374 J/DIVC ;CONTINUE BELOW ; 4375 CLEAR [ARX]0, ;FLUSH DUPLICATE SIGN U 0331, 3065,4551,0404,4374,0007,0700,0010,0037,7777 ; 4376 CALL [DBLNG1] ;NEGATE AR!ARX ; 4377 =11 READ [BR], ;SEE IF TOO BIG ; 4378 SKIP DP0, U 0333, 1232,3333,0005,4174,4007,0520,0000,0000,0000 ; 4379 J/DIVC ; 4380 = ; 4381 =0 ; 4382 DIVC: [AR]-[BR], ;COMPUTE DIFFERENCE ; 4383 SKIP DP0, ;SEE IF IT GOES ; 4384 3T, ;ALLOW TIME U 1232, 1234,2113,0305,4174,4007,0521,4000,0000,0000 ; 4385 J/NODIV ;TEST ; 4386 [AR]+[BR], ; 4387 SKIP DP0, ;SAME TEST FOR -VE BR ; 4388 3T, U 1233, 1234,0113,0305,4174,4007,0521,0000,0000,0000 ; 4389 J/NODIV ; 4390 =0 U 1234, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4391 NODIV: NO DIVIDE ;TOO BIG ; 4392 [AR]_[BRX], ;FITS U 1235, 0161,3441,0603,4174,4007,0700,0000,0000,0000 ; 4393 J/DIV1 ;GO BACK AND DIVIDE ; 4394 ; T10KL.MCR[7,3] 15:10 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 ; 4395 .TOC "ARITHMETIC -- DDIV" ; 4396 ; 4397 .DCODE D 0117, 0205,1627,1100 ; 4398 117: DBL R, DAC, J/DDIV ; 4399 .UCODE ; 4400 ; 4401 .IF/FULL ; 4402 1627: U 1627, 3005,4112,0400,4174,4007,0700,0000,0000,0000 ; 4403 DDIV: Q_[ARX].AND.[MAG] ;COPY LOW WORD ; 4404 [BR]_[AR]*.5, ;COPY MEMORY OPERAND U 3005, 1236,3447,0305,4174,4007,0421,0000,0000,0000 ; 4405 SKIP AD.LE.0 ;SEE IF POSITIVE ; 4406 =0 [BR]_[BR]*.5 LONG, ;POSITIVE U 1236, 1242,3446,0505,4174,4007,0700,0000,0000,0000 ; 4407 J/DDIV1 ;CONTINUE BELOW ; 4408 [BR]_[BR]*.5 LONG, ;NEGATIVE OR ZERO U 1237, 1240,3446,0505,4174,4007,0520,0000,0000,0000 ; 4409 SKIP DP0 ;SEE WHICH? ; 4410 =0 [MAG].AND.Q, ;SEE IF ALL ZERO U 1240, 1242,4003,0000,4174,4007,0621,0000,0000,0000 ; 4411 SKIP AD.EQ.0, J/DDIV1 ;CONTINUE BELOW U 1241, 3006,4751,1217,4374,4007,0700,0000,0000,0005 ; 4412 [T1]_0 XWD [5] ;NEGATE MEM OP ; 4413 Q_Q.OR.#, #/600000, ;SIGN EXTEND THE LOW U 3006, 3007,3662,0000,4374,0007,0700,0000,0060,0000 ; 4414 HOLD RIGHT ; WORD U 3007, 3010,2222,0000,4174,4007,0700,4000,0000,0000 ; 4415 Q_-Q ;MAKE Q POSITIVE ; 4416 [BR]_(-[BR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 4417 ASHC, MULTI PREC/1, ;USE CARRY FROM LOW WORD U 3010, 3012,2446,0505,4174,4047,0700,0040,0000,0000 ; 4418 J/DDIV3 ;CONTINUE BELOW ; 4419 =0 ; 4420 DDIV1: [BR]_[BR]*.5 LONG, ;SHIFT OVER 1 PLACE U 1242, 3011,3446,0505,4174,4047,0700,0000,0000,0000 ; 4421 ASHC, J/DDIV2 ;CONTINUE BELOW U 1243, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4422 NO DIVIDE ;DIVIDE BY ZERO U 3011, 3012,4751,1217,4374,4007,0700,0000,0000,0004 ; 4423 DDIV2: [T1]_0 XWD [4] ;MEM OPERAND IS POSITIVE U 3012, 3013,3221,0006,0174,4007,0700,0000,0000,0000 ; 4424 DDIV3: [BRX]_Q, AC ;COPY Q ; 4425 U 3013, 0054,3777,0003,0274,4007,0520,0000,0000,0000 ; 4426 [AR]_AC*.5, 2T, SKIP DP0 ;GET AC--SEE IF NEGATIVE ; 4427 =0*1*0 ; 4428 DDIV3A: Q_AC[1].AND.[MAG], ;POSITIVE (OR ZERO) U 0054, 1244,4552,0000,1275,5007,0701,0000,0000,1441 ; 4429 J/DDIV4 ;CONTINUE BELOW ; 4430 [T1]_[T1].XOR.#, ;NEGATIVE U 0055, 3054,6551,1717,4374,4007,0700,0010,0000,0007 ; 4431 #/7, CALL [QDNEG] ;UPDATE SAVED FLAGS ; 4432 =1*1*1 [AR]_[AR]*.5, ;SHIFT AR OVER U 0075, 0054,3447,0303,4174,4007,0700,0000,0000,0000 ; 4433 J/DDIV3A ;GO BACK AND LOAD Q ; 4434 = ; 4435 =0 ; 4436 DDIV4: [AR]_[AR]*.5 LONG, ;SHIFT AR OVER U 1244, 3036,3446,0303,4174,4007,0700,0010,0000,0000 ; 4437 CALL [DDIVS] ;SHIFT 1 MORE PLACE U 1245, 1246,2113,0305,4174,4007,0521,4000,0000,0000 ; 4438 [AR]-[BR], 3T, SKIP DP0 ;TEST MAGNITUDE ; 4439 =0 [AR]-[BR], 2T, U 1246, 1250,2113,0305,4174,4007,0620,4000,0000,0000 ; 4440 SKIP AD.EQ.0, J/DDIV5 U 1247, 3014,3221,0004,4174,4007,0700,0000,0000,0000 ; 4441 [ARX]_Q, J/DDIV5A ;ANSWER FITS ; 4442 ; 4443 =0 U 1250, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4444 DDIV5: READ [T1], 3T, DISP/DP, J/NODDIV U 1251, 1252,1003,0600,4174,4007,0521,4000,0000,0000 ; 4445 Q-[BRX], 3T, SKIP DP0 U 1252, 0033,3333,0017,4174,4003,5701,0000,0000,0000 ; 4446 =0 READ [T1], 3T, DISP/DP, J/NODDIV U 1253, 3014,3221,0004,4174,4007,0700,0000,0000,0000 ; 4447 [ARX]_Q ;COPY LOW WORD ; 4448 ; T10KL.MCR[7,3] 15:10 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 ; 4449 ;HERE WITH EVERYTHING SETUP AND READY TO GO U 3014, 0354,4552,0000,1275,5007,0701,0000,0000,1442 ; 4450 DDIV5A: Q_AC[2].AND.[MAG] U 0354, 1276,3446,1200,4174,4007,0700,2010,0071,0042 ; 4451 =0* Q_Q*.5, SC_34., CALL [DBLDIV] U 0356, 3015,3224,0016,4174,4007,0700,0000,0000,0000 ; 4452 [T0]_Q*2 LONG U 3015, 3016,0002,1600,4174,4007,0700,0000,0000,0000 ; 4453 Q_Q+[T0] U 3016, 1254,4003,0000,1174,4007,0700,0400,0000,1440 ; 4454 AC[0]_Q.AND.[MAG] ;STORE ANSWER U 1254, 3036,3442,0400,4174,4007,0700,0010,0000,0000 ; 4455 =0 Q_[ARX], CALL [DDIVS] ;SHIFT OUT EXTRA ZERO BIT U 1255, 3017,3221,0004,4174,4007,0700,0000,0000,0000 ; 4456 [ARX]_Q ; .. U 3017, 0411,4552,0000,1275,5007,0701,0000,0000,1443 ; 4457 Q_AC[3].AND.[MAG] ; 4458 =0* [T0]_[AR]*.5 LONG, ;SHIFT Q, PUT AR ON DP ; 4459 SC_34., ;LOAD SHIFT COUNT ; 4460 SKIP DP0, ;LOOK AT AR SIGN U 0411, 1276,3446,0316,4174,4007,0520,2010,0071,0042 ; 4461 CALL [DBLDIV] ;GO DIVIDE U 0413, 3020,3224,0016,4174,4007,0700,0000,0000,0000 ; 4462 [T0]_Q*2 LONG U 3020, 0056,3333,0017,4174,4003,5701,0000,0000,0000 ; 4463 READ [T1], 3T, DISP/DP ;WHAT SIGN IS QUO ; 4464 =1110 [T0]_[T0]+Q, ;POSITIVE QUO U 0056, 3023,0001,1616,4174,4007,0700,0000,0000,0000 ; 4465 J/DDIV5B ;CONTINUE BELOW U 0057, 3021,2225,0016,4174,4007,0700,4000,0000,0000 ; 4466 [T0]_-Q*2 ;NEGATIVE QUO ; 4467 AD/-D-.25, DBUS/RAM, 3T, ; 4468 RAMADR/AC#, DEST/Q_AD, U 3021, 3022,1772,0000,0274,4007,0701,0040,0000,0000 ; 4469 MULTI PREC/1 U 3022, 1256,3223,0000,0174,4007,0621,0400,0000,0000 ; 4470 AC_Q, SKIP AD.EQ.0 U 1256, 3024,3440,1616,1174,4007,0700,0400,0000,1441 ; 4471 =0 AC[1]_[T0], J/DDIV5C U 1257, 3026,4223,0000,1174,4007,0700,0400,0000,1441 ; 4472 AC[1]_0, J/DDIV6 ; 4473 U 3023, 3026,4113,1600,1174,4007,0700,0400,0000,1441 ; 4474 DDIV5B: AC[1]_[T0].AND.[MAG], J/DDIV6 ;STORE LOW WORD IN + CASE ; 4475 U 3024, 3025,3551,1616,4374,0007,0700,0000,0040,0000 ; 4476 DDIV5C: [T0]_[T0].OR.#, #/400000, HOLD RIGHT U 3025, 3026,3440,1616,1174,4007,0700,0400,0000,1441 ; 4477 AC[1]_[T0] ; 4478 U 3026, 1260,3333,0003,4174,4007,0520,0000,0000,0000 ; 4479 DDIV6: READ [AR], SKIP DP0 ;LOOK AT AR SIGN ; 4480 =0 U 1260, 3032,3442,0400,4174,4007,0700,0000,0000,0000 ; 4481 DDIV7: Q_[ARX], J/DDIV8 U 1261, 3027,0112,0406,4174,4007,0700,0000,0000,0000 ; 4482 Q_[ARX]+[BRX] ; 4483 [AR]_[AR]+[BR], U 3027, 3030,0111,0503,4174,4007,0700,0040,0000,0000 ; 4484 MULTI PREC/1 U 3030, 3031,0002,0600,4174,4007,0700,0000,0000,0000 ; 4485 Q_Q+[BRX] ; 4486 [AR]_[AR]+[BR], U 3031, 3032,0111,0503,4174,4007,0700,0040,0000,0000 ; 4487 MULTI PREC/1 U 3032, 0355,3333,0017,4174,4003,5701,0000,0000,0000 ; 4488 DDIV8: READ [T1], 3T, DISP/DP ; 4489 =1101 ; 4490 DDIV8A: [AR]_[AR]*2 LONG, ASHC, ;POSITIVE REMAINDER U 0355, 3034,3444,0303,4174,4047,0700,0000,0000,0000 ; 4491 J/DDIV9 ;CONTINUE BELOW U 0357, 3033,2222,0000,4174,4007,0700,4000,0000,0000 ; 4492 Q_-Q ;NEGATE REMAINDER IN AR!Q ; 4493 [AR]_(-[AR]-.25)*2 LONG, U 3033, 3034,2444,0303,4174,4047,0700,0040,0000,0000 ; 4494 MULTI PREC/1, ASHC ; 4495 ; T10KL.MCR[7,3] 15:10 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 ; 4496 DDIV9: AC[2]_[AR]+[AR], 3T, U 3034, 1262,0113,0303,1174,4007,0521,0400,0000,1442 ; 4497 SKIP DP0 ; 4498 =0 AC[3]_Q.AND.[MAG], U 1262, 0100,4003,0000,1174,4156,4700,0400,0000,1443 ; 4499 NEXT INST U 1263, 3035,4002,0000,1174,4007,0700,0000,0000,1443 ; 4500 Q_Q.AND.[MAG], AC[3] ; 4501 AC[3]_[MAG].EQV.Q, U 3035, 0100,7003,0000,1174,4156,4700,0400,0000,1443 ; 4502 NEXT INST ; 4503 ; 4504 ; 4505 ;HERE IF WE WANT TO SET NO DIVIDE ; 4506 =11011 U 0033, 3054,4443,0000,4174,4007,0700,0010,0000,0000 ; 4507 NODDIV: CALL [QDNEG] ;FIXUP AC TO AC+3 U 0037, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 4508 NO DIVIDE ;ABORT DIVIDE ; 4509 U 3036, 0001,3446,0303,4174,4044,1700,0000,0000,0000 ; 4510 DDIVS: [AR]_[AR]*.5 LONG, ASHC, RETURN [1] ;;4511 .IFNOT/FULL ;;4512 1627: ;;4513 DDIV: UUO ; 4514 .ENDIF/FULL ; 4515 ; T10KL.MCR[7,3] 15:10 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 ; 4516 .TOC "ARITHMETIC -- DIVIDE SUBROUTINE" ; 4517 ; 4518 ;HERE IS THE SUBROUTINE TO DO DIVIDE ; 4519 ;ENTER WITH: ; 4520 ; AR!Q = D'END ; 4521 ; BR = D'SOR ; 4522 ;RETURN 2 WITH: ; 4523 ; AR = REMAINDER ; 4524 ; Q = QUOTIENT ; 4525 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4526 ; ; 4527 =1000 ; 4528 DIVSUB: Q_Q.AND.#, ;CLEAR SIGN BIT IN ; 4529 #/377777, ;MASK ; 4530 HOLD RIGHT, ;JUST CLEAR BIT 0 U 0370, 3037,4662,0000,4374,0007,0700,0010,0037,7777 ; 4531 CALL [DIVSGN] ;DO REAL DIVIDE U 0374, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 4532 =1100 RETURN [2] ;ALL POSITIVE U 0375, 0002,2222,0000,4174,4004,1700,4000,0000,0000 ; 4533 =1101 Q_-Q, RETURN [2] ;-QUO +REM U 0376, 0377,2222,0000,4174,4007,0700,4000,0000,0000 ; 4534 =1110 Q_-Q ;ALL NEGATIVE U 0377, 0002,2441,0303,4174,4004,1700,4000,0000,0000 ; 4535 =1111 [AR]_-[AR], RETURN [2] ;NEGATIVE REMAINDER ; 4536 ; T10KL.MCR[7,3] 15:10 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 ; 4537 ;HERE IS THE INNER DIVIDE SUBROUTINE ; 4538 ;SAME SETUP AS DIVSUB ; 4539 ;RETURNS WITH AR AND Q POSITIVE AND ; 4540 ; 14 IF ALL POSITIVE ; 4541 ; 15 IF -QUO ; 4542 ; 16 IF ALL NEGATIVE ; 4543 ; 17 IF NEGATIVE REMAINDER ; 4544 ; 4545 BASIC DIV STEP "DEST/Q_Q*2, DIV, A/BR, B/AR, STEP SC" ; 4546 DIV STEP "BASIC DIV STEP, AD/A+B, DIVIDE/1" ; 4547 FIRST DIV STEP "BASIC DIV STEP, AD/B-A-.25, ADD .25" ; 4548 U 3037, 1264,3333,0003,4174,4007,0520,0000,0000,0000 ; 4549 DIVSGN: READ [AR], SKIP DP0 U 1264, 3041,4221,0004,4174,4007,0700,0000,0000,0000 ; 4550 =0 [ARX]_0, J/DVSUB2 ;REMAINDER IS POSITIVE U 1265, 1266,2222,0000,4174,4007,0621,4000,0000,0000 ; 4551 Q_-Q, SKIP AD.EQ.0 ;COMPLEMENT LOW WORD U 1266, 3040,7441,0303,4174,4007,0700,0000,0000,0000 ; 4552 =0 [AR]_.NOT.[AR], J/DVSUB1 ;COMPLEMENT HI WORD U 1267, 3040,2441,0303,4174,4007,0700,4000,0000,0000 ; 4553 [AR]_-[AR] ;TWO'S COMPLEMENT HI WORD SINCE ; 4554 ; LOW WORD WAS ZERO U 3040, 3041,3771,0004,4374,4007,0700,0000,0010,0000 ; 4555 DVSUB1: [ARX]_#, #/100000 ;REMAINDER IS NEGATIVE U 3041, 1270,3333,0005,4174,4007,0520,0000,0000,0000 ; 4556 DVSUB2: READ [BR], SKIP DP0 ;IS THE DIVISOR NEGATIVE ; 4557 =0 ; 4558 DVSUB3: [AR]_[AR]*.5 LONG, ;START TO PUT IN 9-CHIPS U 1270, 3043,3446,0303,4174,4007,0700,0000,0000,0000 ; 4559 J/DIVSET ;JOIN MAIN STREAM U 1271, 3042,2441,0505,4174,4007,0700,4000,0000,0000 ; 4560 [BR]_-[BR] ;COMPLEMENT DIVISOR ; 4561 [ARX]_[ARX].OR.#, ;ADJUST SIGN OF QUOTIENT U 3042, 1270,3551,0404,4374,4007,0700,0000,0004,0000 ; 4562 #/40000, J/DVSUB3 ;USE 9 CHIPS U 3043, 3044,3447,0303,4174,4007,0700,0000,0000,0000 ; 4563 DIVSET: [AR]_[AR]*.5 U 3044, 3045,3447,0505,4174,4007,0700,0000,0000,0000 ; 4564 [BR]_[BR]*.5 U 3045, 3046,3447,0505,4174,4007,0700,0000,0000,0000 ; 4565 [BR]_[BR]*.5 U 3046, 1272,1114,0503,4174,4067,0630,6000,0060,0000 ; 4566 FIRST DIV STEP ; 4567 ;HERE IS THE MAIN DIVIDE LOOP ; 4568 =0 U 1272, 1272,0114,0503,4174,4067,0630,2100,0060,0000 ; 4569 DIVIDE: DIV STEP, J/DIVIDE U 1273, 3047,3444,1717,4174,4067,0700,0100,0000,0000 ; 4570 [T1]_[T1]*2 LONG, DIVIDE/1, DIV U 3047, 1274,3447,0303,4174,4007,0520,0000,0000,0000 ; 4571 [AR]_[AR]*.5, SKIP DP0 ; 4572 =0 U 1274, 3050,3444,0303,4174,4007,0700,0000,0000,0000 ; 4573 FIX++: [AR]_[AR]*2 LONG, J/FIX1++ U 1275, 1274,0111,0503,4174,4007,0700,0000,0000,0000 ; 4574 [AR]_[AR]+[BR], J/FIX++ U 3050, 3051,3444,0303,4174,4007,0700,0000,0000,0000 ; 4575 FIX1++: [AR]_[AR]*2 LONG U 3051, 3052,4002,1200,4174,4007,0700,0000,0000,0000 ; 4576 Q_[MASK].AND.Q ; 4577 READ [ARX], 3T, ;RETURN TO 1 OF 4 PLACES ; 4578 DISP/1, ;BASED ON SIGN OF RESULT U 3052, 0014,3333,0004,4174,4000,1701,0000,0000,0000 ; 4579 J/14 ;RETURN ; 4580 ; T10KL.MCR[7,3] 15:10 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 ; 4581 .TOC "ARITHMETIC -- DOUBLE DIVIDE SUBROUTINE" ; 4582 .IF/FULL ; 4583 ;CALL WITH: ; 4584 ; AR!ARX!Q = 3 WORD DV'END ; 4585 ; BR!BRX = 2 WORD DV'SOR ; 4586 ;RETURN 2 WITH: ; 4587 ; AR!ARX = 2 WORD REMAINDER ; 4588 ; CORRECT IF POSITIVE (Q IS ODD) ; 4589 ; WRONG (BY BR!BRX) IF NEGATIVE (Q IS EVEN) ; 4590 ; Q = 1 WORD QUOTIENT ; 4591 ;CALLER MUST CHECK FOR ZERO DIVIDE PRIOR TO CALL ; 4592 ; ; 4593 ;NOTE: THIS SUBROUTINE ONLY WORKS FOR POSITIVE NUMBERS ; 4594 ; ; 4595 =0 ; 4596 ;HERE FOR NORMAL STARTUP ; 4597 DBLDIV: [ARX]_([ARX]-[BRX])*2 LONG, ;SUBTRACT LOW WORD U 1276, 3053,1114,0604,4174,4057,0700,4000,0000,0000 ; 4598 LSHC, J/DIVHI ;GO ENTER LOOP ; 4599 ;SKIP ENTRY POINT IF FINAL STEP IN PREVIOUS ENTRY WAS IN ERROR ; 4600 [ARX]_([ARX]+[BRX])*2 LONG, ;CORRECTION STEP U 1277, 3053,0114,0604,4174,4057,0700,0000,0000,0000 ; 4601 LSHC, J/DIVHI ;GO ENTER LOOP ; 4602 ; 4603 ;HERE IS DOUBLE DIVIDE LOOP ; 4604 DIVHI: AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4605 A/BR, B/AR, ;OPERANDS ARE AR AND BR ; 4606 DEST/AD*2, ;SHIFT LEFT ; 4607 SHSTYLE/NORM, ;SET SHIFT PATHS (SEE DPE1) ; 4608 MULTI PREC/1, ;INJECT SAVED BITS U 3053, 1300,0115,0503,4174,4007,0630,2040,0060,0000 ; 4609 STEP SC ;COUNT DOWN LOOP ; 4610 =0 AD/A+B, ;ADD (HARDWARE MAY OVERRIDE) ; 4611 A/BRX, B/ARX, ;LOW WORDS ; 4612 DEST/Q_Q*2, ;SHIFT WHOLE MESS LEFT ; 4613 SHSTYLE/DIV, ;SET SHIFT PATHS (SEE DPE1) ; 4614 DIVIDE/1, ;SAVE BITS U 1300, 3053,0114,0604,4174,4067,0700,0100,0000,0000 ; 4615 J/DIVHI ;KEEP LOOPING ; 4616 ;HERE WHEN ALL DONE ; 4617 DEST/Q_Q*2, DIV, ;SHIFT IN LAST Q BIT ; 4618 DIVIDE/1, ;GENERATE BIT U 1301, 0002,4444,0002,4174,4064,1700,0100,0000,0000 ; 4619 B/HR, RETURN [2] ;ZERO HR AND RETURN ; 4620 ; T10KL.MCR[7,3] 15:10 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 ; 4621 .TOC "ARITHMETIC -- SUBROUTINES FOR ARITHMETIC" ; 4622 ; 4623 ;QUAD WORD NEGATE ; 4624 ;ARGUMENT IN AC!AC1!AC2!AC3 ; 4625 ;LEAVES COPY OF AC!AC1 IN AR!Q ; 4626 ;RETURNS TO CALL!24 U 3054, 3055,1772,0000,1274,4007,0701,4000,0000,1443 ; 4627 QDNEG: Q_-AC[3] ; 4628 AC[3]_Q.AND.[MAG], ;PUT BACK LOW WORD U 3055, 1302,4003,0000,1174,4007,0621,0400,0000,1443 ; 4629 SKIP AD.EQ.0 ;SEE IF ANY CARRY ; 4630 =0 U 1302, 3060,7772,0000,1274,4007,0701,0000,0000,1442 ; 4631 COM2A: Q_.NOT.AC[2], J/COM2 ;CARRY--DO 1'S COMPLEMENT U 1303, 3056,1772,0000,1274,4007,0701,4000,0000,1442 ; 4632 Q_-AC[2] ;NEXT WORD ; 4633 AC[2]_Q.AND.[MAG], ;PUT BACK WORD U 3056, 1304,4003,0000,1174,4007,0621,0400,0000,1442 ; 4634 SKIP AD.EQ.0 ; 4635 =0 U 1304, 3061,7772,0000,1274,4007,0701,0000,0000,1441 ; 4636 COM1A: Q_.NOT.AC[1], J/COM1 U 1305, 3057,1772,0000,1274,4007,0701,4000,0000,1441 ; 4637 Q_-AC[1] ; 4638 AC[1]_Q.AND.[MAG], U 3057, 1306,4003,0000,1174,4007,0621,0400,0000,1441 ; 4639 SKIP AD.EQ.0 ; 4640 =0 U 1306, 3062,7771,0003,0274,4007,0700,0000,0000,0000 ; 4641 COM0A: [AR]_.NOT.AC, J/COM0 U 1307, 3062,1771,0003,0274,4007,0701,4000,0000,0000 ; 4642 [AR]_-AC, 3T, J/COM0 ; 4643 U 3060, 1304,4003,0000,1174,4007,0700,0400,0000,1442 ; 4644 COM2: AC[2]_Q.AND.[MAG], J/COM1A U 3061, 1306,4003,0000,1174,4007,0700,0400,0000,1441 ; 4645 COM1: AC[1]_Q.AND.[MAG], J/COM0A U 3062, 0024,3440,0303,0174,4004,1700,0400,0000,0000 ; 4646 COM0: AC_[AR], RETURN [24] ; 4647 .ENDIF/FULL ; 4648 ; 4649 ;DOUBLE WORD NEGATE ; 4650 ;ARGUMENT IN AR AND ARX ; 4651 ;RETURNS TO CALL!2 ; 4652 U 3063, 3064,4551,0404,4374,0007,0700,0000,0037,7777 ; 4653 DBLNEG: CLEAR ARX0 ;FLUSH DUPLICATE SIGN ; 4654 DBLNGA: [ARX]_-[ARX], ;FLIP LOW WORD U 3064, 1310,2441,0404,4174,4007,0621,4000,0000,0000 ; 4655 SKIP AD.EQ.0 ;SEE IF CARRY ; 4656 =0 [AR]_.NOT.[AR], ;NO CARRY-- 1 COMP U 1310, 2236,7441,0303,4174,4467,0700,0000,0001,0001 ; 4657 AD FLAGS, J/CLARX0 ;CLEAR LOW SIGN ; 4658 [AR]_-[AR], ;CARRY U 1311, 2236,2441,0303,4174,4467,0701,4000,0001,0001 ; 4659 AD FLAGS, 3T, J/CLARX0 ; 4660 ; 4661 ;SAME THING BUT DOES NOT SET PC FLAGS U 3065, 1312,2441,0404,4174,4007,0621,4000,0000,0000 ; 4662 DBLNG1: [ARX]_-[ARX], SKIP AD.EQ.0 U 1312, 2236,7441,0303,4174,4007,0700,0000,0000,0000 ; 4663 =0 [AR]_.NOT.[AR], J/CLARX0 U 1313, 2236,2441,0303,4174,4007,0700,4000,0000,0000 ; 4664 [AR]_-[AR], J/CLARX0 ; 4665 ; T10KL.MCR[7,3] 15:10 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 ; 4666 .NOBIN ; 4667 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB" ; 4668 ; 4669 ; 4670 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER ; 4671 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES. ; 4672 ; 4673 ;IBP OR ADJBP ; 4674 ;IBP IF AC#0, ADJBP OTHERWISE ; 4675 ; HERE WITH THE BASE POINTER IN AR ; 4676 ; 4677 ;HERE IS A MACRO TO DO IBP. WHAT HAPPENS IS: ; 4678 ; THE AR IS PUT ON THE DP. ; 4679 ; THE BR IS LOADED FROM THE DP WITH BITS 0-5 FROM SCAD ; 4680 ; THE SCAD COMPUTES P-S ; 4681 ; IBPS IS CALLED WITH A 4-WAY DISPATCH ON SCAD0 AND FIRST-PART-DONE ; 4682 ;THE MACRO IS WRITTEN WITH SEVERAL SUB-MACROS BECAUSE OF RESTRICTIONS ; 4683 ; IN THE MICRO ASSEMBLER ; 4684 ; 4685 IBP DP "AD/D, DEST/A, A/AR, B/BR, DBUS/DBM, DBM/DP, BYTE/BYTE1" ; 4686 IBP SCAD "SCAD/A-B, SCADA/BYTE1, SCADB/SIZE" ; 4687 IBP SPEC "SCAD DISP, SKIP FPD" ; 4688 CALL IBP "IBP DP, IBP SCAD, IBP SPEC, CALL [IBPS], DT/3T" ; 4689 ; 4690 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" ; 4691 ; 4692 ;THE FOLLOWING MACRO IS USED FOR COUNTING SHIFTS IN THE BYTE ROUTINES. IT ; 4693 ; USES THE FE AND COUNTS BY 8. NOTE: BYTE STEP IS A 2S WEIGHT SKIP NOT 1S. ; 4694 BYTE STEP "SCAD/A+B,SCADA/S#,S#/1770,SCADB/FE,LOAD FE, 3T,SCAD DISP" ; 4695 ; T10KL.MCR[7,3] 15:10 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 ; 4696 .BIN ; 4697 ; 4698 .DCODE D 0133, 0015,1610,1100 ; 4699 133: R, AC, J/IBP ;OR ADJBP D 0134, 0000,1620,1500 ; 4700 134: R,W TEST, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD D 0135, 0000,1624,1100 ; 4701 R, J/LDB D 0136, 0000,1630,1500 ; 4702 R,W TEST, J/IDPB D 0137, 0000,1634,1100 ; 4703 R, J/DPB ; 4704 .UCODE ; 4705 1610: U 1610, 0240,4443,0000,4174,4007,0360,0000,0000,0000 ; 4706 IBP: SKIP IF AC0 ;SEE IF ADJBP ; 4707 =000 WORK[ADJPTR]_[AR], ;SAVE POINTER U 0240, 3123,3333,0003,7174,4007,0700,0400,0000,0223 ; 4708 J/ADJBP ;GO ADJUST BYTE POINTER U 0241, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4709 =001 CALL IBP ;BUMP BYTE POINTER U 0245, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 4710 =101 DONE ;POINTER STORED ; 4711 = ; 4712 ; 4713 1620: U 1620, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4714 ILDB: CALL IBP ;BUMP BYTE POINTER ; 4715 1624: ; 4716 LDB: READ [AR], ;LOOK AT POINTER ; 4717 LOAD BYTE EA, FE_P, 3T, ;GET STUFF OUT OF POINTER U 1624, 3073,3333,0003,4174,4217,0701,1010,0073,0500 ; 4718 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS U 1625, 0414,3443,0100,4174,4007,0700,0200,0014,0012 ; 4719 1625: VMA_[PC], FETCH ;START FETCH OF NEXT INST ; 4720 =0* READ [AR], ;LOOK AT POINTER ; 4721 FE_FE.AND.S#, S#/0770, ;MASK OUT JUNK IN FE ; 4722 BYTE DISP, ;DISPATCH ON BYTE SIZE U 0414, 0340,3333,0003,4174,4006,5701,1010,0051,0770 ; 4723 CALL [LDB1] ;GET BYTE ; 4724 AC_[AR], CLR FPD, ;STORE AC U 0416, 0603,3440,0303,0174,4467,0700,0400,0005,0000 ; 4725 J/NIDISP ;GO DO NEXT INST ; 4726 ; 4727 1630: U 1630, 0350,3770,0305,4334,4016,7351,0010,0033,6000 ; 4728 IDPB: CALL IBP ;BUMP BYTE POINTER ; 4729 1634: U 1634, 3066,3775,0004,0274,4007,0701,0000,0000,0000 ; 4730 DPB: [ARX]_AC*2 ;PUT 7 BIT BYTE IN 28-34 ; 4731 AD/A, A/ARX, SCAD/A, ;PUT THE BYTE INTO ; 4732 SCADA/BYTE5, 3T, ; INTO THE FE REGISTER U 3066, 3067,3443,0400,4174,4007,0701,1000,0077,0000 ; 4733 LOAD FE ; FE REGISTER U 3067, 0264,3771,0004,0276,6007,0700,0000,0000,0000 ; 4734 [ARX]_AC ;PUT BYTE IN ARX ; 4735 =100 READ [AR], ;LOOK AT BYTE POINTER ; 4736 LOAD BYTE EA, ;LOAD UP EFFECTIVE ADDRESS U 0264, 3073,3333,0003,4174,4217,0700,0010,0000,0500 ; 4737 CALL [BYTEA] ;COMPUTE EFFECTIVE ADDRESS ; 4738 READ [AR], ;LOOK AT POINTER AGAIN ; 4739 BYTE DISP, ;DISPATCH ON SIZE U 0265, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 4740 CALL [DPB1] ;GO STORE BYTE U 0267, 1400,4443,0000,4174,4467,0700,0000,0005,0000 ; 4741 =111 CLR FPD, J/DONE ;ALL DONE ; 4742 = ; 4743 ; T10KL.MCR[7,3] 15:10 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 ; 4744 .TOC "BYTE GROUP -- INCREMENT BYTE POINTER SUBROUTINE" ; 4745 ; 4746 =00 U 0350, 3071,3441,0503,4174,4007,0700,0200,0003,0002 ; 4747 IBPS: [AR]_[BR], START WRITE, J/IBPX ;NO OVERFLOW, BR HAS ANSWER U 0351, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4748 RETURN [4] ;FIRST PART DONE SET U 0352, 3070,3770,0503,4334,4017,0700,0000,0032,6000 ; 4749 SET P TO 36-S, J/NXTWRD ;WORD OVERFLOW U 0353, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 4750 RETURN [4] ;FPD WAS SET IGNORE OVERFLOW ; 4751 ; AND RETURN ; 4752 U 3070, 3071,0111,0703,4170,4007,0700,0200,0003,0002 ; 4753 NXTWRD: [AR]_[AR]+1, HOLD LEFT, START WRITE ;BUMP Y AND RETURN U 3071, 0004,3333,0003,4175,5004,1701,0200,0000,0002 ; 4754 IBPX: MEM WRITE, MEM_[AR], RETURN [4] ; 4755 ; 4756 ; 4757 .TOC "BYTE GROUP -- BYTE EFFECTIVE ADDRESS EVALUATOR" ; 4758 ; 4759 ;ENTER WITH POINTER IN AR ; 4760 ;RETURN1 WITH (EA) IN VMA AND WORD IN BR ; 4761 BYTEAS: EA MODE DISP, ;HERE TO AVOID FPD U 3072, 0070,4443,0000,2174,4006,6700,0000,0000,0000 ; 4762 J/BYTEA0 ;GO COMPUTE EA ; 4763 BYTEA: SET FPD, ;SET FIRST-PART-DONE U 3073, 0070,4443,0000,2174,4466,6700,0000,0003,0000 ; 4764 EA MODE DISP ;DISPATCH ; 4765 =100* ; 4766 BYTEA0: VMA_[AR]+XR, ;INDEXING ; 4767 START READ, ;FETCH DATA WORD ; 4768 PXCT BYTE DATA, ;FOR PXCT U 0070, 3075,0553,0300,2274,4007,0700,0200,0004,0712 ; 4769 J/BYTFET ;GO WAIT ; 4770 VMA_[AR], ;PLAIN ; 4771 START READ, ;START CYCLE ; 4772 PXCT BYTE DATA, ;FOR PXCT U 0072, 3075,3443,0300,4174,4007,0700,0200,0004,0712 ; 4773 J/BYTFET ;GO WAIT ; 4774 VMA_[AR]+XR, ;BOTH ; 4775 START READ, ;START CYCLE ; 4776 PXCT BYTE PTR EA, ;FOR PXCT U 0074, 3074,0553,0300,2274,4007,0700,0200,0004,0512 ; 4777 J/BYTIND ;GO DO INDIRECT ; 4778 VMA_[AR], ;JUST @ ; 4779 START READ, ;START READ U 0076, 3074,3443,0300,4174,4007,0700,0200,0004,0512 ; 4780 PXCT BYTE PTR EA ;FOR PXCT ; 4781 BYTIND: MEM READ, ;WAIT FOR @ WORD ; 4782 [AR]_MEM, ;PUT IN AR ; 4783 HOLD LEFT, ;JUST IN RH (SAVE P & S) ; 4784 LOAD BYTE EA, ;LOOP BACK U 3074, 3072,3771,0003,4361,5217,0700,0200,0000,0502 ; 4785 J/BYTEAS ; .. ; 4786 ; 4787 BYTFET: MEM READ, ;WAIT FOR BYTE DATA ; 4788 [BR]_MEM.AND.MASK, ; WORD. UNSIGNED U 3075, 0001,4551,1205,4365,5004,1700,0200,0000,0002 ; 4789 RETURN [1] ;RETURN TO CALLER ; 4790 ; T10KL.MCR[7,3] 15:10 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 ; 4791 .TOC "BYTE GROUP -- LOAD BYTE SUBROUTINE" ; 4792 ; 4793 ;CALL WITH: ; 4794 ; WORD IN BR ; 4795 ; POINTER IN AR ; 4796 ; P IN FE ; 4797 ; BYTE DISPATCH ; 4798 ;RETURN2 WITH BYTE IN AR ; 4799 LDB SCAD "SCAD/A,BYTE/BYTE5" ; 4800 7-BIT LDB "AD/D,DBUS/DBM,DBM/DP,DEST/A,A/BR,B/BR, LDB SCAD" ; 4801 ; 4802 =000 ; 4803 LDB1: GEN 17-FE, 3T, ;GO SEE IF ALL THE BITS ; 4804 SCAD DISP, ; ARE IN THE LEFT HALF U 0340, 0410,4443,0000,4174,4006,7701,0000,0031,0210 ; 4805 J/LDBSWP ;GO TO LDBSWP & SKIP IF LH ; 4806 ; 4807 ;HERE ARE THE 7-BIT BYTES U 0341, 3076,3770,0505,4334,4057,0700,0000,0073,0000 ; 4808 =001 7-BIT LDB, SCADA/BYTE1, J/LDB7 U 0342, 3076,3770,0505,4334,4057,0700,0000,0074,0000 ; 4809 =010 7-BIT LDB, SCADA/BYTE2, J/LDB7 U 0344, 3076,3770,0505,4334,4057,0700,0000,0075,0000 ; 4810 =100 7-BIT LDB, SCADA/BYTE3, J/LDB7 U 0345, 3076,3770,0505,4334,4057,0700,0000,0076,0000 ; 4811 =101 7-BIT LDB, SCADA/BYTE4, J/LDB7 U 0347, 3076,3770,0505,4334,4057,0700,0000,0077,0000 ; 4812 =111 7-BIT LDB, SCADA/BYTE5, J/LDB7 ; 4813 = ; 4814 ; 4815 ;FOR 7-BIT BYTES WE HAVE BYTE IN BR 28-35 AND JUNK IN REST OF BR. ; 4816 ; WE JUST MASK THE SELECTED BYTE AND SHIFT ONE PLACE RIGHT. ; 4817 LDB7: AD/ZERO,RSRC/DA, ;LH_ZERO, RH_D.AND.A ; 4818 DBUS/DBM,DBM/#,#/376, ;D INPUT IS 376 ; 4819 A/BR, ;A IS BR ; 4820 B/AR, ;PUT RESULT IN AR ; 4821 DEST/AD*.5, 3T, ;SHIFT RESULT 1 PLACE U 3076, 0002,4257,0503,4374,4004,1701,0000,0000,0376 ; 4822 RETURN [2] ;RETURN TO CALLER ; 4823 ; T10KL.MCR[7,3] 15:10 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 ; 4824 ;HERE FOR NORMAL BYTES ; 4825 =00 ; 4826 LDBSWP: FE_-FE, ;MAKE P NEGATIVE U 0410, 3100,4443,0000,4174,4007,0700,1000,0031,0000 ; 4827 J/LDBSH ;JOIN MAIN LDB LOOP U 0412, 3077,3770,0505,4344,4007,0700,0000,0000,0000 ; 4828 =10 [BR]_[BR] SWAP ;SHIFT 18 STEPS ; 4829 = ; 4830 [BR]_0, HOLD RIGHT, ;PUT ZERO IN LH U 3077, 3100,4221,0005,4174,0007,0700,1000,0031,0220 ; 4831 FE_-FE+S#, S#/220 ;UPDATE FE ; 4832 LDBSH: [BR]_[BR]*.5, ;SHIFT RIGHT ; 4833 FE_FE+10, ;UPDATE THE FE U 3100, 3101,3447,0505,4174,4007,0700,1020,0041,0010 ; 4834 MULTI SHIFT/1 ;FAST SHIFT U 3101, 3102,3333,0003,4174,4007,0700,1000,0031,7770 ; 4835 READ [AR], FE_-S-10 ;GET SIZE U 3102, 3103,4222,0000,4174,4007,0700,0000,0000,0000 ; 4836 Q_0 ;CLEAR Q ; 4837 GEN MSK [AR], ;PUT MASK IN Q (WIPEOUT AR) ; 4838 FE_FE+10, ;COUNT UP ALL STEPS U 3103, 3104,4224,0003,4174,4027,0700,1020,0041,0010 ; 4839 MULTI SHIFT/1 ;FAST SHIFT U 3104, 3105,4224,0003,4174,4027,0700,0000,0000,0000 ; 4840 GEN MSK [AR] ;ONE MORE BIT U 3105, 0002,4001,0503,4174,4004,1700,0000,0000,0000 ; 4841 [AR]_[BR].AND.Q, RETURN [2] ; 4842 ; T10KL.MCR[7,3] 15:10 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 ; 4843 .NOBIN ; 4844 .TOC "BYTE GROUP -- DEPOSIT BYTE IN MEMORY" ; 4845 ; 4846 ;FLOW FOR DPB (NOT 7-BIT BYTE) ; 4847 ; ; 4848 ;FIRST SET ARX TO -1 AND Q TO ZERO AND ROTATE LEFT ; 4849 ; S PLACES GIVING: ; 4850 ; 4851 ; ARX Q ; 4852 ; +------------------!------------------+ ; 4853 ; !111111111111000000!000000000000111111! ; 4854 ; +------------------!------------------+ ; 4855 ; !<--->! ; 4856 ; S BITS ; 4857 ; ; 4858 ; 4859 ;NOW THE AC IS LOAD INTO THE ARX AND BOTH THE ARX AND Q ; 4860 ; ARE SHIFTED LEFT P BITS GIVING: ; 4861 ; 4862 ; +------------------!------------------+ ; 4863 ; !??????BBBBBB000000!000000111111000000! ; 4864 ; +------------------!------------------+ ; 4865 ; <----><----> <----><----> ; 4866 ; JUNK BYTE MASK P BITS ; 4867 ; ; 4868 ; 4869 ;AT THIS POINT WE ARE ALMOST DONE. WE NEED TO AND ; 4870 ; THE BR WITH .NOT. Q TO ZERO THE BITS FOR THE BYTE ; 4871 ; AND AND ARX WITH Q TO MASK OUT THE JUNK THIS GIVES: ; 4872 ; ; 4873 ; ARX ; 4874 ; +------------------+ ; 4875 ; !000000BBBBBB000000! ; 4876 ; +------------------! ; 4877 ; ; 4878 ; AR ; 4879 ; +------------------+ ; 4880 ; !DDDDDD000000DDDDDD! ; 4881 ; +------------------+ ; 4882 ; ; 4883 ;WE NOW OR THE AR WITH ARX TO GENERATE THE ANSWER. ; 4884 ; T10KL.MCR[7,3] 15:10 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 ; 4885 .BIN ; 4886 ; 4887 ;DEPOSIT BYTE SUBROUTINE ; 4888 ;CALL WITH: ; 4889 ; BYTE POINTER IN AR ; 4890 ; BYTE TO STORE IN ARX ; 4891 ; WORD TO MERGE WITH IN BR ; 4892 ; (E) OF BYTE POINTER IN VMA ; 4893 ; 7-BIT BYTE IN FE ; 4894 ; BYTE DISPATCH ; 4895 ;RETURN2 WITH BYTE IN MEMORY ; 4896 ; ; 4897 DPB SCAD "SCAD/A+B,SCADA/S#,SCADB/FE,S#/0" ; 4898 7-BIT DPB "AD/D,DEST/A,A/BR,DBUS/DBM,DBM/DP,B/AR, DPB SCAD" ; 4899 ; 4900 =000 U 0360, 3110,3333,0003,4174,4007,0700,1000,0031,7770 ; 4901 DPB1: READ [AR], FE_-S-10, J/DPBSLO ;NOT SPECIAL U 0361, 3106,3770,0503,4334,4017,0700,0000,0041,0000 ; 4902 =001 7-BIT DPB, BYTE/BYTE1, J/DPB7 U 0362, 3106,3770,0503,4334,4027,0700,0000,0041,0000 ; 4903 =010 7-BIT DPB, BYTE/BYTE2, J/DPB7 U 0364, 3106,3770,0503,4334,4037,0700,0000,0041,0000 ; 4904 =100 7-BIT DPB, BYTE/BYTE3, J/DPB7 U 0365, 3106,3770,0503,4334,4047,0700,0000,0041,0000 ; 4905 =101 7-BIT DPB, BYTE/BYTE4, J/DPB7 U 0367, 3106,3770,0503,4334,4057,0700,0000,0041,0000 ; 4906 =111 7-BIT DPB, BYTE/BYTE5, J/DPB7 ; 4907 = U 3106, 3107,3447,1200,4174,4007,0700,0200,0003,0002 ; 4908 DPB7: [MAG]_[MASK]*.5, START WRITE U 3107, 0002,3333,0003,4175,5004,1701,0200,0000,0002 ; 4909 MEM WRITE, MEM_[AR], RETURN [2] ; 4910 ; 4911 U 3110, 3111,4222,0000,4174,4007,0700,0000,0000,0000 ; 4912 DPBSLO: Q_0 ;CLEAR Q ; 4913 GEN MSK [MAG], ;GENERATE MASK IN Q (ZAP MAG) ; 4914 FE_FE+10, ;COUNT STEPS U 3111, 3112,4224,0000,4174,4027,0700,1020,0041,0010 ; 4915 MULTI SHIFT/1 ;FAST SHIFT U 3112, 3113,4224,0000,4174,4027,0700,0000,0000,0000 ; 4916 GEN MSK [MAG] ;ONE MORE BITS U 3113, 3114,3333,0003,4174,4007,0701,1000,0073,0000 ; 4917 READ [AR], 3T, FE_P ;AMOUNT TO SHIFT U 3114, 3115,4443,0000,4174,4007,0700,1000,0051,0770 ; 4918 FE_FE.AND.S#, S#/0770 ;MASK OUT JUNK ; 4919 Q_Q.AND.[MASK], ;CLEAR BITS 36 AND 37 U 3115, 3116,4002,1200,4174,4007,0700,1000,0031,0000 ; 4920 FE_-FE ;MINUS NUMBER OF STEPS ; 4921 [ARX]_[ARX]*2 LONG, ;SHIFT BYTE AND MASK ; 4922 FE_FE+10, ;COUNT OUT STEPS U 3116, 3117,3444,0404,4174,4007,0700,1020,0041,0010 ; 4923 MULTI SHIFT/1 ;FAST SHIFT ; 4924 ;AT THIS POINT WE HAVE DONE ALL THE SHIFTING WE NEED. THE BYTE IS ; 4925 ; IN ARX AND THE MASK IS IN Q. U 3117, 3120,7221,0003,4174,4007,0700,0000,0000,0000 ; 4926 [AR]_.NOT.Q U 3120, 3121,4111,0503,4174,4007,0700,0000,0000,0000 ; 4927 [AR]_[AR].AND.[BR] U 3121, 3122,4001,0404,4174,4007,0700,0000,0000,0000 ; 4928 [ARX]_[ARX].AND.Q ; 4929 [AR]_[AR].OR.[ARX], U 3122, 3106,3111,0403,4174,4007,0700,0000,0000,0000 ; 4930 J/DPB7 ; 4931 ; T10KL.MCR[7,3] 15:10 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 ; 4932 .TOC "BYTE GROUP -- ADJUST BYTE POINTER" ; 4933 .IF/FULL ; 4934 ;FIRST THE NUMBER OF BYTES PER WORD IS COMPUTED FROM THE ; 4935 ; FOLLOWING FORMULA: ; 4936 ; ; 4937 ; ( P ) ( 36-P ) ; 4938 ; BYTES PER WORD = INT( --- ) + INT( ---- ) ; 4939 ; ( S ) ( S ) ; 4940 ; ; 4941 ;THIS GIVES 2 BYTES PER WORD FOR THE FOLLOWING 12 BIT BYTE: ; 4942 ; !=====================================! ; 4943 ; ! 6 !////////////! 12 ! 6 ! ; 4944 ; !=====================================! ; 4945 ; P=18 AND S=12 ; 4946 ; ; 4947 ;WE GET 3 BYTES/WORD IF THE BYTES FALL IN THE NATURAL PLACE: ; 4948 ; !=====================================! ; 4949 ; ! 12 !\\\\\\\\\\\\! 12 ! ; 4950 ; !=====================================! ; 4951 ; P=12 AND S=12 ; 4952 ; 4953 ;WE COME HERE WITH THE BYTE POINTER IN AR, AND ADJPTR ; 4954 ADJBP: [ARX]_[AR] SWAP, ;MOVE SIZE OVER U 3123, 1314,3770,0304,4344,4007,0700,2000,0071,0011 ; 4955 SC_9. ;READY TO SHIFT ; 4956 =0 ; 4957 ADJBP0: [ARX]_[ARX]*.5, ;SHIFT P OVER ; 4958 STEP SC, ; .. U 1314, 1314,3447,0404,4174,4007,0630,2000,0060,0000 ; 4959 J/ADJBP0 ; .. ; 4960 [ARX]_([ARX].AND.#)*.5, ;SHIFT AND MASK ; 4961 3T, ;WAIT U 1315, 3124,4557,0404,4374,4007,0701,0000,0000,0176 ; 4962 #/176 ;6 BIT MASK ; 4963 [ARX]_#, ;CLEAR LH ; 4964 #/0, ; .. U 3124, 3125,3771,0004,4374,0007,0700,0000,0000,0000 ; 4965 HOLD RIGHT ; .. U 3125, 3126,3333,0004,7174,4007,0700,0400,0000,0221 ; 4966 WORK[ADJP]_[ARX] ;SAVE P ; 4967 [BR]_([AR].AND.#)*.5, ;START ON S ; 4968 3T, ;EXTRACT S U 3126, 3127,4557,0305,4374,4007,0701,0000,0000,7700 ; 4969 #/007700 ; .. ; 4970 [BR]_[BR] SWAP, ;SHIFT 18 PLACES U 3127, 3130,3770,0505,4344,4007,0700,2000,0071,0003 ; 4971 SC_3 ; .. ; 4972 [BR]_0, ;CLEAR LH U 3130, 1316,4221,0005,4174,0007,0700,0000,0000,0000 ; 4973 HOLD RIGHT ; .. ; 4974 ; T10KL.MCR[7,3] 15:10 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 ; 4975 =0 ; 4976 ADJBP1: [BR]_[BR]*.5, ;SHIFT S OVER ; 4977 STEP SC, ; .. U 1316, 1316,3447,0505,4174,4007,0630,2000,0060,0000 ; 4978 J/ADJBP1 ; .. ; 4979 WORK[ADJS]_[BR], ;SALT S AWAY U 1317, 1320,3333,0005,7174,4007,0621,0400,0000,0222 ; 4980 SKIP AD.EQ.0 ;SEE IF ZERO ; 4981 =0 Q_[ARX], ;DIVIDE P BY S ; 4982 SC_34., ;STEP COUNT U 1320, 0660,3442,0400,4174,4007,0700,2000,0071,0042 ; 4983 J/ADJBP2 ;SKIP NEXT WORD U 1321, 1404,3771,0003,7274,4007,0701,0000,0000,0223 ; 4984 [AR]_WORK[ADJPTR], J/MOVE ;S=0 -- SAME AS MOVE ; 4985 =0* ; 4986 ADJBP2: [AR]_#, ;FILL AR WITH SIGN BITS ; 4987 #/0, ;POSITIVE U 0660, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4988 CALL [DIVSUB] ;GO DIVIDE U 0662, 3131,3223,0000,7174,4007,0700,0400,0000,0224 ; 4989 WORK[ADJQ1]_Q ;SAVE QUOTIENT ; 4990 Q_#, ;COMPUTE (36-P)/S ; 4991 #/36., ; .. U 3131, 3132,3772,0000,4370,4007,0700,0000,0000,0044 ; 4992 HOLD LEFT ;SMALL ANSWER U 3132, 3133,1662,0000,7274,4007,0701,4000,0000,0221 ; 4993 Q_Q-WORK[ADJP] ;SUBTRACT P U 3133, 3134,3771,0005,7274,4007,0701,0000,0000,0222 ; 4994 [BR]_WORK[ADJS] ;DIVIDE BY S U 3134, 0664,4443,0000,4174,4007,0700,2000,0071,0042 ; 4995 SC_34. ;STEP COUNT ; 4996 =0* [AR]_#, ;MORE SIGN BITS ; 4997 #/0, ; .. U 0664, 0370,3771,0003,4374,4007,0700,0010,0000,0000 ; 4998 CALL [DIVSUB] ;GO DIVIDE U 0666, 3135,3333,0003,7174,4007,0700,0400,0000,0225 ; 4999 WORK[ADJR2]_[AR] ;SAVE REMAINDER ; 5000 [AR]_#, ;ASSUME NEGATIVE ADJ U 3135, 3136,3771,0003,4374,4007,0700,0000,0077,7777 ; 5001 #/777777 ;EXTEND SIGN ; 5002 AD/D+Q, ;BR_(P/S)+((36-P)/S) ; 5003 DEST/AD, ; .. ; 5004 B/BR, ; .. ; 5005 RAMADR/#, ; .. ; 5006 DBUS/RAM, ; .. ; 5007 WORK/ADJQ1, ; .. ; 5008 4T, ; .. U 3136, 1322,0661,0005,7274,4007,0622,0000,0000,0224 ; 5009 SKIP AD.EQ.0 ;SEE IF ZERO ; 5010 =0 Q_Q+AC, ;GET ADJUSTMENT ; 5011 SC_34., ;STEP COUNT ; 5012 SKIP DP0, ;GO DO DIVIDE ; 5013 4T, ;WAIT FOR DP U 1322, 0550,0662,0000,0274,4007,0522,2000,0071,0042 ; 5014 J/ADJBP3 ;BELOW U 1323, 0603,4443,0000,4174,4467,0700,0000,0051,1000 ; 5015 NO DIVIDE ;0 BYTES/WORD ; 5016 ; T10KL.MCR[7,3] 15:10 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 ; 5017 ;WE NOW DIVIDE THE ADJUSTMENT BY THE BYTES PER WORD AND FORCE THE ; 5018 ; REMAINDER (R) TO BE A POSITIVE NUMBER (MUST NOT BE ZERO). THE ; 5019 ; QUOTIENT IS ADDED TO THE Y FIELD IN THE BYTE POINTER AND THE NEW ; 5020 ; P FIELD IS COMPUTED BY: ; 5021 ; ; 5022 ; ( ( 36-P )) ; 5023 ; NEW P = 36-((R * S) + RMDR( ---- )) ; 5024 ; ( ( S )) ; 5025 ; ; 5026 ;WE NOW HAVE BYTES/WORD IN BR AND ADJUSTMENT IN Q. DIVIDE TO GET ; 5027 ; WORDS TO ADJUST BY. ; 5028 =00 ; 5029 ADJBP3: [AR]_#, ;POSITIVE ADJUSTMENT U 0550, 0551,3771,0003,4374,4007,0700,0000,0000,0000 ; 5030 #/0. ; 5031 WORK[ADJBPW]_[BR], ;SAVE BYTES/WORD & COMPUTE U 0551, 0370,3333,0005,7174,4007,0700,0410,0000,0226 ; 5032 CALL [DIVSUB] ; ADJ/(BYTES/WORD) ; 5033 ;WE NOW WANT TO ADJUST THE REMAINDER SO THAT IT IS POSITIVE ; 5034 =11 Q_#, ;ONLY RIGHT HALF ; 5035 #/0, ; .. U 0553, 3137,3772,0000,4374,0007,0700,0000,0000,0000 ; 5036 HOLD RIGHT ; .. ; 5037 = ; 5038 READ [AR], ;ALREADY + U 3137, 1324,3333,0003,4174,4007,0421,0000,0000,0000 ; 5039 SKIP AD.LE.0 ; .. ; 5040 =0 ; 5041 ADJBP4: AD/D+Q, ;ADD Q TO POINTER AND STORE ; 5042 DEST/AD, ; .. ; 5043 B/BR, ;RESULT TO BR ; 5044 RAMADR/#, ;PTR IS IN RAM ; 5045 DBUS/RAM, ; .. ; 5046 WORK/ADJPTR, ; .. ; 5047 INH CRY18, ;JUST RH ; 5048 3T, ;WAIT FOR RAM U 1324, 3141,0661,0005,7274,4407,0701,0000,0000,0223 ; 5049 J/ADJBP5 ;CONTINUE BELOW ; 5050 Q_Q-1, ;NO--MAKE Q SMALLER U 1325, 3140,1002,0700,4170,4007,0700,4000,0000,0000 ; 5051 HOLD LEFT ; .. ; 5052 [AR]_[AR]+WORK[ADJBPW], ;MAKE REM BIGGER U 3140, 1324,0551,0303,7274,4007,0701,0000,0000,0226 ; 5053 J/ADJBP4 ;NOW HAVE + REMAINDER ; 5054 ; T10KL.MCR[7,3] 15:10 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 ; 5055 ADJBP5: [BRX]_[AR], ;COMPUTE R*S U 3141, 3142,3441,0306,4174,4007,0700,2000,0071,0043 ; 5056 SC_35. ;STEP COUNT U 3142, 0062,3772,0000,7274,4007,0701,0000,0000,0222 ; 5057 Q_WORK[ADJS] ;GET S ; 5058 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT OVER U 0062, 2774,3446,0606,4174,4007,0700,0010,0000,0000 ; 5059 CALL [MULSUB] ; .. ; 5060 AD/D+Q, ;AR_(R*S)+RMDR(36-P)/S ; 5061 DEST/AD, ; .. ; 5062 B/AR, ; .. ; 5063 RAMADR/#, ; .. ; 5064 3T, ; .. ; 5065 DBUS/RAM, ; .. U 0066, 3143,0661,0003,7274,4007,0701,0000,0000,0225 ; 5066 WORK/ADJR2 ; .. ; 5067 [AR]_(#-[AR])*2, ;COMPUTE 36-AR ; 5068 3T, ;AND START LEFT U 3143, 3144,2555,0303,4374,4007,0701,4000,0000,0044 ; 5069 #/36. ; .. ; 5070 [AR]_[AR] SWAP, ;PUT THE POSITION BACK U 3144, 3145,3770,0303,4344,4007,0700,2000,0071,0011 ; 5071 SC_9. ; .. ; 5072 [AR]_#, ;CLEAR JUNK FROM RH ; 5073 #/0, ; .. U 3145, 1326,3771,0003,4370,4007,0700,0000,0000,0000 ; 5074 HOLD LEFT ; .. ; 5075 =0 ; 5076 ADJBP6: [AR]_[AR]*2, ;LOOP OVER ALL BITS ; 5077 STEP SC, ; .. U 1326, 1326,3445,0303,4174,4007,0630,2000,0060,0000 ; 5078 J/ADJBP6 ; .. ; 5079 [BR]_[BR].AND.#, ; .. ; 5080 #/007777, ; .. U 1327, 3146,4551,0505,4374,0007,0700,0000,0000,7777 ; 5081 HOLD RIGHT ; .. ; 5082 AC_[AR].OR.[BR], ;ALL DONE U 3146, 1400,3113,0305,0174,4007,0700,0400,0000,0000 ; 5083 J/DONE ;;5084 .IFNOT/FULL ;;5085 ;;5086 ADJBP: UUO ;NO ADJBP IN SMALL ;;5087 ; MICROCODE ; 5088 .ENDIF/FULL ; 5089 ; T10KL.MCR[7,3] 15:10 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 ; 5090 .NOBIN ; 5091 .TOC "BLT" ; 5092 ; 5093 ;THIS CODE PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF ; 5094 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD ; 5095 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION ; 5096 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING ; 5097 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST- ; 5098 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION ; 5099 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK. ; 5100 ; 5101 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH ; 5102 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE, ; 5103 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH ; 5104 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP. ; 5105 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 139 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5106 .BIN ; 5107 ; 5108 ;HERE TO SETUP FOR A BLT/UBABLT ; 5109 U 3147, 1330,3770,0604,4344,4007,0700,0000,0000,0000 ; 5110 SETBLT: [ARX]_[BRX] SWAP ;COPY TO ARX (SRC IN RH) ; 5111 =0 VMA_[ARX], ;ADDRESS OF FIRST WORD ; 5112 START READ, ; 5113 PXCT BLT SRC, U 1330, 3677,3443,0400,4174,4007,0700,0210,0004,0712 ; 5114 CALL [CLARXL] ;CLEAR THE LEFT HALF OF ; 5115 [BRX]_0, ; BOTH SRC AND DEST U 1331, 3150,4221,0006,4174,0007,0700,0000,0000,0000 ; 5116 HOLD RIGHT U 3150, 3151,2112,0306,4174,4007,0700,4000,0000,0000 ; 5117 Q_[AR]-[BRX] ;NUMBER OF WORDS TO MOVE U 3151, 3152,0001,0705,4174,4007,0700,0000,0000,0000 ; 5118 [BR]_Q+1 ;LENGTH +1 ; 5119 [BR]_[BR] SWAP, ;COPY TO BOTH HALFS U 3152, 3153,3770,0505,4344,0007,0700,0000,0000,0000 ; 5120 HOLD RIGHT ; 5121 [BR]_AC+[BR], ;FINAL AC U 3153, 3154,0551,0505,0274,4407,0701,0000,0000,0000 ; 5122 INH CRY18 ;KEEP AC CORRECT IF DEST IS 777777 U 3154, 0002,3771,0013,4370,4004,1700,0000,0000,0001 ; 5123 STATE_[BLT],RETURN [2] ;SET PAGE FAIL FLAGS ; 5124 ; 5125 .DCODE D 0251, 0000,1640,2100 ; 5126 251: I, J/BLT ; 5127 .UCODE ; 5128 ; 5129 1640: U 1640, 3147,3771,0006,0276,6007,0700,0010,0000,0000 ; 5130 BLT: [BRX]_AC,CALL [SETBLT] ;FETCH THE AC (DEST IN RH) ; 5131 1642: AC_[BR], ;STORE BACK IN AC U 1642, 3676,3440,0505,0174,4007,0700,0410,0000,0000 ; 5132 CALL [LOADQ] ;LOAD FIRST WORD INTO Q ; 5133 1643: [BR]_[ARX]+1000001, ;SRC+1 ; 5134 3T, U 1643, 3155,0551,0405,4370,4007,0701,0000,0000,0001 ; 5135 HOLD LEFT ; 5136 [BR]-[BRX], 3T, ;IS THIS THE CORE CLEAR CASE U 3155, 1332,2113,0506,4174,4007,0331,4000,0000,0000 ; 5137 SKIP ADR.EQ.0 ; 5138 =0 ; 5139 BLTLP1: VMA_[BRX], ;NO, GET DEST ADR ; 5140 START WRITE, ;START TO STORE NEXT WORD ; 5141 PXCT BLT DEST, ;WHERE TO STORE U 1332, 3160,3443,0600,4174,4007,0700,0200,0003,0312 ; 5142 J/BLTGO ; 5143 ; 5144 ;SKIP TO NEXT PAGE IF CLEARING CORE ; 5145 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 140 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5146 ;CLEAR CORE CASE ; 5147 VMA_[BRX], ; 5148 START WRITE, U 1333, 3156,3443,0600,4174,4007,0700,0200,0003,0312 ; 5149 PXCT BLT DEST ; 5150 BLTCLR: MEM WRITE, ;STORE WORD ; 5151 MEM_Q, U 3156, 1334,3223,0000,4174,4007,0671,0200,0000,0002 ; 5152 SKIP/-1 MS ;1 MS TIMER UP U 1334, 3161,4443,0000,4174,4007,0700,0000,0000,0000 ; 5153 =0 J/BLTGOT ;GO TAKE INTERRUPT ; 5154 [BRX]-[AR], ;BELOW E? ; 5155 3T, U 1335, 1336,2113,0603,4174,4007,0521,4000,0000,0000 ; 5156 SKIP DP0 ; 5157 =0 END BLT, ;NO--STOP BLT U 1336, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5158 J/DONE ; 5159 [ARX]_[ARX]+1, ;FOR PAGE FAIL LOGIC U 1337, 1340,0111,0704,4174,4007,0370,0000,0000,0000 ; 5160 SKIP IRPT ; 5161 =0 VMA_[BRX]+1, ; 5162 LOAD VMA, ; 5163 PXCT BLT DEST, ; 5164 START WRITE, ;YES--KEEP STORING U 1340, 3156,0111,0706,4170,4007,0700,0200,0003,0312 ; 5165 J/BLTCLR ; 5166 VMA_[BRX]+1, ;INTERRUPT ; 5167 LOAD VMA, ; 5168 PXCT BLT DEST, ; 5169 START WRITE, U 1341, 3160,0111,0706,4170,4007,0700,0200,0003,0312 ; 5170 J/BLTGO ; 5171 ; 5172 ;HERE FOR NORMAL BLT ; 5173 BLTLP: MEM READ, ;FETCH ; 5174 Q_MEM, U 3157, 1332,3772,0000,4365,5007,0700,0200,0000,0002 ; 5175 J/BLTLP1 ; 5176 BLTGO: MEM WRITE, ;STORE U 3160, 3161,3223,0000,4174,4007,0701,0200,0000,0002 ; 5177 MEM_Q ; 5178 BLTGOT: [BRX]-[AR], ;BELOW E? ; 5179 3T, U 3161, 1342,2113,0603,4174,4007,0521,4000,0000,0000 ; 5180 SKIP DP0 ; 5181 =0 END BLT, ;NO--STOP BLT U 1342, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5182 J/DONE U 1343, 3162,0111,0706,4174,4007,0700,0000,0000,0000 ; 5183 [BRX]_[BRX]+1 ;UPDATE DEST ADDRESS ; 5184 VMA_[ARX]+1, ; 5185 LOAD VMA, ; 5186 PXCT BLT SRC, ; 5187 START READ, ;YES--MOVE 1 MORE WORD U 3162, 3157,0111,0704,4170,4007,0700,0200,0004,0712 ; 5188 J/BLTLP ; 5189 ; 5190 ;HERE TO CLEAN UP AFTER BLT PAGE FAILS ; 5191 BLT-CLEANUP: U 3163, 3164,3770,0303,4344,4007,0700,0000,0000,0000 ; 5192 [AR]_[AR] SWAP ;PUT SRC IN LEFT HALF ; 5193 [AR]_WORK[SV.BRX], U 3164, 3165,3771,0003,7270,4007,0701,0000,0000,0214 ; 5194 HOLD LEFT ; 5195 AC_[AR], ;STORE THE AC AND RETURN U 3165, 1100,3440,0303,0174,4007,0700,0400,0000,0000 ; 5196 J/CLEANED ; 5197 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 141 ; SIMPLE.MIC[7,3] 16:49 11-NOV-1985 BLT ; 5198 .IF/UBABLT ; 5199 .TOC "UBABLT - BLT BYTES TO/FROM UNIBUS FORMAT" ; 5200 ; 5201 ;THESE INSTRUCTION MOVE WORDS FROM BYTE TO UNIBUS AND UNIBUS TO BYTE ; 5202 ;FORMAT. FORMATS ARE: ; 5203 ; ; 5204 ;BYTE FORMAT: ; 5205 ; ; 5206 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5207 ; ;; BYTE 0 ;; BYTE 1 ;; BYTE 2 ;; BYTE 3 ;; 4 BITS ;; ; 5208 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5209 ; ; 5210 ;UNIBUS FORMAT: ; 5211 ; ; 5212 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5213 ; ;; 2 BITS ;; BYTE 1 ;; BYTE 0 ;; 2 BITS ;; BYTE 3 ;; BYTE 2 ;; ; 5214 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5215 ; ; 5216 ; 5217 =0* ; 5218 BLTX: [BRX]_AC, ;FETCH THE AC (DEST IN RH) U 0670, 3147,3771,0006,0276,6007,0700,0010,0000,0000 ; 5219 CALL [SETBLT] ;DO THE REST OF THE SETUP U 0672, 3166,3440,0505,0174,4007,0700,0400,0000,0000 ; 5220 AC_[BR] ;STORE THE FINAL AC IN AC ; 5221 ; 5222 BLTXLP: MEM READ, ;READ THE SOURCE WORD ; 5223 Q_MEM, ;FROM MEMORY U 3166, 0006,3772,0000,4365,5003,7700,0200,0000,0002 ; 5224 B DISP ;SKIP IF BLTUB (OPCODE 717) ; 5225 =110 Q_Q*.5, ;BLTBU (OPCODE 716) - SHIFT RIGHT 1 BIT U 0006, 3174,3446,1200,4174,4007,0700,0000,0000,0000 ; 5226 J/BLTBU1 ;CONTINUE INSTRUCTION ; 5227 ; 5228 AD/D.AND.Q,DBUS/DBM, ;BLTUB - MASK LOW BYTES, SHIFT LEFT U 0007, 0570,4665,0017,4374,4007,0700,0000,0000,0377 ; 5229 DBM/#,#/377,DEST/AD*2,B/T1 ;AND STORE RESULT ; 5230 =00 FE_S#,S#/1767, ;-9 MORE BITS TO PUT LOW BYTE OF LH U 0570, 3201,4443,0000,4174,4007,0700,1010,0071,1767 ; 5231 CALL [T1LSH] ; IN TOP OF LH SHIFT LEFT ; 5232 =01 FE_S#,S#/1772, ;-6 BITS TO PUT HI BYTE TO RIGHT U 0571, 3202,4443,0000,4174,4007,0700,1010,0071,1772 ; 5233 CALL [Q_RSH] ; OF LOW BYTE. U 0573, 3167,4662,0000,4374,4007,0700,0000,0000,1774 ; 5234 =11 Q_Q.AND.#,#/001774 ;KEEP ONLY HI BYTES ; 5235 = ; 5236 AD/A.OR.Q,A/T1,DEST/AD, ;MERGE PAIRS OF BYTES. NOW SWAPPED, U 3167, 3170,3001,1717,4174,4007,0700,0000,0000,0000 ; 5237 B/T1 ;BUT STILL IN HALF-WORDS ; 5238 AD/57,RSRC/0A,A/T1, ;CLEAR LH OF Q WHILE LOADING U 3170, 3171,5742,1700,4174,4007,0700,0000,0000,0000 ; 5239 DEST/Q_AD ;RH WITH LOW WORD U 3171, 3172,3444,0012,4174,4007,0700,0000,0000,0000 ; 5240 Q_Q*2 ;SHIFT LOW WORD ACROSS 1/2 WORD U 3172, 3173,3444,0012,4174,4007,0700,0000,0000,0000 ; 5241 Q_Q*2 ;AND INTO FINAL POSITION ; 5242 [T1]_[T1].AND.# CLR RH, ;CLEAR ALL BUT HIGH 16-BIT WORD U 3173, 3200,4521,1717,4374,4007,0700,0000,0077,7774 ; 5243 #/777774,J/BLTXV ;FROM T1 AND CONTINUE ; 5244 ; T10KL.MCR[7,3] 15:10 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 3174, 3175,3446,1200,4174,4007,0700,0000,0000,0000 ; 5245 BLTBU1: Q_Q*.5 ;NOW IN 1/2 WORDS U 3175, 3176,3446,1200,4170,4007,0700,0000,0000,0000 ; 5246 Q_Q*.5,HOLD LEFT ;INSERT A NULL BIT IN RH U 3176, 3177,3446,1200,4170,4007,0700,0000,0000,0000 ; 5247 Q_Q*.5,HOLD LEFT ;ONE MORE - NOW IN HALF WORDS ; 5248 AD/D.AND.Q,DBUS/DBM, ;BUT NOT SWAPPED. COPY RIGHT BYTE U 3177, 0610,4665,0017,4374,4007,0700,0000,0000,0377 ; 5249 DBM/#,#/377,DEST/AD*2,B/T1 ;TO T1 AND SHIFT LEFT 1 POSITION ; 5250 =00 FE_S#,S#/1771, ;-7 BITS MORE U 0610, 3201,4443,0000,4174,4007,0700,1010,0071,1771 ; 5251 CALL [T1LSH] ;TO FINAL RESTING PLACE ; 5252 =01 FE_S#,S#/1770, ;-8. LEFT BYTES MOVE RIGHT U 0611, 3202,4443,0000,4174,4007,0700,1010,0071,1770 ; 5253 CALL [Q_RSH] ;TO FINAL RESTING PLACE U 0613, 3200,4662,0000,4374,4007,0700,0000,0000,0377 ; 5254 =11 Q_Q.AND.#,#/377 ;WANT ONLY THE NEW BYTES ; 5255 = ; 5256 ; 5257 BLTXV: Q_[T1].OR.Q, ;MERGE RESULTS U 3200, 3203,3002,1700,4174,4007,0700,0000,0000,0000 ; 5258 J/BLTXW ;AND STUFF IN MEMORY ; 5259 U 3201, 0001,3445,1717,4174,4004,1700,1020,0041,0001 ; 5260 T1LSH: [T1]_[T1]*2,SHIFT,RETURN [1] U 3202, 0002,3446,1200,4174,4004,1700,1020,0041,0001 ; 5261 Q_RSH: Q_Q*.5,SHIFT,RETURN [2] ; 5262 ; 5263 BLTXW: VMA_[BRX],START WRITE, ;DEST TO VMA U 3203, 3204,3443,0600,4174,4007,0700,0200,0003,0312 ; 5264 PXCT BLT DEST U 3204, 3205,3223,0000,4174,4007,0701,0200,0000,0002 ; 5265 MEM WRITE,MEM_Q ;STORE U 3205, 1344,2113,0603,4174,4007,0521,4000,0000,0000 ; 5266 [BRX]-[AR],3T,SKIP DP0 ;DONE? U 1344, 1400,4221,0013,4170,4007,0700,0000,0000,0000 ; 5267 =0 END BLT,J/DONE ;YES U 1345, 3206,0111,0706,4174,4007,0700,0000,0000,0000 ; 5268 [BRX]_[BRX]+1 ;NO, INC DEST ; 5269 VMA_[ARX]+1,LOAD VMA, ; AND SOURCE (LOADING VMA) ; 5270 PXCT BLT SRC,START READ,;START UP MEMORY U 3206, 3166,0111,0704,4170,4007,0700,0200,0004,0712 ; 5271 J/BLTXLP ;AND CONTINUE WITH NEXT WORD ; 5272 .ENDIF/UBABLT ; 5273 ; T10KL.MCR[7,3] 15:10 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 ; 5274 .TOC "FLOATING POINT -- FAD, FSB" ; 5275 ; 5276 .DCODE D 0140, 0701,1577,1100 ; 5277 140: FL-R, FL-AC, J/FAD D 0142, 0702,1577,1700 ; 5278 142: FL-RW, FL-MEM, J/FAD D 0143, 0703,1577,1700 ; 5279 FL-RW, FL-BOTH, J/FAD D 0144, 0711,1577,1100 ; 5280 FL-R, FL-AC, ROUND, J/FAD D 0145, 0611,1577,0100 ; 5281 FL-I, FL-AC, ROUND, J/FAD D 0146, 0712,1577,1700 ; 5282 FL-RW, FL-MEM, ROUND, J/FAD D 0147, 0713,1577,1700 ; 5283 FL-RW, FL-BOTH, ROUND, J/FAD ; 5284 D 0150, 0701,1576,1100 ; 5285 150: FL-R, FL-AC, J/FSB D 0152, 0702,1576,1700 ; 5286 152: FL-RW, FL-MEM, J/FSB D 0153, 0703,1576,1700 ; 5287 FL-RW, FL-BOTH, J/FSB D 0154, 0711,1576,1100 ; 5288 FL-R, FL-AC, ROUND, J/FSB D 0155, 0611,1576,0100 ; 5289 FL-I, FL-AC, ROUND, J/FSB D 0156, 0712,1576,1700 ; 5290 FL-RW, FL-MEM, ROUND, J/FSB D 0157, 0713,1576,1700 ; 5291 FL-RW, FL-BOTH, ROUND, J/FSB ; 5292 .UCODE ; 5293 ; 5294 ;BOTH FAD & FSB ARE ENTERED WITH THE MEMORY OPERAND IN AR ; 5295 ; SIGN SMEARED. THE EXPONENT IN BOTH SC AND FE. ; 5296 1576: U 1576, 1577,2441,0303,4174,4007,0700,4000,0000,0000 ; 5297 FSB: [AR]_-[AR] ;MAKE MEMOP NEGATIVE ; 5298 ; 5299 1577: U 1577, 0674,3771,0005,0276,6006,7701,2000,0020,2000 ; 5300 FAD: [BR]_AC, SC_SC-EXP-1, 3T, SCAD DISP ; 5301 =0* U 0674, 1350,3333,0005,4174,4007,0520,0000,0000,0000 ; 5302 FAS1: READ [BR], SKIP DP0, J/FAS2 ;BR .LE. AR U 0676, 3207,3441,0304,4174,4007,0700,0000,0000,0000 ; 5303 [ARX]_[AR] ;SWAP AR AND BR U 3207, 3210,3441,0503,4174,4007,0700,2000,0041,2000 ; 5304 [AR]_[BR], SC_EXP U 3210, 3211,3441,0405,4174,4007,0700,2000,0020,0000 ; 5305 [BR]_[ARX], SC_SC-FE-1 ;NUMBER OF SHIFT STEPS U 3211, 1346,3333,0003,4174,4007,0520,1000,0041,2000 ; 5306 READ [AR], FE_EXP, 2T, SKIP DP0 U 1346, 3212,4551,0303,4374,0007,0700,0000,0000,0777 ; 5307 =0 [AR]_+SIGN, J/FAS3 U 1347, 3212,3551,0303,4374,0007,0700,0000,0077,7000 ; 5308 [AR]_-SIGN, J/FAS3 ; 5309 ; 5310 =0 ;SIGN SMEAR BR AND UNNORMALIZE U 1350, 3212,4551,0505,4374,0007,0700,0000,0000,0777 ; 5311 FAS2: [BR]_+SIGN, J/FAS3 U 1351, 3212,3551,0505,4374,0007,0700,0000,0077,7000 ; 5312 [BR]_-SIGN, J/FAS3 ; 5313 U 3212, 1352,4222,0000,4174,4007,0630,2000,0060,0000 ; 5314 FAS3: Q_0, STEP SC ; 5315 =0 U 1352, 1352,3446,0505,4174,4047,0630,2000,0060,0000 ; 5316 FAS4: [BR]_[BR]*.5 LONG, STEP SC, ASHC, J/FAS4 U 1353, 0420,0111,0503,4174,4003,4701,0000,0000,0000 ; 5317 [AR]_[AR]+[BR], NORM DISP, J/SNORM ; 5318 ; T10KL.MCR[7,3] 15:10 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 ; 5319 .TOC "FLAOTING POINT -- FMP" ; 5320 ; 5321 .DCODE D 0160, 0701,1570,1100 ; 5322 160: FL-R, FL-AC, J/FMP D 0162, 0702,1570,1700 ; 5323 162: FL-RW, FL-MEM, J/FMP D 0163, 0703,1570,1700 ; 5324 FL-RW, FL-BOTH, J/FMP ; 5325 D 0164, 0711,1570,1100 ; 5326 FL-R, FL-AC, ROUND, J/FMP D 0165, 0611,1570,0100 ; 5327 FL-I, FL-AC, ROUND, J/FMP D 0166, 0712,1570,1700 ; 5328 FL-RW, FL-MEM, ROUND, J/FMP D 0167, 0713,1570,1700 ; 5329 FL-RW, FL-BOTH, ROUND, J/FMP ; 5330 .UCODE ; 5331 ; 5332 1570: ; 5333 FMP: [BRX]_AC, ;GET AC ; 5334 FE_SC+EXP, 3T, ;EXPONENT OF ANSWER U 1570, 1354,3771,0006,0276,6007,0521,1000,0040,2000 ; 5335 SKIP DP0 ;GET READY TO SMEAR SIGN U 1354, 3213,4551,0606,4374,0007,0700,0000,0000,0777 ; 5336 =0 [BRX]_+SIGN, J/FMP1 ;POSITIVE U 1355, 3213,3551,0606,4374,0007,0700,0000,0077,7000 ; 5337 [BRX]_-SIGN, J/FMP1 ;NEGATIVE U 3213, 0163,3442,0300,4174,4007,0700,2000,0071,0033 ; 5338 FMP1: Q_[AR], SC_27. ;GET MEMORY OPERAND ; 5339 =01* [BRX]_[BRX]*.5 LONG, ;SHIFT RIGHT U 0163, 2774,3446,0606,4174,4007,0700,0010,0000,0000 ; 5340 CALL [MULSUB] ;MULTIPLY ; 5341 Q_Q.AND.#, #/777000, ;WE ONLY COMPUTED U 0167, 3214,4662,0000,4370,4007,0700,0000,0077,7000 ; 5342 HOLD LEFT ; 27 BITS U 3214, 3215,3441,0403,4174,4007,0700,1000,0041,0002 ; 5343 [AR]_[ARX], FE_FE+2 ;SET SHIFT PATHS ; 5344 [AR]_[AR]*.5 LONG, ;SHIFT OVER ; 5345 FE_FE-200, ;ADJUST EXPONENT U 3215, 0420,3446,0303,4174,4003,4701,1000,0041,1600 ; 5346 NORM DISP, J/SNORM ;NORMALIZE & EXIT ; 5347 ; T10KL.MCR[7,3] 15:10 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 ; 5348 .TOC "FLOATING POINT -- FDV" ; 5349 ; 5350 .DCODE D 0170, 0701,1574,1100 ; 5351 170: FL-R, FL-AC, J/FDV D 0172, 0702,1574,1700 ; 5352 172: FL-RW, FL-MEM, J/FDV D 0173, 0703,1574,1700 ; 5353 FL-RW, FL-BOTH, J/FDV ; 5354 D 0174, 0711,1574,1100 ; 5355 FL-R, FL-AC, ROUND, J/FDV D 0175, 0611,1574,0100 ; 5356 FL-I, FL-AC, ROUND, J/FDV D 0176, 0712,1574,1700 ; 5357 FL-RW, FL-MEM, ROUND, J/FDV D 0177, 0713,1574,1700 ; 5358 FL-RW, FL-BOTH, ROUND, J/FDV ; 5359 .UCODE ; 5360 ; 5361 ; 5362 1574: U 1574, 1356,3441,0305,0174,4007,0621,0000,0000,0000 ; 5363 FDV: [BR]_[AR], SKIP AD.EQ.0, AC ;COPY DIVSOR SEE IF 0 ; 5364 =0 ; 5365 [AR]_AC, FE_SC-EXP, SKIP DP0, ;GET AC & COMPUTE NEW U 1356, 1360,3771,0003,0276,6007,0520,1000,0030,2000 ; 5366 J/FDV0 ; EXPONENT U 1357, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5367 FL NO DIVIDE ;DIVIDE BY ZERO ; 5368 =0 U 1360, 3216,4551,0303,4374,0007,0700,0000,0000,0777 ; 5369 FDV0: [AR]_+SIGN, J/FDV1 U 1361, 3217,3551,0303,4374,0007,0700,0000,0077,7000 ; 5370 [AR]_-SIGN, J/FDV2 U 3216, 3220,3441,0304,4174,4007,0700,1000,0031,0200 ; 5371 FDV1: [ARX]_[AR],FE_-FE+200,J/FDV3 ;COMPUTE 2*DVND U 3217, 3220,2441,0304,4174,4007,0700,5000,0031,0200 ; 5372 FDV2: [ARX]_-[AR],FE_-FE+200,J/FDV3 ;ABSOLUTE VALUE U 3220, 1362,3445,0506,4174,4007,0520,0000,0000,0000 ; 5373 FDV3: [BRX]_[BR]*2, SKIP DP0 ;ABSOLUTE VALUE ; 5374 =0 U 1362, 1364,2113,0406,4174,4007,0311,4000,0000,0000 ; 5375 FDV4: [ARX]-[BRX], SKIP CRY0, 3T, J/FDV5 ;FLOATING NO DIV? U 1363, 1362,2445,0506,4174,4007,0700,4000,0000,0000 ; 5376 [BRX]_-[BR]*2, J/FDV4 ;FORCE ABSOLUTE VALUE ; 5377 =0 U 1364, 1366,3447,0606,4174,4007,0700,0000,0000,0000 ; 5378 FDV5: [BRX]_[BRX]*.5, J/FDV6 ;SHIFT BACK ARX U 1365, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5379 FL NO DIVIDE ;UNNORMALIZED INPUT ; 5380 =0 ; 5381 FDV6: [AR]_[AR]*2, ;DO NOT DROP A BIT U 1366, 3701,3445,0303,4174,4007,0700,0010,0000,0000 ; 5382 CALL [SBRL] ;AT FDV7+1 U 1367, 0144,2113,0604,4174,4007,0421,4000,0000,0000 ; 5383 [BRX]-[ARX], SKIP AD.LE.0 ;IS ANSWER .LE. 1? ; 5384 =00100 U 0144, 3037,4222,0000,4174,4007,0700,2010,0071,0033 ; 5385 FDV7: Q_0, SC_27., CALL [DIVSGN] ;DIVIDE U 0145, 0144,3447,0303,4174,4007,0700,1000,0041,0001 ; 5386 =00101 [AR]_[AR]*.5, FE_FE+1, J/FDV7 ;SCALE DV'END ; 5387 =01100 U 0154, 3221,3227,0003,4174,4007,0700,0000,0000,0000 ; 5388 FDV8: [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR ; 5389 =01101 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0155, 2070,3333,0003,4174,4007,0621,0010,0000,0000 ; 5390 CALL [SETSN] ; SEE HOW TO NEGATE ; 5391 =01110 READ [AR], SKIP AD.EQ.0, ;-VE ANSWER, LOOK AT RMDR U 0156, 2070,3333,0003,4174,4007,0621,0010,0000,0000 ; 5392 CALL [SETSN] ; SEE HOW TO NEGATE U 0157, 3221,3227,0003,4174,4007,0700,0000,0000,0000 ; 5393 =01111 [AR]_Q*.5, J/FDV9 ;PUT ANSWER IN AR U 0177, 3221,2227,0003,4174,4007,0700,4000,0000,0000 ; 5394 =11111 [AR]_-Q*.5, J/FDV9 ;ZERO RMDR ; 5395 U 3221, 1377,4222,0000,4174,4007,0700,0000,0000,0000 ; 5396 FDV9: Q_0, J/SNORM0 ;GO NORMALIZE ; 5397 ; T10KL.MCR[7,3] 15:10 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 ; 5398 .TOC "FLOATING POINT -- FLTR, FSC" ; 5399 ; 5400 .DCODE D 0127, 0011,1616,1100 ; 5401 127: R, FL-AC,ROUND, J/FLTR D 0132, 0001,1621,2100 ; 5402 132: I, FL-AC, J/FSC ; 5403 .UCODE ; 5404 ; 5405 1616: U 1616, 1370,4553,0300,4374,4007,0321,0000,0077,7000 ; 5406 FLTR: [AR].AND.#, #/777000, 3T, SKIP ADL.EQ.0 ;SMALL POS NUMBER? U 1370, 1372,2441,0305,4174,4007,0521,4000,0000,0000 ; 5407 =0 [BR]_-[AR], SKIP DP0, 3T, J/FLTR1 ;NO--SEE IF MINUS U 1371, 1377,4222,0000,4174,4007,0700,1000,0071,0233 ; 5408 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5409 =0 ; 5410 FLTR1: [BR].AND.#, #/777000, 3T, U 1372, 1374,4553,0500,4374,4007,0321,0000,0077,7000 ; 5411 SKIP ADL.EQ.0, J/FLTR1A ;SMALL NEGATIVE NUMBER U 1373, 3222,4222,0000,4174,4007,0700,1000,0071,0244 ; 5412 Q_0, FE_S#, S#/244, J/FLTR2 ;LARGE POS NUMBER ; 5413 =0 U 1374, 3222,4222,0000,4174,4007,0700,1000,0071,0244 ; 5414 FLTR1A: Q_0, FE_S#, S#/244, J/FLTR2 ;BIG NUMBER U 1375, 1377,4222,0000,4174,4007,0700,1000,0071,0233 ; 5415 Q_0, FE_S#, S#/233, J/SNORM0 ;FITS IN 27 BITS ; 5416 ;AT THIS POINT WE KNOW THE NUMBER TAKES MORE THAN 27 BITS. WE JUST ; 5417 ; SHIFT 8 PLACES RIGHT AND NORMALIZE. WE COULD BE MORE CLEVER BUT ; 5418 ; THIS IS THE RARE CASE ANYWAY. U 3222, 1376,3446,0303,4174,4047,0700,2000,0071,0006 ; 5419 FLTR2: [AR]_[AR]*.5 LONG, ASHC, SC_6 ;SHOVE OVER TO THE RIGHT ; 5420 =0 ; 5421 FLTR3: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT RIGHT 9 PLACES U 1376, 1376,3446,0303,4174,4047,0630,2000,0060,0000 ; 5422 STEP SC, J/FLTR3 ; SO IT WILL FIT U 1377, 0420,3333,0003,4174,4003,4701,0000,0000,0000 ; 5423 SNORM0: READ [AR], NORM DISP, J/SNORM ;NORMALIZE ANSWER ; 5424 ; 5425 ; 5426 1621: U 1621, 3223,3333,0003,4174,4007,0700,2000,0041,4000 ; 5427 FSC: READ [AR], SC_SHIFT U 3223, 3224,4222,0000,0174,4007,0700,0000,0000,0000 ; 5428 Q_0, AC ;DON'T SHIFT IN JUNK U 3224, 2000,3771,0003,0276,6007,0520,1000,0040,2000 ; 5429 [AR]_AC, FE_SC+EXP, SKIP DP0 ;SIGN SMEAR U 2000, 1377,4551,0303,4374,0007,0700,0000,0000,0777 ; 5430 =0 [AR]_+SIGN, J/SNORM0 U 2001, 1377,3551,0303,4374,0007,0700,0000,0077,7000 ; 5431 [AR]_-SIGN, J/SNORM0 ; 5432 ; T10KL.MCR[7,3] 15:10 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 ; 5433 .TOC "FLOATING POINT -- FIX AND FIXR" ; 5434 ; 5435 .DCODE D 0122, 0701,1626,1100 ; 5436 122: FL-R, FL-AC, J/FIX D 0126, 0711,1626,1100 ; 5437 126: FL-R, FL-AC,ROUND, J/FIX ; 5438 .UCODE ; 5439 ; 5440 1626: ; 5441 FIX: Q_0, SCAD/A+B, SCADA/S#, ;CLEAR Q, SEE IF ; 5442 S#/1534, SCADB/FE, 3T, ; ANSWER FITS IN U 1626, 0720,4222,0000,4174,4006,7701,0000,0041,1534 ; 5443 SCAD DISP ; 35 BITS. U 0720, 0603,4443,0000,4174,4467,0700,0000,0041,1000 ; 5444 =0* SET AROV, J/NIDISP ;TOO BIG U 0722, 0724,4443,0000,4174,4006,7701,2000,0041,1544 ; 5445 SC_FE+S#, S#/1544, 3T, SCAD DISP ;NEED TO MOVE LEFT? U 0724, 2004,4443,0000,4174,4007,0630,2000,0060,0000 ; 5446 =0* STEP SC, J/FIXL U 0726, 3225,4443,0000,4174,4007,0700,2000,0031,0232 ; 5447 SC_S#-FE, S#/232 ;NUMBER OF PLACES TO SHIFT ; 5448 ; RIGHT U 3225, 2002,4443,0000,4174,4007,0630,2000,0060,0000 ; 5449 STEP SC ;ALREADY THERE ; 5450 =0 ; 5451 FIXR: [AR]_[AR]*.5 LONG, ASHC, ;SHIFT BINARY POINT U 2002, 2002,3446,0303,4174,4047,0630,2000,0060,0000 ; 5452 STEP SC, J/FIXR ; TO BIT 35.5 U 2003, 0063,3447,0705,4174,4003,7700,0000,0000,0000 ; 5453 [BR]_[ONE]*.5, B DISP, J/FIXX ;WHICH KIND OF FIX? ; 5454 ; 5455 =0 U 2004, 2004,3445,0303,4174,4007,0630,2000,0060,0000 ; 5456 FIXL: [AR]_[AR]*2, STEP SC, J/FIXL ;SHIFT LEFT U 2005, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5457 AC_[AR], NEXT INST ;WE ARE NOW DONE ; 5458 ; 5459 =0*11 U 0063, 2006,3333,0003,4174,4007,0520,0000,0000,0000 ; 5460 FIXX: READ [AR], SKIP DP0, J/FIXT ;FIX--SEE IF MINUS U 0073, 1514,0111,0503,4174,4003,7700,0200,0003,0001 ; 5461 FIXX1: [AR]_[AR]+[BR], FL-EXIT ;FIXR--ROUND UP ; 5462 =0 U 2006, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 5463 FIXT: AC_[AR], NEXT INST ;FIX & +, TRUNCATE U 2007, 2010,3223,0000,4174,4007,0621,0000,0000,0000 ; 5464 READ Q, SKIP AD.EQ.0 ;NEGATIVE--ANY FRACTION? U 2010, 1514,0111,0703,4174,4003,7700,0200,0003,0001 ; 5465 =0 [AR]_[AR]+1, FL-EXIT ;YES--ROUND UP ; 5466 [BR]_.NOT.[MASK], ;MAYBE--GENERATE .75 U 2011, 0073,7441,1205,4174,4007,0700,0000,0000,0000 ; 5467 J/FIXX1 ;ROUND UP IF BIT 36 OR ; 5468 ; 37 SET ; 5469 ; T10KL.MCR[7,3] 15:10 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 ; 5470 .TOC "FLOATING POINT -- SINGLE PRECISION NORMALIZE" ; 5471 ; 5472 ;NORMALIZE DISPATCH IS A 9-WAY DISPATCH. THE HARDWARE LOOKS AT ; 5473 ; 4 SIGNALS: DP=0, DP BIT 8, DP BIT 9, DP BIT -2. THE 9 CASES ; 5474 ; ARE: ; 5475 ; 5476 ; DP=0 DP08 DP09 DP00 ACTION TO TAKE ; 5477 ; 0 0 0 0 SHIFT LEFT ; 5478 ; ; 5479 ; 0 0 0 1 NEGATE AND RETRY ; 5480 ; ; 5481 ; 0 0 1 0 ALL DONE ; 5482 ; ; 5483 ; 0 0 1 1 NEGATE AND RETRY ; 5484 ; ; 5485 ; 0 1 0 0 SHIFT RIGHT ; 5486 ; ; 5487 ; 0 1 0 1 NEGATE AND RETRY ; 5488 ; ; 5489 ; 0 1 1 0 SHIFT RIGHT ; 5490 ; ; 5491 ; 0 1 1 1 NEGATE AND RETRY ; 5492 ; ; 5493 ; 1 - - - LOOK AT Q BITS ; 5494 ; 5495 ;ENTER HERE WITH UNNORMALIZED NUMBER IN AR!Q. FE HOLDS THE NEW ; 5496 ; EXPONENT. CALL WITH NORM DISP ; 5497 =0000 ;9-WAY DISPATCH U 0420, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5498 SNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 0421, 2014,2222,0000,4174,4007,0311,4000,0000,0000 ; 5499 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0422, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5500 READ [AR], NORM DISP, CALL [SROUND] U 0423, 2014,2222,0000,4174,4007,0311,4000,0000,0000 ; 5501 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0424, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5502 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0425, 2014,2222,0000,4174,4007,0311,4000,0000,0000 ; 5503 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0426, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5504 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0427, 2014,2222,0000,4174,4007,0311,4000,0000,0000 ; 5505 Q_-Q, SKIP CRY0, 3T, J/SNNEG U 0430, 2012,3223,0000,4174,4007,0621,0000,0000,0000 ; 5506 READ Q, SKIP AD.EQ.0, J/SNORM1 U 0436, 2013,3770,0303,4324,0457,0700,0000,0041,0000 ; 5507 =1110 [AR]_EXP, J/FLEX ; 5508 = ; 5509 =0 U 2012, 0420,3444,0303,4174,4063,4701,1000,0041,1777 ; 5510 SNORM1: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNORM U 2013, 1514,4443,0000,4174,4003,7700,0200,0003,0001 ; 5511 FLEX: FL-EXIT ; 5512 ; T10KL.MCR[7,3] 15:10 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 ; 5513 =0 U 2014, 0440,7441,0303,4174,4003,4701,0000,0000,0000 ; 5514 SNNEG: [AR]_.NOT.[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD ; 5515 ; (NO CARRY) U 2015, 0440,2441,0303,4174,4003,4701,4000,0000,0000 ; 5516 [AR]_-[AR], NORM DISP, J/SNNORM ;NEGATE HIGH WORD (W/CARRY) ; 5517 =0000 U 0440, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5518 SNNORM: [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0442, 0262,3333,0003,4174,4003,4701,0010,0000,0000 ; 5519 =0010 READ [AR], NORM DISP, CALL [SROUND] U 0444, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5520 =0100 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0446, 0262,3447,0303,4174,4007,0700,1010,0041,0001 ; 5521 =0110 [AR]_[AR]*.5, FE_FE+1, CALL [SROUND] U 0450, 0440,3444,0303,4174,4063,4701,1000,0041,1777 ; 5522 =1000 [AR]_[AR]*2 LONG, DIV, FE_FE-1, NORM DISP, J/SNNORM U 0456, 0327,3770,0303,4324,0453,7700,0000,0041,0000 ; 5523 =1110 [AR]_EXP, B DISP ; 5524 = U 0327, 2016,4553,1300,4374,4007,0321,0000,0000,2000 ; 5525 =0111 TL [FLG], FLG.SN/1, J/SNNOT ; 5526 [AR]_[AR].AND.[MASK], ;CLEAR ANY LEFT OVER BITS U 0337, 2021,4111,1203,4174,4007,0700,0000,0000,0000 ; 5527 J/SNNOT1 ; 5528 =0 U 2016, 3226,7441,0303,4174,4007,0700,0000,0000,0000 ; 5529 SNNOT: [AR]_.NOT.[AR], J/SNNOT2 U 2017, 2020,3223,0000,4174,4007,0621,0000,0000,0000 ; 5530 READ Q, SKIP AD.EQ.0 U 2020, 3226,7441,0303,4174,4007,0700,0000,0000,0000 ; 5531 =0 [AR]_.NOT.[AR], J/SNNOT2 U 2021, 3226,2441,0303,4174,4007,0700,4000,0000,0000 ; 5532 SNNOT1: [AR]_-[AR], J/SNNOT2 ;NORMAL NEGATE AND EXIT U 3226, 1514,4221,0013,4174,4003,7700,0200,0003,0001 ; 5533 SNNOT2: [FLG]_0, FL-EXIT ; 5534 ; 5535 ; 5536 ; 5537 .TOC "FLOATING POINT -- ROUND ANSWER" ; 5538 ; 5539 =*01* U 0262, 0407,3447,0705,4174,4003,7700,0000,0000,0000 ; 5540 SROUND: [BR]_[ONE]*.5, B DISP, J/SRND1 U 0266, 0262,3447,0303,4174,4007,0700,1000,0041,0001 ; 5541 [AR]_[AR]*.5, FE_FE+1, J/SROUND ;WE WENT TOO FAR ; 5542 =0111 U 0407, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5543 SRND1: RETURN [16] ;NOT ROUNDING INSTRUCTION U 0417, 0302,0111,0503,4174,4003,4701,0000,0000,0000 ; 5544 [AR]_[AR]+[BR], NORM DISP U 0302, 0016,4443,0000,4174,4004,1700,0000,0000,0000 ; 5545 =*01* RETURN [16] U 0306, 0016,3447,0303,4174,4004,1700,1000,0041,0001 ; 5546 [AR]_[AR]*.5, FE_FE+1, RETURN [16] ; 5547 ; T10KL.MCR[7,3] 15:10 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 ; 5548 .TOC "FLOATING POINT -- DFAD, DFSB" ; 5549 ; 5550 .DCODE D 0110, 1100,1637,1100 ; 5551 110: DBL FL-R, J/DFAD D 0111, 1100,1635,1100 ; 5552 111: DBL FL-R, J/DFSB ; 5553 .UCODE ; 5554 ; 5555 ;ENTER FROM A-READ CODE WITH: ; 5556 ;FE/ EXP ; 5557 ;SC/ EXP ; 5558 ;AR/ C(E) SHIFT RIGHT 2 PLACES ; 5559 ;ARX/ C(E+1) SHIFTED RIGHT 1 PLACE ; 5560 1635: U 1635, 3227,2441,0404,4174,4007,0700,4000,0000,0000 ; 5561 DFSB: [ARX]_-[ARX] ;NEGATE LOW WORD U 3227, 1637,2441,0303,4174,4007,0700,0040,0000,0000 ; 5562 [AR]_-[AR]-.25, MULTI PREC/1 ; 5563 1637: U 1637, 3230,4557,0006,1274,4007,0701,0000,0000,1441 ; 5564 DFAD: [BRX]_(AC[1].AND.[MAG])*.5, 3T ;GET LOW WORD ; 5565 [BR]_AC*.5, 3T, ;GET AC AND START TO SHIFT ; 5566 SC_SC-EXP-1, ;NUMBER OF PLACES TO SHIFT U 3230, 2022,3777,0005,0274,4007,0521,2000,0020,2000 ; 5567 SKIP DP0 ;SEE WHAT SIGN ; 5568 =0 [BR]_+SIGN*.5, 3T, ;SIGN SMEAR U 2022, 2024,5547,0505,0374,4007,0631,0000,0077,7400 ; 5569 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5570 [BR]_-SIGN*.5, 3T, ;SIGN SMEAR U 2023, 2024,3547,0505,0374,4007,0631,0000,0077,7400 ; 5571 AC, SKIP/SC, J/DFAS1 ;SEE WHICH IS BIGGER ; 5572 =0 ; 5573 DFAS1: Q_[BRX], ;AR IS BIGGER U 2024, 2026,3442,0600,4174,4007,0700,0000,0000,0000 ; 5574 J/DFAS2 ;ADJUST BR!Q ; 5575 [T0]_AC, ;BR IS BIGGER OR EQUAL U 2025, 3232,3771,0016,0276,6007,0700,2000,0041,2000 ; 5576 SC_EXP, 2T, J/DFAS3 ;SET SC TO THAT EXPONENT ; 5577 ; T10KL.MCR[7,3] 15:10 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 ; 5578 ;HERE IF AR!ARX IS GREATER THAN BR!BRX ; 5579 =0 U 2026, 0153,3441,0516,4174,4007,0700,0010,0000,0000 ; 5580 DFAS2: [T0]_[BR], CALL [DFADJ] ;ADJUST BR!Q U 2027, 3231,3441,1605,4174,4007,0700,0000,0000,0000 ; 5581 [BR]_[T0] ;PUT ANSWER BACK U 3231, 3235,0002,0400,4174,4007,0700,0000,0000,0000 ; 5582 Q_Q+[ARX], J/DFAS5 ;ADD LOW WORDS ; 5583 ; 5584 ;HERE IS BR!BRX IF GREATER THAN OR EQUAL TO AR!ARX ; 5585 DFAS3: Q_[ARX], ;SETUP TO SHIFT AR!ARX U 3232, 3233,3442,0400,4174,4007,0700,2000,0020,0000 ; 5586 SC_SC-FE-1 ;COMPUTE # OF PLACES U 3233, 2030,3333,0016,4174,4007,0700,1000,0041,2000 ; 5587 READ [T0], FE_EXP ;EXPONENT OF ANSWER U 2030, 0153,3441,0316,4174,4007,0700,0010,0000,0000 ; 5588 =0 [T0]_[AR], CALL [DFADJ] ;ADJUST AR!Q U 2031, 3234,3441,1603,4174,4007,0700,0000,0000,0000 ; 5589 [AR]_[T0] ;PUT ANSWER BACK U 3234, 3235,0002,0600,4174,4007,0700,0000,0000,0000 ; 5590 Q_Q+[BRX], J/DFAS5 ;ADD LOW WORDS ; 5591 ; 5592 ;BIT DIDDLE TO GET THE ANSWER (INCLUDING 2 GUARD BITS) INTO ; 5593 ; AR!Q ; 5594 DFAS5: [AR]_([AR]+[BR])*.5 LONG, ;ADD HIGH WORDS U 3235, 3236,0116,0503,4174,4047,0700,0040,0000,0000 ; 5595 MULTI PREC/1, ASHC ;INJECT SAVED CRY2 ; 5596 [AR]_[AR]*2 LONG, ;SHIFT BACK LEFT U 3236, 0433,3444,0303,4174,4046,2700,0000,0000,0000 ; 5597 ASHC, MUL DISP ;SEE IF WE LOST A 1 ; 5598 =1011 U 0433, 3237,5111,1217,4174,4007,0700,0000,0000,0000 ; 5599 DFAS6: [T1]_[T1].AND.NOT.[MASK], J/DFAS7 U 0437, 0433,0222,0000,4174,4007,0700,4000,0000,0000 ; 5600 Q_Q+.25, J/DFAS6 ; 5601 DFAS7: [AR]_[AR]*2 LONG, ASHC, ;PUT IN GUARD BITS U 3237, 3240,3444,0303,4174,4047,0700,1000,0041,1777 ; 5602 FE_FE-1 ; 5603 [AR]_[AR]*2 LONG, ASHC, U 3240, 3241,3444,0303,4174,4047,0700,1000,0041,1777 ; 5604 FE_FE-1 U 3241, 2043,3002,1700,4170,4007,0700,0000,0000,0000 ; 5605 Q_[T1].OR.Q, HOLD LEFT, J/DNORM0 ; 5606 ; T10KL.MCR[7,3] 15:10 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 ; 5607 ;SUBROUTINE TO ADJUST NUMBER IN T0!Q ; 5608 ;RETURNS 1 WITH ; 5609 ; T0!Q ADJUSTED ; 5610 ; FLG.SN=1 IF WE SHIFTED OUT ANY 1 BITS (STICKY BIT) ; 5611 ; T1 HAS Q TWO STEPS PRIOR TO BEING DONE ; 5612 DFADJ "STEP SC, ASHC, MUL DISP" ; 5613 ; 5614 =0**11 ; 5615 DFADJ: [T0]_[T0]*2 LONG, DIV, ;MOVE EVERYTHING 2 PLACES U 0153, 2071,3444,1616,4174,4067,0700,0010,0000,0000 ; 5616 CALL [CLRSN] U 0173, 3242,3444,1616,4174,4067,0700,0000,0000,0000 ; 5617 [T0]_[T0]*2 LONG, DIV U 3242, 3243,3444,1616,4174,4067,0700,0000,0000,0000 ; 5618 [T0]_[T0]*2 LONG, DIV ; 5619 [T0]_[T0]*.5 LONG, ASHC, ;SHIFT AT LEAST 1 PLACE U 3243, 0472,3446,1616,4174,4047,0630,2000,0060,0000 ; 5620 STEP SC ; 5621 =1010 ; 5622 DFADJ1: [T0]_[T0]*.5 LONG, ;UNNORMALIZE T0!Q U 0472, 0472,3446,1616,4174,4046,2630,2000,0060,0000 ; 5623 DFADJ, J/DFADJ1 ;LOOP TILL DONE ; 5624 DFADJ2: [T1]_Q, ;SAVE GUARD BITS U 0473, 0453,3221,0017,4174,4006,2700,0000,0000,0000 ; 5625 MUL DISP, J/DFADJ5 ;LOOK AT LAST BIT U 0476, 2032,3551,1313,4374,0007,0700,0000,0000,2000 ; 5626 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ3 U 0477, 2033,3551,1313,4374,0007,0700,0000,0000,2000 ; 5627 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ4 ; 5628 ; 5629 =0 U 2032, 2032,3446,1616,4174,4047,0630,2000,0060,0000 ; 5630 DFADJ3: [T0]_[T0]*.5 LONG, ASHC, STEP SC, J/DFADJ3 U 2033, 0453,3221,0017,4174,4007,0700,0000,0000,0000 ; 5631 DFADJ4: [T1]_Q ;SAVE 2 GUARD BITS ; 5632 =1011 U 0453, 3244,3446,1616,4174,4047,0700,0000,0000,0000 ; 5633 DFADJ5: [T0]_[T0]*.5 LONG, ASHC, J/DFADJ6 U 0457, 0453,3551,1313,4374,0007,0700,0000,0000,2000 ; 5634 [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, J/DFADJ5 U 3244, 0001,3446,1616,4174,4044,1700,0000,0000,0000 ; 5635 DFADJ6: [T0]_[T0]*.5 LONG, ASHC, RETURN [1] ; 5636 ; T10KL.MCR[7,3] 15:10 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 ; 5637 .TOC "FLOATING POINT -- DFMP" ; 5638 ; 5639 .DCODE D 0112, 1105,1631,1100 ; 5640 112: DBL FL-R, DAC, J/DFMP ; 5641 .UCODE ; 5642 ; 5643 ;SAME ENTRY CONDITIONS AS DFAD/DFSB ; 5644 1631: U 1631, 2034,3442,0400,4174,4007,0700,2000,0071,0006 ; 5645 DFMP: Q_[ARX], SC_6 ;SHIFT MEM OP 8 PLACES ; 5646 =0 ; 5647 DFMP1: [AR]_[AR]*2 LONG, ASHC, ;SHIFT U 2034, 2034,3444,0303,4174,4047,0630,2000,0060,0000 ; 5648 STEP SC, J/DFMP1 U 2035, 3245,3446,1200,4174,4007,0700,0000,0000,0000 ; 5649 Q_Q*.5 U 3245, 3246,4662,0000,4374,0007,0700,0000,0007,7777 ; 5650 Q_Q.AND.#, #/077777, HOLD RIGHT U 3246, 3247,3221,0005,4174,4007,0700,0000,0000,0000 ; 5651 [BR]_Q ;COPY LOW WORD ; 5652 ; ; 5653 ; BRX * BR ==> C(E+1) * C(AC+1) ; 5654 ; U 3247, 0623,4557,0006,1274,4007,0700,0000,0000,1441 ; 5655 [BRX]_(AC[1].AND.[MAG])*.5 ;GET LOW AC U 0623, 2775,3447,0606,4174,4007,0700,2010,0071,0043 ; 5656 =0** [BRX]_[BRX]*.5, SC_35., CALL [MULSB1] ; 5657 ; ; 5658 ; BRX * Q ==> C(E) * C(AC+1) ; 5659 ; U 0627, 0730,3442,0300,4174,4007,0700,2000,0071,0043 ; 5660 Q_[AR], SC_35. ;GO MULT NEXT HUNK U 0730, 2776,4443,0000,4174,4007,0700,0010,0000,0000 ; 5661 =0** CALL [MULTIPLY] U 0734, 3250,3441,0416,4174,4007,0700,0000,0000,0000 ; 5662 [T0]_[ARX] ;SAVE PRODUCT U 3250, 3251,3227,0004,4174,4007,0700,2000,0011,0000 ; 5663 [ARX]_Q*.5, SC_FE ;PUT IN NEXT STEP ; 5664 ; ; 5665 ; BRX * BR ==> C(AC) * C(E+1) ; 5666 ; ; 5667 [BRX]_AC*.5, ;PREPARE TO DO HIGH HALF ; 5668 FE_SC+EXP, ;EXPONENT ON ANSWER U 3251, 2036,3777,0006,0274,4007,0521,1000,0040,2000 ; 5669 SKIP DP0, 3T U 2036, 0732,5547,0606,4374,4007,0701,0000,0077,7400 ; 5670 =0 [BRX]_+SIGN*.5, 3T, J/DFMP2 U 2037, 0732,3547,0606,4374,4007,0701,0000,0077,7400 ; 5671 [BRX]_-SIGN*.5, 3T ; 5672 =0** U 0732, 2776,3442,0500,4174,4007,0700,2010,0071,0043 ; 5673 DFMP2: Q_[BR], SC_35., CALL [MULTIPLY] ;GO MULTIPLY U 0736, 3252,3221,0017,4174,4007,0700,0000,0000,0000 ; 5674 [T1]_Q ;SAVE FOR ROUNDING U 3252, 1012,0111,1604,4174,4007,0700,0000,0000,0000 ; 5675 [ARX]_[ARX]+[T0] ;PREPARE FOR LAST MUL ; 5676 ; ; 5677 ; BRX * Q ==> C(AC) * C(E) ; 5678 ; ; 5679 =0** Q_[AR], SC_35., ;DO THE LAST MULTIPLY U 1012, 2776,3442,0300,4174,4007,0700,2010,0071,0043 ; 5680 CALL [MULTIPLY] ; .. ; 5681 ; T10KL.MCR[7,3] 15:10 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 ; 5682 ;OK, WE NOW HAVE THE PRODUCT IN ARX!Q!T1. ALL WE NEED TO DO ; 5683 ; IS SOME BIT DIDDLES TO GET EVERYTHING IN THE RIGHT PLACE ; 5684 [AR]_[ARX]*.5 LONG, ;SHIFT THE ANSWER U 1016, 0243,3446,0403,4174,4007,0700,1000,0041,1576 ; 5685 FE_FE+S#, S#/1576 ;CORRECT EXPONENT ; 5686 =0**11 READ [T1], SKIP AD.EQ.0, ;SEE IF LOW ORDER 1 U 0243, 2070,3333,0017,4174,4007,0621,0010,0000,0000 ; 5687 CALL [SETSN] ; BITS AROUND SOMEPLACE U 0263, 3253,3444,0303,4174,4047,0700,0000,0000,0000 ; 5688 [AR]_[AR]*2 LONG, ASHC ;SHIFT LEFT U 3253, 3254,3447,0705,4174,4007,0700,0000,0000,0000 ; 5689 [BR]_[ONE]*.5 ;PLACE TO INSTERT BITS U 3254, 2040,4553,1700,4374,4007,0321,0000,0020,0000 ; 5690 TL [T1], #/200000 ;ANYTHING TO INJECT? U 2040, 2041,0002,0500,4174,4007,0700,0000,0000,0000 ; 5691 =0 Q_Q+[BR] ;YES--PUT IT IN U 2041, 3255,3444,0303,4174,4047,0700,0000,0000,0000 ; 5692 [AR]_[AR]*2 LONG, ASHC ;MAKE ROOM FOR MORE U 3255, 2042,4553,1700,4374,4007,0321,0000,0010,0000 ; 5693 TL [T1], #/100000 ;ANOTHER BIT NEEDED U 2042, 2043,0002,0500,4174,4007,0700,0000,0000,0000 ; 5694 =0 Q_Q+[BR] ;YES--PUT IN LAST BIT ; 5695 DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO U 2043, 0520,3333,0003,4174,4003,4701,1000,0041,0002 ; 5696 FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5697 ; T10KL.MCR[7,3] 15:10 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 ; 5698 .TOC "FLOATING POINT -- DFDV" ; 5699 ; 5700 .DCODE D 0113, 1105,1636,1100 ; 5701 113: DBL FL-R, DAC, J/DFDV ; 5702 .UCODE ; 5703 1636: U 1636, 0132,3441,0406,4174,4007,0700,0000,0000,0000 ; 5704 DFDV: [BRX]_[ARX] ;COPY OPERAND (COULD SAVE TIME ; 5705 ; WITH SEPERATE A-READ FOR DFDV) U 0132, 2071,4221,0017,4174,4007,0700,0010,0000,0000 ; 5706 =1**10 [T1]_0, CALL [CLRSN] ;CLEAR FLAG ; 5707 [BR]_[AR], SKIP AD.LE.0, ;SEE IF POSITIVE U 0133, 2044,3441,0305,1174,4007,0421,0000,0000,1441 ; 5708 AC[1] ;WARM UP RAM ; 5709 =0 ; 5710 DFDV1: [ARX]_(AC[1].AND.[MAG])*.5, ;POSITIVE--GET AC U 2044, 3260,4557,0004,1274,4007,0700,0000,0000,1441 ; 5711 J/DFDV2 ; AND CONTINUE BELOW U 2045, 3256,7441,1717,4174,4007,0700,0000,0000,0000 ; 5712 [T1]_.NOT.[T1] ;DV'SOR NEGATIVE (OR ZERO) U 3256, 3257,2441,0606,4174,4007,0700,4000,0000,0000 ; 5713 [BRX]_-[BRX] ;NEGATE LOW WORD ; 5714 AD/-B-.25, B/BR, DEST/AD, ;NEGATE HIGH WORD ; 5715 MULTI PREC/1, 3T, ;ADDING IN CRY02 ; 5716 SKIP DP0, AC[1], ;SEE IF STILL NEGATIVE U 3257, 2044,2331,0005,1174,4007,0521,0040,0000,1441 ; 5717 J/DFDV1 ; .. ; 5718 DFDV2: [AR]_AC*.5, ;GET AC AND SHIFT ; 5719 FE_SC-EXP, 3T, ;COMPUTE NEW EXPONENT U 3260, 2046,3777,0003,0274,4007,0521,1000,0030,2000 ; 5720 SKIP DP0 ;SEE IF NEGATIVE U 2046, 2050,5547,0303,4374,4007,0701,0000,0077,7400 ; 5721 =0 [AR]_+SIGN*.5, 3T, J/DFDV3 ;POSITIVE U 2047, 3261,7441,1717,4174,4007,0700,0000,0000,0000 ; 5722 [T1]_.NOT.[T1] ;NEGATIVE OR ZERO U 3261, 3262,3547,0303,4374,4007,0701,0000,0077,7400 ; 5723 [AR]_-SIGN*.5, 3T ;SIGN SMEAR U 3262, 3263,2442,0400,4174,4007,0700,4000,0000,0000 ; 5724 Q_-[ARX] ;NEGATE OPERAND ; 5725 [AR]_(-[AR]-.25)*.5 LONG, ;NEGATE HIGH WORD ; 5726 MULTI PREC/1, ;USE SAVED CARRY U 3263, 2051,2446,0303,4174,4047,0700,0040,0000,0000 ; 5727 ASHC, J/DFDV4 ;CONTINUE BELOW ; 5728 =0 ; 5729 DFDV3: Q_[ARX], ;COPY OPERAND U 2050, 3036,3442,0400,4174,4007,0700,0010,0000,0000 ; 5730 CALL [DDIVS] ;SHIFT OVER U 2051, 2052,2113,0305,4174,4007,0521,4000,0000,0000 ; 5731 DFDV4: [AR]-[BR], 3T, SKIP DP0 ;SEE IF OVERFLOW U 2052, 0603,4443,0000,4174,4467,0700,0000,0071,1000 ; 5732 =0 FL NO DIVIDE U 2053, 1054,3221,0004,4174,4007,0700,0000,0000,0000 ; 5733 [ARX]_Q ;START DIVISION U 1054, 1276,4222,0000,4174,4007,0700,2010,0071,0032 ; 5734 =0* Q_0, SC_26., CALL [DBLDIV] U 1056, 1064,3221,0016,4174,4007,0700,2000,0071,0043 ; 5735 [T0]_Q, SC_35. ; 5736 =0* Q_Q.AND.NOT.[MAG], ;SEE IF ODD ; 5737 SKIP AD.EQ.0, ;SKIP IF EVEN U 1064, 1276,5002,0000,4174,4007,0621,0010,0000,0000 ; 5738 CALL [DBLDIV] ;GO DIVIDE U 1066, 3264,3446,1200,4174,4007,0700,0000,0000,0000 ; 5739 Q_Q*.5 ;MOVE ANSWER OVER ; 5740 = ; 5741 [T0]_[T0]*2 LONG, ASHC, ;DO FIRST NORM STEP U 3264, 0513,3444,1616,4174,4046,2700,0000,0000,0000 ; 5742 MUL DISP ; SEE IF A 1 FELL OUT ; 5743 =1011 ; 5744 DFDV4A: READ [T1], SKIP DP0, ;SHOULD RESULT BE NEGATIVE ; 5745 FE_S#-FE, S#/202, ;CORRECT EXPONENT U 0513, 2054,3333,0017,4174,4007,0520,1000,0031,0202 ; 5746 J/DFDV4B ;LOOK BELOW U 0517, 0513,0222,0000,4174,4007,0700,4000,0000,0000 ; 5747 Q_Q+.25, J/DFDV4A ;PUT BACK THE BIT ; 5748 =0 U 2054, 0520,3441,1603,4174,4003,4701,0000,0000,0000 ; 5749 DFDV4B: [AR]_[T0], NORM DISP, J/DNORM ;PLUS U 2055, 0200,3441,1603,4174,4003,4701,0000,0000,0000 ; 5750 [AR]_[T0], NORM DISP, J/DNNORM ;MINUS ; 5751 ; T10KL.MCR[7,3] 15:10 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 ; 5752 .TOC "FLOATING POINT -- DOUBLE PRECISION NORMALIZE" ; 5753 ; 5754 ;NORMALIZE AR!Q ; 5755 ;DNORM0: READ [AR], NORM DISP, ;SEE WHAT WE NEED TO DO ; 5756 ; FE_FE+S#, S#/2, J/DNORM ;ADJUST FOR INITIAL SHIFTS ; 5757 =0000 ; 5758 DNORM: [AR]_[AR]*2 LONG, ;SHIFT LEFT ; 5759 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0520, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5760 NORM DISP, J/DNORM ;TRY AGAIN U 0521, 2060,4553,1300,4374,4007,0321,0000,0000,2000 ; 5761 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5762 READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0522, 0312,3333,0003,4174,4003,4701,0010,0000,0000 ; 5763 CALL [DROUND] ; AND ROUND ANSWER U 0523, 2060,4553,1300,4374,4007,0321,0000,0000,2000 ; 5764 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5765 [AR]_[AR]*.5 LONG, ASHC, U 0524, 0312,3446,0303,4174,4047,0700,1010,0041,0001 ; 5766 FE_FE+1, CALL [DROUND] U 0525, 2060,4553,1300,4374,4007,0321,0000,0000,2000 ; 5767 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5768 [AR]_[AR]*.5 LONG, ASHC, U 0526, 0312,3446,0303,4174,4047,0700,1010,0041,0001 ; 5769 FE_FE+1, CALL [DROUND] U 0527, 2060,4553,1300,4374,4007,0321,0000,0000,2000 ; 5770 TL [FLG], FLG.SN/1, J/DNEG ;RESULT IS NEGATIVE ; 5771 Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0530, 3266,4002,0000,4174,0007,0700,0000,0000,0000 ; 5772 HOLD RIGHT, J/DNORM1 ;GO TEST LOW WORD U 0536, 3265,4221,0013,4174,4007,0700,0000,0000,0000 ; 5773 =1110 [FLG]_0 ;[122] CLEAR FLAG WORD ; 5774 = ; 5775 AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3265, 1515,4113,0400,1174,4007,0700,0400,0000,1441 ; 5776 J/STAC ;GO DO HIGH WORD ; 5777 ; 5778 U 3266, 2056,3223,0000,4174,4007,0621,0000,0000,0000 ; 5779 DNORM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5780 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5781 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2056, 0520,3444,0303,4174,4043,4701,1000,0041,1777 ; 5782 NORM DISP, J/DNORM ;KEEP LOOKING U 2057, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5783 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5784 ; T10KL.MCR[7,3] 15:10 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 ; 5785 ;HERE TO NORMALIZE NEGATIVE D.P. RESULTS ; 5786 =0 U 2060, 3267,7222,0000,4174,4007,0700,0000,0000,0000 ; 5787 DNEG: Q_.NOT.Q, J/DNEG1 ;ONES COMP U 2061, 2062,2222,0000,4174,4007,0511,4000,0000,0000 ; 5788 Q_-Q, SKIP CRY2, J/DNEG2 U 3267, 2062,4221,0013,4174,4007,0700,0000,0000,0000 ; 5789 DNEG1: [FLG]_0 ; 5790 =0 ; 5791 DNEG2: [AR]_.NOT.[AR], ;NO CARRY U 2062, 0200,7441,0303,4174,4003,4701,0000,0000,0000 ; 5792 NORM DISP, J/DNNORM ;GO NORMALIZE ; 5793 [AR]_-[AR], ;CARRY U 2063, 0200,2441,0303,4174,4003,4701,4000,0000,0000 ; 5794 NORM DISP, J/DNNORM ;NORMALIZE ; 5795 ; 5796 =000* ; 5797 DNNORM: [AR]_[AR]*2 LONG, ;SHIFT 1 PLACE ; 5798 FE_FE-1, ASHC, ;ADJUST EXPONENT U 0200, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5799 NORM DISP, J/DNNORM ;LOOP TILL DONE ; 5800 =001* READ [AR], NORM DISP, ;SEE IF WE WENT TOO FAR U 0202, 0312,3333,0003,4174,4003,4701,0010,0000,0000 ; 5801 CALL [DROUND] ; AND ROUND ANSWER ; 5802 =010* [AR]_[AR]*.5 LONG, ASHC, U 0204, 0312,3446,0303,4174,4047,0700,1010,0041,0001 ; 5803 FE_FE+1, CALL [DROUND] ; 5804 =011* [AR]_[AR]*.5 LONG, ASHC, U 0206, 0312,3446,0303,4174,4047,0700,1010,0041,0001 ; 5805 FE_FE+1, CALL [DROUND] ; 5806 =100* Q_[MAG].AND.Q, ;HIGH WORD IS ZERO U 0210, 3272,4002,0000,4174,0007,0700,0000,0000,0000 ; 5807 HOLD RIGHT, J/DNNRM1 ;GO TEST LOW WORD U 0216, 0630,4111,1204,4174,4007,0700,0000,0000,0000 ; 5808 =111* [ARX]_[ARX].AND.[MASK] ;REMOVE ROUNDING BIT ; 5809 = ; 5810 =00 [ARX]_[ARX].AND.[MAG], ;ALSO CLEAR SIGN U 0630, 3273,4111,0004,4174,4007,0700,0010,0000,0000 ; 5811 CALL [CHKSN] ;ONES COMP? ; 5812 =10 [ARX]_[ARX].XOR.[MAG], ;YES--ONES COMP U 0632, 3270,6111,0004,4174,4007,0700,0000,0000,0000 ; 5813 J/DNN1 ;CONTINUE BELOW ; 5814 =11 [ARX]_-[ARX], 3T, ;NEGATE RESULT U 0633, 2064,2441,0404,4174,4007,0561,4000,0000,0000 ; 5815 SKIP CRY1, J/DNN2 ; 5816 = U 3270, 2064,4221,0013,4174,4007,0700,0000,0000,0000 ; 5817 DNN1: [FLG]_0 ;CLEAR FLAG ; 5818 =0 U 2064, 3271,7333,0003,0174,4007,0700,0400,0000,0000 ; 5819 DNN2: AC_.NOT.[AR], J/DNORM2 U 2065, 3271,2443,0300,0174,4007,0701,4400,0000,0000 ; 5820 AC_-[AR], 3T ; 5821 DNORM2: AC[1]_[ARX].AND.[MAG], ;STORE LOW WORD U 3271, 0100,4113,0400,1174,4156,4700,0400,0000,1441 ; 5822 NEXT INST ;ALL DONE ; 5823 U 3272, 2066,3223,0000,4174,4007,0621,0000,0000,0000 ; 5824 DNNRM1: READ Q, SKIP AD.EQ.0 ;TEST LOW WORD ; 5825 =0 [AR]_[AR]*2 LONG, ;LOW WORD IS NON-ZERO ; 5826 FE_FE-1, ASHC, ;ADJUST EXPONENT U 2066, 0200,3444,0303,4174,4043,4701,1000,0041,1777 ; 5827 NORM DISP, J/DNNORM ;KEEP LOOKING U 2067, 1515,3440,0303,1174,4007,0700,0400,0000,1441 ; 5828 AC[1]_[AR], J/STAC ;WHOLE ANSWER IS ZERO ; 5829 ; T10KL.MCR[7,3] 15:10 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 3273, 0002,4553,1300,4374,4004,1321,0000,0000,2000 ; 5830 CHKSN: TL [FLG], FLG.SN/1, RETURN [2] ; 5831 ; 5832 ;SUBROUTINE TO SET/CLEAR FLG.SN ; 5833 ;CALL WITH: ; 5834 ; CALL [SETSN], SKIP IF WE SHOULD CLEAR ; 5835 ;RETURNS 23 ; 5836 =0 U 2070, 0023,3551,1313,4374,0004,1700,0000,0000,2000 ; 5837 SETSN: [FLG]_[FLG].OR.#, FLG.SN/1, HOLD RIGHT, RETURN [23] U 2071, 0023,5551,1313,4374,0004,1700,0000,0000,2000 ; 5838 CLRSN: [FLG]_[FLG].AND.NOT.#, FLG.SN/1, HOLD RIGHT, RETURN [23] ; 5839 ; 5840 ; 5841 ;SUBROUTINE TO ROUND A FLOATING POINT NUMBER ; 5842 ;CALL WITH: ; 5843 ; NUMBER IN AR!Q AND NORM DISP ; 5844 ;RETURNS 16 WITH ROUNDED NUMBER IN AR!ARX ; 5845 ; ; 5846 =*01* ; 5847 DROUND: [ARX]_(Q+1)*.5, ;ROUND AND SHIFT ; 5848 SKIP CRY2, ;SEE IF OVERFLOW U 0312, 0462,0007,0704,4174,4007,0511,0000,0000,0000 ; 5849 J/DRND1 ;COMPLETE ROUNDING ; 5850 [AR]_[AR]*.5 LONG, ;WE WENT TOO FAR U 0316, 0312,3446,0303,4174,4047,0700,1000,0041,0001 ; 5851 FE_FE+1, ASHC, J/DROUND ;SHIFT BACK AND ROUND ; 5852 =*010 U 0462, 0016,3770,0303,4324,0454,1700,0000,0041,0000 ; 5853 DRND1: [AR]_EXP, RETURN [16] ;NO OVERFLOW ; 5854 =011 [AR]_[AR]+.25, ;ADD CARRY (BITS 36 AND 37 ; 5855 ; ARE COPIES OF Q BITS) ; 5856 NORM DISP, ;SEE IF OVERFLOW U 0463, 0462,0441,0303,4174,4003,4701,4000,0000,0000 ; 5857 J/DRND1 ; .. ; 5858 =110 [AR]_[AR]*.5, ;SHIFT RIGHT ; 5859 FE_FE+1, ;KEEP EXP RIGHT U 0466, 0462,3447,0303,4174,4007,0700,1000,0041,0001 ; 5860 J/DRND1 ;ALL SET NOW ; 5861 = ; 5862 ; T10KL.MCR[7,3] 15:10 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 ; 5863 .TOC "EXTEND -- DISPATCH ROM ENTRIES" ; 5864 ; 5865 .DCODE D 0001, 0001,1740,2100 ; 5866 001: I, SJCL, J/L-CMS D 0002, 0002,1740,2100 ; 5867 I, SJCE, J/L-CMS D 0003, 0003,1740,2100 ; 5868 I, SJCLE, J/L-CMS D 0004, 0002,1741,2100 ; 5869 I, B/2, J/L-EDIT D 0005, 0005,1740,2100 ; 5870 I, SJCGE, J/L-CMS D 0006, 0006,1740,2100 ; 5871 I, SJCN, J/L-CMS D 0007, 0007,1740,2100 ; 5872 I, SJCG, J/L-CMS ; 5873 D 0010, 0001,1742,2100 ; 5874 010: I, B/1, J/L-DBIN ;CVTDBO D 0011, 0004,1742,2100 ; 5875 I, B/4, J/L-DBIN ;CVTDBT D 0012, 0001,1743,2100 ; 5876 I, B/1, J/L-BDEC ;CVTBDO D 0013, 0000,1743,2100 ; 5877 I, B/0, J/L-BDEC ;CVTBDT ; 5878 D 0014, 0001,1744,2100 ; 5879 014: I, B/1, J/L-MVS ;MOVSO D 0015, 0000,1744,2100 ; 5880 I, B/0, J/L-MVS ;MOVST D 0016, 0002,1744,2100 ; 5881 I, B/2, J/L-MVS ;MOVSLJ D 0017, 0003,1744,2100 ; 5882 I, B/3, J/L-MVS ;MOVSRJ ; 5883 D 0020, 0000,1746,2100 ; 5884 020: I, J/L-XBLT ;XBLT D 0021, 0000,1747,2100 ; 5885 I, J/L-SPARE-A ;GSNGL D 0022, 0000,1750,2100 ; 5886 I, J/L-SPARE-B ;GDBLE D 0023, 0000,1751,2100 ; 5887 I, B/0, J/L-SPARE-C ;GDFIX D 0024, 0001,1751,2100 ; 5888 I, B/1, J/L-SPARE-C ;GFIX D 0025, 0002,1751,2100 ; 5889 I, B/2, J/L-SPARE-C ;GDFIXR D 0026, 0004,1751,2100 ; 5890 I, B/4, J/L-SPARE-C ;GFIXR D 0027, 0010,1751,2100 ; 5891 I, B/10, J/L-SPARE-C ;DGFLTR ; 5892 ;30: ;GFLTR ; 5893 ;GFSC ; 5894 .UCODE ; 5895 ; T10KL.MCR[7,3] 15:10 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 ; 5896 1740: U 1740, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5897 L-CMS: LUUO ; 5898 1741: U 1741, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5899 L-EDIT: LUUO ; 5900 1742: U 1742, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5901 L-DBIN: LUUO ; 5902 1743: U 1743, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5903 L-BDEC: LUUO ; 5904 1744: U 1744, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5905 L-MVS: LUUO ; 5906 1746: U 1746, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5907 L-XBLT: LUUO ; 5908 1747: U 1747, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5909 L-SPARE-A: LUUO ; 5910 1750: U 1750, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5911 L-SPARE-B: LUUO ; 5912 1751: U 1751, 0400,4751,1203,4374,4007,0700,0000,0000,0040 ; 5913 L-SPARE-C: LUUO ; 5914 ; 5915 ;NOTE: WE DO NOT NEED TO RESERVE 3746 TO 3751 BECAUSE THE CODE ; 5916 ; AT EXTEND DOES A RANGE CHECK. ; 5917 ; T10KL.MCR[7,3] 15:10 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 ; 5918 .TOC "EXTEND -- INSTRUCTION SET DECODING" ; 5919 ; 5920 ;EACH INSTRUCTION IN THE RANGE 1-23 GOES TO 1 OF 2 PLACES ; 5921 ; 1740-1747 IF NOT UNDER EXTEND ; 5922 ; 3740-3747 IF UNDER EXTEND ; 5923 ; 5924 .DCODE D 0123, 0000,1467,3100 ; 5925 123: I,READ/1, J/EXTEND ; 5926 .UCODE ; 5927 ; 5928 1467: U 1467, 1022,3771,0005,4365,5007,0700,0200,0000,0002 ; 5929 EXTEND: MEM READ, [BR]_MEM ;FETCH INSTRUCTION ; 5930 =0** TL [BR], #/760740, ;IN RANGE 0-17 (AND AC#=0) U 1022, 3556,4553,0500,4374,4007,0321,0010,0076,0740 ; 5931 CALL [BITCHK] ;TRAP IF NON-ZERO BITS FOUND ; 5932 [BRX]_[HR].AND.# CLR RH, ;SPLIT OUT AC NUMBER U 1026, 3274,4521,0206,4374,4007,0700,0000,0000,0740 ; 5933 #/000740 ; FROM EXTEND INSTRUCTION ; 5934 [BR]_[BR].OR.[BRX], ;LOAD IR AND AC # U 3274, 3275,3111,0605,4174,0417,0700,0000,0000,0000 ; 5935 HOLD RIGHT, LOAD IR ; .. ; 5936 READ [BR], LOAD BYTE EA, ;LOAD XR # U 3275, 3276,3333,0005,4174,4217,0700,0000,0000,0500 ; 5937 J/EXTEA0 ;COMPUTE E1 ; 5938 U 3276, 3277,3333,0003,7174,4007,0700,0400,0000,0240 ; 5939 EXTEA0: WORK[E0]_[AR] U 3277, 0170,4443,0000,2174,4006,6700,0000,0000,0000 ; 5940 EXTEA1: EA MODE DISP ; 5941 =100* U 0170, 0172,0551,0505,2270,4007,0700,0000,0000,0000 ; 5942 EXTEA: [BR]_[BR]+XR ; 5943 EXTDSP: [BR]_EA FROM [BR], LOAD VMA, U 0172, 0556,5741,0505,4174,4003,7700,0200,0000,0010 ; 5944 B DISP, J/EXTEXT U 0174, 3300,0551,0505,2270,4007,0700,0200,0004,0512 ; 5945 [BR]_[BR]+XR, START READ, PXCT EXTEND EA, LOAD VMA, J/EXTIND U 0176, 3300,3443,0500,4174,4007,0700,0200,0004,0512 ; 5946 VMA_[BR], START READ, PXCT EXTEND EA ; 5947 U 3300, 3277,3771,0005,4361,5217,0700,0200,0000,0502 ; 5948 EXTIND: MEM READ, [BR]_MEM, HOLD LEFT, LOAD BYTE EA, J/EXTEA1 ; 5949 ; 5950 ;HERE TO EXTEND SIGN FOR OFFSET MODES ; 5951 =1110 ; 5952 EXTEXT: WORK[E1]_[BR], ;SAVE E1 U 0556, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5953 DISP/DROM, J/3400 ;GO TO EXTENDED EXECUTE CODE U 0557, 2072,3333,0005,4174,4007,0530,0000,0000,0000 ; 5954 READ [BR], SKIP DP18 ;NEED TO EXTEND SIGN ; 5955 =0 WORK[E1]_[BR], ;POSITIVE U 2072, 3400,3333,0005,7174,4001,2700,0400,0000,0241 ; 5956 DISP/DROM, J/3400 ; 5957 [BR]_#, #/777777, HOLD RIGHT, ;NEGATIVE U 2073, 0556,3771,0005,4374,0007,0700,0000,0077,7777 ; 5958 J/EXTEXT ; 5959 ; T10KL.MCR[7,3] 15:10 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 ; 5960 .TOC "EXTEND -- MOVE STRING -- SETUP" ; 5961 ; 5962 ;HERE TO MOVE A STRING ; 5963 ;COME HERE WITH: ; 5964 ; AR/ E0 ; 5965 ; BR/ E1 ; 5966 ; ; 5967 3744: ; 5968 MVS: [AR]_[AR]+1, ;GO FETCH FILL ; 5969 LOAD VMA, ; BYTE ; 5970 START READ, ; .. U 3744, 3473,0111,0703,4174,4007,0700,0210,0004,0012 ; 5971 CALL [GTFILL] ;SUBROUTINE TO COMPLETE U 3754, 2100,3771,0005,1276,6007,0701,0000,0000,1443 ; 5972 3754: [BR]_AC[DLEN] ;GET DEST LENGTH AND FLAGS ; 5973 =0** TL [BR], #/777000, ;ANY FLAGS SET? U 2100, 3556,4553,0500,4374,4007,0321,0010,0077,7000 ; 5974 CALL [BITCHK] ;SEE IF ILLEGAL U 2104, 2074,3771,0003,0276,6007,0700,0000,0000,0000 ; 5975 [AR]_AC ;GET SRC LENGTH AND FLAGS ; 5976 =0 [BRX]_[AR].AND.# CLR RH, ;COPY FLAGS TO BRX ; 5977 #/777000, ; .. U 2074, 3475,4521,0306,4374,4007,0700,0010,0077,7000 ; 5978 CALL [CLRFLG] ;CLEAR FLAGS IN AR ; 5979 ;NEW DLEN IS - ; 5980 AC[DLEN]_[AR]-[BR], 3T, ;COMPUTE DIFFERENCE U 2075, 2076,2113,0305,1174,4007,0521,4400,0000,1443 ; 5981 SKIP DP0 ;WHICH IS SHORTER? ; 5982 =0 [AR]_.NOT.[BR], ;DESTINATION U 2076, 3301,7441,0503,4174,4007,0700,0000,0000,0000 ; 5983 J/MVS1 ;GET NEGATIVE LENGTH U 2077, 3301,7441,0303,4174,4007,0700,0000,0000,0000 ; 5984 [AR]_.NOT.[AR] ;SOURCE ; 5985 MVS1: WORK[SLEN]_[AR], ; .. U 3301, 0574,3333,0003,7174,4003,7700,0400,0000,0242 ; 5986 B DISP ;SEE WHAT TYPE OF MOVE ; 5987 ;SLEN NOW HAS --1 ; 5988 =1100 U 0574, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 5989 STATE_[SRC], J/MOVELP ;TRANSLATE--ALL SET U 0575, 3302,3771,0005,1276,6007,0701,0000,0000,1444 ; 5990 [BR]_AC[DSTP], J/MVSO ;OFFSET BUILD MASK ; 5991 [ARX]_[AR], ;LEFT JUSTIFY U 0576, 3322,3441,0304,4174,4007,0700,0000,0000,0000 ; 5992 J/MOVST0 ; .. ; 5993 [ARX]_AC[DLEN], ;RIGHT JUSTIFY ; 5994 SKIP DP0, 4T, ;WHICH IS SHORTER? U 0577, 0650,3771,0004,1276,6007,0522,0000,0000,1443 ; 5995 J/MOVRJ ; 5996 U 3302, 3303,3333,0005,4174,4007,0700,1000,0041,6020 ; 5997 MVSO: READ [BR], FE_S+2 ;GET DST BYTE SIZE U 3303, 2101,4222,0000,4174,4006,7701,1000,0041,1770 ; 5998 Q_0, BYTE STEP ;BUILD AN S BIT MASK ; 5999 =0* U 2101, 2101,4224,0003,4174,4026,7701,1000,0041,1770 ; 6000 MVSO1: GEN MSK [AR], BYTE STEP, J/MVSO1 U 2103, 3304,7221,0003,4174,4007,0700,0000,0000,0000 ; 6001 [AR]_.NOT.Q ;BITS WHICH MUST NOT BE SET ; 6002 WORK[MSK]_[AR].AND.[MASK], ;SAVE FOR SRCMOD U 3304, 0507,4113,0312,7174,4007,0700,0400,0000,0243 ; 6003 J/MOVLP0 ;GO ENTER LOOP ; 6004 ; T10KL.MCR[7,3] 15:10 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 ; 6005 .TOC "EXTEND -- MOVE STRING -- OFFSET/TRANSLATE" ; 6006 ; 6007 ;HERE IS THE LOOP FOR OFFSET AND TRANSLATED MOVES ; 6008 =000 ; 6009 MOVELP: [AR]_WORK[SLEN]+1, ;UPDATE STRING LENGTH U 0500, 1114,0551,0703,7274,4007,0701,0010,0000,0242 ; 6010 CALL [SRCMOD] ;GET A SOURCE BYTE ; 6011 =001 [ARX]_[AR], SKIP DP0, ;(1) LENGTH EXHAUSTED U 0501, 1020,3441,0304,4174,4007,0520,0000,0000,0000 ; 6012 J/MOVST2 ; SEE IF FILL IS NEEDED ; 6013 =100 [AR]_-WORK[SLEN], ;(4) ABORT U 0504, 3305,1771,0003,7274,4007,0701,4000,0000,0242 ; 6014 J/MVABT ; .. ; 6015 STATE_[SRC+DST], ;(5) NORMAL--STORE DST BYTE U 0505, 3465,3771,0013,4370,4007,0700,0010,0000,0005 ; 6016 CALL [PUTDST] ; .. ; 6017 =111 U 0507, 0500,3771,0013,4370,4007,0700,0000,0000,0003 ; 6018 MOVLP0: STATE_[SRC], J/MOVELP ;(7) DPB DONE ; 6019 = ; 6020 ; 6021 ;HERE TO ABORT A STRING MOVE DUE TO TRANSLATE OR OFFSET FAILURE ; 6022 ; 6023 MVABT: [BR]_AC[DLEN], ;WHICH STRING IS LONGER U 3305, 2106,3771,0005,1276,6007,0522,0000,0000,1443 ; 6024 SKIP DP0, 4T ; 6025 =0 U 2106, 3306,3440,0303,1174,4007,0700,0400,0000,1443 ; 6026 MVABT1: AC[DLEN]_[AR], J/MVABT2 ;PUT AWAY DEST LEN ; 6027 [AR]_[AR]-[BR], ;DEST LEN WAS GREATER U 2107, 2106,1111,0503,4174,4007,0700,4000,0000,0000 ; 6028 J/MVABT1 ;STICK BACK IN AC ; 6029 U 3306, 3307,7771,0003,7274,4007,0701,0000,0000,0242 ; 6030 MVABT2: [AR]_.NOT.WORK[SLEN] ;GET UNDECREMENTED SLEN U 3307, 2110,3333,0005,4174,4007,0520,0000,0000,0000 ; 6031 READ [BR], SKIP DP0 ;NEED TO FIXUP SRC? U 2110, 2111,0111,0503,4174,4007,0700,0000,0000,0000 ; 6032 =0 [AR]_[AR]+[BR] ;SRC LONGER BY (DLEN) U 2111, 3310,3111,0603,4174,4007,0700,0000,0000,0000 ; 6033 MVEND: [AR]_[AR].OR.[BRX] ;PUT BACK SRC FLAGS U 3310, 1515,4221,0013,4170,4007,0700,0000,0000,0000 ; 6034 END STATE, J/STAC ;ALL DONE ; 6035 ; T10KL.MCR[7,3] 15:10 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 ; 6036 .TOC "EXTEND -- MOVE STRING -- MOVSRJ" ; 6037 ; 6038 =00 U 0650, 3311,3771,0003,1276,6007,0701,0000,0000,1441 ; 6039 MOVRJ: [AR]_AC[SRCP], J/MVSKP ;SRC LONGER, SKIP OVER SOME ; 6040 STATE_[DSTF], ;DST LONGER, FILL IT U 0651, 2301,3771,0013,4370,4007,0700,0010,0000,0006 ; 6041 CALL [MOVFIL] ; .. ; 6042 =11 [ARX]_WORK[SLEN]+1, ;DONE FILLING U 0653, 3323,0551,0704,7274,4007,0701,0000,0000,0242 ; 6043 J/MOVST1 ;GO MOVE STRING ; 6044 ; 6045 ;HERE TO SKIP OVER EXTRA SOURCE BYTES U 3311, 2112,3440,0303,1174,4007,0670,0400,0000,1441 ; 6046 MVSKP: AC[SRCP]_[AR], SKIP -1MS ;[121] Is there a timer interrupt? U 2112, 3314,3333,0003,7174,4007,0700,0400,0000,0211 ; 6047 =0 WORK[SV.AR]_[AR], J/MVSK2 ;[121][123] Yes, save regs for interrupt. ; 6048 [ARX]_[ARX]-1, 3T, ;DONE SKIPPING? U 2113, 2114,1111,0704,4174,4007,0521,4000,0000,0000 ; 6049 SKIP DP0 ; 6050 =0 IBP DP, IBP SCAD, ;NO--START THE IBP ; 6051 SCAD DISP, SKIP IRPT, ;4-WAY DISPATCH U 2114, 0750,3770,0305,4334,4016,7371,0000,0033,6000 ; 6052 3T, J/MVSKP1 ;GO BUMP POINTER ; 6053 AC[DLEN]_0, ;LENGTHS ARE NOW EQUAL U 2115, 0546,4223,0000,1174,4007,0700,0400,0000,1443 ; 6054 J/MOVST4 ;GO MOVE STRING ; 6055 ; 6056 =00 U 0750, 3311,3441,0503,4174,4007,0700,0000,0000,0000 ; 6057 MVSKP1: [AR]_[BR], J/MVSKP ;NO OVERFLOW ; 6058 [AR]_.NOT.WORK[SLEN], ;INTERRUPT U 0751, 3312,7771,0003,7274,4007,0701,0000,0000,0242 ; 6059 J/MVSK3 ; .. ; 6060 SET P TO 36-S, ;WORD OVERFLOW U 0752, 3313,3770,0503,4334,4017,0700,0000,0032,6000 ; 6061 J/MVSKP2 ;FIXUP Y U 0753, 3312,7771,0003,7274,4007,0701,0000,0000,0242 ; 6062 [AR]_.NOT.WORK[SLEN] ;[121] INTERRUPT or timer. U 3312, 2116,3440,0303,1174,4007,0700,0400,0000,1443 ; 6063 MVSK3: AC[DLEN]_[AR] ;RESET DLEN ; 6064 =0 [AR]_[AR]+[ARX], U 2116, 3700,0111,0403,4174,4007,0700,0010,0000,0000 ; 6065 CALL [INCAR] ;ADD 1 TO AR ; 6066 AC_[AR].OR.[BRX], ;PUT BACK FLAGS U 2117, 3734,3113,0306,0174,4007,0700,0400,0000,0000 ; 6067 J/ITRAP ;DO INTERRUPT TRAP ; 6068 ; 6069 MVSKP2: [AR]_[AR]+1, HOLD LEFT, ;BUMP Y U 3313, 3311,0111,0703,4170,4007,0700,0000,0000,0000 ; 6070 J/MVSKP ;KEEP GOING ; 6071 ; 6072 ;BEGIN EDIT [123] U 3314, 3315,3333,0005,7174,4007,0700,0400,0000,0213 ; 6073 MVSK2: WORK[SV.BR]_[BR] ;SAVE ALL U 3315, 3316,3333,0004,7174,4007,0700,0400,0000,0212 ; 6074 WORK[SV.ARX]_[ARX] ;THE REGISTERS U 3316, 2120,3333,0006,7174,4007,0700,0400,0000,0214 ; 6075 WORK[SV.BRX]_[BRX] ;FOR THE TICK U 2120, 3574,4443,0000,4174,4007,0700,0010,0000,0000 ; 6076 =0* CALL [TICK] ;UPDATE CLOCK AND SET INTERUPT U 2122, 3317,3771,0003,7274,4007,0701,0000,0000,0211 ; 6077 [AR]_WORK[SV.AR] ;NOW PUT U 3317, 3320,3771,0005,7274,4007,0701,0000,0000,0213 ; 6078 [BR]_WORK[SV.BR] ;THEM ALL U 3320, 3321,3771,0004,7274,4007,0701,0000,0000,0212 ; 6079 [ARX]_WORK[SV.ARX] ;BACK SO WE ; 6080 [BRX]_WORK[SV.BRX], ;CAN CONTINUE U 3321, 3311,3771,0006,7274,4007,0701,0000,0000,0214 ; 6081 J/MVSKP ; 6082 ;END EDIT [123] ; 6083 ; T10KL.MCR[7,3] 15:10 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 ; 6084 .TOC "EXTEND -- MOVE STRING -- SIMPLE MOVE LOOP" ; 6085 ; 6086 ;HERE FOR NO-MODIFICATION STRING MOVES U 3322, 3323,0111,0704,4174,4007,0700,0000,0000,0000 ; 6087 MOVST0: [ARX]_[ARX]+1 ;CANT DO [ARX]_[AR]+1 U 3323, 0540,3771,0013,4370,4007,0700,0000,0000,0003 ; 6088 MOVST1: STATE_[SRC] ;PREPARE FOR PAGE FAIL ; 6089 =000 ; 6090 WORK[SLEN]_[ARX], ;GO GET A SOURCE BYTE U 0540, 2312,3333,0004,7174,4007,0520,0410,0000,0242 ; 6091 SKIP DP0, CALL [GSRC] ; .. ; 6092 MOVSTX: [ARX]_[AR], ;SHORT STRING RAN OUT U 0541, 1020,3441,0304,4174,4007,0520,0000,0000,0000 ; 6093 SKIP DP0, J/MOVST2 ;GO SEE IF FILL NEEDED ; 6094 =010 STATE_[SRC+DST], ;WILL NEED TO BACK UP BOTH POINTERS U 0542, 3465,3771,0013,4370,4007,0700,0010,0000,0005 ; 6095 CALL [PUTDST] ;STORE BYTE ; 6096 =110 ; 6097 MOVST4: [ARX]_WORK[SLEN]+1, ;COUNT DOWN LENGTH U 0546, 3323,0551,0704,7274,4007,0701,0000,0000,0242 ; 6098 J/MOVST1 ;LOOP OVER STRING ; 6099 = ; 6100 =00 U 1020, 3324,4223,0000,1174,4007,0700,0400,0000,1443 ; 6101 MOVST2: AC[DLEN]_0, J/MOVST3 ;CLEAR DEST LEN, REBUILD SRC U 1021, 2301,3771,0013,4370,4007,0700,0010,0000,0004 ; 6102 STATE_[DST], CALL [MOVFIL] ;FILL OUT DEST U 1023, 2161,3440,0606,0174,4007,0700,0400,0000,0000 ; 6103 =11 AC_[BRX], J/ENDSKP ;ALL DONE ; 6104 U 3324, 3325,3113,0406,0174,4007,0700,0400,0000,0000 ; 6105 MOVST3: AC_[ARX].OR.[BRX] ;REBUILD SRC U 3325, 0252,4221,0013,4170,4007,0700,0000,0000,0000 ; 6106 END STATE, J/SKIPE ; .. ; 6107 ; T10KL.MCR[7,3] 15:10 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 ; 6108 .TOC "EXTEND -- COMPARE STRING" ; 6109 ; 6110 3740: U 3740, 2121,3771,0004,1276,6007,0701,0000,0000,1443 ; 6111 CMS: [ARX]_AC[DLEN] ;GET DEST LEN U 2121, 3556,4553,0400,4374,4007,0321,0010,0077,7000 ; 6112 =0** TL [ARX], #/777000, CALL [BITCHK] U 2125, 2123,3771,0006,0276,6007,0700,0000,0000,0000 ; 6113 [BRX]_AC ;GET SRC LEN U 2123, 3556,4553,0600,4374,4007,0321,0010,0077,7000 ; 6114 =0** TL [BRX], #/777000, CALL [BITCHK] U 2127, 2130,2113,0604,4174,4007,0521,4000,0000,0000 ; 6115 [BRX]-[ARX], 3T, SKIP DP0 ;WHICH STRING IS LONGER? U 2130, 2131,0111,0703,4174,4007,0700,0000,0000,0000 ; 6116 =0 [AR]_[AR]+1 ;SRC STRING IS LONGER U 2131, 2132,0111,0703,4170,4007,0700,0200,0004,0012 ; 6117 VMA_[AR]+1, START READ ;DST STRING ; 6118 =0 [AR]_0, ;FORCE FIRST COMPARE TO BE ; 6119 ;EQUAL U 2132, 3676,4221,0003,4174,4007,0700,0010,0000,0000 ; 6120 CALL [LOADQ] ;PUT FILL INTO Q ; 6121 WORK[FILL]_Q, ;SAVE FILLER U 2133, 3335,3223,0000,7174,4007,0700,0400,0000,0244 ; 6122 J/CMS2 ;ENTER LOOP ; 6123 ; T10KL.MCR[7,3] 15:10 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 ; 6124 ;HERE IS THE COMPARE LOOP. ; 6125 ; ARX/ CONATINS REMAINING DEST LENGTH ; 6126 ; BRX/ CONTAINS REMAINING SOURCE LENGTH ; 6127 =0 ; 6128 CMS3: ;BYTES ARE NOT EQUAL ; 6129 END STATE, ;NO MORE SPECIAL PAGE FAIL ACTION U 2134, 0250,4221,0013,4170,4003,7700,0000,0000,0000 ; 6130 SKIP-COMP DISP ;SEE SKIP-COMP-TABLE U 2135, 3326,3771,0003,1276,6007,0701,0000,0000,1441 ; 6131 CMS4: [AR]_AC[SRCP] ;GET BYTE POINTER U 3326, 1030,3333,0006,4174,4007,0520,0000,0000,0000 ; 6132 READ [BRX], SKIP DP0 ;MORE IN SOURCE STRING? ; 6133 =00 STATE_[EDIT-SRC], ;PREPARE FOR PAGE FAIL U 1030, 2313,3771,0013,4370,4007,0700,0010,0000,0011 ; 6134 CALL [GETSRC] ; GO GET BYTE ; 6135 READ [ARX], SKIP DP0, ;NO MORE SRC--SEE IF MORE DEST U 1031, 2136,3333,0004,4174,4007,0520,0000,0000,0000 ; 6136 J/CMS5 ; .. U 1032, 3327,3333,0003,7174,4007,0700,0400,0000,0245 ; 6137 WORK[CMS]_[AR] ;SAVE SRC BYTE ; 6138 = U 3327, 3330,3440,0606,0174,4007,0700,0400,0000,0000 ; 6139 AC_[BRX] ;PUT BACK SRC LEN U 3330, 3331,3771,0013,4370,4007,0700,0000,0000,0010 ; 6140 STATE_[COMP-DST] ;HAVE TO BACK UP IF DST FAILS U 3331, 1050,3333,0004,4174,4007,0520,0000,0000,0000 ; 6141 READ [ARX], SKIP DP0 ;ANY MORE DEST? ; 6142 =00 U 1050, 2140,4443,0000,4174,4007,0700,0010,0000,0000 ; 6143 CMS6: CALL [CMPDST] ;MORE DEST BYTES ; 6144 [AR]_WORK[FILL], ;OUT OF DEST BYTES U 1051, 3332,3771,0003,7274,4007,0701,0000,0000,0244 ; 6145 J/CMS7 ;GO DO COMPARE U 1052, 3332,3440,0404,1174,4007,0700,0400,0000,1443 ; 6146 AC[DLEN]_[ARX] ;GOT A BYTE, UPDATE LENGTH ; 6147 = ; 6148 CMS7: [AR]_[AR].AND.[MASK], ;MAKE MAGNITUDES U 3332, 3333,4111,1203,7174,4007,0700,0000,0000,0245 ; 6149 WORK[CMS] ;WARM UP RAM U 3333, 3334,4551,1205,7274,4007,0700,0000,0000,0245 ; 6150 [BR]_[MASK].AND.WORK[CMS], 2T ;GET SRC MAGNITUDE U 3334, 3335,2111,0503,4174,4007,0700,4000,0000,0000 ; 6151 [AR]_[BR]-[AR] REV ;UNSIGNED COMPARE U 3335, 3336,1111,0704,4174,4007,0700,4000,0000,0000 ; 6152 CMS2: [ARX]_[ARX]-1 ;UPDATE LENGTHS U 3336, 3337,1111,0706,4174,4007,0700,4000,0000,0000 ; 6153 [BRX]_[BRX]-1 ; .. U 3337, 2134,3333,0003,4174,4007,0621,0000,0000,0000 ; 6154 READ [AR], SKIP AD.EQ.0, J/CMS3 ;SEE IF EQUAL ; 6155 ; 6156 =0 U 2136, 3340,3772,0000,7274,4007,0701,0000,0000,0244 ; 6157 CMS5: Q_WORK[FILL], J/CMS8 ;MORE DST--GET SRC FILL U 2137, 2134,4221,0003,4174,4007,0700,0000,0000,0000 ; 6158 [AR]_0, J/CMS3 ;STRINGS ARE EQUAL U 3340, 3341,3771,0013,4370,4007,0700,0000,0000,0012 ; 6159 CMS8: STATE_[EDIT-DST] ;JUST DST POINTER ON PAGE FAIL U 3341, 1050,3223,0000,7174,4007,0700,0400,0000,0245 ; 6160 WORK[CMS]_Q, J/CMS6 ;MORE DST--SAVE SRC FILL ; 6161 ; 6162 =0 ; 6163 CMPDST: [AR]_AC[DSTP], ;GET DEST POINTER U 2140, 3466,3771,0003,1276,6007,0701,0010,0000,1444 ; 6164 CALL [IDST] ;UPDATE IT ; 6165 READ [AR], ;LOOK AT BYTE POINTER ; 6166 FE_FE.AND.S#, S#/0770, ;MASK OUT BIT 6 U 2141, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6167 BYTE DISP, J/LDB1 ;GO LOAD BYTE ; 6168 ; T10KL.MCR[7,3] 15:10 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 ; 6169 .TOC "EXTEND -- DECIMAL TO BINARY CONVERSION" ; 6170 ; 6171 3742: U 3742, 3342,4571,1203,4374,4007,0700,0000,0077,7777 ; 6172 DBIN: [AR]_[777777] XWD 0 ;IF WE ARE IN OFFSET MODE U 3342, 3343,3333,0003,7174,4007,0700,0400,0000,0243 ; 6173 WORK[MSK]_[AR] ; ONLY ALLOW 18 BITS ; 6174 ;RANGE CHECKED (0-10) LATER U 3343, 3344,3771,0003,0276,6007,0700,0000,0000,0000 ; 6175 [AR]_AC ;GET SRC LENGTH ; 6176 [BRX]_[AR].AND.# CLR RH, ;SPLIT OUT FLAGS U 3344, 2124,4521,0306,4374,4007,0700,0000,0077,7000 ; 6177 #/777000 ; .. ; 6178 =0* [ARX]_AC[BIN1], ;GET LOW WORD U 2124, 2236,3771,0004,1276,6007,0701,0010,0000,1444 ; 6179 CALL [CLARX0] ;CLEAR BIT 0 OF ARX U 2126, 2142,3440,0404,1174,4007,0700,0400,0000,1444 ; 6180 AC[BIN1]_[ARX] ;STORE BACK ; 6181 =0 READ [BRX], SKIP DP0, ;IS S ALREADY SET? U 2142, 2166,3333,0006,4174,4007,0520,0010,0000,0000 ; 6182 CALL [CLRBIN] ;GO CLEAR BIN IF NOT ; 6183 [AR]_[AR].AND.#, ;CLEAR FLAGS FROM LENGTH ; 6184 #/000777, HOLD RIGHT, ; .. U 2143, 0616,4551,0303,4374,0003,7700,0000,0000,0777 ; 6185 B DISP ;SEE IF OFFSET OR TRANSLATE ; 6186 =1110 U 0616, 3345,3771,0013,4370,4007,0700,0000,0000,0007 ; 6187 DBIN1: STATE_[CVTDB], J/DBIN2 ;TRANSLATE--LEAVE S ALONE ; 6188 [BRX]_[BRX].OR.#, ;OFFSET--FORCE S TO 1 ; 6189 #/400000, HOLD RIGHT, U 0617, 0616,3551,0606,4374,0007,0700,0000,0040,0000 ; 6190 J/DBIN1 U 3345, 0460,7333,0003,7174,4007,0700,0400,0000,0242 ; 6191 DBIN2: WORK[SLEN]_.NOT.[AR] ;STORE -SLEN-1 ; 6192 ; 6193 ;HERE IS THE MAIN LOOP ; 6194 =0*0 U 0460, 1114,0551,0703,7274,4007,0701,0010,0000,0242 ; 6195 DBINLP: [AR]_WORK[SLEN]+1, CALL [SRCMOD] ;(0) GET MODIFIED SRC BYTE ; 6196 TL [BRX], #/100000, ;(1) DONE, IS M SET? U 0461, 2154,4553,0600,4374,4007,0321,0000,0010,0000 ; 6197 J/DBXIT ; 6198 [AR]_.NOT.WORK[SLEN], ;(4) ABORT U 0464, 3352,7771,0003,7274,4007,0701,0000,0000,0242 ; 6199 J/DBABT ; .. ; 6200 [AR]-#, #/10., ;(5) NORMAL--SEE IF 0-9 U 0465, 2144,1553,0300,4374,4007,0532,4000,0000,0012 ; 6201 4T, SKIP DP18 ; .. ; 6202 =0 [AR]_.NOT.WORK[SLEN], ;DIGIT TOO BIG U 2144, 3352,7771,0003,7274,4007,0701,0000,0000,0242 ; 6203 J/DBABT ;GO ABORT CVT ; 6204 ; T10KL.MCR[7,3] 15:10 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 ; 6205 ;HERE TO ADD IN A DIGIT ; 6206 [BR]_AC[BIN0], 4T, ;GET HIGH BINARY U 2145, 1074,3771,0005,1276,6007,0622,0000,0000,1443 ; 6207 SKIP AD.EQ.0 ;SEE IF SMALL ; 6208 =00 ; 6209 DBSLO: [ARX]_AC[BIN1], ;TOO BIG U 1074, 0560,3771,0004,1276,6007,0701,0010,0000,1444 ; 6210 CALL [DBSLOW] ;GO USE DOUBLE PRECISION PATHS ; 6211 [BR]_AC[BIN1], ;GET LOW WORD U 1075, 3346,3771,0005,1276,6007,0701,0000,0000,1444 ; 6212 J/DBFAST ;MIGHT FIT IN 1 WORD U 1076, 0460,4443,0000,4174,4007,0700,0000,0000,0000 ; 6213 J/DBINLP ;RETURN FROM DBSLOW ; 6214 ;GO DO NEXT DIGIT ; 6215 = U 3346, 2146,4553,0500,4374,4007,0321,0000,0076,0000 ; 6216 DBFAST: TL [BR], #/760000 ;WILL RESULT FIT IN 36 BITS? U 2146, 1074,4443,0000,4174,4007,0700,0000,0000,0000 ; 6217 =0 J/DBSLO ;MAY NOT FIT--USE DOUBLE WORD U 2147, 3347,3775,0005,1276,6007,0701,0000,0000,1444 ; 6218 [BR]_AC[BIN1]*2 ;COMPUTE AC*2 U 3347, 2150,3445,0505,1174,4007,0700,0000,0000,1444 ; 6219 [BR]_[BR]*2, AC[BIN1] ;COMPUTE AC*4 ; 6220 =0 [BR]_[BR]+AC[BIN1], 2T, ;COMPUTE AC*5 U 2150, 3701,0551,0505,1274,4007,0700,0010,0000,1444 ; 6221 CALL [SBRL] ;COMPUTE AC*10 ; 6222 AC[BIN1]_[AR]+[BR], 3T, ;NEW BINARY RESULT U 2151, 0460,0113,0305,1174,4007,0701,0400,0000,1444 ; 6223 J/DBINLP ;DO NEXT DIGIT ; 6224 ; T10KL.MCR[7,3] 15:10 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 ; 6225 ;HERE IF NUMBER DOES NOT FIT IN ONE WORD ; 6226 ; 6227 =000 ; 6228 DBSLOW: [BR]_AC[BIN0], ;FETCH HIGH WORD U 0560, 0620,3771,0005,1276,6007,0701,0010,0000,1443 ; 6229 CALL [MULBY4] ;MULTIPLY BY 4 ; 6230 [ARX]_[ARX]+AC[BIN1], ;COMPUTE VALUE * 5 ; 6231 SKIP CRY1, 4T, ;SEE IF OVERFLOW U 0561, 2152,0551,0404,1274,4007,0562,0010,0000,1444 ; 6232 CALL [ADDCRY] ;GO ADD CARRY U 0565, 0600,0551,0505,1274,4007,0701,0000,0000,1443 ; 6233 =101 [BR]_[BR]+AC[BIN0] ;ADD IN HIGH WORD ; 6234 = U 0600, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6235 =000 CALL [DBLDBL] ;MAKE * 10 ; 6236 [ARX]_[ARX]+[AR], 3T, ;ADD IN NEW DIGIT ; 6237 SKIP CRY1, ;SEE IF OVERFLOW U 0601, 2152,0111,0304,4174,4007,0561,0010,0000,0000 ; 6238 CALL [ADDCRY] ;ADD IN THE CARRY U 0605, 3350,3440,0404,1174,4007,0700,0400,0000,1444 ; 6239 =101 AC[BIN1]_[ARX] ;PUT BACK ANSWER ; 6240 = ; 6241 AC[BIN0]_[BR], ; .. U 3350, 0002,3440,0505,1174,4004,1700,0400,0000,1443 ; 6242 RETURN [2] ;GO DO NEXT BYTE ; 6243 ; 6244 ;HERE TO DOUBLE BR!ARX ; 6245 =000 U 0620, 0621,4443,0000,4174,4007,0700,0010,0000,0000 ; 6246 MULBY4: CALL [DBLDBL] ;DOUBLE TWICE U 0621, 0622,0111,0505,4174,4007,0700,0000,0000,0000 ; 6247 DBLDBL: [BR]_[BR]+[BR] ;DOUBLE HIGH WORD FIRST ; 6248 ;(SO WE DON'T DOUBLE CARRY) ; 6249 [ARX]_[ARX]+[ARX], ;DOUBLE LOW WORD ; 6250 SKIP CRY1, 3T, ;SEE IF CARRY U 0622, 2152,0111,0404,4174,4007,0561,0010,0000,0000 ; 6251 CALL [ADDCRY] ;ADD IN CARRY U 0626, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6252 =110 RETURN [1] ;ALL DONE ; 6253 = ; 6254 ; 6255 ;HERE TO ADD THE CARRY ; 6256 =0 U 2152, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6257 ADDCRY: RETURN [4] ;NO CARRY U 2153, 3351,4551,0404,4374,0007,0700,0000,0037,7777 ; 6258 CLEAR [ARX]0 ;KEEP LOW WORD POSITIVE ; 6259 [BR]_[BR]+1, ;ADD CARRY U 3351, 0004,0111,0705,4174,4004,1700,0000,0000,0000 ; 6260 RETURN [4] ;ALL DONE ; 6261 ; T10KL.MCR[7,3] 15:10 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 ; 6262 ;HERE TO ABORT CONVERSION U 3352, 3353,3111,0306,4174,4007,0700,0000,0000,0000 ; 6263 DBABT: [BRX]_[BRX].OR.[AR] ;PUT BACK UNUSED LENGTH ; 6264 [PC]_[PC]-1, HOLD LEFT, ;DO NOT SKIP U 3353, 2155,1111,0701,4170,4007,0700,4000,0000,0000 ; 6265 J/DBDONE ;GO FIX UP SIGN COPY ; 6266 ; 6267 ;HERE AT END ; 6268 =0 ; 6269 DBXIT: [ARX]_AC[BIN1], ;GET LOW WORD U 2154, 3356,3771,0004,1276,6007,0701,0000,0000,1444 ; 6270 J/DBNEG ;GO NEGATE U 2155, 3354,3771,0003,1276,6007,0701,0000,0000,1444 ; 6271 DBDONE: [AR]_AC[BIN1] ;FETCH LOW WORD ; 6272 [BR]_AC[BIN0], 4T, ;GET HIGH WORD U 3354, 2156,3771,0005,1276,6007,0522,0000,0000,1443 ; 6273 SKIP DP0 ;WHAT SIGN U 2156, 3355,4551,0303,4374,0007,0700,0000,0037,7777 ; 6274 =0 CLEAR [AR]0, J/DBDN1 ;POSITIVE U 2157, 3355,3551,0303,4374,0007,0700,0000,0040,0000 ; 6275 [AR]_[AR].OR.#, #/400000, HOLD RIGHT U 3355, 2160,3440,0303,1174,4007,0700,0400,0000,1444 ; 6276 DBDN1: AC[BIN1]_[AR] ;STORE AC BACK ; 6277 =0 AC_[BRX] TEST, ;RETURN FLAGS U 2160, 2166,3770,0606,0174,4007,0520,0410,0000,0000 ; 6278 SKIP DP0, CALL [CLRBIN] ;CLEAR BIN IS S=0 U 2161, 0260,4221,0013,4170,4007,0700,0000,0000,0000 ; 6279 ENDSKP: END STATE, J/SKIP ;NO--ALL DONE ; 6280 U 3356, 3357,4551,0404,4374,0007,0700,0000,0037,7777 ; 6281 DBNEG: CLEAR ARX0 ;CLEAR EXTRA SIGN BIT ; 6282 [ARX]_-[ARX], 3T, ;NEGATE AND SEE IF U 3357, 2162,2441,0404,1174,4007,0621,4000,0000,1443 ; 6283 SKIP AD.EQ.0, AC[BIN0] ; ANY CARRY U 2162, 2165,7771,0003,1274,4007,0700,0000,0000,1443 ; 6284 =0 [AR]_.NOT.AC[BIN0], 2T, J/STAC34 ;NO CARRY ; 6285 [AR]_-AC[BIN0], 3T, ;CARRY U 2163, 2164,1771,0003,1274,4007,0621,4000,0000,1443 ; 6286 SKIP AD.EQ.0 ;SEE IF ALL ZERO U 2164, 2165,4571,1204,4374,4007,0700,0000,0040,0000 ; 6287 =0 [ARX]_[400000] XWD 0 ;MAKE COPY OF SIGN ; 6288 ; UNLESS HIGH WORD IS ZERO U 2165, 3360,3440,0303,1174,4007,0700,0400,0000,1443 ; 6289 STAC34: AC[BIN0]_[AR] ;PUT BACK ANSWER U 3360, 2155,3440,0404,1174,4007,0700,0400,0000,1444 ; 6290 AC[BIN1]_[ARX], J/DBDONE ; .. ; 6291 ; 6292 ;HELPER SUBROUTINE TO CLEAR AC[BIN0] AND AC[BIN1] IF S=0 ; 6293 ;CALL WITH: ; 6294 ; READ [BRX], SKIP DP0, CALL [CLRBIN] ; 6295 ;RETURNS 1 ALWAYS ; 6296 =0 U 2166, 3361,4223,0000,1174,4007,0700,0400,0000,1443 ; 6297 CLRBIN: AC[BIN0]_0, J/CLRB1 U 2167, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 6298 RETURN [1] U 3361, 0001,4223,0000,1174,4004,1700,0400,0000,1444 ; 6299 CLRB1: AC[BIN1]_0, RETURN [1] ; 6300 ; T10KL.MCR[7,3] 15:10 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 ; 6301 .TOC "EXTEND -- BINARY TO DECIMAL CONVERSION" ; 6302 ; 6303 3743: ; 6304 BDEC: [BRX]_AC[DLEN], ;GET LENGTH AND FLAGS U 3743, 2170,3771,0006,1276,6007,0351,0000,0000,1443 ; 6305 SKIP FPD ;CONTINUE FROM INTERUPT? ; 6306 =0 [BRX]_[BRX].AND.#, ;JUST KEEP THE FLAGS ; 6307 #/777000, ; .. U 2170, 3362,4551,0606,4374,4007,0700,0000,0077,7000 ; 6308 J/BDEC0 ;COMPUTE NEW FLAGS U 2171, 3400,3771,0003,0276,6007,0700,0000,0000,0000 ; 6309 DOCVT: [AR]_AC, J/DOCVT1 ;ALL SET PRIOR TO TRAP U 3362, 3363,3771,0004,1276,6007,0701,0000,0000,1441 ; 6310 BDEC0: [ARX]_AC[1] ;GET LOW BINARY U 3363, 2174,3771,0003,0276,6007,0700,2000,0071,0024 ; 6311 [AR]_AC, SC_20. ;GET HIGH WORD, SET STEP COUNT ; 6312 =0* WORK[BDL]_[ARX], ;SAVE IN CASE OF ABORT U 2174, 2236,3333,0004,7174,4007,0700,0410,0000,0250 ; 6313 CALL [CLARX0] ;MAKE SURE BIT 0 IS OFF ; 6314 WORK[BDH]_[AR], ;SAVE HIGH WORD AND U 2176, 2172,3333,0003,7174,4007,0520,0400,0000,0247 ; 6315 SKIP DP0 ; TEST SIGN ; 6316 =0 ; 6317 BDEC1: [BRX]_0, HOLD LEFT, ;POSITIVE, CLEAR RH OF BRX U 2172, 2202,4221,0006,4170,4007,0700,0000,0000,0000 ; 6318 J/BDEC3 ;COMPUTE # OF DIGITS REQUIRED ; 6319 [BRX]_[BRX].OR.#, ;NEGATIVE, SET M U 2173, 2175,3551,0606,4374,0007,0700,0000,0010,0000 ; 6320 #/100000, HOLD RIGHT ; .. ; 6321 =0* U 2175, 3065,4551,0404,4374,0007,0700,0010,0037,7777 ; 6322 BDEC2: CLEAR ARX0, CALL [DBLNG1] ;NEGATE AR!ARX ; 6323 AC_[AR] TEST, ;PUT BACK ANSWER U 2177, 2200,3770,0303,0174,4007,0520,0400,0000,0000 ; 6324 SKIP DP0 ;IF STILL MINUS WE HAVE ; 6325 ; 1B0, AND NO OTHER BITS U 2200, 2172,3440,0404,1174,4007,0700,0400,0000,1441 ; 6326 =0 AC[1]_[ARX], J/BDEC1 ;POSITIVE NOW U 2201, 3364,0111,0704,4174,4007,0700,0000,0000,0000 ; 6327 [ARX]_[ARX]+1 ;JUST 1B0--ADD 1 ; 6328 [BRX]_[BRX].OR.#, ;AND REMEMBER THAT WE DID ; 6329 #/040000, HOLD RIGHT, ; IN LEFT HALF OF AC+3 U 3364, 2175,3551,0606,4374,0007,0700,0000,0004,0000 ; 6330 J/BDEC2 ; NEGATE IT AGAIN ; 6331 =0 U 2202, 0441,3771,0003,0276,6007,0700,0000,0000,0000 ; 6332 BDEC3: [AR]_AC, J/BDEC4 ;GET HIGH AC ; 6333 [BRX]_[BRX].OR.#, ;NO LARGER POWER OF 10 FITS ; 6334 #/200000, ;SET N FLAG (CLEARLY NOT 0) U 2203, 2206,3551,0606,4374,0007,0700,0000,0020,0000 ; 6335 HOLD RIGHT, J/BDEC5 ;SETUP TO FILL, ETC. ; 6336 =001 ; 6337 BDEC4: [ARX]_AC[1], ;GET HIGH WORD U 0441, 2226,3771,0004,1276,6007,0701,0010,0000,1441 ; 6338 CALL [BDSUB] ;SEE IF 10**C(BRX) FITS ; 6339 =011 [BRX]_[BRX]+1, ;NUMBER FITS--TRY A LARGER ONE U 0443, 2202,0111,0706,4174,4007,0630,2000,0060,0000 ; 6340 STEP SC, J/BDEC3 ;UNLESS WE ARE OUT OF NUMBERS U 0447, 2204,4553,0600,4374,4007,0331,0000,0077,7777 ; 6341 =111 TR [BRX], #/777777 ;ANY DIGITS REQUIRED? ; 6342 = ; 6343 =0 [BRX]_[BRX].OR.#, ;SOME DIGITS NEEDED, ; 6344 #/200000, HOLD RIGHT, ; SET N FLAG U 2204, 2206,3551,0606,4374,0007,0700,0000,0020,0000 ; 6345 J/BDEC5 ;CONTINUE BELOW U 2205, 2206,0111,0706,4174,4007,0700,0000,0000,0000 ; 6346 [BRX]_[BRX]+1 ;ZERO--FORCE AT LEAST 1 DIGIT ; 6347 ; T10KL.MCR[7,3] 15:10 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 ; 6348 =0 ; 6349 BDEC5: [AR]_AC[DLEN], ;GET LENGTH U 2206, 3475,3771,0003,1276,6007,0701,0010,0000,1443 ; 6350 CALL [CLRFLG] ;REMOVE FLAGS FROM AR U 2207, 3365,4221,0005,4174,4007,0700,0000,0000,0000 ; 6351 [BR]_0 U 3365, 3366,3441,0605,4170,4007,0700,0000,0000,0000 ; 6352 [BR]_[BRX], HOLD LEFT ;GET # OF DIGITS NEEDED ; 6353 [BR]_[BR]-[AR], ;NUMBER OF FILLS NEEDED U 3366, 2210,1111,0305,4174,4007,0421,4000,0000,0000 ; 6354 SKIP AD.LE.0 ;SEE IF ENOUGH ROOM ; 6355 =0 [ARX]_WORK[BDL], ;DOES NOT FIT IN SPACE ALLOWED U 2210, 3410,3771,0004,7274,4007,0701,0000,0000,0250 ; 6356 J/BDABT ; DO NOT DO CONVERT U 2211, 2212,3333,0006,4174,4007,0520,0000,0000,0000 ; 6357 READ [BRX], SKIP DP0 ;IS L ALREADY SET ; 6358 =0 AC[DLEN]_[BRX], ;NO--NO FILLERS U 2212, 2171,3440,0606,1174,4007,0700,0400,0000,1443 ; 6359 J/DOCVT ;GO CHURN OUT THE NUMBER ; 6360 ; 6361 ; 6362 ;HERE TO STORE LEADING FILLERS U 2213, 3367,3441,0603,4174,0007,0700,0000,0000,0000 ; 6363 [AR]_[BRX], HOLD RIGHT ;MAKE SURE THE FLAGS GET SET U 3367, 3370,3440,0303,1174,4007,0700,0400,0000,1443 ; 6364 AC[DLEN]_[AR] ; BEFORE WE PAGE FAIL U 3370, 3371,3771,0003,7274,4007,0701,0000,0000,0240 ; 6365 [AR]_WORK[E0] ;ADDRESS OF FILL (-1) ; 6366 [AR]_[AR]+1, LOAD VMA, ;FETCH FILLER U 3371, 3372,0111,0703,4174,4007,0700,0200,0004,0012 ; 6367 START READ U 3372, 3373,3771,0016,4365,5007,0700,0200,0000,0002 ; 6368 MEM READ, [T0]_MEM ;GET FILLER INTO AR U 3373, 3374,3771,0013,4370,4007,0700,0000,0000,0012 ; 6369 STATE_[EDIT-DST] ;PAGE FAILS BACKUP DST U 3374, 3375,2113,0507,7174,4007,0701,4400,0000,0242 ; 6370 WORK[SLEN]_[BR]-1, 3T ;SAVE # OF FILLERS U 3375, 3376,3441,1603,7174,4007,0700,0000,0000,0242 ; 6371 BDFILL: [AR]_[T0], WORK[SLEN] ;RESTORE FILL BYTE AND ; 6372 ; WARM UP RAM FILE ; 6373 [BR]_WORK[SLEN]+1, 3T, ;MORE FILLERS NEEDED? U 3376, 0640,0551,0705,7274,4007,0521,0000,0000,0242 ; 6374 SKIP DP0 U 0640, 2171,3440,0606,1174,4007,0700,0400,0000,1443 ; 6375 =000 AC[DLEN]_[BRX], J/DOCVT ;ALL DONE FIX FLAGS AND CONVERT ; 6376 =001 WORK[SLEN]_[BR], ;SAVE UPDATED LENGTH U 0641, 3465,3333,0005,7174,4007,0700,0410,0000,0242 ; 6377 CALL [PUTDST] ; AND STORE FILLER U 0647, 3377,2551,0705,1274,4007,0701,4000,0000,1443 ; 6378 =111 [BR]_AC[DLEN]-1 ;COUNT DOWN STRING LENGTH ; 6379 = U 3377, 3375,3440,0505,1174,4007,0700,0400,0000,1443 ; 6380 AC[DLEN]_[BR], J/BDFILL ;KEEP FILLING ; 6381 ; T10KL.MCR[7,3] 15:10 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 ; 6382 ;HERE TO STORE THE ANSWER ; 6383 ; 6384 DOCVT1: [ARX]_AC[1], ;GET LOW WORD U 3400, 3407,3771,0004,1276,6007,0701,0000,0000,1441 ; 6385 J/DOCVT2 ;ENTER LOOP FROM BOTTOM ; 6386 =010 ; 6387 BDECLP: [BR]_[BR]+1, ;COUNT DIGITS U 0562, 2226,0111,0705,4174,4007,0700,0010,0000,0000 ; 6388 CALL [BDSUB] ;KEEP SUBTRACTING 10**C(BRX) U 0566, 3401,3333,0003,7174,4007,0700,0400,0000,0247 ; 6389 =110 WORK[BDH]_[AR] ;SAVE BINARY ; 6390 = ; 6391 [AR]_[BR]+WORK[E1], ;OFFSET DIGIT U 3401, 0636,0551,0503,7274,4003,7701,0000,0000,0241 ; 6392 B DISP ;SEE WHICH MODE ; 6393 =1110 READ [AR], LOAD VMA, ;TRANSLATE, START READING TABLE U 0636, 2220,3333,0003,4174,4007,0700,0200,0004,0012 ; 6394 START READ, J/BDTBL ; GO GET ENTRY FROM TABLE U 0637, 0510,3333,0004,7174,4007,0700,0400,0000,0250 ; 6395 BDSET: WORK[BDL]_[ARX] ;SAVE LOW BINARY U 0510, 3465,3771,0013,4370,4007,0700,0010,0000,0012 ; 6396 =00* STATE_[EDIT-DST], CALL [PUTDST] U 0516, 3402,2551,0705,1274,4007,0701,4000,0000,1443 ; 6397 =11* [BR]_AC[DLEN]-1 ;UPDATE STRING LENGTH U 3402, 3403,3771,0003,7274,4007,0701,0000,0000,0247 ; 6398 [AR]_WORK[BDH] U 3403, 3404,3771,0004,7274,4007,0701,0000,0000,0250 ; 6399 [ARX]_WORK[BDL] U 3404, 2214,4553,0500,4374,4007,0321,0000,0004,0000 ; 6400 TL [BR], #/040000 ;ARE WE CONVERTING 1B0? U 2214, 3411,0111,0704,4174,4007,0700,0000,0000,0000 ; 6401 =0 [ARX]_[ARX]+1, J/BDCFLG ;YES--FIX THE NUMBER AND CLEAR FLAG U 2215, 3405,3440,0303,0174,4007,0700,0400,0000,0000 ; 6402 DOCVT3: AC_[AR] U 3405, 3406,3440,0404,1174,4007,0700,0400,0000,1441 ; 6403 AC[1]_[ARX] U 3406, 3407,3440,0505,1174,4007,0700,0400,0000,1443 ; 6404 AC[DLEN]_[BR] ;STORE BACK NEW STRING LENGTH U 3407, 2216,1111,0706,4174,4007,0531,4000,0000,0000 ; 6405 DOCVT2: [BRX]_[BRX]-1, 3T, SKIP DP18 U 2216, 0562,2441,0705,4174,4467,0701,4000,0003,0000 ; 6406 =0 [BR]_-1, SET FPD, 3T, J/BDECLP U 2217, 0260,4221,0013,4170,4467,0700,0000,0005,0000 ; 6407 END STATE, CLR FPD, J/SKIP ; 6408 ; 6409 ;HERE TO TRANSLATE 1 DIGIT ; 6410 =0 ; 6411 BDTBL: END STATE, ;DON'T CHANGE BYTE POINTER IF ; 6412 ; THIS PAGE FAILS U 2220, 3674,4221,0013,4170,4007,0700,0010,0000,0000 ; 6413 CALL [LOADAR] ;GO PUT WORD IN AR U 2221, 2222,4553,0600,4374,4007,0331,0000,0077,7777 ; 6414 TR [BRX], #/777777 ;LAST DIGIT U 2222, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6415 =0 [AR]_0, HOLD RIGHT, J/BDSET U 2223, 2224,4553,0600,4374,4007,0321,0000,0010,0000 ; 6416 TL [BRX], #/100000 ;AND NEGATIVE U 2224, 2225,3770,0303,4344,4007,0700,0000,0000,0000 ; 6417 =0 [AR]_[AR] SWAP ;LAST AND MINUS, USE LH U 2225, 0637,4221,0003,4174,0007,0700,0000,0000,0000 ; 6418 [AR]_0, HOLD RIGHT, J/BDSET ; 6419 U 3410, 1505,3771,0003,7274,4007,0701,0000,0000,0247 ; 6420 BDABT: [AR]_WORK[BDH], J/DAC ; 6421 ; 6422 BDCFLG: [BR]_[BR].AND.NOT.#, ;CLEAR FLAG THAT TELLS US ; 6423 #/040000, HOLD RIGHT, ; TO SUBTRACT 1 AND U 3411, 2215,5551,0505,4374,0007,0700,0000,0004,0000 ; 6424 J/DOCVT3 ; CONTINUE CONVERTING ; 6425 ; T10KL.MCR[7,3] 15:10 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 ; 6426 ;SUBROUTINE TO SUBRTACT A POWER OF 10 FROM AR!ARX ; 6427 ;CALL WITH: ; 6428 ; AR!ARX/ NUMBER TO BE CONVERTED ; 6429 ; BRX(RIGHT)/ POWER OF 10 ; 6430 ;RETURNS: ; 6431 ; 2 RESULT IS STILL POSITIVE ; 6432 ; 6 RESULT WOULD HAVE BEEN NEGATIVE (RESTORE DONE) ; 6433 =0 ; 6434 BDSUB: [T0]_[BRX]+#, 3T, WORK/DECLO, ;ADDRESS OF LOW WORD U 2226, 2230,0551,0616,4374,4007,0701,0000,0000,0344 ; 6435 J/BDSUB1 ;NO INTERRUPT U 2227, 2675,4443,0000,4174,4007,0700,0000,0000,0000 ; 6436 J/FIXPC ;INTERRUPT ; 6437 =0* ; 6438 BDSUB1: [T1]_[T0], LOAD VMA, ;PUT IN VMA, U 2230, 2236,3441,1617,4174,4007,0700,0210,0000,0010 ; 6439 CALL [CLARX0] ;FIX UP SIGN OF LOW WORD ; 6440 [ARX]_[ARX]-RAM, 3T, ;SUBTRACT U 2232, 2234,1551,0404,6274,4007,0561,4000,0000,0000 ; 6441 SKIP CRY1 ;SEE IF OVERFLOW U 2234, 2235,1111,0703,4174,4007,0700,4000,0000,0000 ; 6442 =0 [AR]_[AR]-1 ;PROCESS CARRY U 2235, 3412,0551,0616,4374,4007,0701,0000,0000,0373 ; 6443 [T0]_[BRX]+#, 3T, WORK/DECHI ;ADDRESS OF HIGH WORD U 3412, 3413,3333,0016,4174,4007,0700,0200,0000,0010 ; 6444 READ [T0], LOAD VMA ;PLACE IN VMA ; 6445 [AR]_[AR]-RAM, 4T, ;SUBTRACT U 3413, 2236,1551,0303,6274,4007,0522,4000,0000,0000 ; 6446 SKIP DP0 ;SEE IF IT FIT ; 6447 =0 ; 6448 CLARX0: CLEAR ARX0, ;IT FIT, KEEP LOW WORD + U 2236, 0002,4551,0404,4374,0004,1700,0000,0037,7777 ; 6449 RETURN [2] ; AND RETURN U 2237, 3414,0551,0303,6274,4007,0700,0000,0000,0000 ; 6450 [AR]_[AR]+RAM ;RESTORE U 3414, 3415,3333,0017,4174,4007,0700,0200,0000,0010 ; 6451 READ [T1], LOAD VMA U 3415, 2240,0551,0404,6274,4007,0561,0000,0000,0000 ; 6452 [ARX]_[ARX]+RAM, 3T, SKIP CRY1 ; 6453 =0 ; 6454 BDSUB2: CLEAR ARX0, ;KEEP LOW WORD + U 2240, 0006,4551,0404,4374,0004,1700,0000,0037,7777 ; 6455 RETURN [6] ;RETURN OVERFLOW ; 6456 [AR]_[AR]+1, ;ADD BACK THE CARRY U 2241, 2240,0111,0703,4174,4007,0700,0000,0000,0000 ; 6457 J/BDSUB2 ;COMPLETE SUBTRACT ; 6458 ; T10KL.MCR[7,3] 15:10 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 ; 6459 .TOC "EXTEND -- EDIT -- MAIN LOOP" ; 6460 ; 6461 ;HERE FOR EDIT INSTRUCTION ; 6462 ;CALL WITH: ; 6463 ; AR/ E0 ADDRESS OF FILL, FLOAT, AND MESSAGE TABLE ; 6464 ; BR/ E1 TRANSLATE TABLE ; 6465 ; ; 6466 3741: ; 6467 EDIT: VMA_[AR]+1, START READ, ;FIRST GET FILL BYTE U 3741, 3473,0111,0703,4170,4007,0700,0210,0004,0012 ; 6468 CALL [GTFILL] ;GO GET IT U 3751, 2242,3771,0006,0276,6007,0700,0000,0000,0000 ; 6469 3751: [BRX]_AC ;GET PATTERN POINTER ; 6470 =0** TL [BRX], #/047777, ;MAKE SURE SECTION 0 U 2242, 3556,4553,0600,4374,4007,0321,0010,0004,7777 ; 6471 CALL [BITCHK] ; .. U 2246, 3416,3443,0600,4174,4007,0700,0200,0004,0012 ; 6472 EDITLP: VMA_[BRX], START READ ;FETCH PATTERN WORD U 3416, 3417,4221,0013,4170,4007,0700,0000,0000,0000 ; 6473 END STATE ;NO SPECIAL PAGE FAIL ACTION U 3417, 2244,3770,0605,4344,4007,0700,0000,0000,0000 ; 6474 [BR]_[BRX] SWAP ;GET PBN IN BITS 20 & 21 ; 6475 =0 [BR]_[BR]*4, ; .. U 2244, 3674,0115,0505,4174,4007,0700,0010,0000,0000 ; 6476 CALL [LOADAR] ;GET PATTERN WORD U 2245, 0654,3333,0005,4174,4003,1701,0000,0000,0000 ; 6477 READ [BR], 3T, DISP/DP LEFT ; 6478 =1100 U 0654, 2250,3770,0303,4344,4007,0700,2000,0071,0007 ; 6479 [AR]_[AR] SWAP, SC_7, J/MOVPAT ;(0) BITS 0-8 U 0655, 2251,3770,0303,4344,4007,0700,0000,0000,0000 ; 6480 [AR]_[AR] SWAP, J/MSKPAT ;(1) BITS 9-17 U 0656, 2250,3447,0303,4174,4007,0700,2000,0071,0006 ; 6481 [AR]_[AR]*.5, SC_6, J/MOVPAT ;(2) BITS 18-27 U 0657, 3420,4551,0303,4374,4007,0700,0000,0000,0777 ; 6482 [AR]_[AR].AND.#, #/777, J/EDISP ;(3) BITS 28-35 ; 6483 =0 U 2250, 2250,3447,0303,4174,4007,0630,2000,0060,0000 ; 6484 MOVPAT: [AR]_[AR]*.5, STEP SC, J/MOVPAT ;SHIFT OVER U 2251, 3420,4551,0303,4374,4007,0700,0000,0000,0777 ; 6485 MSKPAT: [AR]_[AR].AND.#, #/777 ; 6486 ; T10KL.MCR[7,3] 15:10 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 ; 6487 ;HERE WITH PATTERN BYTE RIGHT ADJUSTED IN AR U 3420, 2252,3447,0305,4174,4007,0700,2000,0071,0002 ; 6488 EDISP: [BR]_[AR]*.5, SC_2 ;SHIFT OVER ; 6489 =0 U 2252, 2252,3447,0505,4174,4007,0630,2000,0060,0000 ; 6490 EDISP1: [BR]_[BR]*.5, STEP SC, J/EDISP1 U 2253, 0661,3333,0005,4174,4003,5701,0000,0000,0000 ; 6491 READ [BR], 3T, DISP/DP ;LOOK AT HIGH 3 BITS ; 6492 =0001 ;(0) OPERATE GROUP ; 6493 [AR]-#, #/5, 4T, ; SEE IF 0-4 U 0661, 2254,1553,0300,4374,4007,0532,4000,0000,0005 ; 6494 SKIP DP18, J/EDOPR ; 6495 ;(1) MESSAGE BYTE ; 6496 READ [BRX], SKIP DP0, U 0663, 2266,3333,0006,4174,4007,0520,0000,0000,0000 ; 6497 J/EDMSG ; 6498 ;(2) UNDEFINED U 0665, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6499 J/EDNOP ; 6500 ;(3) UNDEFINED U 0667, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6501 J/EDNOP ; 6502 ;(4) UNDEFINED U 0671, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6503 J/EDNOP ; 6504 ;(5) SKIP IF M SET ; 6505 TL [BRX], #/100000, U 0673, 2272,4553,0600,4374,4007,0321,0000,0010,0000 ; 6506 J/EDSKP ; 6507 ;(6) SKIP IF N SET ; 6508 TL [BRX], #/200000, U 0675, 2272,4553,0600,4374,4007,0321,0000,0020,0000 ; 6509 J/EDSKP ; 6510 ;(7) SKIP ALWAYS U 0677, 2272,4443,0000,4174,4007,0700,0000,0000,0000 ; 6511 J/EDSKP ; 6512 ; 6513 .TOC "EXTEND -- EDIT -- DECODE OPERATE GROUP" ; 6514 ; 6515 ;HERE FOR OPERATE GROUP. SKIP IF IN RANGE ; 6516 =0 U 2254, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6517 EDOPR: J/EDNOP ;OUT OF RANGE U 2255, 0710,3333,0003,4174,4003,5701,0000,0000,0000 ; 6518 READ [AR], 3T, DISP/DP ;DISPATCH ON TYPE U 0710, 3421,0111,0701,4174,4007,0700,0000,0000,0000 ; 6519 =1000 [PC]_[PC]+1, J/EDSTOP ;(0) STOP EDIT ; 6520 STATE_[EDIT-SRC], ;(1) SELECT SOURCE BYTE U 0711, 2231,3771,0013,4370,4007,0700,0000,0000,0011 ; 6521 J/EDSEL ; 6522 READ [BRX], SKIP DP0, ;(2) START SIGNIFICANCE U 0712, 0246,3333,0006,4174,4007,0520,0000,0000,0000 ; 6523 J/EDSSIG ; 6524 [BRX]_[BRX].AND.#, ;(3) FIELD SEPERATOR ; 6525 #/77777, HOLD RIGHT, U 0713, 3440,4551,0606,4374,0007,0700,0000,0007,7777 ; 6526 J/EDNOP U 0714, 0715,3771,0005,1276,6007,0701,0000,0000,1443 ; 6527 [BR]_AC[MARK] ;(4) EXCHANGE MARK AND DEST ; 6528 VMA_[BR], START READ, U 0715, 2260,3443,0500,4174,4007,0700,0200,0004,0012 ; 6529 J/EDEXMD ; 6530 = ; 6531 ; T10KL.MCR[7,3] 15:10 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 ; 6532 .TOC "EXTEND -- EDIT -- STOP EDIT" ; 6533 ; 6534 ;HERE TO END AN EDIT OPERATION. PC IS SET TO SKIP IF NORMAL END ; 6535 ; OR NON-SKIP IF ABORT ; 6536 EDSTOP: [BR]_.NOT.[BRX], ;AD WILL NOT DO D.AND.NOT.A U 3421, 3422,7441,0605,4174,4007,0700,1000,0071,0010 ; 6537 FE_S#, S#/10 ;PRESET FE U 3422, 3423,3441,0603,4174,4007,0701,1000,0043,0000 ; 6538 [AR]_[BRX], 3T, FE_FE+P ;MOVE POINTER, UPBATE PBN ; 6539 [BR].AND.#, 3T, ;WAS OLD NUMBER 3? U 3423, 2256,4553,0500,4374,4007,0321,0000,0003,0000 ; 6540 #/030000, SKIP ADL.EQ.0 ; .. ; 6541 =0 U 2256, 1515,3770,0303,4334,4017,0700,0000,0041,0000 ; 6542 EDSTP1: [AR]_P, J/STAC ;NO--ALL DONE ; 6543 [AR]_[AR]+1, ;YES--BUMP WORD # ; 6544 FE_FE.AND.S#, S#/0700, ;KEEP ONLY FLAG BITS U 2257, 2256,0111,0703,4174,4007,0700,1000,0051,0700 ; 6545 J/EDSTP1 ;GO STOP EDIT ; 6546 ; 6547 .TOC "EXTEND -- EDIT -- START SIGNIFICANCE" ; 6548 ; 6549 ;HERE WITH DST POINTER IN AR ; 6550 =110 U 0246, 3427,4443,0000,4174,4007,0700,0010,0000,0000 ; 6551 EDSSIG: CALL [EDFLT] ;STORE FLT CHAR U 0247, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6552 J/EDNOP ;DO NEXT PATTERN BYTE ; 6553 ; 6554 .TOC "EXTEND -- EDIT -- EXCHANGE MARK AND DESTINATION" ; 6555 ; 6556 ;HERE WITH ADDRESS OF MARK POINTER IN BR ; 6557 =0 ; 6558 EDEXMD: Q_AC[DSTP], ;GET DEST POINTER U 2260, 3674,3772,0000,1275,5007,0701,0010,0000,1444 ; 6559 CALL [LOADAR] ;GO PUT MARK IN AR U 2261, 3424,4443,0000,4174,4007,0700,0200,0003,0002 ; 6560 START WRITE ;START WRITE. SEPERATE STEP TO AVOID ; 6561 ; PROBLEM ON DPM5 U 3424, 3425,3223,0000,4174,4007,0701,0200,0000,0002 ; 6562 MEM WRITE, MEM_Q ;PUT OLD DEST IN MARK U 3425, 3440,3440,0303,1174,4007,0700,0400,0000,1444 ; 6563 AC[DSTP]_[AR], J/EDNOP ;PUT BACK DEST POINTER ; 6564 ; T10KL.MCR[7,3] 15:10 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 ; 6565 .TOC "EXTEND -- EDIT -- PROCESS SOURCE BYTE" ; 6566 ; 6567 =0* ; 6568 EDSEL: [AR]_AC[SRCP], ;PICK UP SRC POINTER U 2231, 2313,3771,0003,1276,6007,0701,0010,0000,1441 ; 6569 CALL [GETSRC] ;GET SOURCE BYTE U 2233, 0700,3447,0303,7174,4007,0700,0000,0000,0241 ; 6570 [AR]_[AR]*.5, WORK[E1] ;PREPARE TO TRANSLATE ; 6571 =000 [AR]_[AR]+WORK[E1], ;GO TRANSLATE BY HALFWORDS U 0700, 3460,0551,0303,7274,4007,0700,0010,0000,0241 ; 6572 2T, CALL [TRNAR] ; .. ; 6573 =010 ; 6574 EDFILL: READ [AR], ;(2) NO SIGNIFICANCE, GO FILL ; 6575 SKIP AD.EQ.0, ; SEE IF ANY FILLER U 0702, 2262,3333,0003,4174,4007,0621,0000,0000,0000 ; 6576 J/EDFIL1 ; GO TO IT ; 6577 STATE_[EDIT-SRC], ;(3) SIG START, DO FLOAT CHAR U 0703, 0606,3771,0013,4370,4007,0700,0000,0000,0011 ; 6578 J/EDSFLT U 0704, 3421,4443,0000,4174,4007,0700,0000,0000,0000 ; 6579 =100 J/EDSTOP ;(4) ABORT ; 6580 =101 ; 6581 EDSPUT: STATE_[EDIT-S+D], ;(5) NORMAL, STORE AT DST U 0705, 3465,3771,0013,4370,4007,0700,0010,0000,0013 ; 6582 CALL [PUTDST] ; .. ; 6583 =111 U 0707, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6584 J/EDNOP ;(7) BYTE STORED ; 6585 = ; 6586 ; 6587 ;HERE TO COMPLETE STORING FILL ; 6588 =0 U 2262, 0705,4443,0000,4174,4007,0700,0000,0000,0000 ; 6589 EDFIL1: J/EDSPUT ;STORE FILLER U 2263, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6590 J/EDNOP ;NO FILLER TO STORE ; 6591 ; 6592 ;HERE TO DO FLOAT BYTE ; 6593 =110 ; 6594 EDSFLT: WORK[FSIG]_[ARX], ;SAVE SIG CHAR U 0606, 3427,3333,0004,7174,4007,0700,0410,0000,0246 ; 6595 CALL [EDFLT] ;STORE FLOAT CHAR U 0607, 3426,3771,0003,7274,4007,0701,0000,0000,0246 ; 6596 [AR]_WORK[FSIG] ;RESTORE CHAR ; 6597 [AR]_[AR].AND.# CLR LH, ;JUST KEEP THE BYTE IN CASE ; 6598 #/77777, ; DEST BYTE .GT. 15 BITS U 3426, 0705,4251,0303,4374,4007,0700,0000,0007,7777 ; 6599 J/EDSPUT ;GO STORE CHAR WHICH STARTED THIS ALL ; 6600 ; T10KL.MCR[7,3] 15:10 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 ; 6601 ;SUBRUTINE TO PROCESS FLOAT CHAR ; 6602 ;CALL WITH: ; 6603 ; AR/ POINTER TO STORE @ MARK ; 6604 ;RETURN 7 WITH FLOAT STORED U 3427, 3430,3771,0005,1276,6007,0701,0000,0000,1443 ; 6605 EDFLT: [BR]_AC[MARK] ;ADDRESS OF MARK POINTER U 3430, 3431,3443,0500,4174,4007,0700,0200,0003,0012 ; 6606 VMA_[BR], START WRITE ;READY TO STORE U 3431, 3432,3771,0005,1276,6007,0701,0000,0000,1444 ; 6607 [BR]_AC[DSTP] ;GET DST POINTER U 3432, 2264,3333,0005,4175,5007,0701,0200,0000,0002 ; 6608 MEM WRITE, MEM_[BR] ;STORE POINTER ; 6609 =0 [AR]_0 XWD [2], ;FETCH FLOAT CHAR U 2264, 3434,4751,1203,4374,4007,0700,0010,0000,0002 ; 6610 CALL [EDBYTE] ;GET TBL BYTE ; 6611 MEM READ, [AR]_MEM, ;GET FLOAT CHAR U 2265, 0740,3771,0003,4365,5007,0621,0200,0000,0002 ; 6612 SKIP AD.EQ.0 ;SEE IF NULL ; 6613 =000 ; 6614 [FLG]_[FLG].OR.#, ;REMEMBER TO BACKUP DST POINTER ; 6615 STATE/EDIT-DST, ; WILL ALSO BACKUP SRC IF CALLED ; 6616 HOLD LEFT, ; FROM SELECT U 0740, 3465,3551,1313,4370,4007,0700,0010,0000,0012 ; 6617 CALL [PUTDST] ; STORE FLOAT ; 6618 =001 [BRX]_[BRX].OR.#, #/400000, U 0741, 3433,3551,0606,4374,0007,0700,0000,0040,0000 ; 6619 HOLD RIGHT, J/EDFLT1 ;NULL ; 6620 =110 [BRX]_[BRX].OR.#, #/400000, U 0746, 3433,3551,0606,4374,0007,0700,0000,0040,0000 ; 6621 HOLD RIGHT, J/EDFLT1 ;MARK STORED ; 6622 = ; 6623 EDFLT1: AC_[BRX], ;SAVE FLAGS SO WE DON'T ; 6624 ;TRY TO DO THIS AGAIN IF ; 6625 ;NEXT STORE PAGE FAILS U 3433, 0007,3440,0606,0174,4004,1700,0400,0000,0000 ; 6626 RETURN [7] ;AND RETURN ; 6627 ; 6628 .TOC "EXTEND -- EDIT -- MESSAGE BYTE" ; 6629 ; 6630 ;HERE WITH SKIP ON S ; 6631 =0 ; 6632 EDMSG: [AR]_WORK[FILL], ;GET FILL BYTE ; 6633 SKIP AD.EQ.0, 4T, ;SEE IF NULL U 2266, 0760,3771,0003,7274,4007,0622,0000,0000,0244 ; 6634 J/EDMSG1 ;GO STORE ; 6635 [AR]_[AR].AND.# CLR LH, ;GET OFFSET INTO TABLE U 2267, 2270,4251,0303,4374,4007,0700,0000,0000,0077 ; 6636 #/77 ; 6637 =0 [AR]_[AR]+1, WORK[E0], ;PLUS 1 U 2270, 3434,0111,0703,7174,4007,0700,0010,0000,0240 ; 6638 CALL [EDBYTE] ;GET TBL BYTE U 2271, 0760,3771,0003,4365,5007,0700,0200,0000,0002 ; 6639 MEM READ, [AR]_MEM ;FROM MEMORY ; 6640 =000 ; 6641 EDMSG1: STATE_[EDIT-DST], ;WHAT TO DO ON PAGE FAILS U 0760, 3465,3771,0013,4370,4007,0700,0010,0000,0012 ; 6642 CALL [PUTDST] ;STORE MESSAGE BYTE U 0761, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6643 =001 J/EDNOP ;NULL FILLER U 0766, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6644 =110 J/EDNOP ;NEXT BYTE ; 6645 = ; 6646 U 3434, 3435,0551,0303,7274,4007,0701,0000,0000,0240 ; 6647 EDBYTE: [AR]_[AR]+WORK[E0] ;GET OFFSET INTO TABLE ; 6648 VMA_[AR], START READ, ;START MEMORY CYCLE U 3435, 0001,3443,0300,4174,4004,1700,0200,0004,0012 ; 6649 RETURN [1] ;RETURN TO CALLER ; 6650 ; T10KL.MCR[7,3] 15:10 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 ; 6651 .TOC "EXTEND -- EDIT -- SKIP" ; 6652 ; 6653 =0 ; 6654 ;HERE TO SKIP ALWAYS ; 6655 EDSKP: [AR]_[AR].AND.#, #/77, ;JUST KEEP SKIP DISTANCE U 2272, 3436,4551,0303,4374,4007,0700,0000,0000,0077 ; 6656 J/EDSKP1 ;CONTINUE BELOW ; 6657 ;HERE IF WE DO NOT WANT TO SKIP U 2273, 3440,4443,0000,4174,4007,0700,0000,0000,0000 ; 6658 J/EDNOP U 3436, 3437,0115,0703,4174,4007,0700,0000,0000,0000 ; 6659 EDSKP1: [AR]_([AR]+1)*2 ;GIVE 1 EXTRA SKIP ; 6660 READ [AR], SCAD/A*2, ;PUT THE ADJUSTMENT ; 6661 SCADA/BYTE5, 3T, LOAD SC, ; THE SC U 3437, 3441,3333,0003,4174,4007,0701,2000,0007,0000 ; 6662 J/EDNOP1 ;JOIN MAIN LOOP ; 6663 ; 6664 ; 6665 .TOC "EXTEND -- EDIT -- ADVANCE PATTERN POINTER" ; 6666 U 3440, 3441,4443,0000,4174,4007,0700,2000,0071,0000 ; 6667 EDNOP: SC_0 ;NO SKIP U 3441, 3442,3333,0006,4174,4007,0701,1000,0073,0000 ; 6668 EDNOP1: READ [BRX], 3T, FE_P ;PUT PBN IN FE U 3442, 3443,4443,0000,4174,4007,0700,1000,0051,0030 ; 6669 FE_FE.AND.S#, S#/30 ;JUST BYTE # U 3443, 3444,4443,0000,4174,4007,0700,1000,0040,0000 ; 6670 FE_FE+SC ;ADD IN ANY SKIP DISTANCE U 3444, 3445,4443,0000,4174,4007,0700,1000,0041,0010 ; 6671 FE_FE+S#, S#/10 ;BUMP PBN ; 6672 [AR]_FE, ;GET NUMBER OF WORDS U 3445, 3446,3777,0003,4334,4057,0700,2000,0041,0000 ; 6673 LOAD SC ;PUT MSB WHERE IT CAN BE TESTED ; 6674 ; QUICKLY ; 6675 [AR]_[AR].AND.# CLR LH, ;KEEP ONLY 1 COPY U 3446, 2274,4251,0303,4374,4007,0630,0000,0000,0170 ; 6676 #/170, SKIP/SC ; .. ; 6677 =0 ; 6678 EDN1A: [AR]_[AR]*.5, SC_0, U 2274, 2276,3447,0303,4174,4007,0700,2000,0071,0000 ; 6679 J/EDNOP2 ;READY TO SHIFT OFF BYTE WITHIN ; 6680 ; WORD ; 6681 [AR]_[AR].OR.#, #/200, ;GET THE SIGN BIT OF THE FE ; 6682 HOLD LEFT, ; INTO THE AR. ONLY HAPPENS ON U 2275, 2274,3551,0303,4370,4007,0700,0000,0000,0200 ; 6683 J/EDN1A ; SKP 76 OR SKP 77 ; 6684 =0 U 2276, 2276,3447,0303,4174,4007,0630,2000,0060,0000 ; 6685 EDNOP2: [AR]_[AR]*.5, STEP SC, J/EDNOP2 ; 6686 [BRX]_[BRX]+[AR], ;UPDATE WORD ADDRESS U 2277, 3447,0111,0306,4170,4007,0700,0000,0000,0000 ; 6687 HOLD LEFT U 3447, 3450,3770,0303,4334,4017,0700,0000,0041,0000 ; 6688 [AR]_P ;PUT PBN BACK IN BRX ; 6689 [BRX]_[BRX].AND.#, ;JUST KEEP FLAGS ; 6690 #/700000, ; .. U 3450, 3451,4551,0606,4374,0007,0700,0000,0070,0000 ; 6691 HOLD RIGHT ; 6692 [AR]_[AR].AND.#, ;JUST KEEP PBN U 3451, 3452,4551,0303,4374,4007,0700,0000,0003,0000 ; 6693 #/030000 ; 6694 [BRX]_[BRX].OR.[AR], ;FINAL ANSWER U 3452, 3453,3111,0306,4174,0007,0700,0000,0000,0000 ; 6695 HOLD RIGHT U 3453, 2246,3440,0606,0174,4007,0700,0400,0000,0000 ; 6696 AC_[BRX], J/EDITLP ;DO NEXT FUNCTION ; 6697 ; T10KL.MCR[7,3] 15:10 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 ; 6698 .TOC "EXTEND SUBROUTINES -- FILL OUT DESTINATION" ; 6699 ; 6700 ;CALL WITH ; 6701 ; AC[DLEN]/ NEGATIVE NUMBER OF BYTES LEFT IN DEST ; 6702 ; FILL/ FILL BYTE ; 6703 ; RETURN [2] WITH FILLERS STORED ; 6704 ; ; 6705 ;NOTE: THIS ROUTINE NEED NOT TEST FOR INTERRUPTS ON EACH BYTE ; 6706 ; BECAUSE EVERY BYTE STORE DOES A MEMORY READ. ; 6707 ; ; 6708 =01* ; 6709 MOVF1: [AR]_WORK[FILL], 2T, ;GET FILL BYTE U 0322, 3465,3771,0003,7274,4007,0700,0010,0000,0244 ; 6710 CALL [PUTDST] ;PLACE IN DEST U 0326, 3454,3771,0003,1276,6007,0701,0000,0000,1443 ; 6711 [AR]_AC[DLEN] ;AMOUNT LEFT ; 6712 AC[DLEN]_[AR]+1, 3T, ;STORE UPDATED LEN U 3454, 2300,0113,0703,1174,4007,0521,0400,0000,1443 ; 6713 SKIP DP0 ; AND SEE IF DONE U 2300, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 6714 =0 RETURN [2] ;DONE U 2301, 0322,4443,0000,7174,4007,0700,0000,0000,0244 ; 6715 MOVFIL: WORK[FILL], J/MOVF1 ;DO ANOTHER BYTE ; 6716 ;ENTERING HERE SAVES 150NS ; 6717 ; PER BYTE BUT COSTS 300NS ; 6718 ; PER FIELD MOVED. I ASSUME (BUT DO ; 6719 ; NOT KNOW) THAT THIS SPEEDS ; 6720 ; THINGS UP. ; 6721 ; T10KL.MCR[7,3] 15:10 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 ; 6722 .TOC"EXTEND SUBROUTINES -- GET MODIFIED SOURCE BYTE" ; 6723 ; 6724 ;CALL WITH: ; 6725 ;SLEN = MINUS LENGTH OF STRING ; 6726 ;MSK = MASK FOR BYTE SIZE (1 IF BIT MUST BE ZERO) ; 6727 ;E1 = EFFECTIVE ADDRESS OF OPERATION WORD (SIGN EXTENDED IF OFFSET) ; 6728 ; [AR]_WORK[SLEN]+1, CALL [SRCMOD] ; 6729 ;RETURNS: ; 6730 ; 1 LENGTH EXHAUSTED ; 6731 ; 2 (EDIT ONLY) NO SIGNIFICANCE ; 6732 ; 3 (EDIT ONLY) SIGNIFICANCE START: ; 6733 ; 4 ABORT: OUT OF RANGE OR TRANSLATE FAILURE ; 6734 ; 5 NORMAL: BYTE IN AR ; 6735 ; ; 6736 ;DROM B SET AS FOLLOWS: ; 6737 ; 0 TRANSLATE ; 6738 ; 1 OFFSET ; 6739 ; 2 EDIT ; 6740 ; 4 CVTDBT ; 6741 =00 ; 6742 SRCMOD: WORK[SLEN]_[AR], ;PUT BACK SOURCE LENGTH ; 6743 SKIP DP0, ;SEE IF DONE U 1114, 2312,3333,0003,7174,4007,0520,0410,0000,0242 ; 6744 CALL [GSRC] ;GET A SOURCE BYTE U 1115, 0001,4221,0013,4170,4004,1700,0000,0000,0000 ; 6745 END STATE, RETURN [1] ;DONE U 1116, 0716,4443,0000,7174,4003,7700,0000,0000,0241 ; 6746 WORK[E1], B DISP ;OFFSET OR TRANSLATE? ; 6747 = U 0716, 3457,3447,0303,4174,4007,0700,0000,0000,0000 ; 6748 =1110 [AR]_[AR]*.5, J/XLATE ;TRANSLATE U 0717, 3455,3770,0303,7174,0007,0700,0000,0000,0241 ; 6749 FIX [AR] SIGN, WORK[E1] ;IF WE ARE PROCESSING FULL WORD ; 6750 ; BYTES, AND THEY ARE NEGATIVE, ; 6751 ; AND THE OFFSET IS POSITIVE THEN ; 6752 ; WE HAVE TO MAKE BITS -1 AND -2 ; 6753 ; COPIES OF THE SIGN BIT. U 3455, 3456,0551,0303,7274,4007,0700,0000,0000,0241 ; 6754 [AR]_[AR]+WORK[E1], 2T ;OFFSET ; 6755 [AR].AND.WORK[MSK], ;VALID BYTE? ; 6756 SKIP AD.EQ.0, 4T, ;SKIP IF OK U 3456, 0004,4553,0300,7274,4004,1622,0000,0000,0243 ; 6757 RETURN [4] ;RETURN 4 IF BAD, 5 IF OK ; 6758 ; T10KL.MCR[7,3] 15:10 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 ; 6759 .TOC "EXTEND SUBROUTINES -- TRANSLATE" ; 6760 ; 6761 ;HERE WITH BYTE IN AR 1-36. FETCH TABLE ENTRY. U 3457, 3460,0551,0303,7274,4007,0701,0000,0000,0241 ; 6762 XLATE: [AR]_[AR]+WORK[E1] ;COMPUTE ADDRESS ; 6763 TRNAR: READ [AR], LOAD VMA, ;FETCH WORD U 3460, 2302,3333,0003,4174,4007,0700,0200,0004,0012 ; 6764 START READ ; .. ; 6765 =0 [AR]_[AR]*2, ;GET BACK LSB ; 6766 ;BIT 36 IS NOT PRESERVED ; 6767 ; BY PAGE FAILS U 2302, 3675,3445,0303,4174,4007,0700,0010,0000,0000 ; 6768 CALL [LOADARX] ;PUT ENTRY IN ARX U 2303, 2304,4553,0300,4374,4007,0331,0000,0000,0001 ; 6769 TR [AR], #/1 ;WHICH HALF? ; 6770 =0 ; 6771 XLATE1: [AR]_[ARX], 3T, ;RH -- COPY TO AR ; 6772 DISP/DP LEFT, ;DISPATCH ON CODE U 2304, 0721,3441,0403,4174,4003,1701,0000,0000,0000 ; 6773 J/TRNFNC ;DISPATCH TABLE ; 6774 [ARX]_[ARX] SWAP, ;LH -- FLIP AROUND U 2305, 2304,3770,0404,4344,4007,0700,0000,0000,0000 ; 6775 J/XLATE1 ;START SHIFT ; 6776 ; T10KL.MCR[7,3] 15:10 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 ; 6777 ;HERE ON TRANSLATE OPERATION TO PERFORM FUNCTIONS REQUIRED BY ; 6778 ; THE 3 HIGH ORDER BITS OF THE TRANSLATE FUNCTION HALFWORD. WE ; 6779 ; DISPATCH ON FUNCTION AND HAVE: ; 6780 ; BRX/ FLAGS ; 6781 ; ARX/ TABLE ENTRY IN RH ; 6782 ; ; 6783 =0001 ; 6784 ;(0) NOP ; 6785 TRNFNC: READ [BRX], SKIP DP0, ;S FLAG ALREADY SET? U 0721, 2306,3333,0006,4174,4007,0520,0000,0000,0000 ; 6786 J/TRNRET ; .. ; 6787 ;(1) ABORT U 0723, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6788 RETURN [4] ; 6789 ;(2) CLEAR M FLAG ; 6790 [BRX]_[BRX].AND.NOT.#, ; 6791 #/100000, HOLD RIGHT, U 0725, 0721,5551,0606,4374,0007,0700,0000,0010,0000 ; 6792 J/TRNFNC ; 6793 ;(3) SET M FLAG ; 6794 [BRX]_[BRX].OR.#, ; 6795 #/100000, HOLD RIGHT, U 0727, 0721,3551,0606,4374,0007,0700,0000,0010,0000 ; 6796 J/TRNFNC ; 6797 ;(4) SET N FLAG ; 6798 TRNSIG: [BRX]_[BRX].OR.#, ; 6799 #/200000, HOLD RIGHT, U 0731, 0721,3551,0606,4374,0007,0700,0000,0020,0000 ; 6800 J/TRNFNC ; 6801 ;(5) SET N FLAG THEN ABORT ; 6802 [BRX]_[BRX].OR.#, ; 6803 #/200000, HOLD RIGHT, U 0733, 0004,3551,0606,4374,0004,1700,0000,0020,0000 ; 6804 RETURN [4] ; 6805 ;(6) CLEAR M THEN SET N ; 6806 [BRX]_[BRX].AND.NOT.#, ; 6807 #/100000, HOLD RIGHT, U 0735, 0731,5551,0606,4374,0007,0700,0000,0010,0000 ; 6808 J/TRNSIG ; 6809 ;(7) SET N AND M ; 6810 [BRX]_[BRX].OR.#, ; 6811 #/300000, HOLD RIGHT, U 0737, 0721,3551,0606,4374,0007,0700,0000,0030,0000 ; 6812 J/TRNFNC ; 6813 ; T10KL.MCR[7,3] 15:10 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 ; 6814 ;HERE TO COMPLETE A TRANSLATE ; 6815 ; 6816 =0 ; 6817 TRNRET: READ [ARX], SKIP DP18, ;S-FLAG IS ZERO ; 6818 B DISP, SKIP DP18, ;SEE IF EDIT OR SIG START U 2306, 0754,3333,0004,4174,4003,7530,0000,0000,0000 ; 6819 J/TRNSS ; .. ; 6820 TRNSS1: [AR]_[ARX].AND.# CLR LH, ;S IS SET, JUST RETURN BYTE U 2307, 0005,4251,0403,4374,4004,1700,0000,0007,7777 ; 6821 #/77777, RETURN [5] ; .. ; 6822 ; 6823 =1100 ; 6824 TRNSS: [AR]_AC[DLEN], ;NO SIG ON MOVE OR D2B U 0754, 0533,3771,0003,1276,6003,7701,0000,0000,1443 ; 6825 B DISP, J/TRNNS1 ;SEE IF D2B ; 6826 [BRX]_[BRX].OR.#, ;SIG START ON MOVE OR D2B ; 6827 #/400000, HOLD RIGHT, U 0755, 2307,3551,0606,4374,0007,0700,0000,0040,0000 ; 6828 J/TRNSS1 ;RETURN BYTE ; 6829 [AR]_WORK[FILL], ;EDIT--NO SIG RETURN FILL U 0756, 0002,3771,0003,7274,4004,1701,0000,0000,0244 ; 6830 RETURN [2] ; .. ; 6831 [AR]_AC[DSTP], ;EDIT--START OF SIG U 0757, 0003,3771,0003,1276,6004,1701,0000,0000,1444 ; 6832 RETURN [3] ; .. ; 6833 ; 6834 =1011 U 0533, 3461,1111,0703,4174,4007,0700,4000,0000,0000 ; 6835 TRNNS1: [AR]_[AR]-1, J/TRNNS2 ;COMPENSATE FOR IGNORING SRC ; 6836 [AR]_WORK[SLEN]+1, ;DEC TO BIN HAS NO DEST LENGTH U 0537, 1114,0551,0703,7274,4007,0701,0000,0000,0242 ; 6837 J/SRCMOD ;JUST UPDATE SRC LENTH ; 6838 TRNNS2: AC[DLEN]_[AR] TEST, ;PUT BACK DLEN AND U 3461, 2310,3770,0303,1174,4007,0520,0400,0000,1443 ; 6839 SKIP DP0 ; SEE WHICH IS NOW SHORTER ; 6840 =0 [AR]_WORK[SLEN], ;DEST IS SHORTER. DO NOT CHANGE U 2310, 1114,3771,0003,7274,4007,0701,0000,0000,0242 ; 6841 J/SRCMOD ; AMOUNT LEFT ; 6842 [AR]_WORK[SLEN]+1, ;GO LOOK AT NEXT BYTE U 2311, 1114,0551,0703,7274,4007,0701,0000,0000,0242 ; 6843 J/SRCMOD ; 6844 ; T10KL.MCR[7,3] 15:10 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 ; 6845 .TOC "EXTEND SUBROUTINES -- GET UNMODIFIED SOURCE BYTE" ; 6846 ; 6847 ;CALL: ; 6848 ; GSRC WITH SKIP ON SOURCE LENGTH ; 6849 ; GETSRC IF LENGHT IS OK ; 6850 ;WITH: ; 6851 ; AC1/ SOURCE BYTE POINTER ; 6852 ;RETURNS: ; 6853 ; 1 IF LENGTH RAN OUT ; 6854 ; 2 IF OK (BYTE IN AR) ; 6855 ; ; 6856 =0 ; 6857 GSRC: [AR]_AC[DLEN], ;LENGTH RAN OUT U 2312, 0001,3771,0003,1276,6004,1701,0000,0000,1443 ; 6858 RETURN [1] ;RESTORE AR AND RETURN U 2313, 3462,3771,0003,1276,6007,0701,0000,0000,1441 ; 6859 GETSRC: [AR]_AC[SRCP] ;GET SRC PTR ; 6860 IBP DP, IBP SCAD, ;UPDATE BYTE POINTER U 3462, 0231,3770,0305,4334,4016,7701,0000,0033,6000 ; 6861 SCAD DISP, 3T ;SEE IF OFLOW U 0231, 3464,3441,0503,4174,4007,0700,0000,0000,0000 ; 6862 =01 [AR]_[BR], J/GSRC1 ;NO OFLOW U 0233, 3463,3770,0503,4334,4017,0700,0000,0032,6000 ; 6863 SET P TO 36-S ;RESET P U 3463, 3464,0111,0703,4170,4007,0700,0000,0000,0000 ; 6864 [AR]_[AR]+1, HOLD LEFT ;BUMP Y ; 6865 U 3464, 2314,3440,0303,1174,4007,0700,0400,0000,1441 ; 6866 GSRC1: AC[SRCP]_[AR] ;STORE UPDATED POINTER ; 6867 =0 READ [AR], LOAD BYTE EA,;SETUP TO FIGURE OUT U 2314, 3072,3333,0003,4174,4217,0701,1010,0073,0500 ; 6868 FE_P, 3T, CALL [BYTEAS] ; EFFECTIVE ADDRESS ; 6869 READ [AR], ;LOOK AT POINTER ; 6870 BYTE DISP, ;SEE IF 7 BIT ; 6871 FE_FE.AND.S#, S#/0770, ;MASK OUT P FIELD U 2315, 0340,3333,0003,4174,4006,5701,1000,0051,0770 ; 6872 J/LDB1 ;GO GET THE BYTE ; 6873 ; T10KL.MCR[7,3] 15:10 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 ; 6874 .TOC "EXTEND SUBROUTINES -- STORE BYTE IN DESTINATION STRING" ; 6875 ; 6876 ;CALL WITH: ; 6877 ; AR/ BYTE TO STORE ; 6878 ; AC4/ DESTINATION BYTE POINTER ; 6879 ;RETURNS: ; 6880 ; AR & AC4/ UPDATED BYTE POINTER ; 6881 ; ARX/ BYTE TO STORE ; 6882 ; BR/ WORD TO MERGE WITH ; 6883 ; 6 ALWAYS ; 6884 ; U 3465, 2316,3441,0304,4174,4007,0700,0000,0000,0000 ; 6885 PUTDST: [ARX]_[AR] ;SAVE BYTE ; 6886 =0 [AR]_AC[DSTP], ;GET DEST POINTER U 2316, 3466,3771,0003,1276,6007,0701,0010,0000,1444 ; 6887 CALL [IDST] ;BUMP DEST POINTER ; 6888 AD/A+B, A/ARX, B/ARX, ;SHIFT 7-BIT BYTE TO ; 6889 SCAD/A, 3T, ; NATURAL PLACE, AND PUT U 2317, 2320,0113,0404,4174,4007,0701,1000,0077,0000 ; 6890 SCADA/BYTE5, LOAD FE ; INTO FE ; 6891 =0* READ [AR], BYTE DISP, ;GO PUT BYTE IN MEMORY U 2320, 0360,3333,0003,4174,4006,5701,0010,0000,0000 ; 6892 CALL [DPB1] ; .. U 2322, 0006,4443,0000,4174,4004,1700,0000,0000,0000 ; 6893 RETURN [6] ;ALL DONE ; 6894 ; T10KL.MCR[7,3] 15:10 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 ; 6895 .TOC "EXTEND SUBROUTINES -- UPDATE DEST STRING POINTERS" ; 6896 ; 6897 ; 6898 ;SUBROUTINE TO BUMP DST POINTERS ; 6899 ;CALL WITH: ; 6900 ; AR/ AC[DSTP] ; 6901 ; RETURN 1 WITH UPDATED POINTER STORED ; 6902 ; U 3466, 2321,3770,0305,4334,4016,7701,0000,0033,6000 ; 6903 IDST: IBP DP, IBP SCAD, SCAD DISP, 3T U 2321, 3470,3441,0503,4174,4217,0700,0000,0000,0600 ; 6904 =0* [AR]_[BR], LOAD DST EA, J/IDSTX U 2323, 3467,3770,0503,4334,4017,0700,0000,0032,6000 ; 6905 SET P TO 36-S U 3467, 3470,0111,0703,4170,4217,0700,0000,0000,0600 ; 6906 [AR]_[AR]+1, HOLD LEFT, LOAD DST EA ; 6907 IDSTX: AC[DSTP]_[AR], 3T, ;STORE PTR BACK U 3470, 0230,3440,0303,1174,4006,6701,1400,0073,1444 ; 6908 FE_P, DISP/EAMODE ;SAVE P FOR CMPDST ; 6909 =100* U 0230, 3075,0553,0300,2274,4007,0701,0200,0004,0712 ; 6910 DSTEA: VMA_[AR]+XR, START READ, PXCT BYTE DATA, 3T, J/BYTFET U 0232, 3075,3443,0300,4174,4007,0700,0200,0004,0712 ; 6911 VMA_[AR], START READ, PXCT BYTE DATA, J/BYTFET U 0234, 3471,0553,0300,2274,4007,0701,0200,0004,0612 ; 6912 VMA_[AR]+XR, START READ, PXCT/BIS-DST-EA, 3T, J/DSTIND U 0236, 3471,3443,0300,4174,4007,0700,0200,0004,0612 ; 6913 VMA_[AR], START READ, PXCT/BIS-DST-EA, J/DSTIND ; 6914 U 3471, 3472,3771,0003,4361,5217,0700,0200,0000,0602 ; 6915 DSTIND: MEM READ, [AR]_MEM, HOLD LEFT, LOAD DST EA U 3472, 0230,4443,0000,2174,4006,6700,0000,0000,0000 ; 6916 EA MODE DISP, J/DSTEA ; 6917 ; 6918 ; 6919 ;HERE TO TEST ILLEGAL BITS SET ; 6920 ;CALL WITH: ; 6921 ; SKIP IF ALL BITS LEGAL ; 6922 ; RETURN [4] IF OK, ELSE DO UUO ; 6923 ; ; 6924 3556: ;EXTEND OF 0 COMES HERE U 3556, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 6925 BITCHK: UUO U 3557, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 6926 3557: RETURN [4] ; 6927 ; 6928 ;HERE TO PUT FILL IN [AR] AND WORK[FILL] ; 6929 GTFILL: MEM READ, ;WAIT FOR DATA U 3473, 3474,3771,0003,4365,5007,0700,0200,0000,0002 ; 6930 [AR]_MEM ;PLACE IN AR ; 6931 WORK[FILL]_[AR], ;SAVE FOR LATER U 3474, 0010,3333,0003,7174,4004,1700,0400,0000,0244 ; 6932 RETURN [10] ;RETURN TO CALLER ; 6933 ; 6934 ;SUBROUTINE TO CLEAR FLAGS IN AR ; 6935 CLRFLG: [AR]_[AR].AND.#, ;CLEAR FLAGS IN AR ; 6936 #/000777, ; .. U 3475, 0001,4551,0303,4374,0004,1700,0000,0000,0777 ; 6937 HOLD RIGHT, RETURN [1] ; 6938 ; T10KL.MCR[7,3] 15:10 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 ; 6939 .TOC "EXTEND -- PAGE FAIL CLEANUP" ; 6940 ; 6941 ;BACK UP SOURCE POINTER ; 6942 =0 ; 6943 BACKS: [AR]_AC[SRCP], U 2324, 3510,3771,0003,1276,6007,0701,0010,0000,1441 ; 6944 CALL [BACKBP] ;BACKUP BP U 2325, 2676,3440,0505,1174,4007,0700,0400,0000,1441 ; 6945 AC[SRCP]_[BR], J/CLDISP ; 6946 U 3476, 3477,3771,0003,7274,4007,0701,0000,0000,0214 ; 6947 CMSDST: [AR]_WORK[SV.BRX] ;GET OLD SRC LEN U 3477, 2326,0113,0703,0174,4007,0701,0400,0000,0000 ; 6948 AC_[AR]+1, 3T ;BACK UP ; 6949 ;BACK UP DESTINATION POINTER ; 6950 =0 ; 6951 BACKD: [AR]_AC[DSTP], U 2326, 3510,3771,0003,1276,6007,0701,0010,0000,1444 ; 6952 CALL [BACKBP] U 2327, 2676,3440,0505,1174,4007,0700,0400,0000,1444 ; 6953 AC[DSTP]_[BR], J/CLDISP ; 6954 ; 6955 ;FAILURES DURING MOVE STRING (BACKUP LENGTHS) U 3500, 3501,1771,0003,7274,4007,0701,4000,0000,0242 ; 6956 STRPF: [AR]_-WORK[SLEN] ;GET AMOUNT LEFT ; 6957 STRPF0: [BR]_AC[DLEN], 4T, ;WHICH STRING IS LONGER? U 3501, 2330,3771,0005,1276,6007,0522,0000,0000,1443 ; 6958 SKIP DP0 ; 6959 =0 U 2330, 3503,3440,0303,1174,4007,0700,0400,0000,1443 ; 6960 STRPF1: AC[DLEN]_[AR], J/STPF1A ;SRC LONGER U 2331, 2332,3441,0304,4174,4007,0700,0000,0000,0000 ; 6961 [ARX]_[AR] ;COPY SRC LENGTH ; 6962 =0 [ARX]_[ARX].OR.WORK[SV.BRX], ;REBUILD FLAGS U 2332, 3705,3551,0404,7274,4007,0701,0010,0000,0214 ; 6963 CALL [AC_ARX] ;RESET AC]SLEN] U 2333, 3502,1111,0503,4174,4007,0700,4000,0000,0000 ; 6964 [AR]_[AR]-[BR] ;MAKE DEST LEN ; 6965 STRPF3: AC[DLEN]_[AR], ;PUT BACK DEST LEN U 3502, 2676,3440,0303,1174,4007,0700,0400,0000,1443 ; 6966 J/CLDISP ;DO NEXT CLEANUP ; 6967 U 3503, 3505,0111,0503,4174,4007,0700,0000,0000,0000 ; 6968 STPF1A: [AR]_[AR]+[BR], J/STRPF2 ; 6969 U 3504, 3505,1771,0003,7274,4007,0701,4000,0000,0242 ; 6970 PFDBIN: [AR]_-WORK[SLEN] ;RESTORE LENGTH U 3505, 3506,3551,0303,7274,4007,0701,0000,0000,0214 ; 6971 STRPF2: [AR]_[AR].OR.WORK[SV.BRX] U 3506, 2676,3440,0303,0174,4007,0700,0400,0000,0000 ; 6972 PFGAC0: AC_[AR], J/CLDISP ;PUT BACK SRC LEN AND FLAGS ; 6973 U 3507, 3501,7771,0003,7274,4007,0701,0000,0000,0242 ; 6974 STRPF4: [AR]_.NOT.WORK[SLEN], J/STRPF0 ; 6975 ; 6976 BACKBP: IBP DP, SCAD/A+B, SCADA/BYTE1, SCADB/SIZE, ;P_P+S U 3510, 0001,3770,0305,4334,4014,1700,0000,0043,6000 ; 6977 RETURN [1] ; 6978 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 191 ; INOUT.MIC[7,3] 13:32 7-JAN-1986 TRAPS ; 6979 .TOC "TRAPS" ; 6980 U 3511, 3512,3741,0104,4074,4007,0700,0000,0000,0000 ; 6981 TRAP: [ARX]_PC WITH FLAGS ;SAVE THE PC WHICH CAUSED THE ; 6982 WORK[TRAPPC]_[ARX], ; TRAP U 3512, 2334,3333,0004,7174,4007,0340,0400,0000,0425 ; 6983 SKIP KERNEL ;SEE IF UBR OR EBR ; 6984 =0 [AR]_[AR]+[UBR], ;ADDRESS OF INSTRUCTION ; 6985 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6986 ; THE CACHE. MAY PAGE FAIL BUT ; 6987 ; THAT IS OK ; 6988 START READ, ;START FETCH ; 6989 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2334, 3513,0111,1103,4364,4007,0700,0200,0024,1016 ; 6990 J/TRP1 ;JOIN COMMON CODE ; 6991 ; 6992 [AR]_[AR]+[EBR], ;WE COME HERE IN EXEC MODE ; 6993 MEM READ, ;WAIT FOR PREFETCH TO GET INTO ; 6994 ; THE CACHE. MAY PAGE FAIL BUT ; 6995 ; THAT IS OK ; 6996 START READ, ;START FETCH ; 6997 VMA PHYSICAL, ;ABSOLUTE ADDRESSING U 2335, 3513,0111,1003,4364,4007,0700,0200,0024,1016 ; 6998 J/TRP1 ;JOIN COMMON CODE ; 6999 ; 7000 TRP1: MEM READ, [HR]_MEM, ;PLACE INSTRUCTION IN HR U 3513, 3514,3771,0002,4365,5617,0700,0200,0000,0002 ; 7001 LOAD INST ;LOAD IR, XR, @ ; 7002 [HR].AND.#, ;TEST TO SEE IF THIS ; 7003 #/700000, 3T, ; IS A UUO U 3514, 2336,4553,0200,4374,4007,0321,0000,0070,0000 ; 7004 SKIP ADL.EQ.0 ; 7005 =0 CHANGE FLAGS, ;NOT A UUO ; 7006 HOLD USER/1, ;CLEAR TRAP FLAGS U 2336, 2712,4443,0000,4174,4467,0700,0000,0001,0000 ; 7007 J/XCT1 ;DO THE INSTRUCTION U 2337, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7008 UUO ;DO THE UUO ; 7009 ; T10KL.MCR[7,3] 15:10 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 ; 7010 .TOC "IO -- INTERNAL DEVICES" ; 7011 ; 7012 .DCODE D 0700, 1200,1700,4100 ; 7013 700: IOT,AC DISP, J/GRP700 D 0701, 1200,1720,4100 ; 7014 IOT,AC DISP, J/GRP701 ; 7015 .UCODE ; 7016 U 1701, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7017 1701: UUO ;DATAI APR, U 1702, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7018 1702: UUO ;BLKO APR, U 1703, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7019 1703: UUO ;DATAO APR, U 1706, 3517,3771,0005,4304,4007,0701,0000,0000,0000 ; 7020 1706: [BR]_APR, J/APRSZ ;CONSZ APR, U 1707, 3515,3771,0005,4304,4007,0701,0000,0000,0000 ; 7021 1707: [BR]_APR, J/APRSO ;CONSO APR, ; 7022 1710: U 1710, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7023 RDERA: UUO ;BLKI PI, U 1711, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7024 1711: UUO ;DATAI PI, U 1712, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7025 1712: UUO ;BLKO PI, U 1713, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7026 1713: UUO ;DATAO PI, U 1716, 0136,3441,1405,4174,4007,0700,0000,0000,0000 ; 7027 1716: [BR]_[PI], J/CONSZ ;CONSZ PI, U 1717, 3516,3441,1405,4174,4007,0700,0000,0000,0000 ; 7028 1717: [BR]_[PI], J/CONSO ;CONSO PI, ; 7029 ; 7030 1720: U 1720, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7031 GRP701: UUO ;BLKI PAG, U 1726, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7032 1726: UUO ;CONSZ PAG, U 1727, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7033 1727: UUO ;CONSO PAG, ; 7034 ; 7035 ;680I AND CACHE SWEEP STUFF U 1730, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7036 1730: UUO U 1731, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7037 1731: UUO U 1732, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7038 1732: UUO U 1733, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7039 1733: UUO U 1734, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7040 1734: UUO U 1735, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7041 1735: UUO U 1736, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7042 1736: UUO U 1737, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7043 1737: UUO ; 7044 U 3515, 3516,4251,0505,4374,4007,0700,0000,0000,7770 ; 7045 APRSO: [BR]_[BR].AND.# CLR LH, #/7770 U 3516, 0260,4113,0305,4174,4007,0330,0000,0000,0000 ; 7046 CONSO: [BR].AND.[AR], SKIP ADR.EQ.0, J/SKIP ; 7047 U 3517, 0136,4251,0505,4374,4007,0700,0000,0000,7770 ; 7048 APRSZ: [BR]_[BR].AND.# CLR LH, #/7770 ; 7049 136: ;STANDARD LOCATION FOR VERSION INFO, ; 7050 ;ANY UWORD THAT HAS A FREE # FIELD CAN ; 7051 ;BE USED. ; 7052 CONSZ: [BR].AND.[AR], SKIP ADR.EQ.0, J/DONE, ; 7053 MICROCODE RELEASE(MAJOR)/UCR, ;MAJOR VERSION # U 0136, 1400,4113,0305,4174,4007,0330,0000,0000,0020 ; 7054 MICROCODE RELEASE(MINOR)/UCR ;MINOR VERSION # (FOR ID ONLY) ; 7055 ; T10KL.MCR[7,3] 15:10 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 ; 7056 1700: ; 7057 GRP700: ; 7058 APRID: [BR]_#, U 1700, 0137,3771,0005,4374,4007,0700,0000,0001,0001 ; 7059 #/4097. ; 7060 137: [BR]_#, ; 7061 MICROCODE OPTION(INHCST)/OPT, ; 7062 MICROCODE OPTION(NOCST)/OPT, ; 7063 MICROCODE OPTION(NONSTD)/OPT, ; 7064 MICROCODE OPTION(UBABLT)/OPT, ; 7065 MICROCODE OPTION(KIPAGE)/OPT, ; 7066 MICROCODE OPTION(KLPAGE)/OPT, ; 7067 MICROCODE VERSION/UCV, ; 7068 HOLD RIGHT, U 0137, 3627,3771,0005,4374,0007,0700,0000,0045,0130 ; 7069 J/RTNREG ; 7070 ; 7071 1704: U 1704, 3520,3771,0005,7274,4007,0701,0000,0000,0230 ; 7072 WRAPR: [BR]_WORK[APR] ; 7073 [BR]_[BR].AND.NOT.#, ;CLEAR THE OLD PIA U 3520, 3521,5551,0505,4370,4007,0700,0000,0000,0007 ; 7074 #/7, HOLD LEFT ; .. U 3521, 3522,4551,0304,4374,4007,0700,0000,0000,0007 ; 7075 [ARX]_[AR].AND.#, #/7 ;PUT NEW PIA IN ARX U 3522, 3523,3111,0405,4174,4007,0700,0000,0000,0000 ; 7076 [BR]_[BR].OR.[ARX] ;PUT NEW PIA IN BR ; 7077 [ARX]_[AR].AND.#, ;MASK THE DATA BITS U 3523, 3524,4551,0304,4374,4007,0700,0000,0000,7760 ; 7078 #/007760 ; DOWN TO ENABLES U 3524, 2340,4553,0300,4374,4007,0331,0000,0010,0000 ; 7079 TR [AR], #/100000 ;WANT TO ENABLE ANY? U 2340, 2341,3111,0405,4174,4007,0700,0000,0000,0000 ; 7080 =0 [BR]_[BR].OR.[ARX] ;YES--SET THEM U 2341, 2342,4553,0300,4374,4007,0331,0000,0004,0000 ; 7081 TR [AR], #/40000 ;WANT TO DISABLE ANY? U 2342, 2343,5111,0405,4174,4007,0700,0000,0000,0000 ; 7082 =0 [BR]_[BR].AND.NOT.[ARX] ;YES--CLEAR THEM U 2343, 3525,3771,0006,4304,4007,0701,0000,0000,0000 ; 7083 [BRX]_APR ;GET CURRENT STATUS U 3525, 2344,4553,0300,4374,4007,0331,0000,0002,0000 ; 7084 TR [AR], #/20000 ;WANT TO CLEAR FLAGS? U 2344, 2345,5111,0406,4174,4007,0700,0000,0000,0000 ; 7085 =0 [BRX]_[BRX].AND.NOT.[ARX] ;YES--CLEAR BITS U 2345, 2346,4553,0300,4374,4007,0331,0000,0001,0000 ; 7086 TR [AR], #/10000 ;WANT TO SET ANY FLAGS? U 2346, 2347,3111,0406,4174,4007,0700,0000,0000,0000 ; 7087 =0 [BRX]_[BRX].OR.[ARX] ;YES--SET FLAGS U 2347, 2350,4553,0300,4374,4007,0331,0000,0003,0000 ; 7088 TR [AR], #/30000 ;ANY CHANGE AT ALL? ; 7089 =0 READ [BRX], ;YES--LOAD NEW FLAGS U 2350, 3530,3333,0006,4174,4007,0700,0000,0000,0000 ; 7090 J/WRAPR2 ;TURN OFF INTERRUPT 8080 U 2351, 3526,3333,0005,4174,4007,0700,0000,0000,0000 ; 7091 WRAPR1: READ [BR] ;FIX DPM TIMING BUG ; 7092 READ [BR], ;ENABLE CONDITIONS U 3526, 3527,3333,0005,4174,4257,0700,0000,0000,0000 ; 7093 SET APR ENABLES ; 7094 WORK[APR]_[BR], ;SAVE FOR RDAPR U 3527, 1400,3333,0005,7174,4007,0700,0400,0000,0230 ; 7095 J/DONE ;ALL DONE ; 7096 ; 7097 WRAPR2: READ [BRX], ;LOAD NEW FLAGS U 3530, 3531,3333,0006,4174,4237,0700,0000,0000,0000 ; 7098 SPEC/APR FLAGS ; .. ; 7099 [BRX]_[BRX].AND.NOT.#, ;CLEAR INTERRUPT THE 8080 U 3531, 3532,5551,0606,4370,4007,0700,0000,0000,2000 ; 7100 #/002000, HOLD LEFT ; FLAG ; 7101 READ [BRX], ;LOAD NEW FLAGS ; 7102 SPEC/APR FLAGS, ; .. U 3532, 2351,3333,0006,4174,4237,0700,0000,0000,0000 ; 7103 J/WRAPR1 ;LOOP BACK ; 7104 ; T10KL.MCR[7,3] 15:10 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 ; 7105 1705: U 1705, 3533,3771,0005,7274,4007,0701,0000,0000,0230 ; 7106 RDAPR: [BR]_WORK[APR] ; 7107 [BR]_[BR] SWAP, ;PUT ENABLES IN BOTH U 3533, 3534,3770,0505,4344,0007,0700,0000,0000,0000 ; 7108 HOLD RIGHT ; HALVES ; 7109 [BR]_[BR].AND.#, ;SAVE ENABLES IN LH ; 7110 #/7760, ; U 3534, 3535,4551,0505,4374,0007,0700,0000,0000,7760 ; 7111 HOLD RIGHT ; 7112 [BR]_[BR].AND.#, ;SAVE PIA IN RH ; 7113 #/7, U 3535, 3536,4551,0505,4370,4007,0700,0000,0000,0007 ; 7114 HOLD LEFT U 3536, 3537,3771,0004,4304,4007,0701,0000,0000,0000 ; 7115 [ARX]_APR ;READ THE APR FLAGS ; 7116 [ARX]_[ARX].AND.# CLR LH, ;MASK OUT JUNK U 3537, 3540,4251,0404,4374,4007,0700,0000,0000,7770 ; 7117 #/007770 ;KEEP 8 FLAGS ; 7118 [BR]_[BR].OR.[ARX], ;MASH THE STUFF TOGETHER U 3540, 3627,3111,0405,4174,4007,0700,0000,0000,0000 ; 7119 J/RTNREG ;RETURN ; 7120 ; T10KL.MCR[7,3] 15:10 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 ; 7121 .TOC "IO -- INTERNAL DEVICES -- EBR & UBR" ; 7122 ; 7123 ;UBR FORMAT: ; 7124 ;BITS 0 & 2 LOAD FLAGS (RETURNED ON RDUBR) ; 7125 ;BITS 3 - 5 ZERO ; 7126 ;BITS 6 -11 AC BLOCKS SELECTED - CUR,PREV ; 7127 ;BITS 16 -35 UPT PHYSICAL ADDRESS ; 7128 ; 7129 1723: ; 7130 WRUBR: VMA_[AR], ;LOAD E INTO VMA U 1723, 3541,3443,0300,4174,4007,0700,0200,0004,0012 ; 7131 START READ ;START MEMORY ; 7132 MEM READ, ;WAIT FOR DATA ; 7133 [AR]_MEM, 3T, ;PUT IT INTO THE AR U 3541, 2352,3771,0003,4365,5007,0521,0200,0000,0002 ; 7134 SKIP DP0 ;SEE IF WE WANT TO LOAD ; 7135 ; AC BLOCK NUMBERS ; 7136 ; 7137 =0 [AR]_[AR].AND.#, ;NO--CLEAR JUNK IN AR (ALL BUT LD UBR) ; 7138 #/100000, ; LEAVE ONLY LOAD UBR ; 7139 HOLD RIGHT, ; IN LEFT HALF ; 7140 SKIP ADL.EQ.0, 3T, ;SEE IF WE WANT TO LOAD UBR U 2352, 2354,4551,0303,4374,0007,0321,0000,0010,0000 ; 7141 J/ACBSET ;SKIP AROUND UBR LOAD ; 7142 ; 7143 ;HERE WHEN WE WANT TO LOAD AC BLOCK SELECTION ; 7144 [UBR]_[UBR].AND.#, ;MASK OUT THE UBR'S OLD ; 7145 #/770077, ; AC BLOCK NUMBERS U 2353, 3542,4551,1111,4374,0007,0700,0000,0077,0077 ; 7146 HOLD RIGHT ;IN THE LEFT HALF ; 7147 ; 7148 [AR]_[AR].AND.#, ;CLEAR ALL BUT NEW SELECTION ; 7149 #/507700, ;AND LOAD BITS U 3542, 3543,4551,0303,4374,0007,0700,0000,0050,7700 ; 7150 HOLD RIGHT ;IN AR LEFT ; 7151 ; 7152 [AR].AND.#, ;SEE IF WE WANT TO LOAD ; 7153 #/100000, 3T, ; UBR ALSO U 3543, 2354,4553,0300,4374,4007,0321,0000,0010,0000 ; 7154 SKIP ADL.EQ.0 ; 7155 ; 7156 ;HERE WITH AR LEFT = NEW AC BLOCKS OR ZERO, ; 7157 ;SKIP IF DON'T LOAD UBR ; 7158 =0 ; 7159 ACBSET: [BR]_[AR].AND.#, ;COPY UBR PAGE NUMBER ; 7160 #/3777, ; INTO BR U 2354, 3544,4551,0305,4374,4007,0700,0000,0000,3777 ; 7161 J/SETUBR ;GO LOAD UBR ; 7162 ; 7163 [UBR]_[UBR].OR.[AR], ;DO NOT LOAD UBR ; 7164 ; PUT AC BLOCK # IN ; 7165 HOLD RIGHT, ; THE LEFT HALF ; 7166 LOAD AC BLOCKS, ;LOAD HARDWARE U 2355, 1400,3111,0311,4174,0477,0700,0000,0000,0000 ; 7167 J/DONE ;ALL DONE ; 7168 ; T10KL.MCR[7,3] 15:10 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 ; 7169 ;HERE WITH AR LEFT AS BEFORE, AR RIGHT = MASKED PAGE # ; 7170 SETUBR: [BR]_0, ;CLEAR BR LEFT ; 7171 HOLD RIGHT, ;BR IS 0,,PAGE # U 3544, 2356,4221,0005,4174,0007,0700,2000,0071,0007 ; 7172 SC_7 ;PUT THE COUNT IN SC ; 7173 =0 ; 7174 STUBRS: [BR]_[BR]*2, ;SHIFT BR OVER ; 7175 STEP SC, ; 9 PLACES U 2356, 2356,3445,0505,4174,4007,0630,2000,0060,0000 ; 7176 J/STUBRS ;PRODUCING UPT ADDRESS ; 7177 ; 7178 [UBR]_[UBR].AND.#, ;MASK OUT OLD UBR ; 7179 #/777774, ; BITS IN U 2357, 3545,4551,1111,4374,0007,0700,0000,0077,7774 ; 7180 HOLD RIGHT ; LEFT HALF ; 7181 ; 7182 [UBR]_0, ;CLEAR RIGHT HALF U 3545, 3546,4221,0011,4170,4007,0700,0000,0000,0000 ; 7183 HOLD LEFT ;UBR IS FLGS+ACBLK+0,,0 ; 7184 U 3546, 3547,3111,0511,4174,4007,0700,0000,0000,0000 ; 7185 [UBR]_[UBR].OR.[BR] ;PUT IN PAGE TABLE ADDRESS ; 7186 ; 7187 [UBR]_[UBR].OR.[AR], ;PUT IN AC BLOCK # ; 7188 HOLD RIGHT, ; IN LEFT HALF ; 7189 LOAD AC BLOCKS, ;TELL HARDWARE U 3547, 2426,3111,0311,4174,0477,0700,0000,0000,0000 ; 7190 J/SWEEP ;CLEAR CACHE ; 7191 ; T10KL.MCR[7,3] 15:10 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 ; 7192 1724: U 1724, 2360,3445,0303,4174,4007,0700,2000,0071,0006 ; 7193 WREBR: [AR]_[AR]*2, SC_6 ;DO A SHIFT OVER 8 MORE ; 7194 =0 U 2360, 2360,3445,0303,4174,4007,0630,2000,0060,0000 ; 7195 WREBR1: [AR]_[AR]*2, STEP SC, J/WREBR1 ;SKIP WHEN = -1 ; 7196 .IF/FULL ;DO NOT ENABLE PAGING IN SMALL ; 7197 ; MICROCODE. U 2361, 3550,3771,0005,7274,4007,0701,0000,0000,0230 ; 7198 [BR]_WORK[APR] U 3550, 3551,4551,0505,4370,4007,0700,0000,0074,7777 ; 7199 [BR]_[BR].AND.#, #/747777, HOLD LEFT U 3551, 2362,4553,0300,4374,4007,0321,0000,0000,0020 ; 7200 [AR].AND.#, #/20, 3T, SKIP ADL.EQ.0 ;BIT 22 - TRAP ENABLE U 2362, 2363,3551,0505,4370,4007,0700,0000,0003,0000 ; 7201 =0 [BR]_[BR].OR.#, #/030000, HOLD LEFT ;SET - ALLOW TRAPS TO HAPPEN U 2363, 3552,3333,0005,4174,4257,0700,0000,0000,0000 ; 7202 READ [BR], SET APR ENABLES U 3552, 3553,3333,0005,7174,4007,0700,0400,0000,0230 ; 7203 WORK[APR]_[BR] ; 7204 .ENDIF/FULL ; 7205 ;;7206 .IF/KIPAGE ;;7207 .IF/KLPAGE ;;7208 [EBR]_[AR] ;NOTE: SHIFTED LEFT 9 BITS ;;7209 [EBR].AND.#, #/40, 3T, SKIP ADL.EQ.0 ;BIT 21 - KL PAGING ENABLE ;;7210 =0 [EBR]_[EBR].OR.#, #/400000, HOLD RIGHT, J/SWEEP ;YES, SET INTERNAL FLAG ;;7211 [EBR]_[EBR].AND.NOT.#, #/400000, HOLD RIGHT, J/SWEEP ;NO, CLR BIT 0 ;;7212 .ENDIF/KLPAGE ; 7213 .ENDIF/KIPAGE ; 7214 ;;7215 .IFNOT/KLPAGE ;MUST BE KI ONLY ;;7216 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7217 .ENDIF/KLPAGE ; 7218 ; 7219 .IFNOT/KIPAGE ;MUST BE KL ONLY U 3553, 2426,3441,0310,4174,4007,0700,0000,0000,0000 ; 7220 [EBR]_[AR],J/SWEEP ;SO INTERNAL FLAG ISN'T USED ; 7221 .ENDIF/KIPAGE ; 7222 ; 7223 1725: U 1725, 2364,3447,1005,4174,4007,0700,2000,0071,0006 ; 7224 RDEBR: [BR]_[EBR]*.5, SC_6 ; 7225 =0 U 2364, 2364,3447,0505,4174,4007,0630,2000,0060,0000 ; 7226 RDEBR1: [BR]_[BR]*.5, STEP SC, J/RDEBR1 U 2365, 3554,4551,0505,4374,4007,0700,0000,0006,3777 ; 7227 [BR]_[BR].AND.#, #/63777 ;MASK TO JUST EBR ; 7228 [BR]_0, ;CLEAR LEFT HALF ; 7229 HOLD RIGHT, ; BITS U 3554, 3627,4221,0005,4174,0007,0700,0000,0000,0000 ; 7230 J/RTNREG ;RETURN ANSWER ; 7231 ; T10KL.MCR[7,3] 15:10 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 ; 7232 1721: U 1721, 2366,4551,1105,4374,0007,0700,0000,0050,7700 ; 7233 RDUBR: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 2366, 2370,3447,1106,4174,4007,0700,2010,0071,0006 ; 7234 =0 [BRX]_[UBR]*.5, SC_6, CALL [GTPCW1] ;SET SC (9) START SHIFT,GET UBR ; 7235 VMA_[AR],START WRITE, ;START TO U 2367, 3630,3443,0300,4174,4007,0700,0200,0003,0012 ; 7236 J/RTNRG1 ;RETURN DATA ; 7237 ; 7238 U 3555, 3560,4551,1105,4374,0007,0700,0000,0050,7700 ; 7239 GETPCW: [BR]_[UBR].AND.#,#/507700,HOLD RIGHT ;GET LOAD BITS AND AC BLOCKS U 3560, 2370,3447,1106,4174,4007,0700,2000,0071,0006 ; 7240 [BRX]_[UBR]*.5, SC_6 ;SET SC (9) START SHIFT ; 7241 ; 7242 =0 U 2370, 2370,3447,0606,4174,4007,0630,2000,0060,0000 ; 7243 GTPCW1: [BRX]_[BRX]*.5, STEP SC, J/GTPCW1 ;SHIFT UBR ADDR TO PAGE # U 2371, 3561,4551,0606,4374,4007,0700,0000,0000,3777 ; 7244 [BRX]_[BRX].AND.#, #/3777 ;ONLY PAGE # U 3561, 0001,3441,0605,4170,4004,1700,0000,0000,0000 ; 7245 [BR]_[BRX], HOLD LEFT, RETURN [1] ;MOVE PAGE # TO RH OF RESULT ; 7246 ; T10KL.MCR[7,3] 15:10 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 ; 7247 .TOC "IO -- INTERNAL DEVICES -- KL PAGING REGISTERS" ; 7248 ; 7249 .DCODE D 0702, 1216,1760,4700 ; 7250 702: IOT,AC DISP, M, J/GRP702 ; 7251 .UCODE ; 7252 ; 7253 1760: ; 7254 GRP702: U 1760, 3627,3771,0005,7274,4007,0701,0000,0000,0215 ; 7255 RDSPB: [BR]_WORK[SBR], J/RTNREG ; 7256 1761: U 1761, 3627,3771,0005,7274,4007,0701,0000,0000,0216 ; 7257 RDCSB: [BR]_WORK[CBR], J/RTNREG ; 7258 1762: U 1762, 3627,3771,0005,7274,4007,0701,0000,0000,0220 ; 7259 RDPUR: [BR]_WORK[PUR], J/RTNREG ; 7260 1763: U 1763, 3627,3771,0005,7274,4007,0701,0000,0000,0217 ; 7261 RDCSTM: [BR]_WORK[CSTM], J/RTNREG ; 7262 1766: U 1766, 3627,3771,0005,7274,4007,0701,0000,0000,0227 ; 7263 RDHSB: [BR]_WORK[HSBADR], J/RTNREG U 1767, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7264 1767: UUO ; 7265 ; 7266 1770: U 1770, 3562,4443,0000,4174,4007,0703,0200,0006,0002 ; 7267 WRSPB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3562, 3563,3771,0003,4365,5007,0700,0200,0000,0002 ; 7268 MEM READ, [AR]_MEM U 3563, 1400,3333,0003,7174,4007,0700,0400,0000,0215 ; 7269 WORK[SBR]_[AR], J/DONE ; 7270 1771: U 1771, 3564,4443,0000,4174,4007,0703,0200,0006,0002 ; 7271 WRCSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3564, 3565,3771,0003,4365,5007,0700,0200,0000,0002 ; 7272 MEM READ, [AR]_MEM U 3565, 1400,3333,0003,7174,4007,0700,0400,0000,0216 ; 7273 WORK[CBR]_[AR], J/DONE ; 7274 1772: U 1772, 3566,4443,0000,4174,4007,0703,0200,0006,0002 ; 7275 WRPUR: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3566, 3567,3771,0003,4365,5007,0700,0200,0000,0002 ; 7276 MEM READ, [AR]_MEM U 3567, 1400,3333,0003,7174,4007,0700,0400,0000,0220 ; 7277 WORK[PUR]_[AR], J/DONE ; 7278 1773: U 1773, 3570,4443,0000,4174,4007,0703,0200,0006,0002 ; 7279 WRCSTM: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3570, 3571,3771,0003,4365,5007,0700,0200,0000,0002 ; 7280 MEM READ, [AR]_MEM U 3571, 1400,3333,0003,7174,4007,0700,0400,0000,0217 ; 7281 WORK[CSTM]_[AR], J/DONE ; 7282 1776: U 1776, 3572,4443,0000,4174,4007,0703,0200,0006,0002 ; 7283 WRHSB: START READ,WRITE TEST,5T ;WAIT FOR (?) WRITE-TEST PF U 3572, 3573,3771,0003,4365,5007,0700,0200,0000,0002 ; 7284 MEM READ, [AR]_MEM U 3573, 1400,3333,0003,7174,4007,0700,0400,0000,0227 ; 7285 WORK[HSBADR]_[AR], J/DONE ; 7286 U 1777, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7287 1777: UUO ; 7288 ; T10KL.MCR[7,3] 15:10 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 ; 7289 .TOC "IO -- INTERNAL DEVICES -- TIMER CONTROL" ; 7290 ; 7291 ; 7292 ;BEGIN [123] ; 7293 TICK: [AR]_WORK[TIME1], ;GET LOW WORD U 3574, 3575,3771,0003,7274,4117,0701,0000,0000,0301 ; 7294 SPEC/CLRCLK ;CLEAR CLOCK FLAG ; 7295 ;END [123] U 3575, 3576,4751,1205,4374,4007,0700,0000,0001,0000 ; 7296 TOCK: [BR]_0 XWD [10000] ;2^12 UNITS PER MS U 3576, 3577,0111,0503,4174,4007,0700,0000,0000,0000 ; 7297 [AR]_[AR]+[BR] ;INCREMENT THE TIMER U 3577, 2372,3770,0303,4174,0007,0520,0000,0000,0000 ; 7298 FIX [AR] SIGN, SKIP DP0 ;SEE IF IT OVERFLOWED ; 7299 =0 ; 7300 TOCK1: WORK[TIME1]_[AR], ;STORE THE NEW TIME U 2372, 3600,3333,0003,7174,4007,0700,0400,0000,0301 ; 7301 J/TOCK2 ;SKIP OVER THE OVERFLOW CODE U 2373, 2374,3771,0003,7274,4007,0701,0000,0000,0300 ; 7302 [AR]_WORK[TIME0] ;GET HIGH WORD ; 7303 =0* [AR]_[AR]+1, ;BUMP IT U 2374, 3606,0111,0703,4174,4007,0700,0010,0000,0000 ; 7304 CALL [WRTIM1] ;STORE BACK IN RAM ; 7305 [AR]_0, ;CAUSE LOW WORD WORD U 2376, 2372,4221,0003,4174,4007,0700,0000,0000,0000 ; 7306 J/TOCK1 ; TO GET STORED U 3600, 3601,3771,0003,7274,4007,0701,0000,0000,0303 ; 7307 TOCK2: [AR]_WORK[TTG] ; 7308 [AR]_[AR]-[BR], ;COUNT DOWN TIME TO GO U 3601, 2400,1111,0503,4174,4007,0421,4000,0000,0000 ; 7309 SKIP AD.LE.0 ;SEE IF IT TIMED OUT ; 7310 =0 ; 7311 TOCK3: WORK[TTG]_[AR], ;SAVE NEW TIME TO GO U 2400, 0002,3333,0003,7174,4004,1700,0400,0000,0303 ; 7312 RETURN [2] ;ALL DONE U 2401, 3602,3771,0003,7274,4007,0701,0000,0000,0302 ; 7313 [AR]_WORK[PERIOD] U 3602, 3603,3771,0005,4304,4007,0701,0000,0000,0000 ; 7314 [BR]_APR ;GET CURRENT FLAGS U 3603, 3604,3551,0505,4374,4007,0700,0000,0000,0040 ; 7315 [BR]_[BR].OR.#, #/40 ;SET TIMER INTERRUPT FLAG ; 7316 READ [BR], ;PLACE ON DP AND ; 7317 SPEC/APR FLAGS, ; LOAD INTO HARDWARE U 3604, 2400,3333,0005,4174,4237,0700,0000,0000,0000 ; 7318 J/TOCK3 ;ALL DONE ; 7319 ; T10KL.MCR[7,3] 15:10 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 ; 7320 .TOC "IO -- INTERNAL DEVICES -- WRTIME & RDTIME" ; 7321 ; 7322 1774: U 1774, 3605,4443,0000,4174,4007,0700,0200,0004,0002 ; 7323 WRTIME: START READ ;FETCH WORD AT E ; 7324 MEM READ, ;WAIT FOR DATA U 3605, 1120,3771,0003,4365,5007,0700,0200,0000,0002 ; 7325 [AR]_MEM ;PUT WORD IN AR ; 7326 =00 VMA_[HR]+1, ;BUMP E ; 7327 START READ, ;START MEMORY U 1120, 3675,0111,0702,4170,4007,0700,0210,0004,0012 ; 7328 CALL [LOADARX] ;PUT DATA IN ARX ; 7329 [ARX]_[ARX].AND.#, ;CLEAR PART HELD IN ; 7330 #/770000, ; HARDWARE COUNTER U 1121, 3606,4551,0404,4370,4007,0700,0010,0077,0000 ; 7331 HOLD LEFT, CALL [WRTIM1] ; 7332 =11 WORK[TIME1]_[ARX], ;IN WORK SPACE U 1123, 1400,3333,0004,7174,4007,0700,0400,0000,0301 ; 7333 J/DONE ;NEXT INSTRUCTION ; 7334 = ; 7335 WRTIM1: WORK[TIME0]_[AR], ;SAVE THE NEW VALUE U 3606, 0002,3333,0003,7174,4004,1700,0400,0000,0300 ; 7336 RETURN [2] ; 7337 ; 7338 1764: U 1764, 3607,4451,1205,4324,4007,0700,0000,0000,0000 ; 7339 RDTIME: [BR]_TIME ;READ THE TIME U 3607, 3610,4451,1204,4324,4007,0700,0000,0000,0000 ; 7340 [ARX]_TIME ; AGAIN U 3610, 3611,4451,1206,4324,4007,0700,0000,0000,0000 ; 7341 [BRX]_TIME ; AGAIN ; 7342 [BR].XOR.[ARX], ;SEE IF STABLE U 3611, 2402,6113,0405,4174,4007,0621,0000,0000,0000 ; 7343 SKIP AD.EQ.0 ; .. U 2402, 2403,3441,0604,4174,4007,0700,0000,0000,0000 ; 7344 =0 [ARX]_[BRX] ;NO THEN NEXT TRY MUST BE OK U 2403, 3612,3771,0005,7274,4007,0701,0000,0000,0300 ; 7345 [BR]_WORK[TIME0] ; 7346 [ARX]_[ARX]+WORK[TIME1], ;COMBINE PARTS U 3612, 1124,0551,0404,7274,4007,0671,0000,0000,0301 ; 7347 SKIP/-1 MS ;SEE IF OVERFLOW HAPPENED ; 7348 =00 SPEC/CLRCLK, ;CLEAR CLOCK FLAG ; 7349 [AR]_WORK[TIME1], 2T, ;GET LOW WORD FOR TOCK U 1124, 3575,3771,0003,7274,4117,0700,0010,0000,0301 ; 7350 CALL [TOCK] ;UPDATE CLOCKS ; 7351 READ [HR], LOAD VMA, ;DID NOT OVERFLOW U 1125, 3613,3333,0002,4174,4007,0700,0200,0003,0012 ; 7352 START WRITE, J/RDTIM1 ;STORE ANSWER U 1126, 1764,4443,0000,4174,4007,0700,0000,0000,0000 ; 7353 J/RDTIME ;TRY AGAIN ; 7354 = U 3613, 3614,3333,0005,4175,5007,0701,0200,0000,0002 ; 7355 RDTIM1: MEM WRITE, MEM_[BR] U 3614, 3615,0111,0702,4170,4007,0700,0200,0003,0012 ; 7356 VMA_[HR]+1, LOAD VMA, START WRITE U 3615, 1400,3333,0004,4175,5007,0701,0200,0000,0002 ; 7357 MEM WRITE, MEM_[ARX], J/DONE ; 7358 ; T10KL.MCR[7,3] 15:10 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 ; 7359 .TOC "IO -- INTERNAL DEVICES -- WRINT & RDINT" ; 7360 ; 7361 ; 7362 1775: U 1775, 3616,4443,0000,4174,4007,0700,0200,0004,0002 ; 7363 WRINT: START READ U 3616, 3617,3771,0003,4365,5007,0700,0200,0000,0002 ; 7364 MEM READ, [AR]_MEM U 3617, 3620,3333,0003,7174,4007,0700,0400,0000,0302 ; 7365 WORK[PERIOD]_[AR] ; 7366 WORK[TTG]_[AR], U 3620, 1400,3333,0003,7174,4007,0700,0400,0000,0303 ; 7367 J/DONE ; 7368 ; 7369 1765: ; 7370 RDINT: [BR]_WORK[PERIOD], U 1765, 3627,3771,0005,7274,4007,0701,0000,0000,0302 ; 7371 J/RTNREG ; 7372 ; T10KL.MCR[7,3] 15:10 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 ; 7373 .TOC "IO -- INTERNAL DEVICES -- RDPI & WRPI" ; 7374 ; 7375 1715: U 1715, 3627,3441,1405,4174,4007,0700,0000,0000,0000 ; 7376 RDPI: [BR]_[PI], J/RTNREG ; 7377 ; 7378 1714: U 1714, 2404,4553,0300,4374,4007,0331,0000,0001,0000 ; 7379 WRPI: TR [AR], PI.CLR/1 U 2404, 2405,4221,0014,4174,4007,0700,0000,0000,0000 ; 7380 =0 [PI]_0 U 2405, 2406,4553,0300,4374,4007,0331,0000,0074,0000 ; 7381 TR [AR], PI.MBZ/17 U 2406, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7382 =0 UUO U 2407, 3621,4551,0305,4374,4007,0700,0000,0000,0177 ; 7383 [BR]_[AR].AND.#,#/177 U 3621, 3622,3770,0505,4344,0007,0700,0000,0000,0000 ; 7384 [BR]_[BR] SWAP, HOLD RIGHT U 3622, 2410,4553,0300,4374,4007,0331,0000,0002,0000 ; 7385 TR [AR], PI.DIR/1 U 2410, 2411,5111,0514,4174,0007,0700,0000,0000,0000 ; 7386 =0 [PI]_[PI].AND.NOT.[BR], HOLD RIGHT U 2411, 2412,4553,0300,4374,4007,0331,0000,0000,4000 ; 7387 TR [AR], PI.REQ/1 U 2412, 2413,3111,0514,4174,0007,0700,0000,0000,0000 ; 7388 =0 [PI]_[PI].OR.[BR], HOLD RIGHT U 2413, 2414,4553,0300,4374,4007,0331,0000,0000,0200 ; 7389 TR [AR], PI.TSN/1 U 2414, 2415,3551,1414,4370,4007,0700,0000,0000,0200 ; 7390 =0 [PI]_[PI].OR.#,PI.ON/1, HOLD LEFT U 2415, 2416,4553,0300,4374,4007,0331,0000,0000,0400 ; 7391 TR [AR], PI.TSF/1 U 2416, 2417,5551,1414,4370,4007,0700,0000,0000,0200 ; 7392 =0 [PI]_[PI].AND.NOT.#,PI.ON/1, HOLD LEFT U 2417, 2420,4553,0300,4374,4007,0331,0000,0000,2000 ; 7393 TR [AR], PI.TCN/1 U 2420, 2421,3111,0514,4170,4007,0700,0000,0000,0000 ; 7394 =0 [PI]_[PI].OR.[BR], HOLD LEFT U 2421, 0404,4553,0300,4374,4007,0331,0000,0000,1000 ; 7395 TR [AR], PI.TCF/1 U 0404, 0405,5111,0514,4170,4007,0700,0000,0000,0000 ; 7396 =0**0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT U 0405, 3624,3770,1416,4344,4007,0700,0010,0000,0000 ; 7397 PIEXIT: CALL LOAD PI ; 7398 =1**1 U 0415, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7399 DONE ; 7400 = ; 7401 ; 7402 ;SUBROUTINE TO LOAD PI HARDWARE ; 7403 ;CALL WITH: ; 7404 ; CALL LOAD PI ; 7405 ;RETURNS 10 WITH PI HARDWARE LOADED ; 7406 ; U 3623, 3624,3770,1416,4344,4007,0700,0000,0000,0000 ; 7407 LOADPI: [T0]_[PI] SWAP ;PUT ACTIVE CHANS IN LH U 3624, 3625,2441,0716,4170,4007,0700,4000,0000,0000 ; 7408 LDPI2: [T0]_-1, HOLD LEFT ;DONT MASK RH U 3625, 3626,4111,1416,4174,4007,0700,0000,0000,0000 ; 7409 [T0]_[T0].AND.[PI] ;ONLY REQUEST CHANS THAT ARE ON ; 7410 .NOT.[T0], LOAD PI, ;RELOAD HARDWARE U 3626, 0010,7443,1600,4174,4434,1700,0000,0000,0000 ; 7411 RETURN [10] ;RETURN TO CALLER ; 7412 ; T10KL.MCR[7,3] 15:10 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 ; 7413 .TOC "IO -- INTERNAL DEVICES -- SUBROUTINES" ; 7414 ; 7415 ; 7416 ;HERE WITH SOMETHING IN BR STORE IT @AR U 3627, 3630,3443,0300,4174,4007,0700,0200,0003,0012 ; 7417 RTNREG: VMA_[AR], START WRITE U 3630, 1400,3333,0005,4175,5007,0701,0200,0000,0002 ; 7418 RTNRG1: MEM WRITE, MEM_[BR], J/DONE ; 7419 ; T10KL.MCR[7,3] 15:10 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 ; 7420 ;CACHE SWEEP ; 7421 ; 7422 1722: ; 7423 CLRPT: VMA_[AR], ;PUT CORRECT ADDRESS IN VMA U 1722, 3631,3443,0300,4174,4147,0700,0200,0000,0010 ; 7424 LOAD PAGE TABLE ;GET SET TO WRITE PAGE TABLE U 3631, 2422,4221,0003,4174,4007,0700,0000,0000,0000 ; 7425 [AR]_0 ;CLEAR ENTRY ; 7426 =0 [AR]_#,#/377377, ;INITIAL VMA VALUE U 2422, 3635,3771,0003,4374,4007,0700,0010,0037,7377 ; 7427 CALL [SSWEEP] ;LOAD THE SC ; 7428 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2423, 3632,3771,0005,4374,4247,0700,0000,0000,1001 ; 7429 CLRCSH ;START TO CLEAR CACHE U 3632, 2424,3333,0003,4174,4247,0700,0000,0000,1000 ; 7430 READ [AR], CLRCSH ;FIRST THING TO CLEAR ; 7431 =0 ; 7432 CLRPTL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7433 CLRCSH, ;SWEEP ON NEXT STEP ; 7434 STEP SC, ;SKIP IF WE ARE DONE U 2424, 2424,1111,0503,4174,4247,0630,6000,0060,1000 ; 7435 J/CLRPTL ;LOOP FOR ALL ENTRIES U 2425, 2431,3333,0003,4174,4007,0700,0000,0000,0000 ; 7436 READ [AR], J/ZAPPTA ;CLEAR LAST ENTRY ; 7437 ; 7438 =0 ; 7439 SWEEP: [AR]_#,#/377377, ;INITIAL VMA VALUE U 2426, 3635,3771,0003,4374,4007,0700,0010,0037,7377 ; 7440 CALL [SSWEEP] ;LOAD NUMBER OF STEPS INTO SC ; 7441 [BR]_#, #/1001, ;CONSTANT TO KEEP ADDING U 2427, 3633,3771,0005,4374,4347,0700,0000,0000,1001 ; 7442 SWEEP ;START SWEEP U 3633, 2430,3333,0003,4174,4347,0700,0000,0000,1000 ; 7443 READ [AR], SWEEP ;FIRST THING TO CLEAR ; 7444 =0 ; 7445 SWEEPL: [AR]_[AR]-[BR], ;UPDATE AR (AND PUT ON DP) ; 7446 SWEEP, ;SWEEP ON NEXT STEP ; 7447 STEP SC, ;SKIP IF WE ARE DONE U 2430, 2430,1111,0503,4174,4347,0630,6000,0060,1000 ; 7448 J/SWEEPL ;LOOP FOR ALL ENTRIES ; 7449 ;CLEAR LAST ENTRY AND U 2431, 3634,4223,0000,7174,4007,0700,0400,0000,0424 ; 7450 ZAPPTA: WORK[PTA.U]_0 ; FORGET PAGE TABLE ADDRESS ; 7451 WORK[PTA.E]_0, ;FORGET PAGE TABLE ADDRESS U 3634, 1400,4223,0000,7174,4007,0700,0400,0000,0423 ; 7452 J/DONE ;ALL DONE ; 7453 ; 7454 SSWEEP: SC_S#, S#/375, ;NUMBER OF STEPS U 3635, 0001,4443,0000,4174,4004,1700,2000,0071,0375 ; 7455 RETURN [1] ;RETURN ; 7456 ; T10KL.MCR[7,3] 15:10 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 ; 7457 ;WE COME HERE EITHER FROM NEXT INSTRUCTION DISPATCH OR PAGE FAIL ; 7458 ; LOGIC. IN ALL CASES, THE CURRENT INSTRUCTION IS CORRECTLY SETUP ; 7459 ; TO RESTART PROPERLY. ; 7460 ; 7461 ;FIRST SET THE CORRECT PI IN PROGRESS BIT ; 7462 ; [FLG]_[FLG].OR.#,FLG.PI/1, HOLD RIGHT, ; 7463 ; J/PI ;SET PI CYCLE AND PROCESS PI ; 7464 =1000 ; 7465 PI: AD/D, DBUS/PI NEW, ;LOOK AT NEW LEVEL ; 7466 DISP/DP LEFT, 3T, ;DISPATCH ON IT U 0770, 0770,3773,0000,4074,4003,1701,0000,0000,0000 ; 7467 J/PI ;GO TO 1 OF NEXT 7 PLACES U 0771, 3636,3551,1414,4370,4007,0700,0000,0004,0000 ; 7468 =1001 [PI]_[PI].OR.#, #/040000, HOLD LEFT, J/PIP1 U 0772, 3637,3551,1414,4370,4007,0700,0000,0002,0000 ; 7469 =1010 [PI]_[PI].OR.#, #/020000, HOLD LEFT, J/PIP2 U 0773, 3640,3551,1414,4370,4007,0700,0000,0001,0000 ; 7470 =1011 [PI]_[PI].OR.#, #/010000, HOLD LEFT, J/PIP3 U 0774, 3641,3551,1414,4370,4007,0700,0000,0000,4000 ; 7471 =1100 [PI]_[PI].OR.#, #/004000, HOLD LEFT, J/PIP4 U 0775, 3642,3551,1414,4370,4007,0700,0000,0000,2000 ; 7472 =1101 [PI]_[PI].OR.#, #/002000, HOLD LEFT, J/PIP5 U 0776, 3643,3551,1414,4370,4007,0700,0000,0000,1000 ; 7473 =1110 [PI]_[PI].OR.#, #/001000, HOLD LEFT, J/PIP6 U 0777, 3644,3551,1414,4370,4007,0700,0000,0000,0400 ; 7474 =1111 [PI]_[PI].OR.#, #/000400, HOLD LEFT, J/PIP7 U 3636, 3645,4751,1206,4374,4007,0700,0000,0000,0001 ; 7475 PIP1: [BRX]_0 XWD [1], J/PI10 ;REMEMBER WE ARE AT LEVEL 1 U 3637, 3645,4751,1206,4374,4007,0700,0000,0000,0002 ; 7476 PIP2: [BRX]_0 XWD [2], J/PI10 ;REMEMBER WE ARE AT LEVEL 2 U 3640, 3645,4751,1206,4374,4007,0700,0000,0000,0003 ; 7477 PIP3: [BRX]_0 XWD [3], J/PI10 ;REMEMBER WE ARE AT LEVEL 3 U 3641, 3645,4751,1206,4374,4007,0700,0000,0000,0004 ; 7478 PIP4: [BRX]_0 XWD [4], J/PI10 ;REMEMBER WE ARE AT LEVEL 4 U 3642, 3645,4751,1206,4374,4007,0700,0000,0000,0005 ; 7479 PIP5: [BRX]_0 XWD [5], J/PI10 ;REMEMBER WE ARE AT LEVEL 5 U 3643, 3645,4751,1206,4374,4007,0700,0000,0000,0006 ; 7480 PIP6: [BRX]_0 XWD [6], J/PI10 ;REMEMBER WE ARE AT LEVEL 6 U 3644, 3645,4751,1206,4374,4007,0700,0000,0000,0007 ; 7481 PIP7: [BRX]_0 XWD [7], J/PI10 ;REMEMBER WE ARE AT LEVEL 7 ; 7482 ; 7483 PI10: [AR]_[PI].AND.# CLR LH, ;TURN OFF PI SYSTEM U 3645, 3646,4251,1403,4374,4007,0700,0000,0007,7577 ; 7484 #/077577 ; TILL WE ARE DONE U 3646, 3647,7443,0300,4174,4437,0700,0000,0000,0000 ; 7485 .NOT.[AR], LOAD PI ; .. U 3647, 2432,4223,0000,4364,4277,0700,0200,0000,0010 ; 7486 ABORT MEM CYCLE ;NO MORE TRAPS ; 7487 =0 [AR]_VMA IO READ, ;SETUP TO READ WRU BITS ; 7488 WRU CYCLE/1, ; .. U 2432, 3702,4571,1203,4374,4007,0700,0010,0024,1300 ; 7489 CALL [STRTIO] ;START THE CYCLE ; 7490 MEM READ, ;WAIT FOR DATA ; 7491 [AR]_IO DATA, 3T, ;PUT DATA IN AR U 2433, 2434,3771,0003,4364,4007,0331,0200,0000,0002 ; 7492 SKIP ADR.EQ.0 ;SEE IF ANYONE THERE U 2434, 3656,4221,0004,4174,4007,0700,0000,0000,0000 ; 7493 =0 [ARX]_0, J/VECINT ;YES--VECTORED INTERRUPT U 2435, 3650,3445,0603,4174,4007,0700,0000,0000,0000 ; 7494 [AR]_[BRX]*2 ;N*2 ; 7495 [AR]_[AR]+#, #/40, 3T, ;2*N+40 U 3650, 3651,0551,0303,4370,4007,0701,0000,0000,0040 ; 7496 HOLD LEFT ; .. ; 7497 [AR]_[AR]+[EBR], ;ABSOULTE ADDRESS OF U 3651, 3652,0111,1003,4174,4007,0700,0000,0000,0000 ; 7498 J/PI40 ; INTERRUPT INSTRUCTION ; 7499 ; T10KL.MCR[7,3] 15:10 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 ; 7500 ;HERE WITH ABSOLUTE ADDRESS OF INTERRUPT INSTRUCTION IN [AR] U 3652, 3653,3443,0300,4174,4007,0700,0200,0024,1016 ; 7501 PI40: VMA_[AR], VMA PHYSICAL READ ;FETCH THE INSTRUCTION ; 7502 PI50: MEM READ, [AR]_MEM, LOAD VMA, ;FETCH INSTRUCTION U 3653, 3654,3771,0003,4365,5007,0701,0200,0020,0012 ; 7503 3T, FORCE EXEC ;E IS EXEC MODE U 3654, 2436,6553,0300,4374,4007,0321,0000,0025,4340 ; 7504 [AR].XOR.#, #/254340, 3T, SKIP ADL.EQ.0 U 2436, 2440,6553,0300,4374,4007,0321,0000,0026,4000 ; 7505 =0 [AR].XOR.#, #/264000, SKIP ADL.EQ.0, 3T, J/PIJSR U 2437, 3655,4521,1205,4074,4007,0700,0000,0000,0000 ; 7506 [BR]_FLAGS ;SAVE FLAGS ; 7507 AD/ZERO, LOAD FLAGS, U 3655, 0060,4223,0000,4174,4467,0700,0000,0000,0004 ; 7508 J/PIXPCW ;ENTER EXEC MODE AND ASSUME ; 7509 ; WE HAVE AN XPCW ; 7510 ;IF WE HALT HERE ON A VECTORED INTERRUPT, WE HAVE ; 7511 ; T0/ WHAT WE READ FROM BUS AS VECTOR ; 7512 ; ARX/ EPT+100+DEVICE ; 7513 ; BR/ ADDRESS OF ILLEGAL INSTRUCTION ; 7514 ; BRX/ VECTOR (MASKED AND SHIFTED) ; 7515 =0 U 2440, 0104,4751,1217,4374,4007,0700,0000,0000,0101 ; 7516 PIJSR: HALT [ILLII] ;NOT A JSR OR XPCW U 2441, 0470,4443,0000,4174,4007,0700,0200,0023,0002 ; 7517 START WRITE, FORCE EXEC ;PREPARE TO STORE OLD PC ; 7518 =0*0 [BR]_PC WITH FLAGS, ;OLD PC U 0470, 3703,3741,0105,4074,4007,0700,0010,0000,0000 ; 7519 CALL [STOBR] ;STORE OLD PC ; 7520 =1*0 [AR]_#, #/0, HOLD RIGHT, ;PREPARE TO CLEAR FLAGS U 0474, 3700,3771,0003,4374,0007,0700,0010,0000,0000 ; 7521 CALL [INCAR] ;BUMP POINTER ; 7522 =1*1 [PC]_[AR], LOAD FLAGS, ;NEW PC U 0475, 2710,3441,0301,4174,4467,0700,0000,0000,0004 ; 7523 J/PISET ;CLEAR PI CYCLE & START ; 7524 ; INTERRUPT PROGRAM ; 7525 = ; 7526 ; T10KL.MCR[7,3] 15:10 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 ; 7527 ;HERE TO PROCESS A VECTORED INTERRUPT. AT THIS POINT: ; 7528 ; AR/ WRU BITS (BIT 18 FOR DEVICE 0) ; 7529 ; ARX/ 0 ; 7530 VECINT: [AR]_[AR]*2, ;SHIFT LEFT (UNSHIFTED ON DP) U 3656, 2442,3445,0303,4174,4007,0530,0000,0000,0000 ; 7531 SKIP DP18 ;ANYONE THERE? ; 7532 =0 [ARX]_[ARX]+[XWD1], ;NO--BUMP BOTH HALVES U 2442, 3656,0111,1504,4174,4007,0700,0000,0000,0000 ; 7533 J/VECINT ;KEEP LOOKING ; 7534 [AR]_VMA IO READ, ;SETUP FOR VECTOR CYCLE U 2443, 2444,4571,1203,4374,4007,0700,0000,0024,1240 ; 7535 VECTOR CYCLE/1 ; .. ; 7536 =0 [AR]_[AR].OR.[ARX], ;PUT IN UNIT NUMBER U 2444, 3702,3111,0403,4174,4007,0700,0010,0000,0000 ; 7537 CALL [STRTIO] ;START CYCLE ; 7538 MEM READ, ;WAIT FOR VECTOR (SEE DPM5) U 2445, 2446,3771,0016,4364,4007,0700,0200,0000,0002 ; 7539 [T0]_IO DATA ;GET VECTOR ; 7540 =0 [BR]_[EBR]+#, 3T, #/100, ;EPT+100 U 2446, 3677,0551,1005,4374,4007,0701,0010,0000,0100 ; 7541 CALL [CLARXL] ;CLEAR ARX LEFT ; 7542 [ARX]_[ARX]+[BR], ;EPT+100+DEVICE U 2447, 3657,0111,0504,4174,4007,0700,0200,0024,1016 ; 7543 VMA PHYSICAL READ ;FETCH WORD ; 7544 MEM READ, [BR]_MEM, 3T, ;GET POINTER U 3657, 2450,3771,0005,4365,5007,0331,0200,0000,0002 ; 7545 SKIP ADR.EQ.0 ;SEE IF NON-ZERO ; 7546 =0 [BRX]_([T0].AND.#)*.5, 3T, ;OK--MAKE VECTOR MOD 400 U 2450, 3660,4557,1606,4374,4007,0701,0000,0000,0774 ; 7547 #/774, J/VECIN1 ; AND SHIFT OVER U 2451, 0104,4751,1217,4374,4007,0700,0000,0000,0102 ; 7548 HALT [ILLINT] U 3660, 3661,3447,0606,4174,4007,0700,0000,0000,0000 ; 7549 VECIN1: [BRX]_[BRX]*.5 ;SHIFT 1 MORE PLACE ; 7550 [BR]_[BR]+[BRX], ;ADDRESS OF WORD TO USE ; 7551 LOAD VMA, FORCE EXEC, ;FORCE EXEC VIRTUAL ADDRESS U 3661, 3653,0111,0605,4174,4007,0700,0200,0024,0012 ; 7552 START READ, J/PI50 ;GO GET INSTRUCTION ; 7553 ; T10KL.MCR[7,3] 15:10 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 ; 7554 .TOC "PRIORITY INTERRUPTS -- DISMISS SUBROUTINE" ; 7555 ; 7556 ;SUBROUTINE TO DISMISS THE HIGHEST PI IN PROGRESS ; 7557 ;RETURNS 4 ALWAYS ; 7558 ; 7559 ;DISMISS: ; 7560 ; TR [PI], #/077400 ;ANY PI IN PROGRESS? ; 7561 =0 U 2452, 3662,3771,0005,4374,4007,0700,0000,0004,0000 ; 7562 JEN1: [BR]_#, PI.IP1/1, J/DSMS1 ;YES--START LOOP U 2453, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 7563 RETURN [4] ;NO--JUST RETURN ; 7564 U 3662, 2454,4113,0514,4174,4007,0330,0000,0000,0000 ; 7565 DSMS1: [PI].AND.[BR], SKIP ADR.EQ.0 U 2454, 0004,5111,0514,4170,4004,1700,0000,0000,0000 ; 7566 =0 [PI]_[PI].AND.NOT.[BR], HOLD LEFT, RETURN [4] U 2455, 3662,3447,0505,4174,4007,0700,0000,0000,0000 ; 7567 [BR]_[BR]*.5, J/DSMS1 ; 7568 ; T10KL.MCR[7,3] 15:10 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 ; 7569 .TOC "EXTERNAL IO INSTRUCTIONS" ; 7570 ; 7571 .DCODE D 0710, 1210,1614,0100 ; 7572 710: IOT, WORD-TNE, J/TIOX D 0711, 1214,1614,0100 ; 7573 711: IOT, WORD-TNN, J/TIOX D 0720, 1200,1614,0100 ; 7574 720: IOT, TNE, J/TIOX D 0721, 1204,1614,0100 ; 7575 721: IOT, TNN, J/TIOX ; 7576 .UCODE ; 7577 ; 7578 1614: U 1614, 2456,4443,0000,4174,4007,0700,0010,0000,0000 ; 7579 TIOX: CALL [IORD] U 1617, 0014,4551,0305,0274,4003,7700,0000,0000,0000 ; 7580 1617: [BR]_[AR].AND.AC, TEST DISP ; 7581 ; 7582 .DCODE D 0712, 1210,1460,0100 ; 7583 712: IOT, B/10, J/RDIO D 0713, 1210,1461,0100 ; 7584 713: IOT, B/10, J/WRIO D 0722, 1200,1460,0100 ; 7585 722: IOT, B/0, J/RDIO D 0723, 1200,1461,0100 ; 7586 723: IOT, B/0, J/WRIO ; 7587 .UCODE ; 7588 ; 7589 1460: U 1460, 2456,4443,0000,4174,4007,0700,0010,0000,0000 ; 7590 RDIO: CALL [IORD] U 1463, 1400,3440,0303,0174,4007,0700,0400,0000,0000 ; 7591 1463: AC_[AR], J/DONE ; 7592 ; 7593 1461: U 1461, 2466,3771,0005,0276,6007,0700,0000,0000,0000 ; 7594 WRIO: [BR]_AC, J/IOWR ; 7595 ; 7596 .DCODE D 0714, 1210,1644,0100 ; 7597 714: IOT, B/10, J/BIXUB D 0715, 1214,1644,0100 ; 7598 715: IOT, B/14, J/BIXUB D 0724, 1200,1644,0100 ; 7599 724: IOT, B/0, J/BIXUB D 0725, 1204,1644,0100 ; 7600 725: IOT, B/4, J/BIXUB ; 7601 .UCODE ; 7602 ; 7603 1644: ; 7604 BIXUB: [BRX]_[AR], ;SAVE EFFECTIVE ADDRESS U 1644, 2456,3441,0306,4174,4007,0700,0010,0000,0000 ; 7605 CALL [IORD] ;GO GET THE DATA ; 7606 1647: [BR]_[AR], ;COPY DATA ITEM U 1647, 1013,3441,0305,4174,4003,7700,0000,0000,0000 ; 7607 B DISP ;SEE IF SET OR CLEAR ; 7608 =1011 [BR]_[BR].OR.AC, ;SET BITS U 1013, 3663,3551,0505,0274,4007,0700,0000,0000,0000 ; 7609 J/BIXUB1 ;GO DO WRITE ; 7610 [BR]_[BR].AND.NOT.AC, ;CLEAR BITS U 1017, 3663,5551,0505,0274,4007,0700,0000,0000,0000 ; 7611 J/BIXUB1 ;GO DO WRITE ; 7612 ; 7613 BIXUB1: [AR]_[BRX], ;RESTORE ADDRESS U 3663, 2466,3441,0603,4174,4007,0700,0000,0000,0000 ; 7614 J/IOWR ; 7615 ; T10KL.MCR[7,3] 15:10 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 ; 7616 ;SUBROUTINE TO READ FROM AN IO DEVICE ; 7617 ;CALL WITH: ; 7618 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7619 ; INSTRUCTION IN HR ; 7620 ;RETURN 3 WITH WORD OR BYTE IN AR ; 7621 ; ; 7622 =0 ; 7623 IORD: CLR IO BUSY, ;CLEAR BUSY U 2456, 2476,4443,0000,4174,4137,0700,0010,0000,0000 ; 7624 CALL [IOEA] ;COMPUTE IO EA U 2457, 0067,4443,0000,4174,4003,7700,0000,0000,0000 ; 7625 B DISP ; 7626 =10111 [BR]_VMA IO READ, ;BYTE MODE ; 7627 IO BYTE/1, ;SET BYTE FLAG U 0067, 2460,4571,1205,4374,4007,0700,0000,0024,1220 ; 7628 J/IORD1 ;GO DO C/A CYCLE U 0077, 2460,4571,1205,4374,4007,0700,0000,0024,1200 ; 7629 =11111 [BR]_VMA IO READ ;WORD MODE ; 7630 = ; 7631 =0 ; 7632 IORD1: VMA_[AR].OR.[BR] WITH FLAGS, U 2460, 3672,3113,0305,4174,4007,0701,0210,0000,0036 ; 7633 CALL [IOWAIT] ;WAIT FOR THINGS COMPLETE ; 7634 MEM READ, ;MAKE SURE REALLY READY ; 7635 [BR]_IO DATA, ;PUT DATA IN BR U 2461, 1027,3771,0005,4364,4003,7700,0200,0000,0002 ; 7636 B DISP ;SEE IF BYTE MODE U 1027, 2462,4553,0300,4374,4007,0331,0000,0000,0001 ; 7637 =0111 TR [AR], #/1, J/IORD2 ;BYTE MODE SEE IF ODD U 1037, 0003,3441,0503,4174,4004,1700,0000,0000,0000 ; 7638 [AR]_[BR], RETURN [3] ;ALL DONE ; 7639 ; 7640 ;HERE ON WORD MODE ; 7641 =0 ; 7642 IORD2: [BR]_[BR]*.5, SC_5, ;LEFT BYTE U 2462, 2464,3447,0505,4174,4007,0700,2000,0071,0005 ; 7643 J/IORD3 ;GO SHIFT IT ; 7644 [AR]_[BR].AND.#, ;MASK IT U 2463, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7645 #/377, RETURN [3] ;ALL DONE ; 7646 ; 7647 =0 ; 7648 IORD3: [BR]_[BR]*.5, ;SHIFT OVER U 2464, 2464,3447,0505,4174,4007,0630,2000,0060,0000 ; 7649 STEP SC, J/IORD3 ; .. ; 7650 [AR]_[BR].AND.#, ;MASK IT U 2465, 0003,4551,0503,4374,4004,1700,0000,0000,0377 ; 7651 #/377, RETURN [3] ;ALL DONE ; 7652 ; T10KL.MCR[7,3] 15:10 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 ; 7653 ;ROUTINE TO WRITE TO AN IO DEVICE ; 7654 ;CALL WITH: ; 7655 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7656 ; INSTRUCTION IN HR ; 7657 ; WORD OR BYTE IN BR ; 7658 ;RETURNS BACK TO USER ; 7659 ; ; 7660 =0 ; 7661 IOWR: CLR IO BUSY, ;CLEAR BUSY U 2466, 2476,4443,0000,4174,4137,0700,0010,0000,0000 ; 7662 CALL [IOEA] ;COMPUTE IO EA U 2467, 0227,4443,0000,4174,4003,7700,0000,0000,0000 ; 7663 B DISP U 0227, 2472,4553,0300,4374,4007,0331,0000,0000,0001 ; 7664 =10111 TR [AR], #/1, J/IOWR2 ;BYTE MODE U 0237, 3664,4571,1204,4374,4007,0700,0000,0021,1200 ; 7665 =11111 [ARX]_VMA IO WRITE ;SETUP FLAGS ; 7666 = U 3664, 2470,3113,0304,4174,4007,0701,0200,0000,0036 ; 7667 IOWR1: VMA_[AR].OR.[ARX] WITH FLAGS ; 7668 =0 MEM WRITE, MEM_[BR], ;SEND DATA U 2470, 3672,3333,0005,4175,5007,0701,0210,0000,0002 ; 7669 CALL [IOWAIT] ;WAIT FOR DATA U 2471, 0110,3443,0100,4174,4156,4700,0200,0014,0012 ; 7670 DONE ;RETURN ; 7671 ; 7672 ;HERE FOR BYTE MODE ; 7673 =0 ; 7674 IOWR2: [BR]_[BR]*2, SC_5, ;ODD--MOVE LEFT U 2472, 2474,3445,0505,4174,4007,0700,2000,0071,0005 ; 7675 J/IOWR3 ; .. ; 7676 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2473, 3664,4571,1204,4374,4007,0700,0000,0021,1220 ; 7677 IO BYTE/1, J/IOWR1 ; .. ; 7678 ; 7679 =0 ; 7680 IOWR3: [BR]_[BR]*2, STEP SC, ;SHIFT LEFT U 2474, 2474,3445,0505,4174,4007,0630,2000,0060,0000 ; 7681 J/IOWR3 ;KEEP SHIFTING ; 7682 [ARX]_VMA IO WRITE, ;SETUP FLAGS U 2475, 3664,4571,1204,4374,4007,0700,0000,0021,1220 ; 7683 IO BYTE/1, J/IOWR1 ; .. ; 7684 ; T10KL.MCR[7,3] 15:10 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 ; 7685 ;HERE TO COMPUTE IO EFFECTIVE ADDRESS ; 7686 ;CALL WITH: ; 7687 ; SECTION 0 EFFECTIVE ADDRESS IN AR ; 7688 ; INSTRUCTION IN HR ; 7689 ;RETURN 1 WITH EA IN AR ; 7690 ; ; 7691 =0 ; 7692 IOEA: VMA_[PC]-1, ;GET INSTRUCTION ; 7693 START READ, ; .. U 2476, 3674,1113,0701,4170,4007,0700,4210,0004,0012 ; 7694 CALL [LOADAR] ;PUT WORD IN AR U 2477, 3665,7441,0306,4174,4007,0700,0000,0000,0000 ; 7695 [BRX]_.NOT.[AR] ;SEE IF IN RANGE 700-777 U 3665, 2500,4553,0600,4374,4007,0321,0000,0070,0000 ; 7696 TL [BRX], #/700000 ; .. ; 7697 =0 U 2500, 2502,4553,0200,4374,4007,0321,0000,0000,0020 ; 7698 IOEA1: TL [HR], #/20, J/IOEA2 ;INDIRECT? ; 7699 WORK[YSAVE]_[AR] CLR LH, ;DIRECT IO INSTRUCTION U 2501, 2500,4713,1203,7174,4007,0700,0400,0000,0422 ; 7700 J/IOEA1 ;SAVE Y FOR EA CALCULATION ; 7701 =0 ; 7702 IOEA2: [AR]_WORK[YSAVE], ;@--GET SAVED Y U 2502, 3666,3771,0003,7274,4007,0701,0000,0000,0422 ; 7703 J/IOEAI ;GET Y AND GO U 2503, 1055,4443,0000,2174,4006,6700,0000,0000,0000 ; 7704 EA MODE DISP ;WAS THERE INDEXING? ; 7705 =1101 [ARX]_XR, SKIP ADL.LE.0, ;SEE IF LOCAL OR GLOBAL INDEXING U 1055, 2506,3771,0004,2274,4007,0120,0000,0000,0000 ; 7706 2T, J/IOEAX ; .. ; 7707 [AR]_WORK[YSAVE], ;JUST PLAIN IO U 1057, 0001,3771,0003,7274,4124,1701,0000,0000,0422 ; 7708 CLR IO LATCH, RETURN [1] ; 7709 ; 7710 IOEAI: READ [HR], DBUS/DP, ;LOAD XR FLOPS IN CASE U 3666, 3667,3333,0002,4174,4217,0700,0000,0000,0000 ; 7711 LOAD INST EA ; THERE IS INDEXING U 3667, 2504,4553,0200,4374,4007,0321,0000,0000,0017 ; 7712 TL [HR], #/17 ;WAS THERE ALSO INDEXING U 2504, 2505,0551,0303,2270,4007,0701,0000,0000,0000 ; 7713 =0 [AR]_[AR]+XR, 3T, HOLD LEFT ;YES--ADD IN INDEX VALUE U 2505, 3670,3443,0300,4174,4007,0700,0200,0004,0012 ; 7714 VMA_[AR], START READ ;FETCH DATA WORD ; 7715 MEM READ, [AR]_MEM, ;GO GET DATA WORD U 3670, 0001,3771,0003,4365,5124,1700,0200,0000,0002 ; 7716 CLR IO LATCH, RETURN [1] ; 7717 ; 7718 =0 ; 7719 IOEAX: [AR]_[ARX]+WORK[YSAVE], ;GLOBAL INDEXING U 2506, 0001,0551,0403,7274,4124,1701,0000,0000,0422 ; 7720 CLR IO LATCH, RETURN [1] U 2507, 3671,0551,0403,7274,4007,0701,0000,0000,0422 ; 7721 [AR]_[ARX]+WORK[YSAVE] ;LOCAL INDEXING ; 7722 [AR]_0, HOLD RIGHT, U 3671, 0001,4221,0003,4174,0124,1700,0000,0000,0000 ; 7723 CLR IO LATCH, RETURN [1] ; 7724 ; T10KL.MCR[7,3] 15:10 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 ; 7725 ;WAIT FOR IO TO COMPLETE ; 7726 ;RETURNS 1 OR PAGE FAILS ; 7727 ; ; 7728 IOWAIT: SC_S#, S#/200, ;DELAY ; 7729 [T0]_VMA, ;GET VMA U 3672, 1130,3771,0016,4354,4007,0650,2000,0071,0200 ; 7730 SKIP/-IO BUSY ;SEE IF BUSY YET ; 7731 =00 ; 7732 IOW1: CLR IO LATCH, ;WENT BUSY ; 7733 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1130, 3673,3333,0016,7174,4127,0700,0400,0000,0210 ; 7734 J/IOW2 ;WAIT FOR IT TO CLEAR ; 7735 SC_SC-1, SCAD DISP, 5T, ;SEE IF DONE YET ; 7736 SKIP/-IO BUSY, ; .. U 1131, 1130,4443,0000,4174,4006,7653,2000,0060,0000 ; 7737 J/IOW1 ;BACK TO LOOP ; 7738 CLR IO LATCH, ;WENT BUSY AND TIMEOUT ; 7739 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1132, 3673,3333,0016,7174,4127,0700,0400,0000,0210 ; 7740 J/IOW2 ; .. ; 7741 WORK[SV.VMA]_[T0], ;MAKE SURE SV.VMA IS SETUP U 1133, 2513,3333,0016,7174,4007,0700,0400,0000,0210 ; 7742 J/IOW5 ;GO TRAP ; 7743 ; 7744 IOW2: SC_S#, S#/777, ;GO TIME IO U 3673, 2510,4443,0000,4174,4007,0650,2000,0071,0777 ; 7745 SKIP/-IO BUSY ; .. ; 7746 =0 ; 7747 IOW3: CLR IO LATCH, ;TRY TO CLEAR LATCH U 2510, 2512,4443,0000,4174,4127,0630,2000,0060,0000 ; 7748 STEP SC, J/IOW4 ;STILL BUSY U 2511, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 7749 RETURN [1] ;IDLE ; 7750 ; 7751 =0 ; 7752 IOW4: CLR IO LATCH, 5T, ;TRY TO CLEAR LATCH ; 7753 SKIP/-IO BUSY, ;SEE IF STILL BUSY U 2512, 2510,4443,0000,4174,4127,0653,0000,0000,0000 ; 7754 J/IOW3 ; .. U 2513, 1564,4571,1206,4374,4007,0700,0000,0020,0000 ; 7755 IOW5: [BRX]_[200000] XWD 0, J/HARD ; 7756 ; T10KL.MCR[7,3] 15:10 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 ; 7757 .TOC "SMALL SUBROUTINES" ; 7758 ; 7759 ;HERE ARE A COLLECTION ON 1-LINE SUBROUTINES ; 7760 LOADAR: MEM READ, [AR]_MEM, ;FROM MEMORY TO AR U 3674, 0001,3771,0003,4365,5004,1700,0200,0000,0002 ; 7761 RETURN [1] ;RETURN TO CALLER ; 7762 U 3675, 0001,3771,0004,4365,5004,1700,0200,0000,0002 ; 7763 LOADARX: MEM READ, [ARX]_MEM, RETURN [1] ; 7764 U 3676, 0001,3772,0000,4365,5004,1700,0200,0000,0002 ; 7765 LOADQ: MEM READ, Q_MEM, RETURN [1] ; 7766 U 3677, 0001,4221,0004,4174,0004,1700,0000,0000,0000 ; 7767 CLARXL: [ARX]_0, HOLD RIGHT, RETURN [1] ; 7768 U 3700, 0001,0111,0703,4174,4004,1700,0000,0000,0000 ; 7769 INCAR: [AR]_[AR]+1, RETURN [1] ; 7770 U 3701, 0001,3445,0505,4174,4004,1700,0000,0000,0000 ; 7771 SBRL: [BR]_[BR]*2, RETURN [1] ; 7772 U 3702, 0001,3443,0300,4174,4004,1701,0200,0000,0036 ; 7773 STRTIO: VMA_[AR] WITH FLAGS, RETURN [1] ; 7774 U 3703, 0004,3333,0005,4175,5004,1701,0200,0000,0002 ; 7775 STOBR: MEM WRITE, MEM_[BR], RETURN [4] ; 7776 U 3704, 0001,3333,0001,4175,5004,1701,0200,0000,0002 ; 7777 STOPC: MEM WRITE, MEM_[PC], RETURN [1] ; 7778 U 3705, 0001,3440,0404,0174,4004,1700,0400,0000,0000 ; 7779 AC_ARX: AC_[ARX], RETURN [1] ; 7780 ; T10KL.MCR[7,3] 15:10 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 ; 7781 .TOC "UNDEFINED IO INSTRUCTIONS" ; 7782 ; 7783 .DCODE D 0703, 0003,1650,2100 ; 7784 703: I, B/3, J/IOT700 D 0706, 0006,1650,2100 ; 7785 706: I, B/6, J/IOT700 D 0707, 0007,1650,2100 ; 7786 I, B/7, J/IOT700 ; 7787 D 0716, 0006,1651,2100 ; 7788 716: I, B/6, J/IOT710 D 0717, 0007,1651,2100 ; 7789 I, B/7, J/IOT710 ; 7790 D 0726, 0006,1652,2100 ; 7791 726: I, B/6, J/IOT720 D 0727, 0007,1652,2100 ; 7792 I, B/7, J/IOT720 ; 7793 D 0730, 0000,1653,2100 ; 7794 730: I, B/0, J/IOT730 D 0731, 0001,1653,2100 ; 7795 I, B/1, J/IOT730 D 0732, 0002,1653,2100 ; 7796 I, B/2, J/IOT730 D 0733, 0003,1653,2100 ; 7797 I, B/3, J/IOT730 D 0734, 0004,1653,2100 ; 7798 I, B/4, J/IOT730 D 0735, 0005,1653,2100 ; 7799 I, B/5, J/IOT730 D 0736, 0006,1653,2100 ; 7800 I, B/6, J/IOT730 D 0737, 0007,1653,2100 ; 7801 I, B/7, J/IOT730 ; 7802 D 0740, 0000,1654,2100 ; 7803 740: I, B/0, J/IOT740 D 0741, 0001,1654,2100 ; 7804 I, B/1, J/IOT740 D 0742, 0002,1654,2100 ; 7805 I, B/2, J/IOT740 D 0743, 0003,1654,2100 ; 7806 I, B/3, J/IOT740 D 0744, 0004,1654,2100 ; 7807 I, B/4, J/IOT740 D 0745, 0005,1654,2100 ; 7808 I, B/5, J/IOT740 D 0746, 0006,1654,2100 ; 7809 I, B/6, J/IOT740 D 0747, 0007,1654,2100 ; 7810 I, B/7, J/IOT740 ; 7811 D 0750, 0000,1655,2100 ; 7812 750: I, B/0, J/IOT750 D 0751, 0001,1655,2100 ; 7813 I, B/1, J/IOT750 D 0752, 0002,1655,2100 ; 7814 I, B/2, J/IOT750 D 0753, 0003,1655,2100 ; 7815 I, B/3, J/IOT750 D 0754, 0004,1655,2100 ; 7816 I, B/4, J/IOT750 D 0755, 0005,1655,2100 ; 7817 I, B/5, J/IOT750 D 0756, 0006,1655,2100 ; 7818 I, B/6, J/IOT750 D 0757, 0007,1655,2100 ; 7819 I, B/7, J/IOT750 ; 7820 D 0760, 0000,1656,2100 ; 7821 760: I, B/0, J/IOT760 D 0761, 0001,1656,2100 ; 7822 I, B/1, J/IOT760 D 0762, 0002,1656,2100 ; 7823 I, B/2, J/IOT760 D 0763, 0003,1656,2100 ; 7824 I, B/3, J/IOT760 D 0764, 0004,1656,2100 ; 7825 I, B/4, J/IOT760 D 0765, 0005,1656,2100 ; 7826 I, B/5, J/IOT760 D 0766, 0006,1656,2100 ; 7827 I, B/6, J/IOT760 D 0767, 0007,1656,2100 ; 7828 I, B/7, J/IOT760 ; 7829 ; T10KL.MCR[7,3] 15:10 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 ; 7830 770: I, B/0, J/IOT770 D 0771, 0001,1657,2100 ; 7831 I, B/1, J/IOT770 D 0772, 0002,1657,2100 ; 7832 I, B/2, J/IOT770 D 0773, 0003,1657,2100 ; 7833 I, B/3, J/IOT770 D 0774, 0004,1657,2100 ; 7834 I, B/4, J/IOT770 D 0775, 0005,1657,2100 ; 7835 I, B/5, J/IOT770 D 0776, 0006,1657,2100 ; 7836 I, B/6, J/IOT770 D 0777, 0007,1657,2100 ; 7837 I, B/7, J/IOT770 ; 7838 .UCODE ; 7839 ; 7840 1650: U 1650, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7841 IOT700: UUO ; 7842 1651: ; 7843 IOT710: ;;7844 .IFNOT/UBABLT ;;7845 UUO ; 7846 .IF/UBABLT U 1651, 0670,4443,0000,4174,4007,0700,0000,0000,0000 ; 7847 J/BLTX ;GO TO COMMON CODE FOR UBABLT INSTRS ; 7848 .ENDIF/UBABLT ; 7849 1652: U 1652, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7850 IOT720: UUO ; 7851 1653: U 1653, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7852 IOT730: UUO ; 7853 1654: U 1654, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7854 IOT740: UUO ; 7855 1655: U 1655, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7856 IOT750: UUO ; 7857 1656: U 1656, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7858 IOT760: UUO ; 7859 1657: U 1657, 2733,4551,0202,4374,0007,0700,0000,0077,7740 ; 7860 IOT770: UUO ; 7861 ; T10KL.MCR[7,3] 15:10 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 ; 7862 .TOC "UMOVE AND UMOVEM" ; 7863 ; 7864 .DCODE D 0704, 1200,1754,0100 ; 7865 704: IOT, J/UMOVE D 0705, 1200,1755,0100 ; 7866 IOT, J/UMOVEM ; 7867 .UCODE ; 7868 ; 7869 1754: ; 7870 UMOVE: VMA_[AR], ;LOAD VMA ; 7871 START READ, ;START MEMORY U 1754, 3706,3443,0300,4174,4207,0700,0200,0004,0012 ; 7872 SPEC/PREV ;FORCE PREVIOUS ; 7873 MEM READ, ;WAIT FOR MEMORY ; 7874 [AR]_MEM, ;PUT DATA IN AR U 3706, 1515,3771,0003,4365,5007,0700,0200,0000,0002 ; 7875 J/STAC ;GO PUT AR IN AC ; 7876 ; 7877 1755: ; 7878 UMOVEM: VMA_[AR], ;LOAD VMA ; 7879 START WRITE, ;START MEMORY U 1755, 3707,3443,0300,4174,4207,0700,0200,0003,0012 ; 7880 SPEC/PREV ;FORCE PREVIOUS ; 7881 [AR]_AC, ;FETCH AC U 3707, 1516,3771,0003,0276,6007,0700,0000,0000,0000 ; 7882 J/STMEM ;STORE IN MEMORY ; 7883 ; T10KL.MCR[7,3] 15:10 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 ; 7884 ;HERE WITH HALT CODE IN THE T1 ; 7885 =010* ; 7886 HALTED: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0104, 3712,3333,0004,7174,4007,0700,0410,0000,0212 ; 7887 CALL [SAVVMA] ;PUT VMA IN WORK[SV.VMA] ; 7888 =110* ABORT MEM CYCLE, ;ABORT CYCLE IN PROGRESS U 0114, 3711,4223,0000,4364,4277,0700,0210,0000,0010 ; 7889 CALL [WRTHSB] ;WRITE HALT STATUS BLOCK ; 7890 =111* U 0116, 3710,4221,0004,4174,4007,0700,0200,0021,1016 ; 7891 PWRON: [ARX]_0, VMA PHYSICAL WRITE ;STORE HALT CODE ; 7892 = U 3710, 2514,3333,0017,4175,5007,0701,0200,0000,0002 ; 7893 MEM WRITE, MEM_[T1] ; IN LOCATION 0 ; 7894 =0 NEXT [ARX] PHYSICAL WRITE, U 2514, 3704,0111,0704,4170,4007,0700,0210,0023,1016 ; 7895 CALL [STOPC] U 2515, 0005,4443,0000,4174,4107,0700,0000,0000,0074 ; 7896 H1: SET HALT, J/HALTLP ;TELL CONSOLE WE HAVE HALTED ; 7897 ; 7898 ; 7899 4: UNHALT, ;RESET CONSOLE U 0004, 2516,4443,0000,4174,4107,0640,0000,0000,0062 ; 7900 SKIP EXECUTE, J/CONT ;SEE IF CO OR EX ; 7901 5: U 0005, 0004,4443,0000,4174,4007,0660,0000,0000,0000 ; 7902 HALTLP: SKIP/-CONTINUE, J/4 ;WAIT FOR CONTINUE ; 7903 ; 7904 =0 ; 7905 CONT: VMA_[PC], ;LOAD PC INTO VMA ; 7906 FETCH, ;START READ U 2516, 0117,3443,0100,4174,4007,0700,0200,0014,0012 ; 7907 J/XCTGO ;DO THE INSTRUCTION U 2517, 2520,4571,1203,4374,4007,0700,0000,0024,1200 ; 7908 [AR]_VMA IO READ ;PUT FLAGS IN AR ; 7909 =0 [AR]_[AR].OR.#, ;PUT IN ADDRESS ; 7910 #/200000, HOLD LEFT, ; OF CSL REGISTER U 2520, 3702,3551,0303,4370,4007,0700,0010,0020,0000 ; 7911 CALL [STRTIO] ; 7912 CONT1: MEM READ, ;WAIT FOR DATA ; 7913 [HR]_MEM, ;PUT IN HR ; 7914 LOAD INST, ;LOAD IR, ETC. U 2521, 2712,3771,0002,4365,5617,0700,0200,0000,0002 ; 7915 J/XCT1 ;GO DO THE INSTRUCTION ; 7916 ; T10KL.MCR[7,3] 15:10 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 ; 7917 .TOC "WRITE HALT STATUS BLOCK" ; 7918 ; 7919 ;THE HALT STATUS BLOCK LOOKS LIKE: ; 7920 ; 7921 ; !=======================================================! ; 7922 ; !00! MAG ! ; 7923 ; !-------------------------------------------------------! ; 7924 ; !01! PC ! ; 7925 ; !-------------------------------------------------------! ; 7926 ; !02! HR ! ; 7927 ; !-------------------------------------------------------! ; 7928 ; !03! AR ! ; 7929 ; !-------------------------------------------------------! ; 7930 ; !04! ARX ! ; 7931 ; !-------------------------------------------------------! ; 7932 ; !05! BR ! ; 7933 ; !-------------------------------------------------------! ; 7934 ; !06! BRX ! ; 7935 ; !-------------------------------------------------------! ; 7936 ; !07! ONE ! ; 7937 ; !-------------------------------------------------------! ; 7938 ; !10! EBR ! ; 7939 ; !-------------------------------------------------------! ; 7940 ; !11! UBR ! ; 7941 ; !-------------------------------------------------------! ; 7942 ; !12! MASK ! ; 7943 ; !-------------------------------------------------------! ; 7944 ; !13! FLG ! ; 7945 ; !-------------------------------------------------------! ; 7946 ; !14! PI ! ; 7947 ; !-------------------------------------------------------! ; 7948 ; !15! XWD1 ! ; 7949 ; !-------------------------------------------------------! ; 7950 ; !16! T0 ! ; 7951 ; !-------------------------------------------------------! ; 7952 ; !17! T1 ! ; 7953 ; !=======================================================! ; 7954 ; ! VMA FLAGS ! VMA ! ; 7955 ; !=======================================================! ; 7956 ; T10KL.MCR[7,3] 15:10 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 ; 7957 ;START AT 1 TO DUMP 2901 REGISTERS INTO MAIN MEMORY ; 7958 1: WORK[SV.ARX]_[ARX], ;SAVE TEMP REGISTER U 0001, 3712,3333,0004,7174,4007,0700,0410,0000,0212 ; 7959 CALL [SAVVMA] ;WORK[SV.VMA]_VMA U 0011, 0024,3771,0004,7274,4007,0701,0000,0000,0227 ; 7960 11: [ARX]_WORK[HSBADR] U 0024, 3714,4223,0000,4364,4277,0700,0210,0000,0010 ; 7961 =10* ABORT MEM CYCLE, CALL [DUMP] U 0026, 2515,4443,0000,4174,4107,0700,0000,0000,0074 ; 7962 SET HALT, J/H1 ; 7963 ; 7964 ; 7965 WRTHSB: [ARX]_WORK[HSBADR], ;GET ADDRESS OF HSB U 3711, 2522,3771,0004,7274,4007,0422,0000,0000,0227 ; 7966 SKIP AD.LE.0, 4T ;SEE IF VALID ; 7967 =0 READ [MASK], LOAD PI, ;TURN OFF PI SYSTEM U 2522, 3714,3333,0012,4174,4437,0700,0000,0000,0000 ; 7968 J/DUMP ; AND GO TAKE DUMP ; 7969 [ARX]_WORK[SV.ARX], U 2523, 0002,3771,0004,7274,4004,1701,0000,0000,0212 ; 7970 RETURN [2] ;DO NOT DUMP ANYTHING ; 7971 U 3712, 3713,3771,0004,4354,4007,0700,0000,0000,0000 ; 7972 SAVVMA: [ARX]_VMA ; 7973 WORK[SV.VMA]_[ARX], U 3713, 0010,3333,0004,7174,4004,1700,0400,0000,0210 ; 7974 RETURN [10] ; 7975 ; T10KL.MCR[7,3] 15:10 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 ; 7976 ;DUMP OUT THE 2901 U 3714, 2375,3333,0004,4174,4007,0700,0200,0021,1016 ; 7977 DUMP: READ [ARX], VMA PHYSICAL WRITE U 2375, 2742,3333,0000,4175,5007,0701,0210,0000,0002 ; 7978 =0* MEM WRITE, MEM_[MAG], CALL [NEXT] U 2377, 3715,3333,0001,4175,5007,0701,0200,0000,0002 ; 7979 MEM WRITE, MEM_[PC] U 3715, 2524,0111,0704,4170,4007,0700,0200,0023,1016 ; 7980 NEXT [ARX] PHYSICAL WRITE U 2524, 2742,3333,0002,4175,5007,0701,0210,0000,0002 ; 7981 =0* MEM WRITE, MEM_[HR], CALL [NEXT] U 2526, 2525,3333,0003,4175,5007,0701,0200,0000,0002 ; 7982 MEM WRITE, MEM_[AR] U 2525, 2742,3333,0003,7174,4007,0700,0410,0000,0211 ; 7983 =0* WORK[SV.AR]_[AR], CALL [NEXT] U 2527, 2530,3771,0003,7274,4007,0701,0000,0000,0212 ; 7984 [AR]_WORK[SV.ARX] U 2530, 2742,3333,0003,4175,5007,0701,0210,0000,0002 ; 7985 =0* MEM WRITE, MEM_[AR], CALL [NEXT] U 2532, 3716,3333,0005,4175,5007,0701,0200,0000,0002 ; 7986 MEM WRITE, MEM_[BR] U 3716, 2531,0111,0704,4170,4007,0700,0200,0023,1016 ; 7987 NEXT [ARX] PHYSICAL WRITE U 2531, 2742,3333,0006,4175,5007,0701,0210,0000,0002 ; 7988 =0* MEM WRITE, MEM_[BRX], CALL [NEXT] U 2533, 3717,3333,0007,4175,5007,0701,0200,0000,0002 ; 7989 MEM WRITE, MEM_[ONE] U 3717, 2534,0111,0704,4170,4007,0700,0200,0023,1016 ; 7990 NEXT [ARX] PHYSICAL WRITE U 2534, 2742,3333,0010,4175,5007,0701,0210,0000,0002 ; 7991 =0* MEM WRITE, MEM_[EBR], CALL [NEXT] U 2536, 3720,3333,0011,4175,5007,0701,0200,0000,0002 ; 7992 MEM WRITE, MEM_[UBR] U 3720, 2535,0111,0704,4170,4007,0700,0200,0023,1016 ; 7993 NEXT [ARX] PHYSICAL WRITE U 2535, 2742,3333,0012,4175,5007,0701,0210,0000,0002 ; 7994 =0* MEM WRITE, MEM_[MASK], CALL [NEXT] U 2537, 3721,3333,0013,4175,5007,0701,0200,0000,0002 ; 7995 MEM WRITE, MEM_[FLG] U 3721, 2540,0111,0704,4170,4007,0700,0200,0023,1016 ; 7996 NEXT [ARX] PHYSICAL WRITE U 2540, 2742,3333,0014,4175,5007,0701,0210,0000,0002 ; 7997 =0* MEM WRITE, MEM_[PI], CALL [NEXT] U 2542, 3722,3333,0015,4175,5007,0701,0200,0000,0002 ; 7998 MEM WRITE, MEM_[XWD1] U 3722, 2541,0111,0704,4170,4007,0700,0200,0023,1016 ; 7999 NEXT [ARX] PHYSICAL WRITE U 2541, 2742,3333,0016,4175,5007,0701,0210,0000,0002 ; 8000 =0* MEM WRITE, MEM_[T0], CALL [NEXT] U 2543, 2544,3333,0017,4175,5007,0701,0200,0000,0002 ; 8001 MEM WRITE, MEM_[T1] U 2544, 2742,3771,0003,7274,4007,0701,0010,0000,0210 ; 8002 =0* [AR]_WORK[SV.VMA], CALL [NEXT] U 2546, 3723,3333,0003,4175,5007,0701,0200,0000,0002 ; 8003 MEM WRITE, MEM_[AR] U 3723, 3724,3771,0003,7274,4007,0701,0000,0000,0211 ; 8004 HSBDON: [AR]_WORK[SV.AR] U 3724, 3725,3771,0004,7274,4007,0701,0000,0000,0210 ; 8005 [ARX]_WORK[SV.VMA] U 3725, 3726,3443,0400,4174,4007,0700,0200,0000,0010 ; 8006 VMA_[ARX] ; 8007 [ARX]_WORK[SV.ARX], U 3726, 0006,3771,0004,7274,4004,1701,0000,0000,0212 ; 8008 RETURN [6] ; 8009 ; T10KL.MCR[7,3] 15:10 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 ; 8010 .NOBIN ; 8011 .TOC "PAGE FAIL REFIL LOGIC" ; 8012 ; 8013 ;WHEN THE CPU CAN NOT COMPLETE A MEMORY REFERENCE BECAUSE THE PAGE ; 8014 ; TABLE DOES NOT CONTAIN VALID INFORMATION FOR THE VIRTUAL PAGE INVOLVED ; 8015 ; THE HARDWARE CALLS THIS ROUTINE TO RELOAD THE HARDWARE PAGE TABLE. ; 8016 ; ; 8017 ;THIS CODE WILL EITHER DO THE RELOAD OR GENERATE A PAGE FAIL FOR THE ; 8018 ; SOFTWARE. THE INFORMATION LOADED CONSISTS OF THE PHYSICAL PAGE NUMBER, ; 8019 ; THE CACHE ENABLE BIT AND THE WRITE ENABLE BIT. ; 8020 ; 8021 ;THIS LOGIC USES MANY VARIABLES. THEY ARE DESCRIBED BRIEFLY HERE: ; 8022 ; 8023 ;THING WHERE KEPT USE ; 8024 ;OLD VMA WORKSPACE WORD 210 SAVES VMA ; 8025 ;OLD AR WORKSPACE WORD 211 SAVES AR ; 8026 ;OLD ARX WORKSPACE WORD 212 SAVES ARX ; 8027 ;OLD BR WORKSPACE WORD 213 SAVES BR ; 8028 ;OLD BRX WORKSPACE WORD 214 SAVES BRX ; 8029 ;KL PAGING BIT EBR BIT 1 (IN 2901) INDICATES KL STYLE (TOPS-20) PAGING ; 8030 ; INSTEAD OF KI STYLE (TOPS-10 AND DIAGNOSTIC) ; 8031 ; MODE PAGING ; 8032 ;W BIT FLG BIT 4 PAGE CAN BE WRITTEN ; 8033 ;C BIT FLG BIT 6 DATA IN THIS PAGE MAY BE PUT ; 8034 ; INTO CACHE ; 8035 ;PI CYCLE FLG BIT 5 STORING OLD PC DURING PI ; 8036 ;MAP FLAG FLG BIT 18 MAP INSTRUCTION IN PROGRESS ; 8037 ;CLEANUP CODE FLG BITS 32-35 WHAT TO DO SO INSTRUCTION MAY BE ; 8038 ; RESTARTED ; 8039 ;SPT BASE WORKSPACE WORD 215 ADDRESS OF SHARED-POINTER-TABLE ; 8040 ;CST BASE WORKSPACE WORD 216 ADDRESS OF CORE-STATUS-TABLE ; 8041 ;CST MASK WORKSPACE WORD 217 BITS TO KEEP ON CST UPDATE ; 8042 ;CST DATA (PUR) WORKSPACE WORD 220 BITS TO SET ON CST UPDATE ; 8043 ;PAGE TABLE ADDRESS AR WHERE THIS PAGE TABLE IS LOCATED ; 8044 ;PHYSICAL PAGE # (PPN) AR RESULT OF THIS PROCESS ; 8045 ;CST ENTRY AR CORE STATUS TABLE ENTRY ; 8046 ;SPT ENTRY AR WORD FROM SPT ; 8047 ;PAGE TABLE ENTRY AR WORD FROM PT ; 8048 ;PAGE NUMBER BR INDEX INTO CURENT PAGE TABLE ; 8049 ;PAGE FAIL WORD BRX WHAT HAPPENED (ALSO MAP RESULT) ; 8050 ; 8051 .IF/INHCST ; 8052 SKIP NO CST "AD/D,DBUS/RAM,RAMADR/#,WORK/CBR,DT/4T,SKIP/ADEQ0" ; 8053 .ENDIF/INHCST ; 8054 ; T10KL.MCR[7,3] 15:10 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 ; 8055 ; ; 8056 ; ; 8057 ; ; 8058 ; KL10 PAGING - WORD FORMATS ; 8059 ; ; 8060 ;Section Pointer ; 8061 ; ; 8062 ;The section pointer is found in the user or exec section table. ; 8063 ;(Part of UPT or EPT.) ; 8064 ; ; 8065 ;Section pointer provides (via the SPT) the physical address of ; 8066 ;the PAGE TABLE for the given section. ; 8067 ; ; 8068 ; Code: 0 No-access (trap) ; 8069 ; 1 Immediate ; 8070 ; 2 Share ; 8071 ; 3 Indirect ; 8072 ; 4-7 Unused, reserved ; 8073 ; ; 8074 ; 0 1 2 3 4 5 6 18 35 ; 8075 ; +----+-+-+-+-+---------+-------------------------+ ; 8076 ; !CODE!P!W! !C!/////////! PAGE TABLE IDENTIFIER ! ; 8077 ; !010 ! ! ! ! !/////////! (SPT INDEX) ! ; 8078 ; +----+-+-+-+-+---------+-------------------------+ ; 8079 ; ; 8080 ; NORMAL SECTION POINTER (Code = 2) ; 8081 ; ; 8082 ; 0 2 3 4 5 6 9 18 35 ; 8083 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8084 ; !CODE!P!W! !C!///!SECTION !SECTION TABLE IDENTIFIER! ; 8085 ; !011 ! ! ! ! !///!TABLE INDEX! (SPT INDEX) ! ; 8086 ; +----+-+-+-+-+---+-----------+------------------------+ ; 8087 ; ; 8088 ; INDIRECT SECTION POINTER (Code = 3) ; 8089 ; T10KL.MCR[7,3] 15:10 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 ; 8090 ;PAGE POINTERS ; 8091 ; ; 8092 ;FOUND IN PAGE TABLES ; 8093 ; ; 8094 ; 0 1 2 3 4 5 6 12 35 ; 8095 ; +----+-+-+-+-+----+------------------------------+ ; 8096 ; !CODE!P!W! !C!////! PHYSICAL ADDRESS OF PAGE ! ; 8097 ; !001 ! ! ! ! !////! ! ; 8098 ; +----+-+-+-+-+----+------------------------------+ ; 8099 ; ; 8100 ; IMMEDIATE POINTER (code field = 1) ; 8101 ; ; 8102 ; B12-35 give PHYSICAL ADDRESS OF PAGE ; 8103 ; if B12-17 >< 0, page not in core-trap ; 8104 ; if B12-17 = 0, B23-35 give CORE PAGE ; 8105 ; NUMBER of page, B18-22 MBZ ; 8106 ; ; 8107 ; ; 8108 ; ; 8109 ; ; 8110 ; ; 8111 ; 0 2 3 6 18 35 ; 8112 ; +-----+-------+---------+------------------------+ ; 8113 ; !CODE !SAME AS!/////////! SPT INDEX ! ; 8114 ; !010 ! IMMED.!/////////! ! ; 8115 ; +-----+-------+---------+------------------------+ ; 8116 ; ; 8117 ; SHARED POINTER (code field = 2) ; 8118 ; ; 8119 ; B18-35 Give SPT INDEX (SPTX). SPTX + SPT BASE ; 8120 ; ADDRESS = physical core address of word ; 8121 ; holding physical address of page. ; 8122 ; T10KL.MCR[7,3] 15:10 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 ; 8123 ; 0 1 2 3 6 9 17 18 35 ; 8124 ; +----+--------+---+-------+----------------------+ ; 8125 ; !CODE!SAME AS !///! PAGE ! PAGE TABLE IDENTIFIER! ; 8126 ; !011 ! IMMED. !///!NUMBER ! (SPT INDEX) ! ; 8127 ; +----+--------+---+-------+----------------------+ ; 8128 ; ; 8129 ; INDIRECT POINTER (code field = 3) ; 8130 ; ; 8131 ; This pointer type causes another pointer to be fetched ; 8132 ; and interpreted. The new pointer is found in word N ; 8133 ; (B9-17) of the page addressed by C(SPT + SPTX). ; 8134 ; ; 8135 ; ; 8136 ; ; 8137 ; SPT ENTRY ; 8138 ; ; 8139 ; Found in the SPT, i.e., when fetching C(SPT +SPTX) ; 8140 ; ; 8141 ; 12 35 ; 8142 ; +--------------------+---------------------------+ ; 8143 ; !////////////////////! PHYSICAL ADDRESS OF PAGE ! ; 8144 ; !////////////////////! OR PAGE TABLE ! ; 8145 ; +--------------------+---------------------------+ ; 8146 ; ; 8147 ; B12-35 Give PHYSICAL ADDRESS of page. ; 8148 ; ; 8149 ; The base address (physical core address) of the SPT ; 8150 ; resides in one AC of the reserved AC block. ; 8151 ; T10KL.MCR[7,3] 15:10 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 ; 8152 ;PHYSICAL STORAGE ADDRESS ; 8153 ; ; 8154 ;Found in B12-35 of IMMEDIATE POINTERS and SPT ENTRIES. ; 8155 ; ; 8156 ; 12 17 18 23 35 ; 8157 ; +---------+----+-----------------+ ; 8158 ; ! !MBZ ! CORE PAGE NUMBER! ; 8159 ; ! ! ! IF B12-17 = 0 ! ; 8160 ; +---------+----+-----------------+ ; 8161 ; ; 8162 ; If B12-17 = 0, then B23-35 are CORE PAGE NUMBER (i.e., ; 8163 ; B14-26 of physical core address) of page and B18-22 ; 8164 ; MBZ. If B12-17 >< 0, then address is not core and ; 8165 ; pager traps. ; 8166 ; ; 8167 ; ; 8168 ; ; 8169 ;CORE STATUS TABLE ENTRY ; 8170 ; ; 8171 ;Found when fetching C(CBR + CORE PAGENO) ; 8172 ; ; 8173 ; 0 5 32 34 35 ; 8174 ; +-------+-------------------------------+------+-+ ; 8175 ; ! CODE ! ! !M! ; 8176 ; +-------+-------------------------------+------+-+ ; 8177 ; ; 8178 ; B0-5 are code field: ; 8179 ; ; 8180 ; 0 - unavailable, trap ; 8181 ; ; 8182 ; 1-77 - available ; 8183 ; ; 8184 ; ; 8185 ; ; 8186 ; B32-34 reserved for future hardware specification. ; 8187 ; ; 8188 ; B35 is "modified" bit, set on any write ref to page. ; 8189 ; T10KL.MCR[7,3] 15:10 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 ; 8190 ;QUANTITIES IN HARDWARE REGISTERS ; 8191 ; ; 8192 ;SPT SPT Base Register ; 8193 ; ; 8194 ; 14 35 ; 8195 ; +--------------------------------+ ; 8196 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8197 ; +--------------------------------+ ; 8198 ; ; 8199 ;CBR CST Base Register ; 8200 ; ; 8201 ; 14 35 ; 8202 ; +--------------------------------+ ; 8203 ; ! PHYSICAL CORE WORD ADDRESS ! ; 8204 ; +--------------------------------+ ; 8205 ; ; 8206 ;CSTMSK CST Update Mask ; 8207 ; ; 8208 ; 0 32 35 ; 8209 ; +------------------------------------------+---+-+ ; 8210 ; ! MASK !111!1! ; 8211 ; +------------------------------------------+---+-+ ; 8212 ; ; 8213 ; ANDed with CST word during update ; 8214 ; ; 8215 ;(B32-35 must be all 1's to preserve existing CST information) ; 8216 ; ; 8217 ;CSTDATA CST Update Data ; 8218 ; ; 8219 ; 0 32 34 35 ; 8220 ; +------------------------------------------+---+-+ ; 8221 ; ! DATA !000!0! ; 8222 ; +------------------------------------------+---+-+ ; 8223 ; ; 8224 ; IORed with CST word during update ; 8225 ; ; 8226 ;(B32-35 must be all 0's to preserve existing CST information) ; 8227 ; ; 8228 ;All unspecified bits and fields are reserved for future ; 8229 ;specification by DEC. ; 8230 ; ; 8231 ; T10KL.MCR[7,3] 15:10 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 ; 8232 .BIN ; 8233 ; 8234 .DCODE D 0257, 1215,1553,0100 ; 8235 257: IOT, AC, J/MAP ; 8236 .UCODE ; 8237 ; 8238 1553: ; 8239 MAP: [AR]_[AR].OR.#, ;ASSUME PHYSICAL REF ; 8240 #/160000, ;FAKE ANSWER U 1553, 3727,3551,0303,4374,0007,0700,0000,0016,0000 ; 8241 HOLD RIGHT ; .. U 3727, 3730,3771,0006,4354,4007,0700,0000,0000,0000 ; 8242 [BRX]_VMA ;PUT VMA AND FLAGS IN BRX ; 8243 [BRX]_[BRX].AND.#, ;JUST KEEP USER BIT U 3730, 3731,4551,0606,4374,0007,0700,0000,0040,0000 ; 8244 #/400000, HOLD RIGHT ; .. U 3731, 3732,3333,0006,7174,4007,0700,0400,0000,0210 ; 8245 WORK[SV.VMA]_[BRX] ;SAVE IN WORKSPACE U 3732, 3733,3771,0005,7274,4007,0701,0000,0000,0230 ; 8246 [BR]_WORK[APR] ;GET APR FLAGS U 3733, 2550,4553,0500,4374,4007,0331,0000,0003,0000 ; 8247 TR [BR], #/030000 ;PAGING ENABLED? U 2550, 3750,3771,0013,4370,4007,0700,0000,0040,0002 ; 8248 =0 STATE_[MAP], J/PFMAP ;YES--DO REAL MAP U 2551, 0100,3440,0303,0174,4156,4700,0400,0000,0000 ; 8249 AC_[AR], NEXT INST ;NO--RETURN VIRTUAL ADDRESS ; 8250 ;HARDWARE COMES HERE ON PAGE TABLE NOT VALID (OR INTERRUPT) WHEN ; 8251 ; STARTING A MEMORY REFERENCE. MICOWORD ADDRESS OF INSTRUCTION DOING ; 8252 ; MEM WAIT IS SAVED ON THE STACK. ; 8253 3777: ; 8254 PAGE-FAIL: U 3777, 3734,3333,0003,7174,4007,0700,0400,0000,0211 ; 8255 WORK[SV.AR]_[AR] U 3734, 3735,3333,0006,7174,4007,0700,0400,0000,0214 ; 8256 ITRAP: WORK[SV.BRX]_[BRX] U 3735, 3736,3771,0006,4354,4007,0700,0000,0000,0000 ; 8257 [BRX]_VMA U 3736, 3737,3333,0006,7174,4007,0700,0400,0000,0210 ; 8258 WORK[SV.VMA]_[BRX] ; 8259 WORK[SV.ARX]_[ARX], U 3737, 1060,3333,0004,7174,4007,0370,0400,0000,0212 ; 8260 SKIP IRPT ;SEE IF INTERRUPT (SAVE DISPATCH) ; 8261 =0000 ; 8262 PFD: DBM/PF DISP, DBUS/DBM, ;BRING CODE TO 2901'S ; 8263 AD/D, DEST/PASS, 4T, ;PUT ON DP 18-21 U 1060, 1060,3773,0000,4304,4003,1702,0000,0000,0000 ; 8264 DISP/DP LEFT, J/PFD ;DISPATCH ON IT ; 8265 =0001 ;(1) INTERRUPT U 1061, 1573,3333,0005,7174,4007,0700,0400,0000,0213 ; 8266 WORK[SV.BR]_[BR], J/PFPI1 ; 8267 =0011 ;(3) BAD DATA FROM MEMORY ; 8268 [BRX]_IO DATA, ;GET THE BAD DATA ; 8269 AD PARITY OK/0, ; DO NOT LOOK AT PARITY U 1063, 3745,3771,0006,4374,4007,0700,0000,0000,0000 ; 8270 J/BADDATA ;SAVE IN AC BLK 7 ; 8271 =0101 ;(5) NXM ERROR U 1065, 1564,4571,1206,4374,4007,0700,0000,0037,0000 ; 8272 [BRX]_[370000] XWD 0, J/HARD ; 8273 =0111 ;(7) NXM & BAD DATA U 1067, 1564,4571,1206,4374,4007,0700,0000,0037,0000 ; 8274 [BRX]_[370000] XWD 0, J/HARD ; 8275 =1000 ;(10) WRITE VIOLATION U 1070, 3750,3333,0005,7174,4007,0700,0400,0000,0213 ; 8276 WORK[SV.BR]_[BR], J/PFMAP ; 8277 =1001 ;[123] (11) 1 ms timer and movsrj U 1071, 1573,3333,0005,7174,4007,0700,0400,0000,0213 ; 8278 WORK[SV.BR]_[BR], J/PFPI1 ; 8279 =1010 ;(12) PAGE NOT VALID U 1072, 3750,3333,0005,7174,4007,0700,0400,0000,0213 ; 8280 WORK[SV.BR]_[BR], J/PFMAP ; 8281 =1011 ;(13) EXEC/USER MISMATCH U 1073, 3750,3333,0005,7174,4007,0700,0400,0000,0213 ; 8282 WORK[SV.BR]_[BR], J/PFMAP ; 8283 = ; 8284 ; 8285 BADDATA: U 3745, 3746,3333,0006,7174,4007,0700,0400,0000,0160 ; 8286 WORK[BADW0]_[BRX] ;SAVE BAD WORD U 3746, 3747,3333,0006,7174,4007,0700,0400,0000,0161 ; 8287 WORK[BADW1]_[BRX] ;AGAIN ; T10KL.MCR[7,3] 15:10 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 3747, 1564,4571,1206,4374,4007,0700,0000,0036,0000 ; 8288 [BRX]_[360000] XWD 0, J/HARD ; 8289 ; T10KL.MCR[7,3] 15:10 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 ; 8290 ;WE HAVE SAVED AR, ARX, BR AND BRX. WE MERGE IN HERE FROM MAP ; 8291 ; INSTRUCTION, SAVE THE VMA AND START THE PAGE FAIL WORD. U 3750, 3752,4223,0000,4364,4277,0700,0200,0000,0010 ; 8292 PFMAP: ABORT MEM CYCLE ;CLEAR PAGE FAIL ; 8293 [FLG]_[FLG].OR.#, ;PRESET W AND C TO 1 ; 8294 FLG.W/1, FLG.C/1, ;BITS INVOLVED U 3752, 3753,3551,1313,4374,0007,0700,0000,0002,4000 ; 8295 HOLD RIGHT ;LEAVE RH ALONE U 3753, 2552,4553,0600,4374,4007,0321,0000,0002,0000 ; 8296 TL [BRX], WRITE TEST/1 ;IS THIS A WRITE TEST? ; 8297 =0 [BRX]_[BRX].OR.#, ; 8298 #/10000, U 2552, 2553,3551,0606,4374,0007,0700,0000,0001,0000 ; 8299 HOLD RIGHT ;YES--TURN INTO WRITE REF ; 8300 [BRX]_[BRX].AND.#, ;START PAGE FAIL WORD ; 8301 #/411000, ;SAVE 3 INTERESTING BITS U 2553, 3755,4551,0606,4374,0007,0700,0000,0041,1000 ; 8302 HOLD RIGHT ;SAVE VIRTUAL ADDRESS ; 8303 ;USER ADDR (400000) ; 8304 ;WRITE REF (010000) ; 8305 ;PAGED REF (001000) ; 8306 [BRX]_[BRX].XOR.#, ;FIX BIT 8 U 3755, 3756,6551,0606,4374,0007,0700,0000,0000,1000 ; 8307 #/1000, HOLD RIGHT ; 8308 [BR]_[BRX], ;COPY VIRTUAL ADDRESS U 3756, 2554,3441,0605,4174,4007,0700,2000,0071,0007 ; 8309 SC_7 ;PREPARE TO SHIFT 9 PLACES ; 8310 =0 ; 8311 PF25: [BR]_[BR]*.5, ;RIGHT ADJUST PAGE # ; 8312 STEP SC, ;COUNT SHIFT STEPS U 2554, 2554,3447,0505,4174,4007,0630,2000,0060,0000 ; 8313 J/PF25 ;LOOP FOR 9 ; 8314 [BR]_[BR].AND.# CLR LH, ;MASK TO 9 BITS U 2555, 3757,4251,0505,4374,4007,0700,0000,0000,0777 ; 8315 #/777 ; .. ; 8316 .IF/KLPAGE ;;8317 .IF/KIPAGE ;;8318 TL [EBR], ;KI MODE REFILL? ;;8319 #/40 ;FLAG BIT ;;8320 =0 ; 8321 .ENDIF/KIPAGE ; 8322 READ [BRX], ;USER REF? (KL MODE) ; 8323 SKIP DP0, ; .. U 3757, 2556,3333,0006,4174,4007,0520,0000,0000,0000 ; 8324 J/PF30 ;CONTINUE AT PF30 ; 8325 .ENDIF/KLPAGE ;;8326 .IF/KIPAGE ;;8327 [ARX]_[BR]*.5, ;KI10 MODE REFILL ;;8328 J/KIFILL ;GO HANDLE EASY CASE ; 8329 .ENDIF/KIPAGE ; 8330 ; T10KL.MCR[7,3] 15:10 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 ; 8331 .IF/KLPAGE ; 8332 ;HERE IN TOPS-20 MODE ; 8333 ;PICK UP CORRECT SECTION POINTER ; 8334 =0 ; 8335 PF30: [ARX]_WORK[PTA.E], ;EXEC MODE ; 8336 SKIP AD.EQ.0, 4T, ;SEE IF VALID U 2556, 2562,3771,0004,7274,4007,0622,0000,0000,0423 ; 8337 J/PF35 ;CONTINUE BELOW ; 8338 [ARX]_WORK[PTA.U], ;USER MODE U 2557, 2560,3771,0004,7274,4007,0622,0000,0000,0424 ; 8339 SKIP AD.EQ.0, 4T ;SEE IF VALID ; 8340 =0 VMA_[ARX]+[BR], ;POINTER VALID ; 8341 VMA PHYSICAL READ, ;START MEMORY U 2560, 1134,0113,0405,4174,4007,0700,0200,0024,1016 ; 8342 J/PF77 ;CONTINUE BELOW ; 8343 [AR]_[UBR]+#, 3T, ;USER MODE ; 8344 #/540, ;OFFSET TO UPT U 2561, 3760,0551,1103,4374,4007,0701,0000,0000,0540 ; 8345 J/PF40 ;GO GET POINTER ; 8346 ; 8347 =0 ; 8348 PF35: VMA_[ARX]+[BR], ;POINTER VALID ; 8349 VMA PHYSICAL READ, ;START MEMORY U 2562, 1134,0113,0405,4174,4007,0700,0200,0024,1016 ; 8350 J/PF77 ;CONTINUE BELOW ; 8351 [AR]_[EBR]+#, 3T, ;EXEC MODE U 2563, 3760,0551,1003,4374,4007,0701,0000,0000,0540 ; 8352 #/540 ;OFFSET TO EPT ; 8353 PF40: VMA_[AR], ;LOAD THE VMA ; 8354 START READ, ;START THE MEMORY CRANKING U 3760, 3761,3443,0300,4174,4007,0700,0200,0024,1016 ; 8355 VMA PHYSICAL ;ABSOLUTE ADDRESS ; 8356 MEM READ, ;WAIT FOR MEMORY U 3761, 1000,3771,0003,4365,5007,0700,0200,0000,0002 ; 8357 [AR]_MEM ;POINT POINTER IN AR ; 8358 ;LOOK AT SECTION POINTER AND DISPATCH ON TYPE ; 8359 =000 ; 8360 PF45: SC_7, ;FETCH SECTION 0 POINTER U 1000, 1507,4443,0000,4174,4007,0700,2010,0071,0007 ; 8361 CALL [SETPTR] ;FIGURE OUT POINTER TYPE ; 8362 SECIMM: TL [AR], ;IMMEDIATE POINTER ; 8363 #/77, ;TEST FOR 12-17 = 0 U 1001, 2566,4553,0300,4374,4007,0321,0000,0000,0077 ; 8364 J/PF50 ;CONTINUE AT PF50 ; 8365 [AR]_[AR]+WORK[SBR], ;SHARED SECTION U 1002, 2243,0551,0303,7274,4007,0701,0000,0000,0215 ; 8366 J/SECSHR ;GO FETCH POINTER FROM SPT ; 8367 [AR]_[AR]+WORK[SBR], ;INDIRECT SECTION POINTER U 1003, 1512,0551,0303,7274,4007,0701,0010,0000,0215 ; 8368 CALL [RDPT] ;GO FETCH SPT ENTRY ; 8369 =111 TL [AR], ;12 TO 17 = 0? U 1007, 2564,4553,0300,4374,4007,0321,0000,0000,0077 ; 8370 #/77 ; .. ; 8371 = U 2564, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8372 =0 PAGE FAIL TRAP ;NO ; 8373 [AR]_[AR]*2, ;FIRST SHIFT U 2565, 1010,3445,0303,4174,4007,0630,2000,0060,0000 ; 8374 STEP SC ;SC WAS LOADED AT PF45 ; 8375 =0*0 ; 8376 PF60: [AR]_[AR]*2, ;CONVERT TO ADDRESS OF ; 8377 STEP SC, ; SECTION TABLE U 1010, 1010,3445,0303,4174,4007,0630,2000,0060,0000 ; 8378 J/PF60 U 1011, 1512,4443,0000,4174,4007,0700,0010,0000,0000 ; 8379 CALL [RDPT] ;READ SECTION TABLE U 1015, 1000,4443,0000,4174,4007,0700,0000,0000,0000 ; 8380 =1*1 J/PF45 ;TRY AGAIN ; 8381 = ; 8382 ; T10KL.MCR[7,3] 15:10 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 ; 8383 ;STILL .IF/KLPAGE ; 8384 ;HERE FOR SHARED SECTION. AR GETS THE ADDRESS OF PAGE TABLE ; 8385 =0** U 2243, 1512,4443,0000,4174,4007,0700,0010,0000,0000 ; 8386 SECSHR: CALL [RDPT] ;READ WORD FROM SPT U 2247, 2566,4553,0300,4374,4007,0321,0000,0000,0077 ; 8387 TL [AR], #/77 ;TEST FOR BITS 12-17 = 0 ; 8388 ; 8389 ;HERE WITH ADDRESS OF PAGE TABLE IN AR AND SKIP ON ; 8390 ; BITS 12 THRU 17 EQUAL TO ZERO ; 8391 =0 U 2566, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8392 PF50: PAGE FAIL TRAP ;BITS 12-17 .NE. 0 ; 8393 [ARX]_[AR].AND.# CLR LH, ;PAGE NUMBER OF PAGE TABLE U 2567, 2545,4251,0304,4374,4007,0700,0000,0000,3777 ; 8394 #/3777 ;11 BIT PHYSICAL PAGE # ; 8395 .IFNOT/NOCST ; 8396 =0* [AR]_[ARX], ;COPY ADDRESS U 2545, 1503,3441,0403,4174,4007,0700,0010,0000,0000 ; 8397 CALL [UPCST] ;UPDATE CST0 U 2547, 2570,3551,0303,7274,4007,0701,0000,0000,0220 ; 8398 PF70: [AR]_[AR].OR.WORK[PUR] ;PUT IN NEW AGE AND ; 8399 ; USE BITS ;;8400 .IFNOT/INHCST ;;8401 =0** START NO TEST WRITE, ;START MEMORY WRITE ;;8402 CALL [IBPX] ;GO STORE IN MEMORY ; 8403 .ENDIF/INHCST ; 8404 .IF/INHCST ; 8405 =0** SKIP NO CST, ;SEE IF A CST U 2570, 2634,3773,0000,7274,4007,0622,0010,0000,0216 ; 8406 CALL [WRCST] ;AND GO WRITE IN MEMORY ; 8407 .ENDIF/INHCST U 2574, 2572,4443,0000,4174,4007,0700,2000,0071,0007 ; 8408 SC_7 ;THIS CAN BE BUMMED ; 8409 =0 ; 8410 PF75: [ARX]_[ARX]*2, ;CONVERT PAGE NUMBER TO ; 8411 STEP SC, ; PAGE ADDRESS U 2572, 2572,3445,0404,4174,4007,0630,2000,0060,0000 ; 8412 J/PF75 ;LOOP OVER 9 STEPS ; 8413 ; T10KL.MCR[7,3] 15:10 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 ; 8414 ;STILL .IF/KLPAGE ; 8415 ;WE NOW HAVE THE ADDRESS OF THE PAGE TABLE ENTRY. GO ; 8416 ; READ IT AND START ANALYSIS ; 8417 ; 8418 ;IF WE ARE HERE FOR THE FIRST TIME FOR THE USER OR EXEC SAVE THE ; 8419 ; ADDRESS OF THE PAGE TABLE IN PTA.E OR PTA.U SO THAT WE DO NOT ; 8420 ; HAVE TO DO THE SECTION LOOKUP EVERY TIME. U 2573, 1040,3333,0006,4174,4007,0520,0000,0000,0000 ; 8421 READ [BRX], SKIP DP0 ;USER OR EXEC REF? ; 8422 =000 [AR]_WORK[PTA.E], ;EXEC MODE ; 8423 SKIP AD.EQ.0, 4T, ;SEE IF SET YET U 1040, 2650,3771,0003,7274,4007,0622,0010,0000,0423 ; 8424 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 8425 [AR]_WORK[PTA.U], ;USER MODE ; 8426 SKIP AD.EQ.0, 4T, ;SEE IF SET YET U 1041, 2650,3771,0003,7274,4007,0622,0010,0000,0424 ; 8427 CALL [SHDREM] ;SHOULD WE REMEMBER PTR ; 8428 WORK[PTA.E]_[ARX], ;SAVE FOR EXEC U 1042, 1047,3333,0004,7174,4007,0700,0400,0000,0423 ; 8429 J/PF76 ;CONTINUE BELOW ; 8430 WORK[PTA.U]_[ARX], ;SAVE FOR USER U 1043, 1047,3333,0004,7174,4007,0700,0400,0000,0424 ; 8431 J/PF76 ;CONTINUE BELOW ; 8432 =111 ; 8433 PF76: VMA_[ARX]+[BR], ;READ PAGE POINTER ; 8434 START READ, U 1047, 1134,0113,0405,4174,4007,0700,0200,0024,1016 ; 8435 VMA PHYSICAL ; 8436 = ; 8437 =00 ; 8438 PF77: MEM READ, ;START ANALYSIS OF POINTER ; 8439 [AR]_MEM, U 1134, 1507,3771,0003,4365,5007,0700,0210,0000,0002 ; 8440 CALL [SETPTR] ; 8441 PTRIMM: TL [AR], ;IMMEDIATE POINTER ; 8442 #/77, ;CHECK FOR BITS 0-5 U 1135, 1140,4553,0300,4374,4007,0321,0000,0000,0077 ; 8443 J/PF80 ;GO TO PF80 ; 8444 [AR]_[AR]+WORK[SBR], ;SHARED POINTER U 1136, 2571,0551,0303,7274,4007,0701,0000,0000,0215 ; 8445 J/PTRSHR ;GO TO READ SPT ; 8446 ; T10KL.MCR[7,3] 15:10 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 ; 8447 ;STILL .IF/KLPAGE ; 8448 ;INDIRECT POINTER. CHANGE PAGE # AND LOOK FOR PAGE TABLE ; 8449 PTRIND: [BR]_[AR] SWAP, ;PUT IN RIGHT HALF U 1137, 2576,3770,0305,4344,4007,0670,0000,0000,0000 ; 8450 SKIP/-1 MS ;DID CLOCK GO OFF ; 8451 =0 WORK[SV.AR1]_[AR], ;YES--UPDATE CLOCK U 2576, 2610,3333,0003,7174,4007,0700,0400,0000,0426 ; 8452 J/PFTICK ; .. ; 8453 [BR]_[BR].AND.# CLR LH, ;UPDATE PAGE # AND RESTART ; 8454 #/777, ;MASK FOR PAGE # U 2577, 2600,4251,0505,4374,4007,0370,0000,0000,0777 ; 8455 SKIP IRPT ;SEE IF THIS IS A LOOP ; 8456 =0 [AR]_[AR].AND.#, ;CHANGE INDIRECT POINTER ; 8457 #/277000, ; INTO SHARE POINTER ; 8458 HOLD RIGHT, ; .. U 2600, 1000,4551,0303,4374,0007,0700,0000,0027,7000 ; 8459 J/PF45 ;GO BACK AND TRY AGAIN U 2601, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8460 PAGE FAIL TRAP ;POINTER LOOP ; 8461 ; 8462 =0** U 2571, 1512,4443,0000,4174,4007,0700,0010,0000,0000 ; 8463 PTRSHR: CALL [RDPT] ;GO LOOK AT POINTER ; 8464 TL [AR], ;BITS 12-17 .EQ. 0? U 2575, 1140,4553,0300,4374,4007,0321,0000,0000,0077 ; 8465 #/77 ; 8466 ; 8467 ;HERE WITH FINAL POINTER. SKIP IF 12-17 NOT EQUAL TO ZERO ; 8468 .IFNOT/NOCST ; 8469 =00 U 1140, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8470 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ; 8471 [ARX]_[AR].AND.# CLR LH, ;SAVE PHYSICAL PAGE # ; 8472 #/3777, ;MASK TO 13 BITS U 1141, 1503,4251,0304,4374,4007,0700,0010,0000,3777 ; 8473 CALL [UPCST] ;UPDATE CST0 ; 8474 =11 ;;8475 .IF/NOCST ;;8476 =0 ;;8477 PF80: PAGE FAIL TRAP ;NO--TAKE A TRAP ; 8478 .ENDIF/NOCST ; 8479 ; 8480 ;HERE WE HAVE CST ENTRY IN AR, PAGE FAIL WORD IN BRX. GO LOOK ; 8481 ; AT WRITABLE AND WRITTEN BITS ; 8482 PF90: [BRX]_[BRX].OR.#, ;TRANSLATION IS VALID U 1143, 3762,3551,0606,4374,0007,0700,0000,0010,0000 ; 8483 #/100000, HOLD RIGHT ; .. U 3762, 2602,4553,1300,4374,4007,0321,0000,0002,0000 ; 8484 TL [FLG], FLG.W/1 ;IS THIS PAGE WRITABLE? ; 8485 =0 [BRX]_[BRX].OR.#, ;YES--INDICATE THAT IN PFW ; 8486 #/020000, U 2602, 3763,3551,0606,4374,4007,0700,0000,0002,0000 ; 8487 J/PF100 ;NOT WRITE VIOLATION ; 8488 TL [BRX], ;IS THIS A WRITE REF? U 2603, 2604,4553,0600,4374,4007,0321,0000,0003,0000 ; 8489 WRITE TEST/1, WRITE CYCLE/1 U 2604, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8490 =0 PAGE FAIL TRAP ;WRITE VIOLATION ; 8491 PF107: ; 8492 .IFNOT/NOCST ; 8493 [AR]_[AR].OR.WORK[PUR], ;PUT IN NEW AGE U 2605, 2613,3551,0303,7274,4007,0701,0000,0000,0220 ; 8494 J/PF110 ;GO TO STORE CST ENTRY ; 8495 .ENDIF/NOCST ;;8496 .IF/NOCST ;;8497 PFDONE: TR [FLG], ;;8498 #/400000, ;;8499 J/PF140 ; 8500 .ENDIF/NOCST ; 8501 ; 8502 =0* ; T10KL.MCR[7,3] 15:10 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 ; 8503 PFTICK: [AR]_WORK[TIME1], ;UPDATE TIMER U 2610, 3575,3771,0003,7274,4117,0701,0010,0000,0301 ; 8504 SPEC/CLRCLK, CALL [TOCK] ; 8505 [AR]_WORK[SV.AR1], ;RESTORE AR U 2612, 1137,3771,0003,7274,4007,0701,0000,0000,0426 ; 8506 J/PTRIND ;GO TRY AGAIN ; 8507 ; T10KL.MCR[7,3] 15:10 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 ; 8508 ;STILL .IF/KLPAGE ; 8509 ;HERE IF PAGE IS WRITABLE U 3763, 2606,4553,0600,4374,4007,0321,0000,0001,0000 ; 8510 PF100: TL [BRX], WRITE CYCLE/1 ;IS THIS A WRITE REF? ; 8511 =0 [AR]_[AR].OR.#, ;YES--SET WRITTEN BIT ; 8512 #/1, ; 8513 HOLD LEFT, U 2606, 2614,3551,0303,4370,4007,0700,0000,0000,0001 ; 8514 J/PF105 ; 8515 TR [AR], ;NOT WRITE, ALREADY WRITTEN? U 2607, 2614,4553,0300,4374,4007,0331,0000,0000,0001 ; 8516 #/1 ; 8517 =0 ; 8518 PF105: [BRX]_[BRX].OR.#, ;WRITTEN SET BIT ; 8519 #/040000, ;MARK PAGE AS ; 8520 HOLD RIGHT, ;WRITABLE U 2614, 2605,3551,0606,4374,0007,0700,0000,0004,0000 ; 8521 J/PF107 ;STORE CST WORD ; 8522 [FLG]_[FLG].AND.NOT.#, ;NOT WRITTEN, CAUSE TRAP ON ; 8523 FLG.W/1, ; WRITE ATTEMPT ; 8524 HOLD RIGHT, ;ONLY CLEAR LH U 2615, 2605,5551,1313,4374,0007,0700,0000,0002,0000 ; 8525 J/PF107 ; 8526 .IFNOT/NOCST ; 8527 =0** ; 8528 PF110: ;;8529 .IFNOT/INHCST ;;8530 START NO TEST WRITE, ;;8531 CALL [IBPX] ;STORE CST ENTRY ; 8532 .ENDIF/INHCST ; 8533 .IF/INHCST ; 8534 SKIP NO CST, U 2613, 2634,3773,0000,7274,4007,0622,0010,0000,0216 ; 8535 CALL [WRCST] ; 8536 .ENDIF/INHCST ; 8537 ; 8538 .ENDIF/KLPAGE ; 8539 ; T10KL.MCR[7,3] 15:10 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 ; 8540 ; 8541 ;HERE WHEN WE HAVE FIGURED OUT PHYSICAL ADDRESS (IN ARX) AND FLAGS ; 8542 ; (IN BRX) RELOAD PAGE TABLE. ; 8543 PFDONE: TR [FLG], ;MAP INSTRUCTION? U 2617, 2620,4553,1300,4374,4007,0331,0000,0040,0000 ; 8544 #/400000 ; 8545 .ENDIF/NOCST ; 8546 =0 ; 8547 PF140: [AR]_[ARX], ;GET PHYSCIAL PAGE # ; 8548 SC_7, ;PREPARE TO CONVERT TO U 2620, 2622,3441,0403,4174,4007,0700,2000,0071,0007 ; 8549 J/PF130 ; WORD ADDRESS ; 8550 [AR]_WORK[SV.VMA], ;RESTORE VMA U 2621, 3770,3771,0003,7274,4007,0701,0000,0000,0210 ; 8551 J/PF120 ; 8552 =0 ; 8553 PF130: [AR]_[AR]*2, ;CONVERT TO WORD # ; 8554 STEP SC, U 2622, 2622,3445,0303,4174,4007,0630,2000,0060,0000 ; 8555 J/PF130 ; 8556 [AR]_[AR].AND.#, ;JUST ADDRESS BITS ; 8557 #/3, U 2623, 3764,4551,0303,4374,0007,0700,0000,0000,0003 ; 8558 HOLD RIGHT U 3764, 3765,4221,0013,4170,4007,0700,0000,0000,0000 ; 8559 END MAP ;CLEAR MAP FLAGS ; 8560 [BRX]_[BRX].OR.#, ;TURN ON THE TRANSLATION ; 8561 #/100000, ; VALID BIT U 3765, 3766,3551,0606,4374,0007,0700,0000,0010,0000 ; 8562 HOLD RIGHT ; IN LEFT HALF ONLY U 3766, 2624,4553,1300,4374,4007,0321,0000,0000,4000 ; 8563 TL [FLG], FLG.C/1 ;CACHE BIT SET? ; 8564 =0 [BRX]_[BRX].OR.#, ;YES--SET IN MAP WORD U 2624, 2625,3551,0606,4374,0007,0700,0000,0000,2000 ; 8565 #/002000, HOLD RIGHT ; .. ; 8566 [BRX]_[BRX].AND.#, ;PRESERVE WORD # U 2625, 3767,4551,0606,4370,4007,0700,0000,0000,0777 ; 8567 #/777, HOLD LEFT ; IN PAGE FAIL WORD ; 8568 [AR]_[AR].OR.[BRX], ;COMPLETE MAP INSTRUCTION U 3767, 1500,3111,0603,4174,4003,7700,0200,0003,0001 ; 8569 EXIT ; 8570 ; T10KL.MCR[7,3] 15:10 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 3770, 3771,3441,0305,4174,4007,0700,0000,0000,0000 ; 8571 PF120: [BR]_[AR] ;COPY PAGE FAIL WORD ; 8572 [BR]_[AR].AND.NOT.#, ;CLEAR BITS WHICH START A CYCLE ; 8573 READ CYCLE/1, ; .. ; 8574 WRITE CYCLE/1, ; .. ; 8575 WRITE TEST/1, ; .. U 3771, 3772,5551,0305,4374,0007,0700,0000,0007,0000 ; 8576 HOLD RIGHT ;JUST DO LEFT HALF ; 8577 VMA_[BR], 3T, ;RESTORE VMA U 3772, 3773,3443,0500,4174,4007,0701,0200,0000,0030 ; 8578 DP FUNC/1 ;SET USER ACCORDING TO WHAT IT WAS ; 8579 [ARX]_[ARX].AND.# CLR LH, ;JUST KEEP PAGE # U 3773, 3774,4251,0404,4374,4007,0700,0000,0000,3777 ; 8580 #/3777 ; .. U 3774, 3775,3551,0406,4374,4007,0700,0000,0040,0000 ; 8581 [BRX]_[ARX].OR.#, #/400000 ;SET VALID BITS U 3775, 2626,4553,1300,4374,4007,0321,0000,0002,0000 ; 8582 TL [FLG], FLG.W/1 ;WANT WRITE SET? U 2626, 2627,3551,0606,4374,4007,0700,0000,0004,0000 ; 8583 =0 [BRX]_[BRX].OR.#, #/040000 ;SET WRITE BIT ; 8584 TL [FLG], FLG.C/1, ;WANT CACHE SET? U 2627, 2630,4553,1300,4374,4147,0321,0000,0000,4000 ; 8585 LOAD PAGE TABLE ;LOAD PAGE TABLE ON NEXT ; 8586 ; MICRO INSTRUCTION ; 8587 =0 [BRX]_[BRX].OR.#, ;SET CACHE BIT U 2630, 3776,3551,0606,4374,4007,0700,0000,0002,0000 ; 8588 #/020000, J/PF125 ;CACHE BIT U 2631, 3776,3333,0006,4174,4007,0700,0000,0000,0000 ; 8589 READ [BRX] ;LOAD PAGE TABLE U 3776, 1435,3771,0004,7274,4007,0701,0000,0000,0212 ; 8590 PF125: [ARX]_WORK[SV.ARX] U 1435, 1500,3771,0005,7274,4007,0701,0000,0000,0213 ; 8591 [BR]_WORK[SV.BR] U 1500, 1501,3771,0006,7274,4007,0701,0000,0000,0214 ; 8592 [BRX]_WORK[SV.BRX] ; 8593 VMA_[AR], ;MAKE MEM REQUEST ; 8594 DP FUNC/1, 3T, ;FROM DATA PATH U 1501, 1502,3443,0300,4174,4007,0701,0200,0000,0032 ; 8595 WAIT/1 ;WAIT FOR PREVIOUS CYCLE TO ; 8596 ; COMPLETE. (NEED THIS TO ; 8597 ; START ANOTHER CYCLE) ; 8598 [AR]_WORK[SV.AR], U 1502, 0000,3771,0003,7274,4004,1701,0000,0000,0211 ; 8599 RETURN [0] ; 8600 ; T10KL.MCR[7,3] 15:10 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 ; 8601 .IF/KLPAGE ; 8602 .IFNOT/NOCST ; 8603 ;SUBROUTINE TO START CST UPDATE ; 8604 ;CALL WITH: ; 8605 ; AR/ PHYSICAL PAGE NUMBER ; 8606 ;RETURN 2 WITH ENTRY IN AR, PAGE FAIL IF AGE TOO SMALL ;;8607 .IFNOT/INHCST ;;8608 =0** ;;8609 UPCST: [AR]_[AR]+WORK[CBR], ;ADDRESS OF CST0 ENTRY ;;8610 CALL [RDPT] ;READ OLD VALUE ;;8611 TL [AR], ;0 - 5 = 0? ;;8612 #/770000 ; .. ;;8613 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD ;;8614 RETURN [2] ;AGE IS NOT ZERO ;;8615 PAGE FAIL TRAP ;AGE TOO SMALL ; 8616 .ENDIF/INHCST ; 8617 .IF/INHCST U 1503, 1150,3773,0000,7274,4007,0622,0000,0000,0216 ; 8618 UPCST: SKIP NO CST ;SEE IF A CST IS PRESENT ; 8619 =0*0 [AR]_[AR]+WORK[CBR], ;YES, ADDRESS OF CST0 ENTRY U 1150, 1512,0551,0303,7274,4007,0701,0010,0000,0216 ; 8620 CALL [RDPT] ;READ OLD VALUE U 1151, 0002,4221,0003,4174,4004,1700,0000,0000,0000 ; 8621 [AR]_0,RETURN [2] ;NO CST, RETURN ; 8622 TL [AR], ;CHECK AGE FIELD U 1154, 2632,4553,0300,4374,4007,0321,0000,0077,0000 ; 8623 #/770000 ; 8624 = ; 8625 =0 [AR]_[AR].AND.WORK[CSTM], ;CLEAR AGE FIELD U 2632, 0002,4551,0303,7274,4004,1701,0000,0000,0217 ; 8626 RETURN [2] ;AGE IS NOT ZERO U 2633, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8627 PAGE FAIL TRAP ;AGE TOO SMALL ; 8628 ; 8629 =0 ; 8630 WRCST: START NO TEST WRITE, U 2634, 3071,4443,0000,4174,4007,0700,0200,0001,0002 ; 8631 J/IBPX U 2635, 0004,4443,0000,4174,4004,1700,0000,0000,0000 ; 8632 RETURN [4] ; 8633 .ENDIF/INHCST ; 8634 .ENDIF/NOCST ; 8635 ; T10KL.MCR[7,3] 15:10 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 ; 8636 ;STILL .IF/KLPAGE ; 8637 ;SUBROUTINE TO LOOK AT PAGE POINTER ; 8638 ;CALL WITH POINTER IN AR ; 8639 ;RETURNS 1 IF TYPE 1 ; 8640 ;RETURNS 2 IF TYPE 2 ; 8641 ;RETURNS 3 IF TYPE 3 ; 8642 ;GOES TO PFT IF TYPE 0 OR 4 THRU 7 ; 8643 SETPTR: [ARX]_[AR].OR.#, ;AND C AND W BITS U 1507, 1510,3551,0304,4374,4007,0700,0000,0075,3777 ; 8644 #/753777 ; OF ALL POINTERS ; 8645 [FLG]_[FLG].AND.[ARX], ; .. U 1510, 1511,4111,0413,4174,0007,0700,0000,0000,0000 ; 8646 HOLD RIGHT ;KEEP IN LH OF FLG ; 8647 READ [AR], ;TYPE 4,5,6 OR 7? U 1511, 2636,3333,0003,4174,4007,0520,0000,0000,0000 ; 8648 SKIP DP0 ; .. ; 8649 =0 TL [AR], ;HERE WE TEST FOR TYPE ; 8650 #/300000, ; ZERO POINTER U 2636, 2640,4553,0300,4374,4007,0321,0000,0030,0000 ; 8651 J/STPTR1 ;CHECK AT STPTR1 U 2637, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8652 PAGE FAIL TRAP ;BAD TYPE ; 8653 =0 ; 8654 STPTR1: TL [AR], ;NOT ZERO ; 8655 #/100000, ;SEPERATE TYPE 2 U 2640, 2642,4553,0300,4374,4007,0321,0000,0010,0000 ; 8656 J/STPTR2 ; .. U 2641, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8657 PAGE FAIL TRAP ;TYPE 0 ; 8658 ; 8659 =0 ; 8660 STPTR2: TL [AR], ;SEPERATE TYPE 1 ; 8661 #/200000, ; AND 3 U 2642, 2644,4553,0300,4374,4007,0321,0000,0020,0000 ; 8662 J/STPTR3 ; .. U 2643, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 8663 RETURN [2] ;TYPE 2 ; 8664 ; 8665 =0 U 2644, 0003,4443,0000,4174,4004,1700,0000,0000,0000 ; 8666 STPTR3: RETURN [3] ;TYPE 3 U 2645, 0001,4443,0000,4174,4004,1700,0000,0000,0000 ; 8667 RETURN [1] ;TYPE 1 ; 8668 ; T10KL.MCR[7,3] 15:10 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 ; 8669 ;STILL .IF/KLPAGE ; 8670 ;SUBROUTINE TO FETCH A PAGE POINTER OR CST ENTRY ; 8671 ;CALL WITH ADDRESS IN AR ; 8672 ;RETURN 4 WITH WORD IN AR ; 8673 ; ; 8674 RDPT: VMA_[AR], ;LOAD THE VMA ; 8675 START READ, ;START MEM CYCLE ; 8676 VMA PHYSICAL, ;ABSOLUTE ADDRESS U 1512, 2646,3443,0300,4174,4007,0370,0200,0024,1016 ; 8677 SKIP IRPT ;CHECK FOR INTERRUPTS ; 8678 =0 MEM READ, ;NO INTERRUPTS ; 8679 [AR]_MEM, ;PUT THE DATA INTO AR U 2646, 0004,3771,0003,4365,5004,1700,0200,0000,0002 ; 8680 RETURN [4] ;AND RETURN U 2647, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8681 PAGE FAIL TRAP ;INTERRUPT ; 8682 ; 8683 ; 8684 ;SUBROUTINE TO SEE IF WE SHOULD REMEMBER AN EXEC SECTION PTR ; 8685 ;CALL WITH SKIP ON ADR.EQ.0 ; 8686 ;RETURNS 2 IF WE SHOULD STORE AND 7 IF WE SHOULD NOT ; 8687 ; ; 8688 =0 U 2650, 0007,4443,0000,4174,4004,1700,0000,0000,0000 ; 8689 SHDREM: RETURN [7] ;INDIRECT PTR U 2651, 1513,7441,1303,4174,4007,0700,0000,0000,0000 ; 8690 [AR]_.NOT.[FLG] ;FLIP BITS U 1513, 2652,4553,0300,4374,4007,0321,0000,0002,4000 ; 8691 TL [AR], FLG.W/1, FLG.C/1 ;BOTH BITS SET U 2652, 0007,4443,0000,4174,4004,1700,0000,0000,0000 ; 8692 =0 RETURN [7] ;NO--DON'T STORE U 2653, 0002,4443,0000,4174,4004,1700,0000,0000,0000 ; 8693 RETURN [2] ;STORE ; 8694 ; 8695 .ENDIF/KLPAGE ; 8696 ; T10KL.MCR[7,3] 15:10 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 ;;8697 .IF/KIPAGE ;;8698 ;HERE IN KI10 MODE ;;8699 ;BR CONTAINS PAGE # AND ARX CONTAINS PAGE #/2 ;;8700 ;;8701 KIFILL: READ [BRX], ;USER REF? ;;8702 SKIP DP0 ; .. ;;8703 =0 [BR]-#, ;EXEC--LESS THAN 340? ;;8704 #/340, ; .. ;;8705 SKIP DP18, 4T, ; .. ;;8706 J/KIF10 ;FOLLOW EXEC PATH ;;8707 KIUPT: [ARX]_[ARX]+[UBR], ;POINTER TO PAGE MAP ENTRY ;;8708 LOAD VMA, ;PUT ADDRESS IN VMA ;;8709 VMA PHYSICAL, ;ABSOLUTE ADDRESS ;;8710 START READ, ;FETCH UPT WORD ;;8711 J/KIF30 ;JOIN COMMON CODE ;;8712 =0 ;;8713 KIF10: [BR]-#, ;EXEC ADDRESS .GE. 340 ;;8714 #/400, ; SEE IF .GT. 400 ;;8715 SKIP DP18, 4T, ; .. ;;8716 J/KIEPT ;LOOK AT KIF20 ;;8717 [ARX]_[ARX]+#, 3T, ;EXEC ADDRESS .LT. 340 ;;8718 #/600, ;IN EBR+600 ;;8719 J/KIEPT ;JOIN COMMON CODE ;;8720 ;;8721 =0 ;;8722 KIEPT: [ARX]_[ARX]+[EBR], ;ADD OFFSET TO ;;8723 LOAD VMA, ; EPT ;;8724 START READ, ;START FETCH ;;8725 VMA PHYSICAL, ;ABSOLUTE ADDRESS ;;8726 J/KIF30 ;GO GET POINTER ;;8727 [ARX]_[ARX]+#, ;PER PROCESS PAGE ;;8728 #/220, 3T, ; IS IN UPT + 400 ;;8729 J/KIUPT ;JOIN COMMON CODE ;;8730 KIF30: MEM READ, ;WAIT FOR DATA ;;8731 [ARX]_MEM ;PLACE IT IN ARX ;;8732 TR [BR], ;SEE IF EVEN OR ODD ;;8733 #/1 ; .. ;;8734 ; T10KL.MCR[7,3] 15:10 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 ;;8735 ;STILL .IF/KIPAGE ;;8736 =0 ;;8737 KIF40: READ [ARX], ;ODD ;;8738 SKIP DP18, ;SEE IF VALID ;;8739 J/KIF50 ;JOIN COMMON CODE ;;8740 [ARX]_[ARX] SWAP, ;EVEN--FLIP AROUND ;;8741 J/KIF40 ; AND CONTINUE ;;8742 ; 8743 .ENDIF/KIPAGE ; 8744 =0 U 2654, 2670,4553,1300,4374,4007,0321,0000,0001,0000 ; 8745 KIF50: PAGE FAIL TRAP ; 8746 ;AT THIS POINT WE HAVE THE PAGE MAP ENTRY IN RH OF AR ; 8747 [FLG]_[FLG].AND.NOT.#, ;CLEAR W AND C U 2655, 1562,5551,1313,4374,4007,0700,0000,0002,4000 ; 8748 FLG.W/1, FLG.C/1 ; FLAGS U 1562, 2656,4553,0400,4374,4007,0331,0000,0002,0000 ; 8749 TR [ARX], #/020000 ;CACHE ENABLED? ; 8750 =0 [FLG]_[FLG].OR.#, ;SET CACHE BITS U 2656, 2657,3551,1313,4374,0007,0700,0000,0000,4000 ; 8751 FLG.C/1, HOLD RIGHT ; .. U 2657, 2660,4553,0400,4374,4007,0331,0000,0004,0000 ; 8752 TR [ARX], #/040000 ;DO NOT CACHE ; 8753 ;SEE IF CACHE BIT SET ; 8754 =0 [BRX]_[BRX].OR.#, ;COPY BITS TO BRX ; 8755 #/020000, U 2660, 2661,3551,0606,4374,0007,0700,0000,0002,0000 ; 8756 HOLD RIGHT ; 8757 TR [ARX], ; .. U 2661, 2662,4553,0400,4374,4007,0331,0000,0010,0000 ; 8758 #/100000 ; 8759 =0 [FLG]_[FLG].OR.#, ;SAVE W ; 8760 FLG.W/1, ; .. ; 8761 HOLD RIGHT, ; .. U 2662, 1563,3551,1313,4374,0007,0700,0000,0002,0000 ; 8762 J/KIF90 ;ALL DONE ; 8763 TL [BRX], ;W=0, WRITE REF? U 2663, 2664,4553,0600,4374,4007,0321,0000,0001,0000 ; 8764 WRITE CYCLE/1 ; 8765 =0 ; 8766 KIF80: [BRX]_[BRX].OR.#, ;WRITE FAILURE ; 8767 #/100000, HOLD RIGHT, ;INDICATE THAT ACCESS WAS ON U 2664, 2654,3551,0606,4374,0007,0700,0000,0010,0000 ; 8768 J/KIF50 ;GO PAGE FAIL U 2665, 2617,4443,0000,4174,4007,0700,0000,0000,0000 ; 8769 J/PFDONE ;ALL DONE ; 8770 ; 8771 KIF90: [BRX]_[BRX].OR.#, ;PAGE IS WRITABLE ; 8772 #/40000, ;TURN ON IN BRX U 1563, 2617,3551,0606,4374,4007,0700,0000,0004,0000 ; 8773 J/PFDONE ;ALL SET ; 8774 ; T10KL.MCR[7,3] 15:10 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 ; 8775 ;HERE ON HARD PAGE FAILURES U 1564, 2666,3333,0005,7174,4007,0700,0400,0000,0213 ; 8776 HARD: WORK[SV.BR]_[BR] ;SAVE BR (CLEANUP MAY NEED IT) ; 8777 =0 [BR]_VMA, ;BUILD PAGE FAIL WORD U 2666, 1602,3771,0005,4354,4007,0700,0010,0000,0000 ; 8778 CALL [ABORT] ;CLEAR ERROR ; 8779 [BR]_[BR].AND.#, ;SAVE THE FLAGS ; 8780 #/401237, ; .. U 2667, 1572,4551,0505,4374,0007,0700,0000,0040,1237 ; 8781 HOLD RIGHT ; .. ; 8782 [BRX]_[BRX].OR.[BR], ;COMPLETE PAGE FAIL WORD U 1572, 2654,3111,0506,4174,4007,0700,0000,0000,0000 ; 8783 J/KIF50 ;GO TRAP ; 8784 U 1573, 1144,4443,0000,4174,4007,0370,0000,0000,0000 ; 8785 PFPI1: SKIP IRPT ;TIMER TRAP? ; 8786 =00 ; 8787 [AR]_WORK[TIME1], ;YES--GET LOW WORD ; 8788 SPEC/CLRCLK, ;CLEAR CLOCK FLAG U 1144, 3575,3771,0003,7274,4117,0701,0010,0000,0301 ; 8789 CALL [TOCK] ;DO THE UPDATE U 1145, 2671,4443,0000,4174,4007,0700,0000,0000,0000 ; 8790 J/PFT1 ;EXTERNAL INTERRUPT U 1146, 1575,4223,0000,4364,4277,0700,0200,0000,0010 ; 8791 ABORT MEM CYCLE ;CLEAR 1MS FLAGS ; 8792 = ; 8793 PFPI2: [AR]_WORK[SV.VMA], ;RESTORE VMA U 1575, 3776,3771,0003,7274,4007,0701,0000,0000,0210 ; 8794 J/PF125 ; 8795 ; 8796 U 1602, 0001,4223,0000,4364,4274,1700,0200,0000,0010 ; 8797 ABORT: ABORT MEM CYCLE, RETURN [1] ; 8798 ; T10KL.MCR[7,3] 15:10 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 ; 8799 ;HERE ON PAGE FAIL TRAP ; 8800 =0 U 2670, 0104,4751,1217,4374,4007,0700,0000,0000,0100 ; 8801 PFT: HALT [IOPF] ;IO PAGE FAILURE ; 8802 PFT1: [AR]_WORK[SV.VMA], U 2671, 2672,3771,0003,7274,4007,0611,0000,0000,0210 ; 8803 SKIP/TRAP CYCLE ;SEE IF TRAP CYCLE ; 8804 =0 TL [AR], FETCH/1, ;IS THIS AN INSTRUCTION FETCH U 2672, 2674,4553,0300,4374,4007,0321,0000,0010,0000 ; 8805 J/PFT1A ;GO LOOK BELOW U 2673, 1603,3771,0003,7274,4007,0701,0000,0000,0425 ; 8806 [AR]_WORK[TRAPPC] ;RESTORE PC U 1603, 2676,3333,0003,4174,4467,0700,0000,0000,0004 ; 8807 READ [AR], LOAD FLAGS, J/CLDISP ; 8808 =0 U 2674, 1100,4443,0000,4174,4007,0700,0000,0000,0000 ; 8809 PFT1A: J/CLEANED ;YES--NO PC TO BACK UP U 2675, 2676,1111,0701,4170,4007,0700,4000,0000,0000 ; 8810 FIXPC: [PC]_[PC]-1, HOLD LEFT ;DATA FAILURE--BACKUP PC ; 8811 =0 U 2676, 1100,3333,0013,4174,4003,5701,0000,0000,0000 ; 8812 CLDISP: CLEANUP DISP ;GO CLEANUP AFTER PAGE FAIL ; 8813 =0000 ; 8814 CLEANUP: ; 8815 CLEANED: ;(0) NORMAL CASE ; 8816 END STATE, SKIP IRPT, ;NO MORE CLEANUP NEEDED U 1100, 2700,4221,0013,4170,4007,0370,0000,0000,0000 ; 8817 J/PFT2 ;HANDLE PAGE FAIL OR INTERRUPT ; 8818 [AR]_WORK[SV.ARX], ;(1) BLT U 1101, 3163,3771,0003,7274,4007,0701,0000,0000,0212 ; 8819 J/BLT-CLEANUP ; 8820 [PC]_[PC]+1, ;(2) MAP U 1102, 1605,0111,0701,4174,4007,0700,0000,0000,0000 ; 8821 J/MAPDON ; 8822 STATE_[EDIT-SRC], ;(3) SRC IN STRING MOVE U 1103, 3500,3771,0013,4370,4007,0700,0000,0000,0011 ; 8823 J/STRPF ; 8824 STATE_[EDIT-DST], ;(4) DST IN STRING MOVE U 1104, 3500,3771,0013,4370,4007,0700,0000,0000,0012 ; 8825 J/STRPF ; 8826 STATE_[SRC], ;(5) SRC+DST IN STRING MOVE U 1105, 2326,3771,0013,4370,4007,0700,0000,0000,0003 ; 8827 J/BACKD ; 8828 STATE_[EDIT-DST], ;(6) FILL IN MOVSRJ U 1106, 3507,3771,0013,4370,4007,0700,0000,0000,0012 ; 8829 J/STRPF4 ; 8830 STATE_[EDIT-SRC], ;(7) DEC TO BIN U 1107, 3504,3771,0013,4370,4007,0700,0000,0000,0011 ; 8831 J/PFDBIN ; 8832 STATE_[EDIT-SRC], ;(10) SRC+DST IN COMP U 1110, 3476,3771,0013,4370,4007,0700,0000,0000,0011 ; 8833 J/CMSDST U 1111, 2324,4221,0013,4170,4007,0700,0000,0000,0000 ; 8834 END STATE, J/BACKS ;(11) EDIT SRC FAIL U 1112, 2326,4221,0013,4170,4007,0700,0000,0000,0000 ; 8835 END STATE, J/BACKD ;(12) EDIT DST FAIL ; 8836 STATE_[EDIT-SRC], ;(13) SRC+DST IN EDIT U 1113, 2326,3771,0013,4370,4007,0700,0000,0000,0011 ; 8837 J/BACKD ; 8838 = ; 8839 ; T10KL.MCR[7,3] 15:10 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 ; 8840 =0 ; 8841 PFT2: [AR]_[UBR]+#, ;PREPARE TO STORE PFW ; 8842 #/500, 3T, U 2700, 1604,0551,1103,4374,4007,0701,0000,0000,0500 ; 8843 J/PFT10 U 2701, 0770,3551,1313,4374,0007,0700,0000,0001,0000 ; 8844 PFT3: TAKE INTERRUPT ;PROCESS INTERRUPT ; 8845 PFT10: VMA_[AR], ;WHERE TO STORE PFW U 1604, 2702,3443,0300,4174,4007,0700,0200,0021,1016 ; 8846 VMA PHYSICAL WRITE ; 8847 =0 MEM WRITE, ;STORE PFW ; 8848 MEM_[BRX], U 2702, 1607,3333,0006,4175,5007,0701,0210,0000,0002 ; 8849 CALL [NEXTAR] ;ADVANCE POINTER TO ; 8850 ;PREPARE TO STORE PC ; 8851 .IF/KLPAGE ;;8852 .IF/KIPAGE ;;8853 TL [EBR], #/400000 ;KL PAGING? ;;8854 =0 ; 8855 .ENDIF/KIPAGE U 2703, 2706,4521,1205,4074,4007,0700,0000,0000,0000 ; 8856 [BR]_FLAGS,J/EAPF ;YES--DO EXTENDED THING ; 8857 .ENDIF/KLPAGE ; 8858 ;;8859 .IF/KIPAGE ;;8860 [BR]_PC WITH FLAGS ;GET OLD PC ;;8861 MEM WRITE, ;STORE OLD PC ;;8862 MEM_[BR], ;;8863 J/EAPF1 ; 8864 .ENDIF/KIPAGE ; 8865 ; 8866 MAPDON: END STATE, ;CLEAR MAP BIT U 1605, 2704,4221,0013,4170,4007,0370,0000,0000,0000 ; 8867 SKIP IRPT ;ANY INTERRUPT? ; 8868 =0 [AR]_[BRX], ;RETURN PAGE FAIL WORD U 2704, 1500,3441,0603,4174,4003,7700,0200,0003,0001 ; 8869 EXIT U 2705, 2701,1111,0701,4174,4007,0700,4000,0000,0000 ; 8870 [PC]_[PC]-1, J/PFT3 ;INTERRUPTED OUT OF MAP ; 8871 ; RETRY INSTRUCTION ; 8872 ; T10KL.MCR[7,3] 15:10 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 ; 8873 ; 8874 .IF/KLPAGE ; 8875 =0 ; 8876 EAPF: MEM WRITE, MEM_[BR], ;STORE FLAGS U 2706, 1607,3333,0005,4175,5007,0701,0210,0000,0002 ; 8877 CALL [NEXTAR] ;STORE PC WORD U 2707, 1606,3333,0001,4175,5007,0701,0200,0000,0002 ; 8878 MEM WRITE, MEM_[PC] ; .. ; 8879 .ENDIF/KLPAGE ; 8880 ; 8881 EAPF1: [AR]_[AR]+1, ; 8882 VMA PHYSICAL READ, U 1606, 2737,0111,0703,4174,4007,0700,0200,0024,1016 ; 8883 J/GOEXEC ; 8884 U 1607, 0001,0111,0703,4170,4004,1700,0200,0023,1016 ; 8885 NEXTAR: NEXT [AR] PHYSICAL WRITE, RETURN [1] ; 8886 ; Number of microwords used: ; D words= 512 ; U words= 2033, Highest= 2047 END ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 247 ; Cross Reference Listing (U) A 645 # AR 649 # 2403 2441 2471 2472 2535 2583 2591 2730 2732 2735 2738 2741 2744 2828 2838 2853 2870 2880 2890 2900 2931 2941 2951 2986 2998 3005 3009 3019 3020 3022 3024 3025 3033 3056 3057 3283 3288 3290 3302 3305 3308 3313 3314 3384 3401 3403 3468 3471 3539 3540 3546 3566 3593 3608 3644 3655 3667 3721 3744 3749 3784 3828 3832 3841 3843 4004 4009 4039 4074 4088 4104 4115 4118 4121 4135 4162 4163 4168 4185 4201 4221 4333 4342 4347 4357 4363 4382 4386 4404 4432 4436 4438 4439 4458 4490 4493 4496 4510 4535 4552 4553 4558 4563 4571 4573 4575 4646 4656 4658 4663 4664 4709 4714 4724 4728 4766 4770 4774 4778 4954 4967 5052 5055 5067 5070 5076 5082 5117 5192 5195 5297 5303 5307 5308 5338 5344 5363 5369 5370 5371 5372 5381 5386 5406 5407 5419 5421 5430 5431 5451 5456 5457 5463 5498 5502 5504 5507 5510 5514 5516 5518 5520 5521 5522 5523 5529 5531 5532 5541 5546 5562 5588 5596 5601 5603 5647 5660 5679 5688 5692 5707 5721 5723 5725 5731 5758 5765 5768 5780 5783 5791 5793 5797 5802 5804 5820 5825 5828 5850 5853 5854 5858 5976 5980 5984 5991 6002 6011 6026 6046 6050 6063 6066 6092 6176 6183 6200 6222 6236 6263 6274 6275 6276 6289 6323 6353 6364 6402 6417 6445 6450 6479 6480 6481 6482 6484 6485 6488 6493 6542 6563 6570 6571 6597 6635 6647 6648 6655 6675 6678 6681 6685 6686 6688 6692 6694 6748 6749 6754 6755 6762 6765 6769 6838 6860 6866 6885 6903 6907 6910 6911 6912 6913 6935 6960 6961 6965 6971 6972 6976 7046 7052 7075 7077 7079 7081 7084 7086 7088 7130 7137 7148 7152 7159 7163 7187 7193 7195 7200 7220 7235 7298 7379 7381 7383 7385 7387 7389 7391 7393 7395 7417 7423 7485 7495 7501 7504 7505 7522 7530 7580 7591 7604 7606 7632 7637 7664 7667 7695 7713 7714 7773 7870 7878 7909 8239 8249 8353 8362 8365 8367 8369 8373 8376 8387 8393 8398 8441 8444 8449 8456 8464 8471 8493 8511 8515 8553 8556 8571 8572 8593 8619 8622 8625 8643 8649 8654 8660 8674 8691 8804 8845 ARX 650 # 2503 2785 2786 3724 3726 3739 3768 4101 4113 4122 4123 4140 4143 4145 4167 4187 4203 4223 4226 4246 4375 4403 4455 4481 4482 4561 4653 4654 4662 4731 4921 4928 4929 4957 4960 4981 5111 5133 5305 5343 5375 5561 5582 5585 5645 5662 5684 5704 5724 5729 5775 5814 5821 6064 6105 6112 6146 6180 6230 6239 6249 6258 6281 6282 6290 6322 6326 6403 6440 6448 6452 6454 6771 6774 6820 6888 6962 7076 7080 7082 7085 7087 7116 7118 7329 7342 7346 7536 7719 7721 7779 8006 8340 8348 8396 8410 8433 8547 8579 8581 8645 8749 8752 8757 BR 651 # 2202 2399 2434 2436 2440 2921 3052 3085 3086 3089 3090 3091 3092 3107 3110 3113 3116 3120 3123 3125 3157 3158 3161 3162 3443 3446 3449 3452 3455 3458 3461 3464 3789 3794 3822 3849 3858 3859 4006 4011 4109 4241 4406 4408 4416 4420 4483 4486 4560 4564 4565 4566 4569 4574 4605 4747 4749 4808 4809 4810 4811 4812 4819 4828 4832 4841 4902 4903 4904 4905 4906 4927 4970 4976 5079 5119 5121 5131 5136 5220 5304 5311 5312 5316 5317 5373 5376 5410 5461 5544 5568 5570 5580 5594 5673 5691 5694 5930 5942 5943 5945 5946 5973 5982 6027 6032 6057 6060 6151 6216 6219 6220 6233 6241 6247 6370 6380 6391 6400 6404 6422 6475 6490 6528 6539 6606 6862 6863 6904 6905 6945 6953 6964 6968 7045 7048 7073 7107 7109 7112 7174 7185 7199 7201 7226 7227 7297 7308 7315 7384 7386 7388 7394 7396 7432 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 248 ; Cross Reference Listing 7445 7542 7565 7566 7567 7608 7610 7638 7642 7644 7648 7650 7674 7680 7771 8247 8311 8314 8453 8577 8779 8782 BRX 652 # 4137 4165 4171 4242 4265 4285 4289 4293 4297 4303 4307 4311 4315 4392 4445 4485 4597 4600 4611 5058 5110 5139 5147 5154 5178 5263 5266 5336 5337 5339 5378 5383 5573 5590 5656 5670 5671 5713 5934 6033 6103 6114 6115 6139 6188 6196 6277 6306 6319 6328 6333 6341 6343 6352 6358 6363 6375 6414 6416 6434 6443 6470 6472 6474 6505 6508 6524 6536 6538 6618 6620 6623 6689 6696 6790 6794 6798 6802 6806 6810 6826 7099 7243 7244 7245 7344 7494 7549 7550 7613 7696 8243 8296 8297 8300 8306 8308 8482 8485 8488 8510 8518 8560 8564 8566 8568 8583 8587 8754 8763 8766 8771 8868 EBR 654 # 6992 7224 7497 7540 8351 FLG 657 # 3635 5525 5626 5627 5634 5761 5764 5767 5770 5830 5837 5838 6614 8293 8372 8392 8460 8470 8484 8490 8522 8543 8563 8582 8584 8627 8652 8657 8681 8690 8745 8747 8750 8759 8844 HR 648 # 2303 2309 2315 2321 2330 2334 2343 2348 2449 2797 2802 3543 3552 3555 3557 3558 3559 3578 3582 3592 3597 3600 3620 3641 3654 3936 3938 3940 3942 3944 3946 3948 3950 3956 3976 4054 5932 6925 7002 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7264 7287 7382 7698 7712 7841 7850 7852 7854 7856 7858 7860 MAG 646 # 2438 4147 4150 4169 4172 4173 4186 4192 4194 4228 4230 4232 4410 4428 4450 4454 4457 4498 4500 4501 4628 4633 4638 4644 4645 5240 5241 5564 5655 5710 5736 5771 5806 5810 5812 MASK 656 # 2164 2165 2166 2169 2172 2205 2216 2252 2256 2259 2262 2271 2274 2277 2280 2531 2754 2775 2982 3030 3594 3642 3656 3677 3960 3977 4000 4003 4048 4108 4244 4278 4412 4423 4451 4576 4788 4908 4919 5225 5245 5246 5247 5261 5466 5526 5599 5649 5739 5808 5897 5899 5901 5903 5905 5907 5909 5911 5913 6148 6150 6172 6287 6609 7296 7339 7340 7341 7475 7476 7477 7478 7479 7480 7481 7487 7506 7516 7534 7548 7626 7629 7665 7676 7682 7699 7755 7908 8272 8274 8288 8801 8856 ONE 653 # 2194 2198 2243 2245 2290 2377 2428 2431 2961 3352 3418 3434 3501 3515 3541 3550 3553 3628 3646 3649 3996 4043 4059 4338 4753 5050 5118 5159 5161 5166 5183 5184 5268 5269 5453 5465 5540 5689 5847 5968 6009 6042 6048 6069 6087 6097 6116 6117 6152 6153 6195 6259 6264 6327 6339 6346 6366 6373 6378 6387 6397 6401 6405 6406 6442 6456 6467 6519 6543 6637 6659 6712 6835 6836 6842 6864 6906 6948 7303 7326 7356 7408 7692 7769 7894 7980 7987 7990 7993 7996 7999 8810 8820 8870 8881 8885 PC 647 # 2242 2246 2264 2357 2419 2444 3340 3467 3472 3703 3820 3826 3846 4233 4235 4710 4719 6981 7399 7518 7670 7905 PI 658 # 3606 3607 3621 7027 7028 7376 7390 7392 7397 7407 7409 7468 7469 7470 7471 7472 7473 7474 7483 T0 660 # 4213 4217 4453 4464 4471 4474 4476 4477 5581 5589 5615 5617 5618 5619 5622 5630 5633 5635 5675 5741 5749 5750 6371 6438 7410 7546 T1 661 # 4430 4570 5236 5238 5242 5257 5260 5605 5690 5693 5712 5722 UBR 655 # 3962 4002 6984 7144 7178 7233 7234 7239 7240 8343 8841 XWD1 659 # 3523 3693 7532 (D) A 1329 # DBLAC 1333 # 2789 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 249 ; Cross Reference Listing DFP 1339 # 5551 5552 5640 5701 DREAD 1332 # 2780 2781 4096 4097 4180 4398 DSHIFT 1335 # 2971 2972 FP 1337 # 5277 5278 5279 5280 5282 5283 5285 5286 5287 5288 5290 5291 5322 5323 5324 5326 5328 5329 5351 5352 5353 5355 5357 5358 5436 5437 FPI 1336 # 5281 5289 5327 5356 IOT 1340 # 7013 7014 7250 7572 7573 7574 7575 7583 7584 7585 7586 7597 7598 7599 7600 7865 7866 8235 RD-PF 1338 # 2561 2566 2571 2576 2614 2619 2624 2629 2634 2639 2644 2649 2656 2661 2666 2671 2676 2681 2686 2691 2821 2831 2841 2846 2863 2873 2883 2893 2913 2924 2934 2944 4067 4081 4129 4154 4321 4326 READ 1330 # 2564 2569 2574 2579 2598 2616 2617 2621 2622 2627 2632 2637 2642 2647 2652 2658 2659 2663 2664 2669 2674 2679 2684 2689 2694 2823 2824 2833 2834 2843 2844 2848 2849 2856 2865 2866 2875 2876 2885 2886 2895 2896 2915 2916 2926 2927 2936 2937 2946 2947 3200 3201 3202 3203 3204 3205 3216 3217 3218 3219 3220 3221 3222 3223 3234 3235 3236 3237 3238 3239 3240 3241 3251 3252 3253 3254 3255 3256 3257 3258 3373 3374 3375 3376 3377 3378 3379 3380 3390 3391 3392 3393 3394 3395 3396 3397 3407 3408 3409 3410 3411 3412 3413 3414 3423 3424 3425 3426 3427 3428 3429 3430 3661 4069 4070 4083 4084 4131 4132 4156 4157 4323 4324 4328 4329 4699 4700 4701 4702 4703 5401 SHIFT 1334 # 2966 2967 2968 WRITE 1331 # 2563 2568 2573 2578 2626 2631 2636 2641 2646 2651 2668 2673 2678 2683 2688 2693 2790 2858 2859 (U) ACALU 1227 # AC+N 1229 # 2187 2188 2195 2385 2397 2503 2786 2795 3036 3057 3101 3131 4101 4113 4192 4194 4196 4204 4206 4213 4215 4227 4228 4229 4230 4231 4232 4344 4428 4450 4454 4457 4471 4472 4474 4477 4496 4498 4500 4501 4627 4628 4631 4632 4633 4636 4637 4638 4644 4645 5564 5655 5708 5710 5716 5775 5783 5821 5828 5972 5980 5990 5993 6023 6026 6039 6046 6053 6063 6101 6111 6131 6146 6163 6178 6180 6206 6209 6211 6218 6219 6220 6222 6228 6230 6233 6239 6241 6269 6271 6272 6276 6283 6284 6285 6289 6290 6297 6299 6304 6310 6326 6337 6349 6358 6364 6375 6378 6380 6384 6397 6403 6404 6527 6558 6563 6568 6605 6607 6711 6712 6824 6831 6838 6857 6859 6866 6886 6907 6943 6945 6951 6953 6957 6960 6965 B 1228 # (D) ACDISP 1360 # 3530 7013 7014 7250 (U) ACN 1230 # 2385 2397 2503 2786 2795 3036 3057 3101 3131 4101 4113 4192 4194 4196 4204 4206 4213 4215 4227 4228 4229 4230 4231 4232 4344 4428 4450 4454 4457 4471 4472 4474 4477 4496 4498 4500 4501 4627 4628 4631 4632 4633 4636 4637 4638 4644 4645 5564 5655 5708 5710 5716 5775 5783 5821 5828 6310 6326 6337 6384 6403 BIN0 1237 # 2187 6206 6228 6233 6241 6272 6283 6284 6285 6289 6297 BIN1 1238 # 2188 2195 6178 6180 6209 6211 6218 6219 6220 6222 6230 6239 6269 6271 6276 6290 6299 DLEN 1234 # 5972 5980 5993 6023 6026 6053 6063 6101 6111 6146 6304 6349 6358 6364 6375 6378 6380 6397 6404 6711 6712 6824 6838 6857 6957 6960 6965 DSTP 1235 # 5990 6163 6558 6563 6607 6831 6886 6907 6951 6953 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 250 ; Cross Reference Listing MARK 1236 # 6527 6605 SRCLEN 1232 # SRCP 1233 # 6039 6046 6131 6568 6859 6866 6943 6945 (U) AD 542 # 2169 2172 2205 2216 2252 2256 2259 2262 2271 2274 2277 2280 2334 2531 2752 2754 2773 2775 3594 3677 3960 4000 4048 4412 4423 5238 5897 5899 5901 5903 5905 5907 5909 5911 5913 5943 6172 6287 6609 7296 7339 7340 7341 7475 7476 7477 7478 7479 7480 7481 7487 7516 7534 7548 7626 7629 7665 7676 7682 7699 7755 7908 8272 8274 8288 8801 A 571 # 2164 2166 2242 2246 2264 2309 2321 2348 2357 2399 2440 2441 2444 2503 2535 2786 2802 2986 2998 3005 3009 3019 3020 3022 3024 3025 3033 3052 3057 3085 3086 3089 3090 3091 3092 3107 3110 3113 3116 3120 3123 3157 3158 3161 3162 3314 3340 3403 3443 3455 3467 3468 3471 3472 3539 3540 3546 3566 3582 3593 3608 3644 3655 3667 3721 3724 3726 3744 3749 3822 3828 3841 3846 3859 4135 4137 4140 4162 4163 4165 4167 4185 4187 4201 4203 4221 4223 4235 4241 4242 4244 4265 4278 4333 4342 4357 4363 4392 4404 4406 4408 4420 4432 4436 4451 4455 4458 4471 4477 4481 4490 4510 4558 4563 4564 4565 4570 4571 4573 4575 4646 4710 4719 4724 4731 4747 4770 4778 4832 4908 4921 4957 4976 4981 5055 5058 5076 5111 5131 5139 5147 5195 5220 5225 5240 5241 5245 5246 5247 5260 5261 5263 5303 5304 5305 5316 5338 5339 5343 5344 5363 5371 5373 5378 5381 5386 5419 5421 5451 5453 5456 5457 5463 5498 5502 5504 5510 5518 5520 5521 5522 5540 5541 5546 5573 5580 5581 5585 5588 5589 5596 5601 5603 5615 5617 5618 5619 5622 5630 5633 5635 5645 5647 5649 5656 5660 5662 5673 5679 5684 5688 5689 5692 5704 5707 5729 5739 5741 5749 5750 5758 5765 5768 5780 5783 5797 5802 5804 5825 5828 5850 5858 5946 5991 6011 6026 6046 6057 6063 6092 6103 6139 6146 6180 6219 6239 6241 6276 6289 6290 6326 6352 6358 6363 6364 6371 6375 6380 6402 6403 6404 6438 6472 6481 6484 6488 6490 6528 6538 6563 6570 6606 6623 6648 6678 6685 6696 6748 6765 6771 6862 6866 6885 6904 6907 6911 6913 6945 6953 6960 6961 6965 6972 7027 7028 7130 7174 7193 7195 7220 7224 7226 7234 7235 7240 7243 7245 7344 7376 7399 7417 7423 7494 7501 7522 7530 7549 7567 7591 7604 7606 7613 7638 7642 7648 7670 7674 7680 7714 7771 7773 7779 7870 7878 7905 8006 8249 8308 8311 8353 8373 8376 8396 8410 8547 8553 8571 8577 8593 8674 8845 8868 A+B 544 # 2194 2198 2243 2245 2290 2377 2428 2431 2797 3125 3352 3418 3628 3646 3649 3789 3794 3962 3996 4002 4043 4059 4213 4217 4246 4302 4306 4386 4482 4483 4486 4496 4569 4574 4600 4604 4610 4753 5159 5161 5166 5183 5184 5268 5269 5317 5461 5465 5544 5594 5675 5968 6032 6064 6069 6087 6116 6117 6222 6236 6247 6249 6259 6327 6339 6346 6366 6387 6401 6456 6467 6475 6519 6543 6637 6659 6686 6712 6864 6888 6906 6948 6968 6984 6992 7297 7303 7326 7356 7497 7532 7542 7550 7769 7894 7980 7987 7990 7993 7996 7999 8340 8348 8433 8820 8881 8885 A+Q 543 # 4453 4464 4485 5118 5582 5590 5691 5694 5847 A-.25 555 # A-B-.25 560 # 4382 4438 4439 5117 5136 5154 5178 5266 5375 5383 5731 5980 6115 6151 6370 A-D-.25 556 # 6200 6440 6445 6493 A-Q-.25 559 # A.AND.B 576 # 4171 4186 4403 4474 4927 5526 5775 5808 5810 5821 6002 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 251 ; Cross Reference Listing 6148 7046 7052 7409 7565 8645 A.AND.Q 575 # 4169 4410 4454 4498 4500 4576 4628 4633 4638 4644 4645 4841 4919 4928 5771 5806 A.EQV.B 603 # A.EQV.Q 602 # 4147 4150 4172 4173 4228 4230 4232 4501 A.OR.B 568 # 2921 4109 4929 5082 5934 6033 6066 6105 6263 6694 7076 7080 7087 7118 7163 7185 7187 7388 7394 7536 7632 7667 8568 8782 A.OR.Q 567 # 5236 5257 5605 A.XOR.B 595 # 5812 7342 A.XOR.Q 594 # B 570 # 2174 2182 2184 2185 2188 2190 2197 2199 2390 2410 2509 2541 2547 2552 2555 2586 2605 2750 2757 2764 2771 2801 3082 3098 3154 3299 3343 3346 3349 3355 3358 3361 3420 3574 3622 3633 3673 3709 3715 3754 3760 3831 3980 3984 3986 3992 4014 4020 4051 4058 4139 4284 4288 4310 4314 4345 4351 4365 4370 4372 4377 4444 4446 4463 4479 4488 4549 4556 4577 4707 4716 4720 4735 4738 4754 4835 4901 4909 4917 4966 4979 4999 5031 5038 5302 5306 5389 5391 5423 5427 5460 5500 5519 5587 5686 5695 5744 5762 5800 5936 5939 5952 5954 5955 5985 5997 6031 6047 6073 6074 6075 6090 6132 6135 6137 6141 6154 6165 6173 6181 6312 6314 6357 6376 6389 6393 6395 6444 6451 6477 6491 6496 6518 6522 6574 6594 6608 6660 6668 6742 6763 6785 6817 6867 6869 6891 6931 6982 7089 7091 7092 7094 7097 7101 7202 7203 7269 7273 7277 7281 7285 7300 7311 7316 7332 7335 7351 7355 7357 7365 7366 7418 7430 7436 7443 7668 7710 7733 7739 7741 7775 7777 7886 7893 7958 7967 7973 7977 7978 7979 7981 7982 7983 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8245 8255 8256 8258 8259 8266 8276 8278 8280 8282 8286 8287 8322 8421 8428 8430 8451 8589 8647 8776 8807 8812 8848 8876 8878 B-.25 554 # B-A-.25 552 # 3434 3541 3550 3553 4292 4296 4566 4597 6027 6048 6152 6153 6264 6353 6405 6442 6835 6964 7308 7432 7445 7692 8810 8870 D 574 # 2163 2167 2192 2193 2195 2233 2283 2353 2367 2371 2376 2380 2384 2385 2397 2398 2403 2408 2419 2425 2583 2602 2703 2705 2730 2732 2735 2736 2738 2741 2742 2744 2759 2761 2766 2768 2795 2979 2996 3002 3014 3017 3055 3101 3104 3283 3288 3401 3446 3449 3452 3458 3461 3464 3487 3563 3570 3587 3602 3607 3627 3631 3692 3703 3731 3737 3764 3773 3784 3786 3820 3826 3843 3844 3857 3858 3862 3976 4019 4121 4136 4145 4164 4168 4206 4211 4226 4229 4231 4233 4334 4343 4344 4426 4555 4709 4714 4728 4730 4734 4749 4782 4808 4809 4810 4811 4812 4828 4902 4903 4904 4905 4906 4954 4963 4970 4984 4986 4990 4994 4996 5000 5029 5034 5057 5070 5072 5110 5119 5123 5130 5174 5192 5193 5218 5223 5300 5333 5365 5429 5507 5523 5565 5575 5667 5718 5853 5929 5948 5957 5972 5975 5989 5990 5993 6015 6018 6023 6039 6040 6050 6060 6077 6078 6079 6080 6088 6094 6102 6111 6113 6131 6133 6140 6144 6157 6159 6163 6175 6178 6187 6206 6209 6211 6218 6228 6269 6271 6272 6277 6304 6309 6310 6311 6323 6332 6337 6349 6355 6365 6368 6369 6384 6396 6398 6399 6417 6420 6469 6474 6479 6480 6520 6527 6542 6558 6568 6577 6581 6596 6605 6607 6611 6632 6639 6641 6672 6688 6709 6711 6749 6774 6824 6829 6831 6838 6840 6857 6859 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 252 ; Cross Reference Listing 6860 6863 6886 6903 6905 6915 6930 6943 6947 6951 6957 6976 6981 7000 7020 7021 7058 7060 7072 7083 7106 7107 7115 7133 7198 7255 7257 7259 7261 7263 7268 7272 7276 7280 7284 7293 7298 7302 7307 7313 7314 7325 7345 7349 7364 7370 7384 7397 7407 7426 7428 7439 7441 7465 7491 7502 7518 7520 7539 7544 7562 7594 7635 7702 7705 7707 7715 7729 7760 7763 7765 7874 7881 7913 7960 7965 7969 7972 7984 8002 8004 8005 8007 8242 8246 8248 8257 8263 8268 8335 8338 8357 8405 8422 8425 8439 8449 8503 8505 8534 8550 8590 8591 8592 8598 8618 8679 8777 8787 8793 8802 8806 8818 8822 8824 8826 8828 8830 8832 8836 D+A 548 # 2303 2315 2330 2343 3501 3523 3578 3693 3739 3768 3832 3849 4074 4101 4104 4766 4774 5052 5121 5133 5942 5945 6009 6042 6097 6195 6220 6230 6233 6373 6391 6434 6443 6450 6452 6571 6647 6754 6762 6836 6842 6910 6912 7346 7495 7540 7713 7719 7721 8343 8351 8365 8367 8444 8619 8841 D+Q 549 # 5002 5010 5041 5060 D-.25 566 # D-A-.25 564 # 3384 3515 4088 4113 4115 4118 5067 6378 6397 D-Q-.25 565 # D.AND.A 583 # 2436 2438 2449 2471 2785 2828 2951 2982 3030 3290 3313 3543 3552 3555 3557 3558 3559 3592 3597 3600 3606 3620 3621 3641 3642 3654 3656 3936 3938 3940 3942 3944 3946 3948 3950 3956 3977 4003 4004 4009 4054 4122 4192 4194 4375 4428 4450 4457 4653 4788 4960 4967 5079 5242 5307 5311 5336 5369 5406 5410 5430 5525 5564 5655 5690 5693 5710 5761 5764 5767 5770 5830 5930 5932 5973 5976 6112 6114 6150 6176 6183 6196 6216 6258 6274 6281 6306 6322 6341 6400 6414 6416 6448 6454 6470 6482 6485 6505 6508 6524 6539 6655 6689 6692 6755 6769 6925 6935 7002 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7075 7077 7079 7081 7084 7086 7088 7109 7112 7137 7144 7148 7152 7159 7178 7199 7200 7227 7233 7239 7244 7264 7287 7329 7379 7381 7382 7383 7385 7387 7389 7391 7393 7395 7506 7546 7580 7637 7644 7650 7664 7696 7698 7712 7841 7850 7852 7854 7856 7858 7860 8243 8247 8296 8300 8362 8369 8372 8387 8392 8441 8456 8460 8464 8470 8484 8488 8490 8510 8515 8543 8556 8563 8566 8582 8584 8622 8625 8627 8649 8652 8654 8657 8660 8681 8691 8745 8749 8752 8757 8763 8779 8804 8856 D.AND.Q 584 # 3127 4528 5228 5234 5248 5254 5341 5650 D.EQV.A 607 # 2900 D.EQV.Q 608 # D.OR.A 572 # 2165 2434 2472 2880 3308 4006 4011 4123 4476 4561 5308 5312 5337 5370 5431 5570 5626 5627 5634 5671 5723 5837 6188 6275 6319 6328 6333 6343 6614 6618 6620 6681 6794 6798 6802 6810 6826 6962 6971 7201 7315 7390 7468 7469 7470 7471 7472 7473 7474 7608 7909 8239 8293 8297 8398 8482 8485 8493 8511 8518 8560 8564 8581 8583 8587 8643 8750 8754 8759 8766 8771 8844 D.OR.Q 573 # 3129 4413 D.XOR.A 599 # 2202 2870 3305 4430 7504 7505 8306 D.XOR.Q 600 # Q 569 # 3131 4141 4149 4196 4204 4204 4215 4227 4369 4424 4441 4447 4452 4456 4462 4470 4989 5151 5177 5265 5388 5393 5464 5506 5530 5624 5631 5651 5663 5674 5733 5735 5779 5824 6121 6160 6562 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 253 ; Cross Reference Listing Q-.25 553 # Q-A-.25 551 # 4445 5050 Q-D-.25 557 # 4993 ZERO 580 # 2175 2175 2177 2180 2187 2189 2191 2208 2230 2414 2818 2995 3036 3056 3285 3623 3987 4240 4266 4336 4472 4550 4817 4830 4836 4837 4840 4912 4913 4916 4972 5115 5157 5181 5267 5314 5385 5396 5408 5412 5414 5415 5428 5441 5533 5706 5734 5773 5789 5817 5998 6000 6034 6053 6101 6106 6118 6129 6158 6279 6297 6299 6317 6351 6407 6411 6415 6418 6473 6597 6635 6675 6745 6820 7045 7048 7116 7170 7182 7228 7305 7380 7425 7450 7451 7483 7486 7493 7507 7722 7767 7888 7891 7961 8292 8314 8393 8453 8471 8559 8579 8621 8791 8797 8816 8834 8835 8866 -A-.25 563 # 2591 2961 4338 4416 4493 4535 4553 4560 4654 4658 4662 4664 5297 5372 5376 5407 5516 5532 5561 5562 5713 5724 5725 5793 5814 5820 6282 6406 7408 -B-.25 562 # 5714 -D-.25 558 # 4467 4627 4632 4637 4642 6013 6285 6956 6970 -Q-.25 561 # 4415 4466 4492 4533 4534 4551 5394 5499 5501 5503 5505 5788 .NOT.A 606 # 2853 2890 2931 2941 3302 4108 4347 4552 4656 4663 5466 5514 5529 5531 5712 5722 5791 5982 5984 6536 7410 7485 7695 8690 .NOT.A.AND.B 587 # 4143 5599 7082 7085 7386 7396 7566 .NOT.A.AND.Q 586 # 5736 .NOT.B 605 # 5819 6191 .NOT.D 609 # 2910 2920 4631 4636 4641 6030 6058 6062 6198 6202 6284 6974 .NOT.D.AND.A 591 # 2838 3635 4039 5568 5670 5721 5838 6422 6790 6806 7073 7099 7392 7610 8522 8572 8747 .NOT.D.AND.Q 592 # .NOT.Q 604 # 4926 5787 6001 0+A 547 # 5854 0+B 546 # 0+D 550 # 0+Q 545 # 5600 5747 (U) AD PARITY OK 719 # 2195 2371 2384 2385 2602 2703 2705 2736 2742 2795 2979 2982 2996 3030 3487 3731 3764 3786 3844 3857 4164 4206 4343 4734 5130 5218 5300 5333 5365 5429 5575 5972 5975 5990 5993 6023 6039 6111 6113 6131 6163 6175 6178 6206 6209 6211 6218 6228 6269 6271 6272 6304 6309 6310 6311 6332 6337 6349 6384 6469 6527 6568 6605 6607 6711 6824 6831 6857 6859 6886 6943 6951 6957 7594 7881 8269 (U) ADFLGS 1123 # 2592 3418 3434 3501 3515 4075 4089 4106 4116 4119 4246 4657 4659 (U) AREAD 1157 # 2335 (U) B 665 # AR 669 # 2172 2174 2189 2252 2256 2259 2271 2274 2277 2334 2367 2371 2376 2384 2390 2403 2408 2410 2419 2428 2428 2431 2431 2440 2441 2471 2472 2509 2535 2541 2547 2552 2555 2583 2586 2591 2703 2705 2730 2732 2735 2736 2738 2741 2742 2744 2750 2752 2754 2757 2759 2761 2764 2766 2768 2771 2773 2775 2818 2828 2838 2853 2870 2880 2890 2900 2910 2921 2921 2931 2941 2951 2961 2979 2982 2986 2996 2998 3002 3005 3009 3014 3017 3019 3020 3022 3024 3025 3055 3056 3057 3082 3098 3154 3283 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 254 ; Cross Reference Listing 3288 3302 3305 3308 3313 3314 3343 3346 3349 3355 3358 3361 3384 3401 3403 3418 3418 3420 3434 3628 3628 3646 3649 3649 3656 3784 3789 3794 3844 3976 3977 3984 4003 4019 4020 4039 4048 4051 4059 4074 4088 4104 4109 4109 4115 4118 4121 4141 4147 4149 4150 4167 4168 4185 4233 4336 4338 4343 4345 4370 4392 4426 4432 4436 4479 4483 4483 4486 4486 4490 4493 4496 4510 4535 4549 4552 4553 4558 4563 4566 4569 4571 4573 4574 4574 4575 4605 4641 4642 4646 4656 4658 4663 4664 4707 4716 4720 4724 4735 4738 4747 4749 4753 4753 4754 4782 4820 4835 4837 4840 4841 4901 4902 4903 4904 4905 4906 4909 4917 4926 4927 4927 4929 4929 4984 4986 4996 4999 5000 5029 5038 5052 5062 5067 5070 5072 5076 5154 5178 5192 5193 5195 5266 5297 5304 5306 5307 5308 5317 5317 5343 5344 5365 5369 5370 5381 5386 5388 5389 5391 5393 5394 5419 5421 5423 5427 5429 5430 5431 5451 5456 5457 5460 5461 5461 5463 5465 5465 5498 5500 5502 5504 5507 5510 5514 5516 5518 5519 5520 5521 5522 5523 5526 5526 5529 5531 5532 5541 5544 5544 5546 5562 5589 5594 5594 5596 5601 5603 5647 5684 5688 5692 5695 5718 5721 5723 5725 5749 5750 5758 5762 5765 5768 5780 5783 5791 5793 5797 5800 5802 5804 5819 5825 5828 5850 5853 5854 5858 5897 5899 5901 5903 5905 5907 5909 5911 5913 5939 5968 5968 5975 5982 5984 5985 6000 6001 6009 6013 6026 6027 6027 6030 6032 6032 6033 6033 6039 6046 6047 6057 6058 6060 6062 6063 6064 6064 6069 6069 6077 6116 6116 6117 6118 6131 6137 6144 6148 6148 6151 6151 6154 6158 6163 6165 6172 6173 6175 6183 6191 6195 6198 6202 6271 6274 6275 6276 6284 6285 6289 6309 6311 6314 6323 6332 6349 6363 6364 6365 6366 6366 6371 6389 6391 6393 6398 6402 6415 6417 6418 6420 6442 6445 6450 6456 6456 6467 6479 6480 6481 6482 6484 6485 6518 6538 6542 6543 6543 6563 6568 6570 6571 6574 6596 6597 6609 6611 6632 6635 6637 6637 6639 6647 6655 6659 6659 6660 6672 6675 6678 6681 6685 6688 6692 6709 6711 6712 6742 6748 6749 6754 6762 6763 6765 6771 6820 6824 6829 6831 6835 6836 6838 6840 6842 6857 6859 6862 6863 6864 6864 6866 6867 6869 6886 6891 6904 6905 6906 6906 6907 6915 6930 6931 6935 6943 6947 6948 6951 6956 6960 6964 6964 6965 6968 6968 6970 6971 6972 6974 6984 6984 6992 6992 7133 7137 7148 7193 7195 7268 7269 7272 7273 7276 7277 7280 7281 7284 7285 7293 7297 7297 7298 7300 7302 7303 7303 7305 7307 7308 7308 7311 7313 7325 7335 7349 7364 7365 7366 7425 7426 7430 7432 7432 7436 7439 7443 7445 7445 7483 7487 7491 7494 7495 7497 7497 7502 7520 7530 7534 7536 7536 7591 7613 7638 7644 7650 7699 7702 7707 7713 7715 7719 7721 7722 7760 7769 7769 7874 7881 7908 7909 7982 7983 7984 7985 8002 8003 8004 8239 8249 8255 8343 8351 8357 8365 8367 8373 8376 8396 8398 8422 8425 8439 8444 8451 8456 8493 8503 8505 8511 8547 8550 8553 8556 8568 8568 8598 8619 8621 8625 8647 8679 8690 8787 8793 8802 8806 8807 8818 8841 8868 8881 8881 8885 ARX 670 # 2195 2199 2380 2385 2414 2438 2503 2785 2786 2795 2801 3693 3724 3726 3731 3739 3764 3768 3843 3846 3960 3962 3962 3980 3996 4043 4101 4113 4122 4123 4139 4140 4145 4169 4172 4173 4186 4186 4194 4204 4217 4217 4223 4226 4240 4246 4266 4285 4289 4293 4297 4303 4307 4311 4315 4357 4369 4375 4441 4447 4456 4550 4555 4561 4577 4597 4597 4600 4600 4611 4653 4654 4662 4730 4734 4921 4928 4954 4957 4960 4963 4966 5110 5159 5159 5184 5269 5303 5371 5372 5383 5561 5663 5675 5675 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 255 ; Cross Reference Listing 5710 5733 5808 5808 5810 5810 5812 5812 5814 5847 5991 5993 6011 6042 6048 6074 6079 6087 6087 6090 6092 6097 6111 6115 6135 6141 6146 6152 6178 6180 6209 6230 6236 6236 6239 6249 6249 6258 6269 6281 6282 6287 6290 6310 6312 6322 6326 6327 6327 6337 6355 6384 6395 6399 6401 6401 6403 6440 6448 6452 6454 6594 6774 6817 6885 6888 6961 6962 6981 6982 7075 7077 7115 7116 7329 7332 7340 7344 7346 7357 7493 7532 7532 7542 7542 7665 7667 7676 7682 7705 7763 7767 7779 7886 7891 7894 7958 7960 7965 7969 7972 7973 7977 7980 7987 7990 7993 7996 7999 8005 8007 8259 8335 8338 8393 8410 8428 8430 8471 8579 8590 8643 BR 671 # 2197 2398 2399 2425 2434 2436 2602 2605 2920 3030 3052 3085 3086 3089 3090 3091 3092 3104 3107 3110 3113 3116 3120 3123 3125 3157 3158 3161 3162 3285 3290 3299 3443 3446 3449 3452 3455 3458 3461 3464 3487 3501 3515 3523 3627 3633 3642 3692 3703 3709 3715 3737 3754 3760 3786 3820 3822 3826 3831 3841 3857 3858 3862 4000 4002 4002 4006 4011 4014 4108 4187 4333 4342 4351 4365 4372 4377 4382 4386 4404 4406 4408 4416 4420 4438 4439 4556 4560 4564 4565 4709 4714 4728 4788 4808 4809 4810 4811 4812 4828 4830 4832 4967 4970 4972 4976 4979 4994 5004 5031 5043 5079 5082 5118 5119 5121 5131 5133 5220 5300 5302 5305 5311 5312 5316 5363 5407 5453 5466 5540 5565 5568 5570 5581 5651 5689 5707 5714 5731 5929 5934 5934 5936 5942 5943 5945 5948 5952 5954 5955 5957 5972 5980 5990 5997 6023 6031 6050 6073 6078 6150 6206 6211 6218 6219 6220 6222 6228 6233 6241 6247 6247 6259 6259 6272 6351 6352 6353 6353 6373 6376 6378 6380 6387 6387 6397 6404 6406 6422 6474 6475 6477 6488 6490 6491 6527 6536 6605 6607 6608 6860 6903 6945 6953 6957 6976 7020 7021 7027 7028 7045 7046 7048 7052 7058 7060 7072 7073 7076 7076 7080 7080 7082 7082 7091 7092 7094 7106 7107 7109 7112 7118 7118 7159 7170 7174 7198 7199 7201 7202 7203 7224 7226 7227 7228 7233 7239 7245 7255 7257 7259 7261 7263 7296 7314 7315 7316 7339 7342 7345 7355 7370 7376 7383 7384 7418 7428 7441 7506 7518 7540 7544 7550 7550 7562 7567 7580 7594 7606 7608 7610 7626 7629 7632 7635 7642 7648 7668 7674 7680 7771 7775 7986 8246 8266 8276 8278 8280 8282 8308 8311 8314 8340 8348 8433 8449 8453 8571 8572 8591 8776 8777 8779 8856 8876 BRX 672 # 2193 2194 2194 4135 4137 4164 4165 4192 4211 4242 4265 4363 4424 4482 5055 5058 5115 5117 5130 5136 5161 5166 5183 5183 5218 5268 5268 5333 5336 5337 5339 5373 5375 5376 5378 5564 5655 5656 5667 5670 5671 5704 5713 5932 5976 6066 6075 6080 6103 6105 6113 6132 6139 6153 6176 6181 6188 6263 6263 6277 6304 6306 6317 6319 6328 6333 6339 6339 6343 6346 6346 6357 6358 6375 6405 6469 6496 6522 6524 6618 6620 6623 6668 6686 6686 6689 6694 6694 6696 6785 6790 6794 6798 6802 6806 6810 6826 7083 7085 7085 7087 7087 7089 7097 7099 7101 7234 7240 7243 7244 7341 7475 7476 7477 7478 7479 7480 7481 7546 7549 7604 7695 7755 7988 8242 8243 8245 8256 8257 8258 8268 8272 8274 8286 8287 8288 8297 8300 8306 8322 8421 8482 8485 8518 8560 8564 8566 8581 8583 8587 8589 8592 8754 8766 8771 8782 8782 8848 EBR 674 # 2177 7220 7991 FLG 677 # 2180 2182 2184 2185 3635 5123 5157 5181 5267 5533 5626 5627 5634 5773 5789 5817 5837 5838 5989 6015 6018 6034 6040 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 256 ; Cross Reference Listing 6088 6094 6102 6106 6129 6133 6140 6159 6187 6279 6369 6396 6407 6411 6473 6520 6577 6581 6614 6641 6745 7995 8248 8293 8522 8559 8645 8645 8747 8750 8759 8812 8816 8822 8824 8826 8828 8830 8832 8834 8835 8836 8844 8866 HR 668 # 2192 2198 2198 2283 2315 2330 2343 2353 2377 2449 3543 3552 3555 3557 3558 3559 3563 3574 3578 3587 3592 3597 3600 3602 3620 3641 3654 3667 3673 3677 3936 3938 3940 3942 3944 3946 3948 3950 3956 3987 3992 4054 4058 4619 6925 7000 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7264 7287 7326 7351 7356 7382 7710 7841 7850 7852 7854 7856 7858 7860 7913 7981 MAG 666 # 2166 4244 4278 4403 4451 4474 4908 4913 4916 5225 5245 5246 5247 5261 5649 5739 5775 5821 7978 MASK 676 # 2163 2164 2165 3622 4143 5240 5241 6002 7967 7994 ONE 673 # 2169 2188 2190 2797 6370 7989 PC 667 # 2230 2243 2245 2290 2303 2309 3033 3352 3468 3471 3539 3540 3541 3550 3553 3566 3593 3608 3631 3721 3773 3832 3849 3986 6264 6519 6519 7522 7692 7777 7979 8810 8820 8820 8870 8878 PI 678 # 2208 7380 7386 7386 7388 7388 7390 7392 7394 7394 7396 7396 7468 7469 7470 7471 7472 7473 7474 7565 7566 7566 7997 T0 680 # 3607 4163 4171 4203 4206 4213 4452 4458 4462 4464 4466 4471 4476 4477 5575 5580 5587 5588 5615 5617 5618 5619 5622 5630 5633 5635 5662 5735 5741 6368 6434 6443 6444 7397 7407 7408 7409 7409 7539 7729 7733 7739 7741 8000 T1 681 # 2205 2216 2233 2262 2280 2531 3594 4412 4423 4430 4444 4446 4463 4488 4570 5229 5237 5242 5249 5260 5599 5599 5624 5631 5674 5686 5706 5712 5722 5744 6438 6451 7516 7548 7893 8001 8801 UBR 675 # 2175 7144 7163 7163 7178 7182 7185 7185 7187 7187 7992 XWD1 679 # 2167 7998 (D) B 1342 # 3191 3192 3193 3194 3195 3196 3200 3201 3202 3203 3204 3205 3207 3208 3209 3210 3211 3212 3213 3214 3216 3217 3218 3219 3220 3221 3222 3223 3225 3226 3227 3228 3229 3230 3231 3232 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3251 3252 3253 3254 3255 3256 3257 3258 3364 3365 3366 3367 3368 3369 3370 3371 3373 3374 3375 3376 3377 3378 3379 3380 3390 3391 3392 3393 3394 3395 3396 3397 3407 3408 3409 3410 3411 3412 3413 3414 3423 3424 3425 3426 3427 3428 3429 3430 3476 3477 3478 3479 3480 3481 3482 3483 3490 3491 3492 3493 3494 3495 3496 3497 3504 3505 3506 3507 3508 3509 3510 3511 3518 3519 3683 3684 3685 3780 3869 3870 3871 3872 3873 3874 3875 3876 3926 3927 3928 3929 3930 3931 5866 5867 5868 5869 5870 5871 5872 5874 5875 5876 5877 5879 5880 5881 5882 5887 5888 5889 5890 5891 7572 7573 7574 7575 7583 7584 7585 7586 7597 7598 7599 7600 7784 7785 7786 7788 7789 7791 7792 7794 7795 7796 7797 7798 7799 7800 7801 7803 7804 7805 7806 7807 7808 7809 7810 7812 7813 7814 7815 7816 7817 7818 7819 7821 7822 7823 7824 7825 7826 7827 7828 7830 7831 7832 7833 7834 7835 7836 7837 AC 1346 # 2561 2562 2566 2567 2571 2572 2576 2577 2598 2614 2615 2619 2620 2624 2625 2629 2630 2634 2635 2639 2640 2644 2645 2649 2650 2656 2657 2661 2662 2666 2667 2671 2672 2676 2677 2681 2682 2686 2687 2691 2692 2781 2811 2812 2821 2822 2831 2832 2841 2842 2846 2847 2863 2864 2873 2874 2883 2884 2893 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 257 ; Cross Reference Listing 2894 2903 2904 2913 2914 2924 2925 2934 2935 2944 2945 2954 2955 4067 4068 4081 4082 4129 4130 4699 8235 BOTH 1348 # 2814 2824 2834 2844 2849 2866 2876 2886 2896 2906 2916 2927 2937 2947 2957 4070 4084 4132 DBLAC 1344 # 2780 4096 4097 4154 4155 4180 4321 4322 4326 4327 4398 5640 5701 DBLB 1345 # 4157 4324 4329 MEM 1347 # 2563 2568 2573 2578 2616 2621 2626 2631 2636 2641 2646 2651 2658 2663 2668 2673 2678 2683 2688 2693 2813 2823 2833 2843 2848 2858 2859 2865 2875 2885 2895 2905 2915 2926 2936 2946 2956 4069 4083 4131 4156 4323 4328 7250 SELF 1343 # 2564 2569 2574 2579 2617 2622 2627 2632 2637 2642 2647 2652 2659 2664 2669 2674 2679 2684 2689 2694 (U) BWRITE 1166 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 4075 4089 4141 4147 4170 4172 5461 5465 5511 5533 8569 8869 (U) BYTE 825 # BYTE1 826 # 4709 4714 4728 4749 4902 6050 6060 6542 6688 6860 6863 6903 6905 6976 BYTE2 827 # 4903 BYTE3 828 # 4904 BYTE4 829 # 4905 BYTE5 830 # 3055 4808 4809 4810 4811 4812 4906 6672 (U) CALL 977 # 2170 2196 2208 2413 2785 2795 3565 3604 3606 3607 3621 3645 3648 3845 3848 3963 3979 3984 3988 3994 3997 4138 4166 4193 4202 4212 4222 4245 4355 4376 4431 4437 4451 4455 4461 4507 4531 4709 4714 4718 4723 4728 4737 4740 4988 4998 5032 5059 5114 5130 5132 5219 5231 5233 5251 5253 5340 5382 5385 5390 5392 5500 5502 5504 5519 5520 5521 5580 5588 5616 5656 5661 5673 5680 5687 5706 5730 5734 5738 5763 5766 5769 5801 5803 5805 5811 5931 5971 5974 5978 6010 6016 6041 6065 6076 6091 6095 6102 6112 6114 6120 6134 6143 6164 6179 6182 6195 6210 6221 6229 6232 6235 6238 6246 6251 6278 6313 6322 6338 6350 6377 6388 6396 6413 6439 6468 6471 6476 6551 6559 6569 6572 6582 6595 6610 6617 6638 6642 6710 6744 6768 6868 6887 6892 6944 6952 6963 7234 7304 7328 7331 7350 7397 7427 7440 7489 7519 7521 7537 7541 7579 7590 7605 7624 7633 7662 7669 7694 7887 7889 7895 7911 7959 7961 7978 7981 7983 7985 7988 7991 7994 7997 8000 8002 8361 8368 8379 8386 8397 8406 8424 8427 8440 8463 8473 8504 8535 8620 8778 8789 8849 8877 (U) CHKL 730 # 2283 2353 2367 2376 2380 2397 2408 2419 2425 2438 2509 2541 2547 2552 2555 2605 2801 3101 3420 3563 3587 3602 3627 3631 3692 3709 3715 3737 3754 3760 3773 3831 3862 3984 3986 3992 4019 4058 4136 4229 4231 4334 4344 4428 4450 4457 4754 4782 4788 4909 5174 5223 5929 5948 6368 6558 6608 6611 6639 6915 6930 7000 7133 7268 7272 7276 7280 7284 7325 7355 7357 7364 7418 7502 7544 7668 7715 7760 7763 7765 7775 7777 7874 7893 7913 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8357 8439 8679 8848 8876 8878 (U) CHKR 737 # 2283 2353 2367 2376 2380 2397 2408 2419 2425 2438 2509 2541 2547 2552 2555 2605 2801 3101 3420 3563 3587 3602 3627 3631 3692 3709 3715 3737 3754 3760 3773 3831 3862 3984 3986 3992 4019 4058 4136 4229 4231 4334 4344 4428 4450 4457 4754 4782 4788 4909 5174 5223 5929 5948 6368 6558 6608 6611 6639 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 258 ; Cross Reference Listing 6915 6930 7000 7133 7268 7272 7276 7280 7284 7325 7355 7357 7364 7418 7502 7544 7668 7715 7760 7763 7765 7775 7777 7874 7893 7913 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8357 8439 8679 8848 8876 8878 (U) CLKL 726 # 2243 2245 2290 2303 2304 2310 2315 2330 2331 2343 2354 2377 2705 2736 2744 2766 2768 3352 3468 3471 3539 3540 3541 3550 3553 3566 3578 3608 3632 3646 3774 3833 3847 3851 3996 4008 4013 4043 4059 4110 4753 4783 4992 5051 5074 5123 5135 5157 5161 5166 5181 5184 5194 5246 5247 5267 5269 5342 5605 5942 5945 5948 5989 6015 6018 6034 6040 6069 6088 6094 6102 6106 6117 6129 6133 6140 6159 6187 6264 6279 6317 6352 6369 6396 6407 6411 6467 6473 6520 6577 6581 6616 6641 6682 6687 6745 6864 6906 6915 7074 7100 7114 7183 7199 7201 7245 7326 7331 7356 7390 7392 7394 7396 7408 7468 7469 7470 7471 7472 7473 7474 7496 7566 7692 7713 7713 7894 7910 7980 7987 7990 7993 7996 7999 8248 8513 8559 8567 8810 8816 8822 8824 8826 8828 8830 8832 8834 8835 8836 8866 8885 (U) CLKR 733 # 2434 2436 2449 2471 2472 2703 2738 2742 2759 2761 2785 3128 3130 3401 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3785 3936 3938 3940 3942 3944 3946 3948 3950 3958 3978 3988 4040 4056 4121 4122 4123 4145 4168 4375 4414 4476 4530 4653 4830 4965 4973 5036 5081 5116 5120 5307 5308 5311 5312 5336 5337 5369 5370 5430 5431 5507 5523 5626 5627 5634 5650 5772 5807 5837 5838 5853 5935 5957 6184 6189 6258 6274 6275 6281 6320 6322 6329 6335 6344 6363 6415 6418 6423 6448 6454 6525 6619 6621 6691 6695 6749 6791 6795 6799 6803 6807 6811 6827 6925 6937 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7068 7108 7111 7139 7146 7150 7165 7171 7180 7188 7229 7233 7239 7264 7287 7298 7382 7384 7386 7388 7520 7722 7767 7841 7850 7852 7854 7856 7858 7860 8241 8244 8295 8299 8302 8307 8458 8483 8520 8524 8558 8562 8565 8576 8646 8751 8756 8761 8767 8781 8844 (U) CLRFPD 1095 # 3704 3821 3827 4224 4724 4741 6407 (D) COND FUNC 1365 # 2563 2564 2568 2569 2573 2574 2578 2579 2616 2617 2621 2622 2626 2627 2631 2632 2636 2637 2641 2642 2646 2647 2651 2652 2658 2659 2663 2664 2668 2669 2673 2674 2678 2679 2683 2684 2688 2689 2693 2694 2813 2814 2823 2824 2833 2834 2843 2844 2848 2849 2858 2859 2865 2866 2875 2876 2885 2886 2895 2896 2905 2906 2915 2916 2926 2927 2936 2937 2946 2947 2956 2957 4069 4070 4083 4084 4131 4132 4156 4157 4323 4324 4328 4329 5278 5279 5282 5283 5286 5287 5290 5291 5323 5324 5328 5329 5352 5353 5357 5358 7250 (U) CRY38 960 # 2591 2961 3384 3434 3515 3541 3550 3553 4088 4105 4113 4118 4292 4296 4338 4382 4415 4438 4439 4445 4466 4492 4533 4534 4535 4551 4553 4560 4566 4597 4627 4632 4637 4642 4654 4658 4662 4664 4993 5050 5067 5117 5136 5154 5178 5266 5297 5372 5375 5376 5383 5394 5407 5499 5501 5503 5505 5516 5532 5561 5600 5713 5724 5731 5747 5788 5793 5814 5820 5854 5980 6013 6027 6048 6115 6151 6152 6153 6200 6264 6282 6285 6353 6370 6378 6397 6405 6406 6440 6442 6445 6493 6835 6956 6964 6970 7308 7408 7432 7445 7692 8810 8870 (U) DBM 705 # APR FLAGS 708 # 7020 7021 7083 7115 7314 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 259 ; Cross Reference Listing BYTES 709 # DP 711 # 3055 4709 4714 4728 4749 4808 4809 4810 4811 4812 4902 4903 4904 4905 4906 6050 6060 6542 6672 6688 6860 6863 6903 6905 6976 DP SWAP 712 # 2403 2583 2730 2732 2735 2738 2741 2744 3283 3288 3607 3784 3843 3858 3976 4828 4954 4970 5070 5110 5119 5192 6417 6474 6479 6480 6774 7107 7384 7397 7407 8449 EXP 710 # 5507 5523 5853 7339 7340 7341 MEM 714 # 2175 2282 2353 2366 2375 2379 2407 2418 2424 2437 3562 3586 3601 3623 3627 3631 3691 3736 3773 3861 4018 4781 4787 5173 5222 5929 5948 6368 6611 6639 6915 6929 6985 6993 7000 7132 7268 7272 7276 7280 7284 7324 7364 7486 7490 7502 7538 7544 7634 7715 7760 7763 7765 7873 7888 7912 7961 8292 8356 8438 8678 8791 8797 PF DISP 707 # 8262 SCAD DIAG 706 # VMA 713 # 7729 7972 8242 8257 8777 # 715 # 2163 2165 2167 2169 2172 2192 2193 2202 2205 2216 2233 2252 2256 2259 2262 2271 2274 2277 2280 2434 2436 2449 2471 2472 2531 2759 2761 2766 2768 2785 3056 3127 3129 3543 3552 3555 3557 3558 3559 3592 3594 3597 3600 3606 3620 3621 3635 3641 3654 3739 3768 3832 3849 3936 3938 3940 3942 3944 3946 3948 3950 3956 3960 4000 4004 4006 4009 4011 4039 4048 4054 4122 4123 4375 4412 4413 4423 4430 4476 4528 4555 4561 4653 4818 4960 4963 4967 4986 4990 4996 5000 5029 5034 5067 5072 5079 5123 5133 5229 5234 5242 5249 5254 5307 5308 5311 5312 5336 5337 5341 5369 5370 5406 5410 5430 5431 5525 5568 5570 5626 5627 5634 5650 5670 5671 5690 5693 5721 5723 5761 5764 5767 5770 5830 5837 5838 5897 5899 5901 5903 5905 5907 5909 5911 5913 5930 5932 5957 5973 5976 5989 6015 6018 6040 6088 6094 6102 6112 6114 6133 6140 6159 6172 6176 6183 6187 6188 6196 6200 6216 6258 6274 6275 6281 6287 6306 6319 6322 6328 6333 6341 6343 6369 6396 6400 6414 6416 6422 6434 6443 6448 6454 6470 6482 6485 6493 6505 6508 6520 6524 6539 6577 6581 6597 6609 6614 6618 6620 6635 6641 6655 6675 6681 6689 6692 6769 6790 6794 6798 6802 6806 6810 6820 6826 6925 6935 7002 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7045 7048 7058 7060 7073 7075 7077 7079 7081 7084 7086 7088 7099 7109 7112 7116 7137 7144 7148 7152 7159 7178 7199 7200 7201 7227 7233 7239 7244 7264 7287 7296 7315 7329 7379 7381 7382 7383 7385 7387 7389 7390 7391 7392 7393 7395 7426 7428 7439 7441 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7483 7487 7495 7504 7505 7516 7520 7534 7540 7546 7548 7562 7626 7629 7637 7644 7650 7664 7665 7676 7682 7696 7698 7712 7755 7841 7850 7852 7854 7856 7858 7860 7908 7909 8239 8243 8247 8248 8272 8274 8288 8293 8296 8297 8300 8306 8314 8343 8351 8362 8369 8372 8387 8392 8393 8441 8453 8456 8460 8464 8470 8471 8482 8484 8485 8488 8490 8510 8511 8515 8518 8522 8543 8556 8560 8563 8564 8566 8572 8579 8581 8582 8583 8584 8587 8622 8627 8643 8649 8652 8654 8657 8660 8681 8691 8745 8747 8749 8750 8752 8754 8757 8759 8763 8766 8771 8779 8801 8804 8822 8824 8826 8828 8830 8832 8836 8841 8844 (U) DBUS 696 # DBM 702 # 2163 2165 2167 2169 2172 2175 2192 2193 2202 2205 2216 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 260 ; Cross Reference Listing 2233 2252 2256 2259 2262 2271 2274 2277 2280 2282 2283 2353 2353 2366 2367 2375 2376 2379 2380 2403 2407 2408 2418 2419 2424 2425 2434 2436 2437 2438 2449 2471 2472 2531 2583 2730 2732 2735 2738 2741 2744 2759 2761 2766 2768 2785 3055 3056 3127 3129 3283 3288 3543 3552 3555 3557 3558 3559 3562 3563 3586 3587 3592 3594 3597 3600 3601 3602 3606 3607 3620 3621 3623 3627 3627 3631 3631 3635 3641 3654 3691 3692 3736 3737 3739 3768 3773 3773 3784 3832 3843 3849 3858 3861 3862 3936 3938 3940 3942 3944 3946 3948 3950 3956 3960 3976 4000 4004 4006 4009 4011 4018 4019 4039 4048 4054 4122 4123 4375 4412 4413 4423 4430 4476 4528 4555 4561 4653 4709 4714 4728 4749 4781 4782 4787 4788 4808 4809 4810 4811 4812 4818 4828 4902 4903 4904 4905 4906 4954 4960 4963 4967 4970 4986 4990 4996 5000 5029 5034 5067 5070 5072 5079 5110 5119 5123 5133 5173 5174 5192 5222 5223 5228 5234 5242 5248 5254 5307 5308 5311 5312 5336 5337 5341 5369 5370 5406 5410 5430 5431 5507 5523 5525 5568 5570 5626 5627 5634 5650 5670 5671 5690 5693 5721 5723 5761 5764 5767 5770 5830 5837 5838 5853 5897 5899 5901 5903 5905 5907 5909 5911 5913 5929 5929 5930 5932 5948 5948 5957 5973 5976 5989 6015 6018 6040 6050 6060 6088 6094 6102 6112 6114 6133 6140 6159 6172 6176 6183 6187 6188 6196 6200 6216 6258 6274 6275 6281 6287 6306 6319 6322 6328 6333 6341 6343 6368 6368 6369 6396 6400 6414 6416 6417 6422 6434 6443 6448 6454 6470 6474 6479 6480 6482 6485 6493 6505 6508 6520 6524 6539 6542 6577 6581 6597 6609 6611 6611 6614 6618 6620 6635 6639 6639 6641 6655 6672 6675 6681 6688 6689 6692 6769 6774 6790 6794 6798 6802 6806 6810 6820 6826 6860 6863 6903 6905 6915 6915 6925 6929 6930 6935 6976 6985 6993 7000 7000 7002 7008 7017 7018 7019 7020 7021 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7045 7048 7058 7060 7073 7075 7077 7079 7081 7083 7084 7086 7088 7099 7107 7109 7112 7115 7116 7132 7133 7137 7144 7148 7152 7159 7178 7199 7200 7201 7227 7233 7239 7244 7264 7268 7268 7272 7272 7276 7276 7280 7280 7284 7284 7287 7296 7314 7315 7324 7325 7329 7339 7340 7341 7364 7364 7379 7381 7382 7383 7384 7385 7387 7389 7390 7391 7392 7393 7395 7397 7407 7426 7428 7439 7441 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7483 7486 7487 7490 7491 7495 7502 7502 7504 7505 7516 7520 7534 7538 7539 7540 7544 7544 7546 7548 7562 7626 7629 7634 7635 7637 7644 7650 7664 7665 7676 7682 7696 7698 7712 7715 7715 7729 7755 7760 7760 7763 7763 7765 7765 7841 7850 7852 7854 7856 7858 7860 7873 7874 7888 7908 7909 7912 7913 7961 7972 8239 8242 8243 8247 8248 8257 8262 8268 8272 8274 8288 8292 8293 8296 8297 8300 8306 8314 8343 8351 8356 8357 8362 8369 8372 8387 8392 8393 8438 8439 8441 8449 8453 8456 8460 8464 8470 8471 8482 8484 8485 8488 8490 8510 8511 8515 8518 8522 8543 8556 8560 8563 8564 8566 8572 8579 8581 8582 8583 8584 8587 8622 8627 8643 8649 8652 8654 8657 8660 8678 8679 8681 8691 8745 8747 8749 8750 8752 8754 8757 8759 8763 8766 8771 8777 8779 8791 8797 8801 8804 8822 8824 8826 8828 8830 8832 8836 8841 8844 DP 700 # 2187 2188 2503 2509 2535 2541 2547 2552 2555 2605 2786 2801 3036 3057 3092 3125 3131 3314 3401 3403 3420 3443 3446 3446 3449 3449 3452 3452 3455 3458 3458 3461 3461 3464 3464 3668 3709 3715 3724 3726 3754 3760 3789 3794 3822 3831 3984 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 261 ; Cross Reference Listing 3986 3992 4058 4121 4145 4168 4196 4204 4213 4215 4226 4226 4227 4228 4230 4232 4454 4470 4471 4472 4474 4477 4496 4498 4501 4628 4633 4638 4644 4645 4646 4724 4754 4909 5082 5131 5151 5177 5195 5220 5265 5457 5463 5775 5783 5819 5820 5821 5828 5980 6026 6046 6053 6063 6066 6101 6103 6105 6139 6146 6180 6222 6239 6241 6276 6277 6277 6289 6290 6297 6299 6323 6323 6326 6358 6364 6375 6380 6402 6403 6404 6562 6563 6608 6623 6696 6712 6749 6838 6838 6866 6907 6945 6953 6960 6965 6972 7298 7355 7357 7418 7591 7668 7710 7775 7777 7779 7893 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8249 8812 8848 8876 8878 PC FLAGS 697 # 3642 3656 3703 3820 3826 3977 4003 4233 6981 7506 7518 8856 PI NEW 698 # 7465 RAM 701 # 2195 2303 2315 2330 2343 2371 2384 2385 2397 2398 2602 2703 2705 2736 2742 2795 2828 2838 2870 2880 2900 2910 2920 2951 2979 2982 2996 3002 3014 3017 3030 3101 3104 3290 3305 3308 3313 3384 3487 3501 3515 3523 3570 3578 3693 3731 3764 3786 3844 3857 4074 4088 4101 4104 4113 4115 4118 4136 4164 4192 4194 4206 4211 4229 4231 4334 4343 4344 4426 4428 4450 4457 4467 4627 4631 4632 4636 4637 4641 4642 4730 4734 4766 4774 4984 4993 4994 5006 5010 5045 5052 5057 5065 5121 5130 5193 5218 5300 5333 5365 5429 5564 5565 5575 5655 5667 5710 5718 5942 5945 5972 5975 5990 5993 6009 6013 6023 6030 6039 6042 6058 6062 6077 6078 6079 6080 6097 6111 6113 6131 6144 6150 6157 6163 6175 6178 6195 6198 6202 6206 6209 6211 6218 6220 6228 6230 6233 6269 6271 6272 6284 6285 6304 6309 6310 6311 6332 6337 6349 6355 6365 6373 6378 6384 6391 6397 6398 6399 6420 6440 6445 6450 6452 6469 6527 6558 6568 6571 6596 6605 6607 6632 6647 6709 6711 6754 6755 6762 6824 6829 6831 6836 6840 6842 6857 6859 6886 6910 6912 6943 6947 6951 6956 6957 6962 6970 6971 6974 7072 7106 7198 7255 7257 7259 7261 7263 7293 7302 7307 7313 7345 7346 7349 7370 7580 7594 7608 7610 7702 7705 7707 7713 7719 7721 7881 7960 7965 7969 7984 8002 8004 8005 8007 8246 8335 8338 8365 8367 8398 8405 8422 8425 8444 8493 8503 8505 8534 8550 8590 8591 8592 8598 8618 8619 8625 8787 8793 8802 8806 8818 (U) DEST 631 # A 632 # 2403 2419 2503 2535 2583 2730 2732 2735 2738 2741 2744 2786 3057 3092 3283 3288 3314 3401 3403 3443 3446 3449 3452 3455 3458 3461 3464 3607 3724 3726 3784 3822 3843 3858 3976 4121 4145 4168 4226 4471 4477 4646 4709 4714 4724 4728 4749 4808 4809 4810 4811 4812 4828 4902 4903 4904 4905 4906 4954 4970 5070 5110 5119 5131 5192 5195 5220 5457 5463 5507 5523 5783 5828 5853 6026 6046 6050 6060 6063 6103 6139 6146 6180 6239 6241 6276 6277 6289 6290 6323 6326 6358 6364 6375 6380 6402 6403 6404 6417 6474 6479 6480 6542 6563 6623 6688 6696 6749 6774 6838 6860 6863 6866 6903 6905 6907 6945 6953 6960 6965 6972 6976 7107 7298 7384 7397 7407 7591 7779 8249 8449 AD 634 # 2163 2165 2167 2169 2172 2175 2177 2180 2189 2192 2193 2194 2195 2198 2205 2208 2216 2230 2233 2243 2245 2252 2256 2259 2262 2271 2274 2277 2280 2283 2290 2303 2309 2315 2330 2334 2343 2353 2367 2371 2376 2377 2380 2384 2385 2408 2414 2425 2428 2431 2434 2436 2449 2471 2472 2531 2591 2602 2703 2705 2736 2742 2752 2754 2759 2761 2766 2768 2773 2775 2785 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 262 ; Cross Reference Listing 2795 2818 2828 2838 2853 2870 2880 2890 2900 2910 2920 2921 2931 2941 2951 2961 2979 2982 2996 3030 3033 3056 3285 3290 3302 3305 3308 3313 3352 3384 3418 3434 3468 3471 3487 3501 3515 3523 3539 3540 3543 3552 3555 3557 3558 3559 3563 3566 3578 3587 3592 3593 3594 3597 3600 3602 3608 3620 3627 3628 3631 3635 3641 3642 3646 3649 3654 3656 3667 3692 3693 3703 3721 3731 3737 3739 3764 3768 3773 3786 3820 3826 3832 3841 3844 3846 3849 3857 3862 3936 3938 3940 3942 3944 3946 3948 3950 3956 3960 3962 3977 3987 3996 4000 4002 4003 4006 4011 4019 4039 4043 4048 4054 4059 4074 4088 4101 4104 4108 4109 4113 4115 4118 4122 4123 4135 4141 4147 4149 4150 4163 4164 4169 4172 4173 4187 4203 4217 4233 4240 4333 4336 4338 4342 4343 4357 4363 4369 4375 4392 4412 4423 4424 4430 4441 4447 4456 4464 4476 4483 4486 4535 4550 4552 4553 4555 4560 4561 4574 4641 4642 4653 4654 4656 4658 4662 4663 4664 4734 4747 4753 4782 4788 4830 4841 4926 4927 4928 4929 4963 4972 4984 4986 4994 4996 5000 5003 5029 5042 5052 5055 5061 5072 5079 5115 5118 5121 5123 5130 5133 5157 5159 5161 5166 5181 5183 5184 5193 5218 5236 5242 5267 5268 5269 5297 5300 5303 5304 5305 5307 5308 5311 5312 5317 5333 5336 5337 5343 5363 5365 5369 5370 5371 5372 5407 5429 5430 5431 5461 5465 5466 5514 5516 5526 5529 5531 5532 5533 5544 5561 5562 5575 5580 5581 5588 5589 5599 5624 5626 5627 5631 5634 5651 5662 5674 5675 5704 5706 5707 5712 5713 5714 5722 5733 5735 5749 5750 5773 5789 5791 5793 5808 5810 5812 5814 5817 5837 5838 5854 5897 5899 5901 5903 5905 5907 5909 5911 5913 5929 5932 5934 5942 5943 5945 5948 5957 5968 5972 5975 5976 5982 5984 5989 5990 5991 5993 6001 6009 6011 6013 6015 6018 6023 6027 6030 6032 6033 6034 6039 6040 6042 6048 6057 6058 6062 6064 6069 6077 6078 6079 6080 6087 6088 6092 6094 6097 6102 6106 6111 6113 6116 6117 6118 6129 6131 6133 6140 6144 6148 6150 6151 6152 6153 6158 6159 6163 6172 6175 6176 6178 6183 6187 6188 6195 6198 6202 6206 6209 6211 6220 6228 6230 6233 6236 6247 6249 6258 6259 6263 6264 6269 6271 6272 6274 6275 6279 6281 6282 6284 6285 6287 6304 6306 6309 6310 6311 6317 6319 6322 6327 6328 6332 6333 6337 6339 6343 6346 6349 6351 6352 6353 6355 6363 6365 6366 6368 6369 6371 6373 6378 6384 6387 6391 6396 6397 6398 6399 6401 6405 6406 6407 6411 6415 6418 6420 6422 6434 6438 6440 6442 6443 6445 6448 6450 6452 6454 6456 6467 6469 6473 6482 6485 6519 6520 6524 6527 6536 6538 6543 6568 6571 6577 6581 6596 6597 6605 6607 6609 6611 6614 6618 6620 6632 6635 6637 6639 6641 6647 6655 6675 6681 6686 6689 6692 6694 6709 6711 6745 6754 6762 6771 6790 6794 6798 6802 6806 6810 6820 6824 6826 6829 6831 6835 6836 6840 6842 6857 6859 6862 6864 6885 6886 6904 6906 6915 6925 6930 6935 6943 6947 6951 6956 6957 6961 6962 6964 6968 6970 6971 6974 6981 6984 6992 7000 7008 7017 7018 7019 7020 7021 7023 7024 7025 7026 7027 7028 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7045 7048 7058 7060 7072 7073 7075 7076 7077 7080 7082 7083 7085 7087 7099 7106 7109 7112 7115 7116 7118 7133 7137 7144 7148 7159 7163 7170 7178 7182 7185 7187 7198 7199 7201 7220 7227 7228 7233 7239 7244 7245 7255 7257 7259 7261 7263 7264 7268 7272 7276 7280 7284 7287 7293 7296 7297 7302 7303 7305 7307 7308 7313 7314 7315 7325 7326 7329 7339 7340 7341 7344 7345 7346 7349 7356 7364 7370 7376 7380 7382 7383 7386 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 263 ; Cross Reference Listing 7388 7390 7392 7394 7396 7408 7409 7425 7426 7428 7432 7439 7441 7445 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7483 7487 7491 7493 7495 7497 7502 7506 7516 7518 7520 7522 7532 7534 7536 7539 7540 7542 7544 7548 7550 7562 7566 7580 7594 7604 7606 7608 7610 7613 7626 7629 7635 7638 7644 7650 7665 7676 7682 7695 7702 7705 7707 7713 7715 7719 7721 7722 7729 7755 7760 7763 7767 7769 7841 7850 7852 7854 7856 7858 7860 7874 7881 7891 7894 7908 7909 7913 7960 7965 7969 7972 7980 7984 7987 7990 7993 7996 7999 8002 8004 8005 8007 8239 8242 8243 8246 8248 8257 8268 8272 8274 8288 8293 8297 8300 8306 8308 8314 8335 8338 8343 8351 8357 8365 8367 8393 8396 8398 8422 8425 8439 8444 8453 8456 8471 8482 8485 8493 8503 8505 8511 8518 8522 8547 8550 8556 8559 8560 8564 8566 8568 8571 8572 8579 8581 8583 8587 8590 8591 8592 8598 8619 8621 8625 8643 8645 8679 8690 8747 8750 8754 8759 8766 8771 8777 8779 8782 8787 8793 8801 8802 8806 8810 8816 8818 8820 8822 8824 8826 8828 8830 8832 8834 8835 8836 8841 8844 8856 8866 8868 8870 8881 8885 AD*.5 641 # 2166 2438 2440 2441 2998 3002 3014 3017 3019 3020 3024 3055 3107 3110 4185 4186 4192 4194 4204 4206 4211 4242 4404 4426 4432 4563 4564 4565 4571 4821 4832 4908 4957 4960 4967 4976 5378 5386 5388 5393 5394 5453 5502 5504 5520 5521 5540 5541 5546 5564 5565 5568 5570 5655 5656 5663 5667 5670 5671 5689 5710 5718 5721 5723 5847 5858 6481 6484 6488 6490 6570 6672 6678 6685 6748 7224 7226 7234 7240 7243 7546 7549 7567 7642 7648 8311 AD*2 639 # 2164 2986 3009 3022 3025 3052 4140 4167 4223 4466 4606 4730 5067 5076 5229 5249 5260 5373 5376 5381 5456 6218 6219 6475 6659 6765 7174 7193 7195 7494 7530 7674 7680 7771 8373 8376 8410 8553 PASS 636 # 2174 2182 2184 2185 2188 2190 2191 2197 2199 2242 2246 2264 2321 2348 2357 2444 2509 2541 2547 2552 2555 2605 2801 2802 3125 3340 3420 3467 3472 3546 3582 3644 3655 3677 3709 3715 3744 3749 3754 3760 3789 3794 3828 3831 3859 3984 3986 3992 4058 4143 4171 4213 4228 4230 4232 4235 4410 4454 4474 4496 4498 4501 4628 4633 4638 4644 4645 4707 4710 4719 4754 4770 4778 4909 4966 4979 4989 4999 5031 5111 5139 5147 5263 5775 5819 5820 5821 5939 5946 5952 5955 5980 5985 6002 6047 6073 6074 6075 6090 6121 6137 6160 6173 6191 6222 6312 6314 6370 6376 6389 6395 6472 6528 6594 6606 6608 6648 6712 6742 6911 6913 6931 6948 6982 7046 7052 7094 7130 7203 7235 7269 7273 7277 7281 7285 7300 7311 7332 7335 7342 7355 7357 7365 7366 7399 7417 7418 7423 7450 7451 7501 7565 7632 7667 7668 7670 7699 7714 7733 7739 7741 7773 7775 7777 7870 7878 7886 7893 7905 7958 7973 7978 7979 7981 7982 7983 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8006 8245 8255 8256 8258 8259 8263 8266 8276 8278 8280 8282 8286 8287 8340 8348 8353 8428 8430 8433 8451 8577 8593 8674 8776 8845 8848 8876 8878 Q_AD 635 # 2397 2995 3101 3127 3129 4136 4162 4201 4221 4229 4231 4241 4334 4344 4403 4413 4415 4428 4450 4453 4455 4457 4468 4481 4482 4485 4492 4500 4528 4533 4534 4551 4576 4627 4631 4632 4636 4637 4836 4912 4919 4981 4990 4993 5010 5034 5050 5057 5117 5174 5223 5234 5239 5254 5257 5314 5338 5341 5385 5396 5408 5412 5414 5415 5428 5441 5499 5501 5503 5505 5573 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 264 ; Cross Reference Listing 5582 5585 5590 5600 5605 5645 5650 5660 5673 5679 5691 5694 5724 5729 5734 5736 5747 5771 5787 5788 5806 5998 6157 6558 7765 Q_Q*.5 640 # 2398 2399 3085 3104 3113 3157 4137 4165 4244 4265 4266 4278 4285 4293 4303 4311 4406 4408 4416 4420 4436 4451 4458 4510 4558 5058 5225 5245 5246 5247 5261 5316 5339 5344 5419 5421 5451 5594 5619 5622 5630 5633 5635 5649 5684 5725 5739 5765 5768 5802 5804 5850 Q_Q*2 638 # 3005 3086 3089 3090 3091 3116 3120 3123 3158 3161 3162 4289 4297 4307 4315 4452 4462 4490 4493 4566 4569 4570 4573 4575 4597 4600 4612 4617 4837 4840 4913 4916 4921 5240 5241 5498 5510 5518 5522 5596 5601 5603 5615 5617 5618 5647 5688 5692 5741 5758 5780 5797 5825 6000 (U) DISP 870 # 4578 ADISP 877 # AREAD 873 # 2335 BDISP 878 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 3285 3291 3384 3403 3404 3487 3501 3515 3525 3710 3717 3755 4075 4089 4141 4147 4170 4172 5224 5453 5461 5465 5511 5523 5533 5540 5944 5986 6130 6185 6392 6746 6818 6825 7580 7607 7625 7636 7663 8569 8869 BYTE 883 # 4722 4739 6167 6870 6891 CONSOLE 871 # DP 876 # 4444 4446 4463 4488 6491 6518 8812 DP LEFT 874 # 6477 6772 7466 8264 DROM 872 # 2368 2372 2381 2386 2394 2415 2421 2445 2450 5953 5956 EAMODE 884 # 2293 2359 3568 4761 4764 5940 6908 6916 7704 MUL 880 # 4285 4293 4303 4311 5597 5623 5625 5742 NICOND 882 # 2242 2243 2245 2246 2306 2312 2536 3057 3103 3131 3340 3352 3443 3467 3468 3471 3472 3539 3540 3566 3608 3725 3801 3808 4235 4499 4502 4710 5457 5463 5822 7399 7670 8249 NORM 875 # 5317 5346 5423 5498 5500 5510 5514 5516 5518 5519 5522 5544 5695 5749 5750 5760 5762 5782 5792 5794 5799 5800 5827 5856 PAGE FAIL 881 # RETURN 879 # 2471 2472 3573 3577 4041 4044 4247 4290 4298 4308 4316 4510 4532 4533 4535 4619 4646 4748 4750 4754 4789 4822 4841 4909 5123 5260 5261 5543 5545 5546 5635 5830 5837 5838 5853 6242 6252 6257 6260 6298 6299 6449 6455 6626 6649 6714 6745 6757 6788 6804 6821 6830 6832 6858 6893 6926 6932 6937 6977 7245 7312 7336 7411 7455 7563 7566 7638 7645 7651 7708 7716 7720 7723 7749 7761 7763 7765 7767 7769 7771 7773 7775 7777 7779 7970 7974 8008 8599 8621 8626 8632 8663 8666 8667 8680 8689 8692 8693 8797 8885 SCAD0 885 # 4709 4714 4728 4804 5300 5443 5445 5998 6000 6051 6861 6903 7735 (U) DIVIDE 971 # 4569 4570 4614 4618 (U) DONT CACHE 1141 # (U) DP FUNC 1158 # 7632 7667 7773 8578 8594 (U) DT 940 # 2T 943 # 3T 944 # 2195 2385 2397 2398 2508 2540 2546 2551 2554 2604 2795 2801 3002 3014 3017 3031 3101 3104 3346 3349 3358 3361 3420 3449 3452 3461 3464 3606 3606 3621 3621 3708 3714 3753 3759 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 265 ; Cross Reference Listing 3830 3983 3985 3991 4004 4009 4057 4101 4113 4139 4144 4206 4211 4229 4231 4344 4346 4348 4352 4366 4405 4411 4426 4428 4440 4450 4457 4470 4551 4627 4629 4631 4632 4634 4636 4637 4639 4655 4662 4709 4714 4722 4728 4730 4739 4754 4909 4980 4984 4993 4994 5009 5039 5052 5057 5121 5150 5176 5193 5265 5317 5346 5363 5383 5389 5391 5423 5464 5498 5500 5506 5510 5514 5516 5518 5519 5522 5525 5530 5544 5565 5667 5686 5690 5693 5695 5707 5718 5737 5749 5750 5760 5761 5762 5764 5767 5770 5779 5782 5788 5792 5794 5799 5800 5824 5827 5830 5848 5856 5930 5972 5973 5990 5993 6009 6013 6023 6030 6039 6042 6058 6062 6077 6078 6079 6080 6097 6111 6112 6114 6131 6144 6150 6154 6157 6163 6167 6178 6195 6196 6198 6202 6206 6207 6209 6211 6216 6218 6220 6228 6230 6233 6269 6271 6272 6283 6284 6285 6286 6304 6310 6337 6341 6349 6354 6355 6365 6373 6378 6384 6391 6397 6398 6399 6400 6414 6416 6420 6470 6505 6508 6527 6558 6562 6568 6571 6575 6596 6605 6607 6608 6612 6632 6633 6647 6709 6711 6754 6755 6756 6762 6769 6824 6829 6831 6836 6840 6842 6857 6859 6870 6886 6891 6943 6947 6951 6956 6957 6962 6970 6971 6974 7020 7021 7072 7079 7081 7083 7084 7086 7088 7106 7115 7198 7255 7257 7259 7261 7263 7293 7302 7307 7309 7313 7314 7343 7345 7346 7349 7355 7357 7370 7379 7381 7385 7387 7389 7391 7393 7395 7418 7632 7637 7664 7667 7668 7696 7698 7702 7705 7707 7712 7719 7721 7773 7775 7777 7893 7960 7965 7966 7969 7978 7979 7981 7982 7984 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8002 8003 8004 8005 8007 8246 8247 8296 8335 8336 8338 8339 8362 8365 8367 8369 8372 8387 8392 8398 8422 8423 8425 8426 8441 8444 8460 8464 8470 8484 8488 8490 8493 8503 8505 8510 8515 8543 8550 8563 8582 8584 8590 8591 8592 8598 8619 8622 8625 8627 8649 8652 8654 8657 8660 8681 8691 8745 8749 8752 8757 8763 8787 8793 8802 8804 8806 8818 8847 8876 8878 4T 945 # 8405 8534 8618 5T 946 # (U) EXT ADR 1164 # 3982 3996 4016 4043 6989 6997 7501 7543 7632 7667 7773 7891 7894 7977 7980 7987 7990 7993 7996 7999 8341 8349 8355 8435 8676 8846 8882 8885 (U) FETCH 1130 # 2242 2243 2245 2246 2265 2291 2305 2311 2358 2419 2444 3034 3340 3352 3467 3468 3471 3472 3539 3540 3566 3608 3723 4235 4710 4719 7399 7670 7906 8804 (D) FL-B 1353 # AC 1354 # 5277 5280 5281 5285 5288 5289 5322 5326 5327 5351 5355 5356 5401 5402 5436 5437 BOTH 1356 # 5279 5283 5287 5291 5324 5329 5353 5358 MEM 1355 # 5278 5282 5286 5290 5323 5328 5352 5357 (U) FLG.C 1319 # 8294 8563 8584 8691 8748 8751 (U) FLG.PI 1318 # 3636 8372 8392 8460 8470 8490 8627 8652 8657 8681 8745 8844 (U) FLG.SN 1320 # 5525 5626 5627 5634 5761 5764 5767 5770 5830 5837 5838 (U) FLG.W 1317 # 8294 8484 8523 8582 8691 8748 8760 (U) FMWRITE 966 # 2174 2182 2184 2185 2187 2188 2190 2191 2197 2199 2503 2535 2786 3036 3057 3092 3125 3131 3314 3403 3443 3446 3449 3452 3455 3458 3461 3464 3677 3724 3726 3789 3794 3822 4196 4204 4213 4215 4226 4227 4228 4230 4232 4454 4470 4471 4472 4474 4477 4496 4498 4501 4628 4633 4638 4644 4645 4646 4707 4724 4966 4979 4989 4999 5031 5082 5131 5195 5220 5457 5463 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 266 ; Cross Reference Listing 5775 5783 5819 5820 5821 5828 5939 5952 5955 5980 5985 6002 6026 6046 6047 6053 6063 6066 6073 6074 6075 6090 6101 6103 6105 6121 6137 6139 6146 6160 6173 6180 6191 6222 6239 6241 6276 6277 6289 6290 6297 6299 6312 6314 6323 6326 6358 6364 6370 6375 6376 6380 6389 6395 6402 6403 6404 6563 6594 6623 6696 6712 6742 6838 6866 6907 6931 6945 6948 6953 6960 6965 6972 6982 7094 7203 7269 7273 7277 7281 7285 7300 7311 7332 7335 7365 7366 7450 7451 7591 7699 7733 7739 7741 7779 7886 7958 7973 7983 8245 8249 8255 8256 8258 8259 8266 8276 8278 8280 8282 8286 8287 8428 8430 8451 8776 (U) FORCE EXEC 1128 # 3982 3996 4016 4043 6989 6997 7487 7501 7503 7517 7534 7543 7551 7626 7629 7665 7676 7682 7891 7894 7908 7977 7980 7987 7990 7993 7996 7999 8341 8349 8355 8435 8676 8846 8882 8885 (U) FORCE USER 1127 # 3982 3996 4016 4043 6989 6997 7487 7501 7534 7543 7626 7629 7665 7676 7682 7891 7894 7908 7977 7980 7987 7990 7993 7996 7999 8341 8349 8355 8435 8676 8846 8882 8885 (U) GENL 728 # 2243 2245 2290 2303 2304 2310 2315 2330 2331 2343 2354 2377 2705 2736 2744 2766 2768 3352 3468 3471 3539 3540 3541 3550 3553 3566 3578 3608 3632 3646 3774 3833 3847 3851 3996 4008 4013 4043 4059 4110 4753 4783 4992 5051 5074 5123 5135 5157 5161 5166 5181 5184 5194 5246 5247 5267 5269 5342 5605 5942 5945 5948 5989 6015 6018 6034 6040 6069 6088 6094 6102 6106 6117 6129 6133 6140 6159 6187 6264 6279 6317 6352 6369 6396 6407 6411 6467 6473 6520 6577 6581 6616 6641 6682 6687 6745 6864 6906 6915 7074 7100 7114 7183 7199 7201 7245 7326 7331 7356 7390 7392 7394 7396 7408 7468 7469 7470 7471 7472 7473 7474 7496 7566 7692 7713 7713 7894 7910 7980 7987 7990 7993 7996 7999 8248 8513 8559 8567 8810 8816 8822 8824 8826 8828 8830 8832 8834 8835 8836 8866 8885 (U) GENR 735 # 2434 2436 2449 2471 2472 2703 2738 2742 2759 2761 2785 3128 3130 3401 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3785 3936 3938 3940 3942 3944 3946 3948 3950 3958 3978 3988 4040 4056 4121 4122 4123 4145 4168 4375 4414 4476 4530 4653 4830 4965 4973 5036 5081 5116 5120 5307 5308 5311 5312 5336 5337 5369 5370 5430 5431 5507 5523 5626 5627 5634 5650 5772 5807 5837 5838 5853 5935 5957 6184 6189 6258 6274 6275 6281 6320 6322 6329 6335 6344 6363 6415 6418 6423 6448 6454 6525 6619 6621 6691 6695 6749 6791 6795 6799 6803 6807 6811 6827 6925 6937 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7068 7108 7111 7139 7146 7150 7165 7171 7180 7188 7229 7233 7239 7264 7287 7298 7382 7384 7386 7388 7520 7722 7767 7841 7850 7852 7854 7856 7858 7860 8241 8244 8295 8299 8302 8307 8458 8483 8520 8524 8558 8562 8565 8576 8646 8751 8756 8761 8767 8781 8844 (U) HALT 1296 # BW14 1306 # 2531 CSL 1300 # 2262 2280 HALT 1299 # 3594 ILLII 1303 # 7516 ILLINT 1304 # 7548 IOPF 1302 # 8801 MULERR 1308 # 2205 NICOND 5 1307 # ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 267 ; Cross Reference Listing POWER 1298 # 2233 (U) HOLD USER 1097 # 2231 2592 3418 3434 3501 3515 3572 3576 3612 3634 3704 3716 3772 3802 3806 3821 3827 4022 4075 4089 4106 4116 4119 4149 4150 4174 4224 4236 4246 4249 4356 4391 4422 4508 4657 4659 4724 4741 4763 5015 5367 5379 5444 5732 6406 6407 7006 (D) I 1361 # 2562 2567 2572 2577 2615 2620 2625 2630 2635 2640 2645 2650 2657 2662 2667 2672 2677 2682 2687 2692 2811 2812 2813 2814 2822 2832 2842 2847 2857 2864 2874 2884 2894 2903 2904 2905 2906 2914 2925 2935 2945 2954 2955 2956 2957 2969 2970 3189 3190 3191 3192 3193 3194 3195 3196 3198 3199 3207 3208 3209 3210 3211 3212 3213 3214 3225 3226 3227 3228 3229 3230 3231 3232 3242 3243 3244 3245 3246 3247 3248 3249 3364 3365 3366 3367 3368 3369 3370 3371 3476 3477 3478 3479 3480 3481 3482 3483 3490 3491 3492 3493 3494 3495 3496 3497 3504 3505 3506 3507 3508 3509 3510 3511 3518 3519 3530 3532 3683 3684 3685 3686 3780 3813 3814 3815 3816 3869 3870 3871 3872 3873 3874 3875 3876 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 3911 3915 3916 3917 3918 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 4068 4082 4130 4155 4322 4327 5126 5402 5866 5867 5868 5869 5870 5871 5872 5874 5875 5876 5877 5879 5880 5881 5882 5884 5885 5886 5887 5888 5889 5890 5891 5925 7784 7785 7786 7788 7789 7791 7792 7794 7795 7796 7797 7798 7799 7800 7801 7803 7804 7805 7806 7807 7808 7809 7810 7812 7813 7814 7815 7816 7817 7818 7819 7821 7822 7823 7824 7825 7826 7827 7828 7830 7831 7832 7833 7834 7835 7836 7837 (U) I.CO3 1192 # (U) I.CO4 1193 # (U) I.CO5 1194 # (U) I.CO6 1195 # (U) I.CO7 1196 # (U) IO BYTE 1177 # 7627 7677 7683 (U) IO CYCLE 1171 # 7487 7534 7626 7629 7665 7676 7682 7908 (U) J 533 # 2335 2368 2372 2381 2386 2394 2415 2421 2445 2450 2471 2472 3573 3577 4041 4044 4247 4290 4298 4308 4316 4510 4532 4533 4535 4579 4619 4646 4748 4750 4754 4789 4822 4841 4909 5123 5260 5261 5543 5545 5546 5635 5830 5837 5838 5853 5953 5956 6242 6252 6257 6260 6298 6299 6449 6455 6626 6649 6714 6745 6757 6788 6804 6821 6830 6832 6858 6893 6926 6932 6937 6977 7245 7312 7336 7411 7455 7563 7566 7638 7645 7651 7708 7716 7720 7723 7749 7761 7763 7765 7767 7769 7771 7773 7775 7777 7779 7902 7970 7974 8008 8599 8621 8626 8632 8663 8666 8667 8680 8689 8692 8693 8797 8885 ABORT 8797 # 3963 8778 ACBSET 7159 # 7141 AC_ARX 7779 # 3848 6963 ADD 4074 # 4067 4068 4069 4070 ADDCRY 6257 # 6232 6238 6251 ADJBP 4954 # 4708 ADJBP0 4957 # 4959 ADJBP1 4976 # 4978 ADJBP2 4986 # 4983 ADJBP3 5029 # 5014 ADJBP4 5041 # 5053 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 268 ; Cross Reference Listing ADJBP5 5055 # 5049 ADJBP6 5076 # 5078 ADJSP 3784 # 3780 ADJSP1 3801 # 3793 ADJSP2 3806 # 3798 AND 2828 # 2821 2822 2823 2824 2853 ANDCA 2838 # 2831 2832 2833 2834 2890 ANDCB 2890 # 2883 2884 2885 2886 ANDCM 2853 # 2846 2847 2848 2849 AOBJ 3523 # 3518 3519 AOJ 3501 # 3490 3491 3492 3493 3494 3495 3496 3497 AOS 3418 # 3407 3408 3409 3410 3411 3412 3413 3414 APRID 7058 # APRSO 7045 # 7021 APRSZ 7048 # 7020 ARSIGN 2471 # 2413 ASH 2995 # 2966 ASHC 3098 # 2970 ASHC1 3104 # 3102 ASHCL 3120 # 3109 3122 ASHCQ1 3131 # 3092 3128 ASHCR 3113 # 3115 ASHCX 3125 # 3117 ASHL 3005 # 3005 ASHL0 3002 # 2995 ASHR 2998 # 2984 ASHX 3009 # 3022 ASHXX 3022 # 3027 BACKBP 6976 # 6944 6952 BACKD 6951 # 8827 8835 8837 BACKS 6943 # 8834 BADDATA 8285 # 8270 BDABT 6420 # 6356 BDCFLG 6422 # 6401 BDEC 6304 # BDEC0 6310 # 6308 BDEC1 6317 # 6326 BDEC2 6322 # 6330 BDEC3 6332 # 6318 6340 BDEC4 6337 # 6332 BDEC5 6349 # 6335 6345 BDECLP 6387 # 6406 BDFILL 6371 # 6380 BDSET 6395 # 6415 6418 BDSUB 6434 # 6338 6388 BDSUB1 6438 # 6435 BDSUB2 6454 # 6457 BDTBL 6411 # 6394 BITCHK 6925 # 5931 5974 6112 6114 6471 BIXUB 7604 # 7597 7598 7599 7600 BIXUB1 7613 # 7609 7611 BLT 5130 # 5126 BLT-CLEANUP 5191 # 8819 BLTBU1 5245 # 5226 BLTCLR 5150 # 5165 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 269 ; Cross Reference Listing BLTGOT 5178 # 5153 BLTGO 5176 # 5142 5170 BLTLP 5173 # 5188 BLTLP1 5139 # 5175 BLTX 5218 # 7847 BLTXLP 5222 # 5271 BLTXV 5257 # 5243 BLTXW 5263 # 5258 BOTH 2343 # BWRITE 2482 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 4075 4089 4141 4147 4170 4172 8569 8869 BYTEAS 4761 # 4785 6868 BYTEA 4763 # 4718 4737 BYTEA0 4766 # 4762 BYTFET 4787 # 4769 4773 6910 6911 BYTIND 4781 # 4777 CAIM 3384 # 3365 3366 3367 3368 3369 3370 3371 3373 3374 3375 3376 3377 3378 3379 3380 CHKSN 5830 # 5811 CLARXL 7767 # 5114 7541 CLARX0 6448 # 4657 4659 4663 4664 6179 6313 6439 CLDISP 8812 # 6945 6953 6966 6972 8807 CLEANED 8815 # 5196 8809 CLEANUP 8814 # 8812 CLRB1 6299 # 6297 CLRBIN 6297 # 6182 6278 CLRFLG 6935 # 5978 6350 CLRPTL 7432 # 7435 CLRPT 7423 # CLRSN 5838 # 5616 5706 CMPDST 6163 # 6143 CMS 6111 # CMS2 6152 # 6122 CMS3 6128 # 6154 6158 CMS4 6131 # CMS5 6157 # 6136 CMS6 6143 # 6160 CMS7 6148 # 6145 CMS8 6159 # 6157 CMSDST 6947 # 8833 COM0 4646 # 4641 4642 COM0A 4641 # 4645 COM1 4645 # 4636 COM1A 4636 # 4644 COM2 4644 # 4631 COM2A 4631 # CONSO 7046 # 7028 CONSZ 7052 # 7027 CONT 7905 # 7900 CONT1 7912 # 4062 CPYSGN 4121 # 4107 4117 DAC 2503 # 2510 2780 6420 DADD 4101 # 4096 DADD1 4104 # 4110 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 270 ; Cross Reference Listing DBABT 6263 # 6199 6203 DBDN1 6276 # 6274 DBDONE 6271 # 6265 6290 DBFAST 6216 # 6212 DBIN 6172 # DBIN1 6187 # 6190 DBIN2 6191 # 6187 DBINLP 6195 # 6213 6223 DBLDBL 6247 # 6235 6246 DBLDIV 4597 # 4451 4461 5734 5738 DBLMUL 4241 # 4212 DBLNEG 4653 # 2795 DBLNGA 4654 # 2785 DBLNG1 4662 # 4376 6322 DBNEG 6281 # 6270 DBSLOW 6228 # 2196 6210 DBSLO 6209 # 6217 DBXIT 6269 # 6197 DDIV 4403 # 4398 DDIV1 4420 # 4407 4411 DDIV2 4423 # 4421 DDIV3A 4428 # 4433 DDIV3 4424 # 4418 DDIV4 4436 # 4429 DDIV5A 4450 # 4441 DDIV5B 4474 # 4465 DDIV5C 4476 # 4471 DDIV5 4444 # 4440 DDIV6 4479 # 4472 4474 DDIV7 4481 # DDIV8A 4490 # DDIV8 4488 # 4481 DDIV9 4496 # 4491 DDIVS 4510 # 4437 4455 5730 DFAD 5564 # 5551 DFADJ 5615 # 5580 5588 DFADJ1 5622 # 5623 DFADJ2 5624 # DFADJ3 5630 # 5626 5630 DFADJ4 5631 # 5627 DFADJ5 5633 # 5625 5634 DFADJ6 5635 # 5633 DFAS1 5573 # 5569 5571 DFAS2 5580 # 5574 DFAS3 5585 # 5576 DFAS5 5594 # 5582 5590 DFAS6 5599 # 5600 DFAS7 5601 # 5599 DFDV 5704 # 5701 DFDV1 5710 # 5717 DFDV2 5718 # 5711 DFDV3 5729 # 5721 DFDV4A 5744 # 5747 DFDV4B 5749 # 5746 DFDV4 5731 # 5727 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 271 ; Cross Reference Listing DFMP 5645 # 5640 DFMP1 5647 # 5648 DFMP2 5673 # 5670 DFPR1 2436 # 2430 DFPR2 2437 # 2435 DFSB 5561 # 5552 DIV 4342 # 4326 4327 4328 4329 DIV1 4351 # 4337 4339 4393 DIV2 4354 # 4367 DIVA 4363 # 4349 DIVB 4369 # 4364 DIVC 4382 # 4374 4379 DIVHI 4604 # 4598 4601 4615 DIVIDE 4569 # 4569 DIVSET 4563 # 4559 DIVSGN 4549 # 4531 5385 DIVSUB 4528 # 4355 4988 4998 5032 DMLINT 4249 # 4214 DMOVNM 2795 # 2790 DMOVN 2785 # 2781 DMOVN1 2797 # 2789 DMTRAP 4233 # 4227 DMUL 4185 # 4180 DMUL1 4206 # 4195 DMUL2 4211 # 4205 DMULGO 4240 # 4193 DNEG 5787 # 5761 5764 5767 5770 DNEG1 5789 # 5787 DNEG2 5791 # 5788 DNN1 5817 # 5813 DNN2 5819 # 5815 DNNORM 5797 # 5750 5792 5794 5799 5827 DNNRM1 5824 # 5807 DNORM 5758 # 5696 5749 5760 5782 DNORM0 5695 # 5605 DNORM1 5779 # 5772 DNORM2 5821 # 5819 DOCVT 6309 # 6359 6375 DOCVT1 6384 # 6309 DOCVT2 6405 # 6385 DOCVT3 6402 # 6424 DONE 2242 # 2542 2556 2856 2857 3036 3189 3190 3198 3199 3299 3343 3346 3349 3364 3476 3727 3835 3852 4236 4741 5083 5158 5182 5267 7052 7095 7167 7269 7273 7277 7281 7285 7333 7357 7367 7418 7452 7591 DPB 4730 # 4703 DPB1 4901 # 4740 6892 DPB7 4908 # 4902 4903 4904 4905 4906 4930 DPBSLO 4912 # 4901 DRND1 5853 # 5849 5857 5860 DROUND 5847 # 5763 5766 5769 5801 5803 5805 5851 DSMS1 7565 # 7562 7567 DSTEA 6910 # 6916 DSTIND 6915 # 6912 6913 DSUB 4113 # 4097 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 272 ; Cross Reference Listing DUMP 7977 # 7961 7968 DVSUB1 4555 # 4552 DVSUB2 4556 # 4550 DVSUB3 4558 # 4562 EACALC 2297 # 2360 EAPF 8876 # 8856 EAPF1 8881 # EDBYTE 6647 # 6610 6638 EDEXMD 6558 # 6529 EDFILL 6574 # EDFIL1 6589 # 6576 EDFLT 6605 # 6551 6595 EDFLT1 6623 # 6619 6621 EDISP 6488 # 6482 EDISP1 6490 # 6490 EDIT 6467 # EDITLP 6472 # 6696 EDMSG 6632 # 6497 EDMSG1 6641 # 6634 EDN1A 6678 # 6683 EDNOP 6667 # 6499 6501 6503 6517 6526 6552 6563 6584 6590 6643 6644 6658 EDNOP1 6668 # 6662 EDNOP2 6685 # 6679 6685 EDOPR 6517 # 6494 EDSEL 6568 # 6521 EDSFLT 6594 # 6578 EDSKP 6655 # 6506 6509 6511 EDSKP1 6659 # 6656 EDSPUT 6581 # 6589 6599 EDSSIG 6551 # 6523 EDSTOP 6536 # 6519 6579 EDSTP1 6542 # 6545 ENDSKP 6279 # 6103 EQV 2900 # 2893 2894 2895 2896 EXCH 2602 # 2598 EXTDSP 5943 # EXTEA 5942 # EXTEA0 5939 # 5937 EXTEA1 5940 # 5948 EXTEND 5929 # 5925 EXTEXT 5952 # 5944 5958 EXTIND 5948 # 5945 FAD 5300 # 5277 5278 5279 5280 5281 5282 5283 FAS1 5302 # FAS2 5311 # 5302 FAS3 5314 # 5307 5308 5311 5312 FAS4 5316 # 5316 FDV 5363 # 5351 5352 5353 5355 5356 5357 5358 FDV0 5369 # 5366 FDV1 5371 # 5369 FDV2 5372 # 5370 FDV3 5373 # 5371 5372 FDV4 5375 # 5376 FDV5 5378 # 5375 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 273 ; Cross Reference Listing FDV6 5381 # 5378 FDV7 5385 # 5386 FDV8 5388 # FDV9 5396 # 5388 5393 5394 FETIND 2353 # 2318 2323 2345 FIX 5441 # 5436 5437 FIX++ 4573 # 4574 FIX1++ 4575 # 4573 FIXL 5456 # 5446 5456 FIXPC 8810 # 4249 6436 FIXR 5451 # 5452 FIXT 5463 # 5460 FIXX 5460 # 5453 FIXX1 5461 # 5467 FL-BWRITE 2529 # 5461 5465 5511 5533 FLEX 5511 # 5507 FLTR 5406 # 5401 FLTR1A 5414 # 5411 FLTR1 5410 # 5407 FLTR2 5419 # 5412 5414 FLTR3 5421 # 5422 FMP 5333 # 5322 5323 5324 5326 5327 5328 5329 FMP1 5338 # 5336 5337 FP-LONG 3948 # 3926 3927 3928 3929 3930 3931 FPR0 2410 # 2404 FPR1 2414 # FSB 5297 # 5285 5286 5287 5288 5289 5290 5291 FSC 5427 # 5402 GETPCW 7239 # 3994 GETSRC 6859 # 6134 6569 GOEXEC 4018 # 8883 GRP700 7057 # 7013 GRP701 7031 # 7014 GRP702 7254 # 7250 GSRC 6857 # 6091 6744 GSRC1 6866 # 6862 GTFILL 6929 # 5971 6468 GTPCW1 7243 # 7234 7243 H1 7896 # 7962 HALT 3592 # 3544 HALTED 7886 # 2205 2262 2280 2531 3594 7516 7548 8801 HALTLP 7902 # 7896 HARD 8776 # 7755 8272 8274 8288 HLL 2705 # 2614 2615 2658 2730 HLLE 2771 # 2644 2645 2646 2647 HLLO 2775 # 2634 2635 2636 2637 HLLZ 2773 # 2624 2625 2626 2627 HLR 2732 # 2661 2662 HLRE 2764 # 2691 2692 2693 2694 HLRM 2741 # 2663 HLRO 2768 # 2681 2682 2683 2684 HLRS 2744 # 2664 HLRZ 2766 # 2671 2672 2673 2674 HRL 2730 # 2619 2620 HRLE 2757 # 2649 2650 2651 2652 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 274 ; Cross Reference Listing HRLM 2735 # 2621 HRLO 2761 # 2639 2640 2641 2642 HRLS 2738 # 2622 HRLZ 2759 # 2629 2630 2631 2632 HRR 2703 # 2616 2656 2657 2732 HRRE 2750 # 2686 2687 2688 2689 HRRO 2754 # 2676 2677 2678 2679 HRRZ 2752 # 2666 2667 2668 2669 HSBDON 8004 # IBP 4706 # 4699 IBPS 4747 # 4709 4714 4728 IBPX 4754 # 3845 4747 8631 IDIV 4333 # 4321 4322 4323 4324 IDPB 4728 # 4702 IDST 6903 # 6164 6887 IDSTX 6907 # 6904 ILDB 4714 # 4700 IMUL 4135 # 4129 4130 4131 4132 IMUL1 4141 # 4358 IMUL2 4143 # 4140 IMUL3 4149 # 4146 INCAR 7769 # 6065 7521 INCPC 2290 # 2285 INDEX 2330 # INDRCT 2348 # IOEA 7692 # 7624 7662 IOEA1 7698 # 7700 IOEA2 7702 # 7698 IOEAI 7710 # 7703 IOEAX 7719 # 7706 IOR 2880 # 2873 2874 2875 2876 2941 IORD 7623 # 7579 7590 7605 IORD1 7632 # 7628 IORD2 7642 # 7637 IORD3 7648 # 7643 7649 IOT700 7841 # 7784 7785 7786 IOT710 7843 # 7788 7789 IOT720 7850 # 7791 7792 IOT730 7852 # 7794 7795 7796 7797 7798 7799 7800 7801 IOT740 7854 # 7803 7804 7805 7806 7807 7808 7809 7810 IOT750 7856 # 7812 7813 7814 7815 7816 7817 7818 7819 IOT760 7858 # 7821 7822 7823 7824 7825 7826 7827 7828 IOT770 7860 # 7830 7831 7832 7833 7834 7835 7836 7837 IOW1 7732 # 7737 IOW2 7744 # 7734 7740 IOW3 7747 # 7754 IOW4 7752 # 7748 IOW5 7755 # 7742 IOWAIT 7728 # 7633 7669 IOWR 7661 # 7594 7614 IOWR1 7667 # 7677 7683 IOWR2 7674 # 7664 IOWR3 7680 # 7675 7681 ITRAP 8256 # 6067 JEN 3600 # 3554 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 275 ; Cross Reference Listing JEN1 7562 # 3606 3621 JEN2 3606 # 3598 JFCL 3612 # 3532 JFFO 3030 # 2969 JFFO1 3038 # 3035 JFFOL 3052 # 3054 JMPA 3455 # 3863 JRA 3857 # 3816 JRST 3539 # 3480 3530 JRST0 3568 # 3565 3589 3604 JRST1 3586 # 3581 3585 JRST10 3597 # 3551 JRSTF 3562 # 3542 JSA 3841 # 3815 JSP 3820 # 3814 JSR 3826 # 3813 JSTAC 3721 # 3711 3718 3756 JSTAC1 3724 # 3775 JSYS 3942 # 3923 JUMP 3487 # 3477 3478 3479 3481 3482 3483 JUMP-TABLE 3440 # 3487 3501 3515 3525 JUMP- 3467 # 3446 3449 3452 3615 JUMPA 3471 # 3455 3458 3461 3464 3823 4024 KIF50 8745 # 8768 8783 KIF80 8766 # KIF90 8771 # 8762 L-BDEC 5903 # 5876 5877 L-CMS 5897 # 5866 5867 5868 5870 5871 5872 L-DBIN 5901 # 5874 5875 L-EDIT 5899 # 5869 L-MVS 5905 # 5879 5880 5881 5882 L-SPARE-A 5909 # 5885 L-SPARE-B 5911 # 5886 L-SPARE-C 5913 # 5887 5888 5889 5890 5891 L-XBLT 5907 # 5884 LDB 4716 # 4701 LDB1 4803 # 4723 6167 6872 LDB7 4817 # 4808 4809 4810 4811 4812 LDBSH 4832 # 4827 LDBSWP 4826 # 4805 LDPI2 7408 # 3607 7397 LOADAR 7760 # 6413 6476 6559 7694 LOADARX 7763 # 6768 7328 LOADPI 7407 # 2208 LOADQ 7765 # 5132 6120 LSH 2979 # 2968 LSHC 3081 # 2972 LSHCL 3089 # 3081 3089 LSHCR 3085 # 3085 LSHCX 3091 # 3086 3158 3163 LSHL 2986 # 2981 LUUO 4048 # 3869 3870 3871 3872 3873 3874 3875 3876 LUUO1 4051 # 5897 5899 5901 5903 5905 5907 5909 5911 5913 MAP 8239 # 8235 MAPDON 8866 # 8821 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 276 ; Cross Reference Listing MOVE 2589 # 2563 2586 2593 2617 2659 2841 2842 2843 2844 2858 2859 4122 4123 4149 4150 4174 4984 MOVELP 6009 # 5989 6018 MOVF1 6709 # 6715 MOVFIL 6715 # 6041 6102 MOVLP0 6018 # 6003 MOVM 2586 # 2576 2578 2579 MOVN 2591 # 2571 2572 2573 2574 MOVPAT 6484 # 6479 6481 6484 MOVRJ 6039 # 5995 MOVS 2583 # 2566 2567 2568 2569 2736 2742 2759 2761 2766 2768 MOVSTX 6092 # MOVST0 6087 # 5992 MOVST1 6088 # 6043 6098 MOVST2 6101 # 6012 6093 MOVST3 6105 # 6101 MOVST4 6097 # 6054 MSKPAT 6485 # 6480 MUL 4162 # 4154 4155 4156 4157 MUL+ 4284 # 4268 4280 4286 4304 MUL- 4302 # 4294 4312 MULBY4 6246 # 6229 MULSB1 4266 # 5656 MULSUB 4265 # 4138 4166 5059 5340 MULTIPLY 4277 # 4245 5661 5673 5680 MUUO 3955 # 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 3911 MVABT 6023 # 6014 MVABT1 6026 # 6028 MVABT2 6030 # 6026 MVEND 6033 # MVS 5968 # MVS1 5985 # 5983 MVSK2 6073 # 6047 MVSK3 6063 # 6059 MVSKP 6046 # 6039 6057 6070 6081 MVSKP1 6057 # 6052 MVSKP2 6069 # 6061 MVSO 5997 # 5990 MVSO1 6000 # 6000 NEXT 4043 # 3984 3988 7978 7981 7983 7985 7988 7991 7994 7997 8000 8002 NEXTAR 8885 # 8849 8877 NICOND 2251 # 2536 3057 3103 3131 3443 3725 3801 3808 4499 4502 5457 5463 5822 8249 NICOND-FETCH 2270 # 2242 2243 2245 2246 2306 2312 3340 3352 3467 3468 3471 3472 3539 3540 3566 3608 4235 4710 7399 7670 NIDISP 3103 # 3803 3807 4356 4391 4422 4508 4725 5015 5367 5379 5444 5732 NODDIV 4507 # 4444 4446 NODIV 4391 # 4385 4389 NOMOD 2334 # NXTWRD 4753 # 4749 ORCA 2920 # 2913 2914 2915 2916 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 277 ; Cross Reference Listing ORCB 2951 # 2944 2945 2946 2947 ORCM 2941 # 2934 2935 2936 2937 PAGE-FAIL 8254 # PF100 8510 # 8487 PF105 8518 # 8514 PF107 8491 # 8521 8525 PF110 8528 # 8494 PF120 8571 # 8551 PF125 8590 # 8588 8794 PF130 8553 # 8549 8555 PF140 8547 # PF25 8311 # 8313 PF30 8335 # 8324 PF35 8348 # 8337 PF40 8353 # 8345 PF45 8360 # 8380 8459 PF50 8392 # 8364 PF60 8376 # 8378 PF70 8398 # PF75 8410 # 8412 PF76 8433 # 8429 8431 PF77 8438 # 8342 8350 PF80 8470 # 8443 PF90 8482 # PFD 8262 # 8264 PFDBIN 6970 # 8831 PFDONE 8543 # 8769 8773 PFGAC0 6972 # PFMAP 8292 # 8248 8276 8280 8282 PFPI1 8785 # 8266 8278 PFPI2 8793 # PFT 8801 # 8372 8392 8460 8470 8490 8627 8652 8657 8681 8745 PFT1 8802 # 8790 PFT10 8845 # 8843 PFT1A 8809 # 8805 PFT2 8841 # 8817 PFT3 8844 # 8870 PFTICK 8503 # 8452 PI 7465 # 7467 8844 PI10 7483 # 7475 7476 7477 7478 7479 7480 7481 PI40 7501 # 7498 PI50 7502 # 7552 PIEXIT 7397 # 3636 PIJSR 7516 # 7505 PIP1 7475 # 7468 PIP2 7476 # 7469 PIP3 7477 # 7470 PIP4 7478 # 7471 PIP5 7479 # 7472 PIP6 7480 # 7473 PIP7 7481 # 7474 PISET 3635 # 7523 PIXPCW 3644 # 7508 POP 3731 # 3685 POPJ 3764 # 3686 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 278 ; Cross Reference Listing POPX1 3759 # 3747 PTRIMM 8441 # PTRIND 8449 # 8506 PTRSHR 8463 # 8445 PUSH 3691 # 3684 PUSH1 3693 # 3705 PUSHJ 3703 # 3683 PUTDST 6885 # 6016 6095 6377 6396 6582 6617 6642 6710 PWRON 7891 # 2234 QDNEG 4627 # 4431 4507 QMULT 4244 # 4202 4222 Q_RSH 5261 # 5233 5253 RDAPR 7106 # RDCSB 7257 # RDCSTM 7261 # RDEBR 7224 # RDEBR1 7226 # 7226 RDERA 7023 # RDHSB 7263 # RDINT 7370 # RDIO 7590 # 7583 7585 RDPI 7376 # RDPT 8674 # 8368 8379 8386 8463 8620 RDPUR 7259 # RDSPB 7255 # RDTIME 7339 # 7353 RDTIM1 7355 # 7352 RDUBR 7233 # ROT 3014 # 2967 ROTC 3153 # 2971 ROTCL 3161 # 3153 3161 ROTCR 3157 # 3157 ROTL 3024 # 3016 RTNREG 7417 # 7069 7119 7230 7255 7257 7259 7261 7263 7371 7376 RTNRG1 7418 # 7236 SAVVMA 7972 # 7887 7959 SBRL 7771 # 5382 6221 SECIMM 8362 # SECSHR 8386 # 8366 SETBLT 5110 # 5130 5219 SETCA 2910 # 2903 2904 2905 2906 SETCM 2931 # 2924 2925 2926 2927 2951 SETO 2961 # 2954 2955 2956 2957 SETPDL 3716 # 3761 SETPTR 8643 # 8361 8440 SETSN 5837 # 5390 5392 5687 SETUBR 7170 # 7161 SETZ 2818 # 2811 2812 2813 2814 SFM 3654 # 3556 SHDREM 8689 # 8424 8427 SHIFT 2390 # 2400 SKIP 2245 # 3355 3358 3361 6279 6407 7046 SKIP-COMP-TABLE 3337 # 3384 3403 3404 6130 SKIPE 3346 # 6106 SKIPS 3401 # 3390 3391 3392 3393 3394 3395 3396 3397 3420 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 279 ; Cross Reference Listing SNNEG 5514 # 5499 5501 5503 5505 SNNORM 5518 # 5514 5516 5518 5522 SNNOT 5529 # 5525 SNNOT1 5532 # 5527 SNNOT2 5533 # 5529 5531 5532 SNORM 5498 # 5317 5346 5423 5498 5510 SNORM0 5423 # 5396 5408 5415 5430 5431 SNORM1 5510 # 5506 SOJ 3515 # 3504 3505 3506 3507 3508 3509 3510 3511 SOS 3434 # 3423 3424 3425 3426 3427 3428 3429 3430 SRCMOD 6742 # 6010 6195 6837 6841 6843 SRND1 5543 # 5540 SROUND 5540 # 5500 5502 5504 5519 5520 5521 5541 SSWEEP 7454 # 7427 7440 STAC 2535 # 2504 2548 2553 2561 2562 2577 2606 2786 2987 3000 3009 5776 5783 5828 6034 6542 7875 STAC34 6289 # 6284 STBOTH 2546 # STBTH1 2551 # 2499 STDBTH 2508 # STMAC 3708 # 3700 STMEM 2540 # 7882 STOBR 7775 # 3645 3997 7519 STOPC 7777 # 3648 7895 STORE 2554 # 2806 3656 STPF1A 6968 # 6960 STPTR1 8654 # 8651 STPTR2 8660 # 8656 STPTR3 8666 # 8662 STRPF 6956 # 8823 8825 STRPF0 6957 # 6974 STRPF1 6960 # STRPF2 6971 # 6968 STRPF3 6965 # STRPF4 6974 # 8829 STRTIO 7773 # 7489 7537 7911 STSELF 2498 # 2564 STUBRS 7174 # 7176 SUB 4088 # 4081 4082 4083 4084 SWEEPL 7445 # 7448 SWEEP 7439 # 7190 7220 T1LSH 5260 # 5231 5251 TDONE 3314 # 3305 3308 TDX 3285 # 3193 3202 3207 3211 3216 3220 3225 3229 3234 3238 3242 3246 3251 3255 TDXX 3290 # 3191 3195 3200 3204 3209 3213 3218 3222 3227 3231 3236 3240 3244 3248 3253 3257 TENLP 2194 # 2201 TEST-TABLE 3296 # 3285 3291 7580 TICK 7293 # 6076 TIOX 7579 # 7572 7573 7574 7575 TOCK 7296 # 7350 8504 8789 TOCK1 7300 # 7306 TOCK2 7307 # 7301 TOCK3 7311 # 7318 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 280 ; Cross Reference Listing TRAP 6981 # 2255 2258 2261 2273 2276 2279 TRNAR 6763 # 6572 TRNFNC 6785 # 6773 6792 6796 6800 6812 TRNNS1 6835 # 6825 TRNNS2 6838 # 6835 TRNRET 6817 # 6786 TRNSIG 6798 # 6808 TRNSS 6824 # 6819 TRNSS1 6820 # 6828 TRP1 7000 # 6990 6998 TSX 3283 # 3194 3203 3208 3212 3217 3221 3226 3230 3235 3239 3243 3247 3252 3256 TSXX 3288 # 3192 3196 3201 3205 3210 3214 3219 3223 3228 3232 3237 3241 3245 3249 3254 3258 TXXX 3299 # 3314 TXZX 3313 # 3302 UMOVEM 7878 # 7866 UMOVE 7870 # 7865 UPCST 8618 # 8397 8473 UUO 3954 # 3915 3922 UUO101 3936 # 3916 UUO102 3938 # 3917 UUO103 3940 # 3918 UUO106 3944 # 3924 UUO107 3946 # 3925 UUO247 3950 # 3932 UUOFLG 4039 # 3979 UUOGO 3960 # 2449 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3936 3938 3940 3942 3944 3946 3948 3950 6925 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7264 7287 7382 7841 7850 7852 7854 7856 7858 7860 UUOPCW 3991 # VECINT 7530 # 7493 7533 VECIN1 7549 # 7547 WRAPR 7072 # WRAPR1 7091 # 7103 WRAPR2 7097 # 7090 WRCSB 7271 # WRCSTM 7279 # WRCST 8630 # 8406 8535 WREBR 7193 # WREBR1 7195 # 7195 WRHSB 7283 # WRINT 7363 # WRIO 7594 # 7584 7586 WRPI 7379 # WRPUR 7275 # WRSPB 7267 # WRTHSB 7965 # 7889 WRTIME 7323 # WRTIM1 7335 # 7304 7331 WRUBR 7130 # XCT 3665 # 3661 XCT1 3677 # 3671 7007 7915 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 281 ; Cross Reference Listing XCT1A 3667 # 3675 XCT2 2357 # 3678 XCTGO 2282 # 2266 7907 XJEN 3620 # 3548 XJRSTF 3627 # 3547 3650 XJRSTF0 3546 # 3624 XLATE 6762 # 6748 XLATE1 6771 # 6775 XOR 2870 # 2863 2864 2865 2866 XOS 3419 # 3434 XPCW 3641 # 3549 ZAPPTA 7450 # 7436 (D) J 1358 # (U) JFCLFLG 1117 # 3612 (U) LD FLAGS 1121 # 2232 3571 3575 3633 4021 7507 7522 8807 (U) LD PCU 1109 # 4023 (U) LDVMA 1160 # 2175 2194 2198 2242 2242 2243 2245 2246 2246 2264 2290 2305 2311 2317 2321 2344 2348 2357 2377 2419 2429 2432 2444 2798 2802 2803 3034 3340 3340 3352 3467 3467 3468 3471 3472 3472 3539 3540 3541 3546 3550 3553 3566 3579 3582 3608 3623 3629 3644 3646 3646 3655 3695 3722 3732 3744 3749 3765 3828 3859 3981 3982 3982 3996 3996 4015 4016 4043 4043 4052 4059 4060 4235 4235 4710 4710 4719 4766 4770 4774 4778 5111 5139 5147 5161 5162 5166 5167 5184 5185 5263 5269 5269 5943 5945 5946 5969 6117 6366 6393 6438 6444 6451 6467 6472 6528 6606 6648 6763 6910 6911 6912 6913 6989 6997 7130 7235 7326 7351 7356 7356 7399 7399 7417 7423 7486 7501 7501 7501 7502 7543 7543 7551 7632 7667 7670 7670 7692 7714 7773 7870 7878 7888 7891 7891 7894 7894 7905 7961 7977 7977 7980 7980 7987 7987 7990 7990 7993 7993 7996 7996 7999 7999 8006 8292 8340 8341 8341 8348 8349 8349 8353 8355 8433 8435 8577 8593 8674 8676 8791 8797 8845 8846 8846 8882 8882 8885 8885 (U) LOADFE 964 # 2393 2411 2426 2980 2983 2987 2997 2999 3015 3018 3021 3026 3038 3053 3099 4717 4721 4733 4826 4831 4833 4835 4838 4901 4914 4917 4918 4920 4922 5230 5232 5250 5252 5260 5261 5306 5334 5343 5345 5365 5371 5372 5386 5408 5412 5414 5415 5429 5498 5502 5504 5510 5518 5520 5521 5522 5541 5546 5587 5602 5604 5668 5685 5696 5719 5745 5759 5766 5769 5781 5798 5803 5805 5826 5851 5859 5997 5998 6000 6166 6537 6538 6544 6668 6669 6670 6671 6868 6871 6890 6908 (U) LOADSC 962 # 2189 2199 2392 2411 2426 2442 3003 3005 3081 3082 3083 3085 3089 3099 3108 3111 3115 3122 3153 3154 3155 3157 3161 4136 4164 4201 4221 4241 4267 4279 4285 4293 4303 4311 4354 4451 4459 4566 4569 4609 4955 4958 4971 4977 4982 4995 5011 5056 5071 5077 5300 5304 5305 5314 5316 5338 5385 5419 5422 5427 5445 5446 5447 5449 5452 5456 5566 5576 5586 5620 5623 5630 5645 5648 5656 5660 5663 5673 5679 5734 5735 6311 6340 6479 6481 6484 6488 6490 6661 6667 6673 6678 6685 7172 7175 7193 7195 7224 7226 7234 7240 7243 7434 7447 7454 7642 7649 7674 7680 7728 7735 7744 7748 8309 8312 8360 8374 8377 8408 8411 8548 8554 (U) LSRC 614 # (U) MACRO% ABORT MEM CYCLE 2013 # 2175 3623 7486 7888 7961 8292 8791 8797 AC 1863 # 4135 4162 4333 4424 5363 5428 5569 5571 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 282 ; Cross Reference Listing AC[] 1864 # 4500 5708 5716 6219 6283 AC[]_Q 1765 # 3131 4196 4204 4215 4227 AC[]_Q.AND.[] 1754 # 4454 4498 4628 4633 4638 4644 4645 AC[]_[] 1741 # 2503 2786 3057 4471 4477 5783 5828 6026 6046 6063 6146 6180 6239 6241 6276 6289 6290 6326 6358 6364 6375 6380 6403 6404 6563 6866 6907 6945 6953 6960 6965 AC[]_[] TEST 1742 # 6838 AC[]_[] VIA AD 1739 # AC[]_[]*2 1744 # 4213 AC[]_[]+1 1743 # 6712 AC[]_[]+Q 1749 # AC[]_[]+[] 1751 # 4496 6222 AC[]_[]-[] 1750 # 5980 AC[]_[].AND.[] 1753 # 4474 5775 5821 AC[]_[].EQV.Q 1755 # 4228 4230 4232 4501 AC[]_-Q 1761 # AC[]_-[] 1756 # AC[]_.NOT.[] 1759 # AC[]_0 1763 # 2187 3036 4472 6053 6101 6297 6299 AC[]_1 1764 # 2188 AC_-[] 1757 # 5820 AC_.NOT.[] 1760 # 5819 AC_Q 1762 # 4470 AC_[] 1745 # 2535 3092 3314 3403 3443 3455 3724 3726 3822 4646 4724 5131 5195 5220 5457 5463 6103 6139 6402 6623 6696 6972 7591 7779 8249 AC_[] TEST 1746 # 3446 3449 3452 3458 3461 3464 4226 6277 6323 AC_[] VIA AD 1740 # AC_[]+1 1747 # 6948 AC_[]+Q 1748 # AC_[]+[] 1752 # 3125 3789 3794 AC_[].OR.[] 1758 # 5082 6066 6105 AD FLAGS 2041 # 2592 3418 3434 3501 3515 4075 4089 4106 4116 4119 4246 4657 4659 AD FLAGS EXIT 2089 # 4075 4089 AD PARITY 1967 # 2195 2371 2384 2385 2602 2703 2705 2736 2742 2795 2979 2982 2996 3030 3487 3731 3764 3786 3844 3857 4164 4206 4343 4734 5130 5218 5300 5333 5365 5429 5575 5972 5975 5990 5993 6023 6039 6111 6113 6131 6163 6175 6178 6206 6209 6211 6218 6228 6269 6271 6272 6304 6309 6310 6311 6332 6337 6349 6384 6469 6527 6568 6605 6607 6711 6824 6831 6857 6859 6886 6943 6951 6957 7594 7881 ADD .25 1998 # 2591 2961 3384 3434 3515 3541 3550 3553 4088 4105 4113 4118 4292 4296 4338 4382 4415 4438 4439 4445 4466 4492 4533 4534 4535 4551 4553 4560 4566 4597 4627 4632 4637 4642 4654 4658 4662 4664 4993 5050 5067 5117 5136 5154 5178 5266 5297 5372 5375 5376 5383 5394 5407 5499 5501 5503 5505 5516 5532 5561 5600 5713 5724 5731 5747 5788 5793 5814 5820 5854 5980 6013 6027 6048 6115 6151 6152 6153 6200 6264 6282 6285 6353 6370 6378 6397 6405 6406 6440 6442 6445 6493 6835 6956 6964 6970 7308 7408 7432 7445 7692 8810 8870 ADL PARITY 1960 # ADR PARITY 1964 # AREAD 2084 # 2335 ASH 1975 # 2439 2999 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 283 ; Cross Reference Listing ASH AROV 2026 # 3005 3121 3124 ASH36 LEFT 2992 # 3005 ASHC 1980 # 3005 3114 3117 3121 3124 4285 4293 4303 4311 4417 4421 4490 4494 4510 5316 5419 5421 5451 5595 5597 5601 5603 5619 5623 5630 5633 5635 5647 5688 5692 5727 5741 5759 5765 5768 5781 5798 5802 5804 5826 5851 B DISP 2085 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 3285 3291 3384 3403 3404 3487 3501 3515 3525 3710 3717 3755 4075 4089 4141 4147 4170 4172 5224 5453 5461 5465 5511 5523 5533 5540 5944 5986 6130 6185 6392 6746 6818 6825 7580 7607 7625 7636 7663 8569 8869 BAD PARITY 1969 # BASIC DIV STEP 4545 # 4566 4569 BWRITE DISP 2086 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 4075 4089 4141 4147 4170 4172 8569 8869 BYTE DISP 2103 # 4722 4739 6167 6870 6891 BYTE STEP 4694 # 5998 6000 CALL IBP 4688 # 4709 4714 4728 CALL LOAD PI 2109 # 3607 7397 CALL [] 1999 # 2196 2208 2413 2785 2795 3565 3604 3606 3607 3621 3645 3648 3845 3848 3963 3979 3984 3988 3994 3997 4138 4166 4193 4202 4212 4222 4245 4355 4376 4431 4437 4451 4455 4461 4507 4531 4709 4714 4718 4723 4728 4737 4740 4988 4998 5032 5059 5114 5130 5132 5219 5231 5233 5251 5253 5340 5382 5385 5390 5392 5500 5502 5504 5519 5520 5521 5580 5588 5616 5656 5661 5673 5680 5687 5706 5730 5734 5738 5763 5766 5769 5801 5803 5805 5811 5931 5971 5974 5978 6010 6016 6041 6065 6076 6091 6095 6102 6112 6114 6120 6134 6143 6164 6179 6182 6195 6210 6221 6229 6232 6235 6238 6246 6251 6278 6313 6322 6338 6350 6377 6388 6396 6413 6439 6468 6471 6476 6551 6559 6569 6572 6582 6595 6610 6617 6638 6642 6710 6744 6768 6868 6887 6892 6944 6952 6963 7234 7304 7328 7331 7350 7397 7427 7440 7489 7519 7521 7537 7541 7579 7590 7605 7624 7633 7662 7669 7694 7887 7889 7895 7911 7959 7961 7978 7981 7983 7985 7988 7991 7994 7997 8000 8002 8361 8368 8379 8386 8397 8406 8424 8427 8440 8463 8473 8504 8535 8620 8778 8789 8849 8877 CHANGE FLAGS 2019 # 2231 2232 2592 3418 3434 3501 3515 3571 3572 3575 3576 3612 3633 3634 3704 3716 3772 3802 3806 3821 3827 4021 4022 4023 4075 4089 4106 4116 4119 4149 4150 4174 4224 4236 4246 4249 4356 4391 4422 4508 4657 4659 4724 4741 4763 5015 5367 5379 5444 5732 6406 6407 7005 7507 7522 8807 CHK PARITY 1968 # 2283 2353 2367 2376 2380 2397 2408 2419 2425 2438 2509 2541 2547 2552 2555 2605 2801 3101 3420 3563 3587 3602 3627 3631 3692 3709 3715 3737 3754 3760 3773 3831 3862 3984 3986 3992 4019 4058 4136 4229 4231 4334 4344 4428 4450 4457 4754 4782 4788 4909 5174 5223 5929 5948 6368 6558 6608 6611 6639 6915 6930 7000 7133 7268 7272 7276 7280 7284 7325 7355 7357 7364 7418 7502 7544 7668 7715 7760 7763 7765 7775 7777 7874 7893 7913 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8357 8439 8679 8848 8876 8878 CHK PARITY L 1961 # CHK PARITY R 1965 # ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 284 ; Cross Reference Listing CLEANUP DISP 2111 # 8812 CLEAR ARX0 1717 # 2785 4653 6281 6322 6448 6454 CLEAR CONTINUE 2008 # CLEAR EXECUTE 2009 # CLEAR RUN 2010 # CLEAR []0 1716 # 2785 4375 4653 6258 6274 6281 6322 6448 6454 CLR FPD 2028 # 3704 3821 3827 4224 4724 4741 6407 CLR IO BUSY 2014 # 7623 7661 CLR IO LATCH 2015 # 7708 7716 7720 7723 7732 7738 7747 7752 CLRCSH 2005 # 7429 7430 7433 DFADJ 5612 # 5623 DISMISS 2108 # 3606 3621 DIV 1983 # 4566 4569 4570 4617 5498 5510 5518 5522 5615 5617 5618 DIV DISP 2102 # DIV STEP 4546 # 4569 DONE 2094 # 2242 2246 3340 3467 3472 4235 4710 7399 7670 DPB SCAD 4897 # 4902 4903 4904 4905 4906 EA MODE DISP 2083 # 2293 2359 3568 4761 4764 5940 6916 7704 END BLT 2051 # 5157 5181 5267 END MAP 2052 # 8559 END STATE 2049 # 5157 5181 5267 6034 6106 6129 6279 6407 6411 6473 6745 8559 8816 8834 8835 8866 EXIT 2088 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 4141 4147 4170 4172 8569 8869 EXP TEST 2040 # 5507 5523 5853 FETCH 1820 # 2242 2243 2245 2246 2265 2305 2311 2419 2444 3034 3340 3352 3467 3468 3471 3472 3539 3540 3566 3608 3723 4235 4710 4719 7399 7670 7906 FE_-1 1940 # FE_-12. 1938 # 3038 FE_-2 1937 # FE_-FE 1924 # 4826 4920 FE_-FE+200 1951 # 5371 5372 FE_-FE+S# 1927 # 4831 FE_-FE-1 1925 # 2980 3015 FE_-S-10 1934 # 4835 4901 FE_-S-20 1933 # FE_0 1939 # FE_EXP 1946 # 2411 2426 5306 5587 FE_FE+1 1941 # 2983 2997 3018 5386 5502 5504 5520 5521 5541 5546 5766 5769 5803 5805 5851 5859 FE_FE+10 1943 # 4833 4838 4914 4922 FE_FE+2 1942 # 5343 FE_FE+4 1945 # 3053 FE_FE+P 1949 # 6538 FE_FE+S# 1952 # 5685 5696 6671 FE_FE+SC 1928 # 6670 FE_FE-1 1944 # 5498 5510 5518 5522 5602 5604 5759 5781 5798 5826 FE_FE-19 1926 # FE_FE-200 1950 # 5345 FE_FE.AND.S# 1929 # 4721 4918 6166 6544 6669 6871 FE_P 1930 # 4717 4917 6668 6868 6908 FE_S 1931 # FE_S# 1935 # 3038 5230 5232 5250 5252 5408 5412 5414 5415 6537 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 285 ; Cross Reference Listing FE_S#-FE 1936 # 5745 FE_S+2 1932 # 5997 FE_SC+EXP 1947 # 5334 5429 5668 FE_SC-EXP 1948 # 5365 5719 FIRST DIV STEP 4547 # 4566 FIX [] SIGN 1730 # 3401 4121 4145 4168 6749 7298 FL NO DIVIDE 2044 # 5367 5379 5732 FL-EXIT 2090 # 5461 5465 5511 5533 FM WRITE 1737 # 2174 2182 2184 2185 2187 2188 2190 2191 2197 2199 2503 2535 2786 3036 3057 3092 3125 3131 3314 3403 3443 3446 3449 3452 3455 3458 3461 3464 3677 3724 3726 3789 3794 3822 4196 4204 4213 4215 4226 4227 4228 4230 4232 4454 4470 4471 4472 4474 4477 4496 4498 4501 4628 4633 4638 4644 4645 4646 4707 4724 4966 4979 4989 4999 5031 5082 5131 5195 5220 5457 5463 5775 5783 5819 5820 5821 5828 5939 5952 5955 5980 5985 6002 6026 6046 6047 6053 6063 6066 6073 6074 6075 6090 6101 6103 6105 6121 6137 6139 6146 6160 6173 6180 6191 6222 6239 6241 6276 6277 6289 6290 6297 6299 6312 6314 6323 6326 6358 6364 6370 6375 6376 6380 6389 6395 6402 6403 6404 6563 6594 6623 6696 6712 6742 6838 6866 6907 6931 6945 6948 6953 6960 6965 6972 6982 7094 7203 7269 7273 7277 7281 7285 7300 7311 7332 7335 7365 7366 7450 7451 7591 7699 7733 7739 7741 7779 7886 7958 7973 7983 8245 8249 8255 8256 8258 8259 8266 8276 8278 8280 8282 8286 8287 8428 8430 8451 8776 FORCE EXEC 1800 # 7503 7517 7551 GEN 17-FE 1955 # 4803 GEN MSK [] 1733 # 4837 4840 4913 4916 6000 HALT [] 2110 # 2205 2262 2280 2531 3594 7516 7548 8801 HOLD LEFT 1959 # 2243 2245 2290 2303 2304 2310 2315 2330 2331 2343 2354 2377 2705 2736 2744 2766 2768 3352 3468 3471 3539 3540 3541 3550 3553 3566 3578 3608 3632 3646 3774 3833 3847 3851 3996 4008 4013 4043 4059 4110 4753 4783 4992 5051 5074 5123 5135 5157 5161 5166 5181 5184 5194 5246 5247 5267 5269 5342 5605 5942 5945 5948 5989 6015 6018 6034 6040 6069 6088 6094 6102 6106 6117 6129 6133 6140 6159 6187 6264 6279 6317 6352 6369 6396 6407 6411 6467 6473 6520 6577 6581 6616 6641 6682 6687 6745 6864 6906 6915 7074 7100 7114 7183 7199 7201 7245 7326 7331 7356 7390 7392 7394 7396 7408 7468 7469 7470 7471 7472 7473 7474 7496 7566 7692 7713 7713 7894 7910 7980 7987 7990 7993 7996 7999 8248 8513 8559 8567 8810 8816 8822 8824 8826 8828 8830 8832 8834 8835 8836 8866 8885 HOLD RIGHT 1963 # 2434 2436 2449 2471 2472 2703 2738 2742 2759 2761 2785 3128 3130 3401 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3785 3936 3938 3940 3942 3944 3946 3948 3950 3958 3978 3988 4040 4056 4121 4122 4123 4145 4168 4375 4414 4476 4530 4653 4830 4965 4973 5036 5081 5116 5120 5307 5308 5311 5312 5336 5337 5369 5370 5430 5431 5507 5523 5626 5627 5634 5650 5772 5807 5837 5838 5853 5935 5957 6184 6189 6258 6274 6275 6281 6320 6322 6329 6335 6344 6363 6415 6418 6423 6448 6454 6525 6619 6621 6691 6695 6749 6791 6795 6799 6803 6807 6811 6827 6925 6937 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7068 7108 7111 7139 7146 7150 7165 7171 7180 7188 7229 7233 7239 7264 7287 7298 7382 7384 7386 7388 7520 7722 7767 7841 7850 7852 7854 7856 7858 7860 8241 8244 8295 8299 8302 8307 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 286 ; Cross Reference Listing 8458 8483 8520 8524 8558 8562 8565 8576 8646 8751 8756 8761 8767 8781 8844 IBP DP 4685 # 4709 4714 4728 6050 6860 6903 6976 IBP SCAD 4686 # 4709 4714 4728 6050 6860 6903 IBP SPEC 4687 # 4709 4714 4728 INH CRY18 1971 # 3524 3694 3741 3770 3790 3795 5047 5122 INST DISP 2087 # 2368 2372 2381 2386 2394 2415 2421 2445 2450 INTERRUPT TRAP 2100 # JFCL FLAGS 2037 # 3612 JUMP DISP 2093 # 3487 3501 3515 3525 JUMPA 2095 # 3468 3471 3539 3540 3566 3608 LDB SCAD 4799 # 4808 4809 4810 4811 4812 LEAVE USER 2035 # 2231 4022 LOAD AC BLOCKS 2003 # 2177 7166 7189 LOAD BYTE EA 1994 # 4717 4736 4784 5936 5948 6867 LOAD DST EA 1997 # 6904 6906 6915 LOAD FE 1877 # 2393 2411 2426 2980 2983 2987 2997 2999 3015 3018 3021 3026 3038 3053 3099 4717 4721 4733 4826 4831 4833 4835 4838 4901 4914 4917 4918 4920 4922 5230 5232 5250 5252 5260 5261 5306 5334 5343 5345 5365 5371 5372 5386 5408 5412 5414 5415 5429 5498 5502 5504 5510 5518 5520 5521 5522 5541 5546 5587 5602 5604 5668 5685 5696 5719 5745 5759 5766 5769 5781 5798 5803 5805 5826 5851 5859 5997 5998 6000 6166 6537 6538 6544 6668 6669 6670 6671 6868 6871 6890 6908 LOAD FLAGS 2039 # 2232 3571 3575 3633 4021 7507 7522 8807 LOAD IND EA 1995 # 2355 LOAD INST 1992 # 2284 3669 7001 7914 LOAD INST EA 1993 # 3564 3588 3603 7711 LOAD IR 1988 # 5935 LOAD PAGE TABLE 2002 # 7424 8585 LOAD PCU 2033 # 4023 LOAD PI 2006 # 3622 7410 7485 7967 LOAD PXCT 2000 # 3674 LOAD SC 1876 # 2189 2199 2392 2411 2426 2442 3003 3005 3081 3082 3083 3085 3089 3099 3108 3111 3115 3122 3153 3154 3155 3157 3161 4136 4164 4201 4221 4241 4267 4279 4285 4293 4303 4311 4354 4451 4459 4566 4569 4609 4955 4958 4971 4977 4982 4995 5011 5056 5071 5077 5300 5304 5305 5314 5316 5338 5385 5419 5422 5427 5445 5446 5447 5449 5452 5456 5566 5576 5586 5620 5623 5630 5645 5648 5656 5660 5663 5673 5679 5734 5735 6311 6340 6479 6481 6484 6488 6490 6661 6667 6673 6678 6685 7172 7175 7193 7195 7224 7226 7234 7240 7243 7434 7447 7454 7642 7649 7674 7680 7728 7735 7744 7748 8309 8312 8360 8374 8377 8408 8411 8548 8554 LOAD SRC EA 1996 # LOAD VMA 1799 # 2175 2194 2198 2242 2242 2243 2245 2246 2246 2264 2290 2305 2311 2317 2321 2344 2348 2357 2377 2419 2429 2432 2444 2798 2802 2803 3034 3340 3340 3352 3467 3467 3468 3471 3472 3472 3539 3540 3541 3546 3550 3553 3566 3579 3582 3608 3623 3629 3644 3646 3646 3655 3695 3722 3732 3744 3749 3765 3828 3859 3981 3982 3982 3996 3996 4015 4016 4043 4043 4052 4059 4060 4235 4235 4710 4710 4719 4766 4770 4774 4778 5111 5139 5147 5161 5162 5166 5167 5184 5185 5263 5269 5269 5943 5945 5946 5969 6117 6366 6393 6438 6444 6451 6467 6472 6528 6606 6648 6763 6910 6911 6912 6913 6989 6997 7130 7235 7326 7351 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 287 ; Cross Reference Listing 7356 7356 7399 7399 7417 7423 7486 7501 7501 7501 7502 7543 7543 7551 7632 7667 7670 7670 7692 7714 7773 7870 7878 7888 7891 7891 7894 7894 7905 7961 7977 7977 7980 7980 7987 7987 7990 7990 7993 7993 7996 7996 7999 7999 8006 8292 8340 8341 8341 8348 8349 8349 8353 8355 8433 8435 8577 8593 8674 8676 8791 8797 8845 8846 8846 8882 8882 8885 8885 LSH 1976 # LSHC 1979 # 3085 3089 4598 4601 LUUO 2097 # 5897 5899 5901 5903 5905 5907 5909 5911 5913 MEM CYCLE 1796 # 2175 2194 2198 2242 2242 2242 2243 2243 2245 2245 2246 2246 2246 2264 2265 2282 2290 2305 2305 2311 2311 2316 2317 2321 2322 2344 2345 2348 2349 2353 2357 2366 2375 2377 2378 2379 2407 2418 2419 2419 2429 2430 2432 2433 2437 2444 2444 2508 2540 2546 2551 2554 2603 2604 2798 2799 2801 2802 2803 2805 3034 3034 3340 3340 3340 3352 3352 3419 3420 3467 3467 3467 3468 3468 3471 3471 3472 3472 3472 3539 3539 3540 3540 3541 3541 3546 3546 3550 3550 3553 3553 3562 3566 3566 3579 3580 3582 3583 3586 3601 3608 3608 3623 3627 3629 3630 3631 3644 3644 3646 3646 3647 3650 3655 3655 3691 3695 3696 3708 3714 3722 3723 3732 3733 3736 3744 3746 3749 3751 3753 3759 3765 3767 3773 3828 3829 3830 3842 3859 3860 3861 3981 3982 3982 3983 3985 3991 3996 3996 3996 4015 4016 4017 4018 4043 4043 4043 4052 4053 4057 4059 4060 4061 4235 4235 4235 4710 4710 4710 4719 4719 4747 4753 4754 4766 4767 4770 4771 4774 4775 4778 4779 4781 4787 4908 4909 5111 5112 5139 5140 5147 5148 5150 5161 5162 5164 5166 5167 5169 5173 5176 5184 5185 5187 5222 5263 5263 5265 5269 5269 5270 5929 5943 5945 5945 5946 5946 5948 5969 5970 6117 6117 6366 6367 6368 6393 6394 6438 6444 6451 6467 6467 6472 6472 6528 6528 6560 6562 6606 6606 6608 6611 6639 6648 6648 6763 6764 6910 6910 6911 6911 6912 6912 6913 6913 6915 6929 6985 6988 6989 6993 6996 6997 7000 7130 7131 7132 7235 7235 7267 7268 7271 7272 7275 7276 7279 7280 7283 7284 7323 7324 7326 7327 7351 7352 7355 7356 7356 7356 7357 7363 7364 7399 7399 7399 7417 7417 7418 7423 7486 7490 7501 7501 7501 7502 7502 7517 7538 7543 7543 7544 7551 7552 7632 7634 7667 7668 7670 7670 7670 7692 7693 7714 7714 7715 7760 7763 7765 7773 7775 7777 7870 7871 7873 7878 7879 7888 7891 7891 7893 7894 7894 7894 7905 7906 7912 7961 7977 7977 7978 7979 7980 7980 7980 7981 7982 7985 7986 7987 7987 7987 7988 7989 7990 7990 7990 7991 7992 7993 7993 7993 7994 7995 7996 7996 7996 7997 7998 7999 7999 7999 8000 8001 8003 8006 8292 8340 8341 8341 8348 8349 8349 8353 8354 8355 8356 8433 8434 8435 8438 8577 8593 8630 8674 8675 8676 8678 8791 8797 8845 8846 8846 8847 8876 8878 8882 8882 8885 8885 8885 MEM READ 1824 # 2282 2353 2366 2375 2379 2407 2418 2437 3562 3586 3601 3627 3631 3691 3736 3773 3861 4018 4781 4787 5173 5222 5929 5948 6368 6611 6639 6915 6929 6985 6993 7000 7132 7268 7272 7276 7280 7284 7324 7364 7490 7502 7538 7544 7634 7715 7760 7763 7765 7873 7912 8356 8438 8678 MEM WAIT 1823 # 2282 2353 2366 2375 2379 2407 2418 2437 2508 2540 2546 2551 2554 2604 2801 3420 3562 3586 3601 3627 3631 3691 3708 3714 3736 3753 3759 3773 3830 3861 3983 3985 3991 4018 4057 4754 4781 4787 4909 5150 5173 5176 5222 5265 5929 5948 6368 6562 6608 6611 6639 6915 6929 6985 6993 7000 7132 7268 7272 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 288 ; Cross Reference Listing 7276 7280 7284 7324 7355 7357 7364 7418 7490 7502 7538 7544 7634 7668 7715 7760 7763 7765 7775 7777 7873 7893 7912 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8356 8438 8678 8847 8876 8878 MEM WRITE 1825 # 2508 2540 2546 2551 2554 2604 2801 3420 3708 3714 3753 3759 3830 3983 3985 3991 4057 4754 4909 5150 5176 5265 6562 6608 7355 7357 7418 7668 7775 7777 7893 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8847 8876 8878 MEM_Q 1832 # 5151 5177 5265 6562 MEM_[] 1831 # 2509 2541 2547 2552 2555 2605 2801 3420 3709 3715 3754 3760 3831 3984 3986 3992 4058 4754 4909 6608 7355 7357 7418 7668 7775 7777 7893 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8848 8876 8878 MUL DISP 2101 # 4285 4293 4303 4311 5597 5623 5625 5742 MUL FINAL 4263 # 4289 4297 4307 4315 MUL STEP 4262 # 4285 4293 4303 4311 NEXT INST 2081 # 2536 3057 3103 3131 3443 3725 3801 3808 4499 4502 5457 5463 5822 8249 NEXT INST FETCH 2082 # 2242 2243 2245 2246 2306 2312 3340 3352 3467 3468 3471 3472 3539 3540 3566 3608 4235 4710 7399 7670 NEXT [] PHYSICAL WRI 1854 # 3996 4043 7894 7980 7987 7990 7993 7996 7999 8885 NO DIVIDE 2043 # 4356 4391 4422 4508 5015 NORM DISP 2107 # 5317 5346 5423 5498 5500 5510 5514 5516 5518 5519 5522 5544 5695 5749 5750 5760 5762 5782 5792 5794 5799 5800 5827 5856 ONES 1982 # 4837 4840 4913 4916 6000 PAGE FAIL TRAP 2098 # 8372 8392 8460 8470 8490 8627 8652 8657 8681 8745 PI DISP 2106 # PXCT BLT DEST 1808 # 5141 5149 5163 5168 5264 PXCT BLT SRC 1812 # 5113 5186 5270 PXCT BYTE DATA 1810 # 4768 4772 6910 6911 PXCT BYTE PTR EA 1809 # 4776 4780 PXCT DATA 1807 # 2335 2377 2429 2432 2800 2804 3745 3750 PXCT EA 1806 # 2344 2349 3584 PXCT EXTEND EA 1813 # 5945 5946 PXCT STACK WORD 1811 # 3697 3734 3766 Q-[] 1681 # 4445 Q.AND.NOT.[] 1682 # Q_# 1697 # 4990 5034 Q_-1 1689 # Q_-AC[] 1690 # 4627 4632 4637 Q_-Q 1691 # 4415 4492 4533 4534 4551 5499 5501 5503 5505 5788 Q_-[] 1688 # 5724 Q_.NOT.AC[] 1687 # 4631 4636 Q_.NOT.Q 1696 # 5787 Q_0 1698 # 2995 4836 4912 5314 5385 5396 5408 5412 5414 5415 5428 5441 5734 5998 Q_0 XWD [] 1699 # Q_AC 1692 # 4136 4334 Q_AC[] 1693 # 2397 3101 4229 4231 4344 6558 Q_AC[].AND.MASK 1694 # Q_AC[].AND.[] 1695 # 4428 4450 4457 Q_MEM 1842 # 5174 5223 7765 Q_Q*.5 1704 # 4244 4278 4451 5225 5245 5246 5247 5261 5649 5739 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 289 ; Cross Reference Listing Q_Q*2 1705 # 5240 5241 Q_Q+.25 1700 # 5600 5747 Q_Q+1 1701 # Q_Q+AC 1703 # 5010 Q_Q+[] 1710 # 4453 4485 5582 5590 5691 5694 Q_Q-1 1702 # 5050 Q_Q-WORK[] 1789 # 4993 Q_Q.AND.# 1707 # 3127 4528 5234 5254 5341 5650 Q_Q.AND.NOT.[] 1709 # 5736 Q_Q.AND.[] 1708 # 4500 4919 Q_Q.OR.# 1706 # 3129 4413 Q_WORK[] 1771 # 5057 6157 Q_[] 1683 # 4162 4201 4221 4241 4455 4481 4981 5338 5573 5585 5645 5660 5673 5679 5729 Q_[]+[] 1685 # 4482 Q_[]-[] 1684 # 5117 Q_[].AND.Q 1711 # 4576 5771 5806 Q_[].AND.[] 1686 # 4403 Q_[].OR.Q 1712 # 5257 5605 RAM_[] 1792 # 2197 2199 READ Q 1722 # 5464 5506 5530 5779 5824 READ XR 1720 # 3570 READ [] 1721 # 2390 2410 2586 2750 2757 2764 2771 3082 3098 3154 3299 3343 3346 3349 3355 3358 3361 3574 3622 3633 3673 3980 4014 4020 4051 4139 4345 4351 4365 4370 4372 4377 4444 4446 4463 4479 4488 4549 4556 4577 4716 4720 4735 4738 4835 4901 4917 5038 5302 5306 5389 5391 5423 5427 5460 5500 5519 5587 5686 5695 5744 5762 5800 5936 5954 5997 6031 6132 6135 6141 6154 6165 6181 6357 6393 6444 6451 6477 6491 6496 6518 6522 6574 6660 6668 6763 6785 6817 6867 6869 6891 7089 7091 7092 7097 7101 7202 7316 7351 7430 7436 7443 7710 7967 7977 8322 8421 8589 8647 8807 8812 RETURN [] 2105 # 2471 2472 3573 3577 4041 4044 4247 4290 4298 4308 4316 4510 4532 4533 4535 4619 4646 4748 4750 4754 4789 4822 4841 4909 5123 5260 5261 5543 5545 5546 5635 5830 5837 5838 5853 6242 6252 6257 6260 6298 6299 6449 6455 6626 6649 6714 6745 6757 6788 6804 6821 6830 6832 6858 6893 6926 6932 6937 6977 7245 7312 7336 7411 7455 7563 7566 7638 7645 7651 7708 7716 7720 7723 7749 7761 7763 7765 7767 7769 7771 7773 7775 7777 7779 7970 7974 8008 8599 8621 8626 8632 8663 8666 8667 8680 8689 8692 8693 8797 8885 ROT 1978 # 3021 3026 ROTC 1981 # 3157 3161 SCAD DISP 2104 # 4709 4714 4728 4804 5300 5443 5445 5998 6000 6051 6861 6903 7735 SC_-1 1921 # SC_-2 1922 # SC_-SHIFT 1885 # SC_-SHIFT-1 1886 # 3082 3154 SC_-SHIFT-2 1887 # SC_0 1920 # 6667 6678 SC_1 1919 # SC_11. 1910 # SC_14. 1909 # SC_19. 1908 # 2189 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 290 ; Cross Reference Listing SC_2 1918 # 6488 SC_20. 1907 # 6311 SC_22. 1906 # SC_24. 1905 # SC_26. 1904 # 5734 SC_27. 1903 # 5338 5385 SC_28. 1902 # SC_3 1917 # 4971 SC_34. 1901 # 4354 4451 4459 4982 4995 5011 SC_35. 1900 # 4136 4164 4201 4221 4241 5056 5656 5660 5673 5679 5735 SC_36. 1899 # SC_4 1916 # SC_5 1915 # 7642 7674 SC_6 1914 # 5419 5645 6481 7193 7224 7234 7240 SC_7 1913 # 6479 7172 8309 8360 8408 8548 SC_8. 1912 # SC_9. 1911 # 4955 5071 SC_EXP 1892 # 2411 2426 5304 5576 SC_FE 1895 # 2442 5663 SC_FE+S# 1894 # 3108 5445 SC_S# 1896 # 2189 4136 4164 4201 4221 4241 4354 4451 4459 4955 4971 4982 4995 5011 5056 5071 5338 5385 5419 5645 5656 5660 5673 5679 5734 5735 6311 6479 6481 6488 6667 6678 7172 7193 7224 7234 7240 7454 7642 7674 7728 7744 8309 8360 8408 8548 SC_S#-FE 1893 # 3111 5447 SC_SC-1 1881 # 7735 SC_SC-EXP 1888 # SC_SC-EXP-1 1889 # 5300 5566 SC_SC-FE 1891 # SC_SC-FE-1 1890 # 5305 5586 SC_SHIFT 1882 # 3099 5427 SC_SHIFT-1 1883 # 2392 SC_SHIFT-2 1884 # SET APR ENABLES 2012 # 2180 7093 7202 SET AROV 2021 # 4149 4150 4174 4236 5444 SET FL NO DIVIDE 2024 # 5367 5379 5732 SET FOV 2022 # SET FPD 2027 # 4249 4763 6406 SET HALT 2007 # 7896 7962 SET NO DIVIDE 2023 # 4356 4391 4422 4508 5015 5367 5379 5732 SET PDL OV 2030 # 3716 3772 3802 3806 SET P TO 36-S 4690 # 4749 6060 6863 6905 SET TRAP1 2031 # SHIFT 1879 # 2987 2999 3021 3026 5260 5261 SKIP AC REF 2075 # SKIP AD.EQ.0 2059 # 3031 3346 3358 3449 3461 4139 4144 4346 4348 4352 4366 4411 4440 4470 4551 4629 4634 4639 4655 4662 4980 5009 5363 5389 5391 5464 5506 5530 5686 5737 5779 5824 6154 6207 6283 6286 6575 6612 6633 6756 7343 8336 8339 8423 8426 SKIP AD.LE.0 2060 # 3349 3361 3452 3464 4405 5039 5383 5707 6354 7309 7966 SKIP ADL.EQ.0 2071 # 2202 4004 4009 5406 5411 5525 5690 5693 5761 5764 5767 5770 5830 5930 5973 6112 6114 6196 6216 6400 6416 6470 6505 6508 6540 7004 7140 7154 7200 7504 7505 7696 7698 7712 8296 8362 8369 8372 8387 8392 8441 8460 8464 8470 8484 8488 8490 8510 8563 8582 8584 8622 8627 8649 8652 8654 8657 8660 8681 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 291 ; Cross Reference Listing 8691 8745 8763 8804 SKIP ADL.LE.0 2062 # 7705 SKIP ADR.EQ.0 2072 # 3100 3606 3621 5137 6341 6414 6769 7046 7052 7079 7081 7084 7086 7088 7379 7381 7385 7387 7389 7391 7393 7395 7492 7545 7565 7637 7664 8247 8515 8543 8749 8752 8757 SKIP CRY0 2067 # 3699 3742 3771 5375 5499 5501 5503 5505 SKIP CRY1 2068 # 4102 4114 5815 6231 6237 6250 6441 6452 SKIP CRY2 2069 # 5788 5848 SKIP DP0 2057 # 2412 2427 2586 2764 2771 3054 3126 3343 3355 3446 3458 3788 3791 3796 4121 4146 4168 4171 4226 4234 4335 4371 4373 4378 4383 4387 4409 4426 4438 4445 4460 4479 4497 4549 4556 4571 5012 5156 5180 5266 5302 5306 5335 5365 5373 5407 5429 5460 5567 5669 5716 5720 5731 5744 5981 5994 6011 6024 6031 6049 6091 6093 6115 6132 6135 6141 6181 6273 6278 6315 6324 6357 6374 6446 6496 6522 6713 6743 6785 6839 6958 7134 7298 8323 8421 8648 SKIP DP18 2058 # 2391 2750 2757 5954 6201 6405 6494 6817 6818 7531 SKIP EXECUTE 2076 # 7900 SKIP FPD 2064 # 4188 4709 4714 4728 6305 SKIP IF AC0 2056 # 2498 3402 4706 SKIP IO LEGAL 2066 # 2448 3551 3554 SKIP IRPT 2073 # 5160 6051 8260 8455 8677 8785 8816 8867 SKIP JFCL 2070 # 3613 SKIP KERNEL 2065 # 3544 3548 3549 3556 3665 6983 SKIP NO CST 8052 # 8405 8534 8618 SKIP -1MS 2074 # 6046 SKIP-COMP DISP 2092 # 3384 3403 3404 6130 SPEC MEM READ 1826 # 2424 SPEC MEM WRITE 1827 # START NO TEST WRITE 1819 # 8630 START READ 1817 # 2242 2243 2245 2246 2265 2305 2311 2316 2322 2345 2349 2378 2419 2430 2433 2444 3034 3340 3352 3467 3468 3471 3472 3539 3540 3541 3546 3550 3553 3566 3580 3583 3608 3630 3650 3723 3733 3767 3860 4017 4061 4235 4710 4719 4767 4771 4775 4779 5112 5187 5270 5945 5946 5970 6117 6367 6394 6467 6472 6528 6648 6764 6910 6911 6912 6913 6988 6996 7131 7267 7271 7275 7279 7283 7323 7327 7363 7399 7552 7670 7693 7714 7871 7906 8354 8434 8675 START WRITE 1818 # 2603 2799 2805 3419 3644 3647 3655 3696 3746 3751 3829 3842 3996 4043 4053 4747 4753 4908 5140 5148 5164 5169 5263 6560 6606 7235 7352 7356 7417 7517 7879 7894 7980 7987 7990 7993 7996 7999 8885 STATE_[] 2048 # 5123 5989 6015 6018 6040 6088 6094 6102 6133 6140 6159 6187 6369 6396 6520 6577 6581 6641 8248 8822 8824 8826 8828 8830 8832 8836 STEP SC 1878 # 2199 3003 3005 3081 3083 3085 3089 3115 3122 3153 3155 3157 3161 4267 4279 4285 4293 4303 4311 4566 4569 4609 4958 4977 5077 5314 5316 5422 5446 5449 5452 5456 5620 5623 5630 5648 6340 6484 6490 6685 7175 7195 7226 7243 7434 7447 7649 7680 7748 8312 8374 8377 8411 8554 SWEEP 2004 # 7442 7443 7446 TAKE INTERRUPT 2099 # 8844 TEST DISP 2091 # 3285 3291 7580 TL [] 1726 # 4004 4009 5525 5690 5693 5761 5764 5767 5770 5830 5930 5973 6112 6114 6196 6216 6400 6416 6470 6505 6508 7696 7698 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 292 ; Cross Reference Listing 7712 8296 8362 8369 8372 8387 8392 8441 8460 8464 8470 8484 8488 8490 8510 8563 8582 8584 8622 8627 8649 8652 8654 8657 8660 8681 8691 8745 8763 8804 TR [] 1725 # 3606 3621 6341 6414 6769 7079 7081 7084 7086 7088 7379 7381 7385 7387 7389 7391 7393 7395 7637 7664 8247 8515 8543 8749 8752 8757 TURN OFF PXCT 2001 # 2254 2257 2260 2272 2275 2278 2292 TXXX TEST 2077 # 3299 UNHALT 2011 # 7899 UPDATE USER 2034 # 3572 3576 3634 UUO 2096 # 2449 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3936 3938 3940 3942 3944 3946 3948 3950 6925 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7264 7287 7382 7841 7850 7852 7854 7856 7858 7860 VMA 1866 # VMA EXTENDED 1804 # VMA PHYSICAL 1801 # 3982 3996 4016 4043 6989 6997 7501 7543 7891 7894 7977 7980 7987 7990 7993 7996 7999 8341 8349 8355 8435 8676 8846 8882 8885 VMA PHYSICAL READ 1803 # 7501 7543 8341 8349 8882 VMA PHYSICAL WRITE 1802 # 3982 7891 7977 8846 VMA_[] 1846 # 2242 2246 2264 2321 2348 2357 2444 2802 3340 3467 3472 3546 3582 3644 3655 3744 3749 3828 3859 4235 4710 4719 4770 4778 5111 5139 5147 5263 5946 6472 6528 6606 6648 6911 6913 7130 7235 7399 7417 7423 7501 7670 7714 7870 7878 7905 8006 8353 8577 8593 8674 8845 VMA_[] WITH FLAGS 1847 # 7773 VMA_[]+1 1849 # 2243 2245 2290 2377 3352 3646 4059 5161 5166 5184 5269 6117 6467 7326 7356 VMA_[]+XR 1851 # 4766 4774 6910 6912 VMA_[]+[] 1852 # 8340 8348 8433 VMA_[]-1 1850 # 3541 3550 3553 7692 VMA_[].OR.[] WITH FL 1848 # 7632 7667 WORK[] 1867 # 6149 6371 6570 6637 6715 6746 6749 WORK[]_.NOT.[] 1777 # 6191 WORK[]_0 1772 # 2191 7450 7451 WORK[]_1 1773 # 2190 WORK[]_Q 1770 # 4989 6121 6160 WORK[]_[] 1774 # 2174 2182 2184 2185 4707 4966 4979 4999 5031 5939 5952 5955 5985 6047 6073 6074 6075 6090 6137 6173 6312 6314 6376 6389 6395 6594 6742 6931 6982 7094 7203 7269 7273 7277 7281 7285 7300 7311 7332 7335 7365 7366 7733 7739 7741 7886 7958 7973 7983 8245 8255 8256 8258 8259 8266 8276 8278 8280 8282 8286 8287 8428 8430 8451 8776 WORK[]_[] CLR LH 1775 # 3677 7699 WORK[]_[]-1 1776 # 6370 WORK[]_[].AND.[] 1778 # 6002 WRITE TEST 1816 # 2603 2799 2805 3419 3644 3647 3655 3696 3746 3751 3829 3842 3996 4043 4053 4747 4753 4908 5140 5148 5164 5169 5263 6560 6606 7235 7267 7271 7275 7279 7283 7352 7356 7417 7517 7879 7894 7980 7987 7990 7993 7996 7999 8885 XR 1865 # [] LEFT_-1 1667 # 2754 [] LEFT_0 1665 # 2752 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 293 ; Cross Reference Listing [] RIGHT_-1 1668 # 2775 [] RIGHT_0 1666 # 2773 []+[] 1532 # 2797 4246 4386 []-# 1534 # 6200 6493 []-[] 1533 # 4382 4438 4439 5136 5154 5178 5266 5375 5383 5731 6115 [].AND.# 1535 # 5406 5410 6539 7002 7152 7200 [].AND.NOT.WORK[] 1779 # [].AND.NOT.[] 1538 # 4143 [].AND.Q 1536 # 4410 [].AND.WORK[] 1780 # 6755 [].AND.[] 1537 # 4171 7046 7052 7565 [].OR.[] 1539 # [].XOR.# 1540 # 2202 7504 7505 [].XOR.[] 1541 # 7342 []_# 1543 # 2163 2167 2192 2193 2233 2759 2761 2766 2768 4555 4963 4986 4996 5000 5029 5072 5123 5957 5989 6015 6018 6040 6088 6094 6102 6133 6140 6159 6187 6369 6396 6520 6577 6581 6641 7058 7060 7426 7428 7439 7441 7520 7562 8248 8822 8824 8826 8828 8830 8832 8836 []_#-[] 1542 # []_(#-[])*2 1629 # 5067 []_(-[])*.5 1630 # []_(-[]-.25)*.5 LONG 1631 # 4416 5725 []_(-[]-.25)*2 LONG 1632 # 4493 []_(AC[].AND.[])*.5 1627 # 4192 4194 5564 5655 5710 []_(MEM.AND.[])*.5 1841 # 2438 []_(Q+1)*.5 1628 # 5847 []_([]+#)*2 1642 # []_([]+1)*2 1643 # 6659 []_([]+[])*.5 LONG 1644 # 5594 []_([]+[])*2 LONG 1645 # 4600 []_([]+[]+.25)*.5 LO 1648 # []_([]-[])*.5 LONG 1646 # []_([]-[])*2 LONG 1647 # 4597 []_([].AND.#)*.5 1634 # 4960 4967 7546 []_([].AND.#)*2 1635 # []_([].AND.NOT.#)*.5 1636 # []_([].AND.NOT.#)*2 1637 # []_([].AND.[])*.5 1638 # 4186 []_([].AND.[])*2 1639 # []_([].OR.#)*.5 1640 # []_([].OR.#)*2 1641 # []_+SIGN 1671 # 2436 2471 5307 5311 5336 5369 5430 []_+SIGN*.5 1676 # 5568 5670 5721 []_-1 1544 # 4338 6406 7408 []_-2 1545 # []_-AC 1560 # 4642 []_-AC[] 1561 # 6285 []_-Q 1546 # []_-Q*.5 1548 # 5394 []_-Q*2 1547 # 4466 []_-SIGN 1672 # 2434 2472 5308 5312 5337 5370 5431 []_-SIGN*.5 1677 # 5570 5671 5723 []_-WORK[] 1787 # 6013 6956 6970 []_-[] 1549 # 2591 2961 4535 4553 4560 4654 4658 4662 4664 5297 5372 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 294 ; Cross Reference Listing 5407 5516 5532 5561 5713 5793 5814 6282 []_-[]*2 1551 # 5376 []_-[]-.25 1550 # 5562 []_.NOT.AC[] 1553 # 6284 []_.NOT.AC 1552 # 2910 2920 4641 []_.NOT.Q 1554 # 4926 6001 []_.NOT.WORK[] 1786 # 6030 6058 6062 6198 6202 6974 []_.NOT.[] 1555 # 2853 2890 2931 2941 3302 4108 4552 4656 4663 5466 5514 5529 5531 5712 5722 5791 5982 5984 6536 7695 8690 []_0 1556 # 2175 2177 2180 2189 2208 2230 2414 2818 3285 3987 4240 4336 4550 4830 4972 5115 5157 5181 5267 5533 5706 5773 5789 5817 6034 6106 6118 6129 6158 6279 6317 6351 6407 6411 6415 6418 6473 6745 7170 7182 7228 7305 7380 7425 7493 7722 7767 7891 8559 8621 8816 8834 8835 8866 []_0 XWD [] 1558 # 2169 2172 2216 2252 2256 2259 2271 2274 2277 3960 4000 4048 4412 4423 5897 5899 5901 5903 5905 5907 5909 5911 5913 6609 7296 7475 7476 7477 7478 7479 7480 7481 []_0*.5 LONG 1557 # 4266 []_AC[] 1575 # 2195 2385 2795 5972 5990 5993 6023 6039 6111 6131 6163 6178 6206 6209 6211 6228 6269 6271 6272 6304 6310 6337 6349 6384 6527 6568 6605 6607 6711 6824 6831 6857 6859 6886 6943 6951 6957 []_AC[]*.5 1577 # 4206 []_AC[]*2 1576 # 6218 []_AC[]-1 1572 # 6378 6397 []_AC[]-[] 1571 # 4113 []_AC[].AND.[] 1573 # []_AC 1559 # 2371 2384 2602 2703 2705 2736 2742 2979 2996 3487 3731 3764 3786 3844 3857 4164 4343 4734 5130 5218 5300 5333 5365 5429 5575 5975 6113 6175 6309 6311 6332 6469 7594 7881 []_AC*.5 1562 # 3002 3014 3017 4211 4426 5565 5667 5718 []_AC*.5 LONG 1563 # 2398 3104 []_AC*2 1564 # 4730 []_AC+1 1565 # 3501 []_AC+1000001 1566 # 3523 3693 []_AC+[] 1567 # 5121 []_AC-1 1568 # 3515 []_AC-[] 1569 # 3384 4088 4118 []_AC-[]-.25 1570 # 4115 []_AC.AND.MASK 1574 # 2982 3030 []_APR 1578 # 7020 7021 7083 7115 7314 []_CURRENT AC [] 1579 # []_EA 1582 # 2334 []_EA FROM [] 1580 # 5943 []_EXP 1583 # 5507 5523 5853 []_FE 1584 # 3055 6672 []_FLAGS 1585 # 3642 3656 3977 4003 7506 8856 []_IO DATA 1836 # 7491 7539 7635 8268 []_MEM 1837 # 2283 2353 2367 2376 2380 2408 2425 3563 3587 3602 3627 3631 3692 3737 3773 3862 4019 4782 5929 5948 6368 6611 6639 6915 6930 7000 7133 7268 7272 7276 7280 7284 7325 7364 7502 7544 7715 7760 7763 7874 7913 8357 8439 8679 []_MEM THEN FETCH 1838 # 2419 []_MEM*.5 1839 # []_MEM.AND.MASK 1840 # 4788 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 295 ; Cross Reference Listing []_P 1586 # 6542 6688 []_PC WITH FLAGS 1587 # 3703 3820 3826 4233 6981 7518 []_Q 1588 # 4141 4149 4369 4424 4441 4447 4456 5624 5631 5651 5674 5733 5735 []_Q*.5 1589 # 4204 5388 5393 5663 []_Q*2 1590 # []_Q*2 LONG 1591 # 4452 4462 []_Q+1 1592 # 5118 []_RAM 1593 # []_TIME 1594 # 7339 7340 7341 []_VMA 1595 # 7729 7972 8242 8257 8777 []_VMA FLAGS 1857 # 7487 7534 7626 7629 7665 7676 7682 7908 []_VMA IO READ 1858 # 7487 7534 7626 7629 7908 []_VMA IO WRITE 1859 # 7665 7676 7682 []_WORK[] 1785 # 4984 4994 5193 6077 6078 6079 6080 6144 6355 6365 6398 6399 6420 6596 6632 6709 6829 6840 6947 7072 7106 7198 7255 7257 7259 7261 7263 7293 7302 7307 7313 7345 7349 7370 7702 7707 7960 7965 7969 7984 8002 8004 8005 8007 8246 8335 8338 8422 8425 8503 8505 8550 8590 8591 8592 8598 8787 8793 8802 8806 8818 []_WORK[]+1 1788 # 6009 6042 6097 6195 6373 6836 6842 []_XR 1596 # 7705 []_[] 1597 # 2309 3033 3468 3471 3539 3540 3566 3593 3608 3667 3721 3841 3846 4135 4163 4187 4203 4333 4342 4357 4363 4392 4747 5055 5303 5304 5305 5343 5363 5371 5580 5581 5588 5589 5662 5704 5707 5749 5750 5991 6011 6057 6092 6352 6363 6371 6438 6538 6771 6862 6885 6904 6961 7027 7028 7220 7245 7344 7376 7522 7604 7606 7613 7638 8308 8396 8547 8571 8868 []_[] SWAP 1598 # 2403 2583 2730 2732 2735 2738 2741 2744 3283 3288 3607 3784 3843 3858 3976 4828 4954 4970 5070 5110 5119 5192 6417 6474 6479 6480 6774 7107 7384 7397 7407 8449 []_[] XWD 0 1599 # 6172 6287 7755 8272 8274 8288 []_[]*.5 1600 # 2166 2440 2441 2998 3019 3020 3024 3107 3110 4185 4242 4404 4432 4563 4564 4565 4571 4832 4908 4957 4976 5378 5386 5453 5502 5504 5520 5521 5540 5541 5546 5656 5689 5858 6481 6484 6488 6490 6570 6678 6685 6748 7224 7226 7234 7240 7243 7549 7567 7642 7648 8311 []_[]*.5 LONG 1601 # 2399 3085 3113 3157 4137 4165 4244 4265 4278 4406 4408 4420 4436 4451 4458 4510 4558 5058 5225 5245 5246 5247 5261 5316 5339 5344 5419 5421 5451 5619 5622 5630 5633 5635 5649 5684 5739 5765 5768 5802 5804 5850 []_[]*2 1602 # 2164 2986 3009 3022 3025 3052 4140 4167 4223 5076 5260 5373 5381 5456 6219 6765 7174 7193 7195 7494 7530 7674 7680 7771 8373 8376 8410 8553 []_[]*2 LONG 1603 # 3005 3086 3089 3090 3091 3116 3120 3123 3158 3161 3162 4490 4570 4573 4575 4921 5240 5241 5498 5510 5518 5522 5596 5601 5603 5615 5617 5618 5647 5688 5692 5741 5758 5780 5797 5825 []_[]*4 1604 # 6475 []_[]+# 1605 # 3739 3768 6434 6443 7495 7540 8343 8351 8841 []_[]+.25 1606 # 5854 []_[]+0 1607 # []_[]+1 1608 # 2194 2198 2428 2431 3418 3628 3649 4753 5159 5183 5268 5465 5968 6069 6087 6116 6259 6327 6339 6346 6366 6387 6401 6456 6519 6543 6637 6864 6906 7303 7769 8820 8881 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 296 ; Cross Reference Listing []_[]+1000001 1609 # 3832 3849 5133 []_[]+AC 1610 # 4074 4104 []_[]+AC[] 1611 # 4101 6220 6230 6233 []_[]+Q 1612 # 4464 []_[]+RAM 1613 # 6450 6452 []_[]+WORK[] 1781 # 5052 6391 6571 6647 6754 6762 7346 7719 7721 8365 8367 8444 8619 []_[]+XR 1614 # 2303 2315 2330 2343 3578 5942 5945 7713 []_[]+[] 1615 # 3962 4002 4217 4483 4486 4574 5317 5461 5544 5675 6032 6064 6236 6247 6249 6686 6968 6984 6992 7297 7497 7532 7542 7550 []_[]+[]+.25 1616 # []_[]-# 1617 # []_[]-1 1618 # 3434 6048 6152 6153 6264 6405 6442 6835 8810 8870 []_[]-1000001 1619 # []_[]-AC 1620 # []_[]-RAM 1621 # 6440 6445 []_[]-WORK[] 1790 # []_[]-[] 1622 # 6027 6353 6964 7308 7432 7445 []_[]-[] REV 1623 # 6151 []_[].AND.AC 1649 # 2828 2951 3290 3313 7580 []_[].AND.NOT.# 1650 # 3635 4039 5838 6422 6790 6806 7073 7099 7392 8522 8572 8747 []_[].AND.NOT.AC 1652 # 2838 7610 []_[].AND.NOT.WORK[] 1783 # []_[].AND.NOT.[] 1651 # 5599 7082 7085 7386 7396 7566 []_[].AND.Q 1653 # 4169 4841 4928 []_[].AND.WORK[] 1782 # 6150 8625 []_[].AND.[] 1654 # 4927 5526 5808 5810 6148 7409 8645 []_[].AND.# 1624 # 2436 2449 2471 3543 3552 3555 3557 3558 3559 3592 3597 3600 3620 3641 3654 3936 3938 3940 3942 3944 3946 3948 3950 3956 4054 4122 5079 5307 5311 5336 5369 5430 6183 6306 6482 6485 6524 6655 6689 6692 6925 6935 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7075 7077 7109 7112 7137 7144 7148 7159 7178 7199 7227 7233 7239 7244 7264 7287 7329 7382 7383 7644 7650 7841 7850 7852 7854 7856 7858 7860 8243 8300 8456 8556 8566 8779 []_[].AND.# CLR LH 1625 # 3056 6597 6635 6675 6820 7045 7048 7116 7483 8314 8393 8453 8471 8579 []_[].AND.# CLR RH 1626 # 5242 5932 5976 6176 []_[].EQV.AC 1655 # 2900 []_[].EQV.Q 1656 # 4147 4150 4172 4173 []_[].OR.# 1657 # 2165 2434 2472 4006 4011 4123 4476 4561 5308 5312 5337 5370 5431 5626 5627 5634 5837 6188 6275 6319 6328 6333 6343 6614 6618 6620 6681 6794 6798 6802 6810 6826 7201 7315 7390 7468 7469 7470 7471 7472 7473 7474 7909 8239 8293 8297 8482 8485 8511 8518 8560 8564 8581 8583 8587 8643 8750 8754 8759 8766 8771 8844 []_[].OR.AC 1658 # 2880 3308 7608 []_[].OR.FLAGS 1659 # []_[].OR.WORK[] 1784 # 6962 6971 8398 8493 []_[].OR.[] 1660 # 2921 4109 4929 5934 6033 6263 6694 7076 7080 7087 7118 7163 7185 7187 7388 7394 7536 8568 8782 []_[].XOR.AC 1662 # 2870 3305 []_[].XOR.[] 1663 # 5812 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 297 ; Cross Reference Listing []_[].XOR.# 1661 # 4430 8306 .NOT.[] 1531 # 4347 7410 7485 2T 1869 # 4426 4439 5306 5576 6150 6220 6284 6572 6709 6754 7349 7706 3T 1870 # 2202 2427 2437 2592 3125 3299 3384 3418 3434 3524 3614 3698 3733 3741 3766 3770 3787 3792 3797 3834 3850 4075 4089 4192 4194 4213 4247 4384 4388 4438 4444 4445 4446 4463 4467 4488 4496 4577 4642 4659 4717 4732 4803 4821 4917 4961 4968 5048 5064 5068 5134 5136 5155 5179 5266 5300 5334 5375 5406 5407 5410 5442 5445 5499 5501 5503 5505 5564 5565 5568 5570 5669 5670 5671 5715 5719 5721 5723 5731 5814 5820 5980 5998 6000 6048 6052 6115 6222 6236 6250 6282 6285 6370 6373 6405 6406 6434 6440 6443 6452 6477 6491 6518 6538 6539 6661 6668 6712 6771 6861 6868 6889 6903 6907 6910 6912 6948 7003 7133 7140 7153 7200 7466 7491 7495 7503 7504 7505 7540 7544 7546 7713 8343 8351 8577 8594 8812 8842 4T 1871 # 3030 3501 3515 4101 4106 4113 4116 4118 5008 5013 5994 6024 6201 6206 6231 6272 6445 6493 6633 6756 6957 7966 8263 8336 8339 8423 8426 5T 1872 # 7267 7271 7275 7279 7283 7735 7752 7-BIT DPB 4898 # 4902 4903 4904 4905 4906 7-BIT LDB 4800 # 4808 4809 4810 4811 4812 (D) MACRO% AC 2138 # 2561 2562 2566 2567 2571 2572 2576 2577 2598 2614 2615 2619 2620 2624 2625 2629 2630 2634 2635 2639 2640 2644 2645 2649 2650 2656 2657 2661 2662 2666 2667 2671 2672 2676 2677 2681 2682 2686 2687 2691 2692 2781 2811 2812 2821 2822 2831 2832 2841 2842 2846 2847 2863 2864 2873 2874 2883 2884 2893 2894 2903 2904 2913 2914 2924 2925 2934 2935 2944 2945 2954 2955 4067 4068 4081 4082 4129 4130 4699 8235 AC DISP 2152 # 3530 7013 7014 7250 B 2140 # 2814 2824 2834 2844 2849 2866 2876 2886 2896 2906 2916 2927 2937 2947 2957 4070 4084 4132 DAC 2142 # 2780 4096 4097 4154 4155 4180 4321 4322 4326 4327 4398 5640 5701 DBL AC 2127 # 2789 DBL B 2143 # 4157 4324 4329 DBL FL-R 2133 # 5551 5552 5640 5701 DBL R 2126 # 2780 2781 4096 4097 4180 4398 FL-AC 2144 # 5277 5280 5281 5285 5288 5289 5322 5326 5327 5351 5355 5356 5401 5402 5436 5437 FL-BOTH 2146 # 5279 5283 5287 5291 5324 5329 5353 5358 FL-I 2132 # 5281 5289 5327 5356 FL-MEM 2145 # 5278 5282 5286 5290 5323 5328 5352 5357 FL-R 2130 # 5277 5280 5285 5288 5322 5326 5351 5355 5436 5437 FL-RW 2131 # 5278 5279 5282 5283 5286 5287 5290 5291 5323 5324 5328 5329 5352 5353 5357 5358 I 2118 # 2857 2969 3189 3190 3191 3192 3193 3194 3195 3196 3198 3199 3207 3208 3209 3210 3211 3212 3213 3214 3225 3226 3227 3228 3229 3230 3231 3232 3242 3243 3244 3245 3246 3247 3248 3249 3364 3365 3366 3367 3368 3369 3370 3371 3476 3477 3478 3479 3480 3481 3482 3483 3491 3492 3493 3494 3495 3496 3497 3505 3506 3507 3508 3509 3510 3511 3518 3519 3530 3532 3683 3685 3686 3813 3814 3815 3816 3869 3870 3871 3872 3873 3874 3875 3876 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 298 ; Cross Reference Listing 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3915 3916 3917 3918 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 5126 5402 5866 5867 5868 5869 5870 5871 5872 5874 5875 5876 5877 5879 5880 5881 5882 5884 5885 5886 5887 5888 5889 5890 5891 5925 7784 7785 7786 7788 7789 7791 7792 7794 7795 7796 7797 7798 7799 7800 7801 7803 7804 7805 7806 7807 7808 7809 7810 7812 7813 7814 7815 7816 7817 7818 7819 7821 7822 7823 7824 7825 7826 7827 7828 7830 7831 7832 7833 7834 7835 7836 7837 I-PF 2119 # 2562 2567 2572 2577 2615 2620 2625 2630 2635 2640 2645 2650 2657 2662 2667 2672 2677 2682 2687 2692 2811 2812 2822 2832 2842 2847 2864 2874 2884 2894 2903 2904 2914 2925 2935 2945 2954 2955 2970 3490 3504 3780 4068 4082 4130 4155 4322 4327 IOT 2134 # 7013 7014 7250 7572 7573 7574 7575 7583 7584 7585 7586 7597 7598 7599 7600 7865 7866 8235 IR 2125 # 3684 IW 2124 # 2813 2814 2905 2906 2956 2957 M 2139 # 2563 2568 2573 2578 2616 2621 2626 2631 2636 2641 2646 2651 2658 2663 2668 2673 2678 2683 2688 2693 2813 2823 2833 2843 2848 2858 2859 2865 2875 2885 2895 2905 2915 2926 2936 2946 2956 4069 4083 4131 4156 4323 4328 7250 R 2120 # 2598 2856 3200 3201 3202 3203 3204 3205 3216 3217 3218 3219 3220 3221 3222 3223 3234 3235 3236 3237 3238 3239 3240 3241 3251 3252 3253 3254 3255 3256 3257 3258 3373 3374 3375 3376 3377 3378 3379 3380 3390 3391 3392 3393 3394 3395 3396 3397 3661 4699 4700 4701 4702 4703 5401 R-PF 2121 # 2561 2566 2571 2576 2614 2619 2624 2629 2634 2639 2644 2649 2656 2661 2666 2671 2676 2681 2686 2691 2821 2831 2841 2846 2863 2873 2883 2893 2913 2924 2934 2944 4067 4081 4129 4154 4321 4326 ROUND 2147 # 5280 5281 5282 5283 5288 5289 5290 5291 5326 5327 5328 5329 5355 5356 5357 5358 5401 5437 RW 2123 # 2564 2569 2574 2579 2616 2617 2621 2622 2627 2632 2637 2642 2647 2652 2658 2659 2663 2664 2669 2674 2679 2684 2689 2694 2823 2824 2833 2834 2843 2844 2848 2849 2865 2866 2875 2876 2885 2886 2895 2896 2915 2916 2926 2927 2936 2937 2946 2947 3407 3408 3409 3410 3411 3412 3413 3414 3423 3424 3425 3426 3427 3428 3429 3430 4069 4070 4083 4084 4131 4132 4156 4157 4323 4324 4328 4329 S 2141 # 2564 2569 2574 2579 2617 2622 2627 2632 2637 2642 2647 2652 2659 2664 2669 2674 2679 2684 2689 2694 SH 2128 # 2966 2967 2968 SHC 2129 # 2971 2972 SJC- 3324 # 3364 3373 3390 3407 3423 3476 3490 3504 SJCA 3328 # 3368 3377 3394 3411 3427 3480 3494 3508 SJCE 3326 # 3366 3375 3392 3409 3425 3478 3492 3506 5867 SJCG 3331 # 3371 3380 3397 3414 3430 3483 3497 3511 5872 SJCGE 3329 # 3369 3378 3395 3412 3428 3481 3495 3509 3518 5870 SJCL 3325 # 3365 3374 3391 3408 3424 3477 3491 3505 3519 5866 SJCLE 3327 # 3367 3376 3393 3410 3426 3479 3493 3507 5868 SJCN 3330 # 3370 3379 3396 3413 3429 3482 3496 3510 5871 TC- 3180 # 3225 3226 3234 3235 TCA 3182 # 3229 3230 3238 3239 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 299 ; Cross Reference Listing TCE 3181 # 3227 3228 3236 3237 TCN 3183 # 3231 3232 3240 3241 TN- 3170 # TNA 3173 # 3193 3194 3202 3203 TNE 3171 # 3191 3192 3200 3201 7574 TNN 3174 # 3195 3196 3204 3205 7575 TO- 3184 # 3242 3243 3251 3252 TOA 3186 # 3246 3247 3255 3256 TOE 3185 # 3244 3245 3253 3254 TON 3187 # 3248 3249 3257 3258 TZ- 3176 # 3207 3208 3216 3217 TZA 3178 # 3211 3212 3220 3221 TZE 3177 # 3209 3210 3218 3219 TZN 3179 # 3213 3214 3222 3223 W 2122 # 2563 2568 2573 2578 2626 2631 2636 2641 2646 2651 2668 2673 2678 2683 2688 2693 2790 2858 2859 W TEST 2151 # 2598 4700 4702 WORD-TNE 3172 # 7572 WORD-TNN 3175 # 7573 (U) MEM 968 # 2175 2194 2198 2242 2242 2242 2243 2243 2245 2245 2246 2246 2246 2264 2265 2282 2290 2305 2305 2311 2311 2316 2317 2321 2322 2335 2344 2345 2348 2349 2353 2357 2366 2375 2377 2378 2379 2407 2418 2419 2419 2429 2430 2432 2433 2437 2444 2444 2508 2540 2546 2551 2554 2583 2589 2603 2604 2703 2705 2738 2744 2752 2754 2773 2775 2798 2799 2801 2802 2803 2805 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 3034 3034 3340 3340 3340 3352 3352 3419 3420 3467 3467 3467 3468 3468 3471 3471 3472 3472 3472 3539 3539 3540 3540 3541 3541 3546 3546 3550 3550 3553 3553 3562 3566 3566 3579 3580 3582 3583 3586 3601 3608 3608 3623 3627 3629 3630 3631 3644 3644 3646 3646 3647 3650 3655 3655 3691 3695 3696 3708 3714 3722 3723 3732 3733 3736 3744 3746 3749 3751 3753 3759 3765 3767 3773 3828 3829 3830 3842 3859 3860 3861 3981 3982 3982 3982 3983 3985 3991 3996 3996 3996 4015 4016 4017 4018 4043 4043 4043 4052 4053 4057 4059 4060 4061 4075 4089 4141 4147 4170 4172 4235 4235 4235 4710 4710 4710 4719 4719 4747 4753 4754 4766 4767 4770 4771 4774 4775 4778 4779 4781 4787 4908 4909 5111 5112 5139 5140 5147 5148 5150 5161 5162 5164 5166 5167 5169 5173 5176 5184 5185 5187 5222 5263 5263 5265 5269 5269 5270 5461 5465 5511 5533 5929 5943 5945 5945 5946 5946 5948 5969 5970 6117 6117 6366 6367 6368 6393 6394 6438 6444 6451 6467 6467 6472 6472 6528 6528 6560 6562 6606 6606 6608 6611 6639 6648 6648 6763 6764 6910 6910 6911 6911 6912 6912 6913 6913 6915 6929 6985 6988 6989 6993 6996 6997 7000 7130 7131 7132 7235 7235 7267 7268 7271 7272 7275 7276 7279 7280 7283 7284 7323 7324 7326 7327 7351 7352 7355 7356 7356 7356 7357 7363 7364 7399 7399 7399 7417 7417 7418 7423 7486 7490 7501 7501 7501 7501 7502 7502 7517 7538 7543 7543 7543 7544 7551 7552 7632 7632 7634 7667 7667 7668 7670 7670 7670 7692 7693 7714 7714 7715 7760 7763 7765 7773 7773 7775 7777 7870 7871 7873 7878 7879 7888 7891 7891 7891 7893 7894 7894 7894 7905 7906 7912 7961 7977 7977 7977 7978 7979 7980 7980 7980 7981 7982 7985 7986 7987 7987 7987 7988 7989 7990 7990 7990 7991 7992 7993 7993 7993 7994 7995 7996 7996 7996 7997 7998 7999 7999 7999 8000 8001 8003 8006 8292 8340 8341 8341 8341 8348 8349 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 300 ; Cross Reference Listing 8349 8349 8353 8354 8355 8356 8433 8434 8435 8438 8569 8577 8593 8630 8674 8675 8676 8678 8791 8797 8845 8846 8846 8846 8847 8869 8876 8878 8882 8882 8882 8885 8885 8885 (U) MICROCODE OPTION(INH@ 1248 # OPT 1250 # 7061 (U) MICROCODE OPTION(KIP@ 1272 # OPT 1276 # 7065 (U) MICROCODE OPTION(KLP` 1278 # OPT 1280 # 7066 (U) MICROCODE OPTION(NOC` 1254 # OPT 1258 # 7062 (U) MICROCODE OPTION(NON 1260 # OPT 1264 # 7063 (U) MICROCODE OPTION(UBA  1266 # OPT 1268 # 7064 (U) MICROCODE OPTIONS 1241 # (U) MICROCODE RELEASE(MA 1288 # UCR 1289 # 7053 (U) MICROCODE RELEASE(MI` 1291 # UCR 1292 # 7054 (U) MICROCODE VERSION 1285 # UCV 1286 # 7067 (D) MODE 1352 # (U) MULTI PREC 973 # 4417 4469 4484 4487 4494 4608 5562 5595 5715 5726 (U) MULTI SHIFT 975 # 2987 2999 3021 3026 4834 4839 4915 4923 5260 5261 (U) PHYSICAL 1142 # 3982 3996 4016 4043 6989 6997 7429 7430 7433 7442 7443 7446 7487 7501 7534 7543 7626 7629 7665 7676 7682 7891 7894 7908 7977 7980 7987 7990 7993 7996 7999 8341 8349 8355 8435 8676 8846 8882 8885 (U) PI.CLR 1201 # 7379 (U) PI.CO1 1190 # (U) PI.CO2 1191 # (U) PI.DIR 1200 # 7385 (U) PI.IP1 1182 # 7562 (U) PI.IP2 1183 # (U) PI.IP3 1184 # (U) PI.IP4 1185 # (U) PI.IP5 1186 # (U) PI.IP6 1187 # (U) PI.IP7 1188 # (U) PI.MBZ 1199 # 7381 (U) PI.ON 1189 # 7390 7392 (U) PI.REQ 1202 # 7387 (U) PI.SC1 1207 # (U) PI.SC2 1208 # (U) PI.SC3 1209 # (U) PI.SC4 1210 # (U) PI.SC5 1211 # (U) PI.SC6 1212 # (U) PI.SC7 1213 # (U) PI.TCF 1204 # 7395 (U) PI.TCN 1203 # 7393 (U) PI.TSF 1205 # 7391 (U) PI.TSN 1206 # 7389 (U) PI.ZER 1181 # ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 301 ; Cross Reference Listing (U) PXCT 1146 # BIS-DST-EA 1152 # 6904 6906 6912 6913 6915 BIS-SRC-EA 1150 # CURRENT 1147 # 2242 2243 2245 2246 2265 2305 2311 2419 2444 3034 3340 3352 3467 3468 3471 3472 3539 3540 3564 3566 3588 3603 3608 3723 4235 4710 4719 7399 7670 7711 7906 D1 1149 # 2335 2377 2429 2432 2800 2804 3745 3750 5141 5149 5163 5168 5264 D2 1153 # 3697 3734 3766 4768 4772 5113 5186 5270 6910 6911 E1 1148 # 2344 2349 2355 3584 3670 E2 1151 # 4717 4736 4776 4780 4784 5936 5945 5946 5948 6867 (U) RAMADR 685 # AC# 686 # 2371 2384 2398 2535 2602 2703 2705 2736 2742 2828 2838 2870 2880 2900 2910 2920 2951 2979 2982 2996 3002 3014 3017 3030 3092 3104 3125 3290 3305 3308 3313 3314 3384 3403 3443 3446 3449 3452 3455 3458 3461 3464 3487 3501 3515 3523 3693 3724 3726 3731 3764 3786 3789 3794 3822 3844 3857 4074 4088 4104 4115 4118 4135 4136 4162 4164 4211 4226 4333 4334 4343 4424 4426 4468 4470 4641 4642 4646 4724 4730 4734 5010 5082 5121 5130 5131 5195 5218 5220 5300 5333 5363 5365 5428 5429 5457 5463 5565 5569 5571 5575 5667 5718 5819 5820 5975 6066 6103 6105 6113 6139 6175 6277 6309 6311 6323 6332 6402 6469 6623 6696 6948 6972 7580 7591 7594 7608 7610 7779 7881 8249 AC*# 687 # 2187 2188 2195 2385 2397 2503 2786 2795 3036 3057 3101 3131 4101 4113 4192 4194 4196 4204 4206 4213 4215 4227 4228 4229 4230 4231 4232 4344 4428 4450 4454 4457 4471 4472 4474 4477 4496 4498 4500 4501 4627 4628 4631 4632 4633 4636 4637 4638 4644 4645 5564 5655 5708 5710 5716 5775 5783 5821 5828 5972 5980 5990 5993 6023 6026 6039 6046 6053 6063 6101 6111 6131 6146 6163 6178 6180 6206 6209 6211 6218 6219 6220 6222 6228 6230 6233 6239 6241 6269 6271 6272 6276 6283 6284 6285 6289 6290 6297 6299 6304 6310 6326 6337 6349 6358 6364 6375 6378 6380 6384 6397 6403 6404 6527 6558 6563 6568 6605 6607 6711 6712 6824 6831 6838 6857 6859 6866 6886 6907 6943 6945 6951 6953 6957 6960 6965 RAM 690 # 2197 2199 6440 6445 6450 6452 VMA 689 # 2175 2283 2353 2367 2376 2380 2408 2419 2425 2438 2509 2541 2547 2552 2555 2605 2801 3420 3563 3587 3602 3623 3627 3631 3692 3709 3715 3737 3754 3760 3773 3831 3862 3984 3986 3992 4019 4058 4754 4782 4788 4909 5151 5174 5177 5223 5265 5929 5948 6368 6562 6608 6611 6639 6915 6930 7000 7133 7268 7272 7276 7280 7284 7325 7355 7357 7364 7418 7486 7491 7502 7539 7544 7635 7668 7715 7760 7763 7765 7775 7777 7874 7888 7893 7913 7961 7978 7979 7981 7982 7985 7986 7988 7989 7991 7992 7994 7995 7997 7998 8000 8001 8003 8268 8292 8357 8439 8679 8791 8797 8848 8876 8878 XR# 688 # 2293 2303 2315 2330 2343 2359 3568 3570 3578 4761 4764 4766 4774 5940 5942 5945 6910 6912 6916 7704 7705 7713 # 691 # 2174 2182 2184 2185 2190 2191 3677 4707 4966 4979 4984 4989 4993 4994 4999 5005 5031 5044 5052 5057 5063 5193 5939 5952 5955 5985 6002 6009 6013 6030 6042 6047 6058 6062 6073 6074 6075 6077 6078 6079 6080 6090 6097 6121 6137 6144 6149 6150 6157 6160 6173 6191 6195 6198 6202 6312 6314 6355 6365 6370 6371 6373 6376 6389 6391 6395 6398 6399 6420 6570 6571 6594 6596 6632 6637 6647 6709 6715 6742 6746 6749 6754 6755 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 302 ; Cross Reference Listing 6762 6829 6836 6840 6842 6931 6947 6956 6962 6970 6971 6974 6982 7072 7094 7106 7198 7203 7255 7257 7259 7261 7263 7269 7273 7277 7281 7285 7293 7300 7302 7307 7311 7313 7332 7335 7345 7346 7349 7365 7366 7370 7450 7451 7699 7702 7707 7719 7721 7733 7739 7741 7886 7958 7960 7965 7969 7973 7983 7984 8002 8004 8005 8007 8245 8246 8255 8256 8258 8259 8266 8276 8278 8280 8282 8286 8287 8335 8338 8365 8367 8398 8405 8422 8425 8428 8430 8444 8451 8493 8503 8505 8534 8550 8590 8591 8592 8598 8618 8619 8625 8776 8787 8793 8802 8806 8818 (D) READ 1363 # 2561 2562 2564 2566 2567 2569 2571 2572 2574 2576 2577 2579 2598 2614 2615 2616 2617 2619 2620 2621 2622 2624 2625 2627 2629 2630 2632 2634 2635 2637 2639 2640 2642 2644 2645 2647 2649 2650 2652 2656 2657 2658 2659 2661 2662 2663 2664 2666 2667 2669 2671 2672 2674 2676 2677 2679 2681 2682 2684 2686 2687 2689 2691 2692 2694 2780 2781 2811 2812 2821 2822 2823 2824 2831 2832 2833 2834 2841 2842 2843 2844 2846 2847 2848 2849 2856 2863 2864 2865 2866 2873 2874 2875 2876 2883 2884 2885 2886 2893 2894 2895 2896 2903 2904 2913 2914 2915 2916 2924 2925 2926 2927 2934 2935 2936 2937 2944 2945 2946 2947 2954 2955 2966 2967 2968 2970 2971 2972 3200 3201 3202 3203 3204 3205 3216 3217 3218 3219 3220 3221 3222 3223 3234 3235 3236 3237 3238 3239 3240 3241 3251 3252 3253 3254 3255 3256 3257 3258 3373 3374 3375 3376 3377 3378 3379 3380 3390 3391 3392 3393 3394 3395 3396 3397 3407 3408 3409 3410 3411 3412 3413 3414 3423 3424 3425 3426 3427 3428 3429 3430 3490 3504 3661 3684 3780 4067 4068 4069 4070 4081 4082 4083 4084 4096 4097 4129 4130 4131 4132 4154 4155 4156 4157 4180 4321 4322 4323 4324 4326 4327 4328 4329 4398 4699 4700 4701 4702 4703 5277 5278 5279 5280 5281 5282 5283 5285 5286 5287 5288 5289 5290 5291 5322 5323 5324 5326 5327 5328 5329 5351 5352 5353 5355 5356 5357 5358 5401 5436 5437 5551 5552 5640 5701 5925 (U) READ CYCLE 1134 # 2242 2243 2245 2246 2265 2305 2311 2316 2322 2345 2349 2378 2419 2430 2433 2444 3034 3340 3352 3467 3468 3471 3472 3539 3540 3541 3546 3550 3553 3566 3580 3583 3608 3630 3650 3723 3733 3767 3860 4017 4061 4235 4710 4719 4767 4771 4775 4779 5112 5187 5270 5945 5946 5970 6117 6367 6394 6467 6472 6528 6648 6764 6910 6911 6912 6913 6988 6996 7131 7267 7271 7275 7279 7283 7323 7327 7363 7399 7487 7501 7534 7543 7552 7626 7629 7670 7693 7714 7871 7906 7908 8341 8349 8354 8434 8573 8675 8882 (D) ROUND 1351 # 5280 5281 5282 5283 5288 5289 5290 5291 5326 5327 5328 5329 5355 5356 5357 5358 5401 5437 (U) RSRC 619 # AB 621 # 3677 7699 AQ 620 # D0 627 # 2773 6172 6287 7487 7534 7626 7629 7665 7676 7682 7755 7908 8272 8274 8288 DA 625 # 2169 2172 2205 2216 2252 2256 2259 2262 2271 2274 2277 2280 2531 3056 3594 3960 4000 4048 4412 4423 4817 5897 5899 5901 5903 5905 5907 5909 5911 5913 6597 6609 6635 6675 6820 7045 7048 7116 7296 7339 7340 7341 7475 7476 7477 7478 7479 7480 7481 7483 7516 7548 8314 8393 8453 8471 8579 8801 DQ 626 # 0A 624 # 2334 2775 3703 3820 3826 4233 5238 5568 5570 5670 5671 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 303 ; Cross Reference Listing 5721 5723 5943 6981 7518 0B 623 # 2752 2754 0Q 622 # 3642 3656 3977 4003 5242 5932 5976 6176 7506 8856 (U) S# 1009 # 2189 2392 2411 2411 2426 2426 2442 2980 2983 2987 2997 2999 3015 3018 3021 3026 3038 3053 3055 3082 3099 3108 3111 3154 4136 4164 4201 4221 4241 4354 4451 4459 4721 4803 4826 4831 4833 4835 4838 4901 4902 4903 4904 4905 4906 4914 4918 4920 4922 4955 4971 4982 4995 5011 5056 5071 5230 5232 5250 5252 5260 5261 5304 5306 5338 5343 5345 5371 5372 5385 5386 5408 5412 5414 5415 5419 5427 5442 5445 5447 5498 5502 5504 5507 5510 5518 5520 5521 5522 5523 5541 5546 5576 5587 5602 5604 5645 5656 5660 5663 5673 5679 5685 5696 5734 5735 5745 5759 5766 5769 5781 5798 5803 5805 5826 5851 5853 5859 5997 5998 6000 6166 6311 6479 6481 6488 6537 6542 6544 6667 6669 6671 6672 6678 6688 6871 7172 7193 7224 7234 7240 7454 7642 7674 7728 7744 8309 8360 8408 8548 (U) SCAD 986 # A 994 # 2189 3038 4136 4164 4201 4221 4241 4354 4451 4459 4717 4731 4808 4809 4810 4811 4812 4917 4955 4971 4982 4995 5011 5056 5071 5230 5232 5250 5252 5338 5385 5408 5412 5414 5415 5419 5645 5656 5660 5673 5679 5734 5735 6311 6479 6481 6488 6537 6667 6668 6678 6868 6889 6908 7172 7193 7224 7234 7240 7454 7642 7674 7728 7744 8309 8360 8408 8548 A*2 987 # 6660 A+B 991 # 2392 2411 2411 2426 2426 2983 2987 2997 2999 3018 3021 3026 3053 3055 3099 3108 4833 4838 4902 4903 4904 4905 4906 4914 4922 5260 5261 5304 5306 5334 5343 5345 5386 5427 5429 5441 5445 5498 5502 5504 5507 5510 5518 5520 5521 5522 5523 5541 5546 5576 5587 5602 5604 5668 5685 5696 5759 5766 5769 5781 5798 5803 5805 5826 5851 5853 5859 5997 5998 6000 6538 6542 6670 6671 6672 6688 6976 A-1 993 # 2199 3003 3005 3081 3083 3085 3089 3115 3122 3153 3155 3157 3161 4267 4279 4285 4293 4303 4311 4566 4569 4609 4958 4977 5077 5314 5316 5422 5446 5449 5452 5456 5620 5623 5630 5648 6340 6484 6490 6685 7175 7195 7226 7243 7434 7447 7649 7680 7735 7748 8312 8374 8377 8411 8554 A-B 990 # 2980 3015 3082 3111 3154 4709 4714 4728 4749 4803 4826 4831 4835 4901 4920 5365 5371 5372 5447 5719 5745 6050 6060 6860 6863 6903 6905 A-B-1 989 # 5300 5305 5566 5586 A.AND.B 992 # 4721 4918 6166 6544 6669 6871 A.OR.B 988 # 2442 5663 (U) SCADA 995 # BYTE1 999 # 4709 4714 4717 4728 4808 4917 6050 6538 6668 6860 6868 6903 6908 6976 BYTE2 1000 # 4809 BYTE3 1001 # 4810 BYTE4 1002 # 4811 BYTE5 1003 # 4732 4812 6661 6890 PTR44 998 # 4749 6060 6863 6905 S# 997 # 2189 2392 2411 2411 2426 2426 2442 2980 2983 2987 2997 2999 3015 3018 3021 3026 3038 3053 3055 3082 3099 3108 3111 3154 4136 4164 4201 4221 4241 4354 4451 4459 4721 4803 4826 4831 4833 4835 4838 4901 4902 4903 4904 4905 4906 4914 4918 4920 4922 4955 4971 4982 4995 5011 5056 5071 5230 5232 5250 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 304 ; Cross Reference Listing 5252 5260 5261 5304 5306 5338 5343 5345 5371 5372 5385 5386 5408 5412 5414 5415 5419 5427 5441 5445 5447 5498 5502 5504 5507 5510 5518 5520 5521 5522 5523 5541 5546 5576 5587 5602 5604 5645 5656 5660 5663 5673 5679 5685 5696 5734 5735 5745 5759 5766 5769 5781 5798 5803 5805 5826 5851 5853 5859 5997 5998 6000 6166 6311 6479 6481 6488 6537 6542 6544 6667 6669 6671 6672 6678 6688 6871 7172 7193 7224 7234 7240 7454 7642 7674 7728 7744 8309 8360 8408 8548 SC 996 # 2199 3003 3005 3081 3083 3085 3089 3115 3122 3153 3155 3157 3161 4267 4279 4285 4293 4303 4311 4566 4569 4609 4958 4977 5077 5300 5305 5314 5316 5334 5365 5422 5429 5446 5449 5452 5456 5566 5586 5620 5623 5630 5648 5668 5719 6340 6484 6490 6670 6685 7175 7195 7226 7243 7434 7447 7649 7680 7735 7748 8312 8374 8377 8411 8554 (U) SCADB 1004 # EXP 1006 # 2411 2411 2426 2426 5300 5304 5306 5334 5365 5429 5566 5576 5587 5668 5719 FE 1005 # 2442 2980 2983 2987 2997 2999 3015 3018 3021 3026 3053 3055 3108 3111 4721 4803 4826 4831 4833 4838 4902 4903 4904 4905 4906 4914 4918 4920 4922 5260 5261 5305 5343 5345 5371 5372 5386 5442 5445 5447 5498 5502 5504 5507 5510 5518 5520 5521 5522 5523 5541 5546 5586 5602 5604 5663 5685 5696 5745 5759 5766 5769 5781 5798 5803 5805 5826 5851 5853 5859 5998 6000 6166 6538 6542 6544 6669 6670 6671 6672 6688 6871 SHIFT 1007 # 2392 3082 3099 3154 5427 SIZE 1008 # 4709 4714 4728 4749 4835 4901 5997 6050 6060 6860 6863 6903 6905 6976 (U) SETFOV 1090 # 5367 5379 5732 (U) SETFPD 1096 # 4249 4763 6406 (U) SETNDV 1091 # 4356 4391 4422 4508 5015 5367 5379 5732 (U) SETOV 1088 # 4149 4150 4174 4236 4356 4391 4422 4508 5015 5367 5379 5444 5732 (U) SHSTYLE 833 # ASHC 838 # 3005 3114 3117 3121 3124 4285 4293 4303 4311 4417 4421 4490 4494 4510 5316 5419 5421 5451 5595 5597 5601 5603 5619 5623 5630 5633 5635 5647 5688 5692 5727 5741 5759 5765 5768 5781 5798 5802 5804 5826 5851 DIV 840 # 4566 4569 4570 4613 4617 5498 5510 5518 5522 5615 5617 5618 LSHC 839 # 3085 3089 4598 4601 NORM 834 # 2439 2999 4244 4278 4451 4607 5225 5240 5241 5245 5246 5247 5261 5649 5739 ONES 836 # 4837 4840 4913 4916 6000 ROT 837 # 3021 3026 ROTC 841 # 3157 3161 ZERO 835 # (U) SKIP 911 # AC0 919 # 2498 3402 4706 ADEQ0 931 # 3031 3346 3358 3449 3461 4139 4144 4346 4348 4352 4366 4411 4440 4470 4551 4629 4634 4639 4655 4662 4980 5009 5363 5389 5391 5464 5506 5530 5686 5737 5779 5824 6154 6207 6283 6286 6575 6612 6633 6756 7343 8336 8339 8405 8423 8426 8534 8618 ADLEQ0 915 # 2202 4004 4009 5406 5411 5525 5690 5693 5761 5764 5767 5770 5830 5930 5973 6112 6114 6196 6216 6400 6416 6470 6505 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 305 ; Cross Reference Listing 6508 6540 7004 7140 7154 7200 7504 7505 7696 7698 7712 8296 8362 8369 8372 8387 8392 8441 8460 8464 8470 8484 8488 8490 8510 8563 8582 8584 8622 8627 8649 8652 8654 8657 8660 8681 8691 8745 8763 8804 ADREQ0 916 # 3100 3606 3621 5137 6341 6414 6769 7046 7052 7079 7081 7084 7086 7088 7379 7381 7385 7387 7389 7391 7393 7395 7492 7545 7565 7637 7664 8247 8515 8543 8749 8752 8757 CRY0 914 # 3699 3742 3771 5375 5499 5501 5503 5505 CRY1 927 # 4102 4114 5815 6231 6237 6250 6441 6452 CRY2 922 # 5788 5848 DP0 923 # 2412 2427 2586 2764 2771 3054 3126 3343 3355 3446 3458 3788 3791 3796 4121 4146 4168 4171 4226 4234 4335 4371 4373 4378 4383 4387 4409 4426 4438 4445 4460 4479 4497 4549 4556 4571 5012 5156 5180 5266 5302 5306 5335 5365 5373 5407 5429 5460 5567 5669 5716 5720 5731 5744 5981 5994 6011 6024 6031 6049 6091 6093 6115 6132 6135 6141 6181 6273 6278 6315 6324 6357 6374 6446 6496 6522 6713 6743 6785 6839 6958 7134 7298 8323 8421 8648 DP18 924 # 2391 2750 2757 5954 6201 6405 6494 6817 6818 7531 EXECUTE 933 # 7900 FPD 918 # 4188 4709 4714 4728 6305 INT 920 # 5160 6051 8260 8455 8677 8785 8816 8867 IOLGL 912 # 2448 3551 3554 IOT 925 # JFCL 926 # 3613 KERNEL 917 # 3544 3548 3549 3556 3665 6983 LE 921 # 3349 3361 3452 3464 4405 5039 5383 5707 6354 7309 7966 LLE 913 # 7705 SC 932 # 2199 3003 3005 3081 3083 3085 3089 3106 3115 3122 3153 3155 3157 3161 4267 4279 4285 4293 4303 4311 4566 4569 4609 4958 4977 5077 5314 5316 5422 5446 5449 5452 5456 5569 5571 5620 5623 5630 5648 6340 6484 6490 6676 6685 7175 7195 7226 7243 7434 7447 7649 7680 7748 8312 8374 8377 8411 8554 TRAP CYCLE 929 # 8803 TXXX 928 # 3299 -1 MS 936 # 5152 6046 7347 8450 -CONTINUE 935 # 7902 -IO BUSY 934 # 7730 7736 7745 7753 (U) SPEC 797 # 2583 2589 2703 2705 2738 2744 2752 2754 2773 2775 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 4141 4147 4170 4172 8569 8869 APR EN 811 # 2180 7093 7202 APR FLAGS 809 # 7098 7102 7317 ASHOV 818 # 3005 3121 3124 CLR IO BUSY 801 # 7623 7661 CLR IO LATCH 800 # 7708 7716 7720 7723 7732 7738 7747 7752 CLRCLK 799 # 7294 7348 8504 8788 CLRCSH 810 # 7429 7430 7433 EXPTST 819 # 5507 5523 5853 FLAGS 820 # 2231 2232 2592 3418 3434 3501 3515 3571 3572 3575 3576 3612 3633 3634 3704 3716 3772 3802 3806 3821 3827 4021 4022 4023 4075 4089 4106 4116 4119 4149 4150 4174 4224 4236 4246 4249 4356 4391 4422 4508 4657 4659 4724 4741 4763 5015 5367 5379 5444 5732 6406 6407 7005 7507 7522 8807 INHCRY18 815 # 3524 3694 3741 3770 3790 3795 5047 5122 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 306 ; Cross Reference Listing LDACBLK 821 # 2177 7166 7189 LDINST 822 # 2284 3669 7001 7914 LDPAGE 802 # 7424 8585 LDPI 817 # 3622 7410 7485 7967 LDPXCT 804 # 3674 LOADIR 816 # 5935 LOADXR 807 # 2355 3564 3588 3603 4717 4736 4784 5936 5948 6867 6904 6906 6915 7711 MEMCLR 812 # 2175 3623 7486 7888 7961 8292 8791 8797 NICOND 803 # 2242 2243 2245 2246 2306 2312 2536 3057 3103 3131 3340 3352 3443 3467 3468 3471 3472 3539 3540 3566 3608 3725 3801 3808 4235 4499 4502 4710 5457 5463 5822 7399 7670 8249 PREV 806 # 7872 7880 PXCT OFF 814 # 2254 2257 2260 2272 2275 2278 2292 SWEEP 813 # 7442 7443 7446 WAIT 805 # 2424 # 798 # 7896 7899 7962 (U) STATE 1012 # BLT 1014 # 5123 COMP-DST 1021 # 6140 CVTDB 1020 # 6187 DST 1017 # 6102 DSTF 1019 # 6040 EDIT-DST 1023 # 6159 6369 6396 6615 6641 8824 8828 EDIT-S+D 1024 # 6581 EDIT-SRC 1022 # 6133 6520 6577 8822 8830 8832 8836 MAP 1015 # 8248 SIMPLE 1013 # SRC 1016 # 5989 6018 6088 8826 SRC+DST 1018 # 6015 6094 (U) SWITCH% FULL 406 1309 1311 2186 2206 2211 2215 4183 4251 4254 4401 4511 4514 4582 4647 4933 5084 5088 7196 7204 INHCST 7 409 1249 1251 1253 8051 8053 8400 8403 8404 8407 8529 8532 8533 8536 8607 8616 8617 8633 KIPAGE 9 418 426 428 430 1273 1275 1277 3964 3974 4026 4037 7206 7213 7219 7221 8317 8321 8326 8329 8697 8743 8852 8855 8859 8864 KLPAGE 421 425 427 1279 1281 1283 3965 3969 3975 3989 7207 7212 7215 7217 8316 8325 8331 8538 8601 8695 8851 8857 8874 8879 NOCST 412 433 435 1255 1257 1259 8395 8468 8475 8478 8492 8495 8496 8500 8526 8545 8602 8634 NONSTD 437 1261 1263 1265 SIM 403 2224 2229 2236 UBABLT 8 415 424 431 1267 1269 1271 5198 5272 7844 7846 7848 (U) T 949 # 2T 952 # 4426 4439 5306 5576 6150 6220 6284 6572 6709 6754 7349 7706 3T 953 # 2202 2427 2437 2592 3125 3299 3384 3418 3434 3524 3614 3698 3733 3741 3766 3770 3787 3792 3797 3834 3850 4075 4089 4192 4194 4213 4247 4384 4388 4438 4444 4445 4446 4463 4467 4488 4496 4577 4642 4659 4717 4732 4803 4821 4917 4961 4968 5048 5064 5068 5134 5136 5155 5179 5266 5300 5334 5375 5406 5407 5410 5442 5445 5499 5501 5503 5505 5564 5565 5568 5570 5669 5670 5671 5715 5719 5721 5723 5731 5814 5820 5980 5998 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 307 ; Cross Reference Listing 6000 6048 6052 6115 6222 6236 6250 6282 6285 6370 6373 6405 6406 6434 6440 6443 6452 6477 6491 6518 6538 6539 6661 6668 6712 6771 6861 6868 6889 6903 6907 6910 6912 6948 7003 7133 7140 7153 7200 7466 7491 7495 7503 7504 7505 7540 7544 7546 7713 8343 8351 8577 8594 8812 8842 4T 954 # 3030 3501 3515 4101 4106 4113 4116 4118 5008 5013 5994 6024 6201 6206 6231 6272 6445 6493 6633 6756 6957 7966 8263 8336 8339 8423 8426 5T 955 # 7267 7271 7275 7279 7283 7735 7752 (D) TEST 1364 # 2563 2563 2564 2564 2568 2568 2569 2569 2573 2573 2574 2574 2578 2578 2579 2579 2598 2616 2616 2617 2617 2621 2621 2622 2622 2626 2626 2627 2627 2631 2631 2632 2632 2636 2636 2637 2637 2641 2641 2642 2642 2646 2646 2647 2647 2651 2651 2652 2652 2658 2658 2659 2659 2663 2663 2664 2664 2668 2668 2669 2669 2673 2673 2674 2674 2678 2678 2679 2679 2683 2683 2684 2684 2688 2688 2689 2689 2693 2693 2694 2694 2790 2813 2813 2814 2814 2823 2823 2824 2824 2833 2833 2834 2834 2843 2843 2844 2844 2848 2848 2849 2849 2858 2858 2859 2859 2865 2865 2866 2866 2875 2875 2876 2876 2885 2885 2886 2886 2895 2895 2896 2896 2905 2905 2906 2906 2915 2915 2916 2916 2926 2926 2927 2927 2936 2936 2937 2937 2946 2946 2947 2947 2956 2956 2957 2957 3407 3408 3409 3410 3411 3412 3413 3414 3423 3424 3425 3426 3427 3428 3429 3430 4069 4069 4070 4070 4083 4083 4084 4084 4131 4131 4132 4132 4156 4156 4157 4157 4323 4323 4324 4324 4328 4328 4329 4329 4700 4702 5278 5278 5279 5279 5282 5282 5283 5283 5286 5286 5287 5287 5290 5290 5291 5291 5323 5323 5324 5324 5328 5328 5329 5329 5352 5352 5353 5353 5357 5357 5358 5358 7250 (U) TRAP1 1105 # 4149 4150 4174 4236 4356 4391 4422 4508 5015 5367 5379 5444 5732 (U) TRAP2 1104 # 3716 3772 3802 3806 (U) VECTOR CYCLE 1176 # 7535 (D) VMA 1366 # 2562 2567 2572 2577 2615 2620 2625 2630 2635 2640 2645 2650 2657 2662 2667 2672 2677 2682 2687 2692 2811 2812 2822 2832 2842 2847 2864 2874 2884 2894 2903 2904 2914 2925 2935 2945 2954 2955 2966 2967 2968 2970 2971 2972 3490 3504 3530 3780 4068 4082 4130 4155 4322 4327 (U) WAIT 1165 # 2242 2242 2243 2243 2245 2245 2246 2246 2265 2265 2282 2305 2305 2311 2311 2316 2322 2335 2345 2349 2353 2366 2375 2378 2379 2407 2418 2419 2419 2430 2433 2437 2444 2444 2508 2540 2546 2551 2554 2603 2603 2604 2799 2799 2801 2805 2805 3034 3034 3340 3340 3352 3352 3419 3419 3420 3467 3467 3468 3468 3471 3471 3472 3472 3539 3539 3540 3540 3541 3546 3550 3553 3562 3566 3566 3580 3583 3586 3601 3608 3608 3627 3630 3631 3644 3644 3647 3647 3650 3655 3655 3691 3696 3696 3708 3714 3723 3723 3733 3736 3746 3746 3751 3751 3753 3759 3767 3773 3829 3829 3830 3842 3842 3860 3861 3982 3983 3985 3991 3996 3996 4017 4018 4043 4043 4053 4053 4057 4061 4235 4235 4710 4710 4719 4719 4747 4747 4753 4753 4754 4767 4771 4775 4779 4781 4787 4908 4908 4909 5112 5140 5140 5148 5148 5150 5164 5164 5169 5169 5173 5176 5187 5222 5263 5263 5265 5270 5929 5945 5946 5948 5970 6117 6367 6368 6394 6467 6472 6528 6560 6560 6562 6606 6606 6608 6611 6639 6648 6764 6910 6911 6912 6913 6915 6929 6985 6988 6993 6996 7000 7131 7132 7235 7235 7267 7267 7268 7271 7271 7272 7275 7275 7276 7279 7279 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 308 ; Cross Reference Listing 7280 7283 7283 7284 7323 7324 7327 7352 7352 7355 7356 7356 7357 7363 7364 7399 7399 7417 7417 7418 7490 7501 7502 7517 7517 7538 7543 7544 7552 7632 7634 7667 7668 7670 7670 7693 7714 7715 7760 7763 7765 7773 7775 7777 7871 7873 7879 7879 7891 7893 7894 7894 7906 7906 7912 7977 7978 7979 7980 7980 7981 7982 7985 7986 7987 7987 7988 7989 7990 7990 7991 7992 7993 7993 7994 7995 7996 7996 7997 7998 7999 7999 8000 8001 8003 8341 8349 8354 8356 8434 8438 8595 8630 8675 8678 8846 8847 8876 8878 8882 8885 8885 (U) WORK 1028 # AC0 1069 # AC1 1070 # AC2 1071 # AC3 1072 # ADJBPW 1047 # 5031 5052 ADJP 1042 # 4966 4993 ADJPTR 1044 # 4707 4984 5046 ADJQ1 1045 # 4989 5007 ADJR2 1046 # 4999 5066 ADJS 1043 # 4979 4994 5057 APR 1049 # 2182 7072 7094 7106 7198 7203 8246 BADW0 1029 # 8286 BADW1 1030 # 8287 BDH 1059 # 6314 6389 6398 6420 BDL 1060 # 6312 6355 6395 6399 CBR 1039 # 7257 7273 8405 8534 8618 8619 CMS 1056 # 6137 6149 6150 6160 CSTM 1040 # 7261 7281 8625 DDIV SGN 1073 # DECHI 1078 # 2191 2193 6443 DECLO 1077 # 2190 2192 6434 DIV 1032 # DVSOR H 1074 # DVSOR L 1075 # E0 1051 # 5939 6365 6637 6647 E1 1052 # 5952 5955 6391 6570 6571 6746 6749 6754 6762 FILL 1055 # 6121 6144 6157 6632 6709 6715 6829 6931 FSIG 1057 # 6594 6596 HSBADR 1048 # 2174 7263 7285 7960 7965 MSK 1054 # 6002 6173 6755 MUL 1031 # PERIOD 1065 # 7313 7365 7370 PTA.E 1081 # 7451 8335 8422 8428 PTA.U 1082 # 7450 8338 8425 8430 PUR 1041 # 7259 7277 8398 8493 SBR 1038 # 7255 7269 8365 8367 8444 SLEN 1053 # 5985 6009 6013 6030 6042 6058 6062 6090 6097 6191 6195 6198 6202 6370 6371 6373 6376 6742 6836 6840 6842 6956 6970 6974 SV.ARX 1035 # 6074 6079 7886 7958 7969 7984 8007 8259 8590 8818 SV.AR 1034 # 6047 6077 7983 8004 8255 8598 SV.AR1 1084 # 8451 8505 SV.BRX 1037 # 5193 6075 6080 6947 6962 6971 8256 8592 SV.BR 1036 # 6073 6078 8266 8276 8278 8280 8282 8591 8776 SV.VMA 1033 # 7733 7739 7741 7973 8002 8005 8245 8258 8550 8793 8802 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 309 ; Cross Reference Listing TIME0 1063 # 2184 7302 7335 7345 TIME1 1064 # 2185 7293 7300 7332 7346 7349 8503 8787 TRAPPC 1083 # 6982 8806 TTG 1066 # 7307 7311 7366 YSAVE 1080 # 3677 7699 7702 7707 7719 7721 (D) WRITE 1367 # (U) WRITE CYCLE 1136 # 2583 2589 2603 2703 2705 2738 2744 2752 2754 2773 2775 2799 2805 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 3419 3644 3647 3655 3696 3746 3751 3829 3842 3982 3996 4043 4053 4075 4089 4141 4147 4170 4172 4747 4753 4908 5140 5148 5164 5169 5263 5461 5465 5511 5533 6560 6606 7235 7352 7356 7417 7517 7665 7676 7682 7879 7891 7894 7977 7980 7987 7990 7993 7996 7999 8489 8510 8569 8574 8630 8764 8846 8869 8885 (U) WRITE TEST 1135 # 2583 2589 2603 2703 2705 2738 2744 2752 2754 2773 2775 2799 2805 2818 2828 2838 2870 2880 2900 2910 2921 2931 2961 3419 3644 3647 3655 3696 3746 3751 3829 3842 3982 3996 4043 4053 4075 4089 4141 4147 4170 4172 4747 4753 4908 5140 5148 5164 5169 5263 5461 5465 5511 5533 6560 6606 7235 7267 7271 7275 7279 7283 7352 7356 7417 7487 7501 7517 7534 7543 7626 7629 7665 7676 7682 7879 7891 7894 7908 7977 7980 7987 7990 7993 7996 7999 8296 8341 8349 8489 8569 8575 8846 8869 8882 8885 (U) WRU CYCLE 1172 # 7488 (U) # 983 # 2163 2165 2167 2169 2172 2202 2216 2252 2256 2259 2271 2274 2277 2434 2436 2449 2471 2472 2759 2761 2766 2768 2785 3056 3127 3129 3543 3552 3555 3557 3558 3559 3592 3597 3600 3606 3620 3621 3641 3654 3740 3769 3832 3849 3936 3938 3940 3942 3944 3946 3948 3950 3957 3960 4000 4005 4007 4010 4012 4040 4048 4055 4122 4123 4375 4412 4413 4423 4431 4476 4529 4555 4562 4653 4818 4962 4964 4969 4987 4991 4997 5001 5030 5035 5069 5073 5080 5133 5229 5234 5243 5249 5254 5307 5308 5311 5312 5336 5337 5341 5369 5370 5406 5410 5430 5431 5568 5570 5650 5670 5671 5690 5693 5721 5723 5897 5899 5901 5903 5905 5907 5909 5911 5913 5930 5933 5957 5973 5977 6112 6114 6172 6177 6184 6189 6196 6200 6216 6258 6274 6275 6281 6287 6307 6320 6322 6329 6334 6341 6344 6400 6414 6416 6423 6448 6454 6470 6482 6485 6493 6505 6508 6525 6540 6598 6609 6618 6620 6636 6655 6676 6681 6690 6693 6769 6791 6795 6799 6803 6807 6811 6821 6827 6925 6936 7003 7008 7017 7018 7019 7023 7024 7025 7026 7031 7032 7033 7036 7037 7038 7039 7040 7041 7042 7043 7045 7048 7059 7074 7075 7078 7079 7081 7084 7086 7088 7100 7110 7113 7117 7138 7145 7149 7153 7160 7179 7199 7200 7201 7227 7233 7239 7244 7264 7287 7296 7315 7330 7382 7383 7426 7428 7439 7441 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7484 7495 7504 7505 7520 7540 7547 7637 7645 7651 7664 7696 7698 7712 7755 7841 7850 7852 7854 7856 7858 7860 7896 7899 7910 7962 8240 8244 8247 8272 8274 8288 8298 8301 8307 8315 8344 8352 8363 8370 8387 8394 8442 8454 8457 8465 8472 8483 8486 8512 8516 8519 8544 8557 8561 8565 8567 8580 8581 8583 8588 8623 8644 8650 8655 8661 8749 8752 8755 8758 8767 8772 8780 8842 ; T10KL.MCR[7,3] 15:10 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 0000 3922 5866 5867 5868 5869 5870 5871 5872 D 0010 5874 5875 5876 5877 5879 5880 5881 5882 D 0020 5884 5885 5886 5887 5888 5889 5890 5891 D 0030 3869 3870 3871 3872 3873 3874 3875 3876 D 0040 3880 3881 3882 3883 3884 3885 3886 3887 D 0050 3888 3889 3890 3891 3892 3893 3894 3895 D 0060 3896 3897 3898 3899 3900 3901 3902 3903 D 0070 3904 3905 3906 3907 3908 3909 3910 3911 D 0100 3915 3916 3917 3918 3923 3780 3924 3925 D 0110 5551 5552 5640 5701 4096 4097 4180 4398 D 0120 2780 2781 5436 5925 2789 2790 5437 5401 D 0130 3926 3927 5402 4699 4700 4701 4702 4703 D 0140 5277 3928 5278 5279 5280 5281 5282 5283 D 0150 5285 3929 5286 5287 5288 5289 5290 5291 D 0160 5322 3930 5323 5324 5326 5327 5328 5329 D 0170 5351 3931 5352 5353 5355 5356 5357 5358 D 0200 2561 2562 2563 2564 2566 2567 2568 2569 D 0210 2571 2572 2573 2574 2576 2577 2578 2579 D 0220 4129 4130 4131 4132 4154 4155 4156 4157 D 0230 4321 4322 4323 4324 4326 4327 4328 4329 D 0240 2966 2967 2968 2969 2970 2971 2972 3932 D 0250 2598 5126 3518 3519 3530 3532 3661 8235 D 0260 3683 3684 3685 3686 3813 3814 3815 3816 D 0270 4067 4068 4069 4070 4081 4082 4083 4084 D 0300 3364 3365 3366 3367 3368 3369 3370 3371 D 0310 3373 3374 3375 3376 3377 3378 3379 3380 D 0320 3476 3477 3478 3479 3480 3481 3482 3483 D 0330 3390 3391 3392 3393 3394 3395 3396 3397 D 0340 3490 3491 3492 3493 3494 3495 3496 3497 D 0350 3407 3408 3409 3410 3411 3412 3413 3414 D 0360 3504 3505 3506 3507 3508 3509 3510 3511 D 0370 3423 3424 3425 3426 3427 3428 3429 3430 D 0400 2811 2812 2813 2814 2821 2822 2823 2824 D 0410 2831 2832 2833 2834 2841 2842 2843 2844 D 0420 2846 2847 2848 2849 2856 2857 2858 2859 D 0430 2863 2864 2865 2866 2873 2874 2875 2876 D 0440 2883 2884 2885 2886 2893 2894 2895 2896 D 0450 2903 2904 2905 2906 2913 2914 2915 2916 D 0460 2924 2925 2926 2927 2934 2935 2936 2937 D 0470 2944 2945 2946 2947 2954 2955 2956 2957 D 0500 2614 2615 2616 2617 2619 2620 2621 2622 D 0510 2624 2625 2626 2627 2629 2630 2631 2632 D 0520 2634 2635 2636 2637 2639 2640 2641 2642 D 0530 2644 2645 2646 2647 2649 2650 2651 2652 D 0540 2656 2657 2658 2659 2661 2662 2663 2664 D 0550 2666 2667 2668 2669 2671 2672 2673 2674 D 0560 2676 2677 2678 2679 2681 2682 2683 2684 D 0570 2686 2687 2688 2689 2691 2692 2693 2694 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 311 ; Location / Line Number Index ; Dcode Loc'n 0 1 2 3 4 5 6 7 D 0600 3189 3190 3191 3192 3193 3194 3195 3196 D 0610 3198 3199 3200 3201 3202 3203 3204 3205 D 0620 3207 3208 3209 3210 3211 3212 3213 3214 D 0630 3216 3217 3218 3219 3220 3221 3222 3223 D 0640 3225 3226 3227 3228 3229 3230 3231 3232 D 0650 3234 3235 3236 3237 3238 3239 3240 3241 D 0660 3242 3243 3244 3245 3246 3247 3248 3249 D 0670 3251 3252 3253 3254 3255 3256 3257 3258 D 0700 7013 7014 7250 7784 7865 7866 7785 7786 D 0710 7572 7573 7583 7584 7597 7598 7788 7789 D 0720 7574 7575 7585 7586 7599 7600 7791 7792 D 0730 7794 7795 7796 7797 7798 7799 7800 7801 D 0740 7803 7804 7805 7806 7807 7808 7809 7810 D 0750 7812 7813 7814 7815 7816 7817 7818 7819 D 0760 7821 7822 7823 7824 7825 7826 7827 7828 D 0770 7830 7831 7832 7833 7834 7835 7836 7837 ; T10KL.MCR[7,3] 15:10 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 0000 2163: 7959: 2164 2172: 7900: 7902: 5226= 5229= U 0010 2196= 7960: 2197= 2165 3299= 3302= 3305= 3308= U 0020 3988= 4138= 3994= 3997= 7961= 4139= 7962= 4000= U 0030 3573= 4166= 3577= 4507= 3581= 4167= 3585= 4508= U 0040 2368: 2372: 2376: 2384: 2394: 2397: 2404: 2408: U 0050 2421: 2427: 2448: 2166 4429= 4431= 4465= 4466= U 0060 3645= 2167 5059= 5460= 3648= 3650= 5066= 7628= U 0070 4769= 2170 4773= 5461= 4777= 4433= 4780= 7629= U 0100 2174 2255= 2258= 2261= 7887= 2262= 2175 2266= U 0110 2177 2273= 2276= 2279= 7889= 2280= 7891= 2285= U 0120 4193= 4195= 4286= 4290= 4196= 2180 4294= 4298= U 0130 3845= 2182 5706= 5708= 3848= 3852= 7054: 7069: U 0140 2205= 2208= 4304= 4308= 5385= 5386= 4312= 4316= U 0150 3565= 2216= 3566= 5616= 5388= 5390= 5392= 5393= U 0160 4349= 4352= 2184 5340= 4355= 4356= 4358= 5342= U 0170 5942= 4202= 5944= 5617= 5945= 4203= 5946= 5394= U 0200 5799= 2306= 5801= 2312= 5803= 2318= 5805= 2323= U 0210 5807= 2331= 2185 2335= 2187 2345= 5808= 2349= U 0220 3723= 3725= 3727= 2188 2201= 2202= 2189 7664= U 0230 6910= 6862= 6911= 6863= 6912= 2190 6913= 7665= U 0240 4708= 4709= 2191 5687= 2192 4710= 6551= 6552= U 0250 3340= 3343= 3346= 3349= 3352= 3355= 3358= 3361= U 0260 2245= 2246= 5540= 5688= 4737= 4740= 5541= 4741= U 0270 3443= 3446= 3449= 3452= 3455= 3458= 3461= 3464= U 0300 3600= 3604= 5545= 3606= 2413= 2415= 5546= 3607= U 0310 4212= 4214= 5849= 2193 4215= 2194 5851= 3608= U 0320 3620= 3621= 6710= 2198 2199 3622= 6711= 5525= U 0330 4374= 4376= 2232 4379= 3984= 3624= 3986= 5527= U 0340 4805= 4808= 4809= 2234 4810= 4811= 2293 4812= U 0350 4747= 4748= 4749= 4750= 4451= 4491= 4452= 4492= U 0360 4901= 4902= 4903= 2355 4904= 4905= 2360 4906= U 0370 4531= 2378 2430= 2433= 4532= 4533= 4534= 4535= U 0400 4053: 2381 2449= 2450= 7396= 7397= 2386 5543= U 0410 4827= 4461= 4828= 4462= 4723= 7399= 4725= 5544= U 0420 5498= 5499= 5500= 5501= 5502= 5503= 5504= 5505= U 0430 5506= 2398 2400 5599= 2471= 2472= 5507= 5600= U 0440 5518= 6338= 5519= 6340= 5520= 2435 5521= 6341= U 0450 5522= 2436 2439 5633= 2553= 2556= 5523= 5634= U 0460 6195= 6197= 5853= 5857= 6199= 6201= 5860= 2440 U 0470 7519= 2442 5623= 5625= 7521= 7523= 5626= 5627= U 0500 6010= 6012= 3005= 3009= 6014= 6016= 2445 6018= U 0510 6396= 2606 2736 5746= 3035= 3036= 6397= 5747= U 0520 5760= 5761= 5763= 5764= 5766= 5767= 5769= 5770= U 0530 5772= 2742 2801 6835= 3054= 3055= 5773= 6837= U 0540 6091= 6093= 6095= 4222= 3085= 3086= 6098= 4224= U 0550 5030= 5032= 2806 5036= 3089= 3090= 5953= 5954= U 0560 6229= 6232= 6388= 4245= 2921 6233= 6389= 4247= U 0570 5231= 5233= 2987 5234= 5989= 5990= 5992= 5995= ; T10KL.MCR[7,3] 15:10 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 0600 6235= 6238= 3102= 3103= 3000 6239= 6595= 6596= U 0610 5251= 5253= 3003 5254= 3109= 3111= 6187= 6190= U 0620 6246= 6247= 6251= 5656= 3115= 3117= 6252= 5660= U 0630 5811= 3019 5813= 5815= 3122= 3124= 6394= 6395= U 0640 6375= 6377= 3128= 3130= 3157= 3158= 3021 6378= U 0650 6039= 6041= 3022 6043= 6479= 6480= 6481= 6482= U 0660 4988= 6494= 4989= 6497= 4998= 6499= 4999= 6501= U 0670 5219= 6503= 5220= 6506= 5302= 6509= 5303= 6511= U 0700 6572= 3024 6576= 6578= 6579= 6582= 3027 6584= U 0710 6519= 6521= 6523= 6526= 6527= 6529= 6748= 6749= U 0720 5444= 6786= 5445= 6788= 5446= 6792= 5447= 6796= U 0730 5661= 6800= 5673= 6804= 5662= 6808= 5674= 6812= U 0740 6617= 6619= 3161= 3163= 3403= 3404= 6621= 3038 U 0750 6057= 6059= 6061= 6062= 6825= 6828= 6830= 6832= U 0760 6642= 6643= 3467= 3468= 3471= 3472= 6644= 3056 U 0770 7467= 7468= 7469= 7470= 7471= 7472= 7473= 7474= U 1000 8361= 8364= 8366= 8368= 3592= 3593= 3057 8370= U 1010 8378= 8379= 5680= 7609= 3083 8380= 5685= 7611= U 1020 6101= 6102= 5931= 6103= 3597= 3598= 5933= 7637= U 1030 6134= 6136= 6137= 3091 3641= 3642= 3092 7638= U 1040 8424= 8427= 8429= 8431= 3654= 3655= 3106 8435= U 1050 6143= 6145= 6146= 3126 5734= 7706= 5735= 7708= U 1060 8264= 8266= 3131 8270= 5738= 8272= 5739= 8274= U 1070 8276= 8278= 8280= 8282= 6210= 6212= 6213= 3155 U 1100 8817= 8819= 8821= 8823= 8825= 8827= 8829= 8831= U 1110 8833= 8834= 8835= 8837= 6744= 6745= 6746= 3313 U 1120 7328= 7331= 3314 7333= 7350= 7352= 7353= 3419 U 1130 7734= 7737= 7740= 7742= 8440= 8443= 8445= 8450= U 1140 8470= 8473= 3420 8483= 8789= 8790= 8791= 3568 U 1150 8620= 8621= 3671= 3675= 8623= 3589 3711= 3715= U 1160 3747= 3751= 3772= 3775= 3793= 3798= 3801= 3803= U 1170 3807= 3808= 3963= 3976= 3979= 3982= 4008= 4010= U 1200 4013= 4017= 4107= 4108= 4117= 4119= 4122= 4123= U 1210 4140= 4141= 4146= 4147= 4149= 4150= 4170= 4171= U 1220 4172= 4174= 4227= 4228= 4235= 4236= 4337= 4339= U 1230 4364= 4367= 4385= 4389= 4391= 4393= 4407= 4409= U 1240 4411= 4412= 4421= 4422= 4437= 4438= 4440= 4441= U 1250 4444= 4445= 4446= 4447= 4455= 4456= 4471= 4472= U 1260 4481= 4482= 4499= 4500= 4550= 4551= 4552= 4553= U 1270 4559= 4560= 4569= 4570= 4573= 4574= 4598= 4601= U 1300 4615= 4619= 4631= 4632= 4636= 4637= 4641= 4642= U 1310 4657= 4659= 4663= 4664= 4959= 4962= 4978= 4980= U 1320 4983= 4984= 5014= 5015= 5049= 5051= 5078= 5081= U 1330 5114= 5116= 5142= 5149= 5153= 5156= 5158= 5160= U 1340 5165= 5170= 5182= 5183= 5267= 5268= 5307= 5308= U 1350 5311= 5312= 5316= 5317= 5336= 5337= 5366= 5367= U 1360 5369= 5370= 5375= 5376= 5378= 5379= 5382= 5383= U 1370 5407= 5408= 5411= 5412= 5414= 5415= 5422= 5423= ; T10KL.MCR[7,3] 15:10 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 1400 2242: 2243: 2583: 2586: 2589: 2593: 2603: 2703: U 1410 2705: 2730: 2732: 2735: 2738: 2741: 2744: 2750: U 1420 2752: 2754: 2757: 2764: 2759: 2761: 2766: 2768: U 1430 2771: 3418: 2773: 2775: 2785: 8591 2786: 3434: U 1440 3487: 2818: 2828: 2838: 2853: 2870: 2880: 2890: U 1450 2900: 2910: 2920: 2931: 2941: 2951: 2961: 4102: U 1460 7590: 7594: 3031: 7591: 3081: 3082: 3100: 5929: U 1470 3153: 3154: 3283: 3285: 3288: 3291: 3384: 3402: U 1500 8592 8595 8599 8618 2499: 2504: 2510: 8644 U 1510 8646 8648 8677 8691 2531: 2536: 2542: 2548: U 1520 3539: 3540: 3542: 3543: 3544: 3547: 3548: 3549: U 1530 3551: 3552: 3554: 3555: 3556: 3557: 3558: 3559: U 1540 3615: 3665: 3515: 3692: 3705: 3734: 3767: 3525: U 1550 3820: 3785: 3827: 8241: 3842: 3857: 3958: 4048: U 1560 4075: 4089: 8749 8773 8776 2795: 4185: 2800: U 1570 5335: 4162: 8783 8785 5363: 8794 5297: 5300: U 1600 4333: 4342: 8797 8807 8846 8867 8883 8885 U 1610 4706: 3501: 2981: 2984: 7579: 4114: 5406: 7580: U 1620 4714: 5427: 2995: 2997: 4718: 4719: 5443: 4403: U 1630 4728: 5645: 3016: 3018: 4730: 5561: 5704: 5564: U 1640 5130: 4135: 5132: 5135: 7605: 7607: U 1650 7841: 7847: 7850: 7852: 7854: 7856: 7858: 7860: U 1660 3948: 3936: 3938: 3940: 3942: 3950: 3944: 3946: U 1670 U 1700 7059: 7017: 7018: 7019: 7072: 7106: 7020: 7021: U 1710 7023: 7024: 7025: 7026: 7379: 7376: 7027: 7028: U 1720 7031: 7233: 7424: 7131: 7193: 7224: 7032: 7033: U 1730 7036: 7037: 7038: 7039: 7040: 7041: 7042: 7043: U 1740 5897: 5899: 5901: 5903: 5905: 5907: 5909: U 1750 5911: 5913: 7872: 7880: U 1760 7255: 7257: 7259: 7261: 7339: 7371: 7263: 7264: U 1770 7267: 7271: 7275: 7279: 7323: 7363: 7283: 7287: U 2000 5430= 5431= 5452= 5453= 5456= 5457= 5463= 5464= U 2010 5465= 5467= 5510= 5511= 5514= 5516= 5529= 5530= U 2020 5531= 5532= 5569= 5571= 5574= 5576= 5580= 5581= U 2030 5588= 5589= 5630= 5631= 5648= 5649= 5670= 5671= U 2040 5691= 5692= 5694= 5696= 5711= 5712= 5721= 5722= U 2050 5730= 5731= 5732= 5733= 5749= 5750= 5782= 5783= U 2060 5787= 5788= 5792= 5794= 5819= 5820= 5827= 5828= U 2070 5837= 5838= 5956= 5958= 5978= 5981= 5983= 5984= U 2100 5974= 6000= 3594 6001= 5975= 3627 6026= 6028= U 2110 6032= 6033= 6047= 6049= 6052= 6054= 6065= 6067= U 2120 6076= 6112= 6077= 6114= 6179= 6113= 6180= 6115= U 2130 6116= 6117= 6120= 6122= 6130= 6131= 6157= 6158= U 2140 6164= 6167= 6182= 6185= 6203= 6207= 6217= 6218= U 2150 6221= 6223= 6257= 6258= 6270= 6271= 6274= 6275= U 2160 6278= 6279= 6284= 6286= 6287= 6289= 6297= 6298= U 2170 6308= 6309= 6318= 6320= 6313= 6322= 6315= 6324= ; T10KL.MCR[7,3] 15:10 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 2200 6326= 6327= 6332= 6335= 6345= 6346= 6350= 6351= U 2210 6356= 6357= 6359= 6363= 6401= 6402= 6406= 6407= U 2220 6413= 6414= 6415= 6416= 6417= 6418= 6435= 6436= U 2230 6439= 6569= 6441= 6570= 6442= 6443= 6449= 6450= U 2240 6455= 6457= 6471= 8386= 6476= 6477= 6472= 8387= U 2250 6484= 6485= 6490= 6491= 6517= 6518= 6542= 6545= U 2260 6559= 6560= 6589= 6590= 6610= 6612= 6634= 6636= U 2270 6638= 6639= 6656= 6658= 6679= 6683= 6685= 6687= U 2300 6714= 6715= 6768= 6769= 6773= 6775= 6819= 6821= U 2310 6841= 6843= 6858= 6859= 6868= 6872= 6887= 6890= U 2320 6892= 6904= 6893= 6905= 6944= 6945= 6952= 6953= U 2330 6960= 6961= 6963= 6964= 6990= 6998= 7007= 7008= U 2340 7080= 7081= 7082= 7083= 7085= 7086= 7087= 7088= U 2350 7090= 7091= 7141= 7146= 7161= 7167= 7176= 7180= U 2360 7195= 7198= 7201= 7202= 7226= 7227= 7234= 7236= U 2370 7243= 7244= 7301= 7302= 7304= 7978= 7306= 7979= U 2400 7312= 7313= 7344= 7345= 7380= 7381= 7382= 7383= U 2410 7386= 7387= 7388= 7389= 7390= 7391= 7392= 7393= U 2420 7394= 7395= 7427= 7429= 7435= 7436= 7440= 7442= U 2430 7448= 7450= 7489= 7492= 7493= 7494= 7505= 7506= U 2440 7516= 7517= 7533= 7535= 7537= 7539= 7541= 7543= U 2450 7547= 7548= 7562= 7563= 7566= 7567= 7624= 7625= U 2460 7633= 7636= 7643= 7645= 7649= 7651= 7662= 7663= U 2470 7669= 7670= 7675= 7677= 7681= 7683= 7694= 7695= U 2500 7698= 7700= 7703= 7704= 7713= 7714= 7720= 7721= U 2510 7748= 7749= 7754= 7755= 7895= 7896= 7907= 7908= U 2520 7911= 7915= 7968= 7970= 7981= 7983= 7982= 7984= U 2530 7985= 7988= 7986= 7989= 7991= 7994= 7992= 7995= U 2540 7997= 8000= 7998= 8001= 8002= 8397= 8003= 8398= U 2550 8248= 8249= 8299= 8302= 8313= 8315= 8337= 8339= U 2560 8342= 8345= 8350= 8352= 8372= 8374= 8392= 8394= U 2570 8406= 8463= 8412= 8421= 8408= 8465= 8452= 8455= U 2600 8459= 8460= 8487= 8489= 8490= 8494= 8514= 8516= U 2610 8504= 3630 8506= 8535= 8521= 8525= 3632 8544= U 2620 8549= 8551= 8555= 8558= 8565= 8567= 8583= 8585= U 2630 8588= 8589= 8626= 8627= 8631= 8632= 8651= 8652= U 2640 8656= 8657= 8662= 8663= 8666= 8667= 8680= 8681= U 2650 8689= 8690= 8692= 8693= 8745= 8748= 8751= 8752= U 2660 8756= 8758= 8762= 8764= 8768= 8769= 8778= 8781= U 2670 8801= 8803= 8805= 8806= 8809= 8810= 8812= 3634 U 2700 8843= 8844= 8849= 8856= 8869= 8870= 8877= 8878= U 2710 3636 3656 3678 3700 3718 3737 3742 3756 U 2720 3761 3771 3788 3823 3829 3831 3835 3843 U 2730 3858 3860 3863 3960 4002 4003 4005 4019 U 2740 4024 4041 4044 4056 4058 4062 4110 4121 U 2750 4136 4144 4163 4164 4168 4186 4188 4205 U 2760 4206 4217 4226 4229 4230 4231 4232 4234 U 2770 4240 4241 4242 4249 4265 4268 4280 4335 ; T10KL.MCR[7,3] 15:10 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 3000 4343 4344 4346 4369 4371 4405 4414 4415 U 3010 4418 4423 4424 4426 4450 4453 4454 4457 U 3020 4463 4469 4470 4474 4476 4477 4479 4484 U 3030 4485 4487 4488 4494 4497 4502 4510 4549 U 3040 4555 4556 4562 4563 4564 4565 4566 4571 U 3050 4575 4576 4579 4609 4627 4629 4634 4639 U 3060 4644 4645 4646 4653 4655 4662 4733 4734 U 3070 4753 4754 4762 4764 4785 4789 4822 4831 U 3100 4834 4835 4836 4839 4840 4841 4908 4909 U 3110 4912 4915 4916 4917 4918 4920 4923 4926 U 3120 4927 4928 4930 4955 4965 4966 4969 4971 U 3130 4973 4992 4993 4994 4995 5001 5009 5039 U 3140 5053 5056 5057 5069 5071 5074 5083 5110 U 3150 5117 5118 5120 5122 5123 5137 5152 5175 U 3160 5177 5180 5188 5192 5194 5196 5224 5237 U 3170 5239 5240 5241 5243 5245 5246 5247 5249 U 3200 5258 5260 5261 5264 5265 5266 5271 5304 U 3210 5305 5306 5314 5338 5343 5346 5371 5372 U 3220 5373 5396 5419 5428 5429 5449 5533 5562 U 3230 5567 5582 5586 5587 5590 5595 5597 5602 U 3240 5604 5605 5618 5620 5635 5650 5651 5655 U 3250 5663 5669 5675 5689 5690 5693 5713 5717 U 3260 5720 5723 5724 5727 5742 5776 5779 5789 U 3270 5817 5822 5824 5830 5935 5937 5939 5940 U 3300 5948 5986 5997 5998 6003 6024 6030 6031 U 3310 6034 6046 6063 6070 6073 6074 6075 6078 U 3320 6079 6081 6087 6088 6105 6106 6132 6139 U 3330 6140 6141 6149 6150 6151 6152 6153 6154 U 3340 6159 6160 6173 6175 6177 6191 6216 6219 U 3350 6242 6260 6263 6265 6273 6276 6281 6283 U 3360 6290 6299 6310 6311 6330 6352 6354 6364 U 3370 6365 6367 6368 6369 6370 6371 6374 6380 U 3400 6385 6392 6398 6399 6400 6403 6404 6405 U 3410 6420 6424 6444 6446 6451 6452 6473 6474 U 3420 6488 6537 6538 6540 6562 6563 6599 6605 U 3430 6606 6607 6608 6626 6647 6649 6659 6662 U 3440 6667 6668 6669 6670 6671 6673 6676 6688 U 3450 6691 6693 6695 6696 6713 6754 6757 6762 U 3460 6764 6839 6861 6864 6866 6885 6903 6906 U 3470 6908 6915 6916 6930 6932 6937 6947 6948 U 3500 6956 6958 6966 6968 6970 6971 6972 6974 U 3510 6977 6981 6983 7001 7004 7045 7046 7048 U 3520 7074 7075 7076 7078 7079 7084 7093 7095 U 3530 7098 7100 7103 7108 7111 7114 7115 7117 U 3540 7119 7134 7150 7154 7172 7183 7185 7190 U 3550 7199 7200 7203 7220 7230 7239 6925: 6926: U 3560 7240 7245 7268 7269 7272 7273 7276 7277 U 3570 7280 7281 7284 7285 7294 7296 7297 7298 ; T10KL.MCR[7,3] 15:10 7-JAN-1986 MICRO 31(254) KS10 MICROCODE V130, 7-JAN-86 Page 317 ; Location / Line Number Index ; Ucode Loc'n 0 1 2 3 4 5 6 7 U 3600 7307 7309 7314 7315 7318 7325 7336 7340 U 3610 7341 7343 7347 7355 7356 7357 7364 7365 U 3620 7367 7384 7385 7407 7408 7409 7411 7417 U 3630 7418 7425 7430 7443 7452 7455 7475 7476 U 3640 7477 7478 7479 7480 7481 7484 7485 7486 U 3650 7496 7498 7501 7503 7504 7508 7531 7545 U 3660 7549 7552 7565 7614 7667 7696 7711 7712 U 3670 7716 7723 7730 7745 7761 7763 7765 7767 U 3700 7769 7771 7773 7775 7777 7779 7875 7882 U 3710 7893 7966 7972 7974 7977 7980 7987 7990 U 3720 7993 7996 7999 8004 8005 8006 8008 8242 U 3730 8244 8245 8246 8247 8256 8257 8258 8260 U 3740 6111: 6468: 6172: 6305: 5971: 8286 8287 8288 U 3750 8292 6469: 8295 8296 5972: 8307 8309 8324 U 3760 8355 8357 8484 8510 8559 8562 8563 8569 U 3770 8571 8576 8578 8580 8581 8582 8590 8255: No errors detected End of microcode assembly 320 pages of listing Used 48.02 seconds, 119 pages of core Symbol table: 31P Text strings: 9P Loc'n assignment: 18P Cross reference: 53P